11/06/2021
Decidimos unificar las pruebas estadisticas utilizadas en los genes de este dataset, y analizamos las diferencias en las medias de las poblaciones con la prueba no parametrica de Wilcoxon (no apareada)






















En el caso particular del gen RHOA, este gen presenta una distribucion diferente a los demas genes (una distribucion normal, luego de la transformacion logaritmica), que los otros genes que presentan, por lo que en el caso de este gen, se adjunta la estadistica por la prueba de Welch, ademas de la de Wilcoxon

La informacion se resume en esta tabla
LS0tDQp0aXRsZTogIkFuYWxpc2lzIGRlIGNhbWJpb3MgZW4gbGEgZXhwcmVzaW9uIGdlbmljYSBlbiBwYWNpZW50ZXMgZGUgQ09WSUQxOSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoxMS8wNi8yMDIxDQoNCkRlY2lkaW1vcyB1bmlmaWNhciBsYXMgcHJ1ZWJhcyBlc3RhZGlzdGljYXMgdXRpbGl6YWRhcyBlbiBsb3MgZ2VuZXMgZGUgZXN0ZSBkYXRhc2V0LCB5IGFuYWxpemFtb3MgbGFzIGRpZmVyZW5jaWFzIGVuIGxhcyBtZWRpYXMgZGUgbGFzIHBvYmxhY2lvbmVzIGNvbiBsYSBwcnVlYmEgbm8gcGFyYW1ldHJpY2EgZGUgKldpbGNveG9uKiAobm8gYXBhcmVhZGEpDQoNCg0KYGBge3IgcGFxdWV0ZXMsIGluY2x1ZGU9RkFMU0V9DQojIHBhcXVldGVzDQp7DQogICBsaWJyYXJ5KGdncGxvdDIpDQogIGxpYnJhcnkoY2xpbmZ1bikNCiAgbGlicmFyeShrbml0cikNCn0NCg0KYGBgDQoNCg0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KI2ltcG9ydG8gbGEgZGF0YSB5YSBub3JtYWxpemFkYSB5IGVtcHJvbGlqYWRhDQpjbGluZGF0YSA9IHJlYWRSRFMoJ2NsaW5fZGF0YV9saXN0YV8yMDIwJykNCm5vcm1fY291bnRzID0gcmVhZFJEUygibm9ybV9jb3VudHNfbGlzdGFfMjAyMCIpDQpgYGANCg0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQojIHZhbW9zIGEgZXN0dWRpYXIgbG9zIGdlbmVzDQojIHgxLCB4MiwgeDMsDQojIEVzdGFuIHRvZG9zIGVzb3MgZ2VuZXMgZW4gZWwgZGF0YXNldD8NCg0KIydSSE9BJw0KDQpnZW5lcy5xdWllcm8gPSBjKCdLUE5BMScsJ0tQTkEyJywnS1BOQTMnLCdLUE5BNCcsJ0tQTkE1JywnS1BOQTYnLCdLUE5BNycsICdLUE5CMScsJ1JBQzEnLCAnUkhPQScsICdDREM0MicsJ1BHUCcsJ0FCQ0IxJywgJ0FCQ0MxJywnQUJDQzInLCdBQkNDMycsJ0FCQ0M0JywnQUJDQzUnLCdBQkNDNicsJ0FCQ0MxMCcsJ0FCQ0MxMScsICdES0MxJywgJ1RQNTMnKQ0KDQppZiggYWxsKGdlbmVzLnF1aWVybyAlaW4lIHJvdy5uYW1lcyhub3JtX2NvdW50cykpKXsNCiAgICBwcmludCgndG9kb3MgbG9zIGdlbmVzIGVzdGFuIGVuIGVsIGRhdGFzZXQnKX0gZWxzZSB7DQogICAgICBmYWx0YW50ZXMgPSBnZW5lcy5xdWllcm9bd2hpY2goIWdlbmVzLnF1aWVybyAlaW4lIHJvdy5uYW1lcyhub3JtX2NvdW50cykpXQ0KICAgICAgcHJpbnQocGFzdGUoJ2VsIG8gbG9zIGdlbmVzIHF1ZSBmYWx0YW46JywgZmFsdGFudGVzKSkNCn0NCiAgDQpgYGANCg0KDQoNCmBgYHtyIGVjaG89RkFMU0V9DQojZ3JhZmljYXINCg0KZ2VuZXNfaW50ID0gZ2VuZXMucXVpZXJvDQoNCmdlbmVzPWMoKQ0KZmNzID0gYygpDQpwdmFsMT1jKCkNCnB2YWwyPWMoKQ0KcHZhbDM9YygpDQpwdmFsND1jKCkNCnB2YWw1PWMoKQ0KcHZhbDY9YygpDQpleHAubm9ybT1jKCkNCmV4cC5sLm5vcm09YygpDQppZ3VhbC52YXIgPSBjKCkNCmlndWFsLnZhci5sPWMoKQ0KDQoNCmZvciAoaSBpbiAxOmxlbmd0aChnZW5lc19pbnQpKXsNCiAgZ2VuID0gZ2VuZXNfaW50W2ldDQogIGV4cCA9IGFzLnZlY3Rvcihub3JtX2NvdW50c1twYXN0ZShnZW4pLF0rMSkNCiAgZXhwLmwgPSBhcy52ZWN0b3IobG9nMih0KG5vcm1fY291bnRzW3Bhc3RlKGdlbiksXSsxKSkpDQogIHBvc2l0aXZpdHkgPSBjbGluZGF0YSRwb3NpdGl2aXR5DQogIGRhdGl0b3MgPSBkYXRhLmZyYW1lKHBvc2l0aXZpdHksIGV4cCwgZXhwLmwgKQ0KICBnZW5zdGF0ID0gd2lsY294LnRlc3QoZXhwIH4gcG9zaXRpdml0eSwgcGFpcmVkID0gRkFMU0UpDQogIA0KICBwbG90ZW8gPSBnZ3Bsb3QoZGF0YSA9IGRhdGl0b3MsIGFlcyh4PXBvc2l0aXZpdHksIHk9ZXhwLmwgKSkgKw0KICAgICAgICAgZ2VvbV9qaXR0ZXIoYWVzKHNoYXBlPXBvc2l0aXZpdHksIGNvbG9yPXBvc2l0aXZpdHkpLCBzaXplPTMsIHdpZHRoID0gMC4zKSsNCiAgICAgICAgIHhsYWIoTlVMTCkgKw0KICAgICAgICAgeWxhYihwYXN0ZShnZW4sICJleHByZXNzaW9uIFxuIGxvZzIgKG5vcm0gY291bnRzICsxKSIpKSArDQogICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIikgKw0KICAgICAgICAgdGhlbWVfYncoKSArDQogICAgICAgICB0aGVtZShheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE1KSwNCiAgICAgICAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNSksDQogICAgICAgICAgcGxvdC50aXRsZSA9ZWxlbWVudF90ZXh0KHNpemUgPSAyNSksDQogICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gJ25vbmUnKSArDQogICAgICAgICBzdGF0X3N1bW1hcnkoZnVuPW1lYW4sDQogICAgICAgICAgICAgICAgICBnZW9tPSJwb2ludCIsDQogICAgICAgICAgICAgICAgIHNoYXBlPSAnXycsDQogICAgICAgICAgICAgICAgIHNpemU9MTQsDQogICAgICAgICAgICAgICAgIGNvbG91cj0gYygnI2I1M2QzNScsICcjMDY2ZTcwJykpDQogICAgICAgICANCiAgICAgDQogIA0KICBpZihnZW4gIT0gJ1JIT0EnKXtwcmludChwbG90ZW8gICsgZ2dwbG90Mjo6YW5ub3RhdGUoInRleHQiLCB4ID0gMS41LCB5ID0gbWF4KGV4cC5sKSwgbGFiZWwgPSBwYXN0ZShyb3VuZChnZW5zdGF0JHAudmFsdWUsIGRpZ2l0cyA9IDQpKSwgc2l6ZSA9IDYpKSAgfQ0KICANCiAgYXNzaWduKHBhc3RlKGdlbiwncGxvdGVvX0RHRScsIHNlcCA9ICdfJyksIHBsb3RlbyAgKQ0KICANCmdlbmVzW2ldPWdlbg0KDQpmYyA9IHJvdW5kKGV4cFtwb3NpdGl2aXR5ID09ICdDT1ZJRDE5J10vZXhwW3Bvc2l0aXZpdHkgPT0gJ0hFQUxUSFknXSwgZGlnaXRzID0gMykNCmZjc1tpXSA9IGZjDQoNCnR0ID0gdC50ZXN0KGV4cCB+IHBvc2l0aXZpdHkpDQpwdmFsMVtpXT10dCRwLnZhbHVlDQoNCnR0ID10LnRlc3QoZXhwLmwgfiBwb3NpdGl2aXR5KQ0KcHZhbDJbaV09dHQkcC52YWx1ZQ0KDQp0dCA9dC50ZXN0KGV4cCB+IHBvc2l0aXZpdHksIHZhci5lcXVhbCA9IFQpDQpwdmFsM1tpXT10dCRwLnZhbHVlDQoNCnR0ID10LnRlc3QoZXhwLmwgfiBwb3NpdGl2aXR5LCB2YXIuZXF1YWwgPSBUKQ0KcHZhbDRbaV09dHQkcC52YWx1ZQ0KDQp0dCA9d2lsY294LnRlc3QoZXhwIH4gcG9zaXRpdml0eSkNCnB2YWw1W2ldPXR0JHAudmFsdWUNCg0KdHQgPXdpbGNveC50ZXN0KGV4cC5sIH4gcG9zaXRpdml0eSkNCnB2YWw2W2ldPXR0JHAudmFsdWUgIA0KDQoNCm5vciA9IHNoYXBpcm8udGVzdChleHApICNFbCBwIG1lIHRpZW5lIHF1ZSBkYXIgbWF5b3IgYSAwLjA1ICANCg0Kbm9yLmwgPSBzaGFwaXJvLnRlc3QoZXhwLmwpDQoNCg0KDQojIDMuIExBUyBET1MgUE9CTEFDSU9ORVMgVElFTkVOIExBIE1JU01BIFZBUklBTlpBPw0KcmVzLmZ0ZXN0IDwtIHZhci50ZXN0KGV4cCB+IHBvc2l0aXZpdHkpICMgRWwgcCBtZSB0aWVuZSBxdWUgZGFyIG1heW9yIGEgMC4wNSAgDQpyZXMuZnRlc3QubCA8LSB2YXIudGVzdChleHAubCB+IHBvc2l0aXZpdHkpDQoNCmV4cC5ub3JtW2ldPW5vciRwLnZhbHVlPjAuMDUNCmV4cC5sLm5vcm1baV09bm9yLmwkcC52YWx1ZT4wLjA1DQppZ3VhbC52YXJbaV0gPSByZXMuZnRlc3QkcC52YWx1ZSA+IDAuMDUNCmlndWFsLnZhci5sW2ldPSByZXMuZnRlc3QubCRwLnZhbHVlID4gMC4wNQ0KDQogDQoNCn0NCg0KDQojICMgdGFibGEgcGFyYSBjb3JyZWxhY2lvbmVzIHkgZWRhZA0KIyANCiMgZXhwLmdlbiA9IGFzLmRhdGEuZnJhbWUodChub3JtX2NvdW50c1tnZW5lcy5xdWllcm8sXSkpDQojIA0KIyANCiMgdGFibGEgPSBtZXJnZShjbGluZGF0YSwgZXhwLmdlbiwgYnkgPSAwKQ0KIyAjZW1wcm9saWpvDQojIHJvd25hbWVzKHRhYmxhKT10YWJsYVssMV0NCiMgdGFibGEgPSB0YWJsYVssLTFdDQojIHRhYmxhJGN0ID0gYXMubnVtZXJpYyh0YWJsYSRjdCkNCiMgdGFibGEkYWdlX2NhdCA9IGZhY3Rvcih0YWJsYSRhZ2VfY2F0LCBsZXZlbHMgPSBjKCI8IDMwIiwgIjMwcyIsICc0MHMnLCAnNTBzJywgJzYwcycsICc3MCsnKSwgb3JkZXJlZCA9IFRSVUUpDQojIA0KIyAjIGNvcnJlbGFjIGN0DQojIA0KIyB0YWJsYS5jb3IgPSB0YWJsYVt0YWJsYSRwb3NpdGl2aXR5ID09ICdDT1ZJRDE5JyAmICFpcy5uYSh0YWJsYSRjdCksXQ0KIyBmb3IgKGkgaW4gMTpsZW5ndGgoZ2VuZXMucXVpZXJvKSl7DQojICAgZ2VuID0gZ2VuZXMucXVpZXJvW2ldDQojICAgZXhwID0gbG9nMih0YWJsYS5jb3JbLGdlbl0rMSkNCiMgICBjYXJnYSA9IC10YWJsYS5jb3IkY3QNCiMgICBzdGF0PSBjb3IudGVzdChleHAsIGNhcmdhLCBtZXRob2QgPSAic3BlYXJtYW4iLCB1c2UgPSAiY29tcGxldGUub2JzIiwgZXhhY3QgPSBGQUxTRSkNCiMgICBkYXRpdG9zID0gZGF0YS5mcmFtZShleHAsIGNhcmdhKQ0KIyAgIA0KIyAgIHBsb3Rlbz0gZ2dwbG90KGRhdGl0b3MsIGFlcyh4ID0gY2FyZ2EsIHkgPWV4cCkpICsNCiMgICAgIGdlb21fcG9pbnQoc2l6ZSA9IDIsIG5hLnJtID0gVFJVRSwgY29sb3IgPSAnIzAwQkZDNCcsIHNoYXBlID0gMTcpICsNCiMgICAgIHlsYWIocGFzdGUoZ2VuLCAiZXhwcmVzc2lvbiBcbiBsb2cyIChub3JtIGNvdW50cyArMSkiKSkgKw0KIyAgICAgeGxhYiggIiBWaXJhbCBsb2FkICgtY3QgTjEpIikgKw0KIyAgICAgI3lsaW0obWluKGV4cCktMSxtYXgoZXhwKSs0KSArDQojICAgICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMobWluKGV4cCktMSxtYXgoZXhwKSs0KSkrDQojICAgICB0aGVtZV9idygpICsNCiMgICAgIHRoZW1lKGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTUpLA0KIyAgICAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTUpLA0KIyAgICAgICAgICAgcGxvdC50aXRsZSA9ZWxlbWVudF90ZXh0KHNpemUgPSAyNSksDQojICAgICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAnbm9uZScpICsNCiMgICAgIGdlb21fc21vb3RoKG1ldGhvZD0ibG0iLCBjb2w9ImJsYWNrIikgDQojICAgcGxvdGVvDQojICAgciA9IHJvdW5kKGFzLm51bWVyaWMoc3RhdCRlc3RpbWF0ZSksIGRpZ2l0cyA9IDQpDQojICAgcCA9IHJvdW5kKGFzLm51bWVyaWMoc3RhdCRwLnZhbHVlKSwgZGlnaXRzID0gNCkNCiMgICBwcmludChwbG90ZW8gICsgZ2dwbG90Mjo6YW5ub3RhdGUoInRleHQiLCB4ID0gLTIwLCB5ID0gbWF4KGV4cCkrMywgbGFiZWwgPSBwYXN0ZSgnQ29ycmVsYWNpb24gU3BlYXJtYW46JywgciwgJ1xucCB2YWxvcjonLCBwKSwgc2l6ZSA9IDUpKSAgDQojICAgYXNzaWduKHBhc3RlKGdlbiwncGxvdGVvX2Nvcl9jdCcsIHNlcCA9ICdfJyksIHBsb3RlbyAgKQ0KIyAgIA0KIyB9DQojIA0KIyANCiMgIyBncmFmaWNvcyBwb3IgZWRhZA0KIyANCiMgdGFibGEkZ3J1cG8gPSBwYXN0ZSh0YWJsYSRhZ2VfY2F0LCAnXG4nLCB0YWJsYSRwb3NpdGl2aXR5KQ0KIyAjbGV2ZWxzKGFzLmZhY3Rvcih0YWJsYSRncnVwbykpDQojIHRhYmxhJGdydXBvIDwtIGZhY3Rvcih0YWJsYSRncnVwbywgbGV2ZWxzID0gYygiPCAzMCBcbiBIRUFMVEhZIiwgIjMwcyBcbiBIRUFMVEhZIiwgIjQwcyBcbiBIRUFMVEhZIiwgIjUwcyBcbiBIRUFMVEhZIiwgIjYwcyBcbiBIRUFMVEhZIiwgIjcwKyBcbiBIRUFMVEhZIiwgIjwgMzAgXG4gQ09WSUQxOSIsICIzMHMgXG4gQ09WSUQxOSIsICI0MHMgXG4gQ09WSUQxOSIsICI1MHMgXG4gQ09WSUQxOSIsICI2MHMgXG4gQ09WSUQxOSIsICI3MCsgXG4gQ09WSUQxOSIpLCBvcmRlcmVkID0gVFJVRSkNCiMgI2xldmVscyh0YWJsYSRncnVwbykNCiMgDQojIA0KIyB0YWJsYS5ncnVwbyA9IHRhYmxhWyFpcy5uYSh0YWJsYSRhZ2VfY2F0KSwgXQ0KIyANCiMgDQojIGZvciAoaSBpbiAxOmxlbmd0aChnZW5lcy5xdWllcm8pKXsNCiMgICBnZW4gPSBnZW5lcy5xdWllcm9baV0NCiMgICBleHAgPSBsb2cyKHRhYmxhLmdydXBvWyxnZW5dKzEpDQojICAgZ3J1cGl0bz0gdGFibGEuZ3J1cG8kZ3J1cG8NCiMgICBwb3NpdGl2aWRhZCA9IHRhYmxhLmdydXBvJHBvc2l0aXZpdHkNCiMgICBzdGF0LmMuaT0gam9uY2toZWVyZS50ZXN0KHg9IGV4cFtwb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZz0gZ3J1cGl0b1twb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPSAnaW5jcmVhc2luZycsDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucGVybSA9IDUwMCkNCiMgICBzdGF0LmMuZD0gam9uY2toZWVyZS50ZXN0KHg9IGV4cFtwb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZz0gZ3J1cGl0b1twb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPSAnZGVjcmVhc2luZycsDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucGVybSA9IDUwMCkNCiMgICBzdGF0LmMudD0gam9uY2toZWVyZS50ZXN0KHg9IGV4cFtwb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZz0gZ3J1cGl0b1twb3NpdGl2aWRhZCA9PSAnQ09WSUQxOSddLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmUgPSAndHdvLnNpZGVkJywNCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5wZXJtID0gNTAwKQ0KIyAgIHN0YXQuaC5pPSBqb25ja2hlZXJlLnRlc3QoeD0gZXhwW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnPSBncnVwaXRvW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZSA9ICdpbmNyZWFzaW5nJywNCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5wZXJtID0gNTAwKQ0KIyAgIHN0YXQuaC5kPSBqb25ja2hlZXJlLnRlc3QoeD0gZXhwW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnPSBncnVwaXRvW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZSA9ICdkZWNyZWFzaW5nJywNCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5wZXJtID0gNTAwKQ0KIyAgIHN0YXQuaC50PSBqb25ja2hlZXJlLnRlc3QoeD0gZXhwW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnPSBncnVwaXRvW3Bvc2l0aXZpZGFkID09ICdIRUFMVEhZJ10sDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZSA9ICd0d28uc2lkZWQnLA0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBlcm0gPSA1MDApDQojICAgDQojICAgDQojICAgZGF0aXRvcyA9IGRhdGEuZnJhbWUoZXhwLCBncnVwaXRvLCBwb3NpdGl2aWRhZCkNCiMgICANCiMgICBwbG90ZW8gPSBnZ3Bsb3QoZGF0aXRvcywgYWVzKHggPSBncnVwaXRvLCB5ID0gZXhwKSkgKw0KIyAgICAgZ2VvbV9qaXR0ZXIoIHdpZHRoID0gMC4yICwgYWVzKHNoYXBlPSBwb3NpdGl2aWRhZCwgY29sb3IgPSBwb3NpdGl2aWRhZCksIHNpemUgPSAyKSsNCiMgICAgIHhsYWIoTlVMTCkgKw0KIyAgICAgeWxhYihwYXN0ZShnZW4sJ2V4cHJlc3Npb24gUk5BLXNlcSBcbiBsb2cyIChub3JtIGNvdW50cyArMSknKSkgKw0KIyAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIpICsNCiMgICAgICN5bGltKC0wLjAxLCBtYXgobG9nMih0YWJsYS5ncnVwb1ssJ1BHUCddKzEpKzUpKSArDQojICAgICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9YygtMC4wMSwgbWF4KGxvZzIodGFibGEuZ3J1cG9bLGdlbl0rMSkrNSkpKSArDQojICAgICB0aGVtZV9idygpICsNCiMgICAgIHRoZW1lKGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gNyksDQojICAgICAgICAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNSksDQojICAgICAgICAgICBwbG90LnRpdGxlID1lbGVtZW50X3RleHQoc2l6ZSA9IDI1KSwNCiMgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICdub25lJykgKw0KIyAgICAgc3RhdF9zdW1tYXJ5KGZ1bj1tZWFuLA0KIyAgICAgICAgICAgICAgICAgIGdlb209InBvaW50IiwNCiMgICAgICAgICAgICAgICAgICBzaGFwZT0gJ18nLA0KIyAgICAgICAgICAgICAgICAgIHNpemU9OCApICMsDQojICAgI2NvbG91cj0gYygnI2I1M2QzNScsICcjMDY2ZTcwJykpDQojIA0KIyAgIHN0YXQuaXpxID0gcGFzdGUoInAudHJlbmQgaW5jcmVhc2luZzogIixzdGF0LmguaSRwLnZhbHVlLA0KIyAgICAgICAgICAgICAgICAgICAgJ1xucC50cmVuZCBkZWNyZWFzaW5nOiAnLHN0YXQuaC5kJHAudmFsdWUsDQojICAgICAgICAgICAgICAgICAgICAnXG5wLnRyZW5kIHR3by5zaWRlZDogJyxzdGF0LmgudCRwLnZhbHVlLCBzZXAgPSAnJykNCiMgICBzdGF0LmRlciA9IHBhc3RlKCJwLnRyZW5kIGluY3JlYXNpbmc6ICIsc3RhdC5jLmkkcC52YWx1ZSwNCiMgICAgICAgICAgICAgICAgICAgICdcbnAudHJlbmQgZGVjcmVhc2luZzogJyxzdGF0LmMuZCRwLnZhbHVlLA0KIyAgICAgICAgICAgICAgICAgICAgJ1xucC50cmVuZCB0d28uc2lkZWQ6ICcsc3RhdC5jLnQkcC52YWx1ZSwgc2VwID0gJycpDQojICAgDQojICAgc3RhdC5penEuc2ltcCA9IHBhc3RlKCJwLnRyZW5kIGluY3JlYXNpbmc6ICIsc3RhdC5oLmkkcC52YWx1ZSwNCiMgICAgICAgICAgICAgICAgICAgICdcbnAudHJlbmQgZGVjcmVhc2luZzogJyxzdGF0LmguZCRwLnZhbHVlLCBzZXAgPSAnJykNCiMgICBzdGF0LmRlci5zaW1wID0gcGFzdGUoInAudHJlbmQgaW5jcmVhc2luZzogIixzdGF0LmMuaSRwLnZhbHVlLA0KIyAgICAgICAgICAgICAgICAgICAgJ1xucC50cmVuZCBkZWNyZWFzaW5nOiAnLHN0YXQuYy5kJHAudmFsdWUsIHNlcCA9ICcnKQ0KIyAgIA0KIyAgIHByaW50KHBsb3RlbyAgKyBnZ3Bsb3QyOjphbm5vdGF0ZSgidGV4dCIsIHggPSBjKDMsOSksIHkgPSBtYXgoZXhwKSsyLCBsYWJlbCA9IGMoc3RhdC5penEuc2ltcCwgc3RhdC5kZXIuc2ltcCksIHNpemUgPSA1KSkgIA0KIyAgIGFzc2lnbihwYXN0ZShnZW4sJ3Bsb3Rlb19ncnVwbycsIHNlcCA9ICdfJyksIHBsb3RlbyAgKQ0KIyB9DQojIA0KDQpyZXN1bHRhZG9zID0gZGF0YS5mcmFtZShnZW5lcywgZmNzLCBwdmFsMSwgcHZhbDIsIHB2YWwzLCBwdmFsNCwgcHZhbDUsIHB2YWw2KQ0KcmVzdWx0YWRvc1ssLWMoMSwyKV0gPSByb3VuZChyZXN1bHRhZG9zWywtYygxLDIpXSwgNCkNCg0KcHJlc3VwID0gZGF0YS5mcmFtZShleHAubm9ybSwgZXhwLmwubm9ybSwgaWd1YWwudmFyLCBpZ3VhbC52YXIubCkNCg0KY29uZmxpY3QgPSAocmVzdWx0YWRvcyRwdmFsMiA8IDAuMDUgJiByZXN1bHRhZG9zJHB2YWw2ID4gMC4wNSkgfCAocmVzdWx0YWRvcyRwdmFsMiA+IDAuMDUgJiByZXN1bHRhZG9zJHB2YWw2IDwgMC4wNSkNCnJlc3VsdGFkb3MkY29uZmxpY3RvID0gY29uZmxpY3QNCg0KZmluYWwgPSBjYmluZChyZXN1bHRhZG9zLCBwcmVzdXApDQoNCmNvbG5hbWVzKGZpbmFsKVszOjhdID0gYygnV2VsY2gnLCAnV2VsY2gubG9nJywgJ3N0dWRlbnQnLCAnc3R1ZGVudC5sb2cnLCAnd2lsY294JywgJ3dpbGNveC5sb2cnKQ0KDQoja2FibGUoZmluYWwpDQoNCmBgYA0KDQoNCkVuIGVsIGNhc28gcGFydGljdWxhciBkZWwgZ2VuICoqUkhPQSoqLCBlc3RlIGdlbiBwcmVzZW50YSB1bmEgZGlzdHJpYnVjaW9uIGRpZmVyZW50ZSBhIGxvcyBkZW1hcyBnZW5lcyAodW5hIGRpc3RyaWJ1Y2lvbiBub3JtYWwsIGx1ZWdvIGRlIGxhIHRyYW5zZm9ybWFjaW9uIGxvZ2FyaXRtaWNhKSwgcXVlIGxvcyBvdHJvcyBnZW5lcyBxdWUgcHJlc2VudGFuLCBwb3IgbG8gcXVlIGVuIGVsIGNhc28gZGUgZXN0ZSBnZW4sIHNlIGFkanVudGEgbGEgZXN0YWRpc3RpY2EgcG9yIGxhIHBydWViYSBkZSAqV2VsY2gqLCBhZGVtYXMgZGUgbGEgZGUgKldpbGNveG9uKg0KDQoNCg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KI2dyYWZpY2FyDQpwcmludChSSE9BX3Bsb3Rlb19ER0UgICsgZ2dwbG90Mjo6YW5ub3RhdGUoInRleHQiLCB4ID0gMS41LCB5ID0xMywgDQogICAgICBsYWJlbCA9ICdXaWxjb3guOiAwLjA1OCAvLyBXZWxjaDogMC4wMzYnLCBzaXplID0gNSkpICANCiAgDQoNCg0KYGBgDQoNCg0KDQpMYSBpbmZvcm1hY2lvbiBzZSByZXN1bWUgZW4gZXN0YSB0YWJsYQ0KYGBge3IgZWNobz1GQUxTRX0NCmxpYnJhcnkoRFQpDQoNCmZpbmFsID0gZmluYWxbLGMoJ2dlbmVzJywgJ2ZjcycsICd3aWxjb3gnLCAnV2VsY2gnKV0NCmZpbmFsJFdlbGNoW2ZpbmFsJGdlbmVzICE9ICdSSE9BJ10gPSBOQQ0KDQpjb2xuYW1lcyhmaW5hbCkgPSBjKCdHZW4nLCAnRm9sZC1DaG5nZScsICdwLXZhbHVlIChXaWxjb3gpJywgJ3AtdmFsdWUgKFdlbGNoKScpDQoNCmRhdGF0YWJsZShmaW5hbCkNCg0KIyBkYXRhdGFibGUoZmluYWwpICU+JSBmb3JtYXRTdHlsZSgNCiMgICBjKCdXZWxjaCcsICdXZWxjaC5sb2cnLCAnc3R1ZGVudCcsICdzdHVkZW50LmxvZycsICd3aWxjb3gnLCAnd2lsY294LmxvZycpLA0KIyAgIGJhY2tncm91bmRDb2xvciA9IHN0eWxlSW50ZXJ2YWwoMC4wNTAwMSwgYygneWVsbG93JywgJ3doaXRlJykpKSAlPiUgDQojICAgIGZvcm1hdFN0eWxlKGNvbHVtbnMgPSBjKDg6MTIpLCBiYWNrZ3JvdW5kQ29sb3IgPSBzdHlsZUVxdWFsKGMoVFJVRSwgRkFMU0UpLCBjKCdncmVlbicsICd3aGl0ZScpKQ0KIyApDQoNCg0KYGBgDQoNCg==