Browse Source

Update configuration assigments, JIC generation

H. Peter Anvin 3 years ago
parent
commit
7522b73a70

+ 3 - 0
max80.qsf

@@ -284,4 +284,7 @@ set_location_assignment PIN_A3 -to abc_nmi_x
 set_location_assignment PIN_B3 -to abc_int80_x
 set_location_assignment PIN_D3 -to sr_clk
 
+set_global_assignment -name GENERATE_JAM_FILE ON
+set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON
+set_global_assignment -name CONFIGURATION_VCCIO_LEVEL 3.3V
 set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

+ 1 - 1
max80jic.cof

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
 <cof>
-	<eprom_name>EPCQ128A</eprom_name>
+	<eprom_name>MT25QL128</eprom_name>
 	<flash_loader_device>EP4CE15</flash_loader_device>
 	<output_filename>output_files/max80.jic</output_filename>
 	<n_pages>1</n_pages>

+ 21 - 8
output_files/max80.asm.rpt

@@ -1,5 +1,5 @@
 Assembler report for max80
-Fri Aug  6 18:02:17 2021
+Fri Aug  6 18:13:07 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -11,9 +11,10 @@ Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
   3. Assembler Settings
   4. Assembler Generated Files
   5. Assembler Device Options: max80.sof
-  6. Assembler Device Options: max80.jbc
-  7. Assembler Device Options: max80.pof
-  8. Assembler Messages
+  6. Assembler Device Options: max80.jam
+  7. Assembler Device Options: max80.jbc
+  8. Assembler Device Options: max80.pof
+  9. Assembler Messages
 
 
 
@@ -40,7 +41,7 @@ https://fpgasoftware.intel.com/eula.
 +---------------------------------------------------------------+
 ; Assembler Summary                                             ;
 +-----------------------+---------------------------------------+
-; Assembler Status      ; Successful - Fri Aug  6 18:02:17 2021 ;
+; Assembler Status      ; Successful - Fri Aug  6 18:13:07 2021 ;
 ; Revision Name         ; max80                                 ;
 ; Top-level Entity Name ; max80                                 ;
 ; Family                ; Cyclone IV E                          ;
@@ -61,6 +62,7 @@ https://fpgasoftware.intel.com/eula.
 ; File Name                                              ;
 +--------------------------------------------------------+
 ; /home/hpa/abc80/max80/blinktest/output_files/max80.sof ;
+; /home/hpa/abc80/max80/blinktest/output_files/max80.jam ;
 ; /home/hpa/abc80/max80/blinktest/output_files/max80.jbc ;
 ; /home/hpa/abc80/max80/blinktest/output_files/max80.pof ;
 +--------------------------------------------------------+
@@ -76,6 +78,15 @@ https://fpgasoftware.intel.com/eula.
 +----------------+--------------------+
 
 
++-------------------------------------+
+; Assembler Device Options: max80.jam ;
++-------------------------+-----------+
+; Option                  ; Setting   ;
++-------------------------+-----------+
+; JEDEC STAPL ASCII file  ;           ;
++-------------------------+-----------+
+
+
 +-------------------------------------+
 ; Assembler Device Options: max80.jbc ;
 +-----------------------+-------------+
@@ -102,16 +113,18 @@ https://fpgasoftware.intel.com/eula.
 Info: *******************************************************************
 Info: Running Quartus Prime Assembler
     Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
-    Info: Processing started: Fri Aug  6 18:02:15 2021
+    Info: Processing started: Fri Aug  6 18:13:05 2021
 Info: Command: quartus_asm --read_settings_files=off --write_settings_files=off max80 -c max80
 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines.  Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
 Info (115031): Writing out detailed assembly data for power analysis
 Info (115030): Assembler is generating device programming files
 Info (210117): Created JAM or JBC file for the specified chain: 
 Device 1 (EP4CE15F17; /home/hpa/abc80/max80/blinktest/output_files/max80.sof)
+Info (210117): Created JAM or JBC file for the specified chain: 
+Device 1 (EP4CE15F17; /home/hpa/abc80/max80/blinktest/output_files/max80.sof)
 Info: Quartus Prime Assembler was successful. 0 errors, 1 warning
-    Info: Peak virtual memory: 570 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:17 2021
+    Info: Peak virtual memory: 569 megabytes
+    Info: Processing ended: Fri Aug  6 18:13:07 2021
     Info: Elapsed time: 00:00:02
     Info: Total CPU time (on all processors): 00:00:02
 

+ 1 - 1
output_files/max80.done

@@ -1 +1 @@
-Fri Aug  6 18:02:21 2021
+Fri Aug  6 18:13:11 2021

+ 6 - 6
output_files/max80.eda.rpt

@@ -1,5 +1,5 @@
 EDA Netlist Writer report for max80
-Fri Aug  6 18:02:21 2021
+Fri Aug  6 18:13:11 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -37,7 +37,7 @@ https://fpgasoftware.intel.com/eula.
 +-------------------------------------------------------------------+
 ; EDA Netlist Writer Summary                                        ;
 +---------------------------+---------------------------------------+
-; EDA Netlist Writer Status ; Successful - Fri Aug  6 18:02:21 2021 ;
+; EDA Netlist Writer Status ; Successful - Fri Aug  6 18:13:11 2021 ;
 ; Revision Name             ; max80                                 ;
 ; Top-level Entity Name     ; max80                                 ;
 ; Family                    ; Cyclone IV E                          ;
@@ -84,15 +84,15 @@ https://fpgasoftware.intel.com/eula.
 Info: *******************************************************************
 Info: Running Quartus Prime EDA Netlist Writer
     Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
-    Info: Processing started: Fri Aug  6 18:02:20 2021
+    Info: Processing started: Fri Aug  6 18:13:11 2021
 Info: Command: quartus_eda --read_settings_files=off --write_settings_files=off max80 -c max80
 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines.  Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
 Info (204019): Generated file max80.vo in folder "/home/hpa/abc80/max80/blinktest/simulation/modelsim/" for EDA simulation tool
 Info (204020): Writing VCD Dump Commands for all nodes to /home/hpa/abc80/max80/blinktest/simulation/modelsim/max80_dump_all_vcd_nodes.tcl
 Info: Quartus Prime EDA Netlist Writer was successful. 0 errors, 1 warning
-    Info: Peak virtual memory: 815 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:21 2021
-    Info: Elapsed time: 00:00:01
+    Info: Peak virtual memory: 816 megabytes
+    Info: Processing ended: Fri Aug  6 18:13:11 2021
+    Info: Elapsed time: 00:00:00
     Info: Total CPU time (on all processors): 00:00:00
 
 

+ 10 - 6
output_files/max80.fit.rpt

@@ -1,5 +1,5 @@
 Fitter report for max80
-Fri Aug  6 18:02:14 2021
+Fri Aug  6 18:13:04 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -73,7 +73,7 @@ https://fpgasoftware.intel.com/eula.
 +----------------------------------------------------------------------------------+
 ; Fitter Summary                                                                   ;
 +------------------------------------+---------------------------------------------+
-; Fitter Status                      ; Successful - Fri Aug  6 18:02:14 2021       ;
+; Fitter Status                      ; Successful - Fri Aug  6 18:13:04 2021       ;
 ; Quartus Prime Version              ; 20.1.1 Build 720 11/11/2020 SJ Lite Edition ;
 ; Revision Name                      ; max80                                       ;
 ; Top-level Entity Name              ; max80                                       ;
@@ -1694,8 +1694,8 @@ Note: For table entries with two numbers listed, the numbers in parentheses indi
 ; Error detection CRC                                              ; Off           ;
 ; Enable open drain on CRC_ERROR pin                               ; Off           ;
 ; Enable input tri-state on active configuration pins in user mode ; Off           ;
-; Configuration Voltage Level                                      ; Auto          ;
-; Force Configuration Voltage Level                                ; Off           ;
+; Configuration Voltage Level                                      ; 3.3V          ;
+; Force Configuration Voltage Level                                ; On            ;
 ; nCEO                                                             ; Unreserved    ;
 ; Data[0]                                                          ; Unreserved    ;
 ; Data[1]/ASDO                                                     ; Unreserved    ;
@@ -1818,6 +1818,8 @@ Info (12825): Data[1]/ASDO dual-purpose pin not reserved
 Info (12825): nCSO dual-purpose pin not reserved
 Info (12825): DCLK dual-purpose pin not reserved
 Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details
+Info (169213): Configuration voltage level of 3.3V is enforced on the I/O bank 1. The VCCIO of the I/O bank 1 is set to 3.3V.
+Info (169213): Configuration voltage level of 3.3V is enforced on the I/O bank 1. The VCCIO of the I/O bank 1 is set to 3.3V.
 Warning (176674): Following 4 pins are differential I/O pins but do not have their complement pins. Hence, the Fitter automatically created the complement pins.
     Warning (176118): Pin "hdmi_d[0]" is a differential I/O pin but does not have its complement pin. Hence, fitter automatically created the complement pin "hdmi_d[0](n)" File: /home/hpa/abc80/max80/blinktest/max80.sv Line: 108
     Warning (176118): Pin "hdmi_d[1]" is a differential I/O pin but does not have its complement pin. Hence, fitter automatically created the complement pin "hdmi_d[1](n)" File: /home/hpa/abc80/max80/blinktest/max80.sv Line: 108
@@ -1929,6 +1931,8 @@ Info (334004): Delay annotation completed successfully
 Info (334003): Started post-fitting delay annotation
 Info (334004): Delay annotation completed successfully
 Info (11218): Fitter post-fit operations ending: elapsed time is 00:00:01
+Info (169213): Configuration voltage level of 3.3V is enforced on the I/O bank 1. The VCCIO of the I/O bank 1 is set to 3.3V.
+Info (169213): Configuration voltage level of 3.3V is enforced on the I/O bank 1. The VCCIO of the I/O bank 1 is set to 3.3V.
 Warning (171167): Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information.
 Warning (169180): Following 1 pins must use external clamping diodes.
     Info (169178): Pin flash_miso uses I/O standard 3.3-V LVTTL at H2 File: /home/hpa/abc80/max80/blinktest/max80.sv Line: 83
@@ -2078,8 +2082,8 @@ Warning (169064): Following 51 pins have no output enable or a GND or VCC output
     Info (169065): Pin hdmi_hpd has a permanently disabled output enable File: /home/hpa/abc80/max80/blinktest/max80.sv Line: 113
 Info (144001): Generated suppressed messages file /home/hpa/abc80/max80/blinktest/output_files/max80.fit.smsg
 Info: Quartus Prime Fitter was successful. 0 errors, 31 warnings
-    Info: Peak virtual memory: 1488 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:14 2021
+    Info: Peak virtual memory: 1521 megabytes
+    Info: Processing ended: Fri Aug  6 18:13:04 2021
     Info: Elapsed time: 00:00:06
     Info: Total CPU time (on all processors): 00:00:07
 

+ 1 - 1
output_files/max80.fit.summary

@@ -1,4 +1,4 @@
-Fitter Status : Successful - Fri Aug  6 18:02:14 2021
+Fitter Status : Successful - Fri Aug  6 18:13:04 2021
 Quartus Prime Version : 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 Revision Name : max80
 Top-level Entity Name : max80

+ 10 - 10
output_files/max80.flow.rpt

@@ -1,5 +1,5 @@
 Flow report for max80
-Fri Aug  6 18:02:21 2021
+Fri Aug  6 18:13:11 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -41,7 +41,7 @@ https://fpgasoftware.intel.com/eula.
 +----------------------------------------------------------------------------------+
 ; Flow Summary                                                                     ;
 +------------------------------------+---------------------------------------------+
-; Flow Status                        ; Successful - Fri Aug  6 18:02:21 2021       ;
+; Flow Status                        ; Successful - Fri Aug  6 18:13:11 2021       ;
 ; Quartus Prime Version              ; 20.1.1 Build 720 11/11/2020 SJ Lite Edition ;
 ; Revision Name                      ; max80                                       ;
 ; Top-level Entity Name              ; max80                                       ;
@@ -65,7 +65,7 @@ https://fpgasoftware.intel.com/eula.
 +-------------------+---------------------+
 ; Option            ; Setting             ;
 +-------------------+---------------------+
-; Start date & time ; 08/06/2021 18:02:03 ;
+; Start date & time ; 08/06/2021 18:12:53 ;
 ; Main task         ; Compilation         ;
 ; Revision Name     ; max80               ;
 +-------------------+---------------------+
@@ -76,7 +76,7 @@ https://fpgasoftware.intel.com/eula.
 +--------------------------------------------+----------------------------------------+---------------+-------------+-----------------------------------+
 ; Assignment Name                            ; Value                                  ; Default Value ; Entity Name ; Section Id                        ;
 +--------------------------------------------+----------------------------------------+---------------+-------------+-----------------------------------+
-; COMPILER_SIGNATURE_ID                      ; 160641081344597.162829812334854        ; --            ; --          ; --                                ;
+; COMPILER_SIGNATURE_ID                      ; 117270187186385.162829877337083        ; --            ; --          ; --                                ;
 ; EDA_ENABLE_GLITCH_FILTERING                ; On                                     ; --            ; --          ; eda_simulation                    ;
 ; EDA_GENERATE_FUNCTIONAL_NETLIST            ; Off                                    ; --            ; --          ; eda_board_design_timing           ;
 ; EDA_GENERATE_FUNCTIONAL_NETLIST            ; Off                                    ; --            ; --          ; eda_board_design_boundary_scan    ;
@@ -129,13 +129,13 @@ https://fpgasoftware.intel.com/eula.
 +----------------------+--------------+-------------------------+---------------------+------------------------------------+
 ; Module Name          ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ;
 +----------------------+--------------+-------------------------+---------------------+------------------------------------+
-; Analysis & Synthesis ; 00:00:05     ; 1.0                     ; 678 MB              ; 00:00:15                           ;
-; Fitter               ; 00:00:06     ; 1.0                     ; 1488 MB             ; 00:00:07                           ;
-; Assembler            ; 00:00:02     ; 1.0                     ; 570 MB              ; 00:00:02                           ;
-; Power Analyzer       ; 00:00:01     ; 1.0                     ; 1029 MB             ; 00:00:01                           ;
+; Analysis & Synthesis ; 00:00:05     ; 1.0                     ; 678 MB              ; 00:00:16                           ;
+; Fitter               ; 00:00:06     ; 1.0                     ; 1521 MB             ; 00:00:07                           ;
+; Assembler            ; 00:00:02     ; 1.0                     ; 569 MB              ; 00:00:02                           ;
+; Power Analyzer       ; 00:00:02     ; 1.0                     ; 1020 MB             ; 00:00:01                           ;
 ; Timing Analyzer      ; 00:00:01     ; 1.1                     ; 728 MB              ; 00:00:01                           ;
-; EDA Netlist Writer   ; 00:00:01     ; 1.0                     ; 815 MB              ; 00:00:00                           ;
-; Total                ; 00:00:16     ; --                      ; --                  ; 00:00:26                           ;
+; EDA Netlist Writer   ; 00:00:00     ; 1.0                     ; 813 MB              ; 00:00:00                           ;
+; Total                ; 00:00:16     ; --                      ; --                  ; 00:00:27                           ;
 +----------------------+--------------+-------------------------+---------------------+------------------------------------+
 
 

+ 2286 - 0
output_files/max80.jam

@@ -0,0 +1,2286 @@
+'Copyright (C) 2020  Intel Corporation. All rights reserved.
+'Your use of Intel Corporation's design tools, logic functions 
+'and other software and tools, and any partner logic 
+'functions, and any output files from any of the foregoing 
+'(including device programming or simulation files), and any 
+'associated documentation or information are expressly subject 
+'to the terms and conditions of the Intel Program License 
+'Subscription Agreement, the Intel Quartus Prime License Agreement,
+'the Intel FPGA IP License Agreement, or other applicable license
+'agreement, including, without limitation, that your use is for
+'the sole purpose of programming logic devices manufactured by
+'Intel and sold by Intel or its authorized distributors.  Please
+'refer to the applicable agreement for further details, at
+'https://fpgasoftware.intel.com/eula.
+
+'Device #1: EP4CE15 - /home/hpa/abc80/max80/blinktest/output_files/max80.sof Fri Aug  6 18:13:05 2021
+
+
+NOTE "CREATOR" "QUARTUS PRIME JAM COMPOSER 20.1";
+NOTE "DATE" "2021/08/06";
+NOTE "DEVICE" "EP4CE15";
+NOTE "NEED_FREQUENCY_CONTROL" "0";
+NOTE "FILE" "max80.sof";
+NOTE "TARGET" "1";
+NOTE "IDCODE" "020F20DD";
+NOTE "USERCODE" "0010F462";
+NOTE "CHECKSUM" "0010F462";
+NOTE "SAVE_DATA" "DEVICE_DATA";
+NOTE "SAVE_DATA_VARIABLES" "V0, A12, A13, A25, A42, A93, A43, A92, A94, A95, A105, A109, A111";
+NOTE "STAPL_VERSION" "JESD71";
+NOTE "JAM_VERSION" "2.0";
+NOTE "ALG_VERSION" "68";
+ACTION CONFIGURE = L20, DO_READ_USERCODE OPTIONAL, DO_HALT_ON_CHIP_CC OPTIONAL, DO_IGNORE_IDCODE_ERRORS OPTIONAL, DO_IGNORE_INTOSC_BYPASS RECOMMENDED, DO_BYPASS_SECOND_IDCODE_READ OPTIONAL,
+L27;
+ACTION READ_USERCODE = L25, L27;
+ACTION CHECK_IDCODE = L966, L27;
+DATA DEVICE_DATA;
+INTEGER V0 = 1;
+INTEGER V1 = 0;
+BOOLEAN V185 = 0;
+BOOLEAN V193 = 0;
+INTEGER A12[1] = 12;
+INTEGER A105[1] = 0;
+INTEGER A59[1] = 1080;
+INTEGER A60[1] = 409;
+INTEGER A61[2] = 34545885, 1;
+INTEGER A13[1] = 36;
+INTEGER A147[1] = 0;
+INTEGER A25[1] = 10;
+INTEGER A43[1] = 4087056;
+INTEGER A109[1] = 0;
+INTEGER A111[1] = 0;
+INTEGER A125[1] = 0;
+INTEGER A186[1] = 0;
+INTEGER A174[2] = 0, 0;
+INTEGER A92[1] = 0;
+INTEGER A94[1] = 0;
+BOOLEAN A95[1] = $0;
+BOOLEAN A93[1] = $0;
+BOOLEAN A96[1];
+INTEGER A97 = 1;
+BOOLEAN A42[4087056] = @
+Yky10u@@@@3q6aP86Zm6Gj@@t@@@l@tVVodl_m7_ybF@yZ@@vt@ztl@ztV_pV@ud
+V_nF@ypV@zd@_78e@@@Zj9Eu4knyF00000018W0I2GG4O0G0100000901HW11X49
+19H2FP03Pq3X430100I2C23Oa489IuH8X428W07W1Q06G014W000GkX100W04G01
+8Y8YG41489GIaGYWc1H23o6a4Ia8HnGI84W028f638Y8YG4H49kOGQJYOZ1nY7IB
+F4NIW0W0IWBXC73PZ4000000H4X8Y0mkRZSq6199420HMa7P3UaDjH6J2HQRasm0
+100Wq06oiO8E910028014HMNC82v1000G028W04G0180083A1204G028n8cOYH8X
+4YGW16m0J829aG4I8X84G0r5OG6W102e04G01GEvaZS00GaW1W2Ae05G0LAOG402
+v2CacSIAn3DY60Cm03O01KlW4X3I08W0BBuXO2304G4W0288ywX0f4o1Ceia1000
+H8Y8YoHC8Rp0aG29818W04G453O0W02801aHCo8Z2IU0G4H4Y8Ye5W2G4HW5NaGS
+I20I01oyCW4I81901aeK9G014W0288hm04G01808WYKa8wuXqZ7oHy81W0W16O03
+4GIQD04G018W16m030nfF4HO028G028W0H4RS_mGEK2PDaGCn4ZOW16m03WauA02
+8m06OWXCo83PCn4cO2DeX6Q028W04JCX9c0MWH2nM9G4m0hsm0Y9cO438W2Xa8cW
+ami7I3bW02801028n4O0Cm03OW16aG29816O03CWCVp0W06OfAC8SZ14H4GY0WG8
+kAY5OGCiD004G02808FN201a04G018W02G04GGH43I1mW02801CpCcPc9Cn4J8im
+2JOH4X8Y8014G029aG4I01q4WXK06a0WWS06aGWXoU64cwX0TL0LKH5gRjbjs2WW
+VFOW16m03CW16WeyC608G095G26OW1Cm0paKm0JCo86Pa1I1yG202Y0OW9cO6pCp
+C9088rW1cO28014Ga0WW80842uXe49aduXOF9aEp0Y82Gf4C0814W02GWXT9G01a
+W4I819aG2I8W0f0a8202X0OW5MO1BaG2I814p4UWCo83PeW2KG14n4U8J4300000
+05KW2A02G014pCpCc9cOfLC0H4H4Y2A815aO4JCnI0G0n4JCYPdTipExOdTs55mW
+Q0Cq4m0cOY9CH4HArPG4042lPGgfGo6b0W0280H5LeYAW2Cb0Y8Ii526af915LKH
+AoCpOcPc5Mm0Y9dSaJEv8dSo5HmZgV6aKWXSLF08H49hG2808WoLnGqA6obb0WAh
+CbLMPAhiooPPG6D3IDnGE73IvK1G014W0298X4IG29aW4G095038X42MNPm3W3w0
+a028Y84H41H0G85G28Y8AG15Ka6WXOL6aKpW4ZFa6YXiG94Hu1W06O03CoG6Pa5K
+mWc26WCo83PCn4cOYeHP9W8Y83PaHMmC6o0m0Y8Y84X4IG29WMub0W0Yai36044G
+028W04G01AeW2K04GoGa0IW16m03Em17S028W04KG1AeG6o8ZCuX7Um36OY1O0Qe
+X6qW7Um3FwG7Tq1EuW3Sm17uWp5kuYBKLLLfA00000e3TqH7eW2g303q0m0G15KW
+oAhObLKXAge2LKH5gW2gKWIW2Ae0500Gu86Ih8Hg56OdTsnEvaZSo9AH5LqG96m4
+JaZSo9NC03geOG606ofO0vaZQKJDrH4O0Sm17uW2AG15qW6Qe1DqG3Q294X42mIv
+708W02G00000G829aGY8Y84HKH9ge043m00I4H8Y8n9kuY7Or0Y8YDin6R8dSoHE
+pCBdJ24pExY88HY73gyO0vaJEo15Kb9O0KGHHOe4QEPGAE6G014W08W8u43P5P00
+0W04G016OW1C000000CW16O000000W3Em175eW2AornGA03G15Ki0eWWI64wmWM7
+6028W04KGH41622OGyA3o1OGKH9IJoG013W02801288Qf14JCn86144OqWeX6028
+W2KG1Ls66I1OGXa4054G4HGYO064H81KeX6qG3CW16O028W04G3DeX6W846014H4
+Y8Y04G01Cn4JO214W02C4Im08W6QG3DMm2Bi09aG2I9aW4IG1AeW2f0C0Bim2MOX
+5ym3Fu17SW3EW1Cm03Sm17u03iSaC0faIAI11aMxI8Ja7Ir818000HQPGq6C014G
+02DticR618W02OaH6n828014G2I8X46PaHCY4IG294W02805KG1AeX6qGZHCo8ZQ
+in6reZEoH7H1AeW2m03CW5MO2BCu07Sm9cOYHCbKYIA1aTzC08n4ZOY1Em17SW16
+O0JCn8cOW1Cm03Sn5NucRkoDNO03Cm0MOX5iG018W03OW1690G0Cm03Oyn7_u3CW
+16OW3Eu07OW1Cm0DeX6QOW16m0I85HW1m03CW1I819aO03Cm0MOX5iym3UuX5im2
+B4g536OW1Cm3FuX7ANvbNE@ypF_10000W12zf23CmF_vdVCvaJQo9dqaJEniF6OY
+@_pV@DlvdVUpExicTo9DvaSYJEv4qG3DevcRSpDqZSOG60C0QW16m03CW16OCpCp
+70CG3060OW16m01KPP6Oin6pOZDcn6ZWukI000CYH6Pa408m8ZCYHcP6pCpDkvcR
+iwghQrLNrghEYH6P4xipEsvkxStTp7HW1cTsPDxitwsRlrypFlvl@UtV@ycV_v1D
+qG3Qgf6rK3zI860QuX7ym3TA06WQgf6rKJCY9cu82O8GD304G82H4HC9G9IIm0W2
+Ae0b4IgdnWyeC0Cm06m03CqH7TeZ4IAfn0ioAhObCoG6PiZTsP7PaH6o8ZiC0O8z
+b4G4pCNYW1U_vdzCH45HM2lhbGW96a753v8aWH6TKZEA1vYbGO26OjrMpQdTcpEx
+6tSpDkvcRSpfdwqJlpTtTdpF@SdVsPExipSsPdb103f0mWpF@SdJCn8cOY2HBXyr
+I8YW4YcZXaLO03Cm06OW1Cmm8hDOWH04mK0I03lyYNUvLl_whUvbNyol@wtV@nF@
+yZtUxDlzwhUzrtysRlvdV_nF@yZV_vF@ztV_ztVF0OW60CmF@yZVcREpDtScRkvo
+4n0G01aW4I8114G029a8h93I6nWOjC8Y06osY1Cm03Om5NuYBkm5NS1ZCo86PW1C
+mGZQin6vYBkm5tSZRkvANTrL_vdVyp7VuZFka2G2SrLVvhl_oNVzbl_u3VyHkDQI
+WSo93PaH6oAhiaL6P8ZCGCPr3Y8Y841aG2I8v07Sm1EuW3S000fkOGqS6aEK28WG
+2H8X4X8Y8YvcREpDpCcP6H8Y8YGCn4ZuYAAcf4OcPcnCpidzsRFxjtUsRkvH1OGM
+JCGEvaZSwgBTrL6o8ZC90GG4084JW1W02CX9cOc4Z1eW2PoAm0GWDsm6RgG5LKX0
+28013CW160mWSC004G028WHCo8ZfKO0cPceWAI0pCRsKK6mCY8g2F3qSpDhPtTdx
+kxEtTtTcPcPCJEvoZY1Y9cAKH5LI9WXq4CefW48ZjsoMRjbjsQR6CCWIAf4bLMfA
+haIKI9bucRknDbKYIAP4ZCo829aG4ICn8cO6n8ZCYQgf6r4I829amK0C0nkwANTr
+LkwghH1O029CeijIWOY92H4HaS4CWCo8oGb6G4n4ZOY9pM26G6TrbkwQ3Rin6sOZ
+DiH6PIAmWK0CWDsGniE6W2kv6tSJ1AeW2Uwfdya2AG15KXAge2dSo9E9YeyeO0H4
+n86Pan4080ZCo869W04GmORcOWn02e86D0Y8Y847PaCJOe3D3Co8ZOaLNrghUYJE
+v4tSpDkPcPQIp0xl@_s@kxStTtiuX1kvtVzxltvkxk3tSpDkfYgAcC0tSpDkfZEq
+H7LpCP0geYAKH5pxgaGW36atu30I4HIZKYinO8y23uhlY4cG24JC@vl@_7XX1TOO
+0@zt@306e103o0m0_xFtucRkJ0WW80C0tStjkxkxK0O8Ho704aG2I81OJs4000ZP
+in6p8ZCYH00WCHI03lyYNUPa1OCm8pEhPdz7@ypFUvbNyoBla9Y1_vdVypl@c9Y1
+nXOWV@zF@ztVPYm0Evap306e103m17SW3vaBhf4054G0280Cr4F0uBlKEW1nQQG6
+B6aGW1L4OW@@@V@@pF_vdN39mWKJOmRlyIN164TY1UzrNN0eW4KC8Jp70G15eW20
+OhsAYiq08Y8YG4H43fn000000uipSsPhRzrNF603W8YCYH6PqwhlkrV@Tl@_wMVz
+rj@_xR@@@t@@lkrNVz4088506sGs0@@@EsPdTYKr000m_sV@zZMnW60CmSpDdvW0
+YY_O04G87vaJkq_O8z23m8Z0aQL2W024dAm08Y8YG4nLdwn0hY8Yz5O0aH6P8lwg
+MTrrj_whRrLNrgxkhTtTVxl@_X_OGhF6OtTtrkpDN519OkPcnCpShRlzsy0P8FA6
+G9bKYoCoG6PWHUK602eW2KGH829amqcO0pCpCcH018W0duaJEX02801rKZQgvANT
+rrqcC028aW4I8XK0CeJ43uhl_oNTqXEw8sQV9a9Y1Sn5NuY8Y4Y76Cn4018W0ca3
+3CpCpO6m03OW1S6030OZDgn61E093mCm03OWX6qG3T2I6KZa119nGmA6mTt1E8f4
+oOr0H5LKYY16m0314Df1XJ_GOO64HW104m0oeq00m4JOY9WZ8O3W3Eu0dPcZ8e2C
+pExOdzcrSpDBuW3Mm01Kod9GiW2IG1rW6Qe114G028cO4JCH8Y8Y8cI6qJFzed8Z
+KaH6f8ZCIH4H4Y8Y84H4zfl_wJyn7luZDMn6RaYCo83Zw1G3FyW7UkpZA1G3Du07
+Sm3Z23W16O0ReXCqG3PeX6AiB3ogC13CqG6Qe1Yfq0pin6sOZJTwfdwm3FqX3CGA
+09OZBlqbNUv205uoB@rl@_hRlzMt_xl_ztBTvbNYQgf6rSo9EvaQKJDreaIAHfbM
+oIBfE503m9dSYJEPCb63G8G0bHR2W200YcBXqiJ8XN3IroWe2P8RK303Ce05KG9l
+G3G29qW6Qe1jqIBQfXc80G0DqG7weZEqIBjebEwG7TqW6Qe9W63G5LKYIAfCB73K
+PbKW2Ae8hF305KX9im2ByE6IX63Cm03OWNUnBldwqJF500000Qe1Dq00vJR014I8
+29aJSo9duZF_mdF_m7VuANTrLFzqJUoPdvip@vl@_ZNUv5lysRUxjNyoBlubNUnB
+@yZV_v7@ypF@@@@_tRlvjtSZRkv6NSn5kW2g21DWKI95fW2AG15afDP0828WWKD8
+GE6oZYX8fDW8Y0OeK94ta1SrLNvgBkm5N_rl@_BVyn7_ysRUxDNvghkoDtSZR@yZ
+V_n7_uZFypF@udl_Msa1vHnGGV64H739DPG4TC04G0184GGqAC000G2I8X4AeW2K
+08W04m1DuW3Qm17qW4JCY96G028W8aG2HuW3Qm17sm3Fi3FyG7E@ycV_9DvaJQqH
+7re3FSA064FX1Eym1DuW3cLX16QenYkn0ZSo9Eva1Cm034gk4H4OGc860G03H8X4
+IY7C0I8X4a02O0168uW3Mm4JSUP60OW16m4JCY9MO2BimXYmWwhlUrJDrecwoLUv
+bdjc102em4MOXbBs308aGAarW49C80G6QzoWORP8wB3w_oWCjC8204m03CX9cO2Z
+Co86Vxj0SC85062mXXKlCmSpDcn6RCpCpCcvrNzwhZizM26Pan21o0ZCo86PaNY0
+AXWWC0G014WOWXO4D82S3000CZPcP600000OanGQC0G014WOaHCo8GHOdGCs64nZ
+1UzL6n8ZC6Zj1X8OWm2BCX5I829aSbRkvAcOYHCX4YG29c80CuMt4aIAf8bG2fQN
+64I8jfjsQBD16W8Y82HW02G0XCaH6v8kD8306gqE10XCoG6PaN0eWe0C8p43CqG0
+bnj142H4X8Y1C1S228W8MKn0H4G028W4aG29eW2AG1LKXAg8YTLCG4PbbiogALLL
+LgeYAKH5LeYAwKdTsfgggALnDtXHn0kv_ANTrLaG2981NSXBk00000GUKg08WMm2
+BiGQ5C08W02G3CG5m9OWBliL53Cm03OW9cm4JCW16O07UuX70CG306un7VqZ7UO4
+08um3Fsn7Vi7VyHFICn8cO2JzAXelC8KB3YMXXKpJ00OY9Cn4Wz@J000CKuB6O00
+08FJ3G014WW3Em17CmSn6OWDsm6RSXBku27Sm1EuW3Sm1Fwn7Vq5NSXB_yJV_v5k
+uYBSrLNvgF@qdVUbhkwANSn5kuYBI1mWyeO05KG1AaIgCJC8FACw@@10qG3QeX6o
+LnWK_J8503g1m0TtTtwkhkqLNDgn6RCB03qG3Dc1G2L1aW6QiHDsOZB0KGK064Ll
+Dj1OJs0i5R0sXDe800m1EuW3yn7Vu300q8HEfNiHD5cjR_3VO0300mk3jVOKZs10
+0C3T00u@W@xVu@zB_F@Z@lFv@wN_700000W00000000a0000000W08k@4A1WXUwD
+8zQ30002S4m3f1ymH064B03h1O00W0mf1OW000000400G00b08ngFC0I0083@404
+02aH03D2OGZ_6S403nwRmH09q@V2h1m000OSr100N6aG@_9CNG2b0mGE@CiSj1Vz
+pGH29S403h18HK1Ci@l1J3yGq2FaRG2rBamF@9iol1H5mmH0C00004000nEu9G00
+W8Q130100y2G200GES7000aG200000W0I02000TYRG909G00WO4W7E2u10100714
+21400G09W0W02c6W1G2908W00E2OaarD8ZW4G01WC2G200000044W20018G0mW16
+028W4W0GmH0602e0Y0200004G0G01W04G000000WWY420mH090000GUc1mv2IqVX
+SXOKH@5OK416zNqoIx68Fx0Ozg@J@w@pp_lyj@7lx@m@_@xm@xUy@jB@Fxp@lEz@
+gN@Vws@Z_z@dZ@lvv@Nk_@al@@uy@1000MLVWz@Nd0200@3003t@Vm@@7y@@1@@V
+m@@7y@@1@@Vps9Kz@y6W00I__@z7o70000mu5WYt@Vu_@3_@@ot_Vu@p1G00q@l4
+YF70_Fu@W@@l@V30100i0G1000000G0G0000G08mz@L0a00O1W2wYAXh8PeH0R00
+04i0G1D2OK61g0000KU00Gn@s3002000q9K00WW@@Fu@@BVx@W@@lyj@RhXX_@Du
+z6ColXX_@DeAH9Q4mctRIeH0ZADu40CP9@7yV@3@301W0iX60W0I0200C290W0a4
+I00G2H00048a00W4MG4GG8110W4102X0O0000C19WWW4cG40G0H01W4CX40W0MG2
+01CH0O00W94104maK200I8100WXiHW4G09X5102X0O020B8288aWfa2Q4m0XK0G0
+MG1G1DX80W0cW2G0Q29001iaaW0IQ4mW_0UeH0OG280q8W1038188aG41W1YC22W
+Yd04y@@1@@Vm@@VwVxz@@W6m3WW@@Fu@@3_@@alpN0000f86WW@@Vuzy1G008CM0
+8u@@7k@@W@@Fvx@3_@@W@@Fu@@FE@@Yt@Vu_@3_@@ot_Vu_@BVx@XlJevx40402q
+yD63VRGpt6CZl1zupGZ0vW000ivx4Q4meI381000ey00WXx@Fu@@BVx@al@@uy@B
+U@@sQOe@V3Ul1ZyROO6V3E2MY61ivzc4Q4meI3E10JMopn9yVmy0WhaxVuV0804W
+9a004G2G00WH8104WaG200I8200W0X400am2Y0229800a80G8403000W98144am4
+Y0028280aW9a004m2s8W10MG100CX80W0caI00G29000CaD2a0289i80G8403G0O
+1H01X4CbKGZ068a202m2A0Ae94104m4K02GJ8108Wba44GIZ06q7m3D203I01W61
+C0O0901X4Y80G01ROtmz@7y@@1@@Vm@@FS@@1@@Vot@7y@@1@@Vm@@FS@@1@@Vm@
+@7y@@1@@Vm@@7y@@1@@@mz@7y@@9V@@mz@7y@@1@@@mtCqyj13VRGptO0a00evx4
+0800qyD3D2a3080WclPeH0ZADW40c701@@Vm@@7y@@BzBnxtgR020uuy@tV8V040
+02Z50QhXX_@Juz6Col9XxOIO8@7Q48d7AOeH0ZAD8400maA100_Fu@_7uN90808W
+DK104G4G000J8108WaW400YG20001X400am4a022I80820421m0G0000B8188am8
+a002G2808X94104m4K08Y0mW61C0mIA10094100mWK20Q4m0GG09H0WGh06W020J
+G2888Xf4504G4G081J8508W5a0KGJd06W0Q2H001C9bW0a4I000O8911aq80F8W4
+G00003I9809W1K6160CW4WWH612GnpW@@Fu@@3_@@Xx@Fu@@3_@@W@@Fu@@3_@@W
+@@Fu@@3_@@W@@Fvx@3_@@W@@Fu@@7k@@W@@Fu@@3_@@Xx@Fu@@3_@@XlPevR36_s
+Wcln0810Gpt90G00e7V6Q4870G00DVpGZ06LQ090CF06k@@W@@lyj@J__@Zp@luz
+@RhXX_@Juz6Col9XxOIO8@7Q48dtRIeH0ZADW400maA100_Fu@_7uN90808W9410
+4G4G000J8108WaW400YG20001X400am4a022I80820421m0G0000B8188amq6W1W
+4cG40G0JG1W8203Q4m00Bf400aG40003I90eH03011a4102j2O0280C19WWW4cIK
+0G0H01W4CXK0W0MG2G1DT2O02e94104maK22GI8100WXa44GIZ0yW0I01000C8bW
+0a06GP4OG406WWDiRmZAM@@S0C011@@@_3v300200XnIm@@7y@@1@@Vot@7y@@1@
+@Vm@@FS@@1@@Vm@@7y@@blbF0200085n1@@VvR@7y@@1@@Vm@@dyz@3t@Vm@@7y@
+@3VpGpt6Cyj1DVZ1G20WclJ0W00GptCq8GE0W00Q_cX61Cgq0I0OU04y@@1@@Vm@
+@dyz@9V@Vot@tM33z@dmxDOaVJ2tnaGE_Fq8GENppGZ06LQG800W9L200yVm@zFm
+lI0G0G0Re208W8W000cG20G0919004X4000229008X98144aG0G40842W1W0000M
+G2GG8XH8104W4G0G2J8208W9e0G41W1D2O0WbK200I8200W1f40q8W1WW0IY00XM
+1C0140cW4GGG2J9A08W8W0G2cGA0G0B81eWcE1C01q4Y002OIA1189a000mGI228
+fH0UG09W00006aIG0I03eC2C0O0901ZC24WYd1@@Vm@@7y@@3t@Vm@@7y@@1@@Vv
+R@7y@@9V@Vm@@FS@@1@@Vot@7y@@1@@Vm@@FS@@1@@Vm@@7y@@3tdF02000q9A1@
+@Vm@v300200DZtmtCqyj13VRGptO0a00evx40800qZF3D2a3080WclPeH0ZADW40
+c703t@Vm@@N_s@9V@@nv@Ny_@jrmG@@9yU36vtamTC9Ca@3D2aJvkCq8WHb64200
+OIb000@7yV@3yh40404m4Y00282800W9a004GIG200H8100WWG200IO2I0119404
+102X0O08000W5a044IOQ3m0G2J8208W9e0G41W1D2O0WbK200I8200W1f40q8W1W
+W0IY00XM1C0140cW4GGG2J9A08W8W0G2cGA0G0B81eWcE1C01q4Y002OIA1189a0
+00mGI228fH0UG09W00006aIG0I03eC2C8203Gm6s5y@@1@@VvR@7y@@3t@Vm@@dy
+z@1@@Vm@@7y@@3t@Vm@@7y@@1@@Vm@@7y@@9V@Vm@@FS@@1@@Vot@FS@@1@@Vm@@
+FyD3DVRmmt6qyD60900Q_E10200DVpGZ0v0020evR6Q4meI381Wv1Gm@@7y@@1@@
+@otvB000Gde0mnv@dyz@jrmG@@9yU36vtamTC9Ca@3D2apxD9q8WHb6G200OIb00
+0@7yV@3yh40404m6g00282800W9a004GIG200H8100WWG200IO2I0119404102X0
+O08000W5a044IO4I0018140am4Y002O2A04H0OGZ060O9b00W4Y000OGA10D2O08
+8Wa80GeL03G01W98144amKY2028280aW9a204m2I0AefJ03G0DX80W0caIG0I290
+00CaaW0IQ4W74G28000W1f44W4m0AZ0306G2Gm8Z01euPm@@7y@@1@@@mz@ltJ5j
+@VE06WWW@@Fu@@BVx@W@@Fvx@3_@@W@@Fu@@J__@W@@Fu@@3_@@Xx@Fu@@3_@@W@
+@Vu_@3_@@al@VuR6Q_sWXlDevRC0I00qyT20400Q_cX61o1040GptCq8WHb6G20p
+3WXx@Fu@@BVx@al@@uy@BU@@sQOe@@4Ul1ZyRIuEc46o@X61ovRQ6Q4meI32100C
+fI00W@3_l@1_L20202O2H00141400m4I00289810W8a000GG81009C19WWW420Y0
+0XG0C04000m2I0229Cj1O08X94104m4K08Y0mW61C0mIA10094100mWK20Q4m0GG
+09H0WGh06W020JG2888Xf4504G4G081J8508W5a0KGJd06W0Q2H001C9bW0a4I00
+0O8911aq80F8W4G00003I9809W1K61641W18O3x6kFV04000GAY7k@@z7o700400
+2ZbW@@Vu_@3_@@al@Fu@@3_@@W@@Vu_@3_@@W@@Fu@@BVx@W@@lyj@3_@@W@@Fu@
+@J__@Xx@Fu@@3_@@XlPevR36_sWcln0810Gpt90G00evR6Q4870G00DVpGZ06LQ0
+90CF02_@@W@@Fu@@J__@al@Fvx@RhXX_@Juz6Col9XxOI87@7Q48dtRIeH0ZADW4
+00maA100_Fu@_7uN90808WDK104G4G000J8108WaW400YG20001X400am4a022I8
+0820421m0G0000B8188am8a002G2808X94104m4K08Y0mW61C0mIA10094100mWK
+20Q4m0GG09H0WGh06W020JG2888Xf4504G4G081J8508W5a0KGJd06W0Q2H001C9
+bW0a4I000O8911aq80F8W4G00003I9809W1K6160CW4WWH612GnpW@@Fu@@3_@@X
+x@Fu@@3_@@W@@Fvx@3_@@al@Fu@@7k@@W@@Fvx@3_@@W@@Fu@@7k@@W@@Fu@@3_@
+@alp7000006WWW@@Fvx@7_cXclDOuR3Q_E10002B0KmmtCqyj1tSRGGtCq8WHP4a
+60wmcXx@Fu@@BVx@al@@uy@BU@@q@J8@63w@tWtRO8@c4kmFXtRCe6V3UlXX61CA
+Z0s4QX0yVm@zFyF1eW6X40IGI01G0DX80aGY4IG0I2908W44aW0I4MGAGH8X01a4
+cW4GHG21189ja8WWG22280Q9901X46bK0IGI0109CXe0aGcW2G1Q2908XiWD2O0a
+bK24GI8201a1f44q8WHP4y3G00183f48W4m0a2A2I8809W141K4IGGm4Q300AVx@
+W@@Fvx@3_@@Xx@Fu@@J__@W@@Fu@@3_@@Xx@Fu@@3_@@W@@Fvx@3_@@al@Fu@@7k
+@@W@@Fvx@7k@@W@@Fu@@7_EXclDOuR3Q_c18000DVdmmt6qyj13VRGptCq8WHP4a
+60wmcW@@Fu@@3_@@alp701000aYual@Fvx@J@FXyRCe@V3UlXXyRIe1@4UlnWLyD
+uz66Q4meC2OJe52m@1@t@m@4W2Q5Q08191401q4Y0G29I81189a0W0IGG228HO1f
+05X424GIO2I051944WaqIY022988W0eba044IOKI1819140am4Y2G2P2A05e9a0W
+4o2s8W1GMI9G09X804G6aIGGZ06bHmF0104WCaIW0I03GAe88XW0a06G4Gn8511W
+iVH21@@Vm@@Ny_@3t@Vm@@7y@@9V@VvR@dyz@9V@Vot@VS_@9V@Vot@7y@@1@@Vn
+x@FS@@1@@Vm@@dyz@JtFF00OWZcP8vx@J_E@XlDevR36_sWclP0200Gpt9Cyj1DV
+Rmmt6qyD3D2OK61f1WEiPu_@3_@@ot_Fvx@FE@@Yt@Fz@4olnW_@Duz66ol9XByJ
+uz63gntWtROeH0Zo8WDXM80@7yV@3@J0AeH81W4a4G04GJ8209a8X44WaG202811
+98W4X5a2K4I8G09X981K4aGG0IIB9288aWW02WMI2GG8XH95W4a4G0G2J8A09a9e
+0KWcG20I8BOZ060P9b01a4Y0G0PGA11D2OK61@040G0oGA1281C0fWYW422G2O0H
+05X444CXs00Wot_Fu@@J__@W@@Vu_@1200G00010088000W50A00080004000Y00
+000Q0m0W0W0H1Om50600009@F3Q0mWC0Iu503w@lhUAD8fo4o6q00G00000Wo18X
+C0C00010080001000W000401C2W10800040080208603uHs00004H00m00000004
+4400000240a80000040401000824A0O00000000A10800Y0200600000881W0000
+0GW4G60000800W0800G0Gq00eHW40808q8WHP4u1400000982W00010GaHW7W000
+ADm0002Wb6a000C7Z000@7O0000m@3C0242Y80000240@78w53g0Y00000101G80
+042WW2W36Tm0008EI0002_@@W@@Vu_@3_@@W@@Fu@@3_@@W@@Fu@@3_@@Xx@Fu@@
+BU@@aZj70000008Eb2007Fd08W0WZdJ0G09Gqp90100008Wmnp90000H810mnp60
+0204W0GGqp9q8WHP4a60SSZW@@l@@4010GqyT2020XwV8XZlDe@X4000W80G2fvR
+300002009i@X4Q4meC2Opdx2GovyxhY1euz@x@F1G014z@d0W0IezBO008Wmnz90
+000H8X4mmz90G09O@26Q4meC2C300ubT00WzB_Fvx@FE@@Ytv7w0800000e40820
+1GaI00014000W4020W410I180aG40W0002W40GI00e4I0G01000W0XG0G0e0Y420
+08W0001W0G084840A09W4eHW700WW8G200f12IZ06bHmF01G200f0242808W0Gf1
+CWW8mhrBlx@tWxnP8gC60GkC200000ea0000100I000a4000W8a20081000800WK
+0W0402G900W0000a000A00001X400080402080a000141K080800001W0W20q803
+I0001I8500G2400GOZ06bH0F044GG00W0G000X002204mI3OGpk1Gm@@7y@@7d@V
+nx@FS@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vnx@FS@@1@
+@@or@dyz@7d@Vnx@FS@@1@@Vm@@7y@@7d@Vnx@FS@@1@@Vm@@7y@@1@@Vm@@7y@@
+1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y
+@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@
+7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm
+@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@
+Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1
+@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@
+@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7
+y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@
+@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@V
+m@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@
+@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@
+1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y
+@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@
+7y@@1@@Vm@@30004W00mp@pBW00m@00Gm@@7y@@1@@Vm@@7y@@1@@Vm@@30008_7
+x1000O0208u@@tV8V04002Z502_@@W@@Fu@@BVx@W@@Fu@@3_@@_@D0400m20500
+0000010100001W0t@R0000X50Ae@V30081i0G1000000002008O1W2w@tW61CAZ0
+sqXD04y@@1@@Vm@@7y@@1@@@m@v3W00Gpu1G@@9yUZ1vtamy@CyUJ2vtaG@@6aVZ
+1z@pGZ06bHWP00WGL800yVm@zFml21G0KGRe209a8W04WcG20I89198W4X402G22
+9G09X985K4aGG0I2B82e8aWW0IaMI2GG8X014Wca4GGG2J9A09a8W0G2cGA0I8B8
+1eW6X40IGMG1G0DX80aGcaIG0I2908WCaD2OK61@W0I0108WC8bW0a06Gb6O0m0I
+0A6P480a23_@@W@@Fu@@7k@@W@@Fu@@3_@@plu70TYIm@@N_s@1@@@mz@7y@@9V@
+Vm@@7y@@1@@@mz@7y@@1@@Vm@@FS@@1@@@Kr6qylz00CU7_cXclDOuR3Q_EXXlDe
+vx40I00qyT20400G000syT2D2OK61if3R08u@@3_@@ot_Fvx@FE@@Yt@Vz@4UlnW
+yRIe_U6Ul9XyRI86V3olnWayPeH0Zo8mC00Ge1@dm@1@t@WzA401G1DX80aGY02G
+0Q2908Xa4aW0I4I08098a01a4cWKGHG21189iW8WYG2228HQ9901X424G0QII011
+9Cbe0aGY0209O2f08XiWD2O0a5K04GJ8209a9f44WaG20283PZ06bHmF8W4G0028
+3I9809W1Kf160CW4WYG212cejW@@Fu@@BVBV00G008CM2_@@Xx@Fu@@J__@W@@Fu
+@@3_@@Xx@Fu@@3_@@W@@Fu@y1G000WEH9u@@3_FV00G00ePy2_@@W@@Fu@@J__@X
+x@Fu@@3_@@XlPevR36_sWclJOuR3Q_E1W400DVd00100400WDVdGZ06bH0Rwm602
+_@@W@@Fu@@BVx@Zp@lyj@N@FXtRC8@c4gldXtRI8@c4YntWyRC89V6Q4meC2C300
+4g210W@3_l@1_L802W2Q3L08X414W0q4I0G299811a8a0G0IG81289C1fWYW422G
+IO1H05X444GYqII022948W0qaa022IOAH18X4140Im4I1G2P1905q8a0G2o2A02e
+941W4oaK22GI8101aXiH0Zo8u74G28001a1f44W4m0gq0306G2Gn8Z01WKOm@@7y
+@@1@@@mz@7y@@1@@Vm@@dyz@1@@Vot@7y@@3t@Vm@@dyz@1@@Vm@@7y@@3t@Vm@@
+7y@@1@@Vot@7y@@9V@@mtCqyj13VRGpt9Cyj1DVd0G20WclJ0W000200mclJeH0Z
+o8WDTO303t@Vm@@N_s@9V@@nv@Ny_@h@dmxD6aVJ2rtpmxD9aVJ2nuRG_D6aaF3D
+2OK61c1002Du@4_Fu@_7iNX080Ae941W4I4G02GJ8109aaW44GYG20181X48Wam4
+a2A2I8809X541K4IGG09IB9188aGW02GJI2888Xf45W4I4G081J8509a5iH03WiW
+2W0Q2H08XC9bW0a4I0G0P8R4meC2_11a020G0PGA1181CWADm0W1a0K4I8Gm4jby
+z@1@@Vot@7y@@3t@Vm@@FS@@1@@Vm@@7y@@3t@Vm@@7y@@1@@Vm@@7yV_08W000d
+u6y@@1@@@mz@7y@@5l@@onv300000XKPm@@FTx@3t@@qj@7y@@1@@@or@dyz@7d@
+F00000280FtRF0U5gXx@Fu@@7k@@W@@Vzg@3_dV1q0A1@@Vm@@lVn@vVyVm@@7y@
+@1@@VvR@7y@@3t@@qj@VyD3HVRmnt64zT27VRGqt90a008wx40800W000Cwx4Q4m
+eC2I32100EC5WW@@Fu@@3_@@d_D8wUxD010yTu@xFaF0000WnB0z@dmxD6aVJ2p@
+pmxD9aVJ2z@RG_D6q@F3D2OK61c1002LX00m@1@t@0@A401G1jXA0aGY02G0Q290
+8Xa4aW0I4I08098a01a4cWKGHG21189iW8WYG2228HQ9901X424G0QII0119Cbe0
+aGY0209O2f08XiW4W2Q4I081P1501q4Y0G2PIA1189a0W0oGs8WHP4y328140W0o
+WK22G2O0LQW10381e8aHWWuAAu@@Z_z@W@@lvv@Nk_@W@@@pTrx@N20mTEblTU@1
+L0WfHE_1xx@t008ZQblzVm@@dV1@0uPqAU@@al@lvv@lEz@W@@Vu_@NT7__@PG0C
+ZIm@@Ny_@BN@@z7v300000DWNm@@FyD3DVRmmt6qyT23VRGpt90a00evx40800W0
+00ivx4Q4meC2OJ7s0mpn@tyy@blbF0200k2C09V@@nv@VS_@h@dmxD6aVJ2rtpmx
+D9aVJ2nuRG_D6aaF3D2OK61c1002LX00m@1@t@G_080mK402W2Q2H08X414W0q4I
+0G299811a8a0G0IG81289C1fWYW422GIO1H05X444GYqII022948W0qaa022IOAH
+18X4140Im4I1G2P1R4m08Be08WcG40I8JI9809X404G6o61CAZWVG09W004G6aIG
+0I03eI3C0O0905X4258Th5l@@mz@7y@@9V@@nv@7yVB90Q004GW_@hhOf7I1WY_@
+R100WCh00WN3Cuvf7sF0Zx3COCWJIJWXxtdK0005V10WX2gu4W9wFmW58DW008GO
+2aK6f118qr@3y0Wza9_2LwlCX14CerXCVqG50SallVeIG6Cq0Y1180C0UitTEoi@
+@n0mVwFsg1tbqIyBuryY77hC30KoF00WW9bqoL49300800pjpwFmK0K2bP0C0800
+0WxNjkamcH94SS2@cKHHG645437m4B00W0000108000mDpS@X4dELHt33N7b400q
+GhFvX5O2lax4000100sGgbgDozgYcSO611FpY72r@qj0W000G_diQr3NU9nmJ9qY
+M2D91y9z90WzFQbD9kVvX@ogOyi7Um9M000108W00mhMjt53dkPGcR9iX339lz01
+0GW1mUOxCN1004W00001nTHvF64wJ2r@nGoPISa13F1ym@RekIj10W00G000W0Mn
+Pmn4QjsWA7Ve5W46Uq028W0V1yG2Kq2028e@V3GWC710140W0000WG00800W0008
+W02G0W0W000Gpt6G000OuR3Q_E1Y400B0Kmmt90G000108mJu9a5U2D2amJuCa5k
+1FXRGMu6q803RZpGZ06bHG50006YBt0042pZlbmgv6ywm3FmKH2SAM7wF0e_nACB
+XlNaeua7EoWXiJV8_HNH010W000000G020UhtMDukp4AmvX@3E9_INl@m000008e
+FPxEqWxJI8r46wVD108W0tOyGrjF4Xp3zFKA02004idC0G01dCbXHVOu@06slmZA
+OUO_5KHmfdjVH25uymuDFSVo3pz@m@1k_bi100W20mZkitO20G20YyDXnQIu3830
+W0A4zC30901UnFXnQCO1g4Ul9XyRIOGV6spnWyROeH06ksdX61CAZWG0Xi0yxS2@
+7OmQF9iS63t@Om6q60000H008m@1FCNmRBAK40800SRE0FkbmNH6q@03v@d00GGW
+u6OG008mst64t0U9Iy3280WCdCW35201eWMX40IGI01G0DX80aGY4IG0I2908W44
+aW0I4MGAGH8X01a4cW4GHG21189ja8WWG22280Q9901X46bK0IGI0109CXe0aGcW
+2G1Q2908XiWD2O0abK24GI8201a1f44q8WHP4y3G00183f48W4m0a2A2I8809W14
+1KCIHGmxI300AEtZGtDO6j4oGtWKqh8zwO10080O00evOFw@VR000cg400wjFaJx
+JurzJ_Sto_@b000ObJ1000A00x_xHi@Cizymdud000O6z200xNeIkp@CzlGzFu40
+0OCl000drBHpZIC1Q51@NHMaRSd1I7OK400W000GKQ0006CuaG@pPM4IwzlE000E
+C4002jjYQRJe_J9YWjYSytuI09wolbGzl20440008KO300VcZHvlL41S2h@cm4w6
+q_V2ndULV@FS03FHdQ000W000mos200gx7fXuJuyzGsaMe1S_9wS3400zA3008fU
+CsjNY7yP85g7IUFM000100WBr300q@l40800gz6x_@P000uZL10WTxLP@Q6YHsWZ
+ZtuAVCQ3WXGzhRu@4000qWS008lTFI0QZ_@h86hD2aMY04s3004W00WCh00000G0
+ID@XFpPuqNLcksL000100Wvj100GG00OmO6IkdXbBU8rR9_0NYnKge5PB100BWM0
+0ucdhcY8amehe@Vs000YOP00eh@4MivX4tt8rT9A@dXQ3mO8s72lQlYtD0004aP0
+0WalPeq1RkIxXShs82@6100qx8008ry7wEgYr@Puvg46jxaH9guDF@w@t000mbG3
+00AVAadEme0C3U0uWiyau1FC25dXRunRuV30WYzrzu3Bl9nzBFqM23l7bG029aY6
+3LnKHcw6ycg1xPktov60WjWDnD6UjKYYFJurw4_U8XuNPe126wWDXP1UuIx4wYrW
+q8O8DIs2bE10G0000BAUEEX6pJOtI9w1GYO0mOwTFw2ebpCrgu_4GWLXUwl1tSR0
+800028W0408080004qT200040W000050OuV30I000004vvQ30e00W000400Gmx@6
+q8G200000W00r8G2@nR0400WimD00280049000004P00U2FXclPeHW4s6tWC2U8B
+y4U2tWimDeHWMG0080000008G02End5xVOpd7MD_X8uJ84@4QnjYDGC82C9sptWz
+7_Pu@YQlo04iSens@mpfFCwl13@dG@@94z@33u@mt@FyXV2Rw@GB_uzVG28ezo1W
+000G008iX4_FeY_@b8m9CYHuX@3g87Y4sL8XU@h301K02iuklAIutxA_FuXddDei
+B9YJ9X59C85v7w1DXZ9I8EW7w26cEn@P@2300000Wspuxh46ztWVBIurO6k_vXkh
+JezO9UW5ZYCbu@WzAvF10qMAZtzm_5UisZ1zT8HRE9K826HoRmm6FS6kD@7W400W
+04m7ntsd01W0WewJuz63kF9100W217m0G2GWGyJ0W20Gxu6yUl15wOmPA6idJ2ng
+a0440WCyJ00W4mg_9yU335wamu_9SmJ27yR00GGWD_Juzc4Q4e50G0180040004W
+Wkg_r@40W40SE03V@p000GXV3P0810G7s94sZ1N@dmS1FK_@3XzOm@19i7V2@7qI
+xF9yVGE32b00GdO080WDsRGv2FaUF3J3bm@19q@V24400G00040V24G08Q4OZ_7C
+OHX4wVmc@34204GG3J600zq002G9Q2908Xa04W0Q4o08199a01aCY0G09G811C9i
+WeWYG2238HO1905X424GIQII011946m0qIY0229OAf08Xa040IO4I181P1505q4Y
+0G2P2A01e9a1W4oIs8W1G6I9Q4034G0QD2uX0G2PIA1189a0W0oGI2289Z03G09X
+r8mC8W4G00283I9809W1KZ060CW4WZG212CQ@9@b8wz7EUNY7dzO3v4wYFXo02vy
+lwGG000WcMUhuXF@F70mCwxpBKnbOae89rFk700800O0tnyFJ5aaSzV8r_Zq@zy0
+09YFOJaIUiYwp@40kRKhrUi1L59s7ouxNzQ@FtuB10yVN000004G0kvcXX_bOaRC
+M2iY9@L9CaPcqV904G00Go7@hzX8RbeoT3I1GY1uOOoSFkZUf@74QuT60Wa0sD@6
+V5Nnnf6yyVN5mIID_51WsmFdxMQfFjv@D30Og_domCJ_3d@7oX@pq_F9RwN40c@i
+iLDuRzJcPUl_@f20himu_pCrkDj_JI1yLCeT2VuNqmr9W00000AYpb@55rVBV9ap
+8_85zS20uTEELlbt3u96581G000W2eAkCOUoHYEGYTvx40045jhlGfUeoFQOq_lA
+pGl400800exXpkTo3HsqzV5j_3J38Q10RKBSnYc_tWWtzu_1XAk7Znxp101IOP_U
+iFrFLsWHGE2rCOB9@Z1060potC8sDF6tVfUuoPGme0G0100SlxqEFclfY7ybOCAL
+MIDaMybeL@4_s@XXppvuS3G00000nDRioDUWRZ40PexV3YoxXjmmOpeAgTwaE_Ce
+Is4257Z_@L101d@H@FaJ_3j@@me@ICy@3ltZHJ0RqYl4@AomU_ICB_3jtE308WW_
+@D01bPQ9@60094eMx46_sWclJ8dQ38W20q@l14900000Y8014ucR3OW002008egV
+3Q4uXimPW000040GW61C0020mDt64qj100G18W12q8W1T@RG619G000eH03goF10
+W004G00Q4m028W8D2OG61600088BS6s6tWI3a0000020W140000012GG8T301400
+02Gr_OSH@3zMcGL@FKtV2byxnd@L4@V2P38HV_LiZV2VodGu@mW0288uV30WK@bi
+l7LyNn85ICOm3dWYHe@LyV06PEZng_9yVGE8002E_t00WUXXEaG@3gaiFCzFWqp8
+Fq@GExVa00Mi@1AUOop7MdJY87UewkMskwdlST201G02whedBse4aGo@uatAUuxy
+JYK7Zkq5Q_53000000tny@0RYzhkcuHQBP300010004Dz@48W404OV2ltm0000Wy
+RCu2@46hnWQyDuQ662d9XryDOFd4IqF18800D2eIq_9CMJ2pxR00G0WpzJ8Z0U00
+0000DCSk0CoybX@3GQHXM_FWX5vPOH1O_FO30iRkp5GLZ06bHmO2jG0805qAq0G2
+I2802e941W4IaG22GI8101aWW44GYm2I1A2948Wam4a0A2I8809fb4144IGG01GB
+9188amea2G2I2808X945W4o4K0AGJ8109a5iH03WiaIW0I2H08WC8bWW61CAZWV0
+2080P8b01a06WKGHG21181CW8WYHA220HX00mRnaSzF31Vzm5GdaBs3HOIIsyISA
+U2np@Gp@gKz93000kC100y9VEZ7tB000G00WKc700My7Z@NJ8@SCEdJY3wOez_GU
+2aamn52010GvVLW000000G4410WO@nO@MCYvlejiz324G00000000pE10000006n
+l4BpbmhWRaVO5PY4IGwEDiV8@F8Hn@9W00WY300m3tpySC33@JIEwmiki7DCzGr@
+v000a4f00GQaCaew3Tsdm1ydqb99L@@p8BXSSE990G008000u_kB_p010GWYbOOp
+Q6wM@XsrFvD@4M_VcOStu@1U0004iyk10e000m3hllQ8j3YHlzRScZ7DrRJtz9KB
+h4ntR308000upwzsRpjxojCH87lF302@brezOLNIMCajtdUev@V0mM7ajFL@a8qP
+_c1W74Aq_JMM@ai@jv9w7E7tZLfbOyzS0G5n20048vR3cpFdwcbei_MsG_XkhcfC
+@MYl9104G00OuyYRudNh3P_V9gWoZfpJ304000G@uv6Aw3UgMNvattv101M_0DHT
+689bOvn2_yK_VB0ei7ETGeU@XvGEI_YFatyQf@VC0mXeqonChZ0pbQdah7Cn@RGg
+Mv0000014VnE_aS_dDPE@JdmZ1W_zU8@G6@FXs7DehHCAXCahhYAIFOoUaX9yD01
+ScOjQUKTP2NlB110GWv_DO3J66CyaaZUeH03UmyXHuhORG68W004GW1980pnx600
+2800AvpbqUCDD6pBpGeZLiP43BvnGTrLCPW17YAHqeIajO2n4cGbYmKSU2000200
+csS6x3V@@G_3Oai@3xtYHK394Tl7bsZn8_OajFF1td000804Gy51@RmDt60200W0
+28010202000DVdmmt60050eYV38I000000H028GIe6W010400GGH@6000aW000GZ
+09K6Q21_R040G028W2FXpGMu6y4k1PXRGq@6G2148BS3U8mWonDeHW4A7FX61mOR
+S6A7tW61Ie@V3G018W000008G02_rd4@Vug_7ID_X9xJeDWAModXC@Pe7W4Q2uXF
+@bON@4MFMYS1UeCrMw@@14G01z@R02CzYjzVeg@7w1GYqcheyV3_FuaiJ@9x2Ow@
+V34KEHblzG@3FSv@31baG8rIyVWGV_dme89S426xxRGucUq@V808W00WsKzel13T
+ZHF09aiF3phmG93ETjn31fKHxqFaAXAPd_000W04GjtjUamCvRiUn3BO8n@1NrcE
+3@7insumK@Y10000Gm7NLg19xj@G_HCqOQHno@Gtk6iAD6V78H@3pC@l180GhQhF
+XyRCuuw4ckd108W2ltpmxD6aYl10K00cWdXhPIeH09sPEXYyD8@63sMFXFvPW008
+0900WtzJOic4Yut02e005xd0000410W0D2KH61R0020OAQ300o4FN06TzpGhqFCN
+G20001_FmZ61gewV3_FOZC2g8@@4o80Z@3K9Ax400YC6tGBd38qY2LG011OSU326
+BXlYCuTV36OoWsnI00A8m@1810MW502G1Q2908Xa04W0Q4I08199a01a4Y0G09G8
+1189iWeWYG2228HO1905X424GIQII011944W0qIY0229OAf08Xa040IO4I181P15
+05q4Y0G2P2A01e9a0W4oIs8W1G6I9Q4meC2_19W0G6160CWKWYG21281C09WYW42
+2CHR00000WW00GnaXqPV5lKmG0POK5d49jHIcTpKUMBnVP0h73Wjg1Z0W0mwnPAc
+600020uVzXyR@3vqLnCxaKulAvMjqpzO0W00mA@1m2@a4zu3F4omrwOqVC9fkwnY
+wTbGl1cwS0A4Eg_JF1000I5u_1020msG3G7vojZVEvf7b2o70000W9VpJcxbs@F6
+U5A0kFOrwyZY3h3m5@4_jg7tnOJ@@amb91O_2xx@t0CZE0zFexsz2X5v1e@X@tlu
+@yF_@_a@hVv@vR_lwI@2p4fsDjHSb2m8u9008WO4y400G0DvV200100008yAE309
+a0s9F10280ZfRGZ06bH0R0007j100q_q@ZmdG@364Jl14281c_F10002zFa00000
+W408zFO00000020W8402MbFX61CAZWq0mdxMtXkJ@A40_gu_3u70XMO@@9008Wuv
+w400G0H814udQ6kF91000009aG6gE1028W8W02MkcX61CAZ0purE0iVn@X@z@tX@
+tzu@400000A10a0G08f400G0100082W00GI0We020H810800W0G20a800A1904W0
+000GG84040A09X0002800G0G040222105G282800D2m0400GW4810Wq0R4meC2_1
+WW0820WK0221804G00W0KQG20WW8W700qwrsv@RGeoCKoF300WSn800000GH2000
+40041008I0000I8500G2000G000f002808WI00010008100K000022I000W08080
+G0G2002G2e0W0G000020205Q4u102I8A00G4800WG00fH0Zo8W7WG0001G000X00
+420iq06GHpkLzw@Jt_Vql@@Sy@DF@@or@dyz@7d@Vnx@FS@@1@@@mz@7y@@1@@Vm
+@@7y@@1@@Vm@@Ny_@3t@Vm@@lSz@9V@@nv@Ny_@3t@Vm@@7y@@1@@@nv@Ny_@3t@
+Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1
+@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@
+@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7
+y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@
+@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@V
+m@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@
+@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@
+1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y
+@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@
+7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm
+@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@
+Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1
+@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@@1@@Vm@@7y@
+@1@@Vm@@7y@@1@@Vm@@7yV84000s0eX_@PcGp3mm@jyVmpsYE0AFmlF9yZrF2mo3
+aiUH5LOSIP681008O3W6M4G8000BY30080W0cwn39VKnx7Uy22RJ8OG02ISYG81A
+m00080100g8201Q_uaI4ye5bAgInf@7O010GG02pK6n3000dLE004SoFRmyM26Fq
+Wn6PG4220uKe0005@NzE8aW00Usd00mlDgi0a1z@aC00uBB300vruw0C941J29ma
+300G3Y000x61MMKcDXJ8Pv8100GTP000x5L410GWg8iS8eD000U8V008wgPo@wXA
+mk500q2K10WHpKvyCF64waxq6x4A9sof200GQg201A_@ydiaG004i700WTxmutkJ
+QmpoKmUO4YA000A9R00egDmwmAgxpC8uWDQnH24000Df9100G5m200H76IvXC4U8
+Ip9_Je1OaWMB000oW2000001Cz4UwI4loxifyD6400r1D00esgVQ@nWuVmOBpAQ2
+waLlof4A6wnBXm0PeEG3000wGO008qp4kFf20800VVcmR1si5A3J3KH_Xsa@19ju
+b020WWo0a000idy1GW_@DW020G4084TA3z0KHJ0F4204TfYH@1BjVW1pVXHCa941
+02FXL100W02@70n7O094G0200400018002080400004040008W04G000020G014W
+200000G028W820000W8300000000800W000800W018W02000000G0m2050000OG0
+3Q4mWiOD0200004GX_@D00Y400000W400D2mGcb9q8G5z@R00G000000GW02G010
+C8W1D2O008Wm61O014000W000001e000000000Y8W0000W8GW_@D000m020000W0
+00GeAVVmWz7I8o03sVGYt7muEY42XYaZ9I8CtV0014Sz995PaGL664cH2rPa00KZ
+n@3Iu1X4UkXXM0Ie9W72IIY2WtOEqPcQCa04ye7XAwHL20qOQzFKq@nUC7x9zFeL
+NAO00ukjl49oFfYDCmu8b42WUZOKaeA5F_VPcf3gO@Y7gIbX6eC01mBrapsC4p3x
+Nun@1Kb_h17WWnD8Ua1I2803J7SnW_7_f@RyAGva_7Ue@V30005WWC9h@@4QhnWJ
+pD0001G0GCqMZ1z@d0G20WdWIOi66Q4WXyRIeHWDw@FX61cfyP3G01Wq8GE0002G
+mWEDN06n@pmS1BzV0IBAWn4sCSnG80eXGdBum49g30XM804W2qEQ0G291801qOa0
+G2II8128P41W0IWG22OIO1H15X446OYm2I0A294Cmaqaa022I88W1eb4144ImKI1
+G29180am8a2G2o2A0Ae941W4o4K02GJ8109aba44GYG20183f48Wam4a2A2I8809
+X541K4IGG09D2O0280j61CAZ0IG280aHW10385e8aGW0I03G2ee8ZW0Zj00dcPmj
+P9SSM2RdPG2044102518nZRFCaF9hdjq0yRy_53tmRGKKLmWk1uwppx@l2CZE01M
+lnCVFq2d13uPmpNCKzV8XHkqkx6qxlAtOcG9_IW008mwQ2Gg@ma383LszG@@U48O
+2JFANunLW000G@s0mh@gCs63z7mm2_lj@GB5uxXa91Wq_JB6UjwidaRqb0000WMJ
+3WIxtuwUCEk7uy@JGUQ3Gf@LSO7CtttO2ygeMJ0uVqJw_rf0PIO7T@iRF0iqFUlm
+J8B04WzPtu4aMoxlb5SGgM@VmRQ0q_q@1tRM4yMAf910000utZ64R@9XsdJ5_GAW
+00GVG0mVJFqvk4LVPGlRIywFCR1fuGs6W008mcr0mM@6SKk1diknf@9yX03d7fRy
+@6ulO0OXxAIRgqqz5oCj1GgRUaxlDjOXAkn2WdwpPAnX1DG04Ot3J_vnsP7EW1Ft
+@RGz@607g18ZpAwvqZ68DezDTdVF1el20BccmZXOCWw3R72pyDM2020G00GWet4W
+pzVW020mM@FKwl4vFOGyFwY00881020016eS048p_76UlYWxVuezGMHJeTlBA_UF
+4015W600W0000000228W000200W0200102020GGt64xl1G000Q_s008W0tSR0H6G
+020003VRGptC02008BS30W02q8G2FXdmb06y4U2DVRGZ0Ry4U2D2mGvuCq8WD0W0
+2m000000G000aAw10WU@D8uV3kgNYwhOets46jtZ2@ne8p3doD14G0XU0006x@Xn
+Rh8yN3cjFXW_3fm@AA2zG0G01nuR00087u10000G0ZT0Zk7IO@V3Y00X@ZVu@0N3
+G811K01sEP0YTWXMJmezX4EF9akVD314GG_92100009X2mm1CKSm3jFaGmn9iUj1
+zNGo@1SsVH2kT70_juX@3UOsP6czcX04yh@1a0fp0SRU2a000U_8XnQI8xU3QhnW
+4GC0000Y040W4yD8@63skdXyRCO8V3UlX100000005UndXtRCeHWPW000iVH2D2C
+ptv600400040Wa_7Wv2U8tV30400itF3Xza0040WrUCewV3_F0lR@JOH1U00000X
+Z08kXA0400ynE3nDWK@38b8nF8000002000080xA101eW6ZC0IGI01G0DZ80aGY4
+IG0I6908W44aW0I4MGAGH8X01a4cW4GHG2X1C9ja8WWG222C0Q9901X46bK0IGI0
+109CXe0aGcW2G1Q2908XiW4W0Q4I081P9b01a4Y0G0PGA11D2y0289j61C01ebKZ
+06bH090104WCaIW0I03GAe88XW0a06GCGH8111xRD00OkU6g_VZVxJ8zfGUGtiqB
+@1104000mRM300L_kT@@U000K3u00Guq9avL5NGcm6i6C2M5R_7oh0LquLKz@N10
+20WxtbuwV340112P00uRxJEzVZXyXPu@31000BS00uTU9Y_@XE8Pu4N6U_daE5Ve
+@1v0001C@F680WXP900iPlAjidGDo9CzF6nzVom@sKLi1t1QGxlO002Ge@@DU7q0
+000Yk400I__Xc_dfEc7w@@448009DpJwnFiVi7r8pmz79800K5O00mX@g4aL2Zlo
+m@T9q_V2jHV2240WY@XveQ3_AqW5ADeyv4khrWBhPOP96cXcXS0I0000eK10WId3
+vc_4A_iYlOme7L9oK7Zl7QffL3kl6cPiPeSp4000HXA008IRXQDOcMlpv@13g@UZ
+T42PSq4000fXM008t@7A4dXi@VOxGU6EVI00GVa500QzPcXZyuAwA6KMYl@9fx0d
+w@@10007S600EkVZChD8rw4MGsW6eUuzrGg3oW6Lyuz4LkkPZ0@PudN3smFXM@Du
+sV3G020iyl1000YqF00ybV20G02M_le8OmuIB9spVcV@POyW4UVHYo4aO5T9000G
+XS000000ug@9KWW1d9mG0qIi_U5z0cGRSRy_VEXkBHzFLKBe4001000080100020
+0G606q@V20WW0000aHG08Op@A0010KQcAh@3MtB94XW7JO7IC_9iDj18008z7004
+sf4zvRmy@9SzM2nklnpLTjwV8V@BHDt90008O0B9gUs010WjS500_4ydjdU8vC9w
+UPZ_NK9n46YCXX@3bOyf4o9t04002zdyGru9000O6A00Gez600088sV3oJdXNkgO
+@j7UYyXeJmuLm7Eo1Zb7Rv4ZAY1ZXz3I0180m089SoU2000dfD00ag56B2knu3La
+V_9B@R60G0XQwJeeU3W000iWY1z@d0000II20000G0xaG248017MlKuvLK@0F0W0
+0G004q0W13G6IuPFS7W1O0W0K00jkzk10W0080040010010O000006GW08000G00
+6CfD638cm1g6KUk1ztRGL_9iaF3zvRGDw94573jthIU@6Cxc1BrR020WW74Ce7a7
+G0200120020m06001400100160024W04O004W0480000030010G000002Iad08my
+S6a@X10W012mt040008W01w_tWwNU8uT3IUdXH0IO_@4UXaXieIOBX4AbYX@3Qf_
+96EkpWcFbOnN30020W10G030W02GW00W030004m000ixh10W04cIo00GWBo000gZ
+z12G01FedmvHIy0@3rt@mHIFKb_6XYBn9xaKpl15ldG80CCu_30014Yyt08W00X0
+OG406yRi11@R0080IJ0010W00000I003000G000400000H8G0000G0G008ezV3W0
+02G01KezV30W810000W830mmt600300W00GSZ9G204OBx40402a5k1n0R00G0000
+W0RPRGZ0600G6u9y4o2dXdmD8BS3s6t00HW1ZsR020WXf3J00000GAW00G082000
+0004q8038W00000O010800G0040000G0G8G0400I4G008028WGnr9W00U1P0O018
+0G00W00m00Iu@10G00n_dGvXFyy@3D6AnjRFCcE3lvBH9@gyMf4JdzmyZ9014G02
+0G0280XIqD00800400WO0Cu5t4000ZfD04W10G0000W04IO@@4UWtW@xDez@4szy
+XOyJ84p7sluXzBVuB@4o_CdXEOOug7Ulq00W00GW00ElqWG0C0280mh@6qYX1000
+0001hgB00O9J3_VGYtlI8m09Q@FXBNOer36IWbX@3UeD09oV0cX6OOt696it0800
+2zVQGt36W00G8403AYd14Gm8K1018004Syl1vd8nE99yyv3lzdGfD940b4DHAnMW
+6iZm3rUFp56CyVG57kRG@3Cq@L2xNa0008040mg4202oF8XbtC82U6oP1ZLNVe@X
+7g_IYK8UOxGO_EWX@3Oe@XDW028iVX1zFa00GWW68C8Ec4G00KO000eJ638W06iS
+d1DhOmgg6CPS2L5nm_5IyP431F8H9y9qap3xNqIVT6W008uhxAcz@XhJCe_63k_n
+04002Nuc048WWTuDG04SiH1m06G0000018W1KqWW140020000L@e1dtdmxD64zZ1
+00a0YHF128e00W00A_b1G000V0b0W0GWHyPW0A8GO_90000H028mi_6Skd4xvOGx
+_6idZ1xzbGXR9aSl10f00wkFXv_Iex23000K0000e06300081150u_a4MYs00GmD
+Y000E7u10001000W6qFX@tDW208my@9yVW1z@R000KWP4P0028GxF6qxl10201UG
+c10WW0@7mW040W61Iu@0FEuoWYgJuqO6_FmWh@D0W00mnX6K@l1000A_@C1400G1
+VaG@@9000sDm83ANW10G01000WwVoW@gJ8k13sEt000I0lMdmLY9axV2nDymjsLq
+8W12000wVGbGdOesU6MFoW_7Ue_436Oo08W0000000008blW1jFb00G000G0Gg70
+1G1jZQ0cOY02G0Q6P08Xa4aW0I4I08098a01a4cWKGHG21189iW8WYG2228HQ990
+1X424G0QII0119Cbe0aGY0209O2f08XiW4W2Q4I081P1501q4Y0G2PIA1189a0W0
+oGs8WHP4y328140W0oWK22G2O0H15X44CG2m0I0A6P68GBm0W04W01401480180W
+8tIedTLgVZXj@tuwsA270c82PubD321WXZxVO3RC60C100020u7yYREmbet302ps
+t@CSOU5VyMHvbISXT8T@kHVjdCS73tkpGN0O42M5ftPG_@600AzBhV6sp5Zv_nOz
+G62lCaYFb8u@7YLFaxQDeju7Yz@XyNIOwM6k@FXMyJeyV300qlySi13dNHOnjSxk
+D1@ZnNzOCSj7xo330qdeyQ39raDwUdsg@P00Mv_DxFKQ@3tjZnRvLixgVvxF30Im
+q7wbuWT9QixXK3hO6@D2mMhi@dvCV60GCVSTG5dm@GC4CCKB9f@@m1_9a@l4Ro3p
+u9Fi@F6pemmFiCSSE300000mESVm_9@rAH380300200VfpisaKx963mVoc@9iak4
+@_tohzXq4H5BumG@3F0WIFgo3L_VPoAgRvoV90mEUdox316pmIxOC156lNjQav60
+0Zs0000001KWWZK99ia1G010Wi2eRVIUulYO4660hyU8tFakl4tNySFoCW05c_Y@
+JIm8v8@P00mLMK@USv69f@fB0YRYKsK9ZVCMWHN0m7T3LpmIpFCIf4tMAHwZw202
+800MpHbTiLc7a0WfK0W000001eXV3wdyXI0aeqy4sVOO00000egc2lXXagJO@Y7k
+FuXKGEv_lC@oC14qa20G000800SsF3ryBHF0ISp@3XXvQq@6000201NTVf@6igj1
+W0008000G0W0W0000W0GWj@D000W004GWYuD00200H20000W86G00kvs0400W7nc
+GZ09SpT2HFp0400WedJu9S3sosW61Iue@4Q4meC2m000G02OW00000GW00Cm00aJ
+F3J5AHm@CKqF3dszG0Qq2028mPR0mwyCStx3Zs@GnzIyVmjFvd0Id00080W0400_
+FeYI_Je@X7AHzX_7STB@44G10upa0Ok@42CL20800JzRGi@64a23VNOpI67sfV2K
+7J0EutW@3COsW7InWXF4O8xZSI2XG00011Gd0gF4WTJUe@W76_tWt3Iu3X7_Fus@
+ND0000Wvs7WlwJW400mFz9CMZ1rla01G0WJxJ0000Y040WmwD8@63EndX2TCO9V3
+UlXXSvDevU6UlnW61cPhM6Q4mcpRJWDc2Gf@90200uvv40400iY@33bdmS1_r8WH
+F@R000mLv200z@R0100Yu6OOs_7WW00CNGZ9ImJLy60100000W5d0G0KGJ8209a8
+W04WcH20I89198W4X402G229G09X985K4aGO0J2B82e8aWW0JaMI2GG8X016Wca4
+GGG2p9A09a8W0G2cGA0I8BOZ060P1501q4Y0G2PIA1189a0W0oGs8G28WamQ4m0a
+aMI4GG81114q8W1Af0aQ4meC2s01a020G0PGA1181CWo8m0W1a0S4I8G0ybCSF3F
+_NHZ@IKql1plRJJyAYW0000sBGajOF_F90WPqBVpW6lJum@A_zcXc@buzVO6l@G4
+0G080NVEjlYncsehV96y7cm@F404000ERglv3PwvjHGp_1000100000010088000
+0088000000f103UyF1002040000200G0000808GE0C45G2D2OmazijzV2l@R0W0W
+W60C83W4000400W0e103401000W00004000200400n0O00Mhfy1D030001008I00
+00004GW8HI0000G2004000Y48K0m00000000K20W0042400O00000GG4010000W0
+IW40040G0001WG0W00e1q8G200G0W01Y8210eHWJ40000G00W1G8GZ0CG000408G
+0GY00000G0G04000W8Ge0W00000800e40W8080800O00080WWK00000001I8P020
+0W0002W00010H3004002000W0X080G0001W01400001W2G00002WG1010010000G
+104_Sx00008I00W10000024840G000Y80a80000UEW1090e0e1000000We400008
+4880m0G0_F8180o000001404TEW10W1000000884OkW7Q4G20W0W00001I440200
+0481Y100Wv2O0000000232W0W001202400002202a000041050C0000800UnG5D2
+yG61CW0GWG0000W0OW@3C0070000000W200yWyclv@ik7k@@S0GFK00000W02m_H
+p3W0200@3G@3@lULxx4_00Icbql_l@X@7lZX_tW703GmuT@7_t@V7cF02000q9AT
+F_@sbv300200DZNsd@VTw@Ll_VvR@7zx@F7@Vpp@@oF3vyRmk@6apV2ZwRGh_90a
+008d@40800qhg1x_pGZ06bHWPwm60I__@Zp@luz@7k@@W@@lyj@x@FXtRC8@c4Y_
+dXtRI8@c4w@tWSkDOyV6Q4meC2C3004g210W@3_l@1_L802W2Q3L08X414W0q4I0
+G299811a8a0G0IG81289C1fWYW422GIO1H05X444GYqII022948W0qaa022IOAH1
+8X4140Im4I1G2P1905q8a0G2o2A02e941W4oaK22GI8101aXiH0Zo8u74G28001a
+1f44W4m0gq0306G2Gn8Z01WKumz@7y@@9V@@nv@Ny_@3t@Vm@Fyzkh20006fYXCh
+ne@VC0mKx_qDm184o@1R007bSu_@J__@W@@Vu_@tEXsg0Kf@VF0GZ5dyTurtW102
+8004WWj70V@@C0W6gPu1f3oG50Gl5FFGU@@O00EJFy9TdFWd_@D00joxxBq_UmFz
+@d00sEwQNg_7dJ0GCl4S3pHW030QfxGRI6010mF6LKU7608000WccM_4jJ7OmtV6
+yU035X030w4sl3hu1AWhH8114G09Vl10GdYXlP04000000mXlDevx46_sWclJ081
+0Gpt90G000100Opt9q803FXRGZ0610W0W014ma160X02G00WGQL600G0eSy40GW0
+00200W14W200WHhCeq03_FmWI3mmJN3mm@b2W028@c7Iia104G0HOaGUx645G5z@
+B1DE2W_@b8yJE@Fe504G07nvXgk1WotGjn33cU8X08UOxZ4YF8XM8OeyDCS0g0iV
+XhZ@vH@5IiVX7owV0sjjqyF2f5BCo@m31f607lZwXD6SPZ1dsamrl6ayH2z0aG80
+9y3f7KM80M@FXnQCejc4gldXCXPuzc4ol9XayPeH0Zo80300G0ltaGD@60400e_b
+40801yUZ1HnO0000YtVIeqWA00030J00u@WLlOm900GeA400wVeqigJeYYb000qe
+N0405q4Y0G292801e9a0W4IIG228H81W0aWG24GIO2I151944Wam2Y0A2988W4fb
+a044I8G01e99144amKY2G29280aW9a2W4o2s8W1GMG1G0DX80aGcaIG0I2908WCa
+D2OK616Gn8Z8Z034P44WaqIY026P616OG8XH95W4a6OWC2CmW3G1Q2908XyW6W0Q
+4I081v9b01a020G0PGA1181CWADm0W1a0K4I8Gmj@kvCv1fZ106JrW@@FuUTVj@a
+Yxn0004002jXI@Vu@0ZRx@40CcWDFNTh@C4y@60edC2_@@al3@GmD0m@04y@@1@h
+oBAI30zcv@W@VFw@sd_Vzg@J@w@fhWl@V60m04K_s@xFmF00Ztm@_@xm@xUy@ot_
+Fxp@lEz@gN@VuR6Q_sWXlDevx46_sWclJ0810Gpt90G000100Opt9q8WHP4mcEi1
+WeV@@vu@RU_@ot_Fvx@@_BV04002Z50M@FXtRC8@c4gldXtRI8@c4AHFXtRIeH0Z
+o8WD00GeA400_Fu@_7uNX080AeDK1W4I4G02GJ8109aaW44GYG20181X48Wam4a2
+A2I8809X541K4IGG09IB9188aGW02GJI2888Xf45W4I4G081J8509a5a0KGZG209
+8Be08WcG40I8JI9809X404G6o61CAZWVG09W004G6aIG0I03eI3C0O0905ZC240I
+X5l@@mz@7y@@3t@Vm@@Ny_@3t@Votv3W0000IHSm@@N_s@1@@@mz@7y@@9V@Vm@@
+7y@@1@@@mz@7y@@1@@Vm@@dyz@1@@@mxy30muTuR6Q_sWXlDevx46_sWclJ0810G
+pt90G000100Opt9q8WHP4mcEi1WXx@Fu@@BVx@al@@uy@BU@@r@Juz63ol9XwxPu
+zc4ol9XOyD8@63IodX61CAZ0p000X6yV2@7yV@3shG0405q4Y0G292801e9a0W4I
+IG228H81W0aWG24GIO2I151944Wam2Y0A2988W4fba044I8G01e99144amKY2G29
+280aW9a2W4o2s8W1GMG1G0DX80aGcaIG0I2908WCaD2OK61@W0I0108WC8bW0a06
+Gb6O0m0I0A2948OYsAVx@W@xzTb7w@760aSA3l@C008WZtL10XsRm@@VxVonxbm@
+3g0WTz8u@OxPYX_@@102Stmz@7y@@1@@Vm@@FS@@1@@Vm@@7y@@1@@Vm@@7y@@1@
+@@mz@7y@@5l@@onv300000XKPm@@7y@@3t@Vm@@7y@@1@@@pn@tyy@xkpJDy55C@
+U0Gva10000G01euU5BcYXd0EvdVR0G010WeFVkX0Bc@X@3yuz0Xw@d10mnB5l@@m
+z@7y@@5l@@rDzE0pF0mtcF_PiWWIOA8LEMCXgNSg@@70WV5DFqLR6HLxa9y_JH08
+0000Ta5tKKNGbJZ0Oajf1FGG50M2tsfqQ5B3gnwdOjQv2gM000100ImUs0y_H0Zi
+7qg@V90Wh1KSsCLdDp@9I4c695WHo@Ny0WjWVzYhkpWm_@3109mOvR8zX1I00040
+80001008102Y00XG0O8Vu7Q1WXaKQ1014000@hvBG2002mF6OycX4D2i10G00020
+20010Y0m08202T0OGA064lS2rBRG906KX03z@t20uo@zYiPx06YFyXYGOu419Q48
+aKfD0202Gmq6KgO8T09n5Wg0W4VDuV81008agj10014waq08W0W0400Y18XvjVe5
+W4IWO60GTg7VpGqt6Syj1HVdmnt60G41irR30QW00000H0008010002008000100
+44Vf1000818W00080000280108080000O0900042W1D2S20001O28W0008W0282H
+000G0e04G090800l8Om1I901400000Y00018WI0VZR04GW000800W04A9tWI3210
+800086fqRi98J6wEmWc0su_3CQ4m38W82hFO04G0XerDuQT6EY8XHGIu3Y7w@d40
+Kdx@709000nHvD020Y0410000020004JLLY5KU8D36U0L50usz1@Vom39KwG2Flo
+mwh6q406z18HZ0a004GC@362G8a_7c10a6PvJBDVZG5_R041000000G014X0W0iV
+H2tdyGs3IiUXAblb006ehyFAAv3Co@ebgGU028YGzj6a@X7pucmzjp0WanVquJs0
+s0008WH0WmEmC0G01e7WA210YW0meH0600082H0140000404n_7C8@3F2pvXfVR1
+0e7I@@9aVZ1z@RmxDCyF43b8RmxD6CzS28000d19X2TC8EP3Ul9X8bJOF73Q4u40
+W8Yz@R0aGGmAWbu3P3000W8100e@V3W0002008e@V6ADm3000000Hd_FW4000Yxz
+n0G20W_@PuSWMw@FX61CAZ06_FO6@jB0d3yMZ06zVGH00WGL802W2Q3L08X414W0
+q4I0G299811a8a0G0IG81289C1fWYW422GIu1H05X444GgqJI022948WGqba022I
+OAHX8X4140Im4Q1G2P1R4m08Be08WsG50I8JI980fX604G6IIG0f2F85e8aGW0I3
+lHWPG0fXq8W18DiWo8m0X5a0K4I8G09fbHW180ja8WWG2cIA8Z034I181P1505q4
+I616WcG20I8B998W4W002G6I9G09W185K4aGG0I0382eOaYWWCD100Kv_9NedmcJ
+Fq306X00HG0OSX6357bGwF9iWZ1H0WG0iFy1m3tl1300OUp3001@@@3@VsllM00W
+Ku900yVm@3t@@VtaKVXS@ThIqtv000KZW00Go77s@lS000Dj600avMB@F0voxv00
+02000a0Z00WoNii@@n000ntzu9z0Lj00ePu100zFyVxJ@lUr@9VNqz7qA00_lyC_
+FFBX@7i7008AJ10Wnx_Fyl@@Ey@_Fo700eLwDs@Uq@xNy@_5XyU8v20WqKF00000
+1OuR3Q_sWXlDevR66MtWSgPuvQ36_sWQjPeH0Zo88D04hOfVbF00000yAKxNaF00
+000WMPblz@or@dyz@7d@Vw@9aVZ1z@RmxDCS6l4ltOG_z9yUJ2D2OK61i9q21u@W
+@xVuV2G1D290aWa02W0Q2H08X49aW0a4I0G098811a8iWKWYG21289C19WYW422G
+IQ9H01X444G0qII0229CAf0aWa020IO2H18XC15W2q4I0G2P1R4m08Bf48WaG402
+83I98eH0Zo8u7W002G6I9G09W185K4aGG0I0382e8aWWW9q600CS@@5@FMaAC000
+000W0G@@4200eWZ00Got@d_GQz@3900eTM000rzBN@57200kJA00GW@z6GFF00WP
+X200ayz@3t@Vm@@7y@@3t@Vmzv3006OhF66k@@W@@lwLu100T25008u@@BVx@W@@
+Fu@@RU_@al@Fvx@FE@@Yt@Vux4Q_sWXlDevR6W000qyT23VRGpt6Cyj1DVpGZ06b
+HGQ0e3R2_@@W@@Fu@@@Ey@Zp@Fxoy10010WmO9z@4olnW_@Duz66ol9XByJuz63Q
+MEXmCPeH0Zo88DXM80@7yV@3@J0AeLe1W4a4G04GJ8209a8X44WaG20281198W4X
+5a2K4I8G09X981K4aGG0IIB9288aWW02WMI2GG8XH95W4a4G0G2J8A09a9e0KWcG
+20I8BOZ060P9b01a4Y0G0PGA11D2OK61@040G0oGA1281C0fWYW422G2O0H05ZK4
+40o_59ayz@JtxwFn5100us600Gnx@FS@@7@dyOtC0002e@@G000uIG00e@VCcFlB
+0100z@FpDJCq@lG000M2@x@XxTT@1d000DGO00OtVIkmjQ00WiQ500AVx@_7_Vu_
+@3_@@al@Fu@@3_@@W@@Vu_@VE_@W@@Fu@@FktU00G000WEX2004y@@BFAnvxdB00
+G1u00mmt9qyj1000W0WW0qyD3G000Q_EXXlDevR36_sWclPeH060402q8WHP4e50
+SjbXx@Fu@@BVxXk@L701400ITmal@lyXs3T@108gf5l@VXoLyU33vtam5_9yUZ1N
+GdGtwCq8WHP4acGB4W@3_l@X@905q8a0G2I2802e941W4IaG22GI8101aWW44GYm
+2I1A2948Wam4a0A2I8809fb4144IGG01GB9188amea2G2I2808X945W4o4K0AGJ8
+109a5iH03WiaIW0I2H08WC8bWW61CAZWV02080P8b01a06WKGHG21181CW8WYG22
+2cGR00Gm@@Ny_@3t@VmzFCUkw000Ry300qyiz0000000l2A00uuy@J__@Xx@Fu@@
+3_@@Xx@Fvx@3_@@W@@Fu@@7k@@Y@pN00qCy00WW@@Vu_@3_@@ot_Vu_@3_@@W@@V
+ux4Q_sWXlDevR6W000qyT23VRGpt6Cyj1DVpGZ06bHGQ0e3R2_@@Xx@Fu@@F@YV0
+q9A7d@VvR@d_V2vtOG@@6yU33vtam5_9yUZ1bWdGOcCq8WHP4acGB4W@3_l@X@90
+5qAq0G2I2802e941W4IaG22GI8101aWW44GYm2I1A2948Wam4a0A2I8809fb4144
+IGG01GB9188amea2G2I2808X945W4o4K0AGJ8109a5iH03WiaIW0I2H08WC8bWW6
+1CAZWV02080P8b01a06WKGHG21181CW8WYHA220P@Y4I__@Zp@luz@7k@@W@@FwV
+s0080q@V8NBzmM0jq@@9000T0E004y@@3tBN@3aq@VBzFC3008000m@47006k@@z
+7ah@@3500XX5008u@@3_@@W@@Fvx@B9LqK0e86WAw@76DK001@@Vm@@FS@@Z4Nw@
+7NvBK18@4_5Aw0q@m@hVz9020WyRaG000W020WyR4IKf2G5vYM@Z420W0Y1eY_@X
+H3e1GvRV_UK2@7zW020WTaaOB0CEU73DmF03VdGpt90804evR66_sWclDOuR3Q_s
+WXlDevR6Q4meC2Um010G61ISYX1P4y300e4@100hN5RF@6y@m3z@F300O5x200ra
+9w8Adq@FC000w5A00K_sdzFS500801006c200EVZM04G0dl9400O71300JTUxuT2
+100_dz00G@3@tM33z@RmxDCKki4vtOmC_6yU33D2OK61d4@Z1P4y30aSp@34LG08
+m_rISXb154b0020WB6c10yVT@3ekUP2LKi100eWYCP8qYG0mcG101e0DX40aGI02
+G0D290aWa4IW0I2H08W48aW0a4MGKGH8111a8iW4WYG21289D99WWW422G0Q9H01
+X4CbK0aGI0209C2f0aWiW2W2Q2H08XC15W0q4I0G2P9R4m083f4D2OK61@W4G08Z
+0306GAGH8X01a06W4GHG211ceD0UUEV00006W006_@jKLUe@V@4hY0ayTodu_m4k
+X0W000Ji0Gq39V@xC2UV06SVxq@31ue0mrf@lxlS000Ww@@70004na3pefLuh918
+vxR1O00q@lGaKO0syYXj@LyPi7M9xXi02f@@J8E304y@@v_psm4jSwWAzFa3e67W
+zBKvi4Xw@@d_Bmew@S4GP04y@@TEeuk3Hr@V8Ex00YyXm_@n3xN0m@1@FyFdXO06
+2L1WohoC3anSlh0iO3jr_BK@@6eaA0Owod50W0y_lAu5J0Y_Sxe@3HNe0Gnzo180
+WuL@kARN5ENA0ddz@m@o10WWuuhVkzV3120WXdgYCO7Wnx_@Ut40010iNk1PyQGv
+v6yPk10201EGtWZ0Cu0T3E2eYs4Ju806I_bXLqb00000200W7@DuMT3YJtWw1IOd
+03wOaXC2CudH3wNt0001071O0000Xr0OeiT6_OdX4tDmjy202094100000048W20
+008m004G000941W02G08W8W00028000Cm0K290000002818020038001400GI900
+W0271a0280aZ0I0000nH06i6G200281804S40300I810140802G0000802eZ0Iuj
+V3E2814G000140000G0004eHW40200004Gw8W7_AmWZ0O0283qq09qKl1V5mGSz6
+ebb0eCIOsktWqxD0280m8@XysG202002Yu100000008JjCaZ0UuG23UJzXekV83L
+3_xaXiCb00G0Wpe7WyBU3W010200W1@P8@2C0100aV1C0100plG50000kiH0Mkjk
+v699tnPwQ763wA0zkZt4242vM1u@W@dkz@eV@@vu@RU_@Pv6R_chAyNYvRWHE2zl
+@@@@4088204210YW001;
+
+ENDDATA;
+DATA TEMP_DATA;
+INTEGER A0[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 15, 14, 13, 95, 23, 23, 23, 96, 96, 96, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 15, 791, 791, 791, 791, 317, 293, 281, 273, 261, 253, 237, 791;
+INTEGER A1[46] =
+2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 16, 16, 16, 16, 3144, 16, 16, 16,3144,1574, 716, 360, 183,1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 280, 240, 200, 160, 640, 480, 400, 320, 240, 160, 80,3144;
+INTEGER A2[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 165, 165, 165, 0, 0, 0, 0, 0, 0, 0, 165;
+INTEGER A3[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 96, 80, 64, 0, 0, 0, 0, 0, 0, 0, 112;
+INTEGER A4[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 600, 552, 504, 0, 0, 0, 0, 0, 0, 0, 648;
+INTEGER A5[46] =
+2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 2081, 16, 16, 16, 16, 3144, 18, 18, 18,3144,1574, 716, 360, 183,1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 56, 48, 40, 32, 128, 96, 80, 64, 48, 32, 16,3144;
+INTEGER A6[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 16, 8, 4, 2, 16, 8, 4, 2, 32, 24, 16, 8, 4, 2, 0, 0, 0, 0, 0, 16, 12, 10, 8, 6, 4, 2, 32;
+INTEGER A7[46] =
+-1, 524288, 262144, 131072, 65536, 32768, 16384, 8192, 2048, 512, 21760, 13056, 6912, 3328, 0, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 0, 0, 0, 0, 0, 0, 0, 7;
+INTEGER A8[46] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, 0, 0, 0, 512, 256, 128, 64, 32, 256, 128, 64, 32, 512, 384, 256, 128, 64, 32, 0, 560, 480, 400, 320, 256, 192, 160, 128, 96, 64, 32, 560;
+INTEGER A9[21] =
+12, 3, 131, 8, 3, 131, 0, 0, 0, 6, 3, 131, 0, 0, 0, 3, 1, 118, 1, 3, 126;
+INTEGER A10[14] =
+12, 3, 8, 3, 8, 3, 6, 3, 0, 0, 3, 1, 1, 1;
+INTEGER A51[19] =
+294, 0, 0, 0, 294, 148, 38, 20, 2, 148, 38, 20, 2, 294, 0, 148, 38, 20, 2;
+INTEGER A49[14] =
+12, 114, 8, 114, 8, 114, 6, 114, 0, 0, 3, 109, 1, 109;
+INTEGER A11[6 * 3 * 45] =
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  -1,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  33,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  32,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  25,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  24,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  22,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  21,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  20,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  18,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  16,
+0, 0,  0, 0, 0, 0, 3, 1536,12337, 3, 1280,12337, 0, 0, 0, 1, 0,  13360,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 3, 1280,12337, 1, 256, 13360, 1, 0,  13360,
+0, 0,  0, 0, 0, 0, 3, 1024,12337, 3, 768, 12337, 2, 0, 14128, 1, 0,  13360,
+3, 768, 12337, 3, 512, 12337, 3, 256, 12337, 3, 0, 12337, 2, 0, 14128, 1, 0,  13360,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0,  98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, (39<<16)+0, 187, 32, (39<<16)+0, 145, 137, (39<<16)+0, 233, 176,
+0, 0,  0, 0, 0, 0, 0, 0, 0, (23<<16)+0, 187, 32, (23<<16)+0, 145, 137, (23<<16)+0, 237, 176,
+0, 0,  0, 0, 0, 0, 0, 0, 0, (15<<16)+0, 187, 32, (15<<16)+0, 145, 137, (7 <<16)+6, 113, 137,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1025, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1025, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1025, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1025, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0,  1025, 4, 0, 1, 1, 0, 1025, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0,  99,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,  99, 1, 0, 99,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 99,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 99,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 98,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94,
+0, 0,  0, 0, 0, 0, 1, 0, 98, 2, 1,  96, 1, 0, 97, 0, 2, 96,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 0, 96,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98,
+0, 0,  0, 129, 10, 98, 1, 0, 98, 2, 1,  96, 1, 0, 97, 0, 0, 96,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+0, 0,  0, 0, 0, 0, 1, 1, 97, 1, 0,  97, 0, 2, 96, 0, 1,  96,
+0, 0,  0, 0, 0, 0, 0, 0, 0, 1, 31, 97, 4, 31, 98, 1, 0,  98;
+INTEGER A14[64] =
+8600,6400,4800,3600,2800,2000,1540,1140, 860, 640, 480, 360, 280, 200, 154, 116,
+86, 64, 50, 36, 28, 24, 20, 16, 14, 12, 11, 9, 7, 5, 4, 3,
+2000,1600,1300,1000, 900, 800, 720, 660, 600, 560, 520, 480, 440, 400, 380, 360,
+340, 300, 280, 260, 240, 220, 200, 180, 160, 140, 120, 100, 80, 60, 40, 20;
+INTEGER A15[16] =
+60000,28000,10800,4200,1660, 660, 260, 100, 500, 200, 100, 60, 40, 30, 20, 10;
+INTEGER A54[30] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 0, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65;
+INTEGER A55[30] =
+0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65;
+INTEGER A56[8] =
+255, 1, 255, 56, 255, 57, 255, 65;
+BOOLEAN V261  = 0;
+BOOLEAN V262  = 0;
+BOOLEAN V263  = 0;
+BOOLEAN V264  = 0;
+BOOLEAN V265[10000];
+BOOLEAN V266[3];
+BOOLEAN V278[15];
+BOOLEAN V279[16];
+INTEGER V267;
+INTEGER V268;
+INTEGER V269;
+BOOLEAN V189[80] = $80000000000000000000;
+BOOLEAN V190[80] = $80010000000000000000;
+BOOLEAN V192[80] = $00FF0000000000000000;
+' VARIABLES
+INTEGER A17[1];
+INTEGER A48[1];
+INTEGER A52[1];
+INTEGER A113[1];
+INTEGER A153[1];
+BOOLEAN A18[21];
+BOOLEAN A32[60];
+BOOLEAN A33[10];
+BOOLEAN A39[10];
+BOOLEAN A26[5];
+BOOLEAN A27[5];
+BOOLEAN A28[1];
+BOOLEAN A31[50];
+BOOLEAN A57[50];
+BOOLEAN A29[1080];
+BOOLEAN A45[1080];
+BOOLEAN A30[1080];
+BOOLEAN A34[50];
+BOOLEAN A35[50];
+BOOLEAN A36[50];
+BOOLEAN A37[50];
+BOOLEAN A38[70];
+INTEGER V2 = 0;
+BOOLEAN V216 = 0;
+INTEGER V3 = 0;
+INTEGER V4 = 0;
+INTEGER V77 = 0;
+INTEGER V78 = 0;
+INTEGER V186;
+INTEGER V187;
+BOOLEAN b;
+BOOLEAN ba[32];
+INTEGER i;
+INTEGER j;
+INTEGER k;
+INTEGER l;
+INTEGER m;
+INTEGER n;
+INTEGER V271;
+INTEGER V270;
+INTEGER V10;
+INTEGER V11;
+INTEGER V12;
+INTEGER V13;
+BOOLEAN A19[20];
+BOOLEAN A20[10];
+INTEGER V14;
+INTEGER V15;
+INTEGER V89;
+INTEGER V16;
+INTEGER V87;
+INTEGER V17;
+INTEGER V181;
+INTEGER V18;
+INTEGER V19;
+INTEGER V20;
+INTEGER V21;
+INTEGER V88;
+INTEGER V94;
+INTEGER V22;
+INTEGER V179;
+INTEGER V211;
+INTEGER V223;
+INTEGER V23;
+INTEGER V24;
+INTEGER V25;
+INTEGER V26;
+INTEGER V27;
+INTEGER V28;
+INTEGER V29 = 1;
+INTEGER A16[15];
+INTEGER V30;
+INTEGER V31;
+INTEGER V32 = 0;
+INTEGER V33 = 0;
+INTEGER V34 = 1;
+INTEGER V35 = 0;
+INTEGER V36 = 0;
+INTEGER V37 = 0;
+INTEGER V38 = 0;
+INTEGER V72 = 0;
+INTEGER V73 = 0;
+BOOLEAN V39 = 0;
+BOOLEAN V40 = 0;
+INTEGER V41 = 0;
+INTEGER V42 = 0;
+BOOLEAN V43 = 0;
+BOOLEAN V44 = 0;
+BOOLEAN V45 = 0;
+INTEGER V46;
+INTEGER V47;
+INTEGER V48;
+BOOLEAN V49 = 0;
+INTEGER V51 = -1;
+INTEGER V52 = -1;
+BOOLEAN V74 = 0;
+BOOLEAN V75 = 0;
+BOOLEAN V56 = 0;
+BOOLEAN V57 = 0;
+BOOLEAN V58 = 1;
+BOOLEAN A40[10];
+BOOLEAN A41[10];
+BOOLEAN A44[10];
+BOOLEAN V76 = 0;
+BOOLEAN V80 = 1;
+BOOLEAN V81 = 0;
+BOOLEAN V82 = 0;
+INTEGER V83 = 5;
+INTEGER V84 = 0;
+INTEGER V86 = 0;
+BOOLEAN V91 = 0;
+INTEGER V68 = 0;
+INTEGER V69 = 0;
+INTEGER V96 = 94;
+BOOLEAN V97 = 1;
+BOOLEAN V398 = 0;
+INTEGER V188 = 0;
+INTEGER V191 = 0;
+BOOLEAN V233 = 0;
+BOOLEAN V102 = 0;
+BOOLEAN V100 = 0;
+BOOLEAN V272 = 0;
+BOOLEAN V392 = 1;
+BOOLEAN V103 = 0;
+BOOLEAN V108 = 0;
+BOOLEAN V104 = 0;
+BOOLEAN V105 = 0;
+BOOLEAN V107 = 0;
+BOOLEAN V106 = 0;
+BOOLEAN V101 = 0;
+BOOLEAN V231 = 0;
+BOOLEAN V259 = 0;
+BOOLEAN V260 = 0;
+BOOLEAN V280 = 0;
+BOOLEAN V293 = 0;
+BOOLEAN V308 = 1;
+BOOLEAN V310 = 0;
+BOOLEAN V336 = 0;
+BOOLEAN V337 = 0;
+BOOLEAN V340 = 0;
+BOOLEAN V370 = 0;
+BOOLEAN V362 = 0;
+BOOLEAN V421 = 0;
+BOOLEAN A175 = 0;
+BOOLEAN USE_EXTEND_IR_DELAY_METHOD = 0;
+BOOLEAN USE_FIXED_ALGORITHM = 0;
+BOOLEAN USE_REV0_PROG_ALG = 0;
+INTEGER V203 = 0;
+BOOLEAN V228 = 0;
+BOOLEAN V344 = 0;
+BOOLEAN V431 = 1;
+BOOLEAN V230 = 0;
+BOOLEAN V232 = 0;
+BOOLEAN V393 = 0;
+ENDDATA;
+PROCEDURE DO_READ_USERCODE USES TEMP_DATA;
+V105 = 1;
+ENDPROC;
+PROCEDURE DO_HALT_ON_CHIP_CC USES TEMP_DATA;
+V230 = 1;
+ENDPROC;
+PROCEDURE DO_IGNORE_IDCODE_ERRORS USES TEMP_DATA;
+V232 = 1;
+ENDPROC;
+PROCEDURE DO_IGNORE_INTOSC_BYPASS USES TEMP_DATA;
+V393 = 1;
+ENDPROC;
+PROCEDURE DO_BYPASS_SECOND_IDCODE_READ USES TEMP_DATA;
+A175 = 1;
+ENDPROC;
+PROCEDURE L20 USES TEMP_DATA;
+V101 = 1;
+ENDPROC;
+PROCEDURE L25 USES TEMP_DATA;
+V105 = 1;
+ENDPROC;
+PROCEDURE L966 USES TEMP_DATA;
+V340 = 1;
+ENDPROC;
+PROCEDURE L27 USES DEVICE_DATA, TEMP_DATA, L39, L101, L107,
+L141, L1190,
+L1223,
+L124, L113, L108, L93;
+CALL L39;
+IF(!(V101 || V103 || V108 || V107 ||
+V100 || V102
+) &&
+V105) THEN GOTO L38;
+IF ((V42 == 0) && V340) THEN CALL L108;
+IF ((V42 == 0) && V340) THEN GOTO L38;
+V3 = 0;
+V4 = 32;
+CALL L101;
+IF (V2 == 0) THEN GOTO L28;
+IF ((V42 == 0) && V101) THEN CALL L1190;
+V3 = 0;
+V4 = 32;
+CALL L101;
+IF ((V42 == 0) && V101) THEN CALL L141;
+L28:
+IF ((V42 == 0) && V104) THEN CALL L124;
+L38:
+CALL L93;
+EXIT V42;
+ENDPROC;
+PROCEDURE L39 USES DEVICE_DATA, TEMP_DATA,
+L106, L458, L108, L107;
+INTEGER V66 = 0;
+INTEGER V90 = 0;
+INTEGER V95 = 0;
+INTEGER V67 = 0;
+INTEGER V180 = 0;
+INTEGER V212 = 0;
+INTEGER V224 = 0;
+INTEGER V199 = 0;
+INTEGER V201 = 0;
+INTEGER V202 = 0;
+IF (V103) THEN V102 = 1;
+IF (V106) THEN V107 = 1;
+IF ((V102 || V100) && !V103 &&
+(V108 || V107)) THEN V42 = 1;
+IF (V42 != 0) THEN GOTO L84;
+V21 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 1) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L40;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+L40:
+V21 = V21 + j;
+V66 = V66 + k;
+NEXT i;
+l = 0;
+FOR i = 4 TO 0 STEP -1;
+FOR j = 0 TO V1;
+IF (((A13[j] & 1) == 0) ||
+((A13[j] & 4) == 0)) THEN GOTO L41;
+V2 = A12[j];
+FOR k = 0 TO (A1[V2] - 1);
+IF ((k % 5) == i) THEN A26[l] = 1;
+l = l + 1;
+NEXT k;
+GOTO L42;
+L41:
+l = l + 1;
+L42:
+NEXT j;
+NEXT i;
+V88 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 256) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L43;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+IF ((V2 >= 23) && (V2 <= 27)) THEN
+V96 = 95;
+L43:
+V88 = V88 + j;
+V90 = V90 + k;
+NEXT i;
+V94 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 512) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L44;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+L44:
+V94 = V94 + j;
+V95 = V95 + k;
+NEXT i;
+V179 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 2048) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L45;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+L45:
+V179 = V179 + j;
+V180 = V180 + k;
+NEXT i;
+V211 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 16384) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L46;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+L46:
+V211 = V211 + j;
+V212 = V212 + k;
+NEXT i;
+V223 = 0
+;
+V224 = 0
+;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 32768) == 0) ||
+((A13[i] & 4) == 0) ||
+((A13[i] & 32) == 0)) THEN GOTO L47;
+V2 = A105[i];
+j = j + A1[V2];
+k = k + A5[V2];
+L47:
+V223 = V223 + j;
+V224 = V224 + k;
+NEXT i;
+V22 = 0;
+FOR i = 0 TO V1;
+j = 1;
+k = 1;
+IF (((A13[i] & 2) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L48;
+V2 = A12[i];
+j = A1[V2];
+k = A5[V2];
+L48:
+V22 = V22 + j;
+V67 = V67 + k;
+NEXT i;
+l = 0;
+FOR i = 4 TO 0 STEP -1;
+FOR j = 0 TO V1;
+IF (((A13[j] & 2) == 0) ||
+((A13[j] & 4) == 0)) THEN GOTO L49;
+V2 = A12[j];
+FOR k = 0 TO (A1[V2] - 1);
+IF ((k % 5) == i) THEN A27[l] = 1;
+l = l + 1;
+NEXT k;
+GOTO L50;
+L49:
+l = l + 1;
+L50:
+NEXT j;
+NEXT i;
+V16 = 0;
+FOR i = 0 TO V1;
+j = 1;
+IF (((A13[i] & 1) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L51;
+V2 = A12[i];
+j = A0[V2];
+L51:
+V16 = V16 + j;
+NEXT i;
+V87 = 0;
+FOR i = 0 TO V1;
+j = 1;
+IF (((A13[i] & 256) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L52;
+V2 = A12[i];
+j = A0[V2];
+L52:
+V87 = V87 + j;
+NEXT i;
+V17 = 0;
+FOR i = 0 TO V1;
+j = 1;
+IF (((A13[i] & 2) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L53;
+V2 = A12[i];
+j = A0[V2];
+L53:
+V17 = V17 + j;
+NEXT i;
+V181 = 0;
+FOR i = 0 TO V1;
+j = 1;
+IF (((A13[i] & 2048) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L54;
+V2 = A12[i];
+j = A0[V2];
+L54:
+V181 = V181 + j;
+NEXT i;
+V18 = V17;
+IF (V16 > V18) THEN V18 = V16;
+IF (V87 > V18) THEN V18 = V87;
+IF (V181 > V18) THEN V18 = V181;
+V20 = 32 + V1;
+IF ((2 * 5 * 5 * V67) > V20) THEN V20 = 2 * 5 * 5 * V67;
+IF ((2 * 5 * V66) > V20) THEN V20 = 2 * 5 * V66;
+IF (V90 > V20) THEN V20 = V90;
+IF (V95 > V20) THEN V20 = V95;
+IF (V180 > V20) THEN V20 = V180;
+IF (V212 > V20) THEN V20 = V212;
+IF (V224 > V20) THEN V20 = V224;
+V19 = V18;
+IF (V21 > V19) THEN V19 = V21;
+IF (V88 > V19) THEN V19 = V88;
+IF (V94 > V19) THEN V19 = V94;
+IF (V179 > V19) THEN V19 = V179;
+IF (V211 > V19) THEN V19 = V211;
+IF (V223 > V19) THEN V19 = V223;
+IF (V20 > V19) THEN V19 = V20;
+FOR i = 0 TO (V19 - 1);
+A29[i] = 0;
+A30[i] = 1;
+NEXT i;
+V33 = 0;
+FOR i = 0 TO V1;
+IF (((A13[i] & 2) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L55;
+V2 = A12[i];
+IF (V33 < A7[V2]) THEN
+V33 = A7[V2];
+L55:
+NEXT i;
+V12 = 0;
+V13 = 0;
+FOR i = 0 TO V1;
+V12 = V12 + A25[i];
+IF (A25[i] > V13) THEN V13 = A25[i];
+NEXT i;
+FOR i = 0 TO (V13 - 1);
+A39[i] = 1;
+NEXT i;
+FOR i = 0 TO 4;
+j = 10 * i;
+A34[(j + 9)..j] = $016;
+A35[(j + 9)..j] = $01A;
+A36[(j + 9)..j] = $022;
+A37[(j + 9)..j] = $026;
+FOR k = 0 TO 2;
+b = 0;
+IF ((i & (1 << k)) != 0) THEN b = 1;
+A34[j + k + 7] = b;
+A35[j + k + 7] = b;
+A36[j + k + 7] = b;
+A37[j + k + 7] = b;
+NEXT k;
+NEXT i;
+FOR i = 0 TO 6;
+j = 10 * i;
+A38[(j + 9)..j] = $02A;
+FOR k = 0 TO 2;
+b = 0;
+IF ((i & (1 << k)) != 0) THEN b = 1;
+A38[j + k + 7] = b;
+NEXT k;
+NEXT i;
+FOR i = 0 TO V1;
+A52[i] = 0;
+IF (((A13[i] & 256) == 0) ||
+((A13[i] & 4) == 0)) THEN GOTO L56;
+V2 = A12[i];
+A52[i] =
+A5[V2] - (80 * A6[V2]);
+L56:
+NEXT i;
+CALL L106;
+IRSTOP IRPAUSE;
+DRSTOP IDLE;
+STATE IDLE;
+IF(!(V101 || V103 || V108 || V107 ||
+V100 || V102
+) &&
+V105) THEN GOTO L84;
+V4 = 0;
+FOR i = 0 TO V1;
+IF (((A17[i] & (32)) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 64) != 0)) THEN
+V4 = 32;
+NEXT i;
+IF (V4 != 32) THEN
+GOTO L57;
+FOR i = 0 TO V1;
+IF (((A17[i] & (32)) != 0) &&
+((A17[i] & 4) != 0) &&
+(((A17[i] & 64) == 0) ||
+(((A147[i] & 1) != 0) && !V231 && !V259))) THEN
+A17[i] = A17[i] | 8;
+NEXT i;
+A18[9..0] = $281;
+CALL L458;
+FOR i = 0 TO 200;
+WAIT IDLE, 512 CYCLES, 512 USEC, IDLE;
+NEXT i;
+FOR i = 0 TO V1;
+IF (((A17[i] & (32)) != 0) &&
+((A17[i] & 4) != 0) &&
+(((A17[i] & 64) == 0) ||
+(((A147[i] & 1) != 0) && !V231 && !V259))) THEN
+A17[i] = A17[i] & ~8;
+NEXT i;
+L57:
+IF (V101 || V231 || V259 || V4 == 131072) THEN CALL L108;
+IF (V42 != 0) THEN GOTO L84;
+FOR i = 0 TO V1;
+IF (((A17[i] & (1 | 2)) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 1 | 2;
+NEXT i;
+IF (V4 != (1 | 2)) THEN
+GOTO L58;
+A18[9..0] = $071;
+CALL L458;
+WAIT 10000 USEC;
+L58:
+FOR i = 0 TO V1;
+IF (((A17[i] & 256) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 256;
+NEXT i;
+IF (V4 != 256) THEN
+GOTO L70;
+A18[9..0] = $332;
+CALL L458;
+WAIT 10000 USEC;
+V203 = 0;
+L70:
+FOR i = 0 TO V1;
+IF (((A17[i] & 512) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 512;
+NEXT i;
+IF (V4 != 512) THEN
+GOTO L71;
+A18[9..0] = $044;
+CALL L458;
+WAIT 10000 USEC;
+L71:
+FOR i = 0 TO V1;
+IF (((A17[i] & 2048) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 2048;
+NEXT i;
+IF (V4 != 2048) THEN
+GOTO L72;
+IF (V103 || V102) THEN V38 = 1;
+V38 = 0;
+WAIT 10000 USEC;
+L72:
+FOR i = 0 TO V1;
+IF (((A17[i] & 16384) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 16384;
+NEXT i;
+IF (V4 != 16384) THEN
+GOTO L1187;
+L1187:
+V203 = 0;
+CALL L107;
+FOR i = 0 TO V1;
+A17[i] = A17[i] & ~8;
+NEXT i;
+V4 = 0;
+FOR i = 0 TO V1;
+IF ((A17[i] & 131072) != 0) THEN V4 = 131072;
+NEXT i;
+IF (V4 != 131072) THEN GOTO L84;
+V203 = 0;
+L84:
+ENDPROC;
+PROCEDURE L85 USES DEVICE_DATA, TEMP_DATA, L88, L458 ;
+IF (V233 || !V76 || (V42 != 0)) THEN GOTO L87;
+A18[9..0] = $003;
+V4 = 32;
+CALL L458;
+WAIT IDLE, 4096 CYCLES, 5 USEC, IDLE;
+V233 = 1;
+FOR i = 0 TO V1;
+IF (A94[i] != 0) THEN
+V191 = 1;
+NEXT i;
+IF(V191 == 1) THEN GOTO L86;
+GOTO L87;
+L86:
+CALL L88;
+L87:
+ENDPROC;
+PROCEDURE L88 USES DEVICE_DATA, TEMP_DATA, L458 ;
+PREIR 0;
+POSTIR 0;
+PREDR 0;
+POSTDR 0;
+FOR i = V1 TO 0 STEP -1;
+IF (((A17[i] & 32) == 0) ||
+((A17[i] & 4) == 0) ||
+(V42 != 0)) THEN
+GOTO L91;
+IF (A94[i] == 0) THEN GOTO L91;
+V77 = 0;
+V78 = 0;
+V30 = 0;
+FOR j = V1 TO 0 STEP -1;
+IF (i == j) THEN GOTO L89;
+IF ((A17[j] & 32) != 0) THEN
+A17[j] = A17[j] & ~4;
+IF (i > j) THEN V77 = V77 + 1;
+IF (i < j) THEN V78 = V78 + 1;
+IF (j < i) THEN V30 = V30 + A94[j];
+L89:
+NEXT j;
+V31 = V30 + A94[i] - 1;
+IF(V31 == V30) THEN GOTO L90;
+PUSH i;
+A18[9..0] = $00A;
+CALL L458;
+POP i;
+PREDR V77;
+POSTDR V78;
+FOR j = 0 TO 100;
+DRSCAN A94[i], A95[V31..V30], CAPTURE A45[79..0];
+IF(A45[79] == 0) THEN j = 100;
+NEXT j;
+if(A45[79] == 0) THEN GOTO L90;
+V42 = 12;
+GOTO L92;
+L90:
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, V192[79..0], CAPTURE A45[79..0];
+L91:
+NEXT i;
+L92:
+PREIR 0;
+POSTIR 0;
+PREDR 0;
+POSTDR 0;
+ENDPROC;
+PROCEDURE L93 USES DEVICE_DATA, TEMP_DATA, L107, L458, L108, L113
+, L85
+;
+IF (V42 == 1) THEN GOTO L100;
+CALL L107;
+CALL L85;
+L94:
+FOR i = 0 TO V1;
+IF (((A17[i] & (1 | 2)) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 1 | 2;
+NEXT i;
+IF (V4 != (1 | 2)) THEN
+GOTO L95;
+A18[9..0] = $079;
+CALL L458;
+WAIT 10000 USEC;
+L95:
+FOR i = 0 TO V1;
+IF (((A17[i] & 256) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 256;
+NEXT i;
+IF (V4 != 256) THEN
+GOTO L96;
+A18[9..0] = $006;
+CALL L458;
+L96:
+FOR i = 0 TO V1;
+IF (((A17[i] & 512) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 512;
+NEXT i;
+IF (V4 != 512) THEN
+GOTO L96a;
+A18[9..0] = $04A;
+CALL L458;
+WAIT 10000 USEC;
+L96a:
+FOR i = 0 TO V1;
+IF (((A17[i] & 2048) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 2048;
+NEXT i;
+IF (V4 != 2048) THEN
+GOTO L97;
+A18[9..0] = $04A;
+WAIT 10000 USEC;
+L97:
+FOR i = 0 TO V1;
+IF (((A17[i] & 16384) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 16384;
+NEXT i;
+IF (V4 != 16384) THEN
+GOTO L98;
+A18[9..0] = $201;
+IF (V228 == 1) THEN A18[9..0] = $166;
+CALL L458;
+WAIT 10000 USEC;
+L98:
+FOR i = 0 TO V1;
+IF (((A17[i] & 131072) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 131072;
+NEXT i;
+IF (V4 != 131072) THEN GOTO L1193;
+L1193:
+IF ((!V76 && !V231 && !V259) || (V42 != 0)) THEN GOTO L99;
+WAIT IDLE, 256 CYCLES, 10 USEC, IDLE;
+V80 = 0;
+IF (!V421 && !A175) THEN CALL L108;
+IF ((V42 != 0) && V76) THEN V42 = 10;
+IF ((V42 != 0) && !V76) THEN V42 = 10;
+IF (V42 != 0) THEN GOTO L100;
+L99:
+A18[9..0] = $3FF;
+CALL L458;
+IF (V105 && (V42 == 0)) THEN CALL L113;
+L100:
+IF (V42 == 0) THEN
+PRINT "DONE";
+IF (V42 == 1) THEN
+PRINT "Invalid option combination specified";
+IF (V42 == 6) THEN
+PRINT "Unrecognized device";
+IF (V42 == 7) THEN
+PRINT "Device revision is not supported";
+IF ((V42 == 10) && (V103)) THEN
+PRINT "Device programming failure";
+IF (V42 == 9) THEN
+PRINT "Device is not blank";
+IF (V42 == 11) THEN
+PRINT "Device verify failure";
+IF ((V42 == 10) && (V101)) THEN
+PRINT "Device configuration failure";
+IF (V42 == 4) THEN
+PRINT "Unable to read USERCODE/UES from device #", V84 + 1;
+IF (V42 == 12) THEN
+PRINT "Failed to configure Excalibur stripe";
+IF (V42 == 14) THEN
+PRINT "Failed to erase or program ASC device";
+IF (V42 == 15) THEN
+PRINT "Unable to erase the protected sector(s) of the ASC device";
+IF (V42 == 18) THEN
+PRINT "Reserved block start address mismatch - operation aborted";
+IF (V42 == 19) THEN
+PRINT "Unexpected problem has occurred during NAND flash bad block management.";
+IF (V42 == 20) THEN
+PRINT "Device is write-protected";
+IF (V42 == 21) THEN
+PRINT "Programming file size is larger than flash density";
+IF (V42 == 22) THEN
+PRINT "Programming file format is not aligned with flash type";
+ENDPROC;
+PROCEDURE L101 USES DEVICE_DATA, TEMP_DATA;
+j = 0;
+FOR i = 0 TO V1;
+IF ((j <= V3) &&
+((A13[i] & V4) != 0) &&
+((A13[i] & 4) != 0)) THEN j = i + 1;
+NEXT i;
+IF (j > V3) THEN GOTO L102;
+V2 = 0;
+V3 = 0;
+GOTO L105;
+L102:
+V2 = A12[j - 1];
+V3 = j;
+IF(!V216) THEN GOTO L103;
+V2 = A105[j - 1];
+L103:
+IF ((V4 == 32) || (V4 == 256) ||
+(V4 == 512) || (V4 == 2048) ||
+(V4 == 16384) || (V4 == 32768) ||
+(V4 == 1024))
+THEN GOTO L105;
+IF (V58) THEN GOTO L104;
+A41[9..0] = $066;
+GOTO L105;
+L104:
+A41[9..0] = $006;
+L105:
+IF (V4 == 1) THEN A40[9..0] = $00E;
+IF (V4 == 1) THEN A44[9..0] = $012;
+IF (V4 == 2) THEN A40[9..0] = $38E;
+IF (V4 == 2) THEN A44[9..0] = $392;
+ENDPROC;
+PROCEDURE L106 USES DEVICE_DATA, TEMP_DATA, L107
+;
+CALL L107;
+V10 = 0;
+V14 = 0;
+V15 = 0;
+V89 = 0;
+V49 = 1;
+V34 = 0;
+V51 = -1;
+V52 = -1;
+V45 = 0;
+V29 = 1;
+IF (V103) THEN V29 = 0;
+IF (V102 && V74) THEN V29 = 2;
+ENDPROC;
+PROCEDURE L107 USES DEVICE_DATA, TEMP_DATA;
+FOR i = 0 TO V1;
+A17[i] = (A13[i] | A48[i]);
+IF (((A17[i] & 4) != 0) &&
+((A17[i] & (1 | 256 | 2 | 512 | 2048 | 16384 | 131072)) != 0) &&
+!V102 && !V100 && !V103 && !V108 &&
+!V107 && !V106 && V101) THEN
+A17[i] = A17[i] & ~4;
+IF (((A17[i] & 4) != 0) &&
+((A17[i] & 32) != 0) && ((A17[i] & 32768) == 0) && ((A17[i] & 1024) == 0) && !V101 &&
+(V102 || V100 || V103 || V108 ||
+V107 || V106)) THEN
+A17[i] = A17[i] & ~4;
+NEXT i;
+ENDPROC;
+PROCEDURE L108 USES DEVICE_DATA, TEMP_DATA, L107;
+INTEGER V79 = 32 * V0;
+BOOLEAN A46[V79];
+INTEGER A47[8];
+INTEGER V145;
+CALL L107;
+STATE IDLE;
+V27 = 0;
+FOR i = 0 TO V1;
+A18[(A25[i] - 1)..0] = A39[(A25[i] - 1)..0];
+IF ((A17[i] & (1 | 2 | 256 | 512 | 2048)) != 0) THEN
+A18[9..0] = $059;
+IF ((A17[i] & (32 | 16384 | 131072 | 262144)) != 0) THEN
+A18[9..0] = $006;
+IF ((A17[i] & 65536) != 0) THEN
+A18[3..0] = $E;
+A32[(V27 + (A25[i] - 1))..V27] = A18[(A25[i] - 1)..0];
+V27 = V27 + A25[i];
+NEXT i;
+IRSCAN V27, A32[(V27 - 1)..0];
+WAIT IRPAUSE, 5 USEC, IDLE;
+WAIT 3 CYCLES;
+DRSCAN V79, A46[(V79 - 1)..0], CAPTURE A46[(V79 - 1)..0];
+V27 = 0;
+FOR i = 0 TO V1;
+IF (A46[V27] == 1) THEN GOTO L109;
+IF (V80) THEN
+PRINT "Device #", V0 - i, " unable to read IDCODE";
+IF (V101 && ((A17[i] & 32) != 0) &&
+((A17[i] & 4) != 0)) THEN V42 = 6;
+GOTO L110;
+L109:
+FOR j = 0 TO 7;
+A47[j] = 0;
+FOR k = 0 TO 3;
+IF (A46[V27 + (4 * j) + k]) THEN
+A47[j] = A47[j] | (1 << k);
+NEXT k;
+A47[j] = A47[j] + 48;
+IF (A47[j] >= 58) THEN A47[j] = A47[j] + 7;
+NEXT j;
+IF (V80) THEN
+PRINT "Device #", V0 - i, " IDCODE is ",
+CHR$(A47[7]), CHR$(A47[6]),
+CHR$(A47[5]), CHR$(A47[4]),
+CHR$(A47[3]), CHR$(A47[2]),
+CHR$(A47[1]), CHR$(A47[0]);
+IF (V101 && ((A17[i] & 32) != 0) &&
+((A17[i] & 4) != 0) && (A47[0] != 68) &&
+(A47[1] != 68)) THEN
+V42 = 6;
+V27 = V27 + 31;
+L110:
+V27 = V27 + 1;
+NEXT i;
+V27 = 0;
+k = 0;
+push l;
+FOR i = 0 TO V1;
+IF (A61[k] != 0) THEN GOTO L111;
+IF (A46[V27] != 0) THEN
+V42 = 6;
+V27 = V27 + 1;
+k = k + 1;
+NEXT i;
+GOTO L112;
+L111:
+V145 = 0;
+FOR j = 0 TO 31;
+IF (A46[(V27 + j)]) THEN
+V145 = V145 + (1 << j);
+NEXT j;
+l = 6;
+FOR j = 0 TO (A61[k] - 1);
+IF (V145 == A61[k+j+1]) THEN l = 0;
+IF (l == 0) THEN j = A61[k];
+NEXT j;
+V27 = V27 + 32;
+k = k + A61[k] + 1;
+IF (l == 6) THEN
+V42 = 6;
+NEXT i;
+L112:
+pop l;
+IF (V232 && (V42 != 0)) THEN
+PRINT "IDCODE failures ignored";
+IF (V232 && (V42 != 0)) THEN
+V42 = 0;
+ENDPROC;
+PROCEDURE L113 USES DEVICE_DATA, TEMP_DATA, L107, L458, L119;
+j = 0;
+k = V1;
+V84 = V84 - 1;
+IF (V84 == -1) THEN GOTO L114;
+IF ((V84 < 0) || (V84 > V1) ||
+(((A17[V1 - V84] & 256) == 0) &&
+((A17[V1 - V84] & 32) == 0) &&
+((A17[V1 - V84] & 512) == 0) &&
+((A17[V1 - V84] & 16384) == 0) &&
+((A17[V1 - V84] & 2048) == 0) &&
+((A17[V1 - V84] & 131072) == 0))) THEN
+V42 = 4;
+IF (V42 != 0) THEN GOTO L118;
+j = V84;
+k = V84;
+L114:
+CALL L107;
+FOR i = 0 TO V1;
+IF (((A17[i] & 256) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 256;
+NEXT i;
+IF (V4 != 256) THEN
+GOTO L115;
+A18[9..0] = $006;
+CALL L458;
+WAIT 10000 USEC;
+L115:
+FOR i = 0 TO V1;
+IF (((A17[i] & (512 | 2048)) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 512 | 2048;
+NEXT i;
+IF (V4 != (512 | 2048)) THEN
+GOTO L116;
+A18[9..0] = $04A;
+CALL L458;
+WAIT 10000 USEC;
+L116:
+FOR i = 0 TO V1;
+IF (((A17[i] & 16384) != 0) &&
+((A17[i] & 4) != 0) &&
+((A17[i] & 8) == 0)) THEN
+V4 = 16384;
+NEXT i;
+IF (V4 != 16384) THEN
+GOTO L117;
+A18[9..0] = $201;
+CALL L458;
+WAIT 10000 USEC;
+L117:
+A18[9..0] = $3FF;
+CALL L458;
+STATE IDLE;
+FOR i = 0 TO (V19 - 1);
+A30[i] = 1;
+NEXT i;
+FOR i = j TO k;
+V84 = i;
+PUSH i; PUSH j; PUSH k;
+CALL L107;
+V4 = 0;
+IF (((A17[V1 - V84] & 256) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 256;
+IF (((A17[V1 - V84] & 16384) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 16384;
+IF (((A17[V1 - V84] & 32) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 32;
+IF (((A17[V1 - V84] & 512) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 512;
+IF (((A17[V1 - V84] & 2048) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 2048;
+IF (((A17[V1 - V84] & 131072) != 0) &&
+((A17[V1 - V84] & 4) != 0)) THEN
+V4 = 131072;
+IF (V4 != 0) THEN CALL L119;
+POP k; POP j; POP i;
+NEXT i;
+L118:
+V84 = 0;
+ENDPROC;
+PROCEDURE L119 USES DEVICE_DATA, TEMP_DATA, L458, L123;
+j = V1 - V84;
+FOR i = 0 TO V1;
+IF (((A17[i] & V4) != 0) &&
+((A17[i] & 4) != 0) && (i != j)) THEN
+A17[i] = A17[i] | 8;
+NEXT i;
+IF (V4 == 256) THEN
+A18[9..0] = $007;
+IF (V4 == 16384) THEN
+A18[9..0] = $007;
+IF ((V4 == 512) || (V4 == 2048)) THEN
+A18[9..0] = $079;
+IF (V4 == 32) THEN
+A18[9..0] = $007;
+IF (V4 == 131072) THEN
+A18[9..0] = $007;
+CALL L458;
+DRSCAN 32 + j, A30[(32 + j - 1)..0], CAPTURE A31[(32 + j - 1)..0];
+V86 = 0;
+FOR i = 0 TO 31;
+IF (A31[i + j]) THEN
+V86 = V86 | (1 << i);
+NEXT i;
+CALL L123;
+ENDPROC;
+PROCEDURE L120 USES DEVICE_DATA, TEMP_DATA, L107, L458;
+CALL L107;
+V4 = 512;
+j = 0;
+FOR i = 0 TO V1;
+A30[j] = 1;
+l = 1;
+IF (((A17[i] & 512) == 0) ||
+((A17[i] & 4) == 0)) THEN
+GOTO L122;
+l = 8 * 3;
+FOR V27 = 0 TO l - 1;
+A30[j + V27] = 1;
+IF ((V27 % 3) == 0) THEN
+A30[j + V27] = 0;
+NEXT V27;
+L122:
+j = j + l;
+NEXT i;
+A18[9..0] = $055;
+CALL L458;
+WAIT IDLE, 10 CYCLES, 1000 USEC, IDLE;
+DRSCAN j, A30[j - 1..0];
+WAIT IDLE, 10 CYCLES, 1000 USEC, IDLE;
+A18[9..0] = $000;
+CALL L458;
+WAIT IDLE, 10 CYCLES, 1000 USEC, IDLE;
+A18[9..0] = $3FF;
+CALL L458;
+WAIT IDLE, 10 CYCLES, 1000 USEC, IDLE;
+FOR i = 0 TO j - 1;
+A30[i] = 1;
+NEXT i;
+ENDPROC;
+PROCEDURE L123 USES DEVICE_DATA, TEMP_DATA;
+INTEGER A58[8];
+EXPORT "DEVICE", V84 + 1;
+EXPORT "USERCODE", V86;
+FOR i = 0 TO 7;
+V27 = 0;
+A58[i] = V86 & 15;
+IF (A58[i] > 9) THEN V27 = 7;
+A58[i] = A58[i] + 48 + V27;
+V86 = V86 >> 4;
+NEXT i;
+PRINT "Device #", V84 + 1, " USERCODE code is ",
+CHR$(A58[7]), CHR$(A58[6]),
+CHR$(A58[5]), CHR$(A58[4]),
+CHR$(A58[3]), CHR$(A58[2]),
+CHR$(A58[1]), CHR$(A58[0]);
+ENDPROC;
+PROCEDURE L124 USES DEVICE_DATA, TEMP_DATA, L107
+;
+j = 0;
+k = V1;
+V34 = 1;
+V29 = 1;
+V84 = V84 - 1;
+IF (V84 == -1) THEN GOTO L126;
+IF ((V84 < 0) || (V84 > V1) ||
+(((A17[V1 - V84] & 1) == 0) &&
+((A17[V1 - V84] & 2) == 0))) THEN
+V42 = 4;
+IF (V42 != 0) THEN GOTO L127;
+L125:
+j = V84;
+k = V84;
+L126:
+FOR i = j TO k;
+V84 = i;
+PUSH i; PUSH j; PUSH k;
+CALL L107;
+V86 = 0;
+POP k; POP j; POP i;
+NEXT i;
+L127:
+V84 = 0;
+ENDPROC;
+PROCEDURE L134 USES DEVICE_DATA, TEMP_DATA;
+INTEGER V85[8];
+EXPORT "DEVICE", V84 + 1;
+EXPORT "UES", V86;
+FOR i = 0 TO 3;
+V27 = 0;
+V85[i] = V86 & 15;
+IF (V85[i] > 9) THEN V27 = 7;
+V85[i] = V85[i] + 48 + V27;
+V86 = V86 >> 4;
+NEXT i;
+PRINT "Device #", V84 + 1, " UES code is ",
+CHR$(V85[3]), CHR$(V85[2]),
+CHR$(V85[1]), CHR$(V85[0]);
+ENDPROC;
+PROCEDURE L135 USES DEVICE_DATA, TEMP_DATA, L458;
+A18[9..0] = $00A;
+CALL L458;
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, V189[79..0], CAPTURE A45[79..0];
+FOR i = 0 TO 100;
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, A29[79..0], CAPTURE A45[79..0];
+IF (A45[79] == 0) THEN i = 100;
+NEXT i;
+IF (A45[79] == 0) THEN GOTO L136;
+V42 = 12;
+GOTO L137;
+L136:
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, V190[79..0], CAPTURE A45[79..0];
+FOR i = 0 TO 100;
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, A29[79..0], CAPTURE A45[79..0];
+IF (A45[79] == 0) THEN i = 100;
+NEXT i;
+IF (A45[79] == 0) THEN GOTO L137;
+V42 = 12;
+L137:
+ENDPROC;
+PROCEDURE L138 USES DEVICE_DATA, TEMP_DATA;
+V188 = (V187 - V186)/80;
+FOR i = 0 TO V188;
+FOR j = 0 TO 100;
+PREDR V77;
+POSTDR V78;
+DRSCAN 80, A93[(V186 + 79)..V186], CAPTURE A45[79..0];
+IF (A45[79] == 0) THEN j = 100;
+NEXT j;
+IF (A45[79] == 0) THEN GOTO L139;
+V42 = 12;
+i = V188;
+GOTO L140;
+L139:
+V186 = V186 + 80;
+L140:
+NEXT i;
+ENDPROC;
+PROCEDURE L1223 USES DEVICE_DATA, TEMP_DATA, L458, L849;
+PUSH j;
+PUSH m;
+PUSH n;
+PUSH i;
+A31[22+V1..0] = A29[22+V1..0];
+IF ((A186[j] & 512) == 0) THEN A31[j+22..j] = $500008;
+IF ((A186[j] & 512) != 0) THEN A31[j+22..j] = $480008;
+A18[9..0] = $203;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+DRSCAN (23 + V1), A31[22+V1..0];
+STATE IDLE;
+A18[9..0] = $205;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+DRSCAN (32 + V1), A29[31+V1..0], CAPTURE A31[31+V1..0];
+WAIT IDLE, 3 CYCLES, IDLE;
+ba[31..0] = A31[j+31..j];
+Call L849;
+IF (i == 0) THEN GOTO L1224;
+i = i >> 23;
+m = 0;
+FOR n = 0 TO 8;
+IF ((i & (1 << n)) != 0) THEN m = m + (1 << (8 - n));
+NEXT n;
+IF (m != 120 && m != 124 && m != 126) THEN V42 = 6;
+IF (V42 != 0) THEN PRINT "Detected invalid Max 10 feature ID for device ", V0 - j;
+IF (V42 != 0) THEN GOTO L1224;
+IF (m > (A186[j] & 511)) THEN V42 = 6;
+IF (V42 != 0) THEN PRINT "Incompatible feature ID for device ", V0 - j, ". Expected feature ID is ", (A186[j] & 511), " but fouL742 ", m;
+L1224:
+POP i;
+POP n;
+POP m;
+POP j;
+ENDPROC;
+PROCEDURE L1190 USES DEVICE_DATA, TEMP_DATA, L458, L850, L1223;
+push V91;
+V91 = 1;
+m = 0;
+n = 0;
+FOR i = 0 to V1;
+IF ((A17[i] & 32) != 0 && (A17[i] & 4) != 0) THEN A17[i] = A17[i] | 8;
+m = m + A25[i];
+NEXT i;
+FOR j = 0 to V1;
+IF ((A17[j] & 32) == 0 ||
+(A17[j] & 4) == 0 ||
+(A17[j] & 524288) == 0) THEN GOTO L1191;
+A17[j] = A17[j] & ~8;
+A31[m-1..0] = A30[m-1..0];
+A31[n+9..n] = $006;
+IRSCAN m, A31[m-1..0], CAPTURE A57[m-1..0];
+STATE IDLE;
+A18[9..0] = $2CC;
+CALL L458;
+WAIT IDLE, 16 CYCLES, 350000 USEC, IDLE;
+call L1223;
+IF (V42 != 0) THEN GOTO L1192;
+IF A57[n+2] == 1 THEN GOTO L1192;
+A18[9..0] = $203;
+CALL L458;
+WAIT IDLE, 3 CYCLES, IDLE;
+DRSCAN 23 + V1, A29[22+V1..0];
+A18[9..0] = $3F2;
+CALL L458;
+WAIT IDLE, 16 CYCLES, 350000 USEC, IDLE;
+A18[9..0] = $307;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+DRSCAN V0, A29[V1..0], CAPTURE A31[V1..0];
+IF (A31[j] == 0) THEN V42 = 10;
+IF (A31[j] == 0) THEN GOTO L1192;
+STATE IDLE;
+FOR m = 0 to 3;
+A18[9..0] = $203;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+i = A174[j * 2];
+IF (m == 0) THEN i = i - ((A174[j * 2 + 1]/32) + 1);
+IF (m == 1) THEN i = 14 * (A174[j * 2 + 1]/64);
+IF (m == 3) THEN i = i + (A174[j * 2 + 1]/32);
+CALL L850;
+k = j;
+FOR i = 22 TO 0 STEP -1;
+A31[k] = ba[i];
+k = k + 1;
+NEXT i;
+k = 23 + V1;
+DRSCAN k, A31[k-1..0];
+STATE IDLE;
+A18[9..0] = $3F4;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+A31[j+31..j] = $6C48A50F; 
+IF (m == 1) THEN A31[j+31..j] = $FFF7FFFF; 
+k = 32 + V1;
+DRSCAN k, A31[k-1..0];
+WAIT IDLE, 3 CYCLES, 320 USEC, IDLE;
+A18[9..0] = $307;
+CALL L458;
+WAIT IDLE, 16 CYCLES, IDLE;
+DRSCAN V0, A29[V1..0], CAPTURE A31[V1..0];
+STATE IDLE;
+IF (A31[j] == 0) THEN V42 = 10;
+IF (V42 != 0) THEN m = 2;
+NEXT m;
+L1192:
+A18[9..0] = $201;
+CALL L458;
+WAIT IDLE, 1 CYCLES, 1000 USEC, IDLE;
+A17[j] = A17[j] | 8;
+L1191:
+IF (V42 != 0) THEN j = V1;
+n = n + A25[j];
+NEXT j;
+FOR i = 0 to V1;
+A17[i] = A17[i] & ~8;
+NEXT i;
+pop V91;
+ENDPROC;
+PROCEDURE L141 USES DEVICE_DATA, TEMP_DATA, L107, L458, L138, L135;
+PRINT "configuring SRAM device(s)...";
+CALL L107;
+PREIR 0;
+POSTIR 0;
+PREDR 0;
+POSTDR 0;
+FOR i = V1 TO 0 STEP -1;
+IF (((A17[i] & 32) == 0) ||
+((A17[i] & 4) == 0) ||
+(V42 != 0)) THEN
+GOTO L146;
+V77 = 0;
+V78 = 0;
+V30 = 0;
+V186 = 0;
+FOR j = V1 TO 0 STEP -1;
+IF (i == j) THEN GOTO L142;
+IF ((A17[j] & 32) != 0) THEN
+A17[j] = A17[j] & ~4;
+IF (i > j) THEN V77 = V77 + 1;
+IF (i < j) THEN V78 = V78 + 1;
+IF (j < i) THEN V30 = V30 + A43[j];
+IF (j < i) THEN V186 = V186 + A92[j];
+L142:
+NEXT j;
+IF(A92[i] == 0) THEN
+GOTO L143;
+PUSH i;
+CALL L135;
+POP i;
+V187 = V186 + A92[i] - 1;
+PUSH i;
+CALL L138;
+POP i;
+L143:
+V31 = V30 + A43[i] - 1;
+POSTDR V78;
+PUSH i;
+IF (((A147[i] & 2) == 0) ||
+V393) THEN
+GOTO L1094;
+A18[9..0] = $2EE;
+CALL L458;
+L1094:
+IF ((A17[i] & 64) == 0) THEN
+GOTO L144;
+A18[9..0] = $281;
+CALL L458;
+FOR i = 0 TO 200;
+WAIT IDLE, 512 CYCLES, 512 USEC, IDLE;
+NEXT i;
+POP i;
+PUSH i;
+L144:
+IF (((A17[i] & 128) == 0) || (V230 == 0)) THEN
+GOTO L145;
+A18[9..0] = $00D;
+CALL L458;
+WAIT 2500 USEC;
+L145:
+A18[9..0] = $002;
+CALL L458;
+FOR i = 0 TO 20;
+WAIT IDLE, 512 CYCLES, 512 USEC, IDLE;
+NEXT i;
+POP i;
+DRSCAN A43[i], A42[V31..V30];
+IF (USE_REV0_PROG_ALG) THEN DRSCAN 32, A30[31..0];
+PUSH i;
+A18[9..0] = $004;
+CALL L458;
+POP i;
+PREDR V77;
+POSTDR V78;
+DRSCAN A59[i], A29[A59[i]-1..0], CAPTURE A45[A59[i]-1..0];
+IF !A45[A60[i]] THEN V42 = 10;
+PUSH i;
+IF (((A147[i] & 2) == 0) ||
+V393) THEN
+GOTO L1095;
+WAIT IDLE, 8192 CYCLES, 2048 USEC, IDLE;
+A18[9..0] = $1EE;
+CALL L458;
+L1095:
+CALL L107;
+POP i;
+L146:
+NEXT i;
+PREIR 0;
+POSTIR 0;
+PREDR 0;
+POSTDR 0;
+IF (V42 != 0) THEN
+GOTO L147;
+V76 = 1;
+L147:
+ENDPROC;
+PROCEDURE L458 USES DEVICE_DATA, TEMP_DATA;
+PUSH i;
+PUSH j;
+PUSH l;
+V41 = 0;
+V27 = 0;
+IF (!V56) THEN GOTO L459;
+V56 = 0;
+V41 = 50;
+IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L459;
+V27 = 50;
+A32[49..0] = A30[49..0];
+L459:
+FOR i = 0 TO V1;
+IF ((A17[i] & 8) != 0) THEN GOTO L460;
+IF (((A17[i] & V4) != 0) &&
+((A17[i] & 4) != 0)) THEN GOTO L462;
+A33[(A25[i] - 1)..0] = A39[(A25[i] - 1)..0];
+IF (((A17[i] & 1) != 0) &&
+((A17[i] & 4) != 0)) THEN
+A33[(A25[i] - 1)..0] = $03E;
+A32[(V27 + (A25[i] - 1))..V27] = A33[(A25[i] - 1)..0];
+V27 = V27 + A25[i];
+GOTO L465;
+L460:
+IF ((A17[i] & 2) != 0) THEN GOTO L461;
+A32[(V27 + 9)..V27] = $3FF;
+IF ((A17[i] & 1) != 0) THEN
+A32[(V27 + 9)..V27] = $03E;
+V27 = V27 + 10;
+GOTO L465;
+L461:
+IF (!V57) THEN GOTO L462;
+A32[(V27 + 9)..V27] = $02A;
+V27 = V27 + 10;
+GOTO L465;
+L462:
+l = 0;
+IF ((A18[20] == 1) && ((A17[i] & 64) != 0)) THEN
+l = 10;
+A32[(V27 + 9)..V27] = A18[(l + 9)..l];
+V27 = V27 + 10;
+GOTO L465;
+L465:
+NEXT i;
+IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN
+GOTO L466;
+STATE DRPAUSE;
+WAIT DRPAUSE, 5 USEC, DRPAUSE;
+L466:
+IRSCAN V27, A32[(V27 - 1)..0];
+V57 = 0;
+WAIT IRPAUSE, V83 USEC, IRPAUSE;
+IF (V91) THEN GOTO L467;
+STATE IDLE;
+WAIT 3 CYCLES;
+L467:
+POP l;
+POP j;
+POP i;
+ENDPROC;
+PROCEDURE L682 USES DEVICE_DATA, TEMP_DATA;
+V23 = 0;
+V24 = 0;
+FOR i = 0 TO (V19 - 1);
+A30[i] = 1;
+NEXT i;
+FOR i = 0 TO V1;
+V25 = 1;
+V26 = 1;
+IF(V216) THEN V25 = 0;
+IF(V216) THEN V26 = 0;
+IF (((A17[i] & V4) == 0) ||
+((A17[i] & 4) == 0) ||
+((A17[i] & 8) != 0)) THEN GOTO L683;
+V2 = A12[i];
+IF(V216) THEN V2 = A105[i];
+V25 = A1[V2];
+V26 = A5[V2];
+GOTO L684;
+L683:
+IF (V74 && !V216) THEN A30[V24] = 0;
+L684:
+V23 = V23 + V25;
+V24 = V24 + V26;
+NEXT i;
+V49 = 0;
+ENDPROC;
+PROCEDURE L849 USES TEMP_DATA;
+PUSH j;
+i = 0;
+FOR j = 0 to 31;
+IF (ba[j] == 1) THEN i = i + (1<<j);
+NEXT j;
+POP j;
+ENDPROC;
+PROCEDURE L850 USES TEMP_DATA;
+PUSH j;
+ba[31..0] = $00000000;
+FOR j = 0 to 31;
+IF (i&(1<<j))!=0 THEN ba[j]=1;
+NEXT j;
+POP j;
+ENDPROC;
+' END OF FILE
+CRC 332F;

BIN
output_files/max80.jic


+ 18 - 0
output_files/max80.map

@@ -0,0 +1,18 @@
+BLOCK		START ADDRESS		END ADDRESS
+
+Page_0		0x00000000		0x0007CB87
+
+
+Configuration device: EP4CE15
+Configuration mode: Active Serial
+Quad-Serial configuration device dummy clock cycle: 8
+
+
+Notes:
+
+- Data checksum for this conversion is 0xF75E94D8
+
+- All the addresses in this file are byte addresses
+
+- The following changes from default values for Advanced Options settings are in effect:
+	Disable EPCS ID check: ON

+ 5 - 5
output_files/max80.map.rpt

@@ -1,5 +1,5 @@
 Analysis & Synthesis report for max80
-Fri Aug  6 18:02:08 2021
+Fri Aug  6 18:12:58 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -67,7 +67,7 @@ https://fpgasoftware.intel.com/eula.
 +----------------------------------------------------------------------------------+
 ; Analysis & Synthesis Summary                                                     ;
 +------------------------------------+---------------------------------------------+
-; Analysis & Synthesis Status        ; Successful - Fri Aug  6 18:02:08 2021       ;
+; Analysis & Synthesis Status        ; Successful - Fri Aug  6 18:12:58 2021       ;
 ; Quartus Prime Version              ; 20.1.1 Build 720 11/11/2020 SJ Lite Edition ;
 ; Revision Name                      ; max80                                       ;
 ; Top-level Entity Name              ; max80                                       ;
@@ -1093,7 +1093,7 @@ Note: In order to hide this table in the UI and the text report file, please set
 Info: *******************************************************************
 Info: Running Quartus Prime Analysis & Synthesis
     Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
-    Info: Processing started: Fri Aug  6 18:02:03 2021
+    Info: Processing started: Fri Aug  6 18:12:53 2021
 Info: Command: quartus_map --read_settings_files=on --write_settings_files=off max80 -c max80
 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines.  Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
 Info (20030): Parallel compilation is enabled and will use 8 of the 8 processors detected
@@ -1520,8 +1520,8 @@ Info (21057): Implemented 484 device resources after synthesis - the final resou
     Info (21065): Implemented 2 PLLs
 Info: Quartus Prime Analysis & Synthesis was successful. 0 errors, 219 warnings
     Info: Peak virtual memory: 678 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:08 2021
+    Info: Processing ended: Fri Aug  6 18:12:58 2021
     Info: Elapsed time: 00:00:05
-    Info: Total CPU time (on all processors): 00:00:15
+    Info: Total CPU time (on all processors): 00:00:16
 
 

+ 1 - 1
output_files/max80.map.summary

@@ -1,4 +1,4 @@
-Analysis & Synthesis Status : Successful - Fri Aug  6 18:02:08 2021
+Analysis & Synthesis Status : Successful - Fri Aug  6 18:12:58 2021
 Quartus Prime Version : 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 Revision Name : max80
 Top-level Entity Name : max80

+ 8 - 8
output_files/max80.pow.rpt

@@ -1,5 +1,5 @@
 Power Analyzer report for max80
-Fri Aug  6 18:02:18 2021
+Fri Aug  6 18:13:09 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -53,19 +53,19 @@ https://fpgasoftware.intel.com/eula.
 ; Number detected on machine ; 16          ;
 ; Maximum allowed            ; 8           ;
 ;                            ;             ;
-; Average used               ; 1.05        ;
+; Average used               ; 1.04        ;
 ; Maximum used               ; 8           ;
 ;                            ;             ;
 ; Usage by Processor         ; % Time Used ;
 ;     Processor 1            ; 100.0%      ;
-;     Processors 2-8         ;   0.7%      ;
+;     Processors 2-8         ;   0.6%      ;
 +----------------------------+-------------+
 
 
 +-------------------------------------------------------------------------------------------+
 ; Power Analyzer Summary                                                                    ;
 +----------------------------------------+--------------------------------------------------+
-; Power Analyzer Status                  ; Successful - Fri Aug  6 18:02:18 2021            ;
+; Power Analyzer Status                  ; Successful - Fri Aug  6 18:13:09 2021            ;
 ; Quartus Prime Version                  ; 20.1.1 Build 720 11/11/2020 SJ Lite Edition      ;
 ; Revision Name                          ; max80                                            ;
 ; Top-level Entity Name                  ; max80                                            ;
@@ -391,7 +391,7 @@ https://fpgasoftware.intel.com/eula.
 Info: *******************************************************************
 Info: Running Quartus Prime Power Analyzer
     Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
-    Info: Processing started: Fri Aug  6 18:02:17 2021
+    Info: Processing started: Fri Aug  6 18:13:07 2021
 Info: Command: quartus_pow --read_settings_files=off --write_settings_files=off max80 -c max80
 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines.  Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
 Info (21077): Low junction temperature is 0 degrees C
@@ -432,9 +432,9 @@ Info (334004): Delay annotation completed successfully
 Info (215049): Average toggle rate for this design is 10.847 millions of transitions / sec
 Info (215031): Total thermal power estimate for the design is 216.99 mW
 Info: Quartus Prime Power Analyzer was successful. 0 errors, 11 warnings
-    Info: Peak virtual memory: 1029 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:18 2021
-    Info: Elapsed time: 00:00:01
+    Info: Peak virtual memory: 1020 megabytes
+    Info: Processing ended: Fri Aug  6 18:13:09 2021
+    Info: Elapsed time: 00:00:02
     Info: Total CPU time (on all processors): 00:00:01
 
 

+ 1 - 1
output_files/max80.pow.summary

@@ -1,4 +1,4 @@
-Power Analyzer Status : Successful - Fri Aug  6 18:02:18 2021
+Power Analyzer Status : Successful - Fri Aug  6 18:13:09 2021
 Quartus Prime Version : 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 Revision Name : max80
 Top-level Entity Name : max80

BIN
output_files/max80.sof


+ 7 - 7
output_files/max80.sta.rpt

@@ -1,5 +1,5 @@
 Timing Analyzer report for max80
-Fri Aug  6 18:02:20 2021
+Fri Aug  6 18:13:10 2021
 Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
 
 
@@ -118,13 +118,13 @@ https://fpgasoftware.intel.com/eula.
 ; Number detected on machine ; 16          ;
 ; Maximum allowed            ; 8           ;
 ;                            ;             ;
-; Average used               ; 1.06        ;
+; Average used               ; 1.05        ;
 ; Maximum used               ; 8           ;
 ;                            ;             ;
 ; Usage by Processor         ; % Time Used ;
 ;     Processor 1            ; 100.0%      ;
-;     Processor 2            ;   1.3%      ;
-;     Processors 3-8         ;   0.8%      ;
+;     Processor 2            ;   1.1%      ;
+;     Processors 3-8         ;   0.7%      ;
 +----------------------------+-------------+
 
 
@@ -133,7 +133,7 @@ https://fpgasoftware.intel.com/eula.
 +---------------+--------+--------------------------+
 ; SDC File Path ; Status ; Read at                  ;
 +---------------+--------+--------------------------+
-; max80.sdc     ; OK     ; Fri Aug  6 18:02:19 2021 ;
+; max80.sdc     ; OK     ; Fri Aug  6 18:13:09 2021 ;
 +---------------+--------+--------------------------+
 
 
@@ -3236,7 +3236,7 @@ No non-DPA dedicated SERDES Receiver circuitry present in device or used in desi
 Info: *******************************************************************
 Info: Running Quartus Prime Timing Analyzer
     Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
-    Info: Processing started: Fri Aug  6 18:02:19 2021
+    Info: Processing started: Fri Aug  6 18:13:09 2021
 Info: Command: quartus_sta max80 -c max80
 Info: qsta_default_script.tcl version: #1
 Warning (18236): Number of processors has not been specified which may cause overloading on shared machines.  Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance.
@@ -3359,7 +3359,7 @@ Info (332102): Design is not fully constrained for setup requirements
 Info (332102): Design is not fully constrained for hold requirements
 Info: Quartus Prime Timing Analyzer was successful. 0 errors, 10 warnings
     Info: Peak virtual memory: 728 megabytes
-    Info: Processing ended: Fri Aug  6 18:02:20 2021
+    Info: Processing ended: Fri Aug  6 18:13:10 2021
     Info: Elapsed time: 00:00:01
     Info: Total CPU time (on all processors): 00:00:01