Commit 4823acc5 authored by Matthieu Cattin's avatar Matthieu Cattin

fmceeprom dir cleanup.

Remove all xml based generator stuff.
parent 1ffe1411
0000000000000000 00000001
0000000000000001 00000001
0000000000000010 00000000
0000000000000011 00000000
0000000000000100 00000000
0000000000000101 00001010
0000000000000110 00000000
0000000000000111 11110000
0000000000001000 00000001
0000000000001001 00001001
0000000000001010 00000001
0000000000001011 00000010
0000000000001100 01010101
0000000000001101 11000100
0000000000001110 01000011
0000000000001111 01000101
0000000000010000 01010010
0000000000010001 01001110
0000000000010010 11001110
0000000000010011 01000001
0000000000010100 01000100
0000000000010101 01000011
0000000000010110 00100000
0000000000010111 00110010
0000000000011000 00110000
0000000000011001 00110000
0000000000011010 01101011
0000000000011011 00100000
0000000000011100 00110001
0000000000011101 00110110
0000000000011110 01100010
0000000000011111 01101001
0000000000100000 01110100
0000000000100001 00000001
0000000000100010 00000000
0000000000100011 11001101
0000000000100100 01000100
0000000000100101 01100101
0000000000100110 01110011
0000000000100111 01101001
0000000000101000 01110010
0000000000101001 01100101
0000000000101010 01100100
0000000000101011 00100000
0000000000101100 01101001
0000000000101101 01101110
0000000000101110 01110000
0000000000101111 01110101
0000000000110000 01110100
0000000000110001 11001110
0000000000110010 01010101
0000000000110011 01110011
0000000000110100 01100101
0000000000110101 01110010
0000000000110110 00100000
0000000000110111 01100100
0000000000111000 01100101
0000000000111001 01110000
0000000000111010 01100101
0000000000111011 01101110
0000000000111100 01100100
0000000000111101 01100001
0000000000111110 01101110
0000000000111111 01110100
0000000001000000 11001101
0000000001000001 01010101
0000000001000010 01110011
0000000001000011 01100101
0000000001000100 01110010
0000000001000101 01100100
0000000001000110 01100101
0000000001000111 01110000
0000000001001000 01100101
0000000001001001 01101110
0000000001001010 01100100
0000000001001011 01100001
0000000001001100 01101110
0000000001001101 01110100
0000000001001110 11000001
0000000001001111 11110111
0000000001010000 00000010
0000000001010001 00000010
0000000001010010 00001101
0000000001010011 11110011
0000000001010100 11111011
0000000001010101 00000001
0000000001010110 00000000
0000000001010111 00000000
0000000001011000 00000000
0000000001011001 00000000
0000000001011010 00000000
0000000001011011 00000000
0000000001011100 00000000
0000000001011101 00000000
0000000001011110 00000000
0000000001011111 00000000
0000000001100000 00000000
0000000001100001 00000000
0000000001100010 00000010
0000000001100011 00000010
0000000001100100 00001101
0000000001100101 11110011
0000000001100110 11111011
0000000001100111 00000001
0000000001101000 00000000
0000000001101001 00000000
0000000001101010 00000000
0000000001101011 00000000
0000000001101100 00000000
0000000001101101 00000000
0000000001101110 00000000
0000000001101111 00000000
0000000001110000 00000000
0000000001110001 00000000
0000000001110010 00000000
0000000001110011 00000000
0000000001110100 00000010
0000000001110101 00000010
0000000001110110 00001101
0000000001110111 11110011
0000000001111000 11111011
0000000001111001 00000011
0000000001111010 00000000
0000000001111011 00000000
0000000001111100 00000000
0000000001111101 00000000
0000000001111110 00000000
0000000001111111 00000000
0000000010000000 00000000
0000000010000001 00000000
0000000010000010 00000000
0000000010000011 00000000
0000000010000100 00000000
0000000010000101 00000000
0000000010000110 00000001
0000000010000111 00000010
0000000010001000 00001101
0000000010001001 11110011
0000000010001010 11111011
0000000010001011 00000001
0000000010001100 00000000
0000000010001101 00000000
0000000010001110 00000000
0000000010001111 00000000
0000000010010000 00000000
0000000010010001 00000000
0000000010010010 00000000
0000000010010011 00000000
0000000010010100 00000000
0000000010010101 00000000
0000000010010110 00000000
0000000010010111 00000000
0000000010011000 00000001
0000000010011001 00000010
0000000010011010 00001101
0000000010011011 11110011
0000000010011100 11111011
0000000010011101 00000010
0000000010011110 00000000
0000000010011111 00000000
0000000010100000 00000000
0000000010100001 00000000
0000000010100010 00000000
0000000010100011 00000000
0000000010100100 00000000
0000000010100101 00000000
0000000010100110 00000000
0000000010100111 00000000
0000000010101000 00000000
0000000010101001 00000000
0000000010101010 00000001
0000000010101011 00000010
0000000010101100 00001101
0000000010101101 11110011
0000000010101110 11111011
0000000010101111 00000001
0000000010110000 00000000
0000000010110001 00000000
0000000010110010 00000000
0000000010110011 00000000
0000000010110100 00000000
0000000010110101 00000000
0000000010110110 00000000
0000000010110111 00000000
0000000010111000 00000000
0000000010111001 00000000
0000000010111010 00000000
0000000010111011 00000000
0000000010111100 11111111
0000000010111101 00000010
0000000010111110 00001000
0000000010111111 11111000
0000000011000000 11111011
0000000011000001 00000000
0000000011000010 00000000
0000000011000011 00000000
0000000011000100 00000000
0000000011000101 00000000
0000000011000110 00000000
0000000011000111 00000000
0000000011001000 00000000
<?xml version="1.0" encoding="UTF-8"?>
<FMC_EPROMDATA memory_size = "2000">
<area number ="1" pos_of_len_field = "2">
<field name= "Board Area Format version" type="binary" content="00000001" description= "Indentifies language used" has_typelen = "no" />
<field name= "Language" type="binary" content= "00000001" description= "Indentifies language used" has_typelen = "no" />
<field name= "Mfg. Date/Time" type="binary" content="00000010 01010101" description="Num of mins from 00:00hrs 1/1/96 - little endian" has_typelen = "no" />
<field name= "Board_manufacturer" type="ascii" content="CERN" description="the manufacturer of the board" has_typelen = "yes" />
<field name= "Board product name" type="ascii" content="ADC 200k 16bit" description="name of the board" has_typelen = "yes" />
<field name= "Board_serial_number" type="binary" content="00000000" description="serial number for board" has_typelen = "yes" />
<field name= "Board_part_number" type="ascii" content="Desired input" description= "Part number for the board" has_typelen = "yes"/>
<field name= "FRU File ID" type="ascii" content="User dependant" description= "User desired - identification of EEPROM info source" has_typelen = "yes"/>
<field name= "Custom Mfg fields" type="ascii" content="Userdependant" description= "Delete if undesired" has_typelen = "yes"/>
</area>
<area number ="5" pos_of_len_field = "0">
<multirecord name= "DC_LOAD" multi_record_num = "1">
<field name= "DC Load number" type="binary" content= "00000001" description= "DC load multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for Vadj" has_typelen = "no" />
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for Vadj" has_typelen = "no" />
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for Vadj" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for vadj" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for Vadj" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for Vadj" has_typelen = "no"/>
</multirecord>
<multirecord name= "DC_LOAD" multi_record_num = "2" >
<field name= "DC load number" type="binary" content="00000001" description= "DC output multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for 3P3V" has_typelen = "no" />
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for 3P3V" has_typelen = "no" />
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for 3P3V" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for 3P3V" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for 3P3V" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for 3P3V" has_typelen = "no" />
</multirecord>
<multirecord name= "DC_LOAD" multi_record_num = "3" >
<field name= "DC load number" type="binary" content= "00000011" description= "DC output multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for 12P0V" has_typelen = "no" />
<field name="min_v" type="signed_short" content = "+0.00" description="Spec'd min voltage for 12P0V" has_typelen = "no" />
<field name="max_v" type="signed_short" content = "+0.00" description="Spec'd max voltage for 12P0V" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for 12P0V" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for 12P0V" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for 12P0V" has_typelen = "no" />
</multirecord>
<multirecord name= "DC_OUTPUT" multi_record_num = "1" >
<field name= "DC Output number" type="binary" content= "00000001" description= "DC output multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for VIO_R_M2C" has_typelen = "no" />
<field name="min_v" type="signed_short" content = "+0.00" description="Spec'd min voltage for VIO_R_M2C" has_typelen = "no" />
<field name="max_v" type="signed_short" content = "+0.00" description="Spec'd max voltage for VIO_R_M2C" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VIO_R_M2C" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VIO_R_M2C" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for VIO_R_M2C" has_typelen = "no" />
</multirecord>
<multirecord name= "DC_OUTPUT" multi_record_num = "2" >
<field name= "DC Output number" type="binary" content= "00000010" description= "DC output multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for VREF_A_M2C" has_typelen = "no" />
<field name="min_v" type="signed_short" content = "+0.00" description="Spec'd min voltage for VREF_A_M2C" has_typelen = "no" />
<field name="max_v" type="signed_short" content = "+0.00" description="Spec'd max voltage for VREF_A_M2C" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VREF_A_M2C" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for VREF_A_M2C" has_typelen = "no" />
</multirecord>
<multirecord name= "DC_OUTPUT" multi_record_num = "3" >
<field name= "DC Output number" type="binary" content= "00000001" description= "DC output multirecord number" has_typelen = "no" />
<field name= "Nominal Voltage" type="signed_short" content= "+0.00" description= "Nominal voltage for VREF_A_M2C" has_typelen = "no" />
<field name="min_v" type="signed_short" content = "+0.00" description="Spec'd min voltage for VREF_A_M2C" has_typelen = "no" />
<field name="max_v" type="signed_short" content = "+0.00" description="Spec'd max voltage for VREF_A_M2C" has_typelen = "no" />
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VREF_A_M2C" has_typelen = "no" />
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen = "no" />
<field name="max_current" type="signed_short" content="+0.00" description= "Spec'd min current load for VREF_A_M2C" has_typelen = "no" />
</multirecord>
<multirecord name= "OEM_record" multi_record_num = "1" >
<byteField name ="OEM Bytefield 1" >
<field name= "Subtype" type="binary" content= "0000" description= "0 for main definition type" has_typelen = "no" />
<field name= "Version" type="binary" content= "0000" description= "0 for current version" has_typelen = "no" />
</byteField>
<byteField name ="OEM Bytefield 2" >
<field name= "Module Size" type="binary" content= "00" description= "Single width = 00, Double = 01" has_typelen = "no" />
<field name= "P1 Connector Size" type="binary" content= "00" description= "LPC connecter = 01 HPC connecter =00" has_typelen = "no" />
<field name= "P2 Connector Size" type="binary" content= "00" description= "Same as above, or Not fitted =11" has_typelen = "no" />
<field name= "Clock Direction" type="binary" content= "0" description= "Mez to carrier = 0,Carrier to Mez =1" has_typelen = "no" />
<field name= "Reserved" type="binary" content= "0" description= "Reserved, by FMC standard" has_typelen = "no" />
</byteField>
<field name="P1 Bank A number of signals" type="binary" content="00000000" description= "Binary num of size byte" has_typelen = "no" />
<field name="P1 Bank B number of signals" type="binary" content="00000000" description= "Binary num of size byte" has_typelen = "no" />
<field name="P2 Bank A number of signals" type="binary" content="00000000" description= "Binary num of size byte" has_typelen = "no" />
<field name="P2 Bank B number of signals" type="binary" content="00000000" description= "Binary num of size byte" has_typelen = "no" />
<byteField name ="OEM Bytefield 3" >
<field name="P1 GBT Number Transsceivers" type="binary" content="0000" description= "Binary num of size 4 bits" has_typelen = "no" />
<field name="P2 GBT Number Transsceivers" type="binary" content="0000" description= "Binary num of size 4 bits" has_typelen = "no" />
</byteField>
<field name="Max clock for TCK" type="binary" content="00000000" description= "Binary num of size byte" has_typelen = "no" />
</multirecord>
</area>
</FMC_EPROMDATA>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<FMC_EPROMDATA memory_size="2000">
<area number="1" pos_of_len_field="2">
<field name="Board Area Format version" type="binary" content="00000001" description="Indentifies language used" has_typelen="no"/>
<field name="Language" type="binary" content="00000001" description="Indentifies language used" has_typelen="no"/>
<field name="Mfg. Date/Time" type="binary" content="00000010 01010101" description="Num of mins from 00:00hrs 1/1/96 - little endian" has_typelen="no"/>
<field name="Board_manufacturer" type="ascii" content="CERN" description="the manufacturer of the board" has_typelen="yes"/>
<field name="Board product name" type="ascii" content="ADC 200k 16bit" description="name of the board" has_typelen="yes"/>
<field name="Board_serial_number" type="binary" content="123456" description="serial number for board" has_typelen="yes"/>
<field name="Board_part_number" type="ascii" content="Desired input" description="Part number for the board" has_typelen="yes"/>
<field name="FRU File ID" type="ascii" content="User dependant" description="User desired - identification of EEPROM info source" has_typelen="yes"/>
<field name="Custom Mfg fields" type="ascii" content="Userdependant" description="Delete if undesired" has_typelen="yes"/>
</area>
<area number="5" pos_of_len_field="0">
<multirecord name="DC_LOAD" multi_record_num="1">
<field name="DC Load number" type="binary" content="00000001" description="DC load multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for Vadj" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for Vadj" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for Vadj" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for vadj" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for Vadj" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for Vadj" has_typelen="no"/>
</multirecord>
<multirecord name="DC_LOAD" multi_record_num="2">
<field name="DC load number" type="binary" content="00000001" description="DC output multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for 3P3V" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for 3P3V" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for 3P3V" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for 3P3V" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for 3P3V" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for 3P3V" has_typelen="no"/>
</multirecord>
<multirecord name="DC_LOAD" multi_record_num="3">
<field name="DC load number" type="binary" content="00000011" description="DC output multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for 12P0V" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for 12P0V" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for 12P0V" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for 12P0V" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for 12P0V" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for 12P0V" has_typelen="no"/>
</multirecord>
<multirecord name="DC_OUTPUT" multi_record_num="1">
<field name="DC Output number" type="binary" content="00000001" description="DC output multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for VIO_R_M2C" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for VIO_R_M2C" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for VIO_R_M2C" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VIO_R_M2C" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VIO_R_M2C" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for VIO_R_M2C" has_typelen="no"/>
</multirecord>
<multirecord name="DC_OUTPUT" multi_record_num="2">
<field name="DC Output number" type="binary" content="00000010" description="DC output multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for VREF_A_M2C" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for VREF_A_M2C" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for VREF_A_M2C" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VREF_A_M2C" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen="no"/>
</multirecord>
<multirecord name="DC_OUTPUT" multi_record_num="3">
<field name="DC Output number" type="binary" content="00000001" description="DC output multirecord number" has_typelen="no"/>
<field name="Nominal Voltage" type="signed_short" content="+0.00" description="Nominal voltage for VREF_A_M2C" has_typelen="no"/>
<field name="min_v" type="signed_short" content="+0.00" description="Spec'd min voltage for VREF_A_M2C" has_typelen="no"/>
<field name="max_v" type="signed_short" content="+0.00" description="Spec'd max voltage for VREF_A_M2C" has_typelen="no"/>
<field name="ripple_pk_pk" type="signed_short" content="+0.00" description="Spec'd Ripple and noise pk - pk for VREF_A_M2C" has_typelen="no"/>
<field name="min_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen="no"/>
<field name="max_current" type="signed_short" content="+0.00" description="Spec'd min current load for VREF_A_M2C" has_typelen="no"/>
</multirecord>
<multirecord name="OEM_record" multi_record_num="1">
<byteField name="OEM Bytefield 1">
<field name="Subtype" type="binary" content="0000" description="0 for main definition type" has_typelen="no"/>
<field name="Version" type="binary" content="0000" description="0 for current version" has_typelen="no"/>
</byteField>
<byteField name="OEM Bytefield 2">
<field name="Module Size" type="binary" content="00" description="Single width = 00, Double = 01" has_typelen="no"/>
<field name="P1 Connector Size" type="binary" content="00" description="LPC connecter = 01 HPC connecter =00" has_typelen="no"/>
<field name="P2 Connector Size" type="binary" content="00" description="Same as above, or Not fitted =11" has_typelen="no"/>
<field name="Clock Direction" type="binary" content="0" description="Mez to carrier = 0,Carrier to Mez =1" has_typelen="no"/>
<field name="Reserved" type="binary" content="0" description="Reserved, by FMC standard" has_typelen="no"/>
</byteField>
<field name="P1 Bank A number of signals" type="binary" content="00000000" description="Binary num of size byte" has_typelen="no"/>
<field name="P1 Bank B number of signals" type="binary" content="00000000" description="Binary num of size byte" has_typelen="no"/>
<field name="P2 Bank A number of signals" type="binary" content="00000000" description="Binary num of size byte" has_typelen="no"/>
<field name="P2 Bank B number of signals" type="binary" content="00000000" description="Binary num of size byte" has_typelen="no"/>
<byteField name="OEM Bytefield 3">
<field name="P1 GBT Number Transsceivers" type="binary" content="0000" description="Binary num of size 4 bits" has_typelen="no"/>
<field name="P2 GBT Number Transsceivers" type="binary" content="0000" description="Binary num of size 4 bits" has_typelen="no"/>
</byteField>
<field name="Max clock for TCK" type="binary" content="00000000" description="Binary num of size byte" has_typelen="no"/>
</multirecord>
</area>
</FMC_EPROMDATA>
#! /usr/bin/env python
# coding: utf8
# Copyright CERN, 2011
# Author: Matthieu Cattin <matthieu.cattin@cern.ch>
# Licence: GPL v2 or later.
# Website: http://www.ohwr.org
import sys
import time
import os
import libxml2
def main (default_directory = '.'):
filename = "test.xml"
doc = libxml2.parseFile(filename)
root = doc.getRootElement()
area = root.children
while area is not None:
if area.type == "element":
areaContent = area.children
while areaContent is not None:
if areaContent.type == "element":
if areaContent.prop('name') == "Board_serial_number":
areaContent.setProp('content', '123456')
print "youhou"
areaContent=areaContent.next
area=area.next
f = open(filename, 'w')
doc.saveTo(f)
f.close
if __name__ == '__main__' :
main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment