Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fanoush/98adf1626b883677bfcf6f62e20d78e5 to your computer and use it in GitHub Desktop.
Save fanoush/98adf1626b883677bfcf6f62e20d78e5 to your computer and use it in GitHub Desktop.
// -- 1. copy paste methods for flash writing and verification below to Espruino WebIDE left side
E.setFlags({unsafeFlash:1});
var fl=require("Flash");
var ladd=0;var lpg=0;var nadd=0;// last address, last page addr, next addr
var flash=function(a,d){
if (nadd>0 && nadd<a) console.log("Hole in data, got "+a.toString(16)+", expected "+nadd.toString(16));
var p=fl.getPage(a).addr;
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));}
p=fl.getPage(a+d.length-1).addr;
if (p>lpg) {fl.erasePage(p);lpg=p;console.log("Erasing page 0x"+p.toString(16));}
if (a>ladd) {fl.write(d,a);ladd=a;nadd=a+d.length;}
console.log(a.toString(16)+" F-OK")
}
var verify=function(a,d){
if (typeof(d)=="string") d=E.toUint8Array(d);
var m=fl.read(d.length,a)
for (var i=0;i<d.length;i++,a++)
if (m[i]!=d[i]) console.log(a.toString(16)+" V-FAIL");
console.log(a.toString(16)+" V-OK");
}
var f=flash
// uuencoded bootloader binary below was created from compiled binary by bash shell code:
// a=$((0x7a000));for i in `base64 -w96 boot-7a000.bin` ; do echo "f(${a},atob('$i'));";a=$((a+72)) ; done
//
// -- 2. copy paste code below starting with echo(0) and ending with echo(1) to WebIDE console - left side
echo(0);
f(499712,atob('gH8AIDmlBwBhpQcAY6UHAGWlBwBnpQcAaaUHAAAAAAAAAAAAAAAAAAAAAAB1zAcAbaUHAAAAAABvpQcAcaUHAHOlBwBzpQcA'));
f(499784,atob('c6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcAwcsHAHOlBwBzpQcA'));
f(499856,atob('WccHAHOlBwDFxQcAc6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcAc6UHAAAAAAAAAAAAc6UHAHOlBwBzpQcAc6UHAHOlBwBzpQcA'));
f(499928,atob('c6UHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500000,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500072,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500144,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500216,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500288,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500360,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500432,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500504,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500576,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500648,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(500720,atob('AAAAAAAAAAAAAAAAAAAAABC1BUwjeDO5BEsTsQRIr/MAgAEjI3AQvXQsACAAAAAAENUHAAi1A0sbsQNJA0iv8wCACL0AAAAA'));
f(500792,atob('eCwAIBDVBwAVSwArCL8TS51Go/WAOgAhi0YPRhNIFEoSGgDwY/gPSwArANCYRw5LACsA0JhHACAAIQQADQANSAAoAtAMSK/z'));
f(500864,atob('AIAA8Cv4IAApAALwBfwA8BH4AL8AAAgAgH8AIAAAAAAAAAAAdCwAIHg0ACAAAAAAAAAAAAi1B0sERhOxACGv8wCABUsYaINq'));
f(500936,atob('A7GYRyBGAPAx+AC/AAAAAPDUBwBwtQ1NDUxkG6QQACamQgnRC00MTALw8v9kG6QQACamQgXRcL1V+AQ7mEcBNu7nVfgEO5hH'));
f(501008,atob('ATby52wsACBsLAAgbCwAIHAsACACRANGk0IA0XBHA/gBG/nn/ucAvwZJB0oHS5saA90EO8hY0FD73ALwT/j/93f/AAAc1QcA'));
f(501080,atob('ACwAIHQsACD+5/7n/uf+5/7n/uf+5/7n/uf+5wFET/b/c4hCAdEYRnBHEPgBK1u6m7JTQMPzAxJTQIPqAzMbsloBAvT/UlNA'));
f(501152,atob('m7Lq52HfcEdg33BHEN9wR1LfcEcJSxt4BisM0QhLG2gaBwjRB0sYaADw8ACg8TADWEJYQXBHACBwRwC/4A8A8OQPAPDoDwDw'));
f(501224,atob('DEsbeAYrENELSxtoGgcM0QpLGGgA8PADMCsI0ADw4ACg8UADWEJYQXBHACBwRwEgcEcAv+APAPDkDwDw6A8A8GPfcEeo33BH'));
f(501296,atob('pt9wR6XfcEei33BHoN9wR3vfcEd233BHdd9wRze1FUwgiE/2/3OYQiVGDtCjeCJ8ATPbsppCo3AJ0wTxIAH/9+v/ELHjaQOx'));
f(501368,atob('mEcDsDC9ACOjcCN9M7E7If/33P8QseNpA7GYR6tpACvv0AAijfgEIAGo6eeQLAAgZd9wRy3p8E+FsAAlDpy9+DywJ4gBkYBG'));
f(501440,atob('kUaaRi5GuPgAILJCDNw9sSKIATrSG5Ky/yo72Ar4ByAAIAWwvejwj9j4BCBS+CYAA5AAIg3xCwEDqP/31f8AKO/RnfgLIEpF'));
f(501512,atob('ItEiiAAtFL8AIAIgAusJAQFEWUUa3EW5ATKSsgGbIoAK+AIwIogBMiKAIogN8QsBUkQDqP/3tP8AKM7RIYid+AsgCkQigAEl'));
f(501584,atob('ATa45wwgxOct6fNBCJy9+CRQF0bN6QBFAiIGRphG//ed/0i5Q0YQIjlGMEbN6QhFArC96PBBkecCsL3o8IF933BHed9wR3Lf'));
f(501656,atob('cEdx33BHN7UHS8poDEYD64IDSmgAkp1qS2kU+AwbAkYgRqhHA7AwvZAsACAo33BHKd9wRzi1GkyU+DQwGCIC+wNDk/g4IJ1s'));
f(501728,atob('ASoD0AMqGtAPIDi91PgoAdpr2WwbbAADEhqy9YBfHUQBRDi/kggoRCi/T/SAYv/32/8AKOnRASOE+DYw5edP8IBTGGmAsrX7'));
f(501800,atob('8PXU+CgBKET/98j/7ecAv5AsACBwtRZNlfg1QAosJNCV+DRgNETksgkshL8KPOSyGCYG+wRU4mSE+DgAA8njYwSbI2SV+DYw'));
f(501872,atob('BPFEAoLoAwAzsQAglfg1MAEzhfg1MHC9//eg/xEo9dHz5wQg9+cAv5AsACDwtR9L0/g0Ebmz0/hAUdP4LGFsGgTwBwQiRiQn'));
f(501944,atob('B/sCbGBFFNEBIAD6AvXT+EQBaEDD+EQBACDT+DBh0/hEwU/wAQ5yRAAlDkQC8AcCCuABMgLwBwKVQuHRECDs50mxATkURgEl'));
f(502016,atob('DvoE9BTqDA+m6wEH9NANscPpTHHwvQQg/OcAv5AsACAMKBPY3+gA8BQSEhISEgkSBxISDQsAAiBwRwMgcEcEIHBHBCkUvwYg'));
f(502088,atob('BSBwRwYgcEcBIHBHZ99wR6rfcEep33BHp99wR4bfcEd/33BHfN9wR3rfcEd033BHc99wR3DfcEcAaHBHGN9wR3+1AyMFRs3p'));
f(502160,atob('ADCWCGhGDEYCkQOW//fy//CxtPWAXxHYASNoRs3pADXN6QJG//fm/5C5AyNoRs3pADXN6QJG//fd/wngT/RQQqT1UEGl9VBA'));
f(502232,atob('//fW/wAo49AEsHC9ELUKSxp4ASoN0VyITLGZaEPyCAMYaP/3u/0jGlhCWEEQvSBG+ecAIPrnAL8A8AcACEsaeAJwWohCgJpo'));
f(502304,atob('gmAaeQJx2mjCYBppAmFaaUJhm2mDYXBHAPAHAAC1jbAFqP/35/8ImIixC5sA9YBSmkIP2UPyCAISaJBCFtig9dAyT/TYMQP1'));
f(502376,atob('0DD/943/DbBd+AT7gAgDIU/0gFIEkAGozekBEgOT//d9//DnDiDu5wVLGnilKgXQGHmg8aoDWEJYQXBHASBwRwDwBwAT33BH'));
f(502448,atob('Ed9wR0jfcEfv8wWDw/MIA7uxEDtasgAqq78C8WBDA/APAwP1YUMJSqy/k/gAM9NcWwnbsgIrBtAGKwy/ASACIHBHAiBwRwAg'));
f(502520,atob('cEcAvxTtAOD4tR9L0/hIQQZGACw00AQpMNlDaYOzQ3wBKwy/D0YAJ//3yv8E68AFFPgwAGt4lfgCwFoc0rKURQi/ACKQQh3Q'));
f(502592,atob('A+tDA2ho2wDEGBfQT/ABDAD4A8ALS2Zg0/gENSdhxOkCMQAgCEtgYWpwT/SAEsP4ACH4vQcg/OcIIPrnBCD455AsACAAEAFA'));
f(502664,atob('AOEA4BO1F0y0+E4xIoyaQgnYYoyaQgbTo2kDuwAjhPhUMQKwEL2U+FQxO7GjaQAr9NAAIo34BCABqA7g1OkCI6F4CUgAKQy/'));
f(502736,atob('EUYZRv/3lP8AKOPQ42kAK+DQmEfe5wEi6OcAv5AsACDoLQAg+LUWS9P4SGEFRh6zQ2kLswAhAXT/91b/BuvABBb4MABjeKd4'));
f(502808,atob('WhzSspdCCL8AIpBCEtAD60MDYGjbAMYYDNACJ8dUB0t1YGJwT/SAEsP4ACEIRvi9CCD85wQg+ueQLAAgAOEA4ElLT/QAMsP4'));
f(502880,atob('gCAD8cBDA/U8U0/0gDLD+EgjLyHD+AgjASJaYAhGATgAvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(502952,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(503024,atob('AL8Av8PRmmAiSwAiw/h4IQhGATgAvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(503096,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8Av8PRg/h8IXBH'));
f(503168,atob('AOEA4JAsACC/80+PBUkGS8poAvTgYhNDy2C/80+PAL/95wC/AO0A4AQA+gUItf/36/8Itf/36P8HtQAiAJIcIwlJAyD/9zr9'));
f(503240,atob('CLH/9/L/B0oAkBwjovEIAQEg//cv/QAo89EDsF34BPsQLgAgGC4AIHO1G03V+KQx1fioIbP6g/RkCSqzAaj/99P7BSgj0Aix'));
f(503312,atob('//fP/9X4qDEBmJhHACzx0dX4sGG1+KwxrfgEMAGpMEb/97j7BSgI0AAo6dHV+KQxMEaYRwAs69Hc5zS5ASTZ5xuxASTk5wAs'));
f(503384,atob('+9ACsHC9AL+QLAAgCLURsQAg//ei/wRLk/i0MROxvegIQLnnCL0Av5AsACAQtQ9MASOE+LUxDksYiE/2/3OYQgXQEyH/99L7'));
f(503456,atob('ULH/94b/lPi2MSux//di/QAo9tGE+LYBBEj/95v+ACjv0RC9kCwAIGAsACDoLQAgCLX/927/B7UKSwIig/jEIQP13nEAIsP4'));
f(503528,atob('uBEAktP4yDEDIP/3o/wIsf/3W/8DsF34BPsAv5AsACAItf/3Uv8QtQtMlPjMMYu5BPXocP/3av4Isf/3Rv9P9HARBPXocP/3'));
f(503600,atob('5/0DRgAo9NEYRhC9CCP755AsACABKfi1DUYURh9GBdADKRHQHLMgRv/3K/8QS5P4xCEFKvbR0/jwMQAr8tA6RiFGBCCYR+3n'));
f(503672,atob('CU6W+MQxAivo0db4+DGYR4b4xFHW+PBhAC7f0DpGIUYoRrBH2uf4vZAsACD4tSROJE3W+AA0ACs10Nb4DDXYBzHV1vgINSBK'));
f(503744,atob('27LZByfUH0wnRpT4ACKU+AEymkIp0JT4ACKU+AAytPgCErf4DMLX+AgC27KZQoa/ATPbsgAj0rKH+AAy1/gEMhGyA+vBDgL7'));
f(503816,atob('DABT+DEwvvgEEJhH2edC+ARbWwjR5//3Sf0AKM/Q//fE/pT4DjICOwIrutj4vQC/AAABQDVGUm4ABgFAkCwAIAi1B0uT+A4C'));
f(503888,atob('ASgE0QEpBL8CIYP4DhISsRBG//em/gi9kCwAIAgpELUC0AAg//ed/tDpADC96BBAGEcKSwP1BHLD+AQiA/UucsP4CCIAIoP4'));
f(503960,atob('ASKD+AAiCCKj+AwiFCKj+AIicEeQLAAgcLUvSZH4NjAMRjOxACYCKIH4NmAC0AMoRtBwvZH4NFDR+CgxGCIC+wUSATPSa8H4'));
f(504032,atob('KDGy6wM/IdiR+DUwwfgoYQE7gfg1MGsc27IJK4i/pfEJA4H4NDAbSRgmBvsFEQQxACD/90T7BvsFQwAiAyHD6RESg/g4INpj'));
f(504104,atob('2mQaZJT4NTAAK8rQlPg2MAArxtH/90b7ACjC0BEowNCU+DQQCUsYIgL7ATEEMQbgkfg0MBgiAvsDETgxDSC96HBA//cYuwC/'));
f(504176,atob('kCwAIMQsACAwtQVGh7BgswCIT/b/c5hCKdAWTJT4YDMrsxAjhPhiEwMhhPhjI634BhAaRgAhAqiE+GEz//e6+SuKrfgIMAEj'));
f(504248,atob('jfgKMAAjrfgMMATyYTQN8QYDAqkoiASTBZT/9y36B7AwvQ4g++cIIPnnAL+QLAAgELUERghGAyH/95b7AyECRiBG//e9/wix'));
f(504320,atob('//fX/RC9AygQtQtGFEYf0AQoCtFRsRJLGIhP9v9zmEID0BMh//cO+iC5EL0QRv/3NfsIsf/3vf0KSND4aDOcQvPRASIDIQD1'));
f(504392,atob('W3D/95X/6+cBIRhG//dk+wEhAkYCSPTnYCwAIJAsACD8LwAgELWMsAAjzekEMwaTAiMDky9LAkYYaACQKrEDqP/3fPsIsf/3'));
f(504464,atob('kP1P9PQg//cJ/AAo99EoTChJBPVnc8T4sDFII6T4rDFoRiVLxPjkM//3ePkAKObRASOE+LQxIUuT+BYjUgYx1dT48CNSs9T4'));
f(504536,atob('6DND9IADxPjoMxQiACEHqP/3HPkBI634HDCN+CYwnfgoMEPwAQON+CgwE0sCkwAiC5ICmwGTQPIBEgGpB6it+CQg//dF+QAo'));
f(504608,atob('tdEMS8T4qDEMsBC9T/SAAhpg1udC8gIAqecAv/TUBwCQLAAgra0HAG3FBwAA4QDgACwAILGwBwBwtRBKEEsReIP4iBHWeJF4'));
f(504680,atob('0/gABEHqBiGj+IoRkmjD+JAh0+n+VKoig/iMIQEiw/icAcPpZVSD+A4i//cR/QAgcL0AvwDwBwCQLAAgELWGsBQiACEBqP/3'));
f(504752,atob('ufgOS7P4BBTT+AAkrfgGEAAkBJKj+IoRw/iQIf8hASKN+ARAg/iIIYP4jBGD+A4i//fq/CBGBrAQvQC/kCwAIDi1Q/IIAx1o'));
f(504824,atob('DkvT6f5A0/gAFLP4BCSj+IohIhgKRMP4kCGlIoP4iCH/IoP4jCEBIsPpZUDD6WcVg/gOIv/3xPwAIDi9kCwAIAZLACKj+Ioh'));
f(504896,atob('w/iQIf8ig/iIIQNKEnmD+IwhseSQLAAgAPAHABC1BkwBI4T4zDH/9w39CLH/96H8AyOE+A4yEL2QLAAgLenwQclLnLCT+HIz'));
f(504968,atob('jfgOMDgiQfIwUwRGACEN6wIArfgMMP/3QfgCI434ODAAIwEijfg6MK34CjAbm634QCADqo34O0ARkkuxG3iN+BowQfICEgMj'));
f(505040,atob('rfgYIK34CjAamSm7nfhmIAAqU9C9+Aow3BwfLADySYIcqcgYAiEA+FgcHK1YHBX6gPALRBwlm7IA+FhcATocqK34CjADRAMq'));
f(505112,atob('APKHgd/oEvAsADAAMgBGAb34CjAD8RICHyoA8iaCHKoaRBEgAvhYDFocHKgQ+oLyAjMQIAL4WAyt+AowAfEPAr34CjAQRhys'));
f(505184,atob('HEQQ+AFZBPhYXAEzkUKt+Aows9ACRu/nACID+FgsA+ABIvrnA/hYHK34CkCd+GUwBqwAKznQvfgKMAkzHysA8vCBBKj/9/n4'));
f(505256,atob('AChA8DOBvfgKAByrA0QIIgP4WCxDHByqEvqD8wIwGyKAsgP4WCyt+AoABiIN8REBIEQB8Gf/vfgKMJ34EBCaHRyoEPqC8gAp'));
f(505328,atob('QPDegAL4WBwHM534OiCbsq34CjAAKkDw1YCd+DsAyLG9+Aow2RwfKQDys4EcqhpEAiUC+FhcWhwcrRX6gvIBJQL4WFwCMxyq'));
f(505400,atob('EvqD8634ChAD+FgMD5rasb34CjDZHB8pAPKXgZL5AACt+AoQHKoaRAIlAvhYXFocHK0V+oLyCiUC+FhcAjMcqhL6g/MD+FgM'));
f(505472,atob('vfhAMAArQPC3gL34SDBrsR8jAZMN8QoDAJMHIiNGAyESqP/3WfgAKEDwtIC9+FAwa7EfIwGTDfEKAwCTFSIjRhQhFKj/90j4'));
f(505544,atob('AChA8KOAFpoAKkDwoYAXnY2zqoi9+AoAkRyDHM4YHy4A8kuB/ikA8kiBHKkBRAMyAfhYLEIcHKkR+oLy/yEC+FgcrfgKMCqI'));
f(505616,atob('m7LhGOJUEgpKcAQwqoiAsq34CgBasaloACl+0CBEAfC9/r34CjCqiBNErfgKMJ34ZDAAK0Dwq4Cd+DgwACsA8AmBvfg4IAEq'));
f(505688,atob('Z9C9+ApQqBwfKADyDoEBKwbRnfg5MCtEAjMfKwDyBYHF8R0FrbIEqSBErfgQUP/3AvgAKELRnfg4MAIrQPDHgL34EDCrQkDy'));
f(505760,atob('7oCt+BBQyOCQLAAgAyLk5gEhH+cEMx8rAPLjgASo/vfo/zi7vfgKMByqGkQDIQL4WBxaHBypEfqC8hkhAvhYHJkcvfgQIImy'));
f(505832,atob('YBhiVAQzEgpCcK34CjAI5x8jAZMN8QoDAJMGIiNGAiEQqP73pf8AKD/0O6//9836vfgKMJ0dHy0A8q+AEIgFKAHYByDy52/0'));
f(505904,atob('SGfBGYmyT/J9N7lC9dlRiAUp8tlv9Ehmjhm2sr5C7NlP9v92sEID0LFCAdCIQuTYHKkZRAUgAfhYDFkcHKgQ+oHxEiAB+FgM'));
f(505976,atob('mRyJsq34ChAQiGBUZhgACnBwBDNSiK34ClCbsuEY4lQSCkpwG+cYmwArwtAAJQwmFied+GQg67KaQn/2Sa8YmXNDAesDCLj4'));
f(506048,atob('BCCQHP4oXNi9+AoADfFwDIREAzIM+FgsQhwN8XAMHPqC8gL4WHyCHJKyrfgKIMtao1ShGBsKS3AEMLj4BCCAsq34CgBqsdj4'));
f(506120,atob('CBAAKY3QIEQB8Mz9vfgKMLj4BCATRK34CjABNcHnASt/9Duvnfg5MJ1C//Q2r634EDAIIb34ECD+Kh7YvfgKMByoGEQBMgEz'));
f(506192,atob('APhYLJuyHKgYRBNEAPhYHK34CjAAIxpGnfgKECBG/vcS/wAof/ROrxywvejwgQkh3OcMIEbnLenwQy1MlPi2YYuwAC5R0Rgi'));
f(506264,atob('MUYE9YFg/vfB/ZT4IFQALTrQECIxRgKoBPIpSf73tv0QIgKpSEYB8Gf9BPIiSAdGASWAuQUg//dV/YT4CFTE+AyEhPgQdMT4'));
f(506336,atob('GHQYSP73yP8gs//34vkBqwQgBpPN6QCYjfgcUI34JFDN+CDQ//c6/QIjhPgQNAarhPgIZMT4FDQoI8T4GDTg5wYg//cr/YT4'));
f(506408,atob('CFTE+AxUhPgQVPHnASOE+LYxC7C96PCDkCwAIJgwACDwtQOIpEwRK6+wBUY90BzYECsp0NT4lCM6sSuIESsA8KuAStgQKwDw'));
f(506480,atob('kIAriBQrAPCpgQDyPYEQKwDwZIEA8vaAAisA8IGBL7DwvRIrLdBQK+DRwohjippC3NEDigIr2dGDfNoHDtQV4IOII4AA8RgD'));
f(506552,atob('A8sAI6NwY4rE+EwBxPhQEQArx9H/9174xOdP9v9zI4AAI6NwBPWscP/3iPgAKLnQ42kAK7bQmEe05wDxCAMDy8T4TAHE+FAR'));
f(506624,atob('5OdQK0nQUSuz0a55Ai6w0SqJtPh8M5pCq9GrewQ7Aiun2Z34PjCN+DhgQ/ABA434PjAriq34QDBriq34QjAIIgXxFAMAIQeo'));
f(506696,atob('EZP+9+v8AasHqrT4gBO0+GwDB5YIk/73af2As9T4mDMDsZhHQPL9Ew6ptPhsA634PDD+91f9ACg/9Hev1PiYMwArP/Ryr5hH'));
f(506768,atob('b+eriKT4bDNr5+mItPh0M5lCf/Rmrwgjjfg4MCuKjfhAMAXxEgMPkw6pSkiQR1jnT/b/c+bnnfgEMLT4bAPbB8zVACYOqa34'));
f(506840,atob('PGD+9yf9ACjQ0Sl9Sx4HK0LY3+gD8AQbJCgqLD8ua4qN+BxgASsF2AYiASE3SP/3t/q45wEjjfgkMAXxFQMIk9T4lDMxSAep'));
f(506912,atob('mEcm52qKASOaQo34HDDu2AYiAiHm5wIjjfgcMOznAyP65wQj+OcFI/bna4oCKwLYAyIIIdbnqn1rfUPqAiMAK634IDAMvwcj'));
f(506984,atob('BiPl5wkj4+cDIsfnEStw0BMrf/QIrxpLAayaeRhomYiN+BogBZDaHa34GBAXMyZGEGhRaCVGA8UIMppCLEb30RBLB6oD8RgH'));
f(507056,atob('FUYYaFloFEYDxAgzu0IiRvfRGGggYApICkoAiA6rhSHN6RJW/vdI/gAoP/TYrkngkCwAIPwvACCyMAAgyjAAIGAsACDuMAAg'));
f(507128,atob('UStP0BfYGitz0Bsrf/TDrit6ACt/9L+uUEqE+LYxU2gBO1NgACs00f/3sPgwuwMjhPgOMq/mUitb0FUrf/Srrqt5ACt/9Keu'));
f(507200,atob('REsTIRiI/vd9/MXnQUuqiBqAACOE+LYxmeaAIz1NrfgcMDIja2AHqgEjDqkoiP738/0Isf/3HfiU+LUxC7n/9wL+T/b/cyuA'));
f(507272,atob('geb/9/z9fuYwSwAhGIj+9939neereQArP/R1rqp7BDoCKj/2cK4CKxi/ASON+DgwT/TBc634PDAkSw6pGIj+9zH8heciSC6K'));
f(507344,atob('tPhMFAAjoPERAo5CDL8BRhlGqIj+9779ducaSx2IT/b/drVCK9CU+CA0E7MBIwgiFkkoRv73qv0AKLPRAkYBRgIjKEb+96L9'));
f(507416,atob('ACir0TJGDCEoRv73nf1D8gIDmEI/9C+uCCg/9CyuQ/IEA5hCf/RMryXmGkYZRihG/veI/UTnCCCQ5wC/YCwAIMowACDmMAAg'));
f(507488,atob('LenwTwt4i7AGRg9GCStL2N/oE/BiAGsAzQAKADwAWQBFAk8C0gBWAsVMlPjEMQUrKNHU+Mgx1PhkdJ9CItEGI4T4xDH/9zP4'));
f(507560,atob('BUaAudT4uDE5Rlho/vde+5T4aSSU+Gg0Q+oCI5hCD9EHI4T4xDEEIShG/vcl/QQhAkYwRv/3TPmQsQbgCCXy5wsl8Of+98r/'));
f(507632,atob('CLH+917/qkiQ+MQxBysERgXQBCOE+A4yC7C96PCPAPXocP73b/4AKOvR1Pj8MZhHACjx0O3n/vet/wAo4dGcSwQig/gOIufn'));
f(507704,atob('mUsBIoP4ciRKaBJ4g/hzJN7nlUwCI4T4cjRLaBt4ASvW0dT4ZFQALVPRlPjEMQQrT9GU+HQkCypA2bT4fRQE8nVDBTED60EB'));
f(507776,atob('E0RaGtKyASo02ZlCMtgE9Y1gAfCL+oNLGohP9v9xikID0LT4dRSRQgjRW4hP9v9yk0IF0LT4dySaQgHQCyUa4LT4fRQAI0/2'));
f(507848,atob('/nBD8gwHi0L00hodBOtCArL4dySCQgXQt/gAwGJFA/EBA/DRBSOE+MQxA+AJJQAjhPh0NAIhKEb+9478AiECRmfnCCX252RL'));
f(507920,atob('AyKD+HIkd+dhTZX4cpS58QIPLEZw0LnxAw8A8LCAufEBD3/0aa8N8RgKECIAIVBG/vdw+jt6DCsC0AMiASFE53tolfhzhBhG'));
f(507992,atob('/veS/AdGGB3+9478gUYD8QgA/veJ/M3pB3mN+BiACZCERproDwAF9X11GPAED4XoDwAC0BjwAw8w0UfqCQND6gwDmQcq0U9E'));
f(508064,atob('Z0S59aBPxPjIcSnYQ/IIAxtow/X0I59CItg7S8T49DEY8AEPOUvE+PgxDdA4S8T4/DGU+MQxASsU0f73GP9QuThG/vf4/g/n'));
f(508136,atob('GPACDxS/MUsxS+znBiABIf73EvwCRqXnDCD45wgg9ucLehPwAwAS0MDxBAIaRNKyGUZP8AAOfWgB8QEMBfgB4F/6jPGRQvbR'));
f(508208,atob('GxoEMztylPjEMdf4BIA9egMrBNAEKwXQCCACIVjnBCOE+MQx1PhkNAAr9dH+99f+ACjy0ZT4dDQF8PwF6hhAKgvYEkgqRhhE'));
f(508280,atob('QUYB8Jf5lPh0NB1EhPh0VL7mCSDd55H4CIAY8AMDE9BKRklGneYAv5AsACCAEAAQ164HADm0BwDxswcAWbMHAKWzBwAFMQAg'));
f(508352,atob('xfi4NNX4MDGbs7jxIA8y2AE7xfgwMdX4ODHV+CwBATPF+Dgx1fg8MQEiAvoD8dX4RCFP8CQJCfsDAApDATMD8AcDxfhEIcX4'));
f(508424,atob('uARCRnloxfg8MQHwS/nV+Dwx1fgsIQE7A/AHAwn7AyPD+CCA1fg4MTO5BCEA4AwhMEb+99X/Y+bV+EARATvF+Dgx1fg0MQn7'));
f(508496,atob('ASkBMQEzAfAHARnwAw/F+DQxxfi4lNn4IDDF+EARQtGV+MQhBSpA0SPwAwjV+GQ01fjIsQjrAwraRQ/ZT/D/M8X4ZDQMJdT4'));
f(508568,atob('uAT+9//6AUYQsTBG/veg/ylGxecDk/73Lv4FRgAoctEDmwnrAwKSBxnRAJNKRkNG1Pi4EQEg/ve1+gVGAChi0Tt61Pi8JMT4'));
f(508640,atob('ZKTaRRNEXdHE+Lw01Pi4NMT4aDMI5hAlzecIJcvnUEsBIoP4wCSKiKP4xCSj+MIk+uVLSwAig/jAJKP4xCTz5QAoONACiE/2'));
f(508712,atob('/3OaQjXQREyU+GAzi7PU+Lw0hPhkMxAiGAqE+GUDByEj+gLwGw6E+GIThPhmA4T4ZzMBJa34FhAGqAAhhPhhI4T4Y1P+99r4'));
f(508784,atob('M4qt+BgwACOt+BwwBPJhNA3xFgMGqTCIjfgaUAiTCZT+9075pOUOIKvlCCCp5Qktf/R5r9T4vCQ7ehNElPjAJMT4vDQAKj/0'));
f(508856,atob('p620+MJUAT2tsqT4wlQALX/0nq0ALuLQMYhP9v9ykULf0JT4YCMAKtvQESKE+GEjGgqE+GIzhPhjIxoMGw6E+GQjhPhlMylG'));
f(508928,atob('BSMQIgaorfgWMP73i/gziq34GDABI434GjAN8RYDCJMGqQhLMIit+BxQCZP+9wD5ACh/9F6ttPjENKT4wjRj5ZAsACDxLwAg'));
f(509000,atob('+LUNRu/zEIxytjhM1PjwcwEhn7k2S8T48BPT+IBgNUkOQMT46GPD+IAQ0/iEEMT47BNP8P8xw/iEEDlGvPEADwDRYraU+ABi'));
f(509072,atob('lPgBMrT4AnLbsrtCOL8BM/ayNL/bsgAjnkI70JT4AWKU+AEy27KfQoa/ATPbsgAjhPgBMtT48DODsXm57/MQh3K2GUvU+OjD'));
f(509144,atob('w/gAwNT47MPD+ATAxPjwEwe5YrZP9v9znkId0NT4BDL3ANkZQ/g2IJixlbHU+AgytPgMwgFGKkYG+wwwAPDK/9T4BDI7RAAg'));
f(509216,atob('nYD4vU/2/3bM5wAgiID45wQg9ueQLAAgAOEA4PwG/7wHtQhLs/gMMgcrzekAAQfZBUoIIWhG//d3/wOwXfgE+wkg+ueQLAAg'));
f(509288,atob('bbAHAAAhAUoIRmnnZa4HADi1DEbwuQlo0bEPSpFCFUYM0FMaOysR2TwiKEYA8Ir/BODIXNBUE/H/M/rSPCEGSP335P8AI6iH'));
f(509360,atob('I2A4vT0j8ucOI/nnASP354B/ACAItQhL0/jkIxqxkEdAsf737vuT+LQxG7G96AhA/vcGvAi9AL+QLAAgCLX99+H/ELFKS0tK'));
f(509432,atob('GmD99/X/KLFJS0pKG2jD80IzE2D999L/ILFHStNoI/CAc9Ng/ffk/0CxT/CAQwAiw/gMIcP4ECHD+Dgl/fe+/xCxPksDIhpg'));
f(509504,atob('/fe4/0CxPEsFIhpgASKaZwAimmA/IlpgOEsbeAYrUNE3SxtoGwdM0TZLG2gD8PADUCtG0U/wgFIzS9L4BBTD+CAV0vgIFMP4'));
f(509576,atob('JBXS+AwUw/goFdL4EBTD+CwV0vgUFMP4MBXS+BgUw/g0FdL4HBTD+EAV0vggFMP4RBXS+CQUw/hIFdL4KBTD+EwV0vgsFMP4'));
f(509648,atob('UBXS+DAUw/hUFdL4NBTD+GAV0vg4FMP4ZBXS+DwUw/hoFdL4QBTD+GwV0vhEJMP4cCUSStL4iDBD9HADwviIML/zT4+/82+P'));
f(509720,atob('DUsOSppgCL10wAdADfCtukQCABA8BQBA8O0A4KAFAEAQVgBA4A8A8OQPAPDoDwDwAMAAQADtAOBgLAAgAJDQAy3p8E+VS4Ww'));
f(509792,atob('0/h4IQKSk/jHFJP4xiSRQgDwHYEBMtKyAioIvwAig/jGJJP4xiQD64IC0vjIBAKaAkQi8H9Cw/h4IQEiAJLT+NAkA5KT+NS0'));
f(509864,atob('0/hIIdP4eMGT+NWEA5sBkgAhXEaORgE85LL/LEDw/IB6Sr7xAA8D0IL41YTC+HjBCbHC+NA0AJvS+NBUACtA8ESBA5tbGxi/'));
f(509936,atob('ASMAkwAhkvjVNNL40KQDkwAm0vh4MQKTNEZTRgvx/zJf+oL7u/H/D0DwMIFlTA6xxPjQNNT40DSaRQPRAJoAKgDwt4AAKwDw'));
f(510008,atob('n4FfSh9o0vgEVdT4eDGU+HwB6Roh8H9BAzEAKEzRT/SAMML4RAPC+AQDVkhP9AA2wPiAYQZgASYWYC8gATgAvwC/AL8AvwC/'));
f(510080,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(510152,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8Av8PRhPh8YY9CLL/bGVsYI/B/Q8L4QDXS+AQVSRsh8H9BWxsDMSPw'));
f(510224,atob('f0OZQkXZ0vgENcL4QDUvIAE4AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(510296,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL/D0QhLT/QAMsP4'));
f(510368,atob('ACEAI4T41TQFsL3o8I8AIACQ9OaQLAAgABABQADhAOAisgGdAZ4F68IFFvgyIG54lkI/9PSubmgC60IJBuvJCgEyrnjSspZC'));
f(510440,atob('CL8AIm5oFvg5YAIuCdADLunRACvn0E/wAAEZdNtpASH359r4BKCZRh5GufEAD9rQykUA8LCATkbZ+ByQ9ecBIbbgLGiEQgXZ'));
f(510512,atob('C7HC+NBUIBooYNzm1fgMwC9gABsmROxpvPEADwfQApvpYTNEI/B/Q8XpATwpRgCbJUYALeHRACs/9MWuwvjQVMHmACMZRh5G'));
f(510584,atob('H0by5wGaAuvLAHG7kPgBgAJ4QkU/9L6uAutCDpD4ApDQ+ATAATLSspFFAnAIvwRwHPg+IAEqDOvOBenRamiS+BDAvPEAD+PR'));
f(510656,atob('1fgI4ML4BODvaJdgL2nXYG1plWEDnQAtDL91RmVGVWAB4ApGyWkCn1Vo0vgI4KXrBwwxTyzwf0y8RRTYDOsOBRVgT/ABBcLp'));
f(510728,atob('AUQVdNRhQ7HS+ADAHWisRSvYpesMBR1g02EBJiPgAp99GyXwf0V1RQLSrusFBePnFGDi56zrDgzV+BzgqEa+8QAPCtB1RtX4'));
f(510800,atob('AODmRfLTrusMDsX4AOCuRkVGwvgAwML4HODqYRpGE0aH55hGHUbq5/73bvgR57FFCtHbaQArf/ROrwxJASePYJxGOUa+RrhG'));
f(510872,atob('2fgAoNn4HJDG+ByQufEADz/0Ea/Z+ABgVkTJ+ABgCuf+/38AABABQC3p+EMoSSlMACbB+EBhwfhEYcH4SGHB+ExhwfgAYcH4'));
f(510944,atob('BGHU+NA0ACs70NH4BFXU+HgRbRol8H9FsEYaaKpCGNitGhZEGnzfaYqx1PjYlIP4EIDT6QUhufEADwbQEEbIRyix/vfG+DtG'));
f(511016,atob('5+cIRpBHAC/50ZT4xySU+MY0k0IG0QEz27ICKwi/ACOE+Mc0lPjHNATrgwQGS8T4yGRP9IASw/gAIb3o+IMAvwAQAUCQLAAg'));
f(511088,atob('AOEA4G/wAgMGSp5FAtHv8wmBAeDv8wiBiGmg8QIAAHgQRwC/ecUHAIC1T/CAQ5aw0/gcVbEtGkYD0NP4HDUBKwvRACPC+Bw1'));
f(511160,atob('ASaySxtos/X0LwTQACD+93T4ACb150/wgFMbabP1gF/00atM/fe8/wUihPjeJIT45iSE+O4kp0vE+Ng0BPL0QQTy5FLE+OAU'));
f(511232,atob('xPjwJATy3EOhSsT4SDEE8mxRACPE+OgUT/DADE/0gBEDIIT41ASk+Nw0pPjkNKT47DTE+NA0hPjGNIT4xzTC+IARgvgUwxFg'));
f(511304,atob('AfGAQaH1byHB+Ag1gvgRw9H4BCXE+HghxPgoMaOGhPg2MATxNAIKIQE5E3GTYMLpBAOTYdNgAvEYAvXRT/T+I8TpYBMBI8T4'));
f(511376,atob('pDaAS6NixOkLEf33ef4AKADwN4H990r+AChA0GQjACtA8KeAD6j99y3+3fhIgLjxAA8X0N34VKAI9YBTU0VA8gSBQ/IIAxto'));
f(511448,atob('mEUA8uGAqPXQMk/02DEK9dAw/ffN/QAof/Rpr/33Iv4AKH/0ZK8PqP33CP4TmlKzEpsAK0Dw8oBD8ggDG2gAIZIICqjN6QoT'));
f(511520,atob('DJL996/9ACh/9E2vF+APqP338P0TmpKxEpsAK17RQ/IIAxtoDJMDIE/09CHN6QoBkggKqA2S/feV/QAoptG18bEAGL8BIP73'));
f(511592,atob('Afr+9wr5SksaeKUqQPDBgAAjpPiKMcT4kDH/I4T4iDH/I4T4jDEAI8TpZTPE+JwxASOE+A4y/feL//73f/hWuUPyCAMbaBto'));
f(511664,atob('ATME0P33lv0AKEDwkILU+KQ2ACIDK4T4dCSk+AQkAPCpgFocxPi8MQTrgwPE+KQmLkqaYkPyCAMbaMT4wDHU+EgxACtA8JqA'));
f(511736,atob('CCDk5hWZC0Sg5wE7QPLnMAE4AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/'));
f(511808,atob('AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL8AvwC/AL/D0RXnAL8UEAAQ'));
f(511880,atob('kCwAIEHFBwAA4QDgSbAHAADwBwBFrwcAT/ABCU/0YEMKqM3pCpPN6Qw5/ffn/AAof/SFrk/0gFMKqM34KJDN6Qszzfg0kP33'));
f(511952,atob('2fwAKH/0d64B5wEjzekKOk/qmAJP9IBTCqgMkw2S/ffJ/PzmFZkLRA3nhPiIIZp42XhC6gEipPiKIZtoxPiQMTrntfGxABi/'));
f(512024,atob('ASD+9yf5/vcw+EDnhPjEIQQgTOaU+OAxACt/9GGvhPjhMR5LxPjkMU/0cBEcSP33W/0AKH/0O64BIoT4xCEZSsT4pCEYTRlK'));
f(512096,atob('xPjwIQgixPhkBIT4tQGE+HIExOlMIMTpTgDE6VAAEk7E+CxhPCEoRv33dPqrj5hCHNAPqP33gfsAKH/0FK6d+D0wD6kBM434'));
f(512168,atob('PTD992f86LEJ5gC/XbQHAGAuACBJugcAgH8AIAeyBwA4MwAgKkam8oYmBfE8AVL4BAtG+AQLikL50QEzq4cBI4T4IDQRI8NI'));
f(512240,atob('jfgoMADw6PnASYKyCqj99zX8AUYAKH/03q0IIg+o/fcJ+rtKT/DIcw+ozekPI/33J/wBRgAof/TOrQwiDesCAP33+PkII634'));
f(512312,atob('DDCySwSTsksFk0/2/3Ok+GwzsEsGqgPxEAwWRhhoWWgVRgPFCDNjRSpG99FB8jBTDfEGATBGrfgEMP33WfoFRgAoQPCHgaRK'));
f(512384,atob('AakBIP33WvoFRgAoQPB+gZ34BjCE+HIzAUYcIg+o/ffB+Z34PDAQlUPwBAON+DwwlPhyM434CjApRkHyMlMDImhGzekSVc3p'));
f(512456,atob('FFWt+Agw/fep+Z34AjAj8B8DQ/ADAylGFCJP9IhZCqiN+AIwrfgAkAKu/feX+U/wFAiGS7T4cAMMlQqqD6kOlQqWzfgs0K34'));
f(512528,atob('NID99xH6BUYAKEDwN4EBRhwiD6j99375nfg8MBCVI/AYA0PwGAON+DwwlPhyM434CjApRkHyMVMDImhGzekSVc3pFFWt+Agw'));
f(512600,atob('/fdk+Z34AjCt+ACQI/AfA0PwEwMpRkJGCqiN+AIw/fdV+Rcjrfg0MAqqZUu0+HADDJUPqQ6VCpbN+CzQ/ffQ+QVGAChA8PaA'));
f(512672,atob('AUYcIg+o/fc9+Z34PDAQlUPwAgON+DwwlPhyM434CjApRkHyNFMDImhGzekSVc3pFFWt+Agw/fcl+REjrfgAMJ34AjAj8B8D'));
f(512744,atob('Q/ADAylGQkYKqI34AjD99xX5AiMMk634NDADqw6TCqpES7T4cAMKlg+pzfgs0P33j/kFRgAoQPC1gASbxPiUMwWbC7HE+Jgz'));
f(512816,atob('ASMcIgAhD6iE+GAz/ffy+E/wAAxA9s1DzekPw0/0gEMRkwMjjfhIMK34SsAwSxWTD60PzS9OjfhMwA/GzfhQwJXoBwCG6AcA'));
f(512888,atob('BvEMAIT4VMH99175ACh/9J6sT/b/cyOA1PhIMaBwACs/9K6tlPhoMQArf/SprYT4aTEfS8T4bDEwI4T4XjQHI4T4XzQQI4T4'));
f(512960,atob('YDT+9+D6/fft/UPyCAMbaBtoATNY0P33BfsAKFTQ/fdX+wAoUNH992P7A0YAKH/0aqwOShBoASQa4AC/CNUHAAwAGABhvgcA'));
f(513032,atob('0a4HAPjUBwAAMAAgBDAAIAwwACAcMAAgCa8HAJQsACBNpgcAAOEA4AT6A/EBQgPxAQMYv8L4gBAgK/XRQ/IIBCBo/fcv+wAo'));
f(513104,atob('f/Q5rCNoGGiA8wiIWGj/JGSy7/MFhQAtAdGmRgBHJUYGRiEnP7rwtAAkACUAJgAn8LT5IECyAEf99378KEYa5DC1ATkAJKJC'));
f(513176,atob('AdEAIAXgA10BNA1dq0L20FgbML0KRJFCAPH/MwDRcEcQtRH4AUsD+AFPkUL50RC9A0YT+AErACr70RgaAThwR/i1AL/4vAi8'));
f(513248,atob('nkZwR/i1AL/4vAi8nkZwRwAsACAAEAIHI9G86l94IxXe7xISAAAAAERmdVRhcmcAAAAAACzP/38BAAAAAAAAAAAAAAAAAAAA'));
f(513320,atob('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'));
f(513392,atob('AAAAAAAAAAAAAAAA//8AADIAAAAAkNADJaQHAAGkBwA='));
echo(1);
// include also this line or press enter after echo(1)
// now you may set f function to verify method via "f=verify" and paste bootloader code again to verify it was written correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment