- import xml.etree.ElementTree as ET 
- from xml.dom import minidom 
- import csv 
- import io 
-   
- def prettify_xml(elem): 
-     """Return a pretty-printed XML string for the Element.""" 
-     rough_string = ET.tostring(elem, 'utf-8') 
-     parsed = minidom.parseString(rough_string) 
-     return parsed.toprettyxml(indent="    ") 
-   
- def create_insert_element(record): 
-     insert_elem = ET.Element("insert", tableName="EXTERNAL_API_DEFINITION", schemaName="${current_schema}") 
-   
-     # Define each column with values from the record 
-     columns = [ 
-         ("BILLER_CODE", record['biller_code']), 
-         ("BILLER_SECRETS", record['biller_secrets']), 
-         ("INFO_CHECK_REQUEST_DEFINITION", record['info_check_request_definition']), 
-         ("PAYMENT_REQUEST_DEFINITION", record['payment_request_definition']), 
-         ("IS_ACTIVE", "${default_boolean_true}"), 
-         ("INFO_CHECK_ENDPOINT", record['info_check_api']), 
-         ("PROCESS_PAYMENT_ENDPOINT", record['process_payment_endpoint']), 
-         ("PAYMENT_STATUS_ENDPOINT", record['payment_status_definition']), 
-         ("REQUEST_HEADERS_DEFINITION", record['request_headers_definition']) 
-     ] 
-   
-     # Add each column to the insert element 
-     for name, value in columns: 
-         ET.SubElement(insert_elem, "column", name=name, value=value) 
-   
-     return insert_elem 
-   
- def create_xml_migration_script(records): 
-     root = ET.Element("changeSet", id="insert_external_api_definitions", author="user") 
-   
-     # Add each record's insert element 
-     for record in records: 
-         insert_elem = create_insert_element(record) 
-         root.append(insert_elem) 
-   
-     # Pretty print the XML 
-     return prettify_xml(root) 
-   
- def parse_input(input_text): 
-     # Parse the CSV input 
-     reader = csv.reader(io.StringIO(input_text)) 
-     records = [] 
-     for row in reader: 
-         if len(row) < 8: 
-             continue  # Skip rows that don't have all required fields 
-   
-         # Map the row to dictionary keys 
-         record = { 
-             "biller_code": row[0].strip(), 
-             "biller_secrets": row[1].strip(), 
-             "info_check_request_definition": row[2].strip(), 
-             "payment_request_definition": row[3].strip(), 
-             "info_check_api": row[4].strip(), 
-             "process_payment_endpoint": row[5].strip(), 
-             "request_headers_definition": row[6].strip(), 
-             "payment_status_definition": row[7].strip() 
-         } 
-         records.append(record) 
-   
-     return records 
-   
- # Sample input 
- input_text = ''' 
- SSL_DPDC_POSTPAID,"{ 
-   ""common"": { 
-     ""STK-CODE"": ""ABDIRECT"", 
-     ""AUTH-KEY"": ""EWEECFBy4WywpHCXWuYEK.WlGBtbUuyi"", 
-     ""utility_auth_key"": ""16922468323555"", 
-     ""utility_secret_key"": ""c5iMNoUatdYlSqEW"", 
-     ""mode"": ""1"", 
-     ""pay_channel"": ""4"" 
-   } 
- }","{ 
-         ""transaction_id"": ""transaction_id"", 
-         ""account_no"": ""account_no"", 
-         ""bill_month"": ""bill_months"", 
-         ""bill_year"": ""bill_years"", 
-         ""utility_auth_key"": ""utility_auth_key"", 
-         ""utility_secret_key"": ""utility_secret_key"" 
-     }","{ 
-         ""bnk_trx_id"": ""bnk_trx_id"", 
-         ""pay_channel"": ""pay_channel"", 
-         ""transaction_id"": ""transaction_id"", 
-         ""utility_auth_key"": ""utility_auth_key"", 
-         ""utility_secret_key"": ""utility_secret_key"" 
-     }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""bnk_trx_id"": ""bnk_trx_id"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_WILLS_LITTLE_FLOWER,"{ 
-   ""STK-CODE"": ""ABDIRECT"", 
-   ""AUTH-KEY"": ""EWEECFBy4WywpHCXWuYEK.WlGBtbUuyi"", 
-   ""utility_auth_key"": ""16888826005300"", 
-   ""utility_secret_key"": ""YlnQ98fCIgEkg2vU"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"", 
-     ""reference_no"": ""reference_no"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_NESCO_POSTPAID,"{ 
-     ""STK-CODE"": ""ABDIRECT"", 
-     ""AUTH-KEY"": ""EWEECFBy4WywpHCXWuYEK.WlGBtbUuyi"", 
-     ""utility_auth_key"": ""16976995921527"", 
-     ""utility_secret_key"": ""Lt/GrXALyd1pj8AY"", 
-     ""mode"": ""1"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""account_no"": ""account_no"", 
-     ""bill_month"": ""bill_months"", 
-     ""bill_year"": ""bill_years"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""is_stamp_collected"": ""is_stamp_collected"", 
-     ""core_transaction_id"": ""core_transaction_id"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_WASA_GENERAL_BILL,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""WA15174603642090"", 
-         ""utility_secret_key"": ""GWFYAiy8g5T92UIg"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""bill_type"": ""GENERAL-BILL"" 
-     }, 
-     ""infoCheck"": {}, 
-     ""payBill"": { 
-         ""payment_type"": ""3"", 
-         ""channel_id"": ""4"" 
-     } 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""billno"": ""billno"", 
-     ""bill_type"": ""bill_type"", 
-     ""account_no"": ""account_no"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""mobile_no"": ""mobile_no"", 
-     ""branch_code"": ""branch_code"", 
-     ""payment_type"": ""payment_type"", 
-     ""channel_id"": ""channel_id"", 
-     ""remarks"": ""remarks"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_NESCO_PREPAID,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""NE16151186585379"", 
-         ""utility_secret_key"": ""PsilgetRO/wYIkPg"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""bill_type"": ""PREPAID"" 
-     }, 
-     ""infoCheck"": {}, 
-     ""payBill"": {} 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"", 
-     ""bill_type"": ""bill_type"" 
- }","{ 
-     ""utility_bill_type"": ""utility_bill_type"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_DPDC_NEW_POSTPAID,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""DP16030264222969"", 
-         ""utility_secret_key"": ""wQXJaE6c5ydoxG3H"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""DP16030264222969"", 
-         ""utility_secret_key"": ""wQXJaE6c5ydoxG3H"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""account_no"": ""account_no"", 
-     ""pay_channel"": ""pay_channel"", 
-     ""bill_months"": ""bill_months"", 
-     ""bill_years"": ""bill_years"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""pay_channel"": ""pay_channel"", 
-     ""bnk_trx_id"": ""bnk_trx_id"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_DESCO_POSTPAID,"{ 
-   ""STK-CODE"": ""ABDIRECT"", 
-   ""utility_auth_key"": ""16643633415347"", 
-   ""utility_secret_key"": ""FrFHsRG3jws7kmMV"", 
-   ""AUTH-KEY"": ""EWEECFBy4WywpHCXWuYEK.WlGBtbUuyi"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""billno"": ""bllNo"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,/api/v1/bill-info,/api/v1/bill-payment,/api/v1/bill-status,"{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }","{ 
-     ""bnk_trx_id"": ""bnk_trx_id"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }" 
- SSL_BGDCL_DEMAND_NOTE,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""BG15650660381148"", 
-         ""utility_secret_key"": ""mfOxzaTBWl0pM8wC"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""bill_type"": ""DEMAND-NOTE"" 
-     }, 
-     ""infoCheck"": {}, 
-     ""payBill"": {} 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""custCode"": ""custCode"", 
-     ""mobileNo"": ""mobileNo"", 
-     ""demandNoteCode"": ""demandNoteCode"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""custCode"": ""custCode"", 
-     ""mobileNo"": ""mobileNo"", 
-     ""bankName"": ""bankName"", 
-     ""branchName"": ""branchName"", 
-     ""totalAmount"": ""totalAmount"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- BGDCL_METERED,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""BG15650909253030"", 
-         ""utility_secret_key"": ""xdtDeg65HgUjA6SZ"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""BG15650909253030"", 
-         ""utility_secret_key"": ""xdtDeg65HgUjA6SZ"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""code"": ""custCode"", 
-     ""mobileNo"": ""mobileNo"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""mobileNo"": ""mobileNo"", 
-     ""bankName"": ""bankName"", 
-     ""branchName"": ""branchName"", 
-     ""custCode"": ""custCode"", 
-     ""billAmount"": ""billAmount"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- BGDCL_NON_METERED,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""BG15650661022290"", 
-         ""utility_secret_key"": ""DVBODGYa3fJuKZm5"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""BG15650661022290"", 
-         ""utility_secret_key"": ""DVBODGYa3fJuKZm5"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""code"": ""code"", 
-     ""mobileNo"": ""mobileNo"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""mobileNo"": ""mobileNo"", 
-     ""bankName"": ""bankName"", 
-     ""branchName"": ""branchName"", 
-     ""custCode"": ""custCode"", 
-     ""billAmount"": ""billAmount"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- } 
- ",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_TITAS_DEMAND_NOTE,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""TI15174603537876"", 
-         ""utility_secret_key"": ""IV5RwHzGJDBpkhk1"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""TI15174603537876"", 
-         ""utility_secret_key"": ""IV5RwHzGJDBpkhk1"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""invoiceNo"": ""invoiceNo"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""paymentId"": ""paymentId"", 
-     ""bill_type"": ""bill_type"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_TITAS_METERED,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""TI15174603077847"", 
-         ""utility_secret_key"": ""Nn2nCVRuTpY6xso5"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""TI15174603077847"", 
-         ""utility_secret_key"": ""Nn2nCVRuTpY6xso5"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""invoiceNo"": ""invoiceNo"", 
-     ""customerCode"": ""customerCode"", 
-     ""sourceTaxAmount"": ""sourceTaxAmount"", 
-     ""branchRoutingNo"": ""branchRoutingNo"", 
-     ""operator"": ""operator"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""chalanNo"": ""chalanNo"", 
-     ""chalanDate"": ""chalanDate"", 
-     ""chalanBank"": ""chalanBank"", 
-     ""chalanBranch"": ""chalanBranch"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""paymentId"": ""paymentId"", 
-     ""bill_type"": ""bill_type"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_TITAS_NON_METERED,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""TI15174603401736"", 
-         ""utility_secret_key"": ""PCQue5wZiBhflvYk"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"" 
-     }, 
-     ""infoCheck"": { 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""utility_auth_key"": ""TI15174603401736"", 
-         ""utility_secret_key"": ""PCQue5wZiBhflvYk"" 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""customer"": ""customer"", 
-     ""amount"": ""amount"", 
-     ""surcharge"": ""surcharge"", 
-     ""particulars"": ""particulars"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""paymentId"": ""paymentId"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_BREB_POSTPAID,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""BR16713629651374"", 
-         ""utility_secret_key"": ""BR16713629651374"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""pay_channel"": ""4"" 
-     }, 
-     ""infoCheck"": { 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""account_no"": ""account_no"", 
-     ""type_of_bill"": ""type_of_bill"", 
-     ""bill_type"": ""bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"", 
-     ""branchRoutingNo"": ""branchRoutingNo"" 
- } 
- ","{ 
-     ""utility_bill_type"": ""utility_bill_type"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
- SSL_BTCL_NEW_REGULAR_BILL,"{ 
-     ""common"": { 
-         ""STK-CODE"": ""DEMO"", 
-         ""utility_auth_key"": ""BT16001654136458"", 
-         ""utility_secret_key"": ""11eoYOi3nemSPglu"", 
-         ""AUTH-KEY"": ""BD6pFSIfSOLEIgKyru67MeBhICkRiFla"", 
-         ""pay_channel"": ""4"" 
-     }, 
-     ""infoCheck"": { 
-     }, 
-     ""payBill"": { 
-         ""mode"": ""1"" 
-     } 
- }","{ 
-     ""bill_no"": ""bill_no"", 
-     ""phone_number"": ""phone_number"", 
-     ""exchange_code"": ""exchange_code"", 
-     ""branch_code"": ""branch_code"", 
-     ""bill_type"": ""bill_type"", 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }","{ 
-     ""transaction_id"": ""transaction_id"", 
-     ""utility_bill_type"": ""utility_bill_type"", 
-     ""utility_auth_key"": ""utility_auth_key"", 
-     ""utility_secret_key"": ""utility_secret_key"" 
- }",true,"","","","{ 
-     ""AUTH-KEY"": ""AUTH-KEY"", 
-     ""STK-CODE"": ""STK-CODE"" 
- }", 
-   
- ''' 
-   
- # Parse the input and create records 
- records = parse_input(input_text) 
-   
- # Generate XML migration script 
- xml_script = create_xml_migration_script(records) 
-   
- # Output the generated XML script 
- print(xml_script) 
-   
				aW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBFVApmcm9tIHhtbC5kb20gaW1wb3J0IG1pbmlkb20KaW1wb3J0IGNzdgppbXBvcnQgaW8KCmRlZiBwcmV0dGlmeV94bWwoZWxlbSk6CiAgICAiIiJSZXR1cm4gYSBwcmV0dHktcHJpbnRlZCBYTUwgc3RyaW5nIGZvciB0aGUgRWxlbWVudC4iIiIKICAgIHJvdWdoX3N0cmluZyA9IEVULnRvc3RyaW5nKGVsZW0sICd1dGYtOCcpCiAgICBwYXJzZWQgPSBtaW5pZG9tLnBhcnNlU3RyaW5nKHJvdWdoX3N0cmluZykKICAgIHJldHVybiBwYXJzZWQudG9wcmV0dHl4bWwoaW5kZW50PSIgICAgIikKCmRlZiBjcmVhdGVfaW5zZXJ0X2VsZW1lbnQocmVjb3JkKToKICAgIGluc2VydF9lbGVtID0gRVQuRWxlbWVudCgiaW5zZXJ0IiwgdGFibGVOYW1lPSJFWFRFUk5BTF9BUElfREVGSU5JVElPTiIsIHNjaGVtYU5hbWU9IiR7Y3VycmVudF9zY2hlbWF9IikKICAgIAogICAgIyBEZWZpbmUgZWFjaCBjb2x1bW4gd2l0aCB2YWx1ZXMgZnJvbSB0aGUgcmVjb3JkCiAgICBjb2x1bW5zID0gWwogICAgICAgICgiQklMTEVSX0NPREUiLCByZWNvcmRbJ2JpbGxlcl9jb2RlJ10pLAogICAgICAgICgiQklMTEVSX1NFQ1JFVFMiLCByZWNvcmRbJ2JpbGxlcl9zZWNyZXRzJ10pLAogICAgICAgICgiSU5GT19DSEVDS19SRVFVRVNUX0RFRklOSVRJT04iLCByZWNvcmRbJ2luZm9fY2hlY2tfcmVxdWVzdF9kZWZpbml0aW9uJ10pLAogICAgICAgICgiUEFZTUVOVF9SRVFVRVNUX0RFRklOSVRJT04iLCByZWNvcmRbJ3BheW1lbnRfcmVxdWVzdF9kZWZpbml0aW9uJ10pLAogICAgICAgICgiSVNfQUNUSVZFIiwgIiR7ZGVmYXVsdF9ib29sZWFuX3RydWV9IiksCiAgICAgICAgKCJJTkZPX0NIRUNLX0VORFBPSU5UIiwgcmVjb3JkWydpbmZvX2NoZWNrX2FwaSddKSwKICAgICAgICAoIlBST0NFU1NfUEFZTUVOVF9FTkRQT0lOVCIsIHJlY29yZFsncHJvY2Vzc19wYXltZW50X2VuZHBvaW50J10pLAogICAgICAgICgiUEFZTUVOVF9TVEFUVVNfRU5EUE9JTlQiLCByZWNvcmRbJ3BheW1lbnRfc3RhdHVzX2RlZmluaXRpb24nXSksCiAgICAgICAgKCJSRVFVRVNUX0hFQURFUlNfREVGSU5JVElPTiIsIHJlY29yZFsncmVxdWVzdF9oZWFkZXJzX2RlZmluaXRpb24nXSkKICAgIF0KICAgIAogICAgIyBBZGQgZWFjaCBjb2x1bW4gdG8gdGhlIGluc2VydCBlbGVtZW50CiAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29sdW1uczoKICAgICAgICBFVC5TdWJFbGVtZW50KGluc2VydF9lbGVtLCAiY29sdW1uIiwgbmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSkKICAgIAogICAgcmV0dXJuIGluc2VydF9lbGVtCgpkZWYgY3JlYXRlX3htbF9taWdyYXRpb25fc2NyaXB0KHJlY29yZHMpOgogICAgcm9vdCA9IEVULkVsZW1lbnQoImNoYW5nZVNldCIsIGlkPSJpbnNlcnRfZXh0ZXJuYWxfYXBpX2RlZmluaXRpb25zIiwgYXV0aG9yPSJ1c2VyIikKICAgIAogICAgIyBBZGQgZWFjaCByZWNvcmQncyBpbnNlcnQgZWxlbWVudAogICAgZm9yIHJlY29yZCBpbiByZWNvcmRzOgogICAgICAgIGluc2VydF9lbGVtID0gY3JlYXRlX2luc2VydF9lbGVtZW50KHJlY29yZCkKICAgICAgICByb290LmFwcGVuZChpbnNlcnRfZWxlbSkKICAgIAogICAgIyBQcmV0dHkgcHJpbnQgdGhlIFhNTAogICAgcmV0dXJuIHByZXR0aWZ5X3htbChyb290KQoKZGVmIHBhcnNlX2lucHV0KGlucHV0X3RleHQpOgogICAgIyBQYXJzZSB0aGUgQ1NWIGlucHV0CiAgICByZWFkZXIgPSBjc3YucmVhZGVyKGlvLlN0cmluZ0lPKGlucHV0X3RleHQpKQogICAgcmVjb3JkcyA9IFtdCiAgICBmb3Igcm93IGluIHJlYWRlcjoKICAgICAgICBpZiBsZW4ocm93KSA8IDg6CiAgICAgICAgICAgIGNvbnRpbnVlICAjIFNraXAgcm93cyB0aGF0IGRvbid0IGhhdmUgYWxsIHJlcXVpcmVkIGZpZWxkcwoKICAgICAgICAjIE1hcCB0aGUgcm93IHRvIGRpY3Rpb25hcnkga2V5cwogICAgICAgIHJlY29yZCA9IHsKICAgICAgICAgICAgImJpbGxlcl9jb2RlIjogcm93WzBdLnN0cmlwKCksCiAgICAgICAgICAgICJiaWxsZXJfc2VjcmV0cyI6IHJvd1sxXS5zdHJpcCgpLAogICAgICAgICAgICAiaW5mb19jaGVja19yZXF1ZXN0X2RlZmluaXRpb24iOiByb3dbMl0uc3RyaXAoKSwKICAgICAgICAgICAgInBheW1lbnRfcmVxdWVzdF9kZWZpbml0aW9uIjogcm93WzNdLnN0cmlwKCksCiAgICAgICAgICAgICJpbmZvX2NoZWNrX2FwaSI6IHJvd1s0XS5zdHJpcCgpLAogICAgICAgICAgICAicHJvY2Vzc19wYXltZW50X2VuZHBvaW50Ijogcm93WzVdLnN0cmlwKCksCiAgICAgICAgICAgICJyZXF1ZXN0X2hlYWRlcnNfZGVmaW5pdGlvbiI6IHJvd1s2XS5zdHJpcCgpLAogICAgICAgICAgICAicGF5bWVudF9zdGF0dXNfZGVmaW5pdGlvbiI6IHJvd1s3XS5zdHJpcCgpCiAgICAgICAgfQogICAgICAgIHJlY29yZHMuYXBwZW5kKHJlY29yZCkKICAgIAogICAgcmV0dXJuIHJlY29yZHMKCiMgU2FtcGxlIGlucHV0CmlucHV0X3RleHQgPSAnJycKU1NMX0RQRENfUE9TVFBBSUQsInsKICAiImNvbW1vbiIiOiB7CiAgICAiIlNUSy1DT0RFIiI6ICIiQUJESVJFQ1QiIiwKICAgICIiQVVUSC1LRVkiIjogIiJFV0VFQ0ZCeTRXeXdwSENYV3VZRUsuV2xHQnRiVXV5aSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiMTY5MjI0NjgzMjM1NTUiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiYzVpTU5vVWF0ZFlsU3FFVyIiLAogICAgIiJtb2RlIiI6ICIiMSIiLAogICAgIiJwYXlfY2hhbm5lbCIiOiAiIjQiIgogIH0KfSIsInsKICAgICAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICAgICAiImFjY291bnRfbm8iIjogIiJhY2NvdW50X25vIiIsCiAgICAgICAgIiJiaWxsX21vbnRoIiI6ICIiYmlsbF9tb250aHMiIiwKICAgICAgICAiImJpbGxfeWVhciIiOiAiImJpbGxfeWVhcnMiIiwKICAgICAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAgICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgogICAgfSIsInsKICAgICAgICAiImJua190cnhfaWQiIjogIiJibmtfdHJ4X2lkIiIsCiAgICAgICAgIiJwYXlfY2hhbm5lbCIiOiAiInBheV9jaGFubmVsIiIsCiAgICAgICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKICAgIH0iLHRydWUsL2FwaS92MS9iaWxsLWluZm8sL2FwaS92MS9iaWxsLXBheW1lbnQsL2FwaS92MS9iaWxsLXN0YXR1cywiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwiewogICAgIiJibmtfdHJ4X2lkIiI6ICIiYm5rX3RyeF9pZCIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iClNTTF9XSUxMU19MSVRUTEVfRkxPV0VSLCJ7CiAgIiJTVEstQ09ERSIiOiAiIkFCRElSRUNUIiIsCiAgIiJBVVRILUtFWSIiOiAiIkVXRUVDRkJ5NFd5d3BIQ1hXdVlFSy5XbEdCdGJVdXlpIiIsCiAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiMTY4ODg4MjYwMDUzMDAiIiwKICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIllsblE5OGZDSWdFa2cydlUiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiLAogICAgIiJyZWZlcmVuY2Vfbm8iIjogIiJyZWZlcmVuY2Vfbm8iIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsL2FwaS92MS9iaWxsLWluZm8sL2FwaS92MS9iaWxsLXBheW1lbnQsL2FwaS92MS9iaWxsLXN0YXR1cywiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iClNTTF9ORVNDT19QT1NUUEFJRCwiewogICAgIiJTVEstQ09ERSIiOiAiIkFCRElSRUNUIiIsCiAgICAiIkFVVEgtS0VZIiI6ICIiRVdFRUNGQnk0V3l3cEhDWFd1WUVLLldsR0J0YlV1eWkiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIjE2OTc2OTk1OTIxNTI3IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIkx0L0dyWEFMeWQxcGo4QVkiIiwKICAgICIibW9kZSIiOiAiIjEiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImFjY291bnRfbm8iIjogIiJhY2NvdW50X25vIiIsCiAgICAiImJpbGxfbW9udGgiIjogIiJiaWxsX21vbnRocyIiLAogICAgIiJiaWxsX3llYXIiIjogIiJiaWxsX3llYXJzIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLCJ7CiAgICAiImlzX3N0YW1wX2NvbGxlY3RlZCIiOiAiImlzX3N0YW1wX2NvbGxlY3RlZCIiLAogICAgIiJjb3JlX3RyYW5zYWN0aW9uX2lkIiI6ICIiY29yZV90cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsL2FwaS92MS9iaWxsLWluZm8sL2FwaS92MS9iaWxsLXBheW1lbnQsL2FwaS92MS9iaWxsLXN0YXR1cywiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iClNTTF9XQVNBX0dFTkVSQUxfQklMTCwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiV0ExNTE3NDYwMzY0MjA5MCIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiR1dGWUFpeThnNVQ5MlVJZyIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIiYmlsbF90eXBlIiI6ICIiR0VORVJBTC1CSUxMIiIKICAgIH0sCiAgICAiImluZm9DaGVjayIiOiB7fSwKICAgICIicGF5QmlsbCIiOiB7CiAgICAgICAgIiJwYXltZW50X3R5cGUiIjogIiIzIiIsCiAgICAgICAgIiJjaGFubmVsX2lkIiI6ICIiNCIiCiAgICB9Cn0iLCJ7CiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIiYmlsbG5vIiI6ICIiYmlsbG5vIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJhY2NvdW50X25vIiI6ICIiYWNjb3VudF9ubyIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IiwiewogICAgIiJtb2JpbGVfbm8iIjogIiJtb2JpbGVfbm8iIiwKICAgICIiYnJhbmNoX2NvZGUiIjogIiJicmFuY2hfY29kZSIiLAogICAgIiJwYXltZW50X3R5cGUiIjogIiJwYXltZW50X3R5cGUiIiwKICAgICIiY2hhbm5lbF9pZCIiOiAiImNoYW5uZWxfaWQiIiwKICAgICIicmVtYXJrcyIiOiAiInJlbWFya3MiIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9Iix0cnVlLC9hcGkvdjEvYmlsbC1pbmZvLC9hcGkvdjEvYmlsbC1wYXltZW50LC9hcGkvdjEvYmlsbC1zdGF0dXMsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsInsKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IgpTU0xfTkVTQ09fUFJFUEFJRCwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiTkUxNjE1MTE4NjU4NTM3OSIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiUHNpbGdldFJPL3dZSWtQZyIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIiYmlsbF90eXBlIiI6ICIiUFJFUEFJRCIiCiAgICB9LAogICAgIiJpbmZvQ2hlY2siIjoge30sCiAgICAiInBheUJpbGwiIjoge30KfSIsInsKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIKfSIsInsKICAgICIidXRpbGl0eV9iaWxsX3R5cGUiIjogIiJ1dGlsaXR5X2JpbGxfdHlwZSIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsL2FwaS92MS9iaWxsLWluZm8sL2FwaS92MS9iaWxsLXBheW1lbnQsL2FwaS92MS9iaWxsLXN0YXR1cywiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iClNTTF9EUERDX05FV19QT1NUUEFJRCwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiRFAxNjAzMDI2NDIyMjk2OSIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIid1FYSmFFNmM1eWRveEczSCIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiCiAgICB9LAogICAgIiJpbmZvQ2hlY2siIjogewogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIkRQMTYwMzAyNjQyMjI5NjkiIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIndRWEphRTZjNXlkb3hHM0giIgogICAgfSwKICAgICIicGF5QmlsbCIiOiB7CiAgICAgICAgIiJtb2RlIiI6ICIiMSIiCiAgICB9Cn0iLCJ7CiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIiYWNjb3VudF9ubyIiOiAiImFjY291bnRfbm8iIiwKICAgICIicGF5X2NoYW5uZWwiIjogIiJwYXlfY2hhbm5lbCIiLAogICAgIiJiaWxsX21vbnRocyIiOiAiImJpbGxfbW9udGhzIiIsCiAgICAiImJpbGxfeWVhcnMiIjogIiJiaWxsX3llYXJzIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLCJ7CiAgICAiInBheV9jaGFubmVsIiI6ICIicGF5X2NoYW5uZWwiIiwKICAgICIiYm5rX3RyeF9pZCIiOiAiImJua190cnhfaWQiIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9Iix0cnVlLCIiLCIiLCIiLCJ7CiAgICAiIkFVVEgtS0VZIiI6ICIiQVVUSC1LRVkiIiwKICAgICIiU1RLLUNPREUiIjogIiJTVEstQ09ERSIiCn0iLApTU0xfREVTQ09fUE9TVFBBSUQsInsKICAiIlNUSy1DT0RFIiI6ICIiQUJESVJFQ1QiIiwKICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiIxNjY0MzYzMzQxNTM0NyIiLAogICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiRnJGSHNSRzNqd3M3a21NViIiLAogICIiQVVUSC1LRVkiIjogIiJFV0VFQ0ZCeTRXeXdwSENYV3VZRUsuV2xHQnRiVXV5aSIiCn0iLCJ7CiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIiYmlsbG5vIiI6ICIiYmxsTm8iIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsInsKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9Iix0cnVlLC9hcGkvdjEvYmlsbC1pbmZvLC9hcGkvdjEvYmlsbC1wYXltZW50LC9hcGkvdjEvYmlsbC1zdGF0dXMsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsInsKICAgICIiYm5rX3RyeF9pZCIiOiAiImJua190cnhfaWQiIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IgpTU0xfQkdEQ0xfREVNQU5EX05PVEUsInsKICAgICIiY29tbW9uIiI6IHsKICAgICAgICAiIlNUSy1DT0RFIiI6ICIiREVNTyIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIkJHMTU2NTA2NjAzODExNDgiIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIm1mT3h6YVRCV2wwcE04d0MiIiwKICAgICAgICAiIkFVVEgtS0VZIiI6ICIiQkQ2cEZTSWZTT0xFSWdLeXJ1NjdNZUJoSUNrUmlGbGEiIiwKICAgICAgICAiImJpbGxfdHlwZSIiOiAiIkRFTUFORC1OT1RFIiIKICAgIH0sCiAgICAiImluZm9DaGVjayIiOiB7fSwKICAgICIicGF5QmlsbCIiOiB7fQp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImN1c3RDb2RlIiI6ICIiY3VzdENvZGUiIiwKICAgICIibW9iaWxlTm8iIjogIiJtb2JpbGVObyIiLAogICAgIiJkZW1hbmROb3RlQ29kZSIiOiAiImRlbWFuZE5vdGVDb2RlIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImN1c3RDb2RlIiI6ICIiY3VzdENvZGUiIiwKICAgICIibW9iaWxlTm8iIjogIiJtb2JpbGVObyIiLAogICAgIiJiYW5rTmFtZSIiOiAiImJhbmtOYW1lIiIsCiAgICAiImJyYW5jaE5hbWUiIjogIiJicmFuY2hOYW1lIiIsCiAgICAiInRvdGFsQW1vdW50IiI6ICIidG90YWxBbW91bnQiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsIiIsIiIsIiIsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsCkJHRENMX01FVEVSRUQsInsKICAgICIiY29tbW9uIiI6IHsKICAgICAgICAiIlNUSy1DT0RFIiI6ICIiREVNTyIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIkJHMTU2NTA5MDkyNTMwMzAiIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInhkdERlZzY1SGdVakE2U1oiIiwKICAgICAgICAiIkFVVEgtS0VZIiI6ICIiQkQ2cEZTSWZTT0xFSWdLeXJ1NjdNZUJoSUNrUmlGbGEiIgogICAgfSwKICAgICIiaW5mb0NoZWNrIiI6IHsKICAgICAgICAiIkFVVEgtS0VZIiI6ICIiQkQ2cEZTSWZTT0xFSWdLeXJ1NjdNZUJoSUNrUmlGbGEiIiwKICAgICAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJCRzE1NjUwOTA5MjUzMDMwIiIsCiAgICAgICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ4ZHREZWc2NUhnVWpBNlNaIiIKICAgIH0sCiAgICAiInBheUJpbGwiIjogewogICAgICAgICIibW9kZSIiOiAiIjEiIgogICAgfQp9IiwiewogICAgIiJjb2RlIiI6ICIiY3VzdENvZGUiIiwKICAgICIibW9iaWxlTm8iIjogIiJtb2JpbGVObyIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IiwiewogICAgIiJtb2JpbGVObyIiOiAiIm1vYmlsZU5vIiIsCiAgICAiImJhbmtOYW1lIiI6ICIiYmFua05hbWUiIiwKICAgICIiYnJhbmNoTmFtZSIiOiAiImJyYW5jaE5hbWUiIiwKICAgICIiY3VzdENvZGUiIjogIiJjdXN0Q29kZSIiLAogICAgIiJiaWxsQW1vdW50IiI6ICIiYmlsbEFtb3VudCIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9Iix0cnVlLCIiLCIiLCIiLCJ7CiAgICAiIkFVVEgtS0VZIiI6ICIiQVVUSC1LRVkiIiwKICAgICIiU1RLLUNPREUiIjogIiJTVEstQ09ERSIiCn0iLApCR0RDTF9OT05fTUVURVJFRCwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiQkcxNTY1MDY2MTAyMjI5MCIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiRFZCT0RHWWEzZkp1S1ptNSIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiCiAgICB9LAogICAgIiJpbmZvQ2hlY2siIjogewogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIkJHMTU2NTA2NjEwMjIyOTAiIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIkRWQk9ER1lhM2ZKdUtabTUiIgogICAgfSwKICAgICIicGF5QmlsbCIiOiB7CiAgICAgICAgIiJtb2RlIiI6ICIiMSIiCiAgICB9Cn0iLCJ7CiAgICAiImNvZGUiIjogIiJjb2RlIiIsCiAgICAiIm1vYmlsZU5vIiI6ICIibW9iaWxlTm8iIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJiaWxsX3R5cGUiIjogIiJiaWxsX3R5cGUiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsInsKICAgICIibW9iaWxlTm8iIjogIiJtb2JpbGVObyIiLAogICAgIiJiYW5rTmFtZSIiOiAiImJhbmtOYW1lIiIsCiAgICAiImJyYW5jaE5hbWUiIjogIiJicmFuY2hOYW1lIiIsCiAgICAiImN1c3RDb2RlIiI6ICIiY3VzdENvZGUiIiwKICAgICIiYmlsbEFtb3VudCIiOiAiImJpbGxBbW91bnQiIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJiaWxsX3R5cGUiIjogIiJiaWxsX3R5cGUiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfQoiLHRydWUsIiIsIiIsIiIsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsClNTTF9USVRBU19ERU1BTkRfTk9URSwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiVEkxNTE3NDYwMzUzNzg3NiIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiSVY1UndIekdKREJwa2hrMSIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiCiAgICB9LAogICAgIiJpbmZvQ2hlY2siIjogewogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIlRJMTUxNzQ2MDM1Mzc4NzYiIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIklWNVJ3SHpHSkRCcGtoazEiIgogICAgfSwKICAgICIicGF5QmlsbCIiOiB7CiAgICAgICAgIiJtb2RlIiI6ICIiMSIiCiAgICB9Cn0iLCJ7CiAgICAiImludm9pY2VObyIiOiAiImludm9pY2VObyIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IiwiewogICAgIiJwYXltZW50SWQiIjogIiJwYXltZW50SWQiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIsCiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsdHJ1ZSwiIiwiIiwiIiwiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwKU1NMX1RJVEFTX01FVEVSRUQsInsKICAgICIiY29tbW9uIiI6IHsKICAgICAgICAiIlNUSy1DT0RFIiI6ICIiREVNTyIiLAogICAgICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiIlRJMTUxNzQ2MDMwNzc4NDciIiwKICAgICAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiIk5uMm5DVlJ1VHBZNnhzbzUiIiwKICAgICAgICAiIkFVVEgtS0VZIiI6ICIiQkQ2cEZTSWZTT0xFSWdLeXJ1NjdNZUJoSUNrUmlGbGEiIgogICAgfSwKICAgICIiaW5mb0NoZWNrIiI6IHsKICAgICAgICAiIkFVVEgtS0VZIiI6ICIiQkQ2cEZTSWZTT0xFSWdLeXJ1NjdNZUJoSUNrUmlGbGEiIiwKICAgICAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJUSTE1MTc0NjAzMDc3ODQ3IiIsCiAgICAgICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJObjJuQ1ZSdVRwWTZ4c281IiIKICAgIH0sCiAgICAiInBheUJpbGwiIjogewogICAgICAgICIibW9kZSIiOiAiIjEiIgogICAgfQp9IiwiewogICAgIiJpbnZvaWNlTm8iIjogIiJpbnZvaWNlTm8iIiwKICAgICIiY3VzdG9tZXJDb2RlIiI6ICIiY3VzdG9tZXJDb2RlIiIsCiAgICAiInNvdXJjZVRheEFtb3VudCIiOiAiInNvdXJjZVRheEFtb3VudCIiLAogICAgIiJicmFuY2hSb3V0aW5nTm8iIjogIiJicmFuY2hSb3V0aW5nTm8iIiwKICAgICIib3BlcmF0b3IiIjogIiJvcGVyYXRvciIiLAogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImNoYWxhbk5vIiI6ICIiY2hhbGFuTm8iIiwKICAgICIiY2hhbGFuRGF0ZSIiOiAiImNoYWxhbkRhdGUiIiwKICAgICIiY2hhbGFuQmFuayIiOiAiImNoYWxhbkJhbmsiIiwKICAgICIiY2hhbGFuQnJhbmNoIiI6ICIiY2hhbGFuQnJhbmNoIiIsCiAgICAiImJpbGxfdHlwZSIiOiAiImJpbGxfdHlwZSIiLAogICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIidXRpbGl0eV9hdXRoX2tleSIiLAogICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJ1dGlsaXR5X3NlY3JldF9rZXkiIgp9IiwiewogICAgIiJwYXltZW50SWQiIjogIiJwYXltZW50SWQiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIsCiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsdHJ1ZSwiIiwiIiwiIiwiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwKU1NMX1RJVEFTX05PTl9NRVRFUkVELCJ7CiAgICAiImNvbW1vbiIiOiB7CiAgICAgICAgIiJTVEstQ09ERSIiOiAiIkRFTU8iIiwKICAgICAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJUSTE1MTc0NjAzNDAxNzM2IiIsCiAgICAgICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJQQ1F1ZTV3WmlCaGZsdllrIiIsCiAgICAgICAgIiJBVVRILUtFWSIiOiAiIkJENnBGU0lmU09MRUlnS3lydTY3TWVCaElDa1JpRmxhIiIKICAgIH0sCiAgICAiImluZm9DaGVjayIiOiB7CiAgICAgICAgIiJBVVRILUtFWSIiOiAiIkJENnBGU0lmU09MRUlnS3lydTY3TWVCaElDa1JpRmxhIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiVEkxNTE3NDYwMzQwMTczNiIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiUENRdWU1d1ppQmhmbHZZayIiCiAgICB9LAogICAgIiJwYXlCaWxsIiI6IHsKICAgICAgICAiIm1vZGUiIjogIiIxIiIKICAgIH0KfSIsInsKICAgICIiY3VzdG9tZXIiIjogIiJjdXN0b21lciIiLAogICAgIiJhbW91bnQiIjogIiJhbW91bnQiIiwKICAgICIic3VyY2hhcmdlIiI6ICIic3VyY2hhcmdlIiIsCiAgICAiInBhcnRpY3VsYXJzIiI6ICIicGFydGljdWxhcnMiIiwKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJiaWxsX3R5cGUiIjogIiJiaWxsX3R5cGUiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsInsKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJwYXltZW50SWQiIjogIiJwYXltZW50SWQiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsIiIsIiIsIiIsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsClNTTF9CUkVCX1BPU1RQQUlELCJ7CiAgICAiImNvbW1vbiIiOiB7CiAgICAgICAgIiJTVEstQ09ERSIiOiAiIkRFTU8iIiwKICAgICAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJCUjE2NzEzNjI5NjUxMzc0IiIsCiAgICAgICAgIiJ1dGlsaXR5X3NlY3JldF9rZXkiIjogIiJCUjE2NzEzNjI5NjUxMzc0IiIsCiAgICAgICAgIiJBVVRILUtFWSIiOiAiIkJENnBGU0lmU09MRUlnS3lydTY3TWVCaElDa1JpRmxhIiIsCiAgICAgICAgIiJwYXlfY2hhbm5lbCIiOiAiIjQiIgogICAgfSwKICAgICIiaW5mb0NoZWNrIiI6IHsKICAgIH0sCiAgICAiInBheUJpbGwiIjogewogICAgICAgICIibW9kZSIiOiAiIjEiIgogICAgfQp9IiwiewogICAgIiJ0cmFuc2FjdGlvbl9pZCIiOiAiInRyYW5zYWN0aW9uX2lkIiIsCiAgICAiImFjY291bnRfbm8iIjogIiJhY2NvdW50X25vIiIsCiAgICAiInR5cGVfb2ZfYmlsbCIiOiAiInR5cGVfb2ZfYmlsbCIiLAogICAgIiJiaWxsX3R5cGUiIjogIiJiaWxsX3R5cGUiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIsCiAgICAiImJyYW5jaFJvdXRpbmdObyIiOiAiImJyYW5jaFJvdXRpbmdObyIiCn0KIiwiewogICAgIiJ1dGlsaXR5X2JpbGxfdHlwZSIiOiAiInV0aWxpdHlfYmlsbF90eXBlIiIsCiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsdHJ1ZSwiIiwiIiwiIiwiewogICAgIiJBVVRILUtFWSIiOiAiIkFVVEgtS0VZIiIsCiAgICAiIlNUSy1DT0RFIiI6ICIiU1RLLUNPREUiIgp9IiwKU1NMX0JUQ0xfTkVXX1JFR1VMQVJfQklMTCwiewogICAgIiJjb21tb24iIjogewogICAgICAgICIiU1RLLUNPREUiIjogIiJERU1PIiIsCiAgICAgICAgIiJ1dGlsaXR5X2F1dGhfa2V5IiI6ICIiQlQxNjAwMTY1NDEzNjQ1OCIiLAogICAgICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIiMTFlb1lPaTNuZW1TUGdsdSIiLAogICAgICAgICIiQVVUSC1LRVkiIjogIiJCRDZwRlNJZlNPTEVJZ0t5cnU2N01lQmhJQ2tSaUZsYSIiLAogICAgICAgICIicGF5X2NoYW5uZWwiIjogIiI0IiIKICAgIH0sCiAgICAiImluZm9DaGVjayIiOiB7CiAgICB9LAogICAgIiJwYXlCaWxsIiI6IHsKICAgICAgICAiIm1vZGUiIjogIiIxIiIKICAgIH0KfSIsInsKICAgICIiYmlsbF9ubyIiOiAiImJpbGxfbm8iIiwKICAgICIicGhvbmVfbnVtYmVyIiI6ICIicGhvbmVfbnVtYmVyIiIsCiAgICAiImV4Y2hhbmdlX2NvZGUiIjogIiJleGNoYW5nZV9jb2RlIiIsCiAgICAiImJyYW5jaF9jb2RlIiI6ICIiYnJhbmNoX2NvZGUiIiwKICAgICIiYmlsbF90eXBlIiI6ICIiYmlsbF90eXBlIiIsCiAgICAiInRyYW5zYWN0aW9uX2lkIiI6ICIidHJhbnNhY3Rpb25faWQiIiwKICAgICIidXRpbGl0eV9hdXRoX2tleSIiOiAiInV0aWxpdHlfYXV0aF9rZXkiIiwKICAgICIidXRpbGl0eV9zZWNyZXRfa2V5IiI6ICIidXRpbGl0eV9zZWNyZXRfa2V5IiIKfSIsInsKICAgICIidHJhbnNhY3Rpb25faWQiIjogIiJ0cmFuc2FjdGlvbl9pZCIiLAogICAgIiJ1dGlsaXR5X2JpbGxfdHlwZSIiOiAiInV0aWxpdHlfYmlsbF90eXBlIiIsCiAgICAiInV0aWxpdHlfYXV0aF9rZXkiIjogIiJ1dGlsaXR5X2F1dGhfa2V5IiIsCiAgICAiInV0aWxpdHlfc2VjcmV0X2tleSIiOiAiInV0aWxpdHlfc2VjcmV0X2tleSIiCn0iLHRydWUsIiIsIiIsIiIsInsKICAgICIiQVVUSC1LRVkiIjogIiJBVVRILUtFWSIiLAogICAgIiJTVEstQ09ERSIiOiAiIlNUSy1DT0RFIiIKfSIsCgonJycKCiMgUGFyc2UgdGhlIGlucHV0IGFuZCBjcmVhdGUgcmVjb3JkcwpyZWNvcmRzID0gcGFyc2VfaW5wdXQoaW5wdXRfdGV4dCkKCiMgR2VuZXJhdGUgWE1MIG1pZ3JhdGlvbiBzY3JpcHQKeG1sX3NjcmlwdCA9IGNyZWF0ZV94bWxfbWlncmF0aW9uX3NjcmlwdChyZWNvcmRzKQoKIyBPdXRwdXQgdGhlIGdlbmVyYXRlZCBYTUwgc2NyaXB0CnByaW50KHhtbF9zY3JpcHQpCg==