getprop("ro.product.device") == "P2-B" || abort("E3004: This package is for \"P2-B\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1368:user/release-keys");
ui_print("Target: alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1477:user/release-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1368:user/release-keys" ||
    getprop("ro.build.fingerprint") == "alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1477:user/release-keys" ||
    abort("E3001: Package expects build fingerprint of alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1368:user/release-keys or alps/full_rlk6580_we_c_m/rlk6580_we_c_m:7.1.1/N6F26Q/1477:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
apply_patch_check("EMMC:/dev/block/platform/bootdevice/by-name/boot:9884544:c548b8e28037daaa74ae9e7f7de10524d48deebd:9886592:d2598b0da6c241b3d7bcae28bbe65dc97d74cfa7") || abort("E3005: \"EMMC:/dev/block/platform/bootdevice/by-name/boot:9884544:c548b8e28037daaa74ae9e7f7de10524d48deebd:9886592:d2598b0da6c241b3d7bcae28bbe65dc97d74cfa7\" has unexpected contents.");
apply_patch_space(47915008) || abort("E3006: Not enough free space on /cache to apply patches.");
if (range_sha1("/dev/block/platform/bootdevice/by-name/system", "5706,1,160,161,339,668,689,690,1162,1163,6130,6131,6132,6133,14798,14799,14800,14801,14803,14804,14805,14806,14807,14808,14815,14816,14817,14818,20232,20233,20234,20235,20236,20237,21798,21799,21800,21801,21805,21806,21807,21808,21809,21810,21818,21819,21820,21821,22258,22259,22260,22261,22285,22286,22287,22288,22289,22290,22315,22316,22317,22318,25026,25027,25028,25029,25030,25031,25032,25033,25034,25035,25690,25691,25692,25693,25902,25903,25904,25905,25906,25907,26614,26615,26616,26617,26618,26619,26620,26621,27384,27385,31716,31717,32504,32505,32506,32507,32508,32509,32510,32511,32512,32513,32652,32653,32654,32655,32656,32657,32658,32659,32660,32661,32662,32663,32695,32696,32728,32729,32761,32762,32763,32764,32765,32766,32767,32768,32770,32929,32930,33436,42812,42813,43037,43038,44965,44966,45031,45032,45551,45552,47654,47655,47660,47661,47691,47692,47693,47694,48097,48098,55309,55310,55311,55312,55313,55314,55315,55316,55317,55318,55319,55320,55321,55322,55323,55324,55325,55326,55327,55328,55329,55330,55331,55332,55333,55334,55335,55336,55384,55385,55491,55492,55500,55501,55518,55519,55527,55528,55536,55537,55556,55557,55567,55568,55575,55576,55799,55800,55852,55853,55869,55870,55879,55880,55899,55900,55914,55915,55924,55925,55935,55936,55980,55981,55993,55994,56076,56077,56109,56110,56120,56121,63235,63236,63248,63249,63259,63260,63272,63273,63283,63284,63374,63375,64256,64257,64267,64268,64269,64270,64271,64272,64273,64274,64275,64276,64277,64278,64279,64280,64281,64282,64283,64284,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64367,64368,64369,64370,64371,64372,64373,64374,64399,64400,64401,64402,64410,64411,64416,64417,64426,64427,64433,64434,64459,64460,64464,64465,65021,65022,65028,65029,65033,65034,65038,65039,65043,65044,65048,65049,65214,65215,65220,65221,65276,65277,65432,65433,65442,65443,65460,65461,65478,65479,65490,65491,65496,65497,65502,65503,65514,65515,65521,65522,65528,65529,65533,65536,65537,98304,98306,98465,98466,110415,110417,112080,112116,112139,112140,112201,112202,112248,112249,112253,112254,112265,112266,112284,112285,112292,112293,112315,112317,112334,112336,112344,112345,112456,112458,112459,112460,112511,112512,112747,112748,112828,112829,112938,112939,112977,112978,112986,112987,112993,112998,113005,113007,113011,113013,113015,113016,113019,113021,113085,113086,113088,113089,113102,113103,113126,114569,114570,114571,114572,114574,115575,115600,115628,115630,115639,115640,115642,115643,115675,115676,115713,115714,115760,115761,115765,115766,115770,115775,115782,115783,115791,115792,115795,115796,115817,115819,115830,115831,115833,115835,115836,115837,115840,115841,115864,115865,115922,115923,115978,115979,115983,115984,115990,115993,115999,116000,116104,116105,116111,116113,116183,117235,117236,117237,117238,117957,117958,119670,119671,123856,123857,123885,123886,123925,123926,123974,123975,124023,124024,124043,124044,124063,124064,124091,124092,124119,124120,124155,124156,124679,125765,126785,126786,127092,127093,128628,128629,129287,129288,129289,129290,129291,129292,130671,130672,130673,130674,130675,130676,130678,130679,130680,130681,130682,130683,130684,130685,130686,130687,130691,130692,130693,130694,130695,130696,130711,130712,130713,130714,130716,130717,130718,130719,130720,130721,130732,130733,130734,130735,130767,130768,130769,130770,130771,130772,130879,130880,130881,130882,130889,130890,130891,130892,130893,130894,130899,130900,130901,130902,130903,130904,130920,130921,130922,130923,130924,130925,130926,130927,130928,130929,130930,130931,130933,130934,130939,130940,130941,130942,130948,130949,130988,130989,130990,130991,130992,130993,131003,131004,131010,131011,131018,131019,131030,131031,131036,131037,131038,131039,131054,131055,131064,131065,131066,131067,131068,131069,131070,131072,131073,131579,131695,163840,163842,164001,164002,164508,164510,172667,172835,172838,172842,173034,173035,173483,173484,173609,173610,173611,173612,173621,173622,173665,173666,175042,175043,175044,175045,175049,175050,175053,175054,175063,175064,175121,175123,175124,175125,175142,175143,175193,175194,175576,175578,175649,175650,175652,175653,175703,175705,175733,175735,175753,175754,175806,175807,175841,175844,175878,175879,176046,176047,176070,176071,176106,176107,176111,176112,176240,176241,176246,176247,176357,176359,176425,176430,176431,176432,176493,176495,176537,176538,176553,176554,176558,176559,176602,176604,176624,176625,176626,176627,176709,176710,176893,176894,176898,176899,176945,176946,176947,176948,176949,176950,177022,177024,177077,177078,177086,177087,177109,177111,177174,177176,177200,177201,177202,177203,177205,177206,177223,177224,177230,177232,177343,177344,177374,177375,177527,177528,177536,177537,177674,177675,177677,177678,177723,177724,177726,177729,177749,177750,177758,177762,177769,177770,177843,177844,177847,177848,177857,177858,177981,177982,178002,178003,178005,178006,178007,178008,178009,178010,178028,178029,178033,178034,178036,178037,178040,178041,178044,178045,178094,178096,178102,178105,178182,178183,178210,178212,178225,178226,178232,178233,178294,178296,178297,178299,178304,178305,178314,178315,178318,178320,178326,178328,178329,178331,178332,178333,178334,178336,178338,178340,178344,178345,178347,178348,178350,178352,178380,178381,178384,178385,178390,178393,178395,178396,178411,178413,178414,178416,178418,178420,178507,178508,178531,178533,178537,178538,178543,178544,178653,178654,178708,178709,178782,178783,178881,178882,178889,178890,178892,178893,178935,178936,178943,178944,178978,178979,179118,179119,179124,179125,179126,179127,179138,179139,179176,190536,190537,190538,190539,190540,190541,190557,190558,190559,190560,190566,190567,190568,190569,190570,190571,190581,190582,190583,190584,190586,190587,190588,190589,190590,190591,190592,190593,190594,190595,190603,190604,190605,190606,191117,191118,191119,191120,191121,191122,191129,191130,191136,191137,191138,191139,191142,191143,191144,191145,191146,191147,191184,191185,191186,191187,191303,191304,191305,191306,191307,191308,191309,191310,191311,191312,191679,191680,191681,191682,191756,191757,191758,191759,191760,191761,192164,192165,192166,192167,192412,192413,192414,192415,192780,192781,192782,192783,192784,192785,194125,194126,194127,194128,194530,194531,194532,194533,194534,194535,196009,196010,196011,196012,196013,196014,196015,196016,196060,196061,196069,196070,196083,196084,196085,196086,196087,196088,196089,196090,196094,196095,196106,196107,196116,196117,196178,196179,196180,196181,196182,196183,196184,196185,196210,196211,196236,196237,196258,196259,196328,196329,196363,196364,196398,196399,196433,196434,196469,196470,196501,196502,196535,196536,196569,196570,196595,196596,196597,196598,196599,196600,196601,196602,196603,196604,196605,196606,196607,196608,196609,197115,197154,229376,229378,229537,229538,233890,233892,235077,235110,235111,235112,235115,235116,235151,235152,235185,235186,235309,235310,235318,235319,235447,235448,235505,235506,235730,235731,235732,235735,235749,235750,235769,235770,235771,235773,235779,237192,237193,237194,237195,239945,239946,241034,241035,245262,245263,255268,255269,256760,256761,256767,256768,256772,256773,256778,256779,256783,256784,256796,256797,256802,256803,256808,256809,256898,256899,256924,256925,256958,256959,256978,256979,257014,257015,257035,257036,257077,257078,257085,257086,257126,257127,257142,257143,257155,257156,257168,257169,257177,257178,257183,257184,257185,257186,257294,257295,257305,257306,257315,257316,257317,257318,257319,257320,257321,257322,257349,257350,257405,257406,257468,257469,257530,257531,257552,257553,257682,257683,257837,257838,257844,257845,257854,257855,257872,257873,257881,257882,257890,257891,257896,257897,257905,257906,258025,258026,258027,258028,258033,258034,258041,258042,258047,258048,258053,258054,258072,258073,258088,258089,258090,258091,258098,258099,258104,258105,258163,258164,258187,258188,258226,258227,258229,258230,258248,258249,258260,258261,258272,258273,258274,258275,258320,258321,258366,258367,258376,258377,258421,258422,258426,258427,258428,258429,258442,258443,258448,258449,258453,258454,258459,258460,258487,258488,258496,258497,258503,258504,258508,258509,258515,258516,258522,258523,258524,258525,258556,258557,258603,258604,258605,258606,258645,258646,258651,258652,258653,258654,258655,258656,258657,258658,258662,258663,258668,258669,258670,258671,258676,258677,258681,258682,258704,258705,258706,258707,258729,258730,258800,258801,258813,258814,258820,258821,258823,258824,258840,258841,258846,258847,258962,258963,258964,258965,258987,258988,259299,259300,259303,259304,259305,259306,259331,259332,259333,259334,259387,259388,259389,259390,259483,259484,259486,259487,259491,259492,259495,259496,259497,259498,259499,259500,259501,259502,259504,259505,259506,259507,259508,259509,259510,259511,259512,259513,259596,259597,259598,259599,259604,259605,259606,259607,259608,259609,259614,259615,259616,259617,259618,259619,259621,259622,259623,259624,259625,259626,259627,259628,259629,259630,259631,259632,259633,259634,259635,259636,259637,259638,259639,259640,259641,259642,259643,259644,259645,259646,259647,259648,259649,259650,259651,259652,259653,259654,259655,259656,259657,259658,259659,259660,259661,259662,259663,259664,259665,259666,259667,259668,259669,259670,259671,259672,259673,259674,259675,259676,259677,259678,259679,259680,259681,259682,259684,259685,259687,259688,259689,259690,259693,259694,259697,259698,259699,259700,259701,259702,259703,259704,259705,259706,259707,259708,259709,259710,259711,259712,259713,259714,259715,259716,259717,259718,259719,259720,259721,259722,259723,259724,259725,259726,259727,259728,259729,259730,259731,259732,259733,259734,259735,259736,259737,259738,259739,259740,259741,259742,259743,259744,259745,259746,259747,259748,259749,259750,259751,259752,259753,259754,259755,259756,259757,259758,259759,259760,259761,259762,259764,259765,259768,259769,259770,259771,259775,259776,259777,259778,259780,259781,259819,259820,259821,259822,259823,259824,260103,260104,260105,260106,260107,260108,260109,260110,260111,260112,260113,260114,260116,260117,260119,260120,260122,260123,260125,260126,260127,260128,260130,260131,260133,260134,260136,260137,260138,260139,260141,260142,260144,260145,260147,260148,260150,260151,260153,260154,260156,260157,260159,260160,260162,260163,260165,260166,260168,260169,260171,260172,260174,260175,260178,260179,260181,260182,260184,260185,260187,260188,260190,260191,260193,260194,260195,260196,260197,260198,260200,260201,260203,260204,260207,260208,260211,260212,260214,260215,260217,260218,260220,260221,260223,260224,260226,260227,260229,260230,260232,260233,260235,260236,260238,260239,260242,260243,260245,260246,260248,260249,260251,260252,260254,260255,260257,260258,260260,260261,260263,260264,260266,260267,260269,260270,260272,260273,260275,260276,260278,260279,260280,260281,260283,260284,260286,260287,260289,260290,260292,260293,260295,260296,260297,260298,260300,260301,260303,260304,260306,260307,260309,260310,260312,260313,260315,260316,260318,260319,260320,260321,260323,260324,260326,260327,260329,260330,260332,260333,260335,260336,260338,260339,260341,260342,260344,260345,260347,260348,260350,260351,260353,260354,260356,260357,260359,260360,260362,260363,260365,260366,260367,260368,260370,260371,260373,260374,260376,260377,260379,260380,260381,260382,260384,260385,260387,260388,260390,260391,260393,260394,260396,260397,260399,260400,260402,260403,260405,260406,260408,260409,260412,260413,260415,260416,260418,260419,260421,260422,260424,260425,260427,260428,260429,260430,260432,260433,260435,260436,260438,260439,260441,260442,260444,260445,260446,260447,260449,260450,260452,260453,260455,260456,260458,260459,260461,260462,260463,260464,260466,260467,260469,260470,260472,260473,260475,260476,260478,260479,260480,260481,260483,260484,260486,260487,260489,260490,260492,260493,260495,260496,260497,260498,260500,260501,260503,260504,260506,260507,260509,260510,260511,260512,260514,260515,260517,260518,260520,260521,260523,260524,260526,260527,260529,260530,260532,260533,260535,260536,260538,260539,260541,260542,260543,260544,260546,260547,260549,260550,260552,260553,260555,260556,260558,260559,260561,260562,260564,260565,260567,260568,260570,260571,260572,260573,260575,260576,260577,260578,260579,260580,260581,260582,260596,260597,260599,260600,260601,260602,260603,260604,260605,260606,260607,260608,260609,260610,260611,260612,260638,260639,260640,260641,260642,260643,260644,260645,260646,260647,260648,260649,260650,260651,260652,260653,260657,260658,260660,260661,260663,260664,260674,260675,260690,260691,260708,260709,260738,260739,260768,260769,260796,260797,260826,260827,260856,260857,260886,260887,260916,260917,260921,260922,260926,260927,260935,260936,260969,260970,260974,260975,261000,261001,261026,261027,261053,261054,261081,261082,261084,261085,261087,261088,261100,261101,261107,261108,261114,261115,261124,261125,261131,261132,261165,261166,261200,261201,261231,261232,261263,261264,261300,261301,261336,261337,261342,261343,261348,261349,261353,261354,261383,261384,261414,261415,261443,261444,261473,261474,261482,261483,261491,261492,261500,261501,261509,261510,261512,261513,261518,261519,261524,261525,261535,261536,261556,261557,261578,261579,261599,261600,261620,261621,261623,261624,261633,261634,261643,261644,261653,261654,261664,261665,261673,261674,261682,261683,261691,261692,261700,261701,261726,261727,261730,261731,261733,261734,261748,261749,261763,261764,261778,261779,261793,261794,261798,261799,261803,261804,261832,261833,261860,261861,261888,261889,261915,261916,261942,261943,261948,261949,261953,261954,261956,261957,261978,261979,262000,262001,262021,262022,262042,262043,262045,262046,262051,262052,262090,262091,262131,262132,262135,262136,262140,262141,262142,262144,262145,262651,262709,262710,262771,262772,262797,262798,262819,262820,263100,263101,263146,263147,263199,263200,263970,263971,263999,264000,265441,265442,265450,265451,265459,265460,265551,265552,265576,265577,265727,265728,265749,265750,265794,265795,265801,265802,265810,265811,265826,265827,265838,265839,265951,265952,266007,266008,266014,266015,266105,266106,266301,266302,266331,266332,266473,266474,266665,266666,266704,266705,266728,266729,266791,266792,266802,266803,266982,266983,266989,266990,267195,267196,267283,267284,267376,267377,267677,267678,267765,267766,267776,267777,267954,267955,268009,268010,268035,268036,268041,268042,268046,268047,268054,268055,268059,268060,268198,268199,268212,268213,268241,268242,268251,268252,268258,268259,268318,268319,268361,268362,268385,268386,268397,268398,268403,268404,268412,268413,268419,268420,268429,268430,268436,268437,268483,268484,268503,268504,268511,268512,268547,268548,268700,268701,268706,268707,268785,268786,268897,268898,268905,268906,268913,268914,269029,269030,269034,269035,269043,269044,269121,269122,269127,269128,269268,269269,269660,269661,269937,269938,269946,269947,269963,269964,269999,270000,270071,270072,270086,270087,270091,270092,270106,270107,270307,270308,270350,270351,270379,270380,270612,270613,270618,270619,270623,270624,270684,270685,270719,270720,270733,270734,270739,270740,270763,270764,270780,270781,270807,270808,270813,270814,270826,270827,270851,270852,270885,270886,270895,270896,271130,271131,271215,271216,271223,271224,271240,271241,271248,271249,271257,271258,271277,271278,271453,271454,271459,271460,271471,271472,271476,271477,271502,271503,271518,271519,271545,271546,271570,271571,271576,271577,271586,271587,271596,271597,271607,271608,271613,271614,271625,271626,271633,271634,271646,271647,271651,271652,271672,271673,271718,271719,271732,271733,271789,271790,273097,273098,273102,273103,273124,273125,273134,273135,274302,274303,274313,274314,274350,274351,274389,274390,274394,274395,274402,274403,274408,274409,274414,274415,274586,274587,274615,274616,274631,274632,274636,274637,274653,274654,274665,274666,274678,274679,274700,274701,274706,274707,274721,274722,274755,274756,274774,274775,274800,274801,274806,274807,274811,274812,275756,275757,277026,277027,277036,277037,277043,277044,277071,277072,277077,277078,277166,277167,277178,277179,277195,277196,277213,277214,277222,277223,277230,277231,277355,277356,277400,277401,277963,277964,277980,277981,277990,277991,277995,277996,278034,278035,278039,278040,278082,278083,278135,278136,278240,278241,278354,278355,278385,278386,278406,278407,278442,278443,278529,278530,278615,278616,278657,278658,278665,278666,278675,278676,278797,278798,278819,278820,278852,278853,278883,278884,278925,278926,278935,278936,278943,278944,278952,278953,279053,279054,279177,279178,279263,279264,279270,279271,279277,279278,279285,279286,279309,279310,279324,279325,279330,279331,279336,279337,279341,279342,279346,279347,279373,279374,279453,279454,279461,279462,279564,279565,279569,279570,279576,279577,279581,279582,279693,279694,279704,279705,279713,279714,279721,279722,279728,279729,279741,279742,279772,279773,279795,279796,279802,279803,279829,279830,279840,279841,280020,280021,280052,280053,280076,280077,280278,280279,280284,280285,280290,280291,280324,280325,280373,280374,280380,280381,280569,280570,280594,280595,280596,280597,280598,280599,280606,280607,280625,280626,280631,280632,280636,280637,280642,280643,280653,280654,280659,280660,280661,280662,280663,280664,280665,280666,280670,280671,280673,280674,280680,280681,280684,280685,280692,280693,280696,280697,280726,280727,280740,280741,280765,280766,280792,280793,280837,280838,280849,280850,280857,280858,280886,280887,280913,280914,280926,280927,280928,280929,280932,280933,280935,280936,280938,280939,280942,280943,280946,280947,280954,280955,280957,280958,280962,280963,280972,280973,280977,280978,280983,280984,280988,280989,280994,280995,280998,280999,281003,281004,281008,281009,281016,281017,281022,281023,281026,281027,281032,281033,281037,281038,281041,281042,281047,281048,281052,281053,281057,281058,281061,281062,281068,281069,281072,281073,281078,281079,281085,281086,281089,281090,281100,281101,281103,281104,281109,281110,281114,281115,281130,281131,281134,281135,281139,281140,281145,281146,281151,281152,281157,281158,281163,281164,281168,281169,281171,281172,281178,281179,281185,281186,281192,281193,281197,281198,281205,281206,281212,281213,281216,281217,281223,281224,281230,281231,281238,281239,281242,281243,281253,281254,281257,281258,281269,281270,281273,281274,281278,281279,281284,281285,281290,281291,281297,281298,281303,281304,281311,281312,281316,281317,281321,281322,281327,281328,281333,281334,281341,281342,281349,281350,281353,281354,281362,281363,281364,281365,281372,281373,281379,281380,281436,281437,281459,281460,281467,281468,281477,281478,281485,281486,281494,281495,281507,281508,281519,281520,281530,281531,281543,281544,281552,281553,281561,281562,281572,281573,281583,281584,281592,281593,281597,281598,281605,281606,281616,281617,281627,281628,281638,281639,281690,281691,281699,281700,281708,281709,281724,281725,281729,281730,281743,281744,281752,281753,281796,281797,281810,281811,281827,281828,281837,281838,281846,281847,281875,281876,281888,281889,281899,281900,281913,281914,281924,281925,281936,281937,281951,281952,281963,281964,281981,281982,281988,281989,281993,281994,282035,282036,282046,282047,282056,282057,282068,282069,282079,282080,282087,282088,282097,282098,282109,282110,282121,282122,282126,282127,282136,282137,282146,282147,282157,282158,282165,282166,282174,282175,282189,282190,282218,282219,282229,282230,282252,282253,282267,282268,282273,282274,282318,282319,282332,282333,282348,282349,282364,282365,282371,282372,282385,282386,282397,282398,282410,282411,282419,282420,282431,282432,282442,282443,282470,282471,282549,282550,282561,282562,282572,282573,282584,282585,282593,282594,282616,282617,282624,282625,282635,282636,282645,282646,282664,282665,282708,282709,282718,282719,282731,282732,282739,282740,282776,282777,282823,282824,282832,282833,282838,282839,282847,282848,282868,282869,282870,282871,282873,282874,282876,282877,282879,282880,282883,282884,282886,282887,282889,282890,282892,282893,282896,282897,282901,282902,282904,282905,282908,282909,282911,282912,282914,282915,282917,282918,282921,282922,282924,282925,282928,282929,282932,282933,282935,282936,282947,282948,282994,282995,282996,282997,283000,283001,283005,283006,283010,283011,283012,283013,283014,283015,283072,283073,283074,283075,283076,283077,283087,283088,283089,283090,283095,283096,283097,283098,283099,283100,283319,283320,283321,283322,283356,283357,283358,283359,283360,283361,283716,283717,283718,283719,283762,283763,283764,283765,283766,283767,283774,283775,283776,283777,284143,284144,284145,284146,284147,284148,286475,286476,286477,286478,286536,286537,286538,286539,286540,286541,287264,287265,287266,287267,287269,287270,287271,287272,287277,287278,287279,287280,287281,287282,287283,287284,287285,287286,287305,287306,287307,287308,289476,289477,289478,289479,289480,289481,292170,292171,292172,292173,292284,292285,292286,292287,292288,292289,292597,292598,292599,292600,293389,293390,293391,293392,293393,293394,293985,293986,293987,293988,293994,293995,293996,293997,293998,293999,294038,294039,294040,294041,294045,294046,294047,294048,294049,294050,294061,294062,294063,294064,294065,294066,294072,294073,294074,294075,294076,294077,294087,294088,294089,294090,294093,294094,294095,294096,294097,294098,294108,294109,294110,294111,294233,294234,294235,294236,294237,294238,294511,294512,294513,294514,294515,294516,294517,294518,294519,294520,294521,294522,294523,294524,294525,294526,294782,294783,294784,294785,294786,294787,294788,294789,294790,294791,294792,294793,294794,294795,294849,294850,294851,294852,294853,294854,294860,294861,294862,294863,294864,294865,294866,294867,294868,294869,294904,294905,294906,294907,294908,294909,294910,294912,294914,295073,295074,319207,319209,319210,319213,319214,319226,319227,319231,319232,319241,319242,319251,319252,319261,319262,319271,319272,319299,319300,319328,319329,319357,319358,319386,319387,319391,319392,319396,319397,319402,319403,319409,319410,319415,319416,319422,319423,319515,319516,319615,319616,319620,319621,319637,319638,319669,319670,319731,319732,319797,319798,319859,319860,319921,319922,320024,320025,320100,320101,320182,320183,320258,320259,320340,320341,320422,320423,320499,320500,320582,320583,320658,320659,320740,320741,320816,320817,320892,320893,320973,320974,321048,321049,321130,321131,321212,321213,321288,321289,321371,321372,321447,321448,321449,321450,321451,321452,321453,321454,321459,321460,321461,321462,321463,321464,321466,321467,321476,321477,321502,321503,321870,321871,321928,321929,322348,322349,322392,322393,322570,322571,322574,322575,322590,322591,322876,322877,324638,324639,324695,324696,325034,325035,326625,326626,326646,326647,326831,326832,326837,326838,326878,326879,326885,326886,326951,326952,326954,326955,326963,326964,327008,327009,327234,327235,327269,327270,327538,327539,327549,327550,327643,327644,327651,327652,327653,327654,327655,327656,327657,327658,327659,327660,327661,327662,327663,327664,327665,327666,327667,327668,327669,327670,327671,327672,327673,327674,327675,327676,327677,327680,327681,328187,338012,338013,340068,340069,341647,341648,342945,342946,344012,344013,344723,344724,345722,345723,346405,346406,346600,346601,346758,346759,347047,347048,347072,347073,347074,347075,347076,347077,347078,347079,347080,347081,347136,347137,347138,347139,347141,347142,347143,347144,347145,347146,347169,347170,347171,347172,350524,350525,350526,350527,350528,350529,350530,350531,350533,350534,350535,350536,350537,350538,350551,350552,350553,350554,356478,356479,357968,357969,358820,358821,359686,359687,360266,360267,360272,360273,360274,360275,360276,360277,360278,360279,360280,360281,360282,360283,360284,360285,360286,360287,360288,360289,360290,360291,360320,360321,360322,360323,360324,360325,360326,360327,360328,360329,360430,360431,360432,360433,360434,360435,360436,360437,360438,360439,360440,360441,360442,360443,360444,360445,360446,360448,360449,360955,371054,371055,386449,386450,386451,386452,386453,386454,386492,386493,386500,386501,386703,386704,387569,387570,387746,387747,388326,388327,388332,388333,388334,388335,388365,388366,388367,388368,388369,388370,388497,388498,388499,388500,388502,388503,388504,388505,388506,388507,388517,388518,388519,388520,388562,388563,388564,388565,388566,388567,388656,388657,388658,388659,388661,388662,388663,388664,388665,388666,388709,388710,388711,388712,389531,389532,389533,389534,389535,389536,390451,390452,390453,390454,391773,391774,391775,391776,391777,391778,391805,391806,391814,391815,391816,391817,391818,391819,391820,391821,392370,392371,392372,392373,392374,392375,392377,392378,392379,392380,392381,392382,392383,392384,392385,392386,392387,392388,392389,392390,392391,392392,392393,392394,392395,392396,392397,392398,392399,392400,392401,392402,392403,392404,392405,392406,392444,392445,392452,392453,392655,392656,392832,392833,393165,393166,393167,393168,393189,393190,393191,393192,393193,393194,393204,393205,393206,393207,393214,393216,393217,393723,396737,396738,399040,399041,402873,402874,404528,404529,408545,408546,418657,418658,421396,421397,423102,423103,424524,424525,425316,425317,425361,425362,425518,425519,425627,425628,425771,425772,425873,425874,425937,425938,425947,425948,425949,425950,425952,425953,425954,425955,425982,425984,425985,426491,427244,427245,427435,427436,427595,427596,427744,427745,427949,427950,428044,428045,428199,428200,428262,428263,428264,428265,428291,428292,428293,428294,428321,428322,428323,428324,428336,428337,428338,428339,428347,428348,428349,428350,428354,428355,428356,428357,428363,428364,428365,428366,428367,428368,428369,428370,428372,428373,428374,428375,428384,428385,428386,428387,428388,428389,428390,428391,428392,428393,428394,428395,428396,428397,428398,428399,428477,428478,428479,428480,428481,428482,428483,428484,428485,428486,428487,428488,428489,428490,428491,428492,428494,428495,428496,428497,428498,428499,428500,428501,428537,428538,428539,428540,428576,428577,428578,428579,428580,428581,428582,428583,428584,428585,428586,428587,428588,428589,428591,428592,428594,428595,428596,428597,428598,428599,428600,428601,428602,428603,428604,428605,428606,428607,428608,428609,428610,428611,428612,428613,428614,428615,434200,434201,434202,434203,434204,434205,434206,434207,434208,434209,434210,434211,434215,434216,434219,434220,434224,434225,434229,434230,434234,434235,434236,434237,434238,434239,434240,434241,434244,434245,434246,434247,434248,434249,434250,434251,434252,434253,434254,434255,434256,434257,434258,434259,434260,434261,434262,434263,434264,434265,434266,434267,434268,434269,434270,434271,434272,434273,434274,434275,434276,434277,434278,434279,434280,434281,434282,434283,434284,434285,434286,434287,434288,434289,434290,434291,434292,434293,434294,434295,434296,434297,434298,434299,434300,434301,434302,434303,434304,434305,434306,434307,434308,434309,434310,434311,434312,434313,434314,434315,434319,434320,434325,434326,434327,434328,434445,434446,434447,434448,434449,434450,434451,434452,434454,434455,434456,434457,434458,434459,434527,434528,434529,434530,434543,434544,434545,434546,434547,434548,434563,434564,434565,434566,434598,434599,434600,434601,434602,434603,434614,434615,434616,434617,434756,434757,434758,434759,434760,434761,435416,435417,435418,435419,435441,435442,435443,435444,435445,435446,435677,435678,435679,435680,438434,438435,438436,438437,438438,438439,440453,440454,440455,440456,440465,440466,440467,440468,440469,440470,440491,440492,440493,440494,440516,440517,440518,440519,440520,440521,441811,441812,441813,441814,441995,441996,441997,441998,441999,442000,444824,444825,444826,444827,444832,444833,444834,444835,444836,444837,444897,444898,444899,444900,444931,444932,444933,444934,444935,444936,445136,445137,445138,445139,445146,445147,445148,445149,445150,445151,445160,445161,445162,445163,445170,445171,445172,445173,445174,445175,445232,445233,445234,445235,445301,445302,445303,445304,445305,445306,445670,445671,445672,445673,445684,445685,445686,445687,445688,445689,445714,445715,445716,445717,445782,445783,445784,445785,445786,445787,445974,445975,445976,445977,445988,445989,445990,445991,445992,445993,446033,446034,446035,446036,446047,446048,446049,446050,446051,446052,446062,446063,446064,446065,446080,446081,446082,446083,446091,446092,446093,446094,446102,446103,446104,446105,446117,446118,446119,446120,446121,446122,446243,446244,446245,446246,446260,446261,446265,446266,446273,446274,446279,446280,446287,446288,446299,446300,446313,446314,446325,446326,446338,446339,446349,446350,446360,446361,446380,446381,446388,446389,446394,446395,446434,446435,446454,446455,446460,446461,446497,446498,446525,446526,446532,446533,446566,446567,446573,446574,446604,446605,446621,446622,446682,446683,446743,446744,446804,446805,446844,446845,446935,446936,446940,446941,446946,446947,446953,446954,446962,446963,446982,446983,446990,446991,447000,447001,447006,447007,447017,447018,447028,447029,447039,447040,447045,447046,447126,447127,447171,447172,447206,447207,447216,447217,447226,447227,447336,447337,447376,447377,447422,447423,447440,447441,447446,447447,447452,447453,447810,447811,447817,447818,447826,447827,447842,447843,447852,447853,447859,447860,447866,447867,447874,447875,447884,447885,447895,447896,447900,447901,447906,447907,447912,447913,447918,447919,447926,447927,447944,447945,447950,447951,448975,448976,448980,448981,448990,448991,449024,449025,449029,449030,449901,449902,449922,449923,449932,449933,449940,449941,449946,449947,449951,449952,449956,449957,449966,449967,449971,449972,449977,449978,449984,449985,449989,449990,450029,450030,450034,450035,450041,450042,450047,450048,450056,450057,450062,450063,450068,450069,450070,450071,450072,450073,450081,450082,450083,450084,450085,450086,450087,450088,450090,450091,450093,450094,450098,450099,450100,450101,450102,450103,450108,450109,450110,450111,450149,450150,450156,450157,450158,450159,450160,450161,450164,450165,450166,450167,450168,450169,450170,450171,450172,450173,450174,450175,450176,450177,450178,450179,450181,450182,450183,450184,450187,450188,450189,450190,450192,450193,450194,450195,450196,450197,450198,450199,450201,450202,450203,450204,450205,450206,450207,450208,450209,450210,450211,450212,450213,450214,450215,450216,450217,450218,450219,450220,450221,450222,450224,450225,450226,450227,450228,450229,450230,450231,450232,450233,450234,450235,450237,450238,450239,450240,450243,450244,450245,450246,450247,450248,450249,450250,450251,450252,450253,450254,450255,450256,450257,450258,450259,450260,450261,450262,450263,450264,450265,450266,450267,450268,450269,450270,450271,450272,450275,450276,450277,450278,450301,450302,450305,450306,450313,450314,450315,450316,450317,450318,450319,450320,450321,450322,450323,450324,450325,450326,450327,450328,450329,450330,450331,450332,450333,450334,450335,450336,450337,450338,450339,450340,450341,450342,450344,450345,450347,450348,450352,450353,450354,450355,450356,450357,450358,450359,450360,450361,450362,450363,450364,450365,450368,450369,450372,450373,450380,450381,450382,450383,450384,450385,450387,450388,450389,450390,450395,450396,450397,450398,450400,450401,450405,450406,450407,450408,450419,450420,450443,450444,450445,450446,450447,450448,450449,450450,450451,450452,450453,450454,450455,450456,450458,450459,450460,450461,450462,450463,450475,450476,450477,450478,450479,450480,450526,450527,450528,450529,450531,450532,450533,450534,450535,450536,450698,450699,450700,450701,450703,450704,450705,450706,450707,450708,450820,450821,450822,450823,450847,450848,450849,450850,450851,450852,451012,451013,451014,451015,451019,451020,451021,451022,451023,451024,451137,451138,451139,451140,451142,451143,451144,451145,451146,451147,451153,451154,451155,451156,451175,451176,451177,451178,451179,451180,451300,451301,451302,451303,451304,451305,451306,451307,451308,451309,451310,451311,451312,451313,451314,451315,451316,451317,451318,451319,451320,451321,451322,451323,451324,451325,451326,451327,451328,451329,451330,451331,451332,451333,451334,451335,451336,451337,451338,451339,451340,451341,451342,451343,451344,451345,452218,452219,452261,452262,452326,452327,456447,456448,458269,458270,458271,458272,458273,458274,458275,458276,458277,458278,458279,458280,458281,458282,458283,458284,458285,458286,458287,458288,458289,458290,458291,458292,458293,458294,458295,458296,458297,458298,458299,458300,458301,458302,458303,458304,458305,458306,458307,458308,458309,458310,458311,458312,458313,458314,458315,458316,458317,458318,458319,458320,458321,458322,458323,458324,458325,458326,458327,458328,458563,458564,458572,458573,458577,458578,458579,458580,458581,458582,458584,458585,458587,458588,458589,458590,458591,458592,458593,458594,458595,458596,458602,458603,458643,458644,458650,458651,458691,458692,458698,458699,458700,458701,458702,458703,458704,458705,458706,458707,458708,458709,458710,458711,458712,458713,458714,458715,458718,458719,458720,458721,458724,458725,458728,458729,458732,458733,458736,458737,458740,458741,458742,458743,458744,458745,458746,458747,458748,458749,458750,458752,458753,459259,459494,459495,459730,459731,459966,459967,461570,461571,464401,464402,465585,465586,465630,465631,465709,465710,465819,465820,466115,466116,466826,466827,466828,466829,466836,466837,466847,466848,466850,466851,466852,466853,466876,466877,466878,466879,466880,466881,466885,466886,467031,467032,467312,467313,467314,467315,467732,467733,467742,467743,467755,467756,467768,467769,467785,467786,467889,467890,467895,467896,467900,467901,467906,467907,467953,467954,468159,468160,468164,468165,468307,468308,468327,468328,468343,468344,468425,468426,468473,468474,468482,468483,468490,468491,471142,471143,471147,471148,471164,471165,471181,471182,471197,471198,471205,471206,471256,471257,471269,471270,471285,471286,471315,471316,471332,471333,471385,471386,471418,471419,471452,471453,471466,471467,471473,471474,471479,471480,471586,471587,471593,471594,471774,471775,471779,471780,471786,471787,471791,471792,471800,471801,471805,471806,471814,471815,471821,471822,471836,471837,471984,471985,472031,472032,472036,472037,472041,472042,472093,472094,472118,472119,472165,472166,472202,472203,472207,472208,472248,472249,472257,472258,472266,472267,472276,472277,472282,472283,472294,472295,472302,472303,472310,472311,472315,472316,472318,472319,472323,472324,472375,472376,472394,472395,472418,472419,472445,472446,472453,472454,472462,472463,472471,472472,472477,472478,472483,472484,472488,472489,472503,472504,472620,472621,472699,472700,472757,472758,472806,472807,472826,472827,472841,472842,472856,472857,472870,472871,472875,472876,472881,472882,473066,473067,473123,473124,473175,473176,473195,473196,473276,473277,473347,473348,473353,473354,473361,473362,473372,473373,473380,473381,473420,473421,473471,473472,473504,473505,473535,473536,473571,473572,473578,473579,473583,473584,473589,473590,473621,473622,475205,475206,475261,475262,477354,477355,477368,477369,477550,477551,480822,480823,480832,480833,481114,481115,481164,481165,481237,481238,481242,481243,481262,481263,481268,481269,481283,481284,481288,481289,481297,481298,481418,481419,481549,481550,481557,481558,481565,481566,481573,481574,481611,481612,481620,481621,481628,481629,481637,481638,481643,481644,481648,481649,481654,481655,481669,481670,481675,481676,481688,481689,481697,481698,481704,481705,481939,481940,481970,481971,482011,482012,482034,482035,482048,482049,482077,482078,482202,482203,482217,482218,482235,482236,482396,482397,482406,482407,482414,482415,482441,482442,482444,482445,482550,482551,482652,482653,482767,482768,482830,482831,482875,482876,482936,482937,482949,482950,482974,482975,483002,483003,483062,483063,483089,483090,483138,483139,483146,483147,483152,483153,483162,483163,483170,483171,483178,483179,483185,483186,483190,483191,483195,483196,483207,483208,483212,483213,483219,483220,483226,483227,483237,483238,483254,483255,483260,483261,483266,483267,483282,483283,484000,484001,484039,484040,484089,484090,484095,484096,484103,484104,484109,484110,484527,484528,484534,484535,484543,484544,484603,484604,484806,484807,484815,484816,484835,484836,484850,484851,484877,484878,484883,484884,484900,484901,484955,484956,484965,484966,484968,484969,484974,484975,484990,484991,484996,484997,485017,485018,485022,485023,485027,485028,485033,485034,485042,485043,487990,487991,487997,487998,488022,488023,488031,488032,488055,488056,488085,488086,488117,488118,488130,488131,488146,488147,488151,488152,488157,488158,488184,488185,488193,488194,488198,488199,488210,488211,488221,488222,488263,488264,488297,488298,488420,488421,488757,488758,488832,488833,488838,488839,488846,488847,488969,488970,488976,488977,488991,488992,489000,489001,489005,489006,489012,489013,489022,489023,489042,489043,489415,489416,489432,489433,489757,489758,489855,489856,490047,490048,490060,490061,490067,490068,490087,490088,490274,490275,490318,490319,490326,490327,490412,490413,490480,490481,490567,490568,490573,490574,490580,490581,490585,490586,490592,490593,490717,490718,490743,490744,490754,490755,490759,490760,490775,490776,490781,490782,490783,490784,490795,490796,490807,490808,491168,491169,491170,491171,491273,491274,491430,491431,491432,491433,491434,491435,491436,491437,491438,491439,491441,491442,491444,491445,491446,491447,491448,491449,491494,491495,491496,491497,491500,491501,491502,491503,491504,491505,491506,491507,491508,491509,491510,491511,491512,491513,491514,491515,491516,491517,491518,491520,491521,492027,492094,492095,492241,492242,492263,492264,492375,492376,492890,492891,493875,493876,494327,494328,494329,494330,494369,494370,494409,494410,494879,494880,495256,495257,495297,495298,495299,495300,495305,495306,495513,524288,524289,557056,557057,589824,589825,622592,622593,623099,623100,633180,633182,633183,633184,633185,633186,633187,633188,633189,634114,634115,634116,634117,634118,634119,634349,634350,634351,634367,634368,634379,634380,634381,634382,634384,634385,634391,634392,634394,634395,634403,634404,634738,634739,634740,634741,634997,634998,635226,635227,635228,635229,635230,635231,635232,635233,635234,637406,637407,637408,637409,637411,637412,637413,637414,637415,637416,637430,637431,637432,637433,637438,637439,637440,637441,637442,637443,637450,637451,637452,637453,637469,637470,637471,637472,637473,637474,637490,637491,637492,637493,637581,637582,637583,637584,637585,637586,637616,637617,637618,638276,638277,638278,638280,638281,638282,638283,638360,638361,638362,638363,638364,638365,638390,638391,638392,638393,638403,638404,638405,638406,638407,638408,638631,638632,638633,638634,639564,639565,639566,639567,639629,639630,639631,639632,639633,639634,639983,639984,639985,639986,639987,639988,641347,641348,641349,641350,641355,641356,641357,641358,641359,641360,642370,642371,642372,642373,642553,642554,642555,642556,642557,642558,643584,643585,643586,643587,643786,643787,643788,643789,643790,643791,644838,644839,644840,644841,644858,644859,644860,644861,644862,644863,645112,645113,645114,645115,645116,645117,645118,645119,645120,645121,645122,645123,645124,645125,645126,645127,650210,650217,655360") == "5c411dfc69334c791347f65e4fda7053364674dc" || block_image_verify("/dev/block/platform/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat")) then
ui_print("Verified system image...");
else
check_first_block("/dev/block/platform/bootdevice/by-name/system");
ifelse (block_image_recover("/dev/block/platform/bootdevice/by-name/system", "5706,1,160,161,339,668,689,690,1162,1163,6130,6131,6132,6133,14798,14799,14800,14801,14803,14804,14805,14806,14807,14808,14815,14816,14817,14818,20232,20233,20234,20235,20236,20237,21798,21799,21800,21801,21805,21806,21807,21808,21809,21810,21818,21819,21820,21821,22258,22259,22260,22261,22285,22286,22287,22288,22289,22290,22315,22316,22317,22318,25026,25027,25028,25029,25030,25031,25032,25033,25034,25035,25690,25691,25692,25693,25902,25903,25904,25905,25906,25907,26614,26615,26616,26617,26618,26619,26620,26621,27384,27385,31716,31717,32504,32505,32506,32507,32508,32509,32510,32511,32512,32513,32652,32653,32654,32655,32656,32657,32658,32659,32660,32661,32662,32663,32695,32696,32728,32729,32761,32762,32763,32764,32765,32766,32767,32768,32770,32929,32930,33436,42812,42813,43037,43038,44965,44966,45031,45032,45551,45552,47654,47655,47660,47661,47691,47692,47693,47694,48097,48098,55309,55310,55311,55312,55313,55314,55315,55316,55317,55318,55319,55320,55321,55322,55323,55324,55325,55326,55327,55328,55329,55330,55331,55332,55333,55334,55335,55336,55384,55385,55491,55492,55500,55501,55518,55519,55527,55528,55536,55537,55556,55557,55567,55568,55575,55576,55799,55800,55852,55853,55869,55870,55879,55880,55899,55900,55914,55915,55924,55925,55935,55936,55980,55981,55993,55994,56076,56077,56109,56110,56120,56121,63235,63236,63248,63249,63259,63260,63272,63273,63283,63284,63374,63375,64256,64257,64267,64268,64269,64270,64271,64272,64273,64274,64275,64276,64277,64278,64279,64280,64281,64282,64283,64284,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64367,64368,64369,64370,64371,64372,64373,64374,64399,64400,64401,64402,64410,64411,64416,64417,64426,64427,64433,64434,64459,64460,64464,64465,65021,65022,65028,65029,65033,65034,65038,65039,65043,65044,65048,65049,65214,65215,65220,65221,65276,65277,65432,65433,65442,65443,65460,65461,65478,65479,65490,65491,65496,65497,65502,65503,65514,65515,65521,65522,65528,65529,65533,65536,65537,98304,98306,98465,98466,110415,110417,112080,112116,112139,112140,112201,112202,112248,112249,112253,112254,112265,112266,112284,112285,112292,112293,112315,112317,112334,112336,112344,112345,112456,112458,112459,112460,112511,112512,112747,112748,112828,112829,112938,112939,112977,112978,112986,112987,112993,112998,113005,113007,113011,113013,113015,113016,113019,113021,113085,113086,113088,113089,113102,113103,113126,114569,114570,114571,114572,114574,115575,115600,115628,115630,115639,115640,115642,115643,115675,115676,115713,115714,115760,115761,115765,115766,115770,115775,115782,115783,115791,115792,115795,115796,115817,115819,115830,115831,115833,115835,115836,115837,115840,115841,115864,115865,115922,115923,115978,115979,115983,115984,115990,115993,115999,116000,116104,116105,116111,116113,116183,117235,117236,117237,117238,117957,117958,119670,119671,123856,123857,123885,123886,123925,123926,123974,123975,124023,124024,124043,124044,124063,124064,124091,124092,124119,124120,124155,124156,124679,125765,126785,126786,127092,127093,128628,128629,129287,129288,129289,129290,129291,129292,130671,130672,130673,130674,130675,130676,130678,130679,130680,130681,130682,130683,130684,130685,130686,130687,130691,130692,130693,130694,130695,130696,130711,130712,130713,130714,130716,130717,130718,130719,130720,130721,130732,130733,130734,130735,130767,130768,130769,130770,130771,130772,130879,130880,130881,130882,130889,130890,130891,130892,130893,130894,130899,130900,130901,130902,130903,130904,130920,130921,130922,130923,130924,130925,130926,130927,130928,130929,130930,130931,130933,130934,130939,130940,130941,130942,130948,130949,130988,130989,130990,130991,130992,130993,131003,131004,131010,131011,131018,131019,131030,131031,131036,131037,131038,131039,131054,131055,131064,131065,131066,131067,131068,131069,131070,131072,131073,131579,131695,163840,163842,164001,164002,164508,164510,172667,172835,172838,172842,173034,173035,173483,173484,173609,173610,173611,173612,173621,173622,173665,173666,175042,175043,175044,175045,175049,175050,175053,175054,175063,175064,175121,175123,175124,175125,175142,175143,175193,175194,175576,175578,175649,175650,175652,175653,175703,175705,175733,175735,175753,175754,175806,175807,175841,175844,175878,175879,176046,176047,176070,176071,176106,176107,176111,176112,176240,176241,176246,176247,176357,176359,176425,176430,176431,176432,176493,176495,176537,176538,176553,176554,176558,176559,176602,176604,176624,176625,176626,176627,176709,176710,176893,176894,176898,176899,176945,176946,176947,176948,176949,176950,177022,177024,177077,177078,177086,177087,177109,177111,177174,177176,177200,177201,177202,177203,177205,177206,177223,177224,177230,177232,177343,177344,177374,177375,177527,177528,177536,177537,177674,177675,177677,177678,177723,177724,177726,177729,177749,177750,177758,177762,177769,177770,177843,177844,177847,177848,177857,177858,177981,177982,178002,178003,178005,178006,178007,178008,178009,178010,178028,178029,178033,178034,178036,178037,178040,178041,178044,178045,178094,178096,178102,178105,178182,178183,178210,178212,178225,178226,178232,178233,178294,178296,178297,178299,178304,178305,178314,178315,178318,178320,178326,178328,178329,178331,178332,178333,178334,178336,178338,178340,178344,178345,178347,178348,178350,178352,178380,178381,178384,178385,178390,178393,178395,178396,178411,178413,178414,178416,178418,178420,178507,178508,178531,178533,178537,178538,178543,178544,178653,178654,178708,178709,178782,178783,178881,178882,178889,178890,178892,178893,178935,178936,178943,178944,178978,178979,179118,179119,179124,179125,179126,179127,179138,179139,179176,190536,190537,190538,190539,190540,190541,190557,190558,190559,190560,190566,190567,190568,190569,190570,190571,190581,190582,190583,190584,190586,190587,190588,190589,190590,190591,190592,190593,190594,190595,190603,190604,190605,190606,191117,191118,191119,191120,191121,191122,191129,191130,191136,191137,191138,191139,191142,191143,191144,191145,191146,191147,191184,191185,191186,191187,191303,191304,191305,191306,191307,191308,191309,191310,191311,191312,191679,191680,191681,191682,191756,191757,191758,191759,191760,191761,192164,192165,192166,192167,192412,192413,192414,192415,192780,192781,192782,192783,192784,192785,194125,194126,194127,194128,194530,194531,194532,194533,194534,194535,196009,196010,196011,196012,196013,196014,196015,196016,196060,196061,196069,196070,196083,196084,196085,196086,196087,196088,196089,196090,196094,196095,196106,196107,196116,196117,196178,196179,196180,196181,196182,196183,196184,196185,196210,196211,196236,196237,196258,196259,196328,196329,196363,196364,196398,196399,196433,196434,196469,196470,196501,196502,196535,196536,196569,196570,196595,196596,196597,196598,196599,196600,196601,196602,196603,196604,196605,196606,196607,196608,196609,197115,197154,229376,229378,229537,229538,233890,233892,235077,235110,235111,235112,235115,235116,235151,235152,235185,235186,235309,235310,235318,235319,235447,235448,235505,235506,235730,235731,235732,235735,235749,235750,235769,235770,235771,235773,235779,237192,237193,237194,237195,239945,239946,241034,241035,245262,245263,255268,255269,256760,256761,256767,256768,256772,256773,256778,256779,256783,256784,256796,256797,256802,256803,256808,256809,256898,256899,256924,256925,256958,256959,256978,256979,257014,257015,257035,257036,257077,257078,257085,257086,257126,257127,257142,257143,257155,257156,257168,257169,257177,257178,257183,257184,257185,257186,257294,257295,257305,257306,257315,257316,257317,257318,257319,257320,257321,257322,257349,257350,257405,257406,257468,257469,257530,257531,257552,257553,257682,257683,257837,257838,257844,257845,257854,257855,257872,257873,257881,257882,257890,257891,257896,257897,257905,257906,258025,258026,258027,258028,258033,258034,258041,258042,258047,258048,258053,258054,258072,258073,258088,258089,258090,258091,258098,258099,258104,258105,258163,258164,258187,258188,258226,258227,258229,258230,258248,258249,258260,258261,258272,258273,258274,258275,258320,258321,258366,258367,258376,258377,258421,258422,258426,258427,258428,258429,258442,258443,258448,258449,258453,258454,258459,258460,258487,258488,258496,258497,258503,258504,258508,258509,258515,258516,258522,258523,258524,258525,258556,258557,258603,258604,258605,258606,258645,258646,258651,258652,258653,258654,258655,258656,258657,258658,258662,258663,258668,258669,258670,258671,258676,258677,258681,258682,258704,258705,258706,258707,258729,258730,258800,258801,258813,258814,258820,258821,258823,258824,258840,258841,258846,258847,258962,258963,258964,258965,258987,258988,259299,259300,259303,259304,259305,259306,259331,259332,259333,259334,259387,259388,259389,259390,259483,259484,259486,259487,259491,259492,259495,259496,259497,259498,259499,259500,259501,259502,259504,259505,259506,259507,259508,259509,259510,259511,259512,259513,259596,259597,259598,259599,259604,259605,259606,259607,259608,259609,259614,259615,259616,259617,259618,259619,259621,259622,259623,259624,259625,259626,259627,259628,259629,259630,259631,259632,259633,259634,259635,259636,259637,259638,259639,259640,259641,259642,259643,259644,259645,259646,259647,259648,259649,259650,259651,259652,259653,259654,259655,259656,259657,259658,259659,259660,259661,259662,259663,259664,259665,259666,259667,259668,259669,259670,259671,259672,259673,259674,259675,259676,259677,259678,259679,259680,259681,259682,259684,259685,259687,259688,259689,259690,259693,259694,259697,259698,259699,259700,259701,259702,259703,259704,259705,259706,259707,259708,259709,259710,259711,259712,259713,259714,259715,259716,259717,259718,259719,259720,259721,259722,259723,259724,259725,259726,259727,259728,259729,259730,259731,259732,259733,259734,259735,259736,259737,259738,259739,259740,259741,259742,259743,259744,259745,259746,259747,259748,259749,259750,259751,259752,259753,259754,259755,259756,259757,259758,259759,259760,259761,259762,259764,259765,259768,259769,259770,259771,259775,259776,259777,259778,259780,259781,259819,259820,259821,259822,259823,259824,260103,260104,260105,260106,260107,260108,260109,260110,260111,260112,260113,260114,260116,260117,260119,260120,260122,260123,260125,260126,260127,260128,260130,260131,260133,260134,260136,260137,260138,260139,260141,260142,260144,260145,260147,260148,260150,260151,260153,260154,260156,260157,260159,260160,260162,260163,260165,260166,260168,260169,260171,260172,260174,260175,260178,260179,260181,260182,260184,260185,260187,260188,260190,260191,260193,260194,260195,260196,260197,260198,260200,260201,260203,260204,260207,260208,260211,260212,260214,260215,260217,260218,260220,260221,260223,260224,260226,260227,260229,260230,260232,260233,260235,260236,260238,260239,260242,260243,260245,260246,260248,260249,260251,260252,260254,260255,260257,260258,260260,260261,260263,260264,260266,260267,260269,260270,260272,260273,260275,260276,260278,260279,260280,260281,260283,260284,260286,260287,260289,260290,260292,260293,260295,260296,260297,260298,260300,260301,260303,260304,260306,260307,260309,260310,260312,260313,260315,260316,260318,260319,260320,260321,260323,260324,260326,260327,260329,260330,260332,260333,260335,260336,260338,260339,260341,260342,260344,260345,260347,260348,260350,260351,260353,260354,260356,260357,260359,260360,260362,260363,260365,260366,260367,260368,260370,260371,260373,260374,260376,260377,260379,260380,260381,260382,260384,260385,260387,260388,260390,260391,260393,260394,260396,260397,260399,260400,260402,260403,260405,260406,260408,260409,260412,260413,260415,260416,260418,260419,260421,260422,260424,260425,260427,260428,260429,260430,260432,260433,260435,260436,260438,260439,260441,260442,260444,260445,260446,260447,260449,260450,260452,260453,260455,260456,260458,260459,260461,260462,260463,260464,260466,260467,260469,260470,260472,260473,260475,260476,260478,260479,260480,260481,260483,260484,260486,260487,260489,260490,260492,260493,260495,260496,260497,260498,260500,260501,260503,260504,260506,260507,260509,260510,260511,260512,260514,260515,260517,260518,260520,260521,260523,260524,260526,260527,260529,260530,260532,260533,260535,260536,260538,260539,260541,260542,260543,260544,260546,260547,260549,260550,260552,260553,260555,260556,260558,260559,260561,260562,260564,260565,260567,260568,260570,260571,260572,260573,260575,260576,260577,260578,260579,260580,260581,260582,260596,260597,260599,260600,260601,260602,260603,260604,260605,260606,260607,260608,260609,260610,260611,260612,260638,260639,260640,260641,260642,260643,260644,260645,260646,260647,260648,260649,260650,260651,260652,260653,260657,260658,260660,260661,260663,260664,260674,260675,260690,260691,260708,260709,260738,260739,260768,260769,260796,260797,260826,260827,260856,260857,260886,260887,260916,260917,260921,260922,260926,260927,260935,260936,260969,260970,260974,260975,261000,261001,261026,261027,261053,261054,261081,261082,261084,261085,261087,261088,261100,261101,261107,261108,261114,261115,261124,261125,261131,261132,261165,261166,261200,261201,261231,261232,261263,261264,261300,261301,261336,261337,261342,261343,261348,261349,261353,261354,261383,261384,261414,261415,261443,261444,261473,261474,261482,261483,261491,261492,261500,261501,261509,261510,261512,261513,261518,261519,261524,261525,261535,261536,261556,261557,261578,261579,261599,261600,261620,261621,261623,261624,261633,261634,261643,261644,261653,261654,261664,261665,261673,261674,261682,261683,261691,261692,261700,261701,261726,261727,261730,261731,261733,261734,261748,261749,261763,261764,261778,261779,261793,261794,261798,261799,261803,261804,261832,261833,261860,261861,261888,261889,261915,261916,261942,261943,261948,261949,261953,261954,261956,261957,261978,261979,262000,262001,262021,262022,262042,262043,262045,262046,262051,262052,262090,262091,262131,262132,262135,262136,262140,262141,262142,262144,262145,262651,262709,262710,262771,262772,262797,262798,262819,262820,263100,263101,263146,263147,263199,263200,263970,263971,263999,264000,265441,265442,265450,265451,265459,265460,265551,265552,265576,265577,265727,265728,265749,265750,265794,265795,265801,265802,265810,265811,265826,265827,265838,265839,265951,265952,266007,266008,266014,266015,266105,266106,266301,266302,266331,266332,266473,266474,266665,266666,266704,266705,266728,266729,266791,266792,266802,266803,266982,266983,266989,266990,267195,267196,267283,267284,267376,267377,267677,267678,267765,267766,267776,267777,267954,267955,268009,268010,268035,268036,268041,268042,268046,268047,268054,268055,268059,268060,268198,268199,268212,268213,268241,268242,268251,268252,268258,268259,268318,268319,268361,268362,268385,268386,268397,268398,268403,268404,268412,268413,268419,268420,268429,268430,268436,268437,268483,268484,268503,268504,268511,268512,268547,268548,268700,268701,268706,268707,268785,268786,268897,268898,268905,268906,268913,268914,269029,269030,269034,269035,269043,269044,269121,269122,269127,269128,269268,269269,269660,269661,269937,269938,269946,269947,269963,269964,269999,270000,270071,270072,270086,270087,270091,270092,270106,270107,270307,270308,270350,270351,270379,270380,270612,270613,270618,270619,270623,270624,270684,270685,270719,270720,270733,270734,270739,270740,270763,270764,270780,270781,270807,270808,270813,270814,270826,270827,270851,270852,270885,270886,270895,270896,271130,271131,271215,271216,271223,271224,271240,271241,271248,271249,271257,271258,271277,271278,271453,271454,271459,271460,271471,271472,271476,271477,271502,271503,271518,271519,271545,271546,271570,271571,271576,271577,271586,271587,271596,271597,271607,271608,271613,271614,271625,271626,271633,271634,271646,271647,271651,271652,271672,271673,271718,271719,271732,271733,271789,271790,273097,273098,273102,273103,273124,273125,273134,273135,274302,274303,274313,274314,274350,274351,274389,274390,274394,274395,274402,274403,274408,274409,274414,274415,274586,274587,274615,274616,274631,274632,274636,274637,274653,274654,274665,274666,274678,274679,274700,274701,274706,274707,274721,274722,274755,274756,274774,274775,274800,274801,274806,274807,274811,274812,275756,275757,277026,277027,277036,277037,277043,277044,277071,277072,277077,277078,277166,277167,277178,277179,277195,277196,277213,277214,277222,277223,277230,277231,277355,277356,277400,277401,277963,277964,277980,277981,277990,277991,277995,277996,278034,278035,278039,278040,278082,278083,278135,278136,278240,278241,278354,278355,278385,278386,278406,278407,278442,278443,278529,278530,278615,278616,278657,278658,278665,278666,278675,278676,278797,278798,278819,278820,278852,278853,278883,278884,278925,278926,278935,278936,278943,278944,278952,278953,279053,279054,279177,279178,279263,279264,279270,279271,279277,279278,279285,279286,279309,279310,279324,279325,279330,279331,279336,279337,279341,279342,279346,279347,279373,279374,279453,279454,279461,279462,279564,279565,279569,279570,279576,279577,279581,279582,279693,279694,279704,279705,279713,279714,279721,279722,279728,279729,279741,279742,279772,279773,279795,279796,279802,279803,279829,279830,279840,279841,280020,280021,280052,280053,280076,280077,280278,280279,280284,280285,280290,280291,280324,280325,280373,280374,280380,280381,280569,280570,280594,280595,280596,280597,280598,280599,280606,280607,280625,280626,280631,280632,280636,280637,280642,280643,280653,280654,280659,280660,280661,280662,280663,280664,280665,280666,280670,280671,280673,280674,280680,280681,280684,280685,280692,280693,280696,280697,280726,280727,280740,280741,280765,280766,280792,280793,280837,280838,280849,280850,280857,280858,280886,280887,280913,280914,280926,280927,280928,280929,280932,280933,280935,280936,280938,280939,280942,280943,280946,280947,280954,280955,280957,280958,280962,280963,280972,280973,280977,280978,280983,280984,280988,280989,280994,280995,280998,280999,281003,281004,281008,281009,281016,281017,281022,281023,281026,281027,281032,281033,281037,281038,281041,281042,281047,281048,281052,281053,281057,281058,281061,281062,281068,281069,281072,281073,281078,281079,281085,281086,281089,281090,281100,281101,281103,281104,281109,281110,281114,281115,281130,281131,281134,281135,281139,281140,281145,281146,281151,281152,281157,281158,281163,281164,281168,281169,281171,281172,281178,281179,281185,281186,281192,281193,281197,281198,281205,281206,281212,281213,281216,281217,281223,281224,281230,281231,281238,281239,281242,281243,281253,281254,281257,281258,281269,281270,281273,281274,281278,281279,281284,281285,281290,281291,281297,281298,281303,281304,281311,281312,281316,281317,281321,281322,281327,281328,281333,281334,281341,281342,281349,281350,281353,281354,281362,281363,281364,281365,281372,281373,281379,281380,281436,281437,281459,281460,281467,281468,281477,281478,281485,281486,281494,281495,281507,281508,281519,281520,281530,281531,281543,281544,281552,281553,281561,281562,281572,281573,281583,281584,281592,281593,281597,281598,281605,281606,281616,281617,281627,281628,281638,281639,281690,281691,281699,281700,281708,281709,281724,281725,281729,281730,281743,281744,281752,281753,281796,281797,281810,281811,281827,281828,281837,281838,281846,281847,281875,281876,281888,281889,281899,281900,281913,281914,281924,281925,281936,281937,281951,281952,281963,281964,281981,281982,281988,281989,281993,281994,282035,282036,282046,282047,282056,282057,282068,282069,282079,282080,282087,282088,282097,282098,282109,282110,282121,282122,282126,282127,282136,282137,282146,282147,282157,282158,282165,282166,282174,282175,282189,282190,282218,282219,282229,282230,282252,282253,282267,282268,282273,282274,282318,282319,282332,282333,282348,282349,282364,282365,282371,282372,282385,282386,282397,282398,282410,282411,282419,282420,282431,282432,282442,282443,282470,282471,282549,282550,282561,282562,282572,282573,282584,282585,282593,282594,282616,282617,282624,282625,282635,282636,282645,282646,282664,282665,282708,282709,282718,282719,282731,282732,282739,282740,282776,282777,282823,282824,282832,282833,282838,282839,282847,282848,282868,282869,282870,282871,282873,282874,282876,282877,282879,282880,282883,282884,282886,282887,282889,282890,282892,282893,282896,282897,282901,282902,282904,282905,282908,282909,282911,282912,282914,282915,282917,282918,282921,282922,282924,282925,282928,282929,282932,282933,282935,282936,282947,282948,282994,282995,282996,282997,283000,283001,283005,283006,283010,283011,283012,283013,283014,283015,283072,283073,283074,283075,283076,283077,283087,283088,283089,283090,283095,283096,283097,283098,283099,283100,283319,283320,283321,283322,283356,283357,283358,283359,283360,283361,283716,283717,283718,283719,283762,283763,283764,283765,283766,283767,283774,283775,283776,283777,284143,284144,284145,284146,284147,284148,286475,286476,286477,286478,286536,286537,286538,286539,286540,286541,287264,287265,287266,287267,287269,287270,287271,287272,287277,287278,287279,287280,287281,287282,287283,287284,287285,287286,287305,287306,287307,287308,289476,289477,289478,289479,289480,289481,292170,292171,292172,292173,292284,292285,292286,292287,292288,292289,292597,292598,292599,292600,293389,293390,293391,293392,293393,293394,293985,293986,293987,293988,293994,293995,293996,293997,293998,293999,294038,294039,294040,294041,294045,294046,294047,294048,294049,294050,294061,294062,294063,294064,294065,294066,294072,294073,294074,294075,294076,294077,294087,294088,294089,294090,294093,294094,294095,294096,294097,294098,294108,294109,294110,294111,294233,294234,294235,294236,294237,294238,294511,294512,294513,294514,294515,294516,294517,294518,294519,294520,294521,294522,294523,294524,294525,294526,294782,294783,294784,294785,294786,294787,294788,294789,294790,294791,294792,294793,294794,294795,294849,294850,294851,294852,294853,294854,294860,294861,294862,294863,294864,294865,294866,294867,294868,294869,294904,294905,294906,294907,294908,294909,294910,294912,294914,295073,295074,319207,319209,319210,319213,319214,319226,319227,319231,319232,319241,319242,319251,319252,319261,319262,319271,319272,319299,319300,319328,319329,319357,319358,319386,319387,319391,319392,319396,319397,319402,319403,319409,319410,319415,319416,319422,319423,319515,319516,319615,319616,319620,319621,319637,319638,319669,319670,319731,319732,319797,319798,319859,319860,319921,319922,320024,320025,320100,320101,320182,320183,320258,320259,320340,320341,320422,320423,320499,320500,320582,320583,320658,320659,320740,320741,320816,320817,320892,320893,320973,320974,321048,321049,321130,321131,321212,321213,321288,321289,321371,321372,321447,321448,321449,321450,321451,321452,321453,321454,321459,321460,321461,321462,321463,321464,321466,321467,321476,321477,321502,321503,321870,321871,321928,321929,322348,322349,322392,322393,322570,322571,322574,322575,322590,322591,322876,322877,324638,324639,324695,324696,325034,325035,326625,326626,326646,326647,326831,326832,326837,326838,326878,326879,326885,326886,326951,326952,326954,326955,326963,326964,327008,327009,327234,327235,327269,327270,327538,327539,327549,327550,327643,327644,327651,327652,327653,327654,327655,327656,327657,327658,327659,327660,327661,327662,327663,327664,327665,327666,327667,327668,327669,327670,327671,327672,327673,327674,327675,327676,327677,327680,327681,328187,338012,338013,340068,340069,341647,341648,342945,342946,344012,344013,344723,344724,345722,345723,346405,346406,346600,346601,346758,346759,347047,347048,347072,347073,347074,347075,347076,347077,347078,347079,347080,347081,347136,347137,347138,347139,347141,347142,347143,347144,347145,347146,347169,347170,347171,347172,350524,350525,350526,350527,350528,350529,350530,350531,350533,350534,350535,350536,350537,350538,350551,350552,350553,350554,356478,356479,357968,357969,358820,358821,359686,359687,360266,360267,360272,360273,360274,360275,360276,360277,360278,360279,360280,360281,360282,360283,360284,360285,360286,360287,360288,360289,360290,360291,360320,360321,360322,360323,360324,360325,360326,360327,360328,360329,360430,360431,360432,360433,360434,360435,360436,360437,360438,360439,360440,360441,360442,360443,360444,360445,360446,360448,360449,360955,371054,371055,386449,386450,386451,386452,386453,386454,386492,386493,386500,386501,386703,386704,387569,387570,387746,387747,388326,388327,388332,388333,388334,388335,388365,388366,388367,388368,388369,388370,388497,388498,388499,388500,388502,388503,388504,388505,388506,388507,388517,388518,388519,388520,388562,388563,388564,388565,388566,388567,388656,388657,388658,388659,388661,388662,388663,388664,388665,388666,388709,388710,388711,388712,389531,389532,389533,389534,389535,389536,390451,390452,390453,390454,391773,391774,391775,391776,391777,391778,391805,391806,391814,391815,391816,391817,391818,391819,391820,391821,392370,392371,392372,392373,392374,392375,392377,392378,392379,392380,392381,392382,392383,392384,392385,392386,392387,392388,392389,392390,392391,392392,392393,392394,392395,392396,392397,392398,392399,392400,392401,392402,392403,392404,392405,392406,392444,392445,392452,392453,392655,392656,392832,392833,393165,393166,393167,393168,393189,393190,393191,393192,393193,393194,393204,393205,393206,393207,393214,393216,393217,393723,396737,396738,399040,399041,402873,402874,404528,404529,408545,408546,418657,418658,421396,421397,423102,423103,424524,424525,425316,425317,425361,425362,425518,425519,425627,425628,425771,425772,425873,425874,425937,425938,425947,425948,425949,425950,425952,425953,425954,425955,425982,425984,425985,426491,427244,427245,427435,427436,427595,427596,427744,427745,427949,427950,428044,428045,428199,428200,428262,428263,428264,428265,428291,428292,428293,428294,428321,428322,428323,428324,428336,428337,428338,428339,428347,428348,428349,428350,428354,428355,428356,428357,428363,428364,428365,428366,428367,428368,428369,428370,428372,428373,428374,428375,428384,428385,428386,428387,428388,428389,428390,428391,428392,428393,428394,428395,428396,428397,428398,428399,428477,428478,428479,428480,428481,428482,428483,428484,428485,428486,428487,428488,428489,428490,428491,428492,428494,428495,428496,428497,428498,428499,428500,428501,428537,428538,428539,428540,428576,428577,428578,428579,428580,428581,428582,428583,428584,428585,428586,428587,428588,428589,428591,428592,428594,428595,428596,428597,428598,428599,428600,428601,428602,428603,428604,428605,428606,428607,428608,428609,428610,428611,428612,428613,428614,428615,434200,434201,434202,434203,434204,434205,434206,434207,434208,434209,434210,434211,434215,434216,434219,434220,434224,434225,434229,434230,434234,434235,434236,434237,434238,434239,434240,434241,434244,434245,434246,434247,434248,434249,434250,434251,434252,434253,434254,434255,434256,434257,434258,434259,434260,434261,434262,434263,434264,434265,434266,434267,434268,434269,434270,434271,434272,434273,434274,434275,434276,434277,434278,434279,434280,434281,434282,434283,434284,434285,434286,434287,434288,434289,434290,434291,434292,434293,434294,434295,434296,434297,434298,434299,434300,434301,434302,434303,434304,434305,434306,434307,434308,434309,434310,434311,434312,434313,434314,434315,434319,434320,434325,434326,434327,434328,434445,434446,434447,434448,434449,434450,434451,434452,434454,434455,434456,434457,434458,434459,434527,434528,434529,434530,434543,434544,434545,434546,434547,434548,434563,434564,434565,434566,434598,434599,434600,434601,434602,434603,434614,434615,434616,434617,434756,434757,434758,434759,434760,434761,435416,435417,435418,435419,435441,435442,435443,435444,435445,435446,435677,435678,435679,435680,438434,438435,438436,438437,438438,438439,440453,440454,440455,440456,440465,440466,440467,440468,440469,440470,440491,440492,440493,440494,440516,440517,440518,440519,440520,440521,441811,441812,441813,441814,441995,441996,441997,441998,441999,442000,444824,444825,444826,444827,444832,444833,444834,444835,444836,444837,444897,444898,444899,444900,444931,444932,444933,444934,444935,444936,445136,445137,445138,445139,445146,445147,445148,445149,445150,445151,445160,445161,445162,445163,445170,445171,445172,445173,445174,445175,445232,445233,445234,445235,445301,445302,445303,445304,445305,445306,445670,445671,445672,445673,445684,445685,445686,445687,445688,445689,445714,445715,445716,445717,445782,445783,445784,445785,445786,445787,445974,445975,445976,445977,445988,445989,445990,445991,445992,445993,446033,446034,446035,446036,446047,446048,446049,446050,446051,446052,446062,446063,446064,446065,446080,446081,446082,446083,446091,446092,446093,446094,446102,446103,446104,446105,446117,446118,446119,446120,446121,446122,446243,446244,446245,446246,446260,446261,446265,446266,446273,446274,446279,446280,446287,446288,446299,446300,446313,446314,446325,446326,446338,446339,446349,446350,446360,446361,446380,446381,446388,446389,446394,446395,446434,446435,446454,446455,446460,446461,446497,446498,446525,446526,446532,446533,446566,446567,446573,446574,446604,446605,446621,446622,446682,446683,446743,446744,446804,446805,446844,446845,446935,446936,446940,446941,446946,446947,446953,446954,446962,446963,446982,446983,446990,446991,447000,447001,447006,447007,447017,447018,447028,447029,447039,447040,447045,447046,447126,447127,447171,447172,447206,447207,447216,447217,447226,447227,447336,447337,447376,447377,447422,447423,447440,447441,447446,447447,447452,447453,447810,447811,447817,447818,447826,447827,447842,447843,447852,447853,447859,447860,447866,447867,447874,447875,447884,447885,447895,447896,447900,447901,447906,447907,447912,447913,447918,447919,447926,447927,447944,447945,447950,447951,448975,448976,448980,448981,448990,448991,449024,449025,449029,449030,449901,449902,449922,449923,449932,449933,449940,449941,449946,449947,449951,449952,449956,449957,449966,449967,449971,449972,449977,449978,449984,449985,449989,449990,450029,450030,450034,450035,450041,450042,450047,450048,450056,450057,450062,450063,450068,450069,450070,450071,450072,450073,450081,450082,450083,450084,450085,450086,450087,450088,450090,450091,450093,450094,450098,450099,450100,450101,450102,450103,450108,450109,450110,450111,450149,450150,450156,450157,450158,450159,450160,450161,450164,450165,450166,450167,450168,450169,450170,450171,450172,450173,450174,450175,450176,450177,450178,450179,450181,450182,450183,450184,450187,450188,450189,450190,450192,450193,450194,450195,450196,450197,450198,450199,450201,450202,450203,450204,450205,450206,450207,450208,450209,450210,450211,450212,450213,450214,450215,450216,450217,450218,450219,450220,450221,450222,450224,450225,450226,450227,450228,450229,450230,450231,450232,450233,450234,450235,450237,450238,450239,450240,450243,450244,450245,450246,450247,450248,450249,450250,450251,450252,450253,450254,450255,450256,450257,450258,450259,450260,450261,450262,450263,450264,450265,450266,450267,450268,450269,450270,450271,450272,450275,450276,450277,450278,450301,450302,450305,450306,450313,450314,450315,450316,450317,450318,450319,450320,450321,450322,450323,450324,450325,450326,450327,450328,450329,450330,450331,450332,450333,450334,450335,450336,450337,450338,450339,450340,450341,450342,450344,450345,450347,450348,450352,450353,450354,450355,450356,450357,450358,450359,450360,450361,450362,450363,450364,450365,450368,450369,450372,450373,450380,450381,450382,450383,450384,450385,450387,450388,450389,450390,450395,450396,450397,450398,450400,450401,450405,450406,450407,450408,450419,450420,450443,450444,450445,450446,450447,450448,450449,450450,450451,450452,450453,450454,450455,450456,450458,450459,450460,450461,450462,450463,450475,450476,450477,450478,450479,450480,450526,450527,450528,450529,450531,450532,450533,450534,450535,450536,450698,450699,450700,450701,450703,450704,450705,450706,450707,450708,450820,450821,450822,450823,450847,450848,450849,450850,450851,450852,451012,451013,451014,451015,451019,451020,451021,451022,451023,451024,451137,451138,451139,451140,451142,451143,451144,451145,451146,451147,451153,451154,451155,451156,451175,451176,451177,451178,451179,451180,451300,451301,451302,451303,451304,451305,451306,451307,451308,451309,451310,451311,451312,451313,451314,451315,451316,451317,451318,451319,451320,451321,451322,451323,451324,451325,451326,451327,451328,451329,451330,451331,451332,451333,451334,451335,451336,451337,451338,451339,451340,451341,451342,451343,451344,451345,452218,452219,452261,452262,452326,452327,456447,456448,458269,458270,458271,458272,458273,458274,458275,458276,458277,458278,458279,458280,458281,458282,458283,458284,458285,458286,458287,458288,458289,458290,458291,458292,458293,458294,458295,458296,458297,458298,458299,458300,458301,458302,458303,458304,458305,458306,458307,458308,458309,458310,458311,458312,458313,458314,458315,458316,458317,458318,458319,458320,458321,458322,458323,458324,458325,458326,458327,458328,458563,458564,458572,458573,458577,458578,458579,458580,458581,458582,458584,458585,458587,458588,458589,458590,458591,458592,458593,458594,458595,458596,458602,458603,458643,458644,458650,458651,458691,458692,458698,458699,458700,458701,458702,458703,458704,458705,458706,458707,458708,458709,458710,458711,458712,458713,458714,458715,458718,458719,458720,458721,458724,458725,458728,458729,458732,458733,458736,458737,458740,458741,458742,458743,458744,458745,458746,458747,458748,458749,458750,458752,458753,459259,459494,459495,459730,459731,459966,459967,461570,461571,464401,464402,465585,465586,465630,465631,465709,465710,465819,465820,466115,466116,466826,466827,466828,466829,466836,466837,466847,466848,466850,466851,466852,466853,466876,466877,466878,466879,466880,466881,466885,466886,467031,467032,467312,467313,467314,467315,467732,467733,467742,467743,467755,467756,467768,467769,467785,467786,467889,467890,467895,467896,467900,467901,467906,467907,467953,467954,468159,468160,468164,468165,468307,468308,468327,468328,468343,468344,468425,468426,468473,468474,468482,468483,468490,468491,471142,471143,471147,471148,471164,471165,471181,471182,471197,471198,471205,471206,471256,471257,471269,471270,471285,471286,471315,471316,471332,471333,471385,471386,471418,471419,471452,471453,471466,471467,471473,471474,471479,471480,471586,471587,471593,471594,471774,471775,471779,471780,471786,471787,471791,471792,471800,471801,471805,471806,471814,471815,471821,471822,471836,471837,471984,471985,472031,472032,472036,472037,472041,472042,472093,472094,472118,472119,472165,472166,472202,472203,472207,472208,472248,472249,472257,472258,472266,472267,472276,472277,472282,472283,472294,472295,472302,472303,472310,472311,472315,472316,472318,472319,472323,472324,472375,472376,472394,472395,472418,472419,472445,472446,472453,472454,472462,472463,472471,472472,472477,472478,472483,472484,472488,472489,472503,472504,472620,472621,472699,472700,472757,472758,472806,472807,472826,472827,472841,472842,472856,472857,472870,472871,472875,472876,472881,472882,473066,473067,473123,473124,473175,473176,473195,473196,473276,473277,473347,473348,473353,473354,473361,473362,473372,473373,473380,473381,473420,473421,473471,473472,473504,473505,473535,473536,473571,473572,473578,473579,473583,473584,473589,473590,473621,473622,475205,475206,475261,475262,477354,477355,477368,477369,477550,477551,480822,480823,480832,480833,481114,481115,481164,481165,481237,481238,481242,481243,481262,481263,481268,481269,481283,481284,481288,481289,481297,481298,481418,481419,481549,481550,481557,481558,481565,481566,481573,481574,481611,481612,481620,481621,481628,481629,481637,481638,481643,481644,481648,481649,481654,481655,481669,481670,481675,481676,481688,481689,481697,481698,481704,481705,481939,481940,481970,481971,482011,482012,482034,482035,482048,482049,482077,482078,482202,482203,482217,482218,482235,482236,482396,482397,482406,482407,482414,482415,482441,482442,482444,482445,482550,482551,482652,482653,482767,482768,482830,482831,482875,482876,482936,482937,482949,482950,482974,482975,483002,483003,483062,483063,483089,483090,483138,483139,483146,483147,483152,483153,483162,483163,483170,483171,483178,483179,483185,483186,483190,483191,483195,483196,483207,483208,483212,483213,483219,483220,483226,483227,483237,483238,483254,483255,483260,483261,483266,483267,483282,483283,484000,484001,484039,484040,484089,484090,484095,484096,484103,484104,484109,484110,484527,484528,484534,484535,484543,484544,484603,484604,484806,484807,484815,484816,484835,484836,484850,484851,484877,484878,484883,484884,484900,484901,484955,484956,484965,484966,484968,484969,484974,484975,484990,484991,484996,484997,485017,485018,485022,485023,485027,485028,485033,485034,485042,485043,487990,487991,487997,487998,488022,488023,488031,488032,488055,488056,488085,488086,488117,488118,488130,488131,488146,488147,488151,488152,488157,488158,488184,488185,488193,488194,488198,488199,488210,488211,488221,488222,488263,488264,488297,488298,488420,488421,488757,488758,488832,488833,488838,488839,488846,488847,488969,488970,488976,488977,488991,488992,489000,489001,489005,489006,489012,489013,489022,489023,489042,489043,489415,489416,489432,489433,489757,489758,489855,489856,490047,490048,490060,490061,490067,490068,490087,490088,490274,490275,490318,490319,490326,490327,490412,490413,490480,490481,490567,490568,490573,490574,490580,490581,490585,490586,490592,490593,490717,490718,490743,490744,490754,490755,490759,490760,490775,490776,490781,490782,490783,490784,490795,490796,490807,490808,491168,491169,491170,491171,491273,491274,491430,491431,491432,491433,491434,491435,491436,491437,491438,491439,491441,491442,491444,491445,491446,491447,491448,491449,491494,491495,491496,491497,491500,491501,491502,491503,491504,491505,491506,491507,491508,491509,491510,491511,491512,491513,491514,491515,491516,491517,491518,491520,491521,492027,492094,492095,492241,492242,492263,492264,492375,492376,492890,492891,493875,493876,494327,494328,494329,494330,494369,494370,494409,494410,494879,494880,495256,495257,495297,495298,495299,495300,495305,495306,495513,524288,524289,557056,557057,589824,589825,622592,622593,623099,623100,633180,633182,633183,633184,633185,633186,633187,633188,633189,634114,634115,634116,634117,634118,634119,634349,634350,634351,634367,634368,634379,634380,634381,634382,634384,634385,634391,634392,634394,634395,634403,634404,634738,634739,634740,634741,634997,634998,635226,635227,635228,635229,635230,635231,635232,635233,635234,637406,637407,637408,637409,637411,637412,637413,637414,637415,637416,637430,637431,637432,637433,637438,637439,637440,637441,637442,637443,637450,637451,637452,637453,637469,637470,637471,637472,637473,637474,637490,637491,637492,637493,637581,637582,637583,637584,637585,637586,637616,637617,637618,638276,638277,638278,638280,638281,638282,638283,638360,638361,638362,638363,638364,638365,638390,638391,638392,638393,638403,638404,638405,638406,638407,638408,638631,638632,638633,638634,639564,639565,639566,639567,639629,639630,639631,639632,639633,639634,639983,639984,639985,639986,639987,639988,641347,641348,641349,641350,641355,641356,641357,641358,641359,641360,642370,642371,642372,642373,642553,642554,642555,642556,642557,642558,643584,643585,643586,643587,643786,643787,643788,643789,643790,643791,644838,644839,644840,644841,644858,644859,644860,644861,644862,644863,645112,645113,645114,645115,645116,645117,645118,645119,645120,645121,645122,645123,645124,645125,645126,645127,650210,650217,655360") && block_image_verify("/dev/block/platform/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat"), ui_print("system recovered successfully."), abort("E1004: system partition fails to recover"));
endif;

# ---- start making changes here ----

ui_print("Patching system image after verification.");
show_progress(0.900000, 0);
block_image_update("/dev/block/platform/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
  abort("E1001: Failed to update system image.");
ui_print("Patching boot image...");
show_progress(0.100000, 10);
apply_patch("EMMC:/dev/block/platform/bootdevice/by-name/boot:9884544:c548b8e28037daaa74ae9e7f7de10524d48deebd:9886592:d2598b0da6c241b3d7bcae28bbe65dc97d74cfa7",
            "-", d2598b0da6c241b3d7bcae28bbe65dc97d74cfa7, 9886592,
            c548b8e28037daaa74ae9e7f7de10524d48deebd,
            package_extract_file("patch/boot.img.p")) ||
    abort("E3008: Failed to apply patch to EMMC:/dev/block/platform/bootdevice/by-name/boot:9884544:c548b8e28037daaa74ae9e7f7de10524d48deebd:9886592:d2598b0da6c241b3d7bcae28bbe65dc97d74cfa7");
show_mtupdate_stage("/cache/recovery/last_mtupdate_stage");
ifelse (
less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "1") ,
(
ui_print("start to update general image");
package_extract_file("md1dsp.img", "/dev/block/platform/bootdevice/by-name/md1dsp");
package_extract_file("md1rom.img", "/dev/block/platform/bootdevice/by-name/md1img");
package_extract_file("mcupmfw.img", "/dev/block/platform/bootdevice/by-name/mcupmfw");
package_extract_file("spmfw.bin", "/dev/block/platform/bootdevice/by-name/spmfw");
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "1");
),
ui_print("general images are already updated");
);
ifelse (
less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "3") ,
(
if less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "2") then

ui_print("start to update alt loader image");
package_extract_file("loader_ext.img", "/dev/block/platform/bootdevice/by-name/loader_ext2");
package_extract_file("lk.bin", "/dev/block/platform/bootdevice/by-name/lk2");
package_extract_file("trustzone.bin", "/dev/block/platform/bootdevice/by-name/tee2");
assert(package_extract_file("preloader_rlk6739_36_c_n1.bin", "/tmp/preloader_rlk6739_36_c_n1.bin"),
       write_raw_image("/tmp/preloader_rlk6739_36_c_n1.bin", "/dev/block/mmcblk0boot1"),
       delete("/tmp/preloader_rlk6739_36_c_n1.bin"));
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "2");
endif;

switch_active("loader_ext1", "loader_ext2");
switch_active("lk", "lk2");
switch_active("tee1", "tee2");
switch_active("preloader", "preloader2");
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "3");
),
ui_print("alt loder images are already updated");
);
ifelse (
less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "5") ,
(
if less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "4") then

ui_print("start to update main loader image");
package_extract_file("loader_ext.img", "/dev/block/platform/bootdevice/by-name/loader_ext1");
package_extract_file("lk.bin", "/dev/block/platform/bootdevice/by-name/lk");
package_extract_file("trustzone.bin", "/dev/block/platform/bootdevice/by-name/tee1");
assert(package_extract_file("preloader_rlk6739_36_c_n1.bin", "/tmp/preloader_rlk6739_36_c_n1.bin"),
       write_raw_image("/tmp/preloader_rlk6739_36_c_n1.bin", "/dev/block/mmcblk0boot0"),
       delete("/tmp/preloader_rlk6739_36_c_n1.bin"));
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "4");
endif;

switch_active("loader_ext2", "loader_ext1");
switch_active("lk2", "lk");
switch_active("tee2", "tee1");
switch_active("preloader2", "preloader");
),
ui_print("main loader images are already updated");
);
delete("/cache/recovery/last_mtupdate_stage");
set_progress(1.000000);
