From a97925c5c76c134f36bd3e9908ce5803622614f8 Mon Sep 17 00:00:00 2001 From: GabrielNakamura Date: Tue, 9 Jul 2024 16:16:25 -0300 Subject: [PATCH] atualizando html de conflitos e arrumando cronograma --- Darwin-core-LNP.html | 4 +-- Organizacao_dir_local.html | 4 +-- basics_git.html | 7 ++-- colabs_github.html | 4 +-- commits-travel.html | 12 +++++-- conflitos.html | 70 ++++++++++++++++++++++++++++---------- dados_abertos.html | 4 +-- gitgnore.html | 4 +-- index.html | 5 ++- intro_ciencia_aberta.html | 4 +-- metadata_EML.html | 4 +-- pre-registro.html | 4 +-- publicacoes.html | 4 +-- releasing.html | 4 +-- renv-basics.html | 4 +-- rmarkdown-basics.html | 4 +-- rocker_basics.html | 4 +-- sites-basics.html | 4 +-- targets_basics.html | 4 +-- 19 files changed, 97 insertions(+), 57 deletions(-) diff --git a/Darwin-core-LNP.html b/Darwin-core-LNP.html index 87a9043..1401850 100644 --- a/Darwin-core-LNP.html +++ b/Darwin-core-LNP.html @@ -11,7 +11,7 @@ - + Metadata com Living Norway package @@ -549,7 +549,7 @@

Metadata com Living Norway package

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/Organizacao_dir_local.html b/Organizacao_dir_local.html index de9a5e0..dfdc51b 100644 --- a/Organizacao_dir_local.html +++ b/Organizacao_dir_local.html @@ -11,7 +11,7 @@ - + Organizando o seu trabalho localmente @@ -545,7 +545,7 @@

Organizando o seu trabalho localmente

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/basics_git.html b/basics_git.html index 713ab0b..6e35ff8 100644 --- a/basics_git.html +++ b/basics_git.html @@ -11,7 +11,7 @@ - + Controle de versão @@ -550,7 +550,7 @@

Controle de versão

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

@@ -1044,9 +1044,10 @@

Referências importantes

href="http://www2.stat.duke.edu/~rcs46/lectures_2015/01-markdown-git/slides/naming-slides/naming-slides.pdf">Jenny Bryan

Hadley Wickham

+

Oh Shit, Git!?!

-
LS0tDQp0aXRsZTogJ0NvbnRyb2xlIGRlIHZlcnPDo28nDQphdXRob3I6ICJHYWJyaWVsIE5ha2FtdXJhIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBodG1sX2RvY3VtZW50DQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGZpZy5hbGlnbiA9ICJjZW50ZXIiKQ0KYGBgDQoNCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0Ka2xpcHB5OjprbGlwcHkoKQ0KYGBgDQoNCiMgQXByZXNlbnRhw6fDo28NCg0KTmVzdGEgcHJpbWVpcmEgc2XDp8OjbyBpcmVpIGFwcmVzZW50YXIgYXMgcHJpbmNpcGFpcyBmZXJyYW1lbnRhcyBxdWUgdXRpbGl6YXJlbW9zIHBhcmEgbm9zIGFqdWRhciBuYSBvcmdhbml6YcOnw6NvIGNvbXB1dGFjaW9uYWwgZGUgZGFkb3MsIHNjcmlwdHMsIGFuw6FsaXNlcyBlIHByb2pldG9zIGNpZW50w61maWNvcyBlbSBnZXJhbC4gRXN0YXMgZmVycmFtZW50YXMgaXLDo28gYXV4aWxpYXIgZGVzZGUgYSBvcmdhbml6YcOnw6NvIGxvY2FsIGRlIHNldXMgZGFkb3MgYXTDqSBhIGRpc3BvbmliaWxpemHDp8OjbyBkZXN0ZXMgZGFkb3MgZW0gcGxhdGFmb3JtYXMgZGUgYWNlc3NvIGFiZXJ0by4gVsOhcmlhcyBkZWxhcyBqw6EgZGV2ZW0gc2VyIHZlbGhhcyBjb25oZWNpZGFzIHBvciB2b2PDqnMsIHBvciBleGVtcGxvLCBvIFJTdHVkaW8sIGVudMOjbyBkaXNwZW5zYW0gbWFpb3JlcyBhcHJlc2VudGHDp8O1ZXMuIFBvciBpc3NvLCBncmFuZGUgcGFydGUgZGVzdGUgZG9jdW1lbnRvIHZhaSB0cmF0YXIgZGUgdW1hIGZlcnJhbWVudGEgYXTDqSBiZW0gY29uaGVjaWRhIHBlbG8gbm9tZSwgbWFzIHF1ZSBwcmEgbXVpdGEgZ2VudGUgcG9kZSBwYXJlY2VyIGNvaXNhIGRlIG91dHJvIG11bmRvOiBvICoqR2l0KiouIFZvY8OqcyB2ZXLDo28gcXVlIGNvbmhlY2VtIG1haXMgZGVsZSBkbyBxdWUgaW1hZ2luYW0sIGUgcXVlIG11aXRhcyBkYXMgZnVuw6fDtWVzIHF1ZSBlbGUgcG9zc2liaWxpdGEgcmVhbGl6YXIgbsOzcyBqw6EgZmF6ZW1vcyBlbSBub3NzbyBkaWEtYS1kaWEgYXRyYXbDqXMgZGUgb3V0cm9zIGFwbGljYXRpdm9zLCBwb3LDqW0sIGNvbSBtYWlzIGVmaWNpw6puY2lhIGUgY29udHJvbGUgZGFzIGHDp8O1ZXMuDQoNCiMjIFBhY290ZXMgbmVjZXNzw6FyaW9zIA0KDQpQYXJhIGV4ZWN1dGFyIG9zIGPDs2RpZ29zIGRlc3RhIHBhcnRlIMOpIGltcG9ydGFudGUgdGVyIG9zIHNlZ3VpbnRlcyBwYWNvdGVzIGluc3RhbGFkb3M6IGB1c2V0aGlzYCwgYGRldnRvb2xzYCBlIGBnaXRjcmVkc2ANCg0KVm9jw6ogcG9kZSByZWFsaXphciBhIGluc3RhbGHDp8OjbyB1dGlsaXphbmRvIGEgc2VndWludGUgbGluaGEgZGUgY8OzZGlnbzoNCg0KYGBge3IgbGlicmFyaWVzUmVhZCwgZWNobz1UUlVFLCBldmFsPVRSVUV9DQpsaWJzIDwtIGMoInVzZXRoaXMiLCAiZGV2dG9vcyIsICJnaXRjcmVkcyIpDQppZiAoIXJlcXVpcmVOYW1lc3BhY2UobGlicywgcXVpZXRseSA9IFRSVUUpKXsNCiAgICBpbnN0YWxsLnBhY2thZ2VzKGxpYnMpDQogIH0NCmBgYA0KDQpDYXNvIHZvY8OqIG7Do28gdGVuaGEgb3MgcGFjb3RlcyBhY2ltYSBjaXRhZG9zIGEgaW5zdGFsYcOnw6NvIHNlcsOhIHJlYWxpemFkYS4gQ2FzbyBqw6EgdGVuaGEgZW0gc2V1IGNvbXB1dGFkb3IsIG5hZGEgaXLDoSBhY29udGVjZXIuDQoNCiMgSGVsbG8gR2l0IC0gSW50cm9kdcOnw6NvIGFvIHVzbyBkZSBzaXN0ZW1hIGRlIGNvbnRyb2xlIGRlIHZlcnPDtWVzDQoNCk8gR2l0IHRyYXRhLXNlIGRlIHVtIHNpc3RlbWEgZGUgY29udHJvbGUgZGUgdmVyc8O1ZXMsIG1hcyBhZmluYWwsIG8gcXVlIMOpIHVtIHNpc3RlbWEgZGUgY29udHJvbGUgZGUgdmVyc8O1ZXM/IEVzdGFtb3MgbWFpcyBhY29zdHVtYWRvcyBkbyBxdWUgaW1hZ2luYW1vcyBxdWFuZG8gbyBhc3N1bnRvIMOpIGNvbnRyb2xlIGRlIHZlcnPDtWVzLCBhcGVzYXIgZGUgcGFyZWNlciBhbGdvIGRlIG91dHJvIG11bmRvLiBVbSBleGVtcGxvIHF1ZSB0b2RvcyBuw7NzIGVzdGFtb3MgYWNvc3R1bWFkb3Mgw6kgb2ZlcmVjaWRvIHBlbG8gZWRpdG9yIGRlIHRleHRvIFdvcmQsIHF1YW5kbyBsaWdhbW9zIGEgb3DDp8OjbyAiVHJhY2sgY2hhbmdlcyIuIEFvIGZhemVybW9zIGlzc28gZXN0YW1vcyBjb250cm9sYW5kbyB0b2RhcyBhcyBtb2RpZmljYcOnw7VlcyBxdWUgZmF6ZW1vcyBlbSB1bSBkb2N1bWVudG8uIE8gR2l0IGZheiBhIG1lc21hIGNvaXNhLCBwb3LDqW0gcGFyYSB1bWEgcGFzdGEgaW50ZWlyYSAob3UgKmRpcmV0w7NyaW8qLCBuYSBsaW5ndWFnZW0gZG8gY29udHJvbGUgZGUgdmVyc8O1ZXMpLg0KDQpQb3J0YW50bywgbyBHaXQgbmFkYSBtYWlzIMOpIHF1ZSB1bSBzaXN0ZW1hIGNyaWFkbyBwYXJhIHJlYWxpemFyIG8gcmFzdHJlaW8gZGUgdG9kYSBlIHF1YWxxdWVyIG1vZGlmaWNhw6fDo28gZGUgYXJxdWl2b3MgZGVudHJvIGRlIHVtYSBwYXN0YSwgdXRpbGl6YW5kbyBhIHRlcm1pbm9sb2dpYSBkbyB2ZXJzaW9uYW1lbnRvLCB0dWRvIG8gcXVlIMOpIGZlaXRvIGVtIHVtIGRpcmV0w7NyaW8gYXNzb2NpYWRvIGFvIEdpdCDDqSAqb2JzZXJ2YWRvKiAoKndhdGNoKiBuYSBsaW5ndWFnZW0gZG8gdmVyc2lvbmFtZW50bykuDQoNCiMjIEdpdCBlIEdpdEh1Yg0KDQpUZXIgYSBwb3NzaWJpbGlkYWRlIGRlIGNvbnRyb2xhciBhcyB2ZXJzw7VlcyBkb3MgZG9jdW1lbnRvcyBqw6Egw6kgYm9tLCBpbWFnaW5lLCBhbMOpbSBkaXNzbywgdGVyIHVtIGxvY2FsIHJlbW90byBvbmRlIHR1ZG8gaXNzbyBmaWNhIGd1YXJkYWRvLiBPdSBzZWphLCBzZSBzZXUgY29tcHV0YWRvciBxdWVicmFyLCBmb3Igcm91YmFkbywgcGlmYXIsIG91IHNlIHZvY8OqIHRyb2NhLWxvLCB0dWRvIGVzdGFyw6Egc2VndXJvIGVtIHVtIGx1Z2FyIGNoYW1hZG8gR2l0SHViLg0KDQpQb3J0YW50bywgR2l0IGUgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tLykgc8OjbyBjb2lzYXMgZGlzdGludGFzLiBPIEdpdEh1YiDDqSBvIEdvb2dsZURyaXZlIChvdSBvIE9uZURyaXZlKSBkb3MgY8OzZGlnb3MuIEVsZSB0ZW0gY29tbyBmdW7Dp8OjbyBhcm1hemVuYXIgcmVtb3RhbWVudGUgdG9kb3Mgb3MgdHJhYmFsaG9zIHF1ZSBzw6NvIGZlaXRvcyBsb2NhbG1lbnRlIGUgcXVlIGVzdMOjbyBzZW5kbyBtb25pdG9yYWRvcyBwZWxvIEdpdCwgbWFzIGNvbSBtdWl0byBtYWlzIHBvdGVuY2lhbGlkYWRlcyBlIGNvbnRyb2xlIGRlIGFybWF6ZW5hbWVudG8gcXVlIGFzIGZlcnJhbWVudGFzIGRvIEJpbGwgR2F0ZXMuIFBvciBleGVtcGxvLCBpbWFnaW5lIGd1YXJkYXIgdW0gc2l0ZSBpbnRlaXJvIG5vIEdvb2dsZSBEcml2ZSwgb3UgdW0gcGFjb3RlIGVzdGF0w61zdGljbyBxdWUgdm9jw6ogZXNjcmV2ZXUsIGUgYWluZGEgZGlzcG9uaWJpbGl6YXIgZXNzYXMgY29pc2FzIHBhcmEgb3V0cmFzIHBlc3NvYXMuLi4gcGFyZWNlIGNvbXBsaWNhZG8gc2UgdXNhcm1vcyBhcyBmZXJyYW1lbnRhcyBjb21lcmNpYWlzIG1haXMgY29tdW5zLCBtYXMgY29tIG8gR2l0SHViIHR1ZG8gaXNzbyBzZSB0b3JuYSBwb3Nzw612ZWwgc2VyIHJlYWxpemFkbyBjb20gZmFjaWxpZGFkZQ0KDQojIyBHaXQgZSBHaXQgY2xpZW50DQoNClRlbW9zIHVtYSBmZXJyYW1lbnRhIHF1ZSBwb3NzaWJpbGl0YSBvIHZlcnNpb25hbWVudG8gKG8gR2l0KSwgb3V0cmEgcXVlIHBvc3NpYmlsaXRhIG8gYXJtYXplbmFtZW50bywgY29sYWJvcmHDp8OjbywgY29tcGFydGlsaGFtZW50byAoR2l0SHViKSwgbWFzIGNvbW8gY29udHJvbGFtb3MgZXNzYXMgZmVycmFtZW50YXM/IMOJIGHDrSBxdWUgZW50cmEgbyBxdWUgY2hhbWFtb3MgZGUgKipHaXQgY2xpZW50KioNCg0KVW1hIHNpbXBsZXMgYW5hbG9naWEgcGFyYSBlbnRlbmRlciBhIGRpZmVyZW7Dp2EgZW50cmUgdW0gR2l0IGNsaWVudCBlIG8gR2l0IMOpIGEgZGlmZXJlbsOnYSBlbnRyZSBSIGUgUlN0dWRpby4gTyBSIMOpIGEgZmVycmFtZW50YSBvbmRlIG9zIHByb2Nlc3NvcyBzw6NvIHJlYWxpemFkb3MsIG8gUlN0dWRpbyDDqSB1bWEgaW50ZXJmYWNlIGVzcGVjw61maWNhIGUgYW1pZ8OhdmVsIHBhcmEgbyB1c28gZG8gUi4gRGEgbWVzbWEgZm9ybWEgbyBHaXQgw6kgYSBmZXJyYW1lbnRhIHF1ZSByZWFsaXphIG8gY29udHJvbGUgZGUgdmVyc8OjbywgasOhIG8gR2l0IGNsaWVudCDDqSBhIGludGVyZmFjZSBlc3BlY8OtZmljYSBwYXJhIHF1ZSBvIHVzdcOhcmlvIHBvc3NhIGludGVyYWdpciBkZSBtYW5laXJhIG1haXMgYW1pZ8OhdmVsIGNvbSBvIEdpdCBlIEdpdEh1Yi4gRXhpc3RlbSB2w6FyaW9zIEdpdCBjbGllbnRzIHF1ZSBwb2RlbW9zIHV0aWxpemFyIHBhcmEgcmVhbGl6YXIgZXNzYSBpbnRlcmHDp8OjbywgcG9yIGV4ZW1wbG8sIG8gW0dpdEtyYWtlbl0oaHR0cHM6Ly93d3cuZ2l0a3Jha2VuLmNvbS8pIGUgW0dpdExhYl0oaHR0cHM6Ly9hYm91dC5naXRsYWIuY29tLykuIENhZGEgdW0gdGVtIHN1YXMgdmFudGFnZW5zIGUgZGVzdmFudGFnZW5zLg0KDQpOZXN0ZSBjdXJzbyB1c2FyZW1vcyB1bSBHaXQgY2xpZW50IHF1ZSDDqSB1bSB2ZWxobyBjb25oZWNpZG8gbm9zc28sIG8gKipSU3R1ZGlvKiouIEZhcmVtb3MgaXNzbyAgcG9pcyBvIFJTdHVkaW8gKGFnb3JhIGNoYW1hZG8gUG9zaXQsIG1hcyB2YW1vcyBtYW50ZXIgbyB2ZWxobyBub21lKSDDqSBhIGludGVyZmFjZSBtYWlzIGNvbXVtIHV0aWxpemFkYSBub3MgZXN0dWRvcyBkZSBlY29sb2dpYSBlIGV2b2x1w6fDo28sIGFsw6ltIGRlIGFwcmVzZW50YXIgdW1hIGdyYW5kZSBxdWFudGlkYWRlIGRlIG1hdGVyaWFpcyBkaXNwb27DrXZlaXMgbmEgaW50ZXJuZXQgZSB0YW1iw6ltIHBvciBzZXIgYXF1ZWxhIHF1ZSBvIGluc3RydXRvciBxdWUgdm9zIGZhbGEgdGVtIG1haXMgZmFtaWxpYXJpZGFkZS4gDQoNCiMjIEludGVncmFuZG8gR2l0LCBHaXRIdWIgZSBSU3R1ZGlvDQoNCkFnb3JhIHF1ZSBjb25oZWNlbW9zIGFzIGZlcnJhbWVudGFzLCBpbWFnaW5lIHNlIGNvbnNlZ3XDrXNzZW1vcyBjb2xvY2FyIGVsYXMgZW0gdW0gc8OzIGx1Z2FyLiBJbWFnaW5lIHVtIHNpc3RlbWEgcXVlIGludGVncmEgbyBzZXUgcHJvZ3JhbWEgZmF2b3JpdG8gZGUgYW7DoWxpc2VzIGVzdGF0w61zdGljYXMsIG8gc2V1IHByb2dyYW1hIGZhdm9yaXRvIGRlIGNvbnRyb2xlIGRlIHZlcnPDtWVzIGUgdGFtYsOpbSBvIHNldSByZXBvc2l0w7NyaW8gcmVtb3RvIGZhdm9yaXRvLiBQb2lzIMOpIGRpc3NvIHF1ZSBzZSB0cmF0YSBhIGludGVncmHDp8OjbyBkbyBHaXQgY29tIG8gR2l0SHViIGUgUlN0dWRpby4gVHVkbyAocXVhc2UgdHVkbykgcG9kZSBzZXIgZmVpdG8gbm8gR2l0IGF0cmF2w6lzIGRvIFJTdHVkaW8uIFBvcnRhbnRvLCBuYXMgcHLDs3hpbWFzIHNlw6fDtWVzIGlyZWkgYXByZXNlbnRhciBjb21vIHBvZGVtb3MgaW50ZWdyYXIgbyBjb250cm9sZSBkZSB2ZXJzw6NvIChHaXQpIGNvbSBvIHJlcG9zaXTDs3JpbyByZW1vdG8gKEdpdEh1YikgZSBvIFJTdHVkaW8uDQoNCiMgTcOjb3Mgbm8gdGVjbGFkbyAtIEluc3RhbGFuZG8gZSBjb25maWd1cmFuZG8gbyBHaXQNCg0KTyBwcmltZWlybyBwYXNzbyBhbnRlcyBkZSBpbnN0YWxhciBvIEdpdCDDqSBzYWJlciBzZSB2b2PDqiBqw6EgdGVtIGVsZSBpbnN0YWxhZG8gZW0gc2V1IGNvbXB1dGFkb3IuIFBhcmEgdGFudG8gdm9jw6ogZGV2ZSBhY2Vzc2FyIGEgbGluaGEgZGUgY29tYW5kbyBkZSBzZXUgc2lzdGVtYSBvcGVyYWNpb25hbCAoYmFzaCwgcHJvbXB0LCBpc3NvIHZhaSB2YXJpYXIgZGVwZW5kZW5kbyBkbyB0aXBvIGRlIHNpc3RlbWEgcXVlIHVzYSkgZSBkaWdpdGFyIG8gY29tYW5kbzoNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KZ2l0DQpgYGANCg0KQ2FzbyByZXRvcm5lIHVtYSBtZW5zYWdlbSBpbmRpY2FuZG8gbyBsb2NhbCBkbyBnaXQgbm8gc2V1IGNvbXB1dGFkb3IsIMOzdGltbywgdW1hIHRhcmVmYSBhIG1lbm9zLCBjYXNvIGNvbnRyw6FyaW8gdm9jw6ogdGVyw6EgcXVlIGluc3RhbGFyIG8gZ2l0IGRlIGFjb3JkbyBjb20gYXMgZXNwZWNpZmljaWRhZGVzIGRvIHNldSBzaXN0ZW1hIG9wZXJhY2lvbmFsIHF1ZSBzZXLDo28gYXByZXNlbnRhZGFzIGEgc2VndWlyLg0KDQojIyBJbnN0YWxhw6fDo28gZG8gR2l0IG5vIFdpbmRvd3MNCg0KSW5zdGFsZSBvIEdpdCBhY2Vzc2FuZG8gW2FxdWldKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSBlIHNpZ2EgYXMgaW5mb3JtYcOnw7VlcyBkbyBhdXhpbGlhciBkZSBpbnN0YWxhw6fDo28gcXVlIGZvaSBiYWl4YWRvLg0KDQojIyBJbnN0YcOnw6NvIGRvIEdpdCBubyBNYWMgT1MNCg0KSW5zdGFsZSBvIEdpdCBubyBzZXUgTWFjIGJhaXhhbmRvIG8gWGNvZGUgY29tbWFuZCBsaW5lIHRvb2xzIGNhc28gdm9jw6ogYWluZGEgbsOjbyBvIHRlbmhhLiBFc3RhIGFwbGljYcOnw6NvIGrDoSB2ZW0gY29tIG8gZ2l0LiBBY2VpdGUgYXMgY29uZmlndXJhw6fDtWVzIGUgY2xpcXVlIGVtIGluc3RhbGFyDQoNCkVtIHNlZ3VpZGEgY29uZmlndXJlIG8gZ2l0IHVzYW5kbyBhIGxpbmhhIGRlIGNvbWFuZG8gc2VndWludGUgbm8gc2V1IHRlcm1pbmFsOg0KDQpgYGB7ciBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQpnaXQgLS12ZXJzaW9uDQpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiWW91ciBuYW1lIGhlcmUiDQpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgInlvdXJfZW1haWxAZXhhbXBsZS5jb20iDQpgYGANCg0KIyMgSW5zdGFsYcOnw6NvIGRvIEdpdCBubyBMaW51eCANCg0KRGlnaXRlIGEgc2VndWludGUgbGluaGEgZGUgY29tYW5kbyBjYXNvIHZvY8OqIHRlbmhhIFVidW50dSBvdSBEZWJpYW4gTGludXgNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0Kc3VkbyBhcHQtZ2V0IGluc3RhbGwgZ2l0DQpgYGANCg0KU2UgdGVtIEZlZG9yYSBvdSBIYXRMaW51eCB1c2U6DQoNCmBgYHtyIGVjaG89VFJVRSwgZXZhbD1GQUxTRX0NCnN1ZG8geXVtIGluc3RhbGwgZ2l0DQpgYGANCg0KKipBbGd1bWFzIGNvaXNhcyBwb2RlbSBzZXIgZGlmZXJlbnRlcyBkZXBlbmRlbmRvIGRvIHNldSBzaXN0ZW1hIG9wZXJhY2lvbmFsIGUgdmVyc8OjbyBkbyBMaW51eCoqLCBjYXNvIHNlIGRlcGFyZSBjb20gYWxndW0gcHJvYmxlbWEgdGVudGUgYWJyaXIgdW0gKipJc3N1ZSoqIG5vIHJlcG9zaXTDs3JpbyBkZXN0YSBhcG9zdGlsYSBubyBHaXRIdWIgZSB0ZW50YXJlbW9zIHJlc29sdmVyIDopDQoNCiMgQ29uZmlndXJhw6fDo28gZG8gR2l0IGUgaW50ZWdyYcOnw6NvIGNvbSBSU3R1ZGlvDQoNCiMjIFV0aWxpemFuZG8gbyBwYWNvdGUgYHVzZXRoaXNgDQoNCkFww7NzIGEgaW5zdGFsYcOnw6NvIGRvIEdpdCBkZXZlbW9zIGNvbmZpZ3VyIG8gR2l0SHViIG5vIG5vc3NvIGNvbXB1dGFkb3IuIFBhcmEgY29uZmlndXJhciBvIEdpdEh1Yiwgb3Ugc2VqYSwgcGFyYSBxdWUgbyBHaXQgZSBHaXRIdWIgc2FpYmEgcXVlbSBlc3TDoSB1c2FuZG8sIHZhbW9zIHV0aWxpemFyIGEgY29uZmlndXJhw6fDo28gY29tIGF1eMOtbGlvIGRvIMOzdGltbyBwYWNvdGUgYHVzZXRoaXNgLiBQb3J0YW50bywgYWJyYSBvIFJTdHVkaW8gZSBkaWdpdGU6DQoNCmBgYHtyIGVjaG89VFJVRSwgZXZhbD1GQUxTRX0NCmxpYnJhcnkodXNldGhpcykNCnVzZV9naXRfY29uZmlnKHVzZXIubmFtZSA9ICJTZXVOb21lRGVVc3VhcmlvIiwgdXNlci5lbWFpbCA9ICJzZXVNYWlsQGV4YW1wbGUuYnIiKQ0KYGBgDQoNCkxlbWJyZSBkZSBzdWJzdGl0dWlyIG9zIGNhbXBvcyBxdWUgYXBhcmVjZXLDo28gbm8gY29uc29sZSBkbyBzZXUgUiBjb20gc3VhcyBpbmZvcm1hw6fDtWVzLiAiU2V1Tm9tZURlVXN1YXJpbyIgw6kgbyBub21lIHF1ZSB2b2PDqiBjYWRhc3Ryb3Ugbm8gR2l0SHViDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFLGZpZy5jYXA9Ik5vbWUgZG8gdXN1w6FyaW8gZGVzdGFjYWRvIGVtIHZlcm1lbGhvIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL05vbWVVc3VhcmlvLnBuZyIpDQpgYGANCg0KDQojIyBVdGlsaXphbmRvIG8gcGFjb3RlIGBnaXRjcmVkc2AgLSAqKk1haXMgcmVjb21lbmRhZGEqKg0KDQpBcGVzYXIgZGUgZXN0YXJtb3MgZmFsYW5kbyBkZSBjacOqbmNpYSBhYmVydGEsIG8gc2V1IHBlcmZpbCBubyBHaXRIdWIgw6kgcGVzc29hbCwgcG9ydGFudG8gw6kgaW1wb3J0YW50ZSBxdWUgaGFqYSB1bWEgZm9ybWEgZGUgYXV0ZW50aWNhw6fDo28gb25kZSBvIEdpdEh1YiBzYWliYSBxdWUgdm9jw6ogw6kgbyBkb25vIGRvIHBlcmZpbC4gSXNzbyBnZXJhbG1lbnRlIMOpIGZlaXRvIGF0cmF2w6lzIGRvIHVzbyBkZSBzZW5oYXMsIHBvcsOpbSBzZW5oYXMgbmVtIHNlbXByZSBzw6NvIHNlZ3VyYXMgKG9rLCBwcm92YXZlbG1lbnRlIG5pbmd1w6ltIHZhaSBxdWVyZXIgaW52YWRpciBub3NzbyBHaXRIdWIgcGFyYSB0b21hciBpbmZvcm1hw6fDtWVzIHNvYnJlIHVtYSBmdW7Dp8OjbyBxdWUgY2FsY3VsYSBhIGRpbWVuc2lvbmFsaWRhZGUgZGEgYmlvZGl2ZXJzaWRhZGUsIG1hcyBvdXRyYXMgY29pc2FzIHPDo28gZGVzZW52b2x2aWRhcyBlIGhvc3BlZGFkYXMgbm8gR2l0SHViKSwgZSBwb3IgaXNzbyBhIGZvcm1hIHBhZHLDo28gZGUgYXV0ZW50aWNhw6fDo28gdXRpbGl6YWRhIHBlbG8gR2l0SHViIMOpIG8gY2hhbWFkbyBQQVQgKFBlcnNvbmFsIEFjY2VzcyBUb2tlbikuIFNlZ3VuZG8gbyBwcsOzcHJpbyBHaXRIdWIgdW0gUEFUIMOpOg0KDQo+ICJQZXJzb25hbCBhY2Nlc3MgdG9rZW5zIGFyZSBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZyBwYXNzd29yZHMgZm9yIGF1dGhlbnRpY2F0aW9uIHRvIEdpdEh1YiB3aGVuIHVzaW5nIHRoZSBHaXRIdWIgQVBJIG9yIHRoZSBjb21tYW5kIGxpbmUuIg0KDQpPIFBBVCBuYWRhIG1haXMgw6kgcXVlIHVtYSAic2VuaGEiIGdlcmFkYSBwZWxvIHByw7NwcmlvIGdpdGh1YiBlIHF1ZSBkZXZlIHNlciByZW5vdmFkYSBjb20gY2VydGEgcGVyaW9kaWNpZGFkZS4gKipPIEdpdEh1YiBuw6NvIHBlcm1pdGUgbWFpcyBhdXRlbnRpY2HDp8O1ZXMgdmlhIHNlbmhhLCBhcGVuYXMgdXNhbmRvIG8gUEFUKiouIFBvcnRhbnRvLCBvIMO6bHRpbW8gcGFzc28gcGFyYSBpbnRlZ3JhciBvIFIsIFJTdHVkaW8sIEdpdCBlIEdpdEh1YiDDqSBpbmZvcm1hciBvIFBBVC4gUHJlY2lzYXJlbW9zIGZhemVyIGlzc28gYXBlbmFzIHVtYSB2ZXosIGUgcmVwZXRpciBhcGVuYXMgcXVhbmRvIG8gUEFUIGV4cGlyYXIuIFZhbW9zIGNvbWXDp2FyIGdlcmFuZG8gbyBQQVQuIFBhcmEgaW5mb3JtYcOnw7VlcyBtYWlzIGRldGFsaGFkYXMgc29icmUgbyBQQVQgdm9jw6ogcG9kZSBhY2Vzc2FyIFtlc3RhXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hdXRoZW50aWNhdGlvbi9rZWVwaW5nLXlvdXItYWNjb3VudC1hbmQtZGF0YS1zZWN1cmUvbWFuYWdpbmcteW91ci1wZXJzb25hbC1hY2Nlc3MtdG9rZW5zKSBww6FnaW5hLg0KDQpQYXJhIGNvbmZpZ3VyYXIgbyBQQVQgdmFtb3MgdXNhciBwcmltZWlybyBvIHBhY290ZSBgdXNldGhpc2AgZSBkZXBvaXMgdmFtb3MgdXRpbGl6YXIgYXMgZnVuY2lvbmFsaWRhZGVzIGRvIHBhY290ZSBgZ2l0Y3JlZHNgLkRpZ2l0ZSBhIGxpbmhhIGRlIGPDs2RpZ28gbm8gc2V1IGNvbnNvbGUgZG8gUjoNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KbGlicmFyeSh1c2V0aGlzKQ0KY3JlYXRlX2dpdGh1Yl90b2tlbigpDQpgYGANCg0KSXNzbyBhYnJpcsOhIHVtYSBndWlhIG5vIHNldSBuYXZlZ2Fkb3IgcGFyYSBxdWUgdm9jw6ogZ2VyZSB1bSB0b2tlbiwgdGFsIGNvbW8gbW9zdHJhZG8gbmEgaW1hZ2VtIGFiYWl4bw0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJFeGVtcGxvIGRhIHDDoWdpbmEgZG8gR2l0SHViIHBhcmEgZ2VyYXIgdW0gdG9rZW4ifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvUEFULWNyZWF0aW9uLnBuZyIpDQpgYGANCg0KVm9jw6ogdmVyw6EgaW7Dum1lcmFzIG9ww6fDtWVzIGRlIGFjZXNzby4gQXMgY2FpeGluaGFzIHF1ZSB2YW1vcyBlc2NvbGhlciB2YWkgZGVwZW5kZXIgZG8gZ3JhdSBkZSBjb250cm9sZSBxdWUgdm9jw6ogZGVzZWphIHRlciBwYXJhIHVzYXIgbyBHaXRIdWIgdmlhIFJzdHVkaW8uDQoNCkFww7NzIGdlcmFkbywgKipndWFyZGUgZXNzZSB0b2tlbiBjb20gY2FyaW5obyoqLCBwb2lzIGVsZSB2YWkgc2VyIHN1YSBub3ZhIHNlbmhhIGRlIGVudHJhZGEgcGFyYSBvIEdpdEh1YiB2aWEgUlN0dWRpbywgcXVhbmRvIGZvciByZXF1ZXJpZG8uIFBhcmEgYXJtYXplbmFyIHNlbmhhcyBlIGRhZG9zIGV1IHN1Z2lybyBvIHByb2dyYW1hICoqTGFzdFBhc3MqKi4NCg0KUHLDs3hpbW8gcGFzc28gw6kgcmVnaXN0YXIgZXNzZSB0b2tlbiBnZXJhZG8gZW0gbm9zc28gY29tcHV0YWRvci4gUGFyYSB0YW50bywgZmHDp2EgbyBzZWd1aW50ZToNCg0KYGBge3IgUEFULCBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQpsaWJyYXJ5KGdpdGNyZWRzKQ0KZ2l0Y3JlZHM6OmdpdGNyZWRzX3NldCgpDQpgYGANCg0KTm8gY29uc29sZSBhcGFyZWNlcsOhIGEgbWVuc2FnZW0gcGFyYSBkaWdpdGFyIG8gdG9rZW4sIGNvcGllIG8gdG9rZW4gZSBjb2xlIGRpcmV0byBubyBuYXZlZ2Fkb3IsIHByZXNzaW9uZSBlbnRlciBlIHByb250bywgc2V1IFJTdHVkaW8gZXN0w6EgYXV0ZW50aWNhZG8gZSBhZ29yYSBlc3TDoSBkZXZpZGFtZW50ZSBjb25lY3RhZG8gY29tIG8gcmVwb3NpdMOzcmlvIHJlbW90by4gRXN0YW1vcyBwcm9udG8gcGFyYSBvIG5vc3NvIHByaW1laXJvIGNvbW1pdCEhISENCg0KDQojIENvbmVjdGFuZG8gR2l0LCBSU3R1ZGlvIGUgR2l0aHViIHBlbGEgcHJpbWVpcmEgdmV6DQoNCkFudGVzIGRlIGNvbWXDp2FyIGEgdXRpbGl6YXIgbyBHaXQgZSBHaXRIaWIgdmlhIFJTdHVkaW8gdmFtb3MgcHJpbWVpcm8gZGFyIHVtYSBvbGhhZGluaGEgbm8gc2l0ZSBkbyBHaXRIdWIuIEFicmEgbyBHaXRIdWIsIGZhw6dhIG8gc2V1IGxvZ2luIGUgdmFtb3MgZGFyIHVtYSBleHBsb3JhZGEgcG9yIGzDoS4NCg0KQXDDs3MgZXNzZSBwYXNzZWlvIHBlbG8gR2l0SHViLCB2YW1vcyBjcmlhciBub3NzbyByZXBvc2l0w7NyaW8gcGFyYSBlc3RhIGF1bGEuIFPDsyBsZW1icmFuZG8gcXVlIHBhcmEgZmF6ZXIgaXNzbyB2b2PDqiBqw6EgcHJlY2lzYSB0ZXIgdW1hIGNvbnRhIGNyaWFkYSBubyBHaXRIdWIgZSBvIEdpdCBpbnN0YWxhZG8uIFRlbmRvIHN1YSBjb250YSBmZWl0YSB2w6EgbyBzZXUgbmF2ZWdhZG9yIGRlIGludGVybmV0LCBhY2Vzc2UgbyBzaXRlIGRvIEdpdEh1YiBlIGZhw6dhIG8gbG9naW4uIEZlaXRvIGlzc286DQoNCjEgLSBDcmllIHVtIHJlcG9zaXTDs3JpbyANCg0KQ3JpZSB1bSBub3ZvIHJlcG9zaXTDs3JpbyBjbGljYW5kbyBubyBib3TDo28gZGVzdGFjYWRvIG5hIGZpZ3VyYSBhYmFpeG8NCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsZmlnLmNhcD0iQ3JpYW5kbyB1bSBub3ZvIHJlcG9zaXTDs3JpbyBhIHBhcnRpciBkbyBHaXRIdWIifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvQ3JlYXRlLVJlcHBvLnBuZyIpDQpgYGANCg0KRXhpc3RlbSBvdXRyYXMgZm9ybWFzIGRlIGluaWNpYXIgdW0gcmVwb3NpdMOzcmlvLCBpbmNsdXNpdmUgZGlyZXRvIHBlbG8gUlN0dWRpbywgbWFzIHZhbW9zIHBlbG8gY2FtaW5obyBtYWlzIHNpbXBsZXMgcG9yIGVucXVhbnRvLg0KDQojIE8gQUJDIGRvIHZlcnNpb25hbWVudG86IENsb25lLCBQdWxsLCBQdXNoIGFuZCBDb21taXRzIA0KDQpWaW1vcyBuYXMgYXVsYXMgdGXDs3JpY2FzIHF1ZSBlc3NhcyBwYWxhdnJpbmhhcyBuw6NvIHPDo28gbmFkYSBtYWlzIHF1ZSBhw6fDtWVzIHF1ZSBwcmF0aWNhbW9zIG5vIG5vc3NvIGRpYS1hLWRpYS4gQWdvcmEgw6kgaG9yYSBkZSBjb2xvY2FyIGVtIHByw6F0aWNhLg0KDQpKw6EgdGVtb3MgdW0gcmVwb3NpdMOzcmlvIHJlbW90bywgYWdvcmEgcHJlY2lzYW1vcyBxdWUgZWxlIGV4aXN0YSBlbSBub3Nzb3MgY29tcHV0YWRvcmVzIHBhcmEgcXVlIHBvc3NhbW9zIHNpbmNyb25pemFyIG5vc3NvIHRyYWJhbGhvIGxvY2FsIGUgcmVtb3RvLiBEZSBtYW5laXJhIGdlcmFsIG8gcXVlIHF1ZXJlbW9zIGZhemVyIGEgcGFydGlyIGRlIGFnb3JhIGVzdMOhIGlsdXN0cmFkbyBuYSBmaWd1cmEgc2VndWludGUNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSI1NSUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvdmVyc2lvbi1jb250cm9sLWFsbC5wbmciKQ0KYGBgDQoNCkEgcGFydGlyIGRlIGFnb3JhIGlyZW1vcywgcGFzc28gYSBwYXNzbywgcmVhbGl6YXIgdG9kYXMgYXMgZnVuw6fDtWVzIGLDoXNpY2FzIGVzc2VuY2lhaXMgcGFyYSBvcmdhbml6YcOnw6NvIGNvbXB1dGFjaW9uYWwgZGUgdW0gcHJvamV0byBjaWVudMOtZmljby4NCg0KTyBwcmltZWlybyBwYXNzbyDDqSByZWFsaXphciB1bWEgY2xvbmFnZW0hDQoNCiMjIE8gQ2xvbmUNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsZmlnLmNhcD0iUmVmZXLDqm5jaWEgZGUgdmVsaG8iLG91dC53aWR0aD0iNTUlIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL28tY2xvbmUuanBlZyIpDQpgYGANCg0KUGFyYSBxdWUgbm9zc28gcmVwb3NpdMOzcmlvIGxvY2FsIGVzdGVqYSBsaWdhZG8gYW8gbm9zc28gcmVwb3NpdMOzcmlvIHJlbW90byBwcmVjaXNhbW9zIHByaW1laXJvIGNvbmVjdMOhLWxvcy4gRmF6ZW1vcyBpc3NvIGFvIGNsb25hciBvIHJlcG9zaXTDs3JpbyByZW1vdG8gZW0gbm9zc2EgbcOhcXVpbmEuIENsb25hciAoY2xvbmUpIG5lc3NlIGNhc28gbsOjbyDDqSBuYWRhIG1haXMgcXVlIGNyaWFyIHVtYSBjw7NwaWEgZXhhdGEgZGUgdW0gcmVwb3NpdMOzcmlvIHJlbW90byBlbSBzdWEgbcOhcXVpbmEuIEEgcGFydGlyIGRlc3NlIG1vbWVudG8gZXNzZXMgcmVwb3NpdMOzcmlvcyBlc3RhcsOjbyBjb25lY3RhZG9zIGF0w6kgcXVlIG8gR2l0IG9zIHNlcGFyZS4NCg0KUGFyYSBjbG9uYXIgdsOhIGF0w6kgbyByZXBvc2l0w7NyaW8gcmVtb3RvIGRlIGludGVyZXNzZSwgZSBjb3BpZSBhIGNoYXZlIGh0dHBzLCBjb21vIG1vc3RyYWRvIG5hIGZpZ3VyYSBhIHNlZ3VpcjoNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUV9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItY29weS1odHRwcy5wbmciKQ0KYGBgDQoNCkNsaXF1ZSBubyBib3TDo28gZGUgY8OzcGlhIGUgdmFtb3MgcGFyYSBvIFJTdHVkaW8uIE5vIFJTdHVkaW8gdsOhIGVtIGBGaWxlYCBlIGRlcG9pcyBgTmV3IFByb2plY3RgLiBBIHBhcnRpciBkYcOtIHNpZ2EgYXMgaW1hZ2VucyBhYmFpeG86DQoNCiMjIyAxLiBDb3BpYW5kbyBhIGNoYXZlIGh0dHBzIG5vIEdpdEh1Yg0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJDb3BpYW5kbyBjaGF2ZSBodHRwcyJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItY29weS1odHRwcy5wbmciKQ0KYGBgDQoNCiMjIyAyLiBDcmlhbmRvIHVtIG5vdm8gKipwcm9qZXRvKiogbG9jYWxtZW50ZQ0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJBYnJpbmRvIHVtIG5vdm8gcHJvamV0byJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItdmVyc2lvbmNvbnRyb2wtb3B0aW9uLnBuZyIpDQpgYGANCg0KIyMjIDMuIENvbGFuZG8gYSBjaGF2ZSBwYXJhIGxpZ2FyIG8gcmVwb3NpdMOzcmlvIHJlbW90byBjb20gbyBsb2NhbA0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJDb2xhbmRvIGEgY2hhdmUgaHR0cHMifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2l0aHViLXBhc3RlLWh0dHBzLnBuZyIpDQpgYGANCg0KQW8gY2xpY2FyIGVtIGBDcmVhdGUgcHJvamVjdGAgbyByZXBvc2l0w7NyaW8gcmVtb3RvIHNlcsOhIGltZWRpYXRhbWVudGUgdHJhbnNmZXJpZG8gcGFyYSBvIHNldSBjb21wdXRhZG9yLiBVbWEgcGFzdGEgKG8gZGlyZXTDs3JpbyBsb2NhbCkgc2Vyw6EgY3JpYWRvIG5vIGxvY2FsIHF1ZSB2b2PDqiBlc2NvbGhldSBlLCBhc3NpbSwgUlN0dWRpbywgR2l0IGUgR2l0aHViIGVzdGFyw6NvIHBsZW5hbWVudGUgY29uZWN0YWRvcy4gVHVkbyBjZXJ0byBhdMOpIGFxdWk/IFVtYSBwYXVzYSBwYXJhIGRlc2NhbnNvIGNvbSB1bSB2w61kZW8uDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0KdmVtYmVkcjo6ZW1iZWRfdXJsKCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWo3SzNzX3ZpXzFZIikNCmBgYA0KDQoNCiMjIFB1bGwsIENvbW1pdHMgZSBQdXNoIA0KDQpTZSB2b2PDqiBjaGVnb3UgYXTDqSBhcXVpIHNlbSBlcnJvcyBpc3NvIHF1ZXIgZGl6ZXIgcXVlIEdpdCBlIEdpdEh1YiBqw6EgZXN0w6NvIGludGVncmFkb3Mgbm8gUlN0dWRpby4gUG9ydGFudG8sIHF1YWxxdWVyIGNvaXNhIHF1ZSBmaXplcm1vcyBuZXN0YSBwYXN0YSBlc3TDoSBzZW5kbyBvYnNlcnZhZG8gYSBwYXJ0aXIgZGUgYWdvcmEgcGVsbyBnaXQuIFBhcmEgY2VydGlyZmljYXItc2UgZGlzc28sIGhhYmlsaXRlIGEgdmlzdWFsaXphw6fDo28gZGUgYXJxdWl2b3Mgb2N1bHRvcyBubyBzZXUgY29tcHV0YWRvciwgdm9jw6ogdmFpIG5vdGFyIHF1ZSBuYSByYWl6IGRlc3RhIHBhc3RhIGNsb25hZGEgZXhpc3RlIHVtYSBwYXN0YSBgLmdpdGAsIGNvbW8gbmEgZmlndXJhIGEgc2VndWlyDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2l0LWluc2lkZS1mb2xkZXIucG5nIikNCmBgYA0KDQpTZSB2b2PDqiBjb25zZWd1ZSB2ZXIgZXN0YSBwYXN0YSBxdWVyIGRpemVyIHF1ZSBlc3TDoSB0dWRvIGNlcnRvLCBlIG8gZ2l0IGVzdMOhIG9ic2VydmFuZG8gKCoqd2F0Y2gqKiBubyBqYXJnw6NvIGRvIHZlcnNpb25hbWVudG8pIGNhZGEgbW9kaWZpY2HDp8OjbyBlIGNhZGEgYXJxdWl2byBkZW50cm8gZGVzdGEgcGFzdGEgKGEgbWVub3MgcXVlIHZvY8OqIGluY2x1YSBvIGFycXVpdm8gbm8gLmdpdGlnbm9yZSwgbWFzIGlzc28gw6kgYXNzdW50byBwYXJhIG91dHJvIG1vbWVudG8pLg0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxvdXQud2lkdGg9IjU1JSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9iaWctYnJvdGhlci13YXRjaGluZy5wbmciKQ0KYGBgDQoNCkFnb3JhIGlyZW1vcyBleGVjdXRhciBmdW7Dp8O1ZXMgcXVlLCBhdMOpIG8gZmltIGRlc3RlIGN1cnNvLCBzZXLDo28gcXVhc2UgYXV0b23DoXRpY2FzIG5vIG5vc3NvIGZsdXhvIGRlIHRyYWJhbGhvIGNvbSB2ZXJzaW9uYW1lbnRvLg0KDQojIyMgTWV1IHByaW1laXJvIGNvbW1pdA0KDQpPIHF1ZSDDqSB1bSBjb21taXQ/DQoNCkNvbW1pdCwgb3UgInJldmlzw6NvIiwgw6kgdW1hIG11ZGFuw6dhIGluZGl2aWR1YWwgZW0gdW0gYXJxdWl2byBvdSB1bSBjb25qdW50byBkZSBhcnF1aXZvcyBkZW50cm8gZGEgcGFzdGEgb2JzZXJ2YWRhIHBlbG8gZ2l0LiBPcyBjb21taXRzIHPDo28gY29tbyBjaGVjay1wb2ludHMgcGFyYSBvIG5vc3NvIHJlcG9zaXTDs3Jpby4gVW1hIGFuYWxvZ2lhIGludGVyZXNzYW50ZSBwYXJhIG9zIGNvbW1pdHMgZm9pIGFwcmVzZW50YWRhIG5hIGF1bGEgZSBlc3TDoSBpbHVzdHJhZGEgYXF1aSwgbmEgZmlndXJhIHNlZ3VpbnRlDQoNCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1GQUxTRSxvdXQud2lkdGg9IjYwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImNvbW1pdC1vbmx5LWNvbmNlcHQucG5nIikpDQpgYGANCg0KVmFtb3MgcGVuc2FyIHF1ZSBub3NzbyBwcm9qZXRvIMOpIHVtYSBtb250YW5oYSwgZSBlc3RhbW9zIGVzY2FsYW5kbyBlbGUuIE5vc3NvIG9iamV0aXZvIGZpbmFsIMOpLCBvYnZpYW1lbnRlLCBmaW5hbGl6YXIgbyBwcm9qZXRvLCBjaGVnYW5kbyBhbyB0b3BvIGRhIG1vbnRhbmhhLiBBIG1lZGlkYSBxdWUgcHJvZ3JlZGltb3MsY2FzbyB2ZW5oYW1vcyBhIGNvbWV0ZXIgdW0gZXJybywgYSBxdWVkYSBwb2RlIHNlciBncmFuZGUuIERlc3RhIG1hbmVpcmEsIHV0aWxpemFtb3MgZ3JhbXBvcyBvbmRlIGFuY29yYW1vcyBub3NzYSBjb3JkYSBhIG1lZGlkYSBxdWUgYSBlc2NhbGFkYSBwcm9ncmlkZS4gRW0gY2FzbyBkZSBlcnJvLCBhIHF1ZWRhIHNlcsOhIGFwZW5hcyBhdMOpIG8gZ3JhbXBvIGFudGVyaW9yIG9uZGUgYSBjb3JkYSBmb2kgYW5jb3JhZGEuIE9zIGNvbW1pdHMgc2VydmVtIGNvbW8gb3MgY2xpcGVzIHF1ZSBhbmNvcmFtIGEgY29yZGEgYSBtZWRpZGEgcXVlIHByb2dyZWRpbW9zIG5vIHByb2pldG8uIFNlIGNvbWV0ZXJtb3MgdW0gZXJybyBlbSBhbGd1bSBhcnF1aXZvLCB0dWRvIGNlcnRvLCBwb2RlbW9zIHZvbHRhciBubyBjb21taXQgYW50ZXJpb3IsIG91IGFudGVyaW9yZXMsIHBhcmEgdGVudGFyIGRlc2NvYnJpciBvbmRlIG8gZXJybyBmb2kgY29tZXRpZG8uDQoNCkRhIG1lc21hIGZvcm1hIHF1ZSBuYSBlc2NhbGFkYSwgc2UgdXRpbGl6YXJtb3MgY2xpcGVzIG11aXRvIHBlcnRpbmhvcyB1bnMgZG9zIG91dHJvcyB2YW1vcyBmaWNhciBsZW50b3MgZGVtYWlzLCBlIG8gcHJvZ3Jlc3NvIGF0w6kgbyB0b3BvIHNlcsOhIGNvbXByb21ldGlkbywgc2UgZml6ZXJtb3MgbXVpdG9zIGNvbW1pdHMgc2Vyw6EgZGlmw61jaWwgdm9sdGFyIGVtIG1vbWVudG9zIGVzcGVjw61maWNvcyBkbyBwcm9qZXRvLCB2aXN0byBxdWUgdGVyw6NvIG11aXRvcyBjb21taXRzIHBhcmEgc2VyZW0gY2hlY2Fkb3MuIFBvcnRhbnRvLCBhIHJlZ3JhIMOpOiBmYcOnYSBjb21taXRzIGNvbSBwYXJjaW1vbmlhLCBvdSBzZWphLCBuZW0gbXVpdG9zLCBuZW0gcG91Y29zLg0KDQpWYW1vcyBmYXplciB1bWEgbW9kaWZpY2HDp8OjbyBuYSBub3NzYSBwYXN0YS4gUG9kZW1vcyBhZGljaW9uYXIgYXJxdWl2b3MsIGrDoSBxdWUgZWxhIGVzdMOhIHZhemlhLiBQYXJhIHRhbnRvIHZhbW9zIHVzYXIgb3MgYXJxdWl2b3MgZG8gcGFjb3RlIGRlIGRhZG9zIHBhbG1lciBwZW5ndWlucyBxdWUgZXN0w6NvIG5lc3NlIHJlcG9zaXTDs3Jpby4gTGVtYnJlLXNlIGRlIGxlciBvcyBhcnF1aXZvcyB1dGlsaXphbmRvIG8gYHtoZXJlfWAgZSB1dGlsaXphciBvIFJwcm9qZWN0IHBhcmEgYWJyaXIgbyBkaXJldMOzcmlvDQoNCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQ0KZGF0YV9wZW5ndWlucyA8LSByZWFkLmNzdihoZXJlOjpoZXJlKCJkYXRhIiwgImRhdGEtcGVuZ3VpbnMuY3N2IikpIA0KYGBgDQoNCioqT2JzKiogc2UgcXVpc2VyZW0gdXNhciBzZXVzIHByw7NwcmlvcyBkYWRvcyBmaXF1ZW0gYSB2b250YWRlLCBvIHVzbyBkbyBwYWxtZXJwZW5ndWlucyDDqSBhcGVuYXMgb3BjaW9uYWwgZSBhIHTDrXR1bG8gZGUgcHJvY2VkaW1lbnRvIGRpZMOhdGljby4gDQoNCkNhc28gZXN0ZWphbSB0cmFiYWxoYW5kbyBjb20gc2V1cyBwcsOzcHJpb3MgZGFkb3MsIGpvZ3VlIG9zIGFycXVpdm9zIHBhcmEgZGVudHJvIGRvIGRpcmV0w7NyaW8gcXVlIGNsb25hbW9zLiBPIHByw7N4aW1vIHBhc3NvIMOpIGZhemVyIG5vc3NvIHByaW1laXJvIGNvbW1pdC4NCg0KDQojIyMgRXhwbG9yYW5kbyBjb21taXRzDQoNCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSxvdXQud2lkdGg9IjcwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImNvbW1pdC1zYWZlLnBuZyIpKQ0KYGBgDQpFeGlzdGVtIGR1YXMgZm9ybWFzIGRlIGZhemVyIHZlcnNpb25hbWVudG8gdXNhbmRvIG8gR2l0IGUgR2l0aHViIHZpYSBSU3R1ZGlvLiBVbWEgZGVsYXMgw6kgYSBsaW5oYSBkZSBjb21hbmRvLCBhIG91dHJhIMOpIHZpYSB1bWEgaW50ZXJmYWNlIHZpc3VhbCwgcXVlIG5lc3NlIGNhc28gw6kgbyBwcsOzcHJpbyBSU3R1ZGlvLiBWYW1vcyBjb21lw6dhciBmYXplbmRvIG8gdmVyc2lvbmFtZW50byB2aWEgaW50ZXJmYWNlIHZpc3VhbC4gQSBvcMOnw6NvIHBhcmEgaXNzbyDDqSBxdWUgbmluZ3XDqW0gc2UgYXNzdXN0ZSBudW0gcHJpbWVpcm8gbW9tZW50byBjb20gYSBsaW5oYSBkZSBjb21hbmRvLCBlIHF1ZSBpc3NvIG7Do28gc2VqYSB1bSBpbXBlZGl0aXZvIHBhcmEgdXRpbGl6YXIgbyB2ZXJzaW9uYW1lbnRvIG5vIHNldSBmbHV4byBkZSB0cmFiYWxoby4gQSBtYWlvcmlhIGRvcyBjb21hbmRvcyBiw6FzaWNvcyBwb2RlbSBzZXIgZXhlY3V0YWRvcyBhdHJhdsOpcyBkZXN0YSBpbnRlcmZhY2UgZ3LDoWZpY2EgcXVlIGNoYW1hbW9zIGRlICoqR2l0IENsaWVudCoqDQoNClJlcGFyZSBxdWUgc2V1IFJTdHVkaW8gYWdvcmEgdGVtIGFsZ3VtYXMgY29pc2FzIG5vdmFzLiBFc3BlY2lmaWNhbWVudGUsIHZlamEgcXVlIGFnb3JhIGVsZSB0ZW0gdW1hIGFiYSBjaGFtYWRhIEdpdCwgY29tbyBpbHVzdHJhZG8gbmEgZmlndXJhIGFiYWl4bw0KDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW8ucG5nIikpDQpgYGANCg0KSXNzbyBpbmRpY2EgcXVlIG8gZ2l0IGVzdMOhIGZ1bmNpb25hbmRvIG5vIHNldSBkaXJldMOzcmlvLCBlIGFnb3JhIHBvZGVtb3MgZmF6ZXIgbyB2ZXJzaW9uYW1lbnRvIGRlc3RlIGRpcmV0w7NyaW8gbG9jYWwgZSBzaW5jcm9uaXrDoS1sbyBjb20gbyByZXBvc2l0w7NyaW8gcmVtb3RvLg0KDQpUdWRvIGUgcXVhbHF1ZXIgY29pc2EgcXVlIGZvciBhZGljaW9uYWRvIG91IG1vZGlmaWNhZG8gbmEgc3VhIHBhc3RhIHZhaSBhcGFyZWNlciBuYSBqYW5lbGEgYWJhaXhvIGRhIGFiYSBnaXQuIENvbW8gbW9zdHJhZG8gbmEgZmlndXJhIGFiYWl4bw0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRX0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKGhlcmU6OmhlcmUoImZpZ3MiLCAiZ2l0LXRhYi1yc3R1ZGlvMi5wbmciKSkNCmBgYA0KDQpDb21vIGV1IG1lbmNpb25laSBuYSBhdWxhIHRlw7NyaWNhIGUgYXF1aSBhY2ltYSwgbyBjb21taXQgw6kgY29tbyB1bSB0cmFjayBjaGFuZ2VzIGRvIHdvcmQsIG1hcyBtZWxob3IuIFByZWNpc2Ftb3MgZmF6ZXIgdW0gdHJhY2sgY2hhbmdlIG1hbnVhbCwgaW5kaWNhbmRvIG8gcXVlIGZvaSBtb2RpZmljYWRvLCBpc3NvIMOpIG8gbm9zc28gY29tbWl0LiBQYXJhIHJlYWxpemFyIHVtIGNvbW1pdCB2aWEgYSBpbnRlcmZhY2UgZG8gUlN0dWRpbyB2b2PDqiBwcmVjaXNhOg0KDQoxIC0gQ2xpY2FyIG5vIGJvdMOjbyBgY29tbWl0IHBlbmRpbmcgY2hhbmdlc2AgKG91IGVtIHF1YWxxdWVyIGJvdMOjbyBuYXF1ZWxhIGFiYSksIGNvbW8gbW9zdHJhZG8gYWJhaXhvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW8zLnBuZyIpKQ0KYGBgDQoNCjIgLSBJc3NvIHZhaSBhYnJpciB1bWEgbm92YSBqYW5lbGEsIG5lbGEgdm9jw6ogZGV2ZSBzZWxlY2lvbmFyIG5vcyBjaGVja2JveCBvcyBhcnF1aXZvcyAodmFtb3MgZGFyIHVtYSBvbGhhZGEgbmVzc2EgamFuZWxhIGFudGVzIGRlIHByb3NzZWd1aXIpDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW80LnBuZyIpKQ0KYGBgDQoNCjMgLSBFc2NyZXZhIHVtYSBtZW5zYWdlbSBpbmZvcm1hdGl2YS4gQ29tbyBlc3RlIMOpIG8gcHJpbWVpcm8gY29tbWl0IGdlcmFsbWVudGUgc2VsZWNpb25hbW9zIHRvZG9zIG9zIGFycXVpdm9zIGUgZXNjcmV2ZW1vcyBhIG1lbnNhZ2VtIGBGaXJzdCBjb21taXRgIHBhcmEgaW5kaWNhciBxdWUgw6kgbyBwcmltZWlybyBjb21taXQgZGVzdGUgcmVwb3NpdMOzcmlvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW81LnBuZyIpKQ0KYGBgDQoNCioqT0JTKiogQSBtZW5zYWdlbSBkZXZlIHNlciByZWFsbWVudGUgaW5mb3JtYXRpdmEsIG8gY29tbWl0IGZpY2EgYXJtYXplbmFkbyBubyBzZXUgcmVwb3NpdMOzcmlvIGUgYXBhcmVjZXLDoSBwdWJsaWNhbWVudGUgY2FzbyBvIHJlcG9zaXTDs3JpbyBzZWphIHDDumJsaWNvLiANCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSI2MCUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJjb21taXQtbWVtZS5wbmciKSkNCmBgYA0KDQpQcm9udG8sIG8gcXVlIGZpemVtb3MgYWdvcmEgZm9pIGJhc2ljYW1lbnRlIGNvbG9jYXIgbm9zc29zIGFycXVpdm9zIG5hICoqc3RhZ2dpbmcgYXJlYSoqIChtYXJjYXIgYXMgY2hlY2tpbmcgYm94KSBlIHByZXBhcsOhLWxvcyBwYXJhIGEgZW50cmVnYSBjb20gdW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhLCBvIGNvbW1pdC4gQWdvcmEgcHJlY2lzYW1vcyBlbnZpYXIgb3MgYXJxdWl2b3MgcGFyYSBvIHJlcG9zaXTDs3JpbyByZW1vdG8gKHVwc3RyZWFtKQ0KDQojIyMgTWV1IHByaW1laXJvIHB1c2gNCg0KVGVtb3MgdW0gZGlyZXTDs3JpbyBmdW5jdGlvbmFuZG8gY29tIG8gZ2l0LCBsaWdhZG8gYW8gZ2l0aHViLCBjb20gZG9jdW1lbnRvcyBkZW50cm8sIG1hcywgYXTDqSBhZ29yYSBlbGUgYXBlbmFzIHZpdmUgZW0gbm9zc29zIGNvbXB1dGFkb3Jlcy4gQ2hlZ291IGEgaG9yYSBkZSBlbXB1cnJhciBlc3RlcyBkb2N1bWVudG9zIHBhcmEgbyBkaXJldMOzcmlvIHJlbW90bywgb3Ugc2VqYSwgYXF1ZWxlIHF1ZSBjbG9uYW1vcyBsw6Egbm8gaW7DrWNpby4gUGFyYSB0YW50byB2YW1vcyBmYXplciB1bSBgcHVzaGANCg0KTyBwdXNoIG5hZGEgbWFpcyDDqSBxdWUgZW1wdXJyYXIgb3MgZG9jdW1lbnRvcyBwYXJhIG8gcmVwb3NpdMOzcmlvIGRvIGdpdGh1YiwgY2hhbWFkbyBhcyB2ZXplcyBkZSBgb3JpZ2luL21hc3RlcmAgZSBvdXRyYXMgdmV6ZXMgYG9yaWdpbi9tYWluYCwgbWFzIGFtYm9zIHF1ZXJlbSBkaXplciAidW0gcmVwb3NpdMOzcmlvIHJlbW90byBvIHF1YWwgbyBkaXJldMOzcmlvIHF1ZSBlc3RvdSB0cmFiYWxoYW5kbyBlc3TDoSBsaWdhZG8iLg0KDQpTZW0gbWFpcyBkZWxvbmdhcywgcGFyYSBmYXplciB1bSBwdXNoIHByZWNpc2Ftb3MgYXBlbmFzIGFwZXJ0YXIgbyBib3TDo28gdmVyZGUgY29tbyBtb3N0cmFkbyBuYSBmaWd1cmEgYWJhaXhvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW82LnBuZyIpKQ0KYGBgDQoNCkR1YXMgY29pc2FzIHPDo28gaW1wb3J0YW50ZXMgbm90YXIgbmVzc2UgbW9tZW50by4gUHJpbWVpcm8gbyBib3TDo28gZGUgcHVzaCwgcXVlIHZhaSBlbXB1cnJhciBvcyBhcnF1aXZvcyBwYXJhIG8gcmVwb3NpdMOzcmlvIHJlbW90byAob3JpZ2luKS4gU2VndW5kbywgYSBtZW5zYWdlbSBkZXN0YWNhZGEgY29tIGEgc2V0YS4gRWxhIGRpeiBxdWUgbyAqYnJhbmNoKiBlc3TDoSBhIGZyZW50ZSBkbyAqb3JpZ2luL21hc3RlciogcG9yIHVtICpjb21taXQqLiBUcmFkdXppbmRvLCBub3NzbyBkaXJldMOzcmlvIGxvY2FsIChicmFuY2gpLCBlc3TDoSB1bWEgdmVyc8OjbyBhIGZyZW50ZSAocG9pcyBtb2RpZmljYW1vcyBjb2lzYXMgYXF1aSkgZW0gcmVsYcOnw6NvIGFvIG5vc3NvIHJlcG9zaXTDs3JpbyByZW1vdG8gKG9yaWdpbi9tYXN0ZXIpLiBBbyBlbXB1cnJhciAocHVzaCkgYXMgbW9kaWZpY2HDp8O1ZXMsIGVzc2EgbWVuc2FnZW0gZGVzYXBhcmVjZXLDoSwgaW5kaWNhbmRvIHF1ZSB0YW50byBicmFuY2ggcXVhbnRvIG9yaWdpbiBlc3TDo28gbmEgbWVzbWEgbGluaGEgZG8gdGVtcG8hDQoNCiMgRXh0cmFzDQoNCkFxdWkgYWxndW1hcyBkaWNhcyBleHRyYXMgY2FzbyB2b2PDqiBxdWVpcmEgc2VndWlyIGNhbWluaG9zIGRpZmVyZW50ZXMgcXVlIG9zIGFwcmVzZW50YWRvcyBhdMOpIGFnb3JhIHBhcmEgbW9udGFyIHVtIHJlcG9zaXTDs3JpbyBlIGNvbmVjdGFyIGNvbSBvIGdpdGh1Yi4gVmFtb3Mgc3Vwb3IgcXVlIHZvY8OqIGrDoSB0ZW5oYSB1bSBwcm9qZXRvIGxvY2FsIGVtIHNldSBjb21wdXRhZG9yIHF1ZSBqw6EgZXN0w6EgbW9uaXRvcmFkbyBwZWxvIGdpdCwgY29udMOpbSBhbGd1bnMgY29tbWl0cywgZSB2b2PDqiBuw6NvIHF1ZXIgcGVyZGVyIGVzdGVzIGNvbW1pdC4gQSBmb3JtYSBtYWlzIGbDoWNpbCBkZSBmYXplciBpc3NvIMOpIGF0cmF2w6lzIGRvIHBhY290ZSBge3VzZXRoaXN9YC4gUGFyYSB1dGlsaXphciBlc3RhIGFib3JkYWdlbSB2b2PDqiBwcmVjaXNhIHRlciBvIFBBVCAoUGVyc29uYWwgQWNjZXNzIFRva2VuIHF1ZSBjcmlhbW9zIGzDoSBlbSBjaW1hKS4NCg0KMSAtIHZlcmlmaXF1ZSBzZSBvIGdpdCBlc3TDoSBmdW5jaW9uYW5kbyBlbSBzZXUgcmVwb3NpdMOzcmlvICh2ZWphIHNlIGFwYXJlY2UgYSB0YWIgZ2l0IG5vIHNldSBSU3R1ZGlvKS4gQ2FzbyBuw6NvIHZlamEgdm9jw6ogcHJlY2lzYSBpbmljaWFyIG8gZ2l0IG5vIGRpcmV0w7NyaW8gcXVlIGVzdMOhIHRyYWJhbGhhbmRvLiBQYXJhIGZhemVyIGlzc286DQoNCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQ0KdXNldGhpczo6dXNlX2dpdCgpDQpgYGANCg0KT3V0cmFzIG9ww6fDtWVzIGV4aXN0ZW0sIHBvciBleGVtcGxvLCB1c2FuZG8gbyB0ZXJtaW5hbCBkaXJldGFtZW50ZS4gTWFzIHZhbW9zIG1hbnRlciBhIGNvbnNpc3TDqm5jaWEgZSB1dGlsaXphciBzZW1wcmUgbyBwYWNvdGUgdXNldGhpcyBxdWFuZG8gcG9zc8OtdmVsLg0KDQoyIC0gdW1hIHZleiBxdWUgbyBnaXQgZXN0w6EgZnVuY2lvbmFuZG8gbmVzdGUgcmVwb3NpdMOzcmlvLCBwcmVjaXNhbW9zIGNyaWFyIHVtIHJlcG9zaXTDs3JpbyByZW1vdG8gcGFyYSBlbGUgbm8gbm9zc28gcGVyZmlsIGRvIEdpdEh1Yi4gUGFyYSB0YW50byBwcmVjaXNhbW9zIGFwZW5hcyBkaWdpdGFyOg0KDQpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0NCnVzZXRoaXM6OnVzZV9naXRodWIoKQ0KYGBgDQoNCg0KIyBBdGl2aWRhZGUNCg0KSG9yYSBkZSBwcmF0aWNhciBjb20gc2V1cyBkYWRvcywgb3UgYWluZGEgY29tIG9zIGRhZG9zIGRvIHBhbG1lcnBlbmd1aW5zLiBGYcOnYSBhbGd1bWFzIG1vZGlmaWNhw6fDtWVzIG5hIHRhYmVsYSwgc2FsdmUgdW0gbm92byBvYmpldG8sIGZhw6dhIHVtIGNvbW1pdCBlIHVtIHB1c2guIEFww7NzIGZhemVyIGlzc28gdmVyaWZpcXVlIG5hIHDDoWdpbmEgZG8gcmVwb3NpdMOzcmlvIG5vIEdpdEh1YiBvIHF1ZSBhY29udGVjZXUuDQoNCiMgUmVmZXLDqm5jaWFzIGltcG9ydGFudGVzDQoNCltEb3VnbGFzIE1jRG9uYWxkIHdlYnNpdGVdKGh0dHBzOi8vd3d3LmRvdWdhbmRkYXRhLmNvbS8yMDIyLzA3L29uLW5hbWluZy10aGluZ3MvKQ0KDQpbSmVubnkgQnJ5YW5dKGh0dHA6Ly93d3cyLnN0YXQuZHVrZS5lZHUvfnJjczQ2L2xlY3R1cmVzXzIwMTUvMDEtbWFya2Rvd24tZ2l0L3NsaWRlcy9uYW1pbmctc2xpZGVzL25hbWluZy1zbGlkZXMucGRmKQ0KDQpbSGFkbGV5IFdpY2toYW1dKGh0dHA6Ly9hZHYtci5oYWQuY28ubnovU3R5bGUuaHRtbCkNCg0KDQo=
+
LS0tDQp0aXRsZTogJ0NvbnRyb2xlIGRlIHZlcnPDo28nDQphdXRob3I6ICJHYWJyaWVsIE5ha2FtdXJhIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBodG1sX2RvY3VtZW50DQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGZpZy5hbGlnbiA9ICJjZW50ZXIiKQ0KYGBgDQoNCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0Ka2xpcHB5OjprbGlwcHkoKQ0KYGBgDQoNCiMgQXByZXNlbnRhw6fDo28NCg0KTmVzdGEgcHJpbWVpcmEgc2XDp8OjbyBpcmVpIGFwcmVzZW50YXIgYXMgcHJpbmNpcGFpcyBmZXJyYW1lbnRhcyBxdWUgdXRpbGl6YXJlbW9zIHBhcmEgbm9zIGFqdWRhciBuYSBvcmdhbml6YcOnw6NvIGNvbXB1dGFjaW9uYWwgZGUgZGFkb3MsIHNjcmlwdHMsIGFuw6FsaXNlcyBlIHByb2pldG9zIGNpZW50w61maWNvcyBlbSBnZXJhbC4gRXN0YXMgZmVycmFtZW50YXMgaXLDo28gYXV4aWxpYXIgZGVzZGUgYSBvcmdhbml6YcOnw6NvIGxvY2FsIGRlIHNldXMgZGFkb3MgYXTDqSBhIGRpc3BvbmliaWxpemHDp8OjbyBkZXN0ZXMgZGFkb3MgZW0gcGxhdGFmb3JtYXMgZGUgYWNlc3NvIGFiZXJ0by4gVsOhcmlhcyBkZWxhcyBqw6EgZGV2ZW0gc2VyIHZlbGhhcyBjb25oZWNpZGFzIHBvciB2b2PDqnMsIHBvciBleGVtcGxvLCBvIFJTdHVkaW8sIGVudMOjbyBkaXNwZW5zYW0gbWFpb3JlcyBhcHJlc2VudGHDp8O1ZXMuIFBvciBpc3NvLCBncmFuZGUgcGFydGUgZGVzdGUgZG9jdW1lbnRvIHZhaSB0cmF0YXIgZGUgdW1hIGZlcnJhbWVudGEgYXTDqSBiZW0gY29uaGVjaWRhIHBlbG8gbm9tZSwgbWFzIHF1ZSBwcmEgbXVpdGEgZ2VudGUgcG9kZSBwYXJlY2VyIGNvaXNhIGRlIG91dHJvIG11bmRvOiBvICoqR2l0KiouIFZvY8OqcyB2ZXLDo28gcXVlIGNvbmhlY2VtIG1haXMgZGVsZSBkbyBxdWUgaW1hZ2luYW0sIGUgcXVlIG11aXRhcyBkYXMgZnVuw6fDtWVzIHF1ZSBlbGUgcG9zc2liaWxpdGEgcmVhbGl6YXIgbsOzcyBqw6EgZmF6ZW1vcyBlbSBub3NzbyBkaWEtYS1kaWEgYXRyYXbDqXMgZGUgb3V0cm9zIGFwbGljYXRpdm9zLCBwb3LDqW0sIGNvbSBtYWlzIGVmaWNpw6puY2lhIGUgY29udHJvbGUgZGFzIGHDp8O1ZXMuDQoNCiMjIFBhY290ZXMgbmVjZXNzw6FyaW9zIA0KDQpQYXJhIGV4ZWN1dGFyIG9zIGPDs2RpZ29zIGRlc3RhIHBhcnRlIMOpIGltcG9ydGFudGUgdGVyIG9zIHNlZ3VpbnRlcyBwYWNvdGVzIGluc3RhbGFkb3M6IGB1c2V0aGlzYCwgYGRldnRvb2xzYCBlIGBnaXRjcmVkc2ANCg0KVm9jw6ogcG9kZSByZWFsaXphciBhIGluc3RhbGHDp8OjbyB1dGlsaXphbmRvIGEgc2VndWludGUgbGluaGEgZGUgY8OzZGlnbzoNCg0KYGBge3IgbGlicmFyaWVzUmVhZCwgZWNobz1UUlVFLCBldmFsPVRSVUV9DQpsaWJzIDwtIGMoInVzZXRoaXMiLCAiZGV2dG9vcyIsICJnaXRjcmVkcyIpDQppZiAoIXJlcXVpcmVOYW1lc3BhY2UobGlicywgcXVpZXRseSA9IFRSVUUpKXsNCiAgICBpbnN0YWxsLnBhY2thZ2VzKGxpYnMpDQogIH0NCmBgYA0KDQpDYXNvIHZvY8OqIG7Do28gdGVuaGEgb3MgcGFjb3RlcyBhY2ltYSBjaXRhZG9zIGEgaW5zdGFsYcOnw6NvIHNlcsOhIHJlYWxpemFkYS4gQ2FzbyBqw6EgdGVuaGEgZW0gc2V1IGNvbXB1dGFkb3IsIG5hZGEgaXLDoSBhY29udGVjZXIuDQoNCiMgSGVsbG8gR2l0IC0gSW50cm9kdcOnw6NvIGFvIHVzbyBkZSBzaXN0ZW1hIGRlIGNvbnRyb2xlIGRlIHZlcnPDtWVzDQoNCk8gR2l0IHRyYXRhLXNlIGRlIHVtIHNpc3RlbWEgZGUgY29udHJvbGUgZGUgdmVyc8O1ZXMsIG1hcyBhZmluYWwsIG8gcXVlIMOpIHVtIHNpc3RlbWEgZGUgY29udHJvbGUgZGUgdmVyc8O1ZXM/IEVzdGFtb3MgbWFpcyBhY29zdHVtYWRvcyBkbyBxdWUgaW1hZ2luYW1vcyBxdWFuZG8gbyBhc3N1bnRvIMOpIGNvbnRyb2xlIGRlIHZlcnPDtWVzLCBhcGVzYXIgZGUgcGFyZWNlciBhbGdvIGRlIG91dHJvIG11bmRvLiBVbSBleGVtcGxvIHF1ZSB0b2RvcyBuw7NzIGVzdGFtb3MgYWNvc3R1bWFkb3Mgw6kgb2ZlcmVjaWRvIHBlbG8gZWRpdG9yIGRlIHRleHRvIFdvcmQsIHF1YW5kbyBsaWdhbW9zIGEgb3DDp8OjbyAiVHJhY2sgY2hhbmdlcyIuIEFvIGZhemVybW9zIGlzc28gZXN0YW1vcyBjb250cm9sYW5kbyB0b2RhcyBhcyBtb2RpZmljYcOnw7VlcyBxdWUgZmF6ZW1vcyBlbSB1bSBkb2N1bWVudG8uIE8gR2l0IGZheiBhIG1lc21hIGNvaXNhLCBwb3LDqW0gcGFyYSB1bWEgcGFzdGEgaW50ZWlyYSAob3UgKmRpcmV0w7NyaW8qLCBuYSBsaW5ndWFnZW0gZG8gY29udHJvbGUgZGUgdmVyc8O1ZXMpLg0KDQpQb3J0YW50bywgbyBHaXQgbmFkYSBtYWlzIMOpIHF1ZSB1bSBzaXN0ZW1hIGNyaWFkbyBwYXJhIHJlYWxpemFyIG8gcmFzdHJlaW8gZGUgdG9kYSBlIHF1YWxxdWVyIG1vZGlmaWNhw6fDo28gZGUgYXJxdWl2b3MgZGVudHJvIGRlIHVtYSBwYXN0YSwgdXRpbGl6YW5kbyBhIHRlcm1pbm9sb2dpYSBkbyB2ZXJzaW9uYW1lbnRvLCB0dWRvIG8gcXVlIMOpIGZlaXRvIGVtIHVtIGRpcmV0w7NyaW8gYXNzb2NpYWRvIGFvIEdpdCDDqSAqb2JzZXJ2YWRvKiAoKndhdGNoKiBuYSBsaW5ndWFnZW0gZG8gdmVyc2lvbmFtZW50bykuDQoNCiMjIEdpdCBlIEdpdEh1Yg0KDQpUZXIgYSBwb3NzaWJpbGlkYWRlIGRlIGNvbnRyb2xhciBhcyB2ZXJzw7VlcyBkb3MgZG9jdW1lbnRvcyBqw6Egw6kgYm9tLCBpbWFnaW5lLCBhbMOpbSBkaXNzbywgdGVyIHVtIGxvY2FsIHJlbW90byBvbmRlIHR1ZG8gaXNzbyBmaWNhIGd1YXJkYWRvLiBPdSBzZWphLCBzZSBzZXUgY29tcHV0YWRvciBxdWVicmFyLCBmb3Igcm91YmFkbywgcGlmYXIsIG91IHNlIHZvY8OqIHRyb2NhLWxvLCB0dWRvIGVzdGFyw6Egc2VndXJvIGVtIHVtIGx1Z2FyIGNoYW1hZG8gR2l0SHViLg0KDQpQb3J0YW50bywgR2l0IGUgW0dpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tLykgc8OjbyBjb2lzYXMgZGlzdGludGFzLiBPIEdpdEh1YiDDqSBvIEdvb2dsZURyaXZlIChvdSBvIE9uZURyaXZlKSBkb3MgY8OzZGlnb3MuIEVsZSB0ZW0gY29tbyBmdW7Dp8OjbyBhcm1hemVuYXIgcmVtb3RhbWVudGUgdG9kb3Mgb3MgdHJhYmFsaG9zIHF1ZSBzw6NvIGZlaXRvcyBsb2NhbG1lbnRlIGUgcXVlIGVzdMOjbyBzZW5kbyBtb25pdG9yYWRvcyBwZWxvIEdpdCwgbWFzIGNvbSBtdWl0byBtYWlzIHBvdGVuY2lhbGlkYWRlcyBlIGNvbnRyb2xlIGRlIGFybWF6ZW5hbWVudG8gcXVlIGFzIGZlcnJhbWVudGFzIGRvIEJpbGwgR2F0ZXMuIFBvciBleGVtcGxvLCBpbWFnaW5lIGd1YXJkYXIgdW0gc2l0ZSBpbnRlaXJvIG5vIEdvb2dsZSBEcml2ZSwgb3UgdW0gcGFjb3RlIGVzdGF0w61zdGljbyBxdWUgdm9jw6ogZXNjcmV2ZXUsIGUgYWluZGEgZGlzcG9uaWJpbGl6YXIgZXNzYXMgY29pc2FzIHBhcmEgb3V0cmFzIHBlc3NvYXMuLi4gcGFyZWNlIGNvbXBsaWNhZG8gc2UgdXNhcm1vcyBhcyBmZXJyYW1lbnRhcyBjb21lcmNpYWlzIG1haXMgY29tdW5zLCBtYXMgY29tIG8gR2l0SHViIHR1ZG8gaXNzbyBzZSB0b3JuYSBwb3Nzw612ZWwgc2VyIHJlYWxpemFkbyBjb20gZmFjaWxpZGFkZQ0KDQojIyBHaXQgZSBHaXQgY2xpZW50DQoNClRlbW9zIHVtYSBmZXJyYW1lbnRhIHF1ZSBwb3NzaWJpbGl0YSBvIHZlcnNpb25hbWVudG8gKG8gR2l0KSwgb3V0cmEgcXVlIHBvc3NpYmlsaXRhIG8gYXJtYXplbmFtZW50bywgY29sYWJvcmHDp8OjbywgY29tcGFydGlsaGFtZW50byAoR2l0SHViKSwgbWFzIGNvbW8gY29udHJvbGFtb3MgZXNzYXMgZmVycmFtZW50YXM/IMOJIGHDrSBxdWUgZW50cmEgbyBxdWUgY2hhbWFtb3MgZGUgKipHaXQgY2xpZW50KioNCg0KVW1hIHNpbXBsZXMgYW5hbG9naWEgcGFyYSBlbnRlbmRlciBhIGRpZmVyZW7Dp2EgZW50cmUgdW0gR2l0IGNsaWVudCBlIG8gR2l0IMOpIGEgZGlmZXJlbsOnYSBlbnRyZSBSIGUgUlN0dWRpby4gTyBSIMOpIGEgZmVycmFtZW50YSBvbmRlIG9zIHByb2Nlc3NvcyBzw6NvIHJlYWxpemFkb3MsIG8gUlN0dWRpbyDDqSB1bWEgaW50ZXJmYWNlIGVzcGVjw61maWNhIGUgYW1pZ8OhdmVsIHBhcmEgbyB1c28gZG8gUi4gRGEgbWVzbWEgZm9ybWEgbyBHaXQgw6kgYSBmZXJyYW1lbnRhIHF1ZSByZWFsaXphIG8gY29udHJvbGUgZGUgdmVyc8OjbywgasOhIG8gR2l0IGNsaWVudCDDqSBhIGludGVyZmFjZSBlc3BlY8OtZmljYSBwYXJhIHF1ZSBvIHVzdcOhcmlvIHBvc3NhIGludGVyYWdpciBkZSBtYW5laXJhIG1haXMgYW1pZ8OhdmVsIGNvbSBvIEdpdCBlIEdpdEh1Yi4gRXhpc3RlbSB2w6FyaW9zIEdpdCBjbGllbnRzIHF1ZSBwb2RlbW9zIHV0aWxpemFyIHBhcmEgcmVhbGl6YXIgZXNzYSBpbnRlcmHDp8OjbywgcG9yIGV4ZW1wbG8sIG8gW0dpdEtyYWtlbl0oaHR0cHM6Ly93d3cuZ2l0a3Jha2VuLmNvbS8pIGUgW0dpdExhYl0oaHR0cHM6Ly9hYm91dC5naXRsYWIuY29tLykuIENhZGEgdW0gdGVtIHN1YXMgdmFudGFnZW5zIGUgZGVzdmFudGFnZW5zLg0KDQpOZXN0ZSBjdXJzbyB1c2FyZW1vcyB1bSBHaXQgY2xpZW50IHF1ZSDDqSB1bSB2ZWxobyBjb25oZWNpZG8gbm9zc28sIG8gKipSU3R1ZGlvKiouIEZhcmVtb3MgaXNzbyAgcG9pcyBvIFJTdHVkaW8gKGFnb3JhIGNoYW1hZG8gUG9zaXQsIG1hcyB2YW1vcyBtYW50ZXIgbyB2ZWxobyBub21lKSDDqSBhIGludGVyZmFjZSBtYWlzIGNvbXVtIHV0aWxpemFkYSBub3MgZXN0dWRvcyBkZSBlY29sb2dpYSBlIGV2b2x1w6fDo28sIGFsw6ltIGRlIGFwcmVzZW50YXIgdW1hIGdyYW5kZSBxdWFudGlkYWRlIGRlIG1hdGVyaWFpcyBkaXNwb27DrXZlaXMgbmEgaW50ZXJuZXQgZSB0YW1iw6ltIHBvciBzZXIgYXF1ZWxhIHF1ZSBvIGluc3RydXRvciBxdWUgdm9zIGZhbGEgdGVtIG1haXMgZmFtaWxpYXJpZGFkZS4gDQoNCiMjIEludGVncmFuZG8gR2l0LCBHaXRIdWIgZSBSU3R1ZGlvDQoNCkFnb3JhIHF1ZSBjb25oZWNlbW9zIGFzIGZlcnJhbWVudGFzLCBpbWFnaW5lIHNlIGNvbnNlZ3XDrXNzZW1vcyBjb2xvY2FyIGVsYXMgZW0gdW0gc8OzIGx1Z2FyLiBJbWFnaW5lIHVtIHNpc3RlbWEgcXVlIGludGVncmEgbyBzZXUgcHJvZ3JhbWEgZmF2b3JpdG8gZGUgYW7DoWxpc2VzIGVzdGF0w61zdGljYXMsIG8gc2V1IHByb2dyYW1hIGZhdm9yaXRvIGRlIGNvbnRyb2xlIGRlIHZlcnPDtWVzIGUgdGFtYsOpbSBvIHNldSByZXBvc2l0w7NyaW8gcmVtb3RvIGZhdm9yaXRvLiBQb2lzIMOpIGRpc3NvIHF1ZSBzZSB0cmF0YSBhIGludGVncmHDp8OjbyBkbyBHaXQgY29tIG8gR2l0SHViIGUgUlN0dWRpby4gVHVkbyAocXVhc2UgdHVkbykgcG9kZSBzZXIgZmVpdG8gbm8gR2l0IGF0cmF2w6lzIGRvIFJTdHVkaW8uIFBvcnRhbnRvLCBuYXMgcHLDs3hpbWFzIHNlw6fDtWVzIGlyZWkgYXByZXNlbnRhciBjb21vIHBvZGVtb3MgaW50ZWdyYXIgbyBjb250cm9sZSBkZSB2ZXJzw6NvIChHaXQpIGNvbSBvIHJlcG9zaXTDs3JpbyByZW1vdG8gKEdpdEh1YikgZSBvIFJTdHVkaW8uDQoNCiMgTcOjb3Mgbm8gdGVjbGFkbyAtIEluc3RhbGFuZG8gZSBjb25maWd1cmFuZG8gbyBHaXQNCg0KTyBwcmltZWlybyBwYXNzbyBhbnRlcyBkZSBpbnN0YWxhciBvIEdpdCDDqSBzYWJlciBzZSB2b2PDqiBqw6EgdGVtIGVsZSBpbnN0YWxhZG8gZW0gc2V1IGNvbXB1dGFkb3IuIFBhcmEgdGFudG8gdm9jw6ogZGV2ZSBhY2Vzc2FyIGEgbGluaGEgZGUgY29tYW5kbyBkZSBzZXUgc2lzdGVtYSBvcGVyYWNpb25hbCAoYmFzaCwgcHJvbXB0LCBpc3NvIHZhaSB2YXJpYXIgZGVwZW5kZW5kbyBkbyB0aXBvIGRlIHNpc3RlbWEgcXVlIHVzYSkgZSBkaWdpdGFyIG8gY29tYW5kbzoNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KZ2l0DQpgYGANCg0KQ2FzbyByZXRvcm5lIHVtYSBtZW5zYWdlbSBpbmRpY2FuZG8gbyBsb2NhbCBkbyBnaXQgbm8gc2V1IGNvbXB1dGFkb3IsIMOzdGltbywgdW1hIHRhcmVmYSBhIG1lbm9zLCBjYXNvIGNvbnRyw6FyaW8gdm9jw6ogdGVyw6EgcXVlIGluc3RhbGFyIG8gZ2l0IGRlIGFjb3JkbyBjb20gYXMgZXNwZWNpZmljaWRhZGVzIGRvIHNldSBzaXN0ZW1hIG9wZXJhY2lvbmFsIHF1ZSBzZXLDo28gYXByZXNlbnRhZGFzIGEgc2VndWlyLg0KDQojIyBJbnN0YWxhw6fDo28gZG8gR2l0IG5vIFdpbmRvd3MNCg0KSW5zdGFsZSBvIEdpdCBhY2Vzc2FuZG8gW2FxdWldKGh0dHBzOi8vZ2l0Zm9yd2luZG93cy5vcmcvKSBlIHNpZ2EgYXMgaW5mb3JtYcOnw7VlcyBkbyBhdXhpbGlhciBkZSBpbnN0YWxhw6fDo28gcXVlIGZvaSBiYWl4YWRvLg0KDQojIyBJbnN0YcOnw6NvIGRvIEdpdCBubyBNYWMgT1MNCg0KSW5zdGFsZSBvIEdpdCBubyBzZXUgTWFjIGJhaXhhbmRvIG8gWGNvZGUgY29tbWFuZCBsaW5lIHRvb2xzIGNhc28gdm9jw6ogYWluZGEgbsOjbyBvIHRlbmhhLiBFc3RhIGFwbGljYcOnw6NvIGrDoSB2ZW0gY29tIG8gZ2l0LiBBY2VpdGUgYXMgY29uZmlndXJhw6fDtWVzIGUgY2xpcXVlIGVtIGluc3RhbGFyDQoNCkVtIHNlZ3VpZGEgY29uZmlndXJlIG8gZ2l0IHVzYW5kbyBhIGxpbmhhIGRlIGNvbWFuZG8gc2VndWludGUgbm8gc2V1IHRlcm1pbmFsOg0KDQpgYGB7ciBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQpnaXQgLS12ZXJzaW9uDQpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiWW91ciBuYW1lIGhlcmUiDQpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgInlvdXJfZW1haWxAZXhhbXBsZS5jb20iDQpgYGANCg0KIyMgSW5zdGFsYcOnw6NvIGRvIEdpdCBubyBMaW51eCANCg0KRGlnaXRlIGEgc2VndWludGUgbGluaGEgZGUgY29tYW5kbyBjYXNvIHZvY8OqIHRlbmhhIFVidW50dSBvdSBEZWJpYW4gTGludXgNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0Kc3VkbyBhcHQtZ2V0IGluc3RhbGwgZ2l0DQpgYGANCg0KU2UgdGVtIEZlZG9yYSBvdSBIYXRMaW51eCB1c2U6DQoNCmBgYHtyIGVjaG89VFJVRSwgZXZhbD1GQUxTRX0NCnN1ZG8geXVtIGluc3RhbGwgZ2l0DQpgYGANCg0KKipBbGd1bWFzIGNvaXNhcyBwb2RlbSBzZXIgZGlmZXJlbnRlcyBkZXBlbmRlbmRvIGRvIHNldSBzaXN0ZW1hIG9wZXJhY2lvbmFsIGUgdmVyc8OjbyBkbyBMaW51eCoqLCBjYXNvIHNlIGRlcGFyZSBjb20gYWxndW0gcHJvYmxlbWEgdGVudGUgYWJyaXIgdW0gKipJc3N1ZSoqIG5vIHJlcG9zaXTDs3JpbyBkZXN0YSBhcG9zdGlsYSBubyBHaXRIdWIgZSB0ZW50YXJlbW9zIHJlc29sdmVyIDopDQoNCiMgQ29uZmlndXJhw6fDo28gZG8gR2l0IGUgaW50ZWdyYcOnw6NvIGNvbSBSU3R1ZGlvDQoNCiMjIFV0aWxpemFuZG8gbyBwYWNvdGUgYHVzZXRoaXNgDQoNCkFww7NzIGEgaW5zdGFsYcOnw6NvIGRvIEdpdCBkZXZlbW9zIGNvbmZpZ3VyIG8gR2l0SHViIG5vIG5vc3NvIGNvbXB1dGFkb3IuIFBhcmEgY29uZmlndXJhciBvIEdpdEh1Yiwgb3Ugc2VqYSwgcGFyYSBxdWUgbyBHaXQgZSBHaXRIdWIgc2FpYmEgcXVlbSBlc3TDoSB1c2FuZG8sIHZhbW9zIHV0aWxpemFyIGEgY29uZmlndXJhw6fDo28gY29tIGF1eMOtbGlvIGRvIMOzdGltbyBwYWNvdGUgYHVzZXRoaXNgLiBQb3J0YW50bywgYWJyYSBvIFJTdHVkaW8gZSBkaWdpdGU6DQoNCmBgYHtyIGVjaG89VFJVRSwgZXZhbD1GQUxTRX0NCmxpYnJhcnkodXNldGhpcykNCnVzZV9naXRfY29uZmlnKHVzZXIubmFtZSA9ICJTZXVOb21lRGVVc3VhcmlvIiwgdXNlci5lbWFpbCA9ICJzZXVNYWlsQGV4YW1wbGUuYnIiKQ0KYGBgDQoNCkxlbWJyZSBkZSBzdWJzdGl0dWlyIG9zIGNhbXBvcyBxdWUgYXBhcmVjZXLDo28gbm8gY29uc29sZSBkbyBzZXUgUiBjb20gc3VhcyBpbmZvcm1hw6fDtWVzLiAiU2V1Tm9tZURlVXN1YXJpbyIgw6kgbyBub21lIHF1ZSB2b2PDqiBjYWRhc3Ryb3Ugbm8gR2l0SHViDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFLGZpZy5jYXA9Ik5vbWUgZG8gdXN1w6FyaW8gZGVzdGFjYWRvIGVtIHZlcm1lbGhvIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL05vbWVVc3VhcmlvLnBuZyIpDQpgYGANCg0KDQojIyBVdGlsaXphbmRvIG8gcGFjb3RlIGBnaXRjcmVkc2AgLSAqKk1haXMgcmVjb21lbmRhZGEqKg0KDQpBcGVzYXIgZGUgZXN0YXJtb3MgZmFsYW5kbyBkZSBjacOqbmNpYSBhYmVydGEsIG8gc2V1IHBlcmZpbCBubyBHaXRIdWIgw6kgcGVzc29hbCwgcG9ydGFudG8gw6kgaW1wb3J0YW50ZSBxdWUgaGFqYSB1bWEgZm9ybWEgZGUgYXV0ZW50aWNhw6fDo28gb25kZSBvIEdpdEh1YiBzYWliYSBxdWUgdm9jw6ogw6kgbyBkb25vIGRvIHBlcmZpbC4gSXNzbyBnZXJhbG1lbnRlIMOpIGZlaXRvIGF0cmF2w6lzIGRvIHVzbyBkZSBzZW5oYXMsIHBvcsOpbSBzZW5oYXMgbmVtIHNlbXByZSBzw6NvIHNlZ3VyYXMgKG9rLCBwcm92YXZlbG1lbnRlIG5pbmd1w6ltIHZhaSBxdWVyZXIgaW52YWRpciBub3NzbyBHaXRIdWIgcGFyYSB0b21hciBpbmZvcm1hw6fDtWVzIHNvYnJlIHVtYSBmdW7Dp8OjbyBxdWUgY2FsY3VsYSBhIGRpbWVuc2lvbmFsaWRhZGUgZGEgYmlvZGl2ZXJzaWRhZGUsIG1hcyBvdXRyYXMgY29pc2FzIHPDo28gZGVzZW52b2x2aWRhcyBlIGhvc3BlZGFkYXMgbm8gR2l0SHViKSwgZSBwb3IgaXNzbyBhIGZvcm1hIHBhZHLDo28gZGUgYXV0ZW50aWNhw6fDo28gdXRpbGl6YWRhIHBlbG8gR2l0SHViIMOpIG8gY2hhbWFkbyBQQVQgKFBlcnNvbmFsIEFjY2VzcyBUb2tlbikuIFNlZ3VuZG8gbyBwcsOzcHJpbyBHaXRIdWIgdW0gUEFUIMOpOg0KDQo+ICJQZXJzb25hbCBhY2Nlc3MgdG9rZW5zIGFyZSBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZyBwYXNzd29yZHMgZm9yIGF1dGhlbnRpY2F0aW9uIHRvIEdpdEh1YiB3aGVuIHVzaW5nIHRoZSBHaXRIdWIgQVBJIG9yIHRoZSBjb21tYW5kIGxpbmUuIg0KDQpPIFBBVCBuYWRhIG1haXMgw6kgcXVlIHVtYSAic2VuaGEiIGdlcmFkYSBwZWxvIHByw7NwcmlvIGdpdGh1YiBlIHF1ZSBkZXZlIHNlciByZW5vdmFkYSBjb20gY2VydGEgcGVyaW9kaWNpZGFkZS4gKipPIEdpdEh1YiBuw6NvIHBlcm1pdGUgbWFpcyBhdXRlbnRpY2HDp8O1ZXMgdmlhIHNlbmhhLCBhcGVuYXMgdXNhbmRvIG8gUEFUKiouIFBvcnRhbnRvLCBvIMO6bHRpbW8gcGFzc28gcGFyYSBpbnRlZ3JhciBvIFIsIFJTdHVkaW8sIEdpdCBlIEdpdEh1YiDDqSBpbmZvcm1hciBvIFBBVC4gUHJlY2lzYXJlbW9zIGZhemVyIGlzc28gYXBlbmFzIHVtYSB2ZXosIGUgcmVwZXRpciBhcGVuYXMgcXVhbmRvIG8gUEFUIGV4cGlyYXIuIFZhbW9zIGNvbWXDp2FyIGdlcmFuZG8gbyBQQVQuIFBhcmEgaW5mb3JtYcOnw7VlcyBtYWlzIGRldGFsaGFkYXMgc29icmUgbyBQQVQgdm9jw6ogcG9kZSBhY2Vzc2FyIFtlc3RhXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hdXRoZW50aWNhdGlvbi9rZWVwaW5nLXlvdXItYWNjb3VudC1hbmQtZGF0YS1zZWN1cmUvbWFuYWdpbmcteW91ci1wZXJzb25hbC1hY2Nlc3MtdG9rZW5zKSBww6FnaW5hLg0KDQpQYXJhIGNvbmZpZ3VyYXIgbyBQQVQgdmFtb3MgdXNhciBwcmltZWlybyBvIHBhY290ZSBgdXNldGhpc2AgZSBkZXBvaXMgdmFtb3MgdXRpbGl6YXIgYXMgZnVuY2lvbmFsaWRhZGVzIGRvIHBhY290ZSBgZ2l0Y3JlZHNgLkRpZ2l0ZSBhIGxpbmhhIGRlIGPDs2RpZ28gbm8gc2V1IGNvbnNvbGUgZG8gUjoNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KbGlicmFyeSh1c2V0aGlzKQ0KY3JlYXRlX2dpdGh1Yl90b2tlbigpDQpgYGANCg0KSXNzbyBhYnJpcsOhIHVtYSBndWlhIG5vIHNldSBuYXZlZ2Fkb3IgcGFyYSBxdWUgdm9jw6ogZ2VyZSB1bSB0b2tlbiwgdGFsIGNvbW8gbW9zdHJhZG8gbmEgaW1hZ2VtIGFiYWl4bw0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJFeGVtcGxvIGRhIHDDoWdpbmEgZG8gR2l0SHViIHBhcmEgZ2VyYXIgdW0gdG9rZW4ifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvUEFULWNyZWF0aW9uLnBuZyIpDQpgYGANCg0KVm9jw6ogdmVyw6EgaW7Dum1lcmFzIG9ww6fDtWVzIGRlIGFjZXNzby4gQXMgY2FpeGluaGFzIHF1ZSB2YW1vcyBlc2NvbGhlciB2YWkgZGVwZW5kZXIgZG8gZ3JhdSBkZSBjb250cm9sZSBxdWUgdm9jw6ogZGVzZWphIHRlciBwYXJhIHVzYXIgbyBHaXRIdWIgdmlhIFJzdHVkaW8uDQoNCkFww7NzIGdlcmFkbywgKipndWFyZGUgZXNzZSB0b2tlbiBjb20gY2FyaW5obyoqLCBwb2lzIGVsZSB2YWkgc2VyIHN1YSBub3ZhIHNlbmhhIGRlIGVudHJhZGEgcGFyYSBvIEdpdEh1YiB2aWEgUlN0dWRpbywgcXVhbmRvIGZvciByZXF1ZXJpZG8uIFBhcmEgYXJtYXplbmFyIHNlbmhhcyBlIGRhZG9zIGV1IHN1Z2lybyBvIHByb2dyYW1hICoqTGFzdFBhc3MqKi4NCg0KUHLDs3hpbW8gcGFzc28gw6kgcmVnaXN0YXIgZXNzZSB0b2tlbiBnZXJhZG8gZW0gbm9zc28gY29tcHV0YWRvci4gUGFyYSB0YW50bywgZmHDp2EgbyBzZWd1aW50ZToNCg0KYGBge3IgUEFULCBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQpsaWJyYXJ5KGdpdGNyZWRzKQ0KZ2l0Y3JlZHM6OmdpdGNyZWRzX3NldCgpDQpgYGANCg0KTm8gY29uc29sZSBhcGFyZWNlcsOhIGEgbWVuc2FnZW0gcGFyYSBkaWdpdGFyIG8gdG9rZW4sIGNvcGllIG8gdG9rZW4gZSBjb2xlIGRpcmV0byBubyBuYXZlZ2Fkb3IsIHByZXNzaW9uZSBlbnRlciBlIHByb250bywgc2V1IFJTdHVkaW8gZXN0w6EgYXV0ZW50aWNhZG8gZSBhZ29yYSBlc3TDoSBkZXZpZGFtZW50ZSBjb25lY3RhZG8gY29tIG8gcmVwb3NpdMOzcmlvIHJlbW90by4gRXN0YW1vcyBwcm9udG8gcGFyYSBvIG5vc3NvIHByaW1laXJvIGNvbW1pdCEhISENCg0KDQojIENvbmVjdGFuZG8gR2l0LCBSU3R1ZGlvIGUgR2l0aHViIHBlbGEgcHJpbWVpcmEgdmV6DQoNCkFudGVzIGRlIGNvbWXDp2FyIGEgdXRpbGl6YXIgbyBHaXQgZSBHaXRIaWIgdmlhIFJTdHVkaW8gdmFtb3MgcHJpbWVpcm8gZGFyIHVtYSBvbGhhZGluaGEgbm8gc2l0ZSBkbyBHaXRIdWIuIEFicmEgbyBHaXRIdWIsIGZhw6dhIG8gc2V1IGxvZ2luIGUgdmFtb3MgZGFyIHVtYSBleHBsb3JhZGEgcG9yIGzDoS4NCg0KQXDDs3MgZXNzZSBwYXNzZWlvIHBlbG8gR2l0SHViLCB2YW1vcyBjcmlhciBub3NzbyByZXBvc2l0w7NyaW8gcGFyYSBlc3RhIGF1bGEuIFPDsyBsZW1icmFuZG8gcXVlIHBhcmEgZmF6ZXIgaXNzbyB2b2PDqiBqw6EgcHJlY2lzYSB0ZXIgdW1hIGNvbnRhIGNyaWFkYSBubyBHaXRIdWIgZSBvIEdpdCBpbnN0YWxhZG8uIFRlbmRvIHN1YSBjb250YSBmZWl0YSB2w6EgbyBzZXUgbmF2ZWdhZG9yIGRlIGludGVybmV0LCBhY2Vzc2UgbyBzaXRlIGRvIEdpdEh1YiBlIGZhw6dhIG8gbG9naW4uIEZlaXRvIGlzc286DQoNCjEgLSBDcmllIHVtIHJlcG9zaXTDs3JpbyANCg0KQ3JpZSB1bSBub3ZvIHJlcG9zaXTDs3JpbyBjbGljYW5kbyBubyBib3TDo28gZGVzdGFjYWRvIG5hIGZpZ3VyYSBhYmFpeG8NCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsZmlnLmNhcD0iQ3JpYW5kbyB1bSBub3ZvIHJlcG9zaXTDs3JpbyBhIHBhcnRpciBkbyBHaXRIdWIifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvQ3JlYXRlLVJlcHBvLnBuZyIpDQpgYGANCg0KRXhpc3RlbSBvdXRyYXMgZm9ybWFzIGRlIGluaWNpYXIgdW0gcmVwb3NpdMOzcmlvLCBpbmNsdXNpdmUgZGlyZXRvIHBlbG8gUlN0dWRpbywgbWFzIHZhbW9zIHBlbG8gY2FtaW5obyBtYWlzIHNpbXBsZXMgcG9yIGVucXVhbnRvLg0KDQojIE8gQUJDIGRvIHZlcnNpb25hbWVudG86IENsb25lLCBQdWxsLCBQdXNoIGFuZCBDb21taXRzIA0KDQpWaW1vcyBuYXMgYXVsYXMgdGXDs3JpY2FzIHF1ZSBlc3NhcyBwYWxhdnJpbmhhcyBuw6NvIHPDo28gbmFkYSBtYWlzIHF1ZSBhw6fDtWVzIHF1ZSBwcmF0aWNhbW9zIG5vIG5vc3NvIGRpYS1hLWRpYS4gQWdvcmEgw6kgaG9yYSBkZSBjb2xvY2FyIGVtIHByw6F0aWNhLg0KDQpKw6EgdGVtb3MgdW0gcmVwb3NpdMOzcmlvIHJlbW90bywgYWdvcmEgcHJlY2lzYW1vcyBxdWUgZWxlIGV4aXN0YSBlbSBub3Nzb3MgY29tcHV0YWRvcmVzIHBhcmEgcXVlIHBvc3NhbW9zIHNpbmNyb25pemFyIG5vc3NvIHRyYWJhbGhvIGxvY2FsIGUgcmVtb3RvLiBEZSBtYW5laXJhIGdlcmFsIG8gcXVlIHF1ZXJlbW9zIGZhemVyIGEgcGFydGlyIGRlIGFnb3JhIGVzdMOhIGlsdXN0cmFkbyBuYSBmaWd1cmEgc2VndWludGUNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSI1NSUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvdmVyc2lvbi1jb250cm9sLWFsbC5wbmciKQ0KYGBgDQoNCkEgcGFydGlyIGRlIGFnb3JhIGlyZW1vcywgcGFzc28gYSBwYXNzbywgcmVhbGl6YXIgdG9kYXMgYXMgZnVuw6fDtWVzIGLDoXNpY2FzIGVzc2VuY2lhaXMgcGFyYSBvcmdhbml6YcOnw6NvIGNvbXB1dGFjaW9uYWwgZGUgdW0gcHJvamV0byBjaWVudMOtZmljby4NCg0KTyBwcmltZWlybyBwYXNzbyDDqSByZWFsaXphciB1bWEgY2xvbmFnZW0hDQoNCiMjIE8gQ2xvbmUNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsZmlnLmNhcD0iUmVmZXLDqm5jaWEgZGUgdmVsaG8iLG91dC53aWR0aD0iNTUlIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmaWdzL28tY2xvbmUuanBlZyIpDQpgYGANCg0KUGFyYSBxdWUgbm9zc28gcmVwb3NpdMOzcmlvIGxvY2FsIGVzdGVqYSBsaWdhZG8gYW8gbm9zc28gcmVwb3NpdMOzcmlvIHJlbW90byBwcmVjaXNhbW9zIHByaW1laXJvIGNvbmVjdMOhLWxvcy4gRmF6ZW1vcyBpc3NvIGFvIGNsb25hciBvIHJlcG9zaXTDs3JpbyByZW1vdG8gZW0gbm9zc2EgbcOhcXVpbmEuIENsb25hciAoY2xvbmUpIG5lc3NlIGNhc28gbsOjbyDDqSBuYWRhIG1haXMgcXVlIGNyaWFyIHVtYSBjw7NwaWEgZXhhdGEgZGUgdW0gcmVwb3NpdMOzcmlvIHJlbW90byBlbSBzdWEgbcOhcXVpbmEuIEEgcGFydGlyIGRlc3NlIG1vbWVudG8gZXNzZXMgcmVwb3NpdMOzcmlvcyBlc3RhcsOjbyBjb25lY3RhZG9zIGF0w6kgcXVlIG8gR2l0IG9zIHNlcGFyZS4NCg0KUGFyYSBjbG9uYXIgdsOhIGF0w6kgbyByZXBvc2l0w7NyaW8gcmVtb3RvIGRlIGludGVyZXNzZSwgZSBjb3BpZSBhIGNoYXZlIGh0dHBzLCBjb21vIG1vc3RyYWRvIG5hIGZpZ3VyYSBhIHNlZ3VpcjoNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUV9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItY29weS1odHRwcy5wbmciKQ0KYGBgDQoNCkNsaXF1ZSBubyBib3TDo28gZGUgY8OzcGlhIGUgdmFtb3MgcGFyYSBvIFJTdHVkaW8uIE5vIFJTdHVkaW8gdsOhIGVtIGBGaWxlYCBlIGRlcG9pcyBgTmV3IFByb2plY3RgLiBBIHBhcnRpciBkYcOtIHNpZ2EgYXMgaW1hZ2VucyBhYmFpeG86DQoNCiMjIyAxLiBDb3BpYW5kbyBhIGNoYXZlIGh0dHBzIG5vIEdpdEh1Yg0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJDb3BpYW5kbyBjaGF2ZSBodHRwcyJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItY29weS1odHRwcy5wbmciKQ0KYGBgDQoNCiMjIyAyLiBDcmlhbmRvIHVtIG5vdm8gKipwcm9qZXRvKiogbG9jYWxtZW50ZQ0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJBYnJpbmRvIHVtIG5vdm8gcHJvamV0byJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9naXRodWItdmVyc2lvbmNvbnRyb2wtb3B0aW9uLnBuZyIpDQpgYGANCg0KIyMjIDMuIENvbGFuZG8gYSBjaGF2ZSBwYXJhIGxpZ2FyIG8gcmVwb3NpdMOzcmlvIHJlbW90byBjb20gbyBsb2NhbA0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxmaWcuY2FwPSJDb2xhbmRvIGEgY2hhdmUgaHR0cHMifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2l0aHViLXBhc3RlLWh0dHBzLnBuZyIpDQpgYGANCg0KQW8gY2xpY2FyIGVtIGBDcmVhdGUgcHJvamVjdGAgbyByZXBvc2l0w7NyaW8gcmVtb3RvIHNlcsOhIGltZWRpYXRhbWVudGUgdHJhbnNmZXJpZG8gcGFyYSBvIHNldSBjb21wdXRhZG9yLiBVbWEgcGFzdGEgKG8gZGlyZXTDs3JpbyBsb2NhbCkgc2Vyw6EgY3JpYWRvIG5vIGxvY2FsIHF1ZSB2b2PDqiBlc2NvbGhldSBlLCBhc3NpbSwgUlN0dWRpbywgR2l0IGUgR2l0aHViIGVzdGFyw6NvIHBsZW5hbWVudGUgY29uZWN0YWRvcy4gVHVkbyBjZXJ0byBhdMOpIGFxdWk/IFVtYSBwYXVzYSBwYXJhIGRlc2NhbnNvIGNvbSB1bSB2w61kZW8uDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0KdmVtYmVkcjo6ZW1iZWRfdXJsKCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWo3SzNzX3ZpXzFZIikNCmBgYA0KDQoNCiMjIFB1bGwsIENvbW1pdHMgZSBQdXNoIA0KDQpTZSB2b2PDqiBjaGVnb3UgYXTDqSBhcXVpIHNlbSBlcnJvcyBpc3NvIHF1ZXIgZGl6ZXIgcXVlIEdpdCBlIEdpdEh1YiBqw6EgZXN0w6NvIGludGVncmFkb3Mgbm8gUlN0dWRpby4gUG9ydGFudG8sIHF1YWxxdWVyIGNvaXNhIHF1ZSBmaXplcm1vcyBuZXN0YSBwYXN0YSBlc3TDoSBzZW5kbyBvYnNlcnZhZG8gYSBwYXJ0aXIgZGUgYWdvcmEgcGVsbyBnaXQuIFBhcmEgY2VydGlyZmljYXItc2UgZGlzc28sIGhhYmlsaXRlIGEgdmlzdWFsaXphw6fDo28gZGUgYXJxdWl2b3Mgb2N1bHRvcyBubyBzZXUgY29tcHV0YWRvciwgdm9jw6ogdmFpIG5vdGFyIHF1ZSBuYSByYWl6IGRlc3RhIHBhc3RhIGNsb25hZGEgZXhpc3RlIHVtYSBwYXN0YSBgLmdpdGAsIGNvbW8gbmEgZmlndXJhIGEgc2VndWlyDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2l0LWluc2lkZS1mb2xkZXIucG5nIikNCmBgYA0KDQpTZSB2b2PDqiBjb25zZWd1ZSB2ZXIgZXN0YSBwYXN0YSBxdWVyIGRpemVyIHF1ZSBlc3TDoSB0dWRvIGNlcnRvLCBlIG8gZ2l0IGVzdMOhIG9ic2VydmFuZG8gKCoqd2F0Y2gqKiBubyBqYXJnw6NvIGRvIHZlcnNpb25hbWVudG8pIGNhZGEgbW9kaWZpY2HDp8OjbyBlIGNhZGEgYXJxdWl2byBkZW50cm8gZGVzdGEgcGFzdGEgKGEgbWVub3MgcXVlIHZvY8OqIGluY2x1YSBvIGFycXVpdm8gbm8gLmdpdGlnbm9yZSwgbWFzIGlzc28gw6kgYXNzdW50byBwYXJhIG91dHJvIG1vbWVudG8pLg0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxvdXQud2lkdGg9IjU1JSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9iaWctYnJvdGhlci13YXRjaGluZy5wbmciKQ0KYGBgDQoNCkFnb3JhIGlyZW1vcyBleGVjdXRhciBmdW7Dp8O1ZXMgcXVlLCBhdMOpIG8gZmltIGRlc3RlIGN1cnNvLCBzZXLDo28gcXVhc2UgYXV0b23DoXRpY2FzIG5vIG5vc3NvIGZsdXhvIGRlIHRyYWJhbGhvIGNvbSB2ZXJzaW9uYW1lbnRvLg0KDQojIyMgTWV1IHByaW1laXJvIGNvbW1pdA0KDQpPIHF1ZSDDqSB1bSBjb21taXQ/DQoNCkNvbW1pdCwgb3UgInJldmlzw6NvIiwgw6kgdW1hIG11ZGFuw6dhIGluZGl2aWR1YWwgZW0gdW0gYXJxdWl2byBvdSB1bSBjb25qdW50byBkZSBhcnF1aXZvcyBkZW50cm8gZGEgcGFzdGEgb2JzZXJ2YWRhIHBlbG8gZ2l0LiBPcyBjb21taXRzIHPDo28gY29tbyBjaGVjay1wb2ludHMgcGFyYSBvIG5vc3NvIHJlcG9zaXTDs3Jpby4gVW1hIGFuYWxvZ2lhIGludGVyZXNzYW50ZSBwYXJhIG9zIGNvbW1pdHMgZm9pIGFwcmVzZW50YWRhIG5hIGF1bGEgZSBlc3TDoSBpbHVzdHJhZGEgYXF1aSwgbmEgZmlndXJhIHNlZ3VpbnRlDQoNCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1GQUxTRSxvdXQud2lkdGg9IjYwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImNvbW1pdC1vbmx5LWNvbmNlcHQucG5nIikpDQpgYGANCg0KVmFtb3MgcGVuc2FyIHF1ZSBub3NzbyBwcm9qZXRvIMOpIHVtYSBtb250YW5oYSwgZSBlc3RhbW9zIGVzY2FsYW5kbyBlbGUuIE5vc3NvIG9iamV0aXZvIGZpbmFsIMOpLCBvYnZpYW1lbnRlLCBmaW5hbGl6YXIgbyBwcm9qZXRvLCBjaGVnYW5kbyBhbyB0b3BvIGRhIG1vbnRhbmhhLiBBIG1lZGlkYSBxdWUgcHJvZ3JlZGltb3MsY2FzbyB2ZW5oYW1vcyBhIGNvbWV0ZXIgdW0gZXJybywgYSBxdWVkYSBwb2RlIHNlciBncmFuZGUuIERlc3RhIG1hbmVpcmEsIHV0aWxpemFtb3MgZ3JhbXBvcyBvbmRlIGFuY29yYW1vcyBub3NzYSBjb3JkYSBhIG1lZGlkYSBxdWUgYSBlc2NhbGFkYSBwcm9ncmlkZS4gRW0gY2FzbyBkZSBlcnJvLCBhIHF1ZWRhIHNlcsOhIGFwZW5hcyBhdMOpIG8gZ3JhbXBvIGFudGVyaW9yIG9uZGUgYSBjb3JkYSBmb2kgYW5jb3JhZGEuIE9zIGNvbW1pdHMgc2VydmVtIGNvbW8gb3MgY2xpcGVzIHF1ZSBhbmNvcmFtIGEgY29yZGEgYSBtZWRpZGEgcXVlIHByb2dyZWRpbW9zIG5vIHByb2pldG8uIFNlIGNvbWV0ZXJtb3MgdW0gZXJybyBlbSBhbGd1bSBhcnF1aXZvLCB0dWRvIGNlcnRvLCBwb2RlbW9zIHZvbHRhciBubyBjb21taXQgYW50ZXJpb3IsIG91IGFudGVyaW9yZXMsIHBhcmEgdGVudGFyIGRlc2NvYnJpciBvbmRlIG8gZXJybyBmb2kgY29tZXRpZG8uDQoNCkRhIG1lc21hIGZvcm1hIHF1ZSBuYSBlc2NhbGFkYSwgc2UgdXRpbGl6YXJtb3MgY2xpcGVzIG11aXRvIHBlcnRpbmhvcyB1bnMgZG9zIG91dHJvcyB2YW1vcyBmaWNhciBsZW50b3MgZGVtYWlzLCBlIG8gcHJvZ3Jlc3NvIGF0w6kgbyB0b3BvIHNlcsOhIGNvbXByb21ldGlkbywgc2UgZml6ZXJtb3MgbXVpdG9zIGNvbW1pdHMgc2Vyw6EgZGlmw61jaWwgdm9sdGFyIGVtIG1vbWVudG9zIGVzcGVjw61maWNvcyBkbyBwcm9qZXRvLCB2aXN0byBxdWUgdGVyw6NvIG11aXRvcyBjb21taXRzIHBhcmEgc2VyZW0gY2hlY2Fkb3MuIFBvcnRhbnRvLCBhIHJlZ3JhIMOpOiBmYcOnYSBjb21taXRzIGNvbSBwYXJjaW1vbmlhLCBvdSBzZWphLCBuZW0gbXVpdG9zLCBuZW0gcG91Y29zLg0KDQpWYW1vcyBmYXplciB1bWEgbW9kaWZpY2HDp8OjbyBuYSBub3NzYSBwYXN0YS4gUG9kZW1vcyBhZGljaW9uYXIgYXJxdWl2b3MsIGrDoSBxdWUgZWxhIGVzdMOhIHZhemlhLiBQYXJhIHRhbnRvIHZhbW9zIHVzYXIgb3MgYXJxdWl2b3MgZG8gcGFjb3RlIGRlIGRhZG9zIHBhbG1lciBwZW5ndWlucyBxdWUgZXN0w6NvIG5lc3NlIHJlcG9zaXTDs3Jpby4gTGVtYnJlLXNlIGRlIGxlciBvcyBhcnF1aXZvcyB1dGlsaXphbmRvIG8gYHtoZXJlfWAgZSB1dGlsaXphciBvIFJwcm9qZWN0IHBhcmEgYWJyaXIgbyBkaXJldMOzcmlvDQoNCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQ0KZGF0YV9wZW5ndWlucyA8LSByZWFkLmNzdihoZXJlOjpoZXJlKCJkYXRhIiwgImRhdGEtcGVuZ3VpbnMuY3N2IikpIA0KYGBgDQoNCioqT2JzKiogc2UgcXVpc2VyZW0gdXNhciBzZXVzIHByw7NwcmlvcyBkYWRvcyBmaXF1ZW0gYSB2b250YWRlLCBvIHVzbyBkbyBwYWxtZXJwZW5ndWlucyDDqSBhcGVuYXMgb3BjaW9uYWwgZSBhIHTDrXR1bG8gZGUgcHJvY2VkaW1lbnRvIGRpZMOhdGljby4gDQoNCkNhc28gZXN0ZWphbSB0cmFiYWxoYW5kbyBjb20gc2V1cyBwcsOzcHJpb3MgZGFkb3MsIGpvZ3VlIG9zIGFycXVpdm9zIHBhcmEgZGVudHJvIGRvIGRpcmV0w7NyaW8gcXVlIGNsb25hbW9zLiBPIHByw7N4aW1vIHBhc3NvIMOpIGZhemVyIG5vc3NvIHByaW1laXJvIGNvbW1pdC4NCg0KDQojIyMgRXhwbG9yYW5kbyBjb21taXRzDQoNCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSxvdXQud2lkdGg9IjcwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImNvbW1pdC1zYWZlLnBuZyIpKQ0KYGBgDQpFeGlzdGVtIGR1YXMgZm9ybWFzIGRlIGZhemVyIHZlcnNpb25hbWVudG8gdXNhbmRvIG8gR2l0IGUgR2l0aHViIHZpYSBSU3R1ZGlvLiBVbWEgZGVsYXMgw6kgYSBsaW5oYSBkZSBjb21hbmRvLCBhIG91dHJhIMOpIHZpYSB1bWEgaW50ZXJmYWNlIHZpc3VhbCwgcXVlIG5lc3NlIGNhc28gw6kgbyBwcsOzcHJpbyBSU3R1ZGlvLiBWYW1vcyBjb21lw6dhciBmYXplbmRvIG8gdmVyc2lvbmFtZW50byB2aWEgaW50ZXJmYWNlIHZpc3VhbC4gQSBvcMOnw6NvIHBhcmEgaXNzbyDDqSBxdWUgbmluZ3XDqW0gc2UgYXNzdXN0ZSBudW0gcHJpbWVpcm8gbW9tZW50byBjb20gYSBsaW5oYSBkZSBjb21hbmRvLCBlIHF1ZSBpc3NvIG7Do28gc2VqYSB1bSBpbXBlZGl0aXZvIHBhcmEgdXRpbGl6YXIgbyB2ZXJzaW9uYW1lbnRvIG5vIHNldSBmbHV4byBkZSB0cmFiYWxoby4gQSBtYWlvcmlhIGRvcyBjb21hbmRvcyBiw6FzaWNvcyBwb2RlbSBzZXIgZXhlY3V0YWRvcyBhdHJhdsOpcyBkZXN0YSBpbnRlcmZhY2UgZ3LDoWZpY2EgcXVlIGNoYW1hbW9zIGRlICoqR2l0IENsaWVudCoqDQoNClJlcGFyZSBxdWUgc2V1IFJTdHVkaW8gYWdvcmEgdGVtIGFsZ3VtYXMgY29pc2FzIG5vdmFzLiBFc3BlY2lmaWNhbWVudGUsIHZlamEgcXVlIGFnb3JhIGVsZSB0ZW0gdW1hIGFiYSBjaGFtYWRhIEdpdCwgY29tbyBpbHVzdHJhZG8gbmEgZmlndXJhIGFiYWl4bw0KDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW8ucG5nIikpDQpgYGANCg0KSXNzbyBpbmRpY2EgcXVlIG8gZ2l0IGVzdMOhIGZ1bmNpb25hbmRvIG5vIHNldSBkaXJldMOzcmlvLCBlIGFnb3JhIHBvZGVtb3MgZmF6ZXIgbyB2ZXJzaW9uYW1lbnRvIGRlc3RlIGRpcmV0w7NyaW8gbG9jYWwgZSBzaW5jcm9uaXrDoS1sbyBjb20gbyByZXBvc2l0w7NyaW8gcmVtb3RvLg0KDQpUdWRvIGUgcXVhbHF1ZXIgY29pc2EgcXVlIGZvciBhZGljaW9uYWRvIG91IG1vZGlmaWNhZG8gbmEgc3VhIHBhc3RhIHZhaSBhcGFyZWNlciBuYSBqYW5lbGEgYWJhaXhvIGRhIGFiYSBnaXQuIENvbW8gbW9zdHJhZG8gbmEgZmlndXJhIGFiYWl4bw0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRX0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKGhlcmU6OmhlcmUoImZpZ3MiLCAiZ2l0LXRhYi1yc3R1ZGlvMi5wbmciKSkNCmBgYA0KDQpDb21vIGV1IG1lbmNpb25laSBuYSBhdWxhIHRlw7NyaWNhIGUgYXF1aSBhY2ltYSwgbyBjb21taXQgw6kgY29tbyB1bSB0cmFjayBjaGFuZ2VzIGRvIHdvcmQsIG1hcyBtZWxob3IuIFByZWNpc2Ftb3MgZmF6ZXIgdW0gdHJhY2sgY2hhbmdlIG1hbnVhbCwgaW5kaWNhbmRvIG8gcXVlIGZvaSBtb2RpZmljYWRvLCBpc3NvIMOpIG8gbm9zc28gY29tbWl0LiBQYXJhIHJlYWxpemFyIHVtIGNvbW1pdCB2aWEgYSBpbnRlcmZhY2UgZG8gUlN0dWRpbyB2b2PDqiBwcmVjaXNhOg0KDQoxIC0gQ2xpY2FyIG5vIGJvdMOjbyBgY29tbWl0IHBlbmRpbmcgY2hhbmdlc2AgKG91IGVtIHF1YWxxdWVyIGJvdMOjbyBuYXF1ZWxhIGFiYSksIGNvbW8gbW9zdHJhZG8gYWJhaXhvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW8zLnBuZyIpKQ0KYGBgDQoNCjIgLSBJc3NvIHZhaSBhYnJpciB1bWEgbm92YSBqYW5lbGEsIG5lbGEgdm9jw6ogZGV2ZSBzZWxlY2lvbmFyIG5vcyBjaGVja2JveCBvcyBhcnF1aXZvcyAodmFtb3MgZGFyIHVtYSBvbGhhZGEgbmVzc2EgamFuZWxhIGFudGVzIGRlIHByb3NzZWd1aXIpDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW80LnBuZyIpKQ0KYGBgDQoNCjMgLSBFc2NyZXZhIHVtYSBtZW5zYWdlbSBpbmZvcm1hdGl2YS4gQ29tbyBlc3RlIMOpIG8gcHJpbWVpcm8gY29tbWl0IGdlcmFsbWVudGUgc2VsZWNpb25hbW9zIHRvZG9zIG9zIGFycXVpdm9zIGUgZXNjcmV2ZW1vcyBhIG1lbnNhZ2VtIGBGaXJzdCBjb21taXRgIHBhcmEgaW5kaWNhciBxdWUgw6kgbyBwcmltZWlybyBjb21taXQgZGVzdGUgcmVwb3NpdMOzcmlvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW81LnBuZyIpKQ0KYGBgDQoNCioqT0JTKiogQSBtZW5zYWdlbSBkZXZlIHNlciByZWFsbWVudGUgaW5mb3JtYXRpdmEsIG8gY29tbWl0IGZpY2EgYXJtYXplbmFkbyBubyBzZXUgcmVwb3NpdMOzcmlvIGUgYXBhcmVjZXLDoSBwdWJsaWNhbWVudGUgY2FzbyBvIHJlcG9zaXTDs3JpbyBzZWphIHDDumJsaWNvLiANCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSI2MCUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJjb21taXQtbWVtZS5wbmciKSkNCmBgYA0KDQpQcm9udG8sIG8gcXVlIGZpemVtb3MgYWdvcmEgZm9pIGJhc2ljYW1lbnRlIGNvbG9jYXIgbm9zc29zIGFycXVpdm9zIG5hICoqc3RhZ2dpbmcgYXJlYSoqIChtYXJjYXIgYXMgY2hlY2tpbmcgYm94KSBlIHByZXBhcsOhLWxvcyBwYXJhIGEgZW50cmVnYSBjb20gdW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhLCBvIGNvbW1pdC4gQWdvcmEgcHJlY2lzYW1vcyBlbnZpYXIgb3MgYXJxdWl2b3MgcGFyYSBvIHJlcG9zaXTDs3JpbyByZW1vdG8gKHVwc3RyZWFtKQ0KDQojIyMgTWV1IHByaW1laXJvIHB1c2gNCg0KVGVtb3MgdW0gZGlyZXTDs3JpbyBmdW5jdGlvbmFuZG8gY29tIG8gZ2l0LCBsaWdhZG8gYW8gZ2l0aHViLCBjb20gZG9jdW1lbnRvcyBkZW50cm8sIG1hcywgYXTDqSBhZ29yYSBlbGUgYXBlbmFzIHZpdmUgZW0gbm9zc29zIGNvbXB1dGFkb3Jlcy4gQ2hlZ291IGEgaG9yYSBkZSBlbXB1cnJhciBlc3RlcyBkb2N1bWVudG9zIHBhcmEgbyBkaXJldMOzcmlvIHJlbW90bywgb3Ugc2VqYSwgYXF1ZWxlIHF1ZSBjbG9uYW1vcyBsw6Egbm8gaW7DrWNpby4gUGFyYSB0YW50byB2YW1vcyBmYXplciB1bSBgcHVzaGANCg0KTyBwdXNoIG5hZGEgbWFpcyDDqSBxdWUgZW1wdXJyYXIgb3MgZG9jdW1lbnRvcyBwYXJhIG8gcmVwb3NpdMOzcmlvIGRvIGdpdGh1YiwgY2hhbWFkbyBhcyB2ZXplcyBkZSBgb3JpZ2luL21hc3RlcmAgZSBvdXRyYXMgdmV6ZXMgYG9yaWdpbi9tYWluYCwgbWFzIGFtYm9zIHF1ZXJlbSBkaXplciAidW0gcmVwb3NpdMOzcmlvIHJlbW90byBvIHF1YWwgbyBkaXJldMOzcmlvIHF1ZSBlc3RvdSB0cmFiYWxoYW5kbyBlc3TDoSBsaWdhZG8iLg0KDQpTZW0gbWFpcyBkZWxvbmdhcywgcGFyYSBmYXplciB1bSBwdXNoIHByZWNpc2Ftb3MgYXBlbmFzIGFwZXJ0YXIgbyBib3TDo28gdmVyZGUgY29tbyBtb3N0cmFkbyBuYSBmaWd1cmEgYWJhaXhvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtdGFiLXJzdHVkaW82LnBuZyIpKQ0KYGBgDQoNCkR1YXMgY29pc2FzIHPDo28gaW1wb3J0YW50ZXMgbm90YXIgbmVzc2UgbW9tZW50by4gUHJpbWVpcm8gbyBib3TDo28gZGUgcHVzaCwgcXVlIHZhaSBlbXB1cnJhciBvcyBhcnF1aXZvcyBwYXJhIG8gcmVwb3NpdMOzcmlvIHJlbW90byAob3JpZ2luKS4gU2VndW5kbywgYSBtZW5zYWdlbSBkZXN0YWNhZGEgY29tIGEgc2V0YS4gRWxhIGRpeiBxdWUgbyAqYnJhbmNoKiBlc3TDoSBhIGZyZW50ZSBkbyAqb3JpZ2luL21hc3RlciogcG9yIHVtICpjb21taXQqLiBUcmFkdXppbmRvLCBub3NzbyBkaXJldMOzcmlvIGxvY2FsIChicmFuY2gpLCBlc3TDoSB1bWEgdmVyc8OjbyBhIGZyZW50ZSAocG9pcyBtb2RpZmljYW1vcyBjb2lzYXMgYXF1aSkgZW0gcmVsYcOnw6NvIGFvIG5vc3NvIHJlcG9zaXTDs3JpbyByZW1vdG8gKG9yaWdpbi9tYXN0ZXIpLiBBbyBlbXB1cnJhciAocHVzaCkgYXMgbW9kaWZpY2HDp8O1ZXMsIGVzc2EgbWVuc2FnZW0gZGVzYXBhcmVjZXLDoSwgaW5kaWNhbmRvIHF1ZSB0YW50byBicmFuY2ggcXVhbnRvIG9yaWdpbiBlc3TDo28gbmEgbWVzbWEgbGluaGEgZG8gdGVtcG8hDQoNCiMgRXh0cmFzDQoNCkFxdWkgYWxndW1hcyBkaWNhcyBleHRyYXMgY2FzbyB2b2PDqiBxdWVpcmEgc2VndWlyIGNhbWluaG9zIGRpZmVyZW50ZXMgcXVlIG9zIGFwcmVzZW50YWRvcyBhdMOpIGFnb3JhIHBhcmEgbW9udGFyIHVtIHJlcG9zaXTDs3JpbyBlIGNvbmVjdGFyIGNvbSBvIGdpdGh1Yi4gVmFtb3Mgc3Vwb3IgcXVlIHZvY8OqIGrDoSB0ZW5oYSB1bSBwcm9qZXRvIGxvY2FsIGVtIHNldSBjb21wdXRhZG9yIHF1ZSBqw6EgZXN0w6EgbW9uaXRvcmFkbyBwZWxvIGdpdCwgY29udMOpbSBhbGd1bnMgY29tbWl0cywgZSB2b2PDqiBuw6NvIHF1ZXIgcGVyZGVyIGVzdGVzIGNvbW1pdC4gQSBmb3JtYSBtYWlzIGbDoWNpbCBkZSBmYXplciBpc3NvIMOpIGF0cmF2w6lzIGRvIHBhY290ZSBge3VzZXRoaXN9YC4gUGFyYSB1dGlsaXphciBlc3RhIGFib3JkYWdlbSB2b2PDqiBwcmVjaXNhIHRlciBvIFBBVCAoUGVyc29uYWwgQWNjZXNzIFRva2VuIHF1ZSBjcmlhbW9zIGzDoSBlbSBjaW1hKS4NCg0KMSAtIHZlcmlmaXF1ZSBzZSBvIGdpdCBlc3TDoSBmdW5jaW9uYW5kbyBlbSBzZXUgcmVwb3NpdMOzcmlvICh2ZWphIHNlIGFwYXJlY2UgYSB0YWIgZ2l0IG5vIHNldSBSU3R1ZGlvKS4gQ2FzbyBuw6NvIHZlamEgdm9jw6ogcHJlY2lzYSBpbmljaWFyIG8gZ2l0IG5vIGRpcmV0w7NyaW8gcXVlIGVzdMOhIHRyYWJhbGhhbmRvLiBQYXJhIGZhemVyIGlzc286DQoNCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQ0KdXNldGhpczo6dXNlX2dpdCgpDQpgYGANCg0KT3V0cmFzIG9ww6fDtWVzIGV4aXN0ZW0sIHBvciBleGVtcGxvLCB1c2FuZG8gbyB0ZXJtaW5hbCBkaXJldGFtZW50ZS4gTWFzIHZhbW9zIG1hbnRlciBhIGNvbnNpc3TDqm5jaWEgZSB1dGlsaXphciBzZW1wcmUgbyBwYWNvdGUgdXNldGhpcyBxdWFuZG8gcG9zc8OtdmVsLg0KDQoyIC0gdW1hIHZleiBxdWUgbyBnaXQgZXN0w6EgZnVuY2lvbmFuZG8gbmVzdGUgcmVwb3NpdMOzcmlvLCBwcmVjaXNhbW9zIGNyaWFyIHVtIHJlcG9zaXTDs3JpbyByZW1vdG8gcGFyYSBlbGUgbm8gbm9zc28gcGVyZmlsIGRvIEdpdEh1Yi4gUGFyYSB0YW50byBwcmVjaXNhbW9zIGFwZW5hcyBkaWdpdGFyOg0KDQpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0NCnVzZXRoaXM6OnVzZV9naXRodWIoKQ0KYGBgDQoNCg0KIyBBdGl2aWRhZGUNCg0KSG9yYSBkZSBwcmF0aWNhciBjb20gc2V1cyBkYWRvcywgb3UgYWluZGEgY29tIG9zIGRhZG9zIGRvIHBhbG1lcnBlbmd1aW5zLiBGYcOnYSBhbGd1bWFzIG1vZGlmaWNhw6fDtWVzIG5hIHRhYmVsYSwgc2FsdmUgdW0gbm92byBvYmpldG8sIGZhw6dhIHVtIGNvbW1pdCBlIHVtIHB1c2guIEFww7NzIGZhemVyIGlzc28gdmVyaWZpcXVlIG5hIHDDoWdpbmEgZG8gcmVwb3NpdMOzcmlvIG5vIEdpdEh1YiBvIHF1ZSBhY29udGVjZXUuDQoNCiMgUmVmZXLDqm5jaWFzIGltcG9ydGFudGVzDQoNCltEb3VnbGFzIE1jRG9uYWxkIHdlYnNpdGVdKGh0dHBzOi8vd3d3LmRvdWdhbmRkYXRhLmNvbS8yMDIyLzA3L29uLW5hbWluZy10aGluZ3MvKQ0KDQpbSmVubnkgQnJ5YW5dKGh0dHA6Ly93d3cyLnN0YXQuZHVrZS5lZHUvfnJjczQ2L2xlY3R1cmVzXzIwMTUvMDEtbWFya2Rvd24tZ2l0L3NsaWRlcy9uYW1pbmctc2xpZGVzL25hbWluZy1zbGlkZXMucGRmKQ0KDQpbSGFkbGV5IFdpY2toYW1dKGh0dHA6Ly9hZHYtci5oYWQuY28ubnovU3R5bGUuaHRtbCkNCg0KW09oIFNoaXQsIEdpdCE/IV0oaHR0cHM6Ly9vaHNoaXRnaXQuY29tLykNCg0KDQo=
diff --git a/colabs_github.html b/colabs_github.html index b18a0e4..c3c6f39 100644 --- a/colabs_github.html +++ b/colabs_github.html @@ -11,7 +11,7 @@ - + Trabalho em colaboração @@ -549,7 +549,7 @@

Trabalho em colaboração

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/commits-travel.html b/commits-travel.html index afb84dd..e882f1f 100644 --- a/commits-travel.html +++ b/commits-travel.html @@ -11,7 +11,7 @@ - + Explorando melhor os commits @@ -549,7 +549,7 @@

Explorando melhor os commits

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

@@ -671,8 +671,14 @@

Throwback Commit

site.)

+
+

Inutilidades públicas necessárias

+

No fim do dia, aprendemos fazer commits apenas para utilizar essa +ferramenta aqui. Cole o link de seu +repositório contendo alguns commits e veja o que acontece

+
-
LS0tCnRpdGxlOiAnRXhwbG9yYW5kbyBtZWxob3Igb3MgY29tbWl0cycKYXV0aG9yOiAiR2FicmllbCBOYWthbXVyYSIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6IGh0bWxfZG9jdW1lbnQKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBmaWcuYWxpZ24gPSAiY2VudGVyIikKYGBgCgpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0Ka2xpcHB5OjprbGlwcHkoKQpgYGAKCiMgQXByZXNlbnRhw6fDo28KCk5lc3RhIHNlw6fDo28gaXJlbW9zIGV4cGxvcmFyIHVtIHBvdWNvIG1haXMgbyBwb2RlciBxdWUgb3MgY29tbWl0cyBub3Mgb2ZlcmVjZW0sIGluY2x1aW5kbyBib2FzIHByw6F0aWNhcyBwYXJhIGZhemVyIGNvbW1pdHMgbm9zIG5vc3NvcyBhcnF1aXZvcyBlIGNvbW8gInZpYWphciIgZW50cmUgY29tbWl0cyBwYXNzYWRvcyBlIHByZXNlbnRlLiBFc3RlIG1vbWVudG8gdGFtYsOpbSBzZXJ2aXLDoSBwYXJhIGZpY2FybW9zIHVtIHBvdWNvIG1haXMgZmFtaWxpYXJpemFkb3MgY29tIG8gdXNvIGRvIGdpdCBhdHJhdsOpcyBkbyB0ZXJtaW5hbC4gVmFtb3MgdXRpbGl6YXIgbyB0ZW1pbmFsIHZpc3RvIHF1ZSBhbGd1bWFzIGNvaXNhcyBxdWUgZmFyZW1vcyBhcXVpIG7Do28gcG9kZW0gc2VyIGZlaXRhcyBhdHJhdsOpcyBkbyBSU3R1ZGlvLgoKU2VtcHJlIGFvIGZhemVyIGNvbW1pdHMgdmFsZSBsZW1icmFyIGVzc2FzIHBhbGF2cmFzOgoKYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJjb21taXQtc2FmZS5wbmciKSkKYGBgCgojIFdvcmtmbG93IHBhcmEgb3MgY29tbWl0cyAKCkVtIHByaW1laXJvIGx1Z2FyIHNlbXByZSBjaGVxdWUgc2UgZXN0w6EgdHVkbyBjZXJ0byBjb20gc2V1IHJlcG9zaXTDs3Jpbywgc2Ugc2V1IHRyYWJhbGhvIGxvY2FsIGVzdMOhIHNpbmNyb25pemFkbyBjb20gc2V1IHRyYWJhbGhvIHJlbW90by4gUGFyYSB0YW50byBwb2RlIGRpZ2l0YXIgbmEgbGluaGEgZGUgY29tYW5kbyBkbyB0ZXJtaW5hbAoKYGBge3IgZWNobz1ULGV2YWw9RkFMU0V9CmdpdCBzdGF0dXMKYGBgCgpTZSBzdWEgKndvcmtpbmcgdHJlZSogZXN0aXZlciBubyBzdGF0dXMgKmNsZWFuKiwgcXVlciBkaXplciBxdWUgdm9jw6ogZXN0w6Egc2luY3Jvbml6YWRhIGNvbSBvICpvcmlnaW4qCgpGYcOnYSBhbGd1bWFzIG1vZGlmaWNhw6fDtWVzIGUgZGVwb2lzIHZhbW9zIGZhemVyIGEgbWVzbWEgc2VxdWVuY2lhIGRlIGHDp8O1ZXMgcXVlIGZpemVtb3MgYW50ZXJpb3JtZW50ZSAoc3RhZ2UsIGNvbW1pdCwgcHVzaCksIG1hcyBhZ29yYSB1c2FuZG8gYSBsaW5oYSBkZSBjb21hbmRvLiBQYXJhIHRhbnRvIHBvZGVtb3MgZmF6ZXIgYXNzaW0KCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQpnaXQgYWRkIC4KZ2l0IGNvbW1pdCAtbSAidW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhIgpnaXQgcHVzaApgYGAKClByb250bywgZml6ZW1vcyBhIG1lc21hIGNvaXNhIHF1ZSBhbnRlcmlvcm1lbnRlLCBtYXMgYWdvcmEgdXRpbGl6YW5kbyBvIHRlcm1pbmFsIDopCgojIyBBbWVuZAoKTGVtYnJhIHF1ZSBtdWl0b3MgY29tbWl0cyBwb2RlbSB0ZSBkZWl4YXIgbXVpdG8gbGVudG8gbmEgZXNjYWxhZGE/IEUgcG91Y29zIGNvbW1pdHMgcG9kZW0gc2VyIHBvdWNvIGluZm9ybWF0aXZvcyBjYXNvIHF1ZWlyYSByZWNvbnN0cnVpciBvIHF1ZSBhY29udGVjZXUgY29tIG8gcmVwb3NpdMOzcmlvPyBQb2lzIGVudMOjbywgZXhpc3RlIHVtYSBlc3RyYXTDqWdpYSBpbnRlcmVzc2FudGUgcGFyYSByZWFsaXphciBjb21taXRzLCBjaGFtYWRhIGRlIGBhbWVuZGAKCkVtIHVtIGFtZW5kIG7Ds3MgYmFzaWNhbWVudGUgYWRpY2lvbmFtb3MgdW0gY29tbWl0IGEgdW0gb3V0cm8gasOhIGV4aXN0ZW50ZS4gUG9yIGV4ZW1wbG8sIGltYWdpbmUgcXVlIGZleiBhcGVuYXMgYWxndW1hcyBwb3VjYXMgbW9kaWZpY2HDp8O1ZXMgZGUgY8OzZGlnbyBxdWUgbsOjbyBuZWNlc3NpdGFtIG5lY2Vzc2FyaWFtZW50ZSBkZSB1bSBjb21taXQgZGVkaWNhZGEgZXhjbHVzaXZhbWVudGUgcGFyYSB0YWlzLCB2b2PDqiBwb2RlIGZhemVyIG8gc2VndWludGU6CgoxIC0gc3RhZ2UgbyBhcnF1aXZvIHF1ZSBtb2RpZmljb3UKCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQpnaXQgYWRkIHBhdGgvdG8vZmlsZQpgYGAKCjIgLSBmYcOnYSB1bSBjb21taXQgCgpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0KZ2l0IGNvbW1pdCAtbSAiV0lQIgpgYGAKCk5vdGUgcXVlIGNvbG9xdWVpICoqV0lQKiogbmVzdGUgY29tbWl0LCBwb3IgcXVlPyBXSVAgw6kgdW1hIHNpZ2xhIHVzYWRhIGNvbXVtZW50ZSBubyB2ZXJzaW9uYW1lbnRlIHBhcmEgV29ya2luZyBJbiBQcm9ncmVzcy4gU2VtcHJlIHF1ZSB0aXZlciB1bSBjb21taXQgZGVzc2UgcXVlciBkaXplciBxdWUgbyBjb21taXQgcXVlIGZleiBhaW5kYSBlc3TDoSBzZW5kbyB0cmFiYWxoYWRvLgoKQWluZGEgbsOjbyBmYcOnYSBvIHB1c2guIEZhw6dhIG1haXMgYWxndW1hcyBtb2RpZmljYcOnw7VlcywgZSwgZGlnYW1vcyBxdWUgYWdvcmEgZmV6IG1vZGlmaWNhw6fDtWVzIHJlbGV2YW50ZXMgbm8gY8OzZGlnbyBxdWUgbWVyZWNlbSB1bSBjb21taXQgZGVkaWNhZG8uIE1hcyBsZW1icmUtc2UgcXVlIG8gw7psdGltbyBjb21taXQgw6kgdW0gV0lQLiBPIHF1ZSBmYXplbW9zIGFnb3JhIMOpIHVtIGFtZW5kIGFvIFdJUAoKMyAtIGZhw6dhIHVtIGFtZW5kCgpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0KZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJBcXVpIHVtIGNvbW1pdCBjb20gdW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhLCBjb21vIHNlbXByZSIKZ2l0IHB1c2gKYGBgCgpQcm9udG8sIGFnb3JhIHRlbW9zIHVtYSBtZW5zYWdlbSBpbmZvcm1hdGl2YSBxdWUgZm9pIGFkaWNpb25hZGEgYW8gV0lQIGUgbsOjbyBwcmVjaXNhbW9zIGZhemVyIHVtIHB1c2ggZG8gcGFzc28gaW50ZXJtZWRpw6FyaW8gKFdJUCksIGRlaXhhbmRvIG5vc3NhIGVzY2FsYWRhIG1haXMgcsOhcGlkYQoKIyMgVmlhamFuZG8gZW50cmUgY29tbWl0cwoKVW1hIGRhcyBtYWlvcmVzIHBvdGVuY2lhbGlkYWRlcyBkb3MgY29tbWl0cyDDqSBhIHBvc3NpYmlsaWRhZGUgcXVlIHBvZGVtb3MgbmF2ZWdhciBlbnRyZSBjb21taXRzLiBPdSBzZWphLCBwb2RlbW9zIG5hdmVnYXIgZW50cmUgZXN0YWRvcyBkaXN0aW50b3MgZG8gbm9zc28gdHJhYmFsaG8gYSBtZWRpZGEgcXVlIGVsZSDDqSBkZXNlbnZvbHZpZG8uIFBvZGVtb3MgY2hlY2FyIGVzc2UgaGlzdMOzcmljbyB0YW50byBuYSBub3NzYSBww6FnaW5hIGRvIHJlcG9zaXTDs3JpbyBubyBHaXRIdWIgcXVhbnRvIHVzYW5kbyBvIFJTdHVkaW8sIGNvbW8gbW9zdHJhZG8gbmEgaW1hZ2VtIGEgc2VndWlyCgpgYGB7ciBlY2hvPUZBTFNFLCBldmFsPVRSVUUsb3V0LndpZHRoPSI3MCUifQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImdpdGh1Yi1oaXN0b3J5LnBuZyIpKQpgYGAKClBhcmEgdGFudG8gdm9jw6ogcHJlY2lzYSBhcGVuYXMgYWJyaXIgYSBhYmEgZG8gR2l0IG5vIFJTdHVkaW8sIGNvbW8gdmltb3MgYW50ZXJpb3JtZW50ZSwgZSBjbGljYXIgZW0gKipIaXN0b3J5Kiogbm8gY2FudG8gc3VwZXJpb3IgZXNxdWVyZG8gZGEgamFuZWxhIGRlIHJldmlzw7Vlcy4gVHVkbyBvIHF1ZSB2ZW1vcyBzw6NvIHRvZG9zIG9zIGNvbW1pdHMgcXVlIGZvcmFtIHJlYWxpemFkb3MgZGVzZGUgcXVlIGVzc2UgcmVwb3NpdMOzcmlvIGZvaSBmb3JtYWRvIHBlbGEgcHJpbWVpcmEgdmV6LgoKIyMgRWxlbWVudG9zIGltcG9ydGFudGVzIGRvIGNvbW1pdAoKQWxndW5zIGVsZW1lbnRvcyBwcmVzZW50ZXMgbm8gY29tbWl0IHPDo28gaW1wb3J0YW50ZXMuIE8gcHJpbmNpcGFsIGRlbGVzIMOpIGEgY2hhdmUgU0hBLTEuIEVzdGEgc2UgdHJhdGEgZGUgdW0gaWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tbWl0LiBDb20gZWxhIHBvZGVtb3MgdmlhamFyIGVudHJlIGNvbW1pdHMsIG91IHJlZmVyZW5jaWFyIHVtIGRhZG8gY29tbWl0IGVtIHVtYSBkaXNjdXNzw6NvIG5vIGdpdGh1Yi4gUG9yIGV4ZW1wbG8sIHN1cG9uZG8gcXVlIGVzdGFtb3MgdHJhYmFsaGFuZG8gY29sYWJvcmF0aXZhbWVudGUgKGNvbW8gbmVzc2Ugc2l0ZSA6KSksIGUgZXUgZ29zdGVpIHBhcnRpY3VsYXJtZW50ZSBtYWlzIGRhIHZlcnPDo28gZG8gc2l0ZSBxdWUgZXN0w6EgaMOhIGFsZ3VucyBjb21taXRzIGF0csOhcy4gVW1hIG9ww6fDo28gw6kgYWJyaXIgdW1hIElzc3VlICh2ZXJlbW9zIGlzc28gbWFpcyB0YXJkZSksIGUgcmVmZXJlbmNpYXIgZXNzZSBuw7ptZXJvLiBPdSBzaW1wbGVzbWVudGUgZGl6ZXIgcGFyYSBtZXUgY29sYWJvcmFkb3IgIkhleSBkw6ogdW1hIG9saGFkYSBubyBjb21taXQgbsO6bWVybyBYWFhYWFgiLiBOYSBpbWFnZW0gYWJhaXhvIGVzdMOhIGVtIGRlc3RhcXVlIGEgY2hhdmUgU0hBLgoKYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtc2hhLWtleS5wbmciKSkKYGBgCgpWb2PDqiBwb2RlIGFicmlyIG8gYXJxdWl2byBubyBlc3RhZG8gZW0gcXVlIGVsZSBzZSBlbmNvbnRyYXZhIGVtIHVtIGRhZG8gY29tbWl0IGNsaWNhbmRvIG5vIGFycXVpdm8gbW9kaWZpY2FkbyBuYXF1ZWxlIGNvbW1pdCBzZWxlY2lvbmFkby4gUG9yIGV4ZW1wbG8sIGRpZ2Ftb3MgcXVlIGV1IHF1ZWlyYSB2ZXIgbyBhcnF1aXZvIGNoYW1hZG8gYHJtYXJrZG93bi1iYXNpY3NgIGRlc3RlIHNpdGUgZWRpdGFkbyBkaWEgMDIgZGUgQWdvc3RvLCBzw7MgcHJlY2lzYW1vcyBjbGljYXIgbm8gYXJxdWl2bywgY29tbyBtb3N0cmFkbyBuYSBpbWFnZW0gYWJhaXhvOgoKYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoaGVyZTo6aGVyZSgiZmlncyIsICJnaXQtaGlzdG9yeS1maWxlLnBuZyIpKQpgYGAKCiMjIEF0aXZpZGFkZQoKRXhwbG9yZSB1bSBwb3VjbyBvcyBjb21taXRzIHF1ZSByZWFsaXphcmFtLiBBYnJhIGEgcMOhZ2luYSBkbyBnaXRodWIgZSB0YW1iw6ltIGF0cmF2w6lzIGRvIFJzdHVkaW8sIHZlamEgYXMgZGlmZXJlbsOnYXMsIGFzIHZhbnRhbmdlbnMgZSBkZXN2YW50YWdlbnMgZGUgY2FkYSB1bWEgZGFzIGFib3JkYWdlbnMKCgojIyBUaHJvd2JhY2sgQ29tbWl0CgpWYW1vcyBzdXBvciBxdWUgcmVhbGl6YW1vcyB1bSBjb21taXQgZXJyYWRvLCBlIGFnb3JhIHF1ZXJlbW9zIHZvbHRhciBhbyBjb21taXQgYW50ZXJpb3IsIG1hcyBzZW0gcGVyZGVyIG8gdHJhYmFsaG8gcXVlIGZpemVtb3Mgbm9zIGFycXVpdm9zLiBQYXJhIGlzc28gcG9kZW1vcyB1c2FyIGEgYWJvcmRhZ2VtIGFudGVyaW9yLCBuYXZlZ2FuZG8gZW50cmUgb3MgYXJxdWl2b3MgZSBzZWxlY2lvbmFuZG8gbyBhcnF1aXZvIHF1ZSBxdWVyZW1vcyBlbSB1bSBkZXRlcm1pbmFkbyBlc3RhZG8sIHN1YnN0aXR1aW1vcyBwZWxvIGFycXVpdm8gYXR1YWwgZSBmYXplbW9zIHVtIG5vdm8gY29tbWl0LiBFc3RhIG9ww6fDo28gcG9kZSBzZXIgYSBtYWlzIHNlZ3VyYSBzZSBlc3RhbW9zIGNvbWXDp2FuZG8gYSBtZXhlciBubyB2ZXJzaW9uYW1lbnRvLiBPdXRyYSBvcMOnw6NvIMOpIGV4cGxvcmFyIGFzIGZ1bsOnw7VlcyBkbyBnaXQgY2hhbWFkYXMgYHJlc2V0YC4gQXMgZnVuw6fDtWVzIHJlc2V0IGJhc2ljYW1lbnRlIG1vdmUgbyBIRUFEIGRvIHNldSBkaXJldMOzcmlvIHBhcmEgdW0gY29tbWl0IG5vIHBhc3NhZG8uIEVzdGEgYWJvcmRhZ2VtIHBvZGUgY2F1c2FyIGFsZ3VtYXMgZG9yZXMgZGUgY2FiZcOnYSBubyBpbsOtY2lvLCBwb3J0YW50byByZWNvbWVuZG8gdXNhLWzDoSBjb20gY2F1dGVsYS4gUGFyYSBtYWlzIGluZm9ybWHDp8O1ZXMgc29icmUgaXNzbyBkw6ogdW1hIG9saGFkYSBbbmVzc2Ugc2l0ZV0oaHR0cHM6Ly9kZXZjb25uZWN0ZWQuY29tL2hvdy10by1naXQtcmVzZXQtdG8taGVhZC8jOn46dGV4dD1UbyUyMGhhcmQlMjByZXNldCUyMGZpbGVzJTIwdG8sb3B0aW9uJTIwYW5kJTIwc3BlY2lmeSUyMHRoZSUyMEhFQUQuJnRleHQ9VGhlJTIwcHVycG9zZSUyMG9mJTIwdGhlJTIwJUUyJTgwJTlDZ2l0LGJlZm9yZSUyMEhFQUQlMjBhbmQlMjBzbyUyMG9uKS4pCgo=
+
LS0tDQp0aXRsZTogJ0V4cGxvcmFuZG8gbWVsaG9yIG9zIGNvbW1pdHMnDQphdXRob3I6ICJHYWJyaWVsIE5ha2FtdXJhIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBodG1sX2RvY3VtZW50DQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGZpZy5hbGlnbiA9ICJjZW50ZXIiKQ0KYGBgDQoNCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0Ka2xpcHB5OjprbGlwcHkoKQ0KYGBgDQoNCiMgQXByZXNlbnRhw6fDo28NCg0KTmVzdGEgc2XDp8OjbyBpcmVtb3MgZXhwbG9yYXIgdW0gcG91Y28gbWFpcyBvIHBvZGVyIHF1ZSBvcyBjb21taXRzIG5vcyBvZmVyZWNlbSwgaW5jbHVpbmRvIGJvYXMgcHLDoXRpY2FzIHBhcmEgZmF6ZXIgY29tbWl0cyBub3Mgbm9zc29zIGFycXVpdm9zIGUgY29tbyAidmlhamFyIiBlbnRyZSBjb21taXRzIHBhc3NhZG9zIGUgcHJlc2VudGUuIEVzdGUgbW9tZW50byB0YW1iw6ltIHNlcnZpcsOhIHBhcmEgZmljYXJtb3MgdW0gcG91Y28gbWFpcyBmYW1pbGlhcml6YWRvcyBjb20gbyB1c28gZG8gZ2l0IGF0cmF2w6lzIGRvIHRlcm1pbmFsLiBWYW1vcyB1dGlsaXphciBvIHRlbWluYWwgdmlzdG8gcXVlIGFsZ3VtYXMgY29pc2FzIHF1ZSBmYXJlbW9zIGFxdWkgbsOjbyBwb2RlbSBzZXIgZmVpdGFzIGF0cmF2w6lzIGRvIFJTdHVkaW8uDQoNClNlbXByZSBhbyBmYXplciBjb21taXRzIHZhbGUgbGVtYnJhciBlc3NhcyBwYWxhdnJhczoNCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKGhlcmU6OmhlcmUoImZpZ3MiLCAiY29tbWl0LXNhZmUucG5nIikpDQpgYGANCg0KIyBXb3JrZmxvdyBwYXJhIG9zIGNvbW1pdHMgDQoNCkVtIHByaW1laXJvIGx1Z2FyIHNlbXByZSBjaGVxdWUgc2UgZXN0w6EgdHVkbyBjZXJ0byBjb20gc2V1IHJlcG9zaXTDs3Jpbywgc2Ugc2V1IHRyYWJhbGhvIGxvY2FsIGVzdMOhIHNpbmNyb25pemFkbyBjb20gc2V1IHRyYWJhbGhvIHJlbW90by4gUGFyYSB0YW50byBwb2RlIGRpZ2l0YXIgbmEgbGluaGEgZGUgY29tYW5kbyBkbyB0ZXJtaW5hbA0KDQpgYGB7ciBlY2hvPVQsZXZhbD1GQUxTRX0NCmdpdCBzdGF0dXMNCmBgYA0KDQpTZSBzdWEgKndvcmtpbmcgdHJlZSogZXN0aXZlciBubyBzdGF0dXMgKmNsZWFuKiwgcXVlciBkaXplciBxdWUgdm9jw6ogZXN0w6Egc2luY3Jvbml6YWRhIGNvbSBvICpvcmlnaW4qDQoNCkZhw6dhIGFsZ3VtYXMgbW9kaWZpY2HDp8O1ZXMgZSBkZXBvaXMgdmFtb3MgZmF6ZXIgYSBtZXNtYSBzZXF1ZW5jaWEgZGUgYcOnw7VlcyBxdWUgZml6ZW1vcyBhbnRlcmlvcm1lbnRlIChzdGFnZSwgY29tbWl0LCBwdXNoKSwgbWFzIGFnb3JhIHVzYW5kbyBhIGxpbmhhIGRlIGNvbWFuZG8uIFBhcmEgdGFudG8gcG9kZW1vcyBmYXplciBhc3NpbQ0KDQpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0NCmdpdCBhZGQgLg0KZ2l0IGNvbW1pdCAtbSAidW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhIg0KZ2l0IHB1c2gNCmBgYA0KDQpQcm9udG8sIGZpemVtb3MgYSBtZXNtYSBjb2lzYSBxdWUgYW50ZXJpb3JtZW50ZSwgbWFzIGFnb3JhIHV0aWxpemFuZG8gbyB0ZXJtaW5hbCA6KQ0KDQojIyBBbWVuZA0KDQpMZW1icmEgcXVlIG11aXRvcyBjb21taXRzIHBvZGVtIHRlIGRlaXhhciBtdWl0byBsZW50byBuYSBlc2NhbGFkYT8gRSBwb3Vjb3MgY29tbWl0cyBwb2RlbSBzZXIgcG91Y28gaW5mb3JtYXRpdm9zIGNhc28gcXVlaXJhIHJlY29uc3RydWlyIG8gcXVlIGFjb250ZWNldSBjb20gbyByZXBvc2l0w7NyaW8/IFBvaXMgZW50w6NvLCBleGlzdGUgdW1hIGVzdHJhdMOpZ2lhIGludGVyZXNzYW50ZSBwYXJhIHJlYWxpemFyIGNvbW1pdHMsIGNoYW1hZGEgZGUgYGFtZW5kYA0KDQpFbSB1bSBhbWVuZCBuw7NzIGJhc2ljYW1lbnRlIGFkaWNpb25hbW9zIHVtIGNvbW1pdCBhIHVtIG91dHJvIGrDoSBleGlzdGVudGUuIFBvciBleGVtcGxvLCBpbWFnaW5lIHF1ZSBmZXogYXBlbmFzIGFsZ3VtYXMgcG91Y2FzIG1vZGlmaWNhw6fDtWVzIGRlIGPDs2RpZ28gcXVlIG7Do28gbmVjZXNzaXRhbSBuZWNlc3NhcmlhbWVudGUgZGUgdW0gY29tbWl0IGRlZGljYWRhIGV4Y2x1c2l2YW1lbnRlIHBhcmEgdGFpcywgdm9jw6ogcG9kZSBmYXplciBvIHNlZ3VpbnRlOg0KDQoxIC0gc3RhZ2UgbyBhcnF1aXZvIHF1ZSBtb2RpZmljb3UNCg0KYGBge3IgZWNobz1UUlVFLGV2YWw9RkFMU0V9DQpnaXQgYWRkIHBhdGgvdG8vZmlsZQ0KYGBgDQoNCjIgLSBmYcOnYSB1bSBjb21taXQgDQoNCmBgYHtyIGVjaG89VFJVRSxldmFsPUZBTFNFfQ0KZ2l0IGNvbW1pdCAtbSAiV0lQIg0KYGBgDQoNCk5vdGUgcXVlIGNvbG9xdWVpICoqV0lQKiogbmVzdGUgY29tbWl0LCBwb3IgcXVlPyBXSVAgw6kgdW1hIHNpZ2xhIHVzYWRhIGNvbXVtZW50ZSBubyB2ZXJzaW9uYW1lbnRlIHBhcmEgV29ya2luZyBJbiBQcm9ncmVzcy4gU2VtcHJlIHF1ZSB0aXZlciB1bSBjb21taXQgZGVzc2UgcXVlciBkaXplciBxdWUgbyBjb21taXQgcXVlIGZleiBhaW5kYSBlc3TDoSBzZW5kbyB0cmFiYWxoYWRvLg0KDQpBaW5kYSBuw6NvIGZhw6dhIG8gcHVzaC4gRmHDp2EgbWFpcyBhbGd1bWFzIG1vZGlmaWNhw6fDtWVzLCBlLCBkaWdhbW9zIHF1ZSBhZ29yYSBmZXogbW9kaWZpY2HDp8O1ZXMgcmVsZXZhbnRlcyBubyBjw7NkaWdvIHF1ZSBtZXJlY2VtIHVtIGNvbW1pdCBkZWRpY2Fkby4gTWFzIGxlbWJyZS1zZSBxdWUgbyDDumx0aW1vIGNvbW1pdCDDqSB1bSBXSVAuIE8gcXVlIGZhemVtb3MgYWdvcmEgw6kgdW0gYW1lbmQgYW8gV0lQDQoNCjMgLSBmYcOnYSB1bSBhbWVuZA0KDQpgYGB7ciBlY2hvPVRSVUUsZXZhbD1GQUxTRX0NCmdpdCBjb21taXQgLS1hbWVuZCAtbSAiQXF1aSB1bSBjb21taXQgY29tIHVtYSBtZW5zYWdlbSBpbmZvcm1hdGl2YSwgY29tbyBzZW1wcmUiDQpnaXQgcHVzaA0KYGBgDQoNClByb250bywgYWdvcmEgdGVtb3MgdW1hIG1lbnNhZ2VtIGluZm9ybWF0aXZhIHF1ZSBmb2kgYWRpY2lvbmFkYSBhbyBXSVAgZSBuw6NvIHByZWNpc2Ftb3MgZmF6ZXIgdW0gcHVzaCBkbyBwYXNzbyBpbnRlcm1lZGnDoXJpbyAoV0lQKSwgZGVpeGFuZG8gbm9zc2EgZXNjYWxhZGEgbWFpcyByw6FwaWRhDQoNCiMjIFZpYWphbmRvIGVudHJlIGNvbW1pdHMNCg0KVW1hIGRhcyBtYWlvcmVzIHBvdGVuY2lhbGlkYWRlcyBkb3MgY29tbWl0cyDDqSBhIHBvc3NpYmlsaWRhZGUgcXVlIHBvZGVtb3MgbmF2ZWdhciBlbnRyZSBjb21taXRzLiBPdSBzZWphLCBwb2RlbW9zIG5hdmVnYXIgZW50cmUgZXN0YWRvcyBkaXN0aW50b3MgZG8gbm9zc28gdHJhYmFsaG8gYSBtZWRpZGEgcXVlIGVsZSDDqSBkZXNlbnZvbHZpZG8uIFBvZGVtb3MgY2hlY2FyIGVzc2UgaGlzdMOzcmljbyB0YW50byBuYSBub3NzYSBww6FnaW5hIGRvIHJlcG9zaXTDs3JpbyBubyBHaXRIdWIgcXVhbnRvIHVzYW5kbyBvIFJTdHVkaW8sIGNvbW8gbW9zdHJhZG8gbmEgaW1hZ2VtIGEgc2VndWlyDQoNCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSxvdXQud2lkdGg9IjcwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImdpdGh1Yi1oaXN0b3J5LnBuZyIpKQ0KYGBgDQoNClBhcmEgdGFudG8gdm9jw6ogcHJlY2lzYSBhcGVuYXMgYWJyaXIgYSBhYmEgZG8gR2l0IG5vIFJTdHVkaW8sIGNvbW8gdmltb3MgYW50ZXJpb3JtZW50ZSwgZSBjbGljYXIgZW0gKipIaXN0b3J5Kiogbm8gY2FudG8gc3VwZXJpb3IgZXNxdWVyZG8gZGEgamFuZWxhIGRlIHJldmlzw7Vlcy4gVHVkbyBvIHF1ZSB2ZW1vcyBzw6NvIHRvZG9zIG9zIGNvbW1pdHMgcXVlIGZvcmFtIHJlYWxpemFkb3MgZGVzZGUgcXVlIGVzc2UgcmVwb3NpdMOzcmlvIGZvaSBmb3JtYWRvIHBlbGEgcHJpbWVpcmEgdmV6Lg0KDQojIyBFbGVtZW50b3MgaW1wb3J0YW50ZXMgZG8gY29tbWl0DQoNCkFsZ3VucyBlbGVtZW50b3MgcHJlc2VudGVzIG5vIGNvbW1pdCBzw6NvIGltcG9ydGFudGVzLiBPIHByaW5jaXBhbCBkZWxlcyDDqSBhIGNoYXZlIFNIQS0xLiBFc3RhIHNlIHRyYXRhIGRlIHVtIGlkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbW1pdC4gQ29tIGVsYSBwb2RlbW9zIHZpYWphciBlbnRyZSBjb21taXRzLCBvdSByZWZlcmVuY2lhciB1bSBkYWRvIGNvbW1pdCBlbSB1bWEgZGlzY3Vzc8OjbyBubyBnaXRodWIuIFBvciBleGVtcGxvLCBzdXBvbmRvIHF1ZSBlc3RhbW9zIHRyYWJhbGhhbmRvIGNvbGFib3JhdGl2YW1lbnRlIChjb21vIG5lc3NlIHNpdGUgOikpLCBlIGV1IGdvc3RlaSBwYXJ0aWN1bGFybWVudGUgbWFpcyBkYSB2ZXJzw6NvIGRvIHNpdGUgcXVlIGVzdMOhIGjDoSBhbGd1bnMgY29tbWl0cyBhdHLDoXMuIFVtYSBvcMOnw6NvIMOpIGFicmlyIHVtYSBJc3N1ZSAodmVyZW1vcyBpc3NvIG1haXMgdGFyZGUpLCBlIHJlZmVyZW5jaWFyIGVzc2UgbsO6bWVyby4gT3Ugc2ltcGxlc21lbnRlIGRpemVyIHBhcmEgbWV1IGNvbGFib3JhZG9yICJIZXkgZMOqIHVtYSBvbGhhZGEgbm8gY29tbWl0IG7Dum1lcm8gWFhYWFhYIi4gTmEgaW1hZ2VtIGFiYWl4byBlc3TDoSBlbSBkZXN0YXF1ZSBhIGNoYXZlIFNIQS4NCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKGhlcmU6OmhlcmUoImZpZ3MiLCAiZ2l0LXNoYS1rZXkucG5nIikpDQpgYGANCg0KVm9jw6ogcG9kZSBhYnJpciBvIGFycXVpdm8gbm8gZXN0YWRvIGVtIHF1ZSBlbGUgc2UgZW5jb250cmF2YSBlbSB1bSBkYWRvIGNvbW1pdCBjbGljYW5kbyBubyBhcnF1aXZvIG1vZGlmaWNhZG8gbmFxdWVsZSBjb21taXQgc2VsZWNpb25hZG8uIFBvciBleGVtcGxvLCBkaWdhbW9zIHF1ZSBldSBxdWVpcmEgdmVyIG8gYXJxdWl2byBjaGFtYWRvIGBybWFya2Rvd24tYmFzaWNzYCBkZXN0ZSBzaXRlIGVkaXRhZG8gZGlhIDAyIGRlIEFnb3N0bywgc8OzIHByZWNpc2Ftb3MgY2xpY2FyIG5vIGFycXVpdm8sIGNvbW8gbW9zdHJhZG8gbmEgaW1hZ2VtIGFiYWl4bzoNCg0KYGBge3IgZWNobz1GQUxTRSwgZXZhbD1UUlVFLG91dC53aWR0aD0iNzAlIn0NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKGhlcmU6OmhlcmUoImZpZ3MiLCAiZ2l0LWhpc3RvcnktZmlsZS5wbmciKSkNCmBgYA0KDQojIyBBdGl2aWRhZGUNCg0KRXhwbG9yZSB1bSBwb3VjbyBvcyBjb21taXRzIHF1ZSByZWFsaXphcmFtLiBBYnJhIGEgcMOhZ2luYSBkbyBnaXRodWIgZSB0YW1iw6ltIGF0cmF2w6lzIGRvIFJzdHVkaW8sIHZlamEgYXMgZGlmZXJlbsOnYXMsIGFzIHZhbnRhbmdlbnMgZSBkZXN2YW50YWdlbnMgZGUgY2FkYSB1bWEgZGFzIGFib3JkYWdlbnMNCg0KDQojIyBUaHJvd2JhY2sgQ29tbWl0DQoNClZhbW9zIHN1cG9yIHF1ZSByZWFsaXphbW9zIHVtIGNvbW1pdCBlcnJhZG8sIGUgYWdvcmEgcXVlcmVtb3Mgdm9sdGFyIGFvIGNvbW1pdCBhbnRlcmlvciwgbWFzIHNlbSBwZXJkZXIgbyB0cmFiYWxobyBxdWUgZml6ZW1vcyBub3MgYXJxdWl2b3MuIFBhcmEgaXNzbyBwb2RlbW9zIHVzYXIgYSBhYm9yZGFnZW0gYW50ZXJpb3IsIG5hdmVnYW5kbyBlbnRyZSBvcyBhcnF1aXZvcyBlIHNlbGVjaW9uYW5kbyBvIGFycXVpdm8gcXVlIHF1ZXJlbW9zIGVtIHVtIGRldGVybWluYWRvIGVzdGFkbywgc3Vic3RpdHVpbW9zIHBlbG8gYXJxdWl2byBhdHVhbCBlIGZhemVtb3MgdW0gbm92byBjb21taXQuIEVzdGEgb3DDp8OjbyBwb2RlIHNlciBhIG1haXMgc2VndXJhIHNlIGVzdGFtb3MgY29tZcOnYW5kbyBhIG1leGVyIG5vIHZlcnNpb25hbWVudG8uIE91dHJhIG9ww6fDo28gw6kgZXhwbG9yYXIgYXMgZnVuw6fDtWVzIGRvIGdpdCBjaGFtYWRhcyBgcmVzZXRgLiBBcyBmdW7Dp8O1ZXMgcmVzZXQgYmFzaWNhbWVudGUgbW92ZSBvIEhFQUQgZG8gc2V1IGRpcmV0w7NyaW8gcGFyYSB1bSBjb21taXQgbm8gcGFzc2Fkby4gRXN0YSBhYm9yZGFnZW0gcG9kZSBjYXVzYXIgYWxndW1hcyBkb3JlcyBkZSBjYWJlw6dhIG5vIGluw61jaW8sIHBvcnRhbnRvIHJlY29tZW5kbyB1c2EtbMOhIGNvbSBjYXV0ZWxhLiBQYXJhIG1haXMgaW5mb3JtYcOnw7VlcyBzb2JyZSBpc3NvIGTDqiB1bWEgb2xoYWRhIFtuZXNzZSBzaXRlXShodHRwczovL2RldmNvbm5lY3RlZC5jb20vaG93LXRvLWdpdC1yZXNldC10by1oZWFkLyM6fjp0ZXh0PVRvJTIwaGFyZCUyMHJlc2V0JTIwZmlsZXMlMjB0byxvcHRpb24lMjBhbmQlMjBzcGVjaWZ5JTIwdGhlJTIwSEVBRC4mdGV4dD1UaGUlMjBwdXJwb3NlJTIwb2YlMjB0aGUlMjAlRTIlODAlOUNnaXQsYmVmb3JlJTIwSEVBRCUyMGFuZCUyMHNvJTIwb24pLikNCg0KDQojIEludXRpbGlkYWRlcyBww7pibGljYXMgbmVjZXNzw6FyaWFzDQoNCk5vIGZpbSBkbyBkaWEsIGFwcmVuZGVtb3MgZmF6ZXIgY29tbWl0cyBhcGVuYXMgcGFyYSB1dGlsaXphciBlc3NhIGZlcnJhbWVudGEgW2FxdWldKGh0dHBzOi8vc3RhcmxvZ3MuZGV2LykuIENvbGUgbyBsaW5rIGRlIHNldSByZXBvc2l0w7NyaW8gY29udGVuZG8gYWxndW5zIGNvbW1pdHMgZSB2ZWphIG8gcXVlIGFjb250ZWNlDQoNCg==
diff --git a/conflitos.html b/conflitos.html index 5701a0e..0354174 100644 --- a/conflitos.html +++ b/conflitos.html @@ -11,7 +11,7 @@ - + Resolução de conflitos de versão @@ -448,7 +448,7 @@

Resolução de conflitos de versão

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

@@ -461,16 +461,15 @@

2024-07-08

Apresentação

Não há nada mais frustrante no mundo do versionamento que um push ou um pull rejeitado. Mas ao incorporarmos as ferramentas de versionamento -em nossa rotina de trabalho será inevitável que em algum momento vamos -nos deparar com alguma mensagem de rejeição de um push ou pull que, a +em nossa rotina de trabalho será inevitável em algum momento não +esbarrar em alguma mensagem de rejeição de um push ou pull que, a maioria das vezes, tem como principal razão a existência de conflitos em -versões de documentos. Portanto, nesta seção vamos entender como -resolver conflitos em versionamento

+versões de documentos. Portanto, nesta seção vamos entender o que são +conflitos de versionamento, quais suas principais causas e como podemos +resolvê-los.

-
-

Resolvendo conflitos de versões

-
-

O que são os conflitos?

+
+

O que são os conflitos?

Conflitos são, de maneira muito sucinta, duas (ou mais) versões de um mesmo arquivo. Conflitos são comuns mesmo quando não estamos utilizando ferramentas de versionamento. Por exemplo, quando tentamos “colar” um @@ -481,31 +480,66 @@

O que são os conflitos?

conflitos de versões utilizando o git. Com a diferença que temos muito mais controle de decisão do manejo dos conflitos nos arquivos sob versionamento.

-

Quais as principais causas?

Os conflitos surgem por uma série de razões. Baseado no nosso uso pessoal do versionamento, as duas razões mais comuns que geram versões conflitantes são:

1 - Devido ao uso de arquivos em repositórios compartilhados, onde -duas ou mais pessoas criam versões diferentes de um mesmo arquivo +duas ou mais pessoas criam versões diferentes de um mesmo arquivo em comum.

2 - Devido ao uso de arquivos em diferentes máquinas. Mesmo que o repositório seja de um único proprietário, caso esteja sendo utilizado em mais de um computador, versões diferentes de um mesmo arquivo podem ser criados.

Novamente, essas são as duas fontes mais comuns de conflitos que nós -lidamos na nossa prática diária, mas outras formas existem.

+nos deparamos na nossa prática diária, mas é importante lembrar que +outras fontes de conflito existem. O importante é saber identificar a +fonte de conflito e encotrar a melhor solução para sua resolução. +Veremos isso na próxima seção.

-
-

Conflitos na prática

-
-

Como identificar conflitos

+
+

Como identificar conflitos

+

O conflito irá aparecer em seu console da seguinte maneira:

+

Quando gerados, os conflitos aparecem em nossos códigos da seguinte +maneira

+

+

O arquivo com conflito vai ser indicado no seu console, ao abrir este +arquivo o local de conflito vai aparecer como indicado na figura +acima.

+

O que é importante entender: A região entre os caracteres +<<<<<< HEAD ======= indica a situação do seu arquivo +local. A região do código entre os caracteres ===== +>>>>>>>>> [caracteres e números como indicado +na figura] indica a situação do arquivo no remoto.

+

A partir disso uma decisão deve ser tomada:

+

1 - manter um dos dois estados do repositório

+

2 - realizar um híbrido

+

3 - excluir ambas

+

Após tomada essa decisão os caracteres especiais devem ser removidos +do texto

+
+

Referências para resolução de conflitos

+

Aqui trago algumas das referências mais úteis para a resolução de +conflitos. Primeiro, um velho conhecido, o livro da Jenny Brian. O capítulo +22 é um apanhado muito interessante que apresenta +diferentes formas de resolução de conflitos, incluindo os prós e contras +de cada uma delas.

+

A segunda referência é o site “Oh +shit, Git!?!?”. Este site não se trata de um conjunto didático, mas +sim um compilado de soluções práticas a problemas recorentes no mundo do +versionamento, incluindo problemas de conflitos.

+

A terceira referência é este material produzido por Tapas +Adhikary, que apresenta de maneira detalhada a origem dos conflitos +e como resolvê-los

-
LS0tDQp0aXRsZTogJ1Jlc29sdcOnw6NvIGRlIGNvbmZsaXRvcyBkZSB2ZXJzw6NvJw0KYXV0aG9yOiAiR2FicmllbCBOYWthbXVyYSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogaHRtbF9kb2N1bWVudA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBmaWcuYWxpZ24gPSAiY2VudGVyIikNCmBgYA0KDQpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0NCmtsaXBweTo6a2xpcHB5KCkNCmBgYA0KDQojIEFwcmVzZW50YcOnw6NvDQoNCk7Do28gaMOhIG5hZGEgbWFpcyBmcnVzdHJhbnRlIG5vIG11bmRvIGRvIHZlcnNpb25hbWVudG8gcXVlIHVtIHB1c2ggb3UgdW0gcHVsbCByZWplaXRhZG8uIE1hcyBhbyBpbmNvcnBvcmFybW9zIGFzIGZlcnJhbWVudGFzIGRlIHZlcnNpb25hbWVudG8gZW0gbm9zc2Egcm90aW5hIGRlIHRyYWJhbGhvIHNlcsOhIGluZXZpdMOhdmVsIHF1ZSBlbSBhbGd1bSBtb21lbnRvIHZhbW9zIG5vcyBkZXBhcmFyIGNvbSBhbGd1bWEgbWVuc2FnZW0gZGUgcmVqZWnDp8OjbyBkZSB1bSBwdXNoIG91IHB1bGwgcXVlLCBhIG1haW9yaWEgZGFzIHZlemVzLCB0ZW0gY29tbyBwcmluY2lwYWwgcmF6w6NvIGEgZXhpc3TDqm5jaWEgZGUgY29uZmxpdG9zIGVtIHZlcnPDtWVzIGRlIGRvY3VtZW50b3MuIFBvcnRhbnRvLCBuZXN0YSBzZcOnw6NvIHZhbW9zIGVudGVuZGVyIGNvbW8gcmVzb2x2ZXIgY29uZmxpdG9zIGVtIHZlcnNpb25hbWVudG8NCg0KIyBSZXNvbHZlbmRvIGNvbmZsaXRvcyBkZSB2ZXJzw7Vlcw0KDQojIyBPIHF1ZSBzw6NvIG9zIGNvbmZsaXRvcz8NCg0KQ29uZmxpdG9zIHPDo28sIGRlIG1hbmVpcmEgbXVpdG8gc3VjaW50YSwgZHVhcyAob3UgbWFpcykgdmVyc8O1ZXMgZGUgdW0gbWVzbW8gYXJxdWl2by4gQ29uZmxpdG9zIHPDo28gY29tdW5zIG1lc21vIHF1YW5kbyBuw6NvIGVzdGFtb3MgdXRpbGl6YW5kbyBmZXJyYW1lbnRhcyBkZSB2ZXJzaW9uYW1lbnRvLiBQb3IgZXhlbXBsbywgcXVhbmRvIHRlbnRhbW9zICJjb2xhciIgdW0gZG9jdW1lbnRvIGVtIHVtYSBwYXN0YSBjb20gdW0gYXJxdWl2byBxdWUgasOhIGFwcmVzZW50YSBvIG1lc21vIG5vbWUuIE5lc3RlIG1vbWVudG8gdGVtb3MgcXVlIHRvbWFyIGRlY2lzw7VlczogTWFudGVyIG8gYXJxdWl2byBhbnRpZ28/IFN1YnN0aXR1aXIgbyBhcnF1aXZvIGFudGlnbyBwZWxvIG5vdm8gYXJxdWl2bz8gTWFudGVyIGFtYm9zIG9zIGFycXVpdm9zPyANCkVzc2FzIHPDo28gYXMgbWVzbWFzIGRlY2lzw7VlcyBxdWUgZGV2ZW1vcyB0b21hciBxdWFuZG8gbGlkYW1vcyBjb20gY29uZmxpdG9zIGRlIHZlcnPDtWVzIHV0aWxpemFuZG8gbyBnaXQuIENvbSBhIGRpZmVyZW7Dp2EgcXVlIHRlbW9zIG11aXRvIG1haXMgY29udHJvbGUgZGUgZGVjaXPDo28gZG8gbWFuZWpvIGRvcyBjb25mbGl0b3Mgbm9zIGFycXVpdm9zIHNvYiB2ZXJzaW9uYW1lbnRvLg0KDQojIyBRdWFpcyBhcyBwcmluY2lwYWlzIGNhdXNhcz8NCg0KT3MgY29uZmxpdG9zIHN1cmdlbSBwb3IgdW1hIHPDqXJpZSBkZSByYXrDtWVzLiBCYXNlYWRvIG5vIG5vc3NvIHVzbyBwZXNzb2FsIGRvIHZlcnNpb25hbWVudG8sIGFzIGR1YXMgcmF6w7VlcyBtYWlzIGNvbXVucyBxdWUgZ2VyYW0gdmVyc8O1ZXMgY29uZmxpdGFudGVzIHPDo286IA0KDQoxIC0gRGV2aWRvIGFvIHVzbyBkZSBhcnF1aXZvcyBlbSByZXBvc2l0w7NyaW9zIGNvbXBhcnRpbGhhZG9zLCBvbmRlIGR1YXMgb3UgbWFpcyBwZXNzb2FzIGNyaWFtIHZlcnPDtWVzIGRpZmVyZW50ZXMgZGUgdW0gbWVzbW8gYXJxdWl2byBjb211bS4gDQoNCjIgLSBEZXZpZG8gYW8gdXNvIGRlIGFycXVpdm9zIGVtIGRpZmVyZW50ZXMgbcOhcXVpbmFzLiBNZXNtbyBxdWUgbyByZXBvc2l0w7NyaW8gc2VqYSBkZSB1bSDDum5pY28gcHJvcHJpZXTDoXJpbywgY2FzbyBlc3RlamEgc2VuZG8gdXRpbGl6YWRvIGVtIG1haXMgZGUgdW0gY29tcHV0YWRvciwgdmVyc8O1ZXMgZGlmZXJlbnRlcyBkZSB1bSBtZXNtbyBhcnF1aXZvIHBvZGVtIHNlciBjcmlhZG9zLg0KDQpOb3ZhbWVudGUsIGVzc2FzIHPDo28gYXMgZHVhcyBmb250ZXMgbWFpcyBjb211bnMgZGUgY29uZmxpdG9zIHF1ZSBuw7NzIGxpZGFtb3MgbmEgbm9zc2EgcHLDoXRpY2EgZGnDoXJpYSwgbWFzIG91dHJhcyBmb3JtYXMgZXhpc3RlbS4NCg0KIyBDb25mbGl0b3MgbmEgcHLDoXRpY2ENCg0KIyMgQ29tbyBpZGVudGlmaWNhciBjb25mbGl0b3MNCg0KDQo=
+
LS0tDQp0aXRsZTogJ1Jlc29sdcOnw6NvIGRlIGNvbmZsaXRvcyBkZSB2ZXJzw6NvJw0KYXV0aG9yOiAiR2FicmllbCBOYWthbXVyYSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogaHRtbF9kb2N1bWVudA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBmaWcuYWxpZ24gPSAiY2VudGVyIikNCmBgYA0KDQpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0NCmtsaXBweTo6a2xpcHB5KCkNCmBgYA0KDQojIEFwcmVzZW50YcOnw6NvDQoNCk7Do28gaMOhIG5hZGEgbWFpcyBmcnVzdHJhbnRlIG5vIG11bmRvIGRvIHZlcnNpb25hbWVudG8gcXVlIHVtIHB1c2ggb3UgdW0gcHVsbCByZWplaXRhZG8uIE1hcyBhbyBpbmNvcnBvcmFybW9zIGFzIGZlcnJhbWVudGFzIGRlIHZlcnNpb25hbWVudG8gZW0gbm9zc2Egcm90aW5hIGRlIHRyYWJhbGhvIHNlcsOhIGluZXZpdMOhdmVsIGVtIGFsZ3VtIG1vbWVudG8gbsOjbyBlc2JhcnJhciBlbSBhbGd1bWEgbWVuc2FnZW0gZGUgcmVqZWnDp8OjbyBkZSB1bSBwdXNoIG91IHB1bGwgcXVlLCBhIG1haW9yaWEgZGFzIHZlemVzLCB0ZW0gY29tbyBwcmluY2lwYWwgcmF6w6NvIGEgZXhpc3TDqm5jaWEgZGUgY29uZmxpdG9zIGVtIHZlcnPDtWVzIGRlIGRvY3VtZW50b3MuIFBvcnRhbnRvLCBuZXN0YSBzZcOnw6NvIHZhbW9zIGVudGVuZGVyIG8gcXVlIHPDo28gY29uZmxpdG9zIGRlIHZlcnNpb25hbWVudG8sIHF1YWlzIHN1YXMgcHJpbmNpcGFpcyBjYXVzYXMgZSBjb21vIHBvZGVtb3MgcmVzb2x2w6otbG9zLg0KDQojIE8gcXVlIHPDo28gb3MgY29uZmxpdG9zPw0KDQpDb25mbGl0b3Mgc8OjbywgZGUgbWFuZWlyYSBtdWl0byBzdWNpbnRhLCBkdWFzIChvdSBtYWlzKSB2ZXJzw7VlcyBkZSB1bSBtZXNtbyBhcnF1aXZvLiBDb25mbGl0b3Mgc8OjbyBjb211bnMgbWVzbW8gcXVhbmRvIG7Do28gZXN0YW1vcyB1dGlsaXphbmRvIGZlcnJhbWVudGFzIGRlIHZlcnNpb25hbWVudG8uIFBvciBleGVtcGxvLCBxdWFuZG8gdGVudGFtb3MgImNvbGFyIiB1bSBkb2N1bWVudG8gZW0gdW1hIHBhc3RhIGNvbSB1bSBhcnF1aXZvIHF1ZSBqw6EgYXByZXNlbnRhIG8gbWVzbW8gbm9tZS4gTmVzdGUgbW9tZW50byB0ZW1vcyBxdWUgdG9tYXIgZGVjaXPDtWVzOiBNYW50ZXIgbyBhcnF1aXZvIGFudGlnbz8gU3Vic3RpdHVpciBvIGFycXVpdm8gYW50aWdvIHBlbG8gbm92byBhcnF1aXZvPyBNYW50ZXIgYW1ib3Mgb3MgYXJxdWl2b3M/IA0KRXNzYXMgc8OjbyBhcyBtZXNtYXMgZGVjaXPDtWVzIHF1ZSBkZXZlbW9zIHRvbWFyIHF1YW5kbyBsaWRhbW9zIGNvbSBjb25mbGl0b3MgZGUgdmVyc8O1ZXMgdXRpbGl6YW5kbyBvIGdpdC4gQ29tIGEgZGlmZXJlbsOnYSBxdWUgdGVtb3MgbXVpdG8gbWFpcyBjb250cm9sZSBkZSBkZWNpc8OjbyBkbyBtYW5lam8gZG9zIGNvbmZsaXRvcyBub3MgYXJxdWl2b3Mgc29iIHZlcnNpb25hbWVudG8uDQoNCiMjIFF1YWlzIGFzIHByaW5jaXBhaXMgY2F1c2FzPw0KDQpPcyBjb25mbGl0b3Mgc3VyZ2VtIHBvciB1bWEgc8OpcmllIGRlIHJhesO1ZXMuIEJhc2VhZG8gbm8gbm9zc28gdXNvIHBlc3NvYWwgZG8gdmVyc2lvbmFtZW50bywgYXMgZHVhcyByYXrDtWVzIG1haXMgY29tdW5zIHF1ZSBnZXJhbSB2ZXJzw7VlcyBjb25mbGl0YW50ZXMgc8OjbzogDQoNCjEgLSBEZXZpZG8gYW8gdXNvIGRlIGFycXVpdm9zIGVtIHJlcG9zaXTDs3Jpb3MgY29tcGFydGlsaGFkb3MsIG9uZGUgZHVhcyBvdSBtYWlzIHBlc3NvYXMgY3JpYW0gdmVyc8O1ZXMgZGlmZXJlbnRlcyBkZSB1bSBtZXNtbyBhcnF1aXZvIGVtIGNvbXVtLiANCg0KMiAtIERldmlkbyBhbyB1c28gZGUgYXJxdWl2b3MgZW0gZGlmZXJlbnRlcyBtw6FxdWluYXMuIE1lc21vIHF1ZSBvIHJlcG9zaXTDs3JpbyBzZWphIGRlIHVtIMO6bmljbyBwcm9wcmlldMOhcmlvLCBjYXNvIGVzdGVqYSBzZW5kbyB1dGlsaXphZG8gZW0gbWFpcyBkZSB1bSBjb21wdXRhZG9yLCB2ZXJzw7VlcyBkaWZlcmVudGVzIGRlIHVtIG1lc21vIGFycXVpdm8gcG9kZW0gc2VyIGNyaWFkb3MuDQoNCk5vdmFtZW50ZSwgZXNzYXMgc8OjbyBhcyBkdWFzIGZvbnRlcyBtYWlzIGNvbXVucyBkZSBjb25mbGl0b3MgcXVlIG7Ds3Mgbm9zIGRlcGFyYW1vcyBuYSBub3NzYSBwcsOhdGljYSBkacOhcmlhLCBtYXMgw6kgaW1wb3J0YW50ZSBsZW1icmFyIHF1ZSBvdXRyYXMgZm9udGVzIGRlIGNvbmZsaXRvIGV4aXN0ZW0uIE8gaW1wb3J0YW50ZSDDqSBzYWJlciBpZGVudGlmaWNhciBhIGZvbnRlIGRlIGNvbmZsaXRvIGUgZW5jb3RyYXIgYSBtZWxob3Igc29sdcOnw6NvIHBhcmEgc3VhIHJlc29sdcOnw6NvLiBWZXJlbW9zIGlzc28gbmEgcHLDs3hpbWEgc2XDp8Ojby4NCg0KDQojIENvbW8gaWRlbnRpZmljYXIgY29uZmxpdG9zDQoNCk8gY29uZmxpdG8gaXLDoSBhcGFyZWNlciBlbSBzZXUgY29uc29sZSBkYSBzZWd1aW50ZSBtYW5laXJhOg0KDQpRdWFuZG8gZ2VyYWRvcywgb3MgY29uZmxpdG9zIGFwYXJlY2VtIGVtIG5vc3NvcyBjw7NkaWdvcyBkYSBzZWd1aW50ZSBtYW5laXJhDQoNCmBgYHtyIGVjaG89RkFMU0UsIGV2YWw9VFJVRSxvdXQud2lkdGg9IjgwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcyhoZXJlOjpoZXJlKCJmaWdzIiwgImNvbmZsaWN0cy1hbGwucG5nIikpDQpgYGANCg0KTyBhcnF1aXZvIGNvbSBjb25mbGl0byB2YWkgc2VyIGluZGljYWRvIG5vIHNldSBjb25zb2xlLCBhbyBhYnJpciBlc3RlIGFycXVpdm8gbyBsb2NhbCBkZSBjb25mbGl0byB2YWkgYXBhcmVjZXIgY29tbyBpbmRpY2FkbyBuYSBmaWd1cmEgYWNpbWEuIA0KDQpPIHF1ZSDDqSBpbXBvcnRhbnRlIGVudGVuZGVyOiBBIHJlZ2nDo28gZW50cmUgb3MgY2FyYWN0ZXJlcyA8PDw8PDwgSEVBRCA9PT09PT09IGluZGljYSBhIHNpdHVhw6fDo28gZG8gc2V1IGFycXVpdm8gbG9jYWwuIEEgcmVnacOjbyBkbyBjw7NkaWdvIGVudHJlIG9zIGNhcmFjdGVyZXMgPT09PT0gPj4+Pj4+Pj4+IFtjYXJhY3RlcmVzIGUgbsO6bWVyb3MgY29tbyBpbmRpY2FkbyBuYSBmaWd1cmFdIGluZGljYSBhIHNpdHVhw6fDo28gZG8gYXJxdWl2byBubyByZW1vdG8uDQoNCkEgcGFydGlyIGRpc3NvIHVtYSBkZWNpc8OjbyBkZXZlIHNlciB0b21hZGE6DQoNCjEgLSBtYW50ZXIgdW0gZG9zIGRvaXMgZXN0YWRvcyBkbyByZXBvc2l0w7NyaW8NCg0KMiAtIHJlYWxpemFyIHVtIGjDrWJyaWRvIA0KDQozIC0gZXhjbHVpciBhbWJhcw0KDQpBcMOzcyB0b21hZGEgZXNzYSBkZWNpc8OjbyBvcyBjYXJhY3RlcmVzIGVzcGVjaWFpcyBkZXZlbSBzZXIgcmVtb3ZpZG9zIGRvIHRleHRvDQoNCiMgUmVmZXLDqm5jaWFzIHBhcmEgcmVzb2x1w6fDo28gZGUgY29uZmxpdG9zDQoNCkFxdWkgdHJhZ28gYWxndW1hcyBkYXMgcmVmZXLDqm5jaWFzIG1haXMgw7p0ZWlzIHBhcmEgYSByZXNvbHXDp8OjbyBkZSBjb25mbGl0b3MuIA0KUHJpbWVpcm8sIHVtIHZlbGhvIGNvbmhlY2lkbywgbyBsaXZybyBkYSBKZW5ueSBCcmlhbi4gTyBbKipjYXDDrXR1bG8gMjIqKl0oaHR0cHM6Ly9oYXBweWdpdHdpdGhyLmNvbS9naXQtYnJhbmNoZXMuaHRtbD9xPWNvbmZsaSNkZWFsaW5nLXdpdGgtY29uZmxpY3RzKSDDqSB1bSBhcGFuaGFkbyBtdWl0byBpbnRlcmVzc2FudGUgcXVlIGFwcmVzZW50YSBkaWZlcmVudGVzIGZvcm1hcyBkZSByZXNvbHXDp8OjbyBkZSBjb25mbGl0b3MsIGluY2x1aW5kbyBvcyBwcsOzcyBlIGNvbnRyYXMgZGUgY2FkYSB1bWEgZGVsYXMuDQoNCkEgc2VndW5kYSByZWZlcsOqbmNpYSDDqSBvIHNpdGUgWyJPaCBzaGl0LCBHaXQhPyE/Il0oaHR0cHM6Ly9vaHNoaXRnaXQuY29tLykuIEVzdGUgc2l0ZSBuw6NvIHNlIHRyYXRhIGRlIHVtIGNvbmp1bnRvIGRpZMOhdGljbywgbWFzIHNpbSB1bSBjb21waWxhZG8gZGUgc29sdcOnw7VlcyBwcsOhdGljYXMgYSBwcm9ibGVtYXMgcmVjb3JlbnRlcyBubyBtdW5kbyBkbyB2ZXJzaW9uYW1lbnRvLCBpbmNsdWluZG8gcHJvYmxlbWFzIGRlIGNvbmZsaXRvcy4NCg0KQSB0ZXJjZWlyYSByZWZlcsOqbmNpYSDDqSBlc3RlIG1hdGVyaWFsIHByb2R1emlkbyBwb3IgW1RhcGFzIEFkaGlrYXJ5XShodHRwczovL3d3dy5mcmVlY29kZWNhbXAub3JnL25ld3MvcmVzb2x2ZS1tZXJnZS1jb25mbGljdHMtaW4tZ2l0LWEtcHJhY3RpY2FsLWd1aWRlLyksIHF1ZSBhcHJlc2VudGEgZGUgbWFuZWlyYSBkZXRhbGhhZGEgYSBvcmlnZW0gZG9zIGNvbmZsaXRvcyBlIGNvbW8gcmVzb2x2w6otbG9zDQo=
diff --git a/dados_abertos.html b/dados_abertos.html index adf9c08..56cfb57 100644 --- a/dados_abertos.html +++ b/dados_abertos.html @@ -11,7 +11,7 @@ - + Dados abertos @@ -445,7 +445,7 @@

Dados abertos

Melina Leite

-

2024-07-08

+

2024-07-09

diff --git a/gitgnore.html b/gitgnore.html index 0e2fddd..b9b792e 100644 --- a/gitgnore.html +++ b/gitgnore.html @@ -11,7 +11,7 @@ - + Utilizando o gitignore @@ -448,7 +448,7 @@

Utilizando o gitignore

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/index.html b/index.html index 8ba1568..dc829c8 100644 --- a/index.html +++ b/index.html @@ -537,8 +537,7 @@

Cronograma das aulas

Ciência Aberta + Apresentação da disciplina -Organização local de projetos: pastas, scripts limpos, etc -{link_org_local} +Organização local de projetos: pastas, scripts limpos Git, Github, integração @@ -613,7 +612,7 @@

Dados

-
LS0tDQp0aXRsZTogIkJvYXMgUHLDoXRpY2FzIGUgRmVycmFtZW50YXMgZGEgQ2nDqm5jaWEgQWJlcnRhIG5hIEVjb2xvZ2lhIC0gQklFNTc5OCINCi0tLQ0KDQojIEFwcmVzZW50YcOnw6NvDQoNCk9sw6EhDQoNCk9icmlnYWRvIHBlbG8gaW50ZXJlc3NlIGVtIHBhcnRpY2lwYXIgZGEgZGlzY2lwbGluYSAiQm9hcyBQcsOhdGljYXMgZSBGZXJyYW1lbnRhcyBkYSBDacOqbmNpYSBBYmVydGEgbmEgRWNvbG9naWEgLSBCSUU1Nzk4IiwgcXVlIHNlcsOhIG1pbmlzdHJhZGEgZW50cmUgb3MgZGlhcyAqKjA4LCAxMCwgMTIsIDE1IGUgMTcgZGUgSnVsaG8gZGUgMjAyNCoqIG5vIERlcGFydGFtZW50byBkZSBFY29sb2dpYSwgSUItVVNQLCBTw6NvIFBhdWxvLiBOZXN0YSBkaXNjaXBsaW5hIHNlcsOjbyBhYm9yZGFkb3MgY29uY2VpdG9zIHRlw7NyaWNvcywgdGVuZMOqbmNpYXMgZSBmZXJyYW1lbnRhcyBwcsOhdGljYXMgcGFyYSBkZXNlbnZvbHZlciBwZXNxdWlzYXMgcXVlIHbDo28gYW8gZW5jb250cm8gZG9zIHByaW5jw61waW9zIGUgbW92aW1lbnRvIGRhIGNpw6puY2lhIGFiZXJ0YS4gDQoNCkVzdGUgc8OtdGlvIHNlcnZpcsOhIGNvbW8gdW0gZ3VpYSBwYXJhIG5vc3NhcyBhdWxhcy4gTmVsZSB2b2PDqnMgZW5jb250cmFyw6NvIG9zIG1hdGVyaWFpcyBuZWNlc3PDoXJpb3MgKFtkYWRvc10oaHR0cHM6Ly9naXRodWIuY29tL0dhYnJpZWxOYWthbXVyYS9VU1BfcmVwcm9kdWNpYmlsaXR5X0JJRTU3OTgpKSBiZW0gY29tbyBvcyBzY3JpcHRzIHF1ZSB1dGlsaXphcmVtb3MgZHVyYW50ZSBhcyBhdWxhcyBwYXJhIGFzIGF0aXZpZGFkZXMgcHLDoXRpY2FzLiBBaCEgTyBzaXRlIGNvbnRpbnVhcsOhIGZ1bmNpb25hbmRvIGFww7NzIG8gdMOpcm1pbm8gZGEgZGlzY2lwbGluYSwgcG9ydGFudG8sIHNlbXByZSBxdWUgdGl2ZXIgYWxndW1hIGTDunZpZGEgw6kgc8OzIHZvbHRhciBhcXVpIGUgcmV2aXNpdGFyIG8gcXVlIHZpbW9zIG5hcyBhdWxhcy4NCg0KIyBNaW5pc3RyYW50ZXMNCg0KTyBjdXJzbyBzZXLDoSBtaW5pc3RyYWRvIHBvciBNZWxpbmEgTGVpdGUgZSBHYWJyaWVsIE5ha2FtdXJhLg0KDQoNCiMjIE1lbGluYQ0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxvdXQud2lkdGg9IjIwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9tZWxpbmEtZm90by5wbmciKQ0KYGBgDQoNClNvdSBlY8OzbG9nYSBlIGNpZW50aXN0YSBkZSBkYWRvcyBubyBkZXBhcnRhbWVudG8gZGUgRWNvbG9naWEgZGEgVVNQLiBUZW5obyBncmFkdWHDp8OjbyBlbSBiaW9sb2dpYSAoVUZSSiksIG1lc3RyYWRvIChVRlJKKSBlIGRvdXRvcmFkbyBlbSBFY29sb2dpYSAoVVNQKS4gQWN1bXVsZWkgdGFtYsOpbSB1bSBNQkEgZW0gR2VzdMOjbyBBbWJpZW50YWwgKFBvbGktVVNQKSBlIE1CQSBlbSBDacOqbmNpYSBkZSBEYWRvcyAoRVNBTFEtVVNQKS4gQW8gbG9uZ28gZG9zIGFub3MgdHJhYmFsaGVpIGVtIGRpZmVyZW50ZXMgw6FyZWFzIGRhIGVjb2xvZ2lhIGUgYmlvbG9naWEgZGEgY29uc2VydmHDp8OjbyBjb21vIGVjb2xvZ2lhIGRhIHBhaXNhZ2VtLCBkZSBjb211bmlkYWRlcywgZGUgcG9wdWxhw6fDtWVzIGUgZWNvbG9naWEgYXBsaWNhZGEuIFRlbmhvIGJhc3RhbnRlIGludGVyZXNzZSBuYSBhcGxpY2HDp8OjbyBtw6l0b2RvcyBlc3RhdMOtc3RpY29zIHBhcmEgZGVzY29iZXJ0YXMgZWNvbMOzZ2ljYXMgKG1vZGVsb3MgbWlzdG9zIHPDo28gbWV1IHhvZMOzKS4gQWRvcm8gZXNjYWxhZGEsIHRyaWxoYXMgZSBlc3BvcnRlcyBkZSBhdmVudHVyYSBubyBnZXJhbCEgQWgsIGUgc291IHVtYSBlbnR1c2lhc3RhIGRvIG1vdmltZW50byBkYSAqKkNpw6puY2lhIEFiZXJ0YSoqISEgDQoNClBhcmEgbWUgYWNoYXIgZSBzYWJlciBtYWlzIHNvYnJlIG1pbSwgdmVqYSBtZXUgW3NpdGVdKGh0dHBzOi8vbWVsaW5hbGVpdGUud2VlYmx5LmNvbS8pLg0KDQoNCiMjIEdhYnJpZWwNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSIyMCUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2FicmllbC1hdmF0YXIuanBnIikNCmBgYA0KDQpHYWJyaWVsIMOpIGZvcm1hZG8gZW0gbGljZW5jaWF0dXJhIGVtIENpw6puY2lhcyBCaW9sw7NnaWNhcyAoYXBlc2FyIGRhIGTDunZpZGEgZW50cmUgQ2nDqm5jaWFzIFNvY2lhaXMgZSBIaXN0w7NyaWEpLCBmZXogYWxndW1hcyBhbmRhbsOnYXMgZGUgZGlmw61jaWwgcmVwcm9kdXRpYmlsaWRhZGUgcGFyYSBvYnRlciBvIG1lc3RyYWRvIChFY29sb2dpYSBlIENvbnNlcnZhw6fDo28gVUZNUykgZSBkb3V0b3JhZG8gKEVjb2xvZ2lhIFVGUkdTKS4gQXDDs3MgdW0gdGVtcG8gZm9yYSAocG9zZG9jIFRleGFzIEEmTSBVbml2ZXJzaXR5KSwgYSBzYXVkYWRlIGRvIHBlcXVpIGUgZGEgZ3Vhcmlyb2JhIGRvIGNlcnJhZG8gZmFsb3UgbWFpcyBhbHRvIGUgcmV0b3Jub3UgY29tbyBwb3Nkb2MgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgR29pw6FzIG5vIElOQ1QtRUVDQmlvLiBBdHVhbG1lbnRlIMOpIHBvc2RvYyBuYSBVbml2ZXJzaWRhZGUgZGUgU8OjbyBQYXVsby4gVmVtIGRlc2Vudm9sdmVuZG8gIG3DqXRvZG9zIGUgZmVycmFtZW50YXMgZXN0YXTDrXN0aWNhcyBlbSBlY29sb2dpYSBkZSBjb211bmlkYWRlcywgbWFjcm9lY29sb2dpYSBlIG1hY3JvZXZvbHXDp8Ojby4gVGVtIGludGVyZXNzZSB0YW1iw6ltIGVtIGVudGVuZGVyIG9zIHZpw6lzZXMgZGEgZGluw6JtaWNhIGRlIHByb2R1w6fDo28gY2llbnTDrWZpY2EuIFtBcXVpXShodHRwOi8vbGF0dGVzLmNucHEuYnIvMjQ1NjUxNTk0ODA0OTU2NSkgdW0gcG91cXVpbmhvIG1haXMgZG8gcXVlIHZlbmhvIGRlc2Vudm9sdmVuZG8uDQoNCg0KIyBDcm9ub2dyYW1hIGRhcyBhdWxhcw0KDQpBYmFpeG8gZXN0w6EgbyBjcm9ub2dyYW1hIGRhcyBhdWxhcyBxdWUgaXJlbW9zIHNlZ3Vpci4gQWxndW1hcyBjb2lzYXMgcG9kZW0gbXVkYXIgKG1haXMgb3UgbWVub3MgdGVtcG8gZ2FzdG8pIGRlcGVuZGVuZG8gZG8gYW5kYW1lbnRvIGRhcyBhdGl2aWRhZGVzIHByw6F0aWNhcy4NCg0KYGBge3IsIGV2YWw9VCwgZWNobz1GQUxTRX0NCmxpYnJhcnkoZ2x1ZSkNCmxpbmtfb3JnX2xvY2FsIDwtIGdsdWU6OmdsdWUoImBbbGluayBhdWxhXShodHRwczovL2dhYnJpZWxuYWthbXVyYS5naXRodWIuaW8vVVNQX0JJRTU3OThfYXByZXNlbnRhY29lcy8jMjEpYCIpDQoNCmBgYA0KDQoNCmBgYHtyLCBldmFsPVQsIGVjaG89RkFMU0V9DQpjcm9ubyA8LSBzdXBwcmVzc1dhcm5pbmdzKHJlYWQuY3N2KCJjcm9ub2dyYW1hLmNzdiIsIGhlYWRlciA9IFQsIHNlcCA9ICIsIikpICANCnJvd25hbWVzKGNyb25vKSA8LSBjKCJNYW5ow6MgXG4gOS0xMmgiLCAiVGFyZGUgXG4gMTQtMTdoIikNCmNvbG5hbWVzKGNyb25vKSA8LSBwYXN0ZShjKDgsIDEwLCAxMiwgMTUsIDE3KSwgKCJKdWwiKSwgc2VwID0gIiAiKQ0KY3Jvbm9bMSwgMV0gPC0gYygiQ2nDqm5jaWEgQWJlcnRhICsgQXByZXNlbnRhw6fDo28gZGEgZGlzY2lwbGluYSIpDQpjcm9ub1syLCAxXSA8LSBjKCJEYWRvcyBhYmVydG9zOiBwbGFubyBkZSBnZXN0w6NvLCBvcmdhbml6YcOnw6NvLCBtZXRhZGFkb3MsIHB1YmxpY2HDp8OjbyIpDQpjcm9ub1sxLCAyXSA8LSBjKCJPcmdhbml6YcOnw6NvIGxvY2FsIGRlIHByb2pldG9zOiBwYXN0YXMsIHNjcmlwdHMgbGltcG9zLCBldGMge2xpbmtfb3JnX2xvY2FsfSIpDQpjcm9ub1syLCAyXSA8LSBjKCJDb250cm9sZSBkZSB2ZXJzw6NvIikNCmNyb25vWzEsIDNdIDwtIGMoIkdpdCwgR2l0aHViLCBpbnRlZ3Jhw6fDo28iKQ0KY3Jvbm9bMiwgM10gPC0gYygiUHLDoXRpY2EgZW0gY29udHJvbGUgZGUgdmVyc8Ojby8gQcOnw7VlcyBiw6FzaWNhcyIpDQojY3Jvbm9bMSwgNF0gPC0gYygiUHLDoXRpY2EgZW0gY29udHJvbGUgZGUgdmVyc8Ojby8gRm9ya3MsIGNvbW1pdHMsIHB1bGwgcmVxdWVzdHMiKQ0KI2Nyb25vWzIsIDRdIDwtIGMoIlByw6F0aWNhIGVtIGNvbnRyb2xlIGRlIHZlcnPDo28vIEZvcmtzLCBjb21taXRzLCBwdWxsIHJlcXVlc3RzLyBQYWNvdGVzIikNCmNyb25vWzEsIDRdIDwtIGMoIkxpdGVyYXRlIHByb2dyYW1taW5nLyBSbWFya2Rvd24vUXVhcnRvIikNCmNyb25vWzIsIDRdIDwtIGMoIlJldmlzw6NvIGRlIGPDs2RpZ28iKQ0KY3Jvbm9bMSwgNV0gPC0gYygiUHVibGljYcOnw6NvOiBQcmVwcmludHMsIHRpcG9zIGRlIGFjZXNzbyBhYmVydG8iKQ0KY3Jvbm9bMiwgNV0gPC0gYygiRXh0cmE6IERvY2tlcnMgZSBUYXJnZXQgLyBGaW5hbGl6YcOnw6NvIikNCg0KI0RUOjpkYXRhdGFibGUoY3Jvbm8sIGVkaXRhYmxlID0gImNlbGwiKQ0KYGBgDQoNCmBgYHtyLCBldmFsPVQsIGVjaG89RkFMU0V9DQpjcm9ubyB8Pg0KICBodG1sVGFibGU6OmFkZEh0bWxUYWJsZVN0eWxlKGNvbC5jb2x1bW5zID0gcmVwKGMoIiNFNkU2RjAiLCJub25lIiksIDMpKSB8Pg0KICBodG1sVGFibGU6Omh0bWxUYWJsZSgpDQpgYGANCg0KDQoqKk9CUyAxKio6IE8gaW7DrWNpbyBkYXMgYXVsYXMgbWF0aW5haXMgc2Vyw6EgYWJlcnRvIHBhcmEgZMO6dmlkYXMgZSBkaXNjdXNzw7VlcyBlbSBncnVwbyBzb2JyZSBhc3N1bnRvcyBkZSBkaWFzIGFudGVyaW9yZXMuIA0KDQoqKk9CUyAyKio6IE8gZmltIGRhcyBhdWxhcyB2ZXNwZXJ0aW5hcyAoMTYtMTdoKSB0YW1iw6ltIHNlcsOjbyBsaXZyZXMgcGFyYSBkaXNjdXNzw7VlcyBlIGTDunZpZGFzIGRlIHByb2pldG9zIGluZGl2aWR1YWlzLg0KDQojIFByZXBhcmHDp8OjbyBwcsOpLWF1bGEgZSBtYXRlcmlhaXMgcGFyYSBwcsOhdGljYXMNCg0KQXF1aSBhbGd1bWFzIGluZm9ybWHDp8O1ZXMgc29icmUgb3MgbWF0ZXJpYWlzIHV0aWxpemFkb3MgZHVyYW50ZSBlc3RhIGF1bGEsIG9zIHBhY290ZXMgZXN0YXTDrXN0aWNvcyBuZWNlc3PDoXJpb3MgcGFyYSByZWFsaXphciBhcyBhdGl2aWRhZGVzIHByw6F0aWNhcyBlIGFsZ3VtYXMgY29pc2FzIGltcG9ydGFudGVzIHBhcmEgZmF6ZXIgYW50ZXMgZG8gcHJpbWVpcm8gZGlhIGRlIGF1bGEuDQoNCiMjIFByb2dyYW1hcy9wbGF0YXJmb3JtYXMgdXRpbGl6YWRhczoNCg0KVm9jw6ogcHJlY2lzYXLDoSB0ZXIgaW5zdGFsYWRvIHByZXZpYW1lbnRlIGEgw7psdGltYSB2ZXJzw6NvIGRvIFtSXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy8pIGUgW1JzdHVkaW8gRGVza3RvcF0oaHR0cHM6Ly9wb3NpdC5jby9kb3dubG9hZHMvKSwgZSB0YW1iw6ltIGRldmVyw6EgdGVyIHVtYSBjb250YSBubyBbR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vcHJpY2luZykuIFRvZGFzIGFzIGZlcnJhbWVudGFzIHPDo28gZ3JhdHVpdGFzIG91IHTDqm0gdmVyc8OjbyBncmF0dWl0YS4gVHJhZ2Egc2V1IGNvbXB1dGFkb3IgcGFyYSBhcyBhdWxhcyAqKlRPRE9TIE9TIERJQVMqKiEgDQoNCiMjIERhZG9zDQoNCkNvbSBvIGludHVpdG8gZGUgbWFudGVyIG8gZm9jbyBuYSBjb21wcmVlbnPDo28gZG9zIGNvbmNlaXRvcyBlIHByb2Nlc3NvcyBxdWUgc2Vyw6NvIGVuc2luYWRvcywgcHJlZmVyaW1vcyB1dGlsaXphciB1bSBtYXRlcmlhbCDDum5pY28gY29tcGFydGlsaGFkbyBjb20gdG9kYSB0dXJtYS4gUGFyYSB0YW50byB2YW1vcyB1dGlsaXphciBjb25qdW50b3MgZGUgZGFkb3MgZGlzcG9uw612ZWlzIGVtIG91dHJvcyB0dXRvcmlhaXMgY29tbyBvIFtMaXZpbmcgTm9yd2F5IFByb2plY3RdKGh0dHBzOi8vbGl2aW5nbm9yd2F5LmdpdGh1Yi5pby9MaXZpbmdOb3J3YXlSL2FydGljbGVzL0xOV29ya3Nob3BFeGFtcGxlX1RPVi1FLmh0bWwpLCBvcyBkYWRvcyBkbyBwYWNvdGUgW0VNTF0oaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL0VNTC90cmVlL21hc3Rlci9pbnN0L2V4YW1wbGVzKSBlIHVtIGNvbmp1bnRvIGRlIGRhZG9zIGNoYW1hZG8gKipQYWxtZXIgUGVuZ3VpbnMqKi4gVG9kb3Mgb3MgZGFkb3MgasOhIGVzdMOjbyBwcmVzZW50ZXMgbm8gcmVwb3NpdMOzcmlvIGRlc3RlIGN1cnNvLCBwb3J0YW50bywgdHVkbyBxdWUgdm9jw6ogZGV2ZSBmYXplciDDqSBvIGRvd25sb2FkIGRlc3RlIHJlcG9zaXTDs3JpbyBwYXJhIG8gc2V1IGNvbXB1dGFkb3IuDQoNCg0KUGFyYSBmYXplciBvIGRvd25sb2FkIGRlc3RlIHJlcG9zaXTDs3JpbyDDqSBzw7MgY2xpY2FyIG5lc3RlIGJvdMOjbw0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRX0NCg0KZG93bmxvYWR0aGlzOjpkb3dubG9hZF9saW5rKA0KICBsaW5rID0gImh0dHBzOi8vZ2l0aHViLmNvbS9HYWJyaWVsTmFrYW11cmEvVVNQX3JlcHJvZHVjaWJpbGl0eV9CSUU1Nzk4L2FyY2hpdmUvcmVmcy9oZWFkcy9tYXN0ZXIuemlwIiwNCiAgYnV0dG9uX2xhYmVsID0gIkRvd25sb2FkIGRvIHJlcG9zaXTDs3JpbyIsDQogIGJ1dHRvbl90eXBlID0gImRhbmdlciIsDQogIGhhc19pY29uID0gVFJVRSwNCiAgaWNvbiA9ICJmYSBmYS1zYXZlIiwNCiAgc2VsZl9jb250YWluZWQgPSBGQUxTRQ0KKQ0KYGBgDQoNCg0K
+
LS0tDQp0aXRsZTogIkJvYXMgUHLDoXRpY2FzIGUgRmVycmFtZW50YXMgZGEgQ2nDqm5jaWEgQWJlcnRhIG5hIEVjb2xvZ2lhIC0gQklFNTc5OCINCi0tLQ0KDQojIEFwcmVzZW50YcOnw6NvDQoNCk9sw6EhDQoNCk9icmlnYWRvIHBlbG8gaW50ZXJlc3NlIGVtIHBhcnRpY2lwYXIgZGEgZGlzY2lwbGluYSAiQm9hcyBQcsOhdGljYXMgZSBGZXJyYW1lbnRhcyBkYSBDacOqbmNpYSBBYmVydGEgbmEgRWNvbG9naWEgLSBCSUU1Nzk4IiwgcXVlIHNlcsOhIG1pbmlzdHJhZGEgZW50cmUgb3MgZGlhcyAqKjA4LCAxMCwgMTIsIDE1IGUgMTcgZGUgSnVsaG8gZGUgMjAyNCoqIG5vIERlcGFydGFtZW50byBkZSBFY29sb2dpYSwgSUItVVNQLCBTw6NvIFBhdWxvLiBOZXN0YSBkaXNjaXBsaW5hIHNlcsOjbyBhYm9yZGFkb3MgY29uY2VpdG9zIHRlw7NyaWNvcywgdGVuZMOqbmNpYXMgZSBmZXJyYW1lbnRhcyBwcsOhdGljYXMgcGFyYSBkZXNlbnZvbHZlciBwZXNxdWlzYXMgcXVlIHbDo28gYW8gZW5jb250cm8gZG9zIHByaW5jw61waW9zIGUgbW92aW1lbnRvIGRhIGNpw6puY2lhIGFiZXJ0YS4gDQoNCkVzdGUgc8OtdGlvIHNlcnZpcsOhIGNvbW8gdW0gZ3VpYSBwYXJhIG5vc3NhcyBhdWxhcy4gTmVsZSB2b2PDqnMgZW5jb250cmFyw6NvIG9zIG1hdGVyaWFpcyBuZWNlc3PDoXJpb3MgKFtkYWRvc10oaHR0cHM6Ly9naXRodWIuY29tL0dhYnJpZWxOYWthbXVyYS9VU1BfcmVwcm9kdWNpYmlsaXR5X0JJRTU3OTgpKSBiZW0gY29tbyBvcyBzY3JpcHRzIHF1ZSB1dGlsaXphcmVtb3MgZHVyYW50ZSBhcyBhdWxhcyBwYXJhIGFzIGF0aXZpZGFkZXMgcHLDoXRpY2FzLiBBaCEgTyBzaXRlIGNvbnRpbnVhcsOhIGZ1bmNpb25hbmRvIGFww7NzIG8gdMOpcm1pbm8gZGEgZGlzY2lwbGluYSwgcG9ydGFudG8sIHNlbXByZSBxdWUgdGl2ZXIgYWxndW1hIGTDunZpZGEgw6kgc8OzIHZvbHRhciBhcXVpIGUgcmV2aXNpdGFyIG8gcXVlIHZpbW9zIG5hcyBhdWxhcy4NCg0KIyBNaW5pc3RyYW50ZXMNCg0KTyBjdXJzbyBzZXLDoSBtaW5pc3RyYWRvIHBvciBNZWxpbmEgTGVpdGUgZSBHYWJyaWVsIE5ha2FtdXJhLg0KDQoNCiMjIE1lbGluYQ0KDQpgYGB7ciBlY2hvPUZBTFNFLGV2YWw9VFJVRSxvdXQud2lkdGg9IjIwJSJ9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiZmlncy9tZWxpbmEtZm90by5wbmciKQ0KYGBgDQoNClNvdSBlY8OzbG9nYSBlIGNpZW50aXN0YSBkZSBkYWRvcyBubyBkZXBhcnRhbWVudG8gZGUgRWNvbG9naWEgZGEgVVNQLiBUZW5obyBncmFkdWHDp8OjbyBlbSBiaW9sb2dpYSAoVUZSSiksIG1lc3RyYWRvIChVRlJKKSBlIGRvdXRvcmFkbyBlbSBFY29sb2dpYSAoVVNQKS4gQWN1bXVsZWkgdGFtYsOpbSB1bSBNQkEgZW0gR2VzdMOjbyBBbWJpZW50YWwgKFBvbGktVVNQKSBlIE1CQSBlbSBDacOqbmNpYSBkZSBEYWRvcyAoRVNBTFEtVVNQKS4gQW8gbG9uZ28gZG9zIGFub3MgdHJhYmFsaGVpIGVtIGRpZmVyZW50ZXMgw6FyZWFzIGRhIGVjb2xvZ2lhIGUgYmlvbG9naWEgZGEgY29uc2VydmHDp8OjbyBjb21vIGVjb2xvZ2lhIGRhIHBhaXNhZ2VtLCBkZSBjb211bmlkYWRlcywgZGUgcG9wdWxhw6fDtWVzIGUgZWNvbG9naWEgYXBsaWNhZGEuIFRlbmhvIGJhc3RhbnRlIGludGVyZXNzZSBuYSBhcGxpY2HDp8OjbyBtw6l0b2RvcyBlc3RhdMOtc3RpY29zIHBhcmEgZGVzY29iZXJ0YXMgZWNvbMOzZ2ljYXMgKG1vZGVsb3MgbWlzdG9zIHPDo28gbWV1IHhvZMOzKS4gQWRvcm8gZXNjYWxhZGEsIHRyaWxoYXMgZSBlc3BvcnRlcyBkZSBhdmVudHVyYSBubyBnZXJhbCEgQWgsIGUgc291IHVtYSBlbnR1c2lhc3RhIGRvIG1vdmltZW50byBkYSAqKkNpw6puY2lhIEFiZXJ0YSoqISEgDQoNClBhcmEgbWUgYWNoYXIgZSBzYWJlciBtYWlzIHNvYnJlIG1pbSwgdmVqYSBtZXUgW3NpdGVdKGh0dHBzOi8vbWVsaW5hbGVpdGUud2VlYmx5LmNvbS8pLg0KDQoNCiMjIEdhYnJpZWwNCg0KYGBge3IgZWNobz1GQUxTRSxldmFsPVRSVUUsb3V0LndpZHRoPSIyMCUifQ0Ka25pdHI6OmluY2x1ZGVfZ3JhcGhpY3MoImZpZ3MvZ2FicmllbC1hdmF0YXIuanBnIikNCmBgYA0KDQpHYWJyaWVsIMOpIGZvcm1hZG8gZW0gbGljZW5jaWF0dXJhIGVtIENpw6puY2lhcyBCaW9sw7NnaWNhcyAoYXBlc2FyIGRhIGTDunZpZGEgZW50cmUgQ2nDqm5jaWFzIFNvY2lhaXMgZSBIaXN0w7NyaWEpLCBmZXogYWxndW1hcyBhbmRhbsOnYXMgZGUgZGlmw61jaWwgcmVwcm9kdXRpYmlsaWRhZGUgcGFyYSBvYnRlciBvIG1lc3RyYWRvIChFY29sb2dpYSBlIENvbnNlcnZhw6fDo28gVUZNUykgZSBkb3V0b3JhZG8gKEVjb2xvZ2lhIFVGUkdTKS4gQXDDs3MgdW0gdGVtcG8gZm9yYSAocG9zZG9jIFRleGFzIEEmTSBVbml2ZXJzaXR5KSwgYSBzYXVkYWRlIGRvIHBlcXVpIGUgZGEgZ3Vhcmlyb2JhIGRvIGNlcnJhZG8gZmFsb3UgbWFpcyBhbHRvIGUgcmV0b3Jub3UgY29tbyBwb3Nkb2MgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgR29pw6FzIG5vIElOQ1QtRUVDQmlvLiBBdHVhbG1lbnRlIMOpIHBvc2RvYyBuYSBVbml2ZXJzaWRhZGUgZGUgU8OjbyBQYXVsby4gVmVtIGRlc2Vudm9sdmVuZG8gIG3DqXRvZG9zIGUgZmVycmFtZW50YXMgZXN0YXTDrXN0aWNhcyBlbSBlY29sb2dpYSBkZSBjb211bmlkYWRlcywgbWFjcm9lY29sb2dpYSBlIG1hY3JvZXZvbHXDp8Ojby4gVGVtIGludGVyZXNzZSB0YW1iw6ltIGVtIGVudGVuZGVyIG9zIHZpw6lzZXMgZGEgZGluw6JtaWNhIGRlIHByb2R1w6fDo28gY2llbnTDrWZpY2EuIFtBcXVpXShodHRwOi8vbGF0dGVzLmNucHEuYnIvMjQ1NjUxNTk0ODA0OTU2NSkgdW0gcG91cXVpbmhvIG1haXMgZG8gcXVlIHZlbmhvIGRlc2Vudm9sdmVuZG8uDQoNCg0KIyBDcm9ub2dyYW1hIGRhcyBhdWxhcw0KDQpBYmFpeG8gZXN0w6EgbyBjcm9ub2dyYW1hIGRhcyBhdWxhcyBxdWUgaXJlbW9zIHNlZ3Vpci4gQWxndW1hcyBjb2lzYXMgcG9kZW0gbXVkYXIgKG1haXMgb3UgbWVub3MgdGVtcG8gZ2FzdG8pIGRlcGVuZGVuZG8gZG8gYW5kYW1lbnRvIGRhcyBhdGl2aWRhZGVzIHByw6F0aWNhcy4NCg0KYGBge3IsIGV2YWw9VCwgZWNobz1GQUxTRX0NCmxpYnJhcnkoZ2x1ZSkNCmxpbmtfb3JnX2xvY2FsIDwtIGdsdWU6OmdsdWUoImBbbGluayBhdWxhXShodHRwczovL2dhYnJpZWxuYWthbXVyYS5naXRodWIuaW8vVVNQX0JJRTU3OThfYXByZXNlbnRhY29lcy8jMjEpYCIpDQoNCmBgYA0KDQoNCmBgYHtyLCBldmFsPVQsIGVjaG89RkFMU0V9DQpjcm9ubyA8LSBzdXBwcmVzc1dhcm5pbmdzKHJlYWQuY3N2KCJjcm9ub2dyYW1hLmNzdiIsIGhlYWRlciA9IFQsIHNlcCA9ICIsIikpICANCnJvd25hbWVzKGNyb25vKSA8LSBjKCJNYW5ow6MgXG4gOS0xMmgiLCAiVGFyZGUgXG4gMTQtMTdoIikNCmNvbG5hbWVzKGNyb25vKSA8LSBwYXN0ZShjKDgsIDEwLCAxMiwgMTUsIDE3KSwgKCJKdWwiKSwgc2VwID0gIiAiKQ0KY3Jvbm9bMSwgMV0gPC0gYygiQ2nDqm5jaWEgQWJlcnRhICsgQXByZXNlbnRhw6fDo28gZGEgZGlzY2lwbGluYSIpDQpjcm9ub1syLCAxXSA8LSBjKCJEYWRvcyBhYmVydG9zOiBwbGFubyBkZSBnZXN0w6NvLCBvcmdhbml6YcOnw6NvLCBtZXRhZGFkb3MsIHB1YmxpY2HDp8OjbyIpDQpjcm9ub1sxLCAyXSA8LSBjKCJPcmdhbml6YcOnw6NvIGxvY2FsIGRlIHByb2pldG9zOiBwYXN0YXMsIHNjcmlwdHMgbGltcG9zIikNCmNyb25vWzIsIDJdIDwtIGMoIkNvbnRyb2xlIGRlIHZlcnPDo28iKQ0KY3Jvbm9bMSwgM10gPC0gYygiR2l0LCBHaXRodWIsIGludGVncmHDp8OjbyIpDQpjcm9ub1syLCAzXSA8LSBjKCJQcsOhdGljYSBlbSBjb250cm9sZSBkZSB2ZXJzw6NvLyBBw6fDtWVzIGLDoXNpY2FzIikNCiNjcm9ub1sxLCA0XSA8LSBjKCJQcsOhdGljYSBlbSBjb250cm9sZSBkZSB2ZXJzw6NvLyBGb3JrcywgY29tbWl0cywgcHVsbCByZXF1ZXN0cyIpDQojY3Jvbm9bMiwgNF0gPC0gYygiUHLDoXRpY2EgZW0gY29udHJvbGUgZGUgdmVyc8Ojby8gRm9ya3MsIGNvbW1pdHMsIHB1bGwgcmVxdWVzdHMvIFBhY290ZXMiKQ0KY3Jvbm9bMSwgNF0gPC0gYygiTGl0ZXJhdGUgcHJvZ3JhbW1pbmcvIFJtYXJrZG93bi9RdWFydG8iKQ0KY3Jvbm9bMiwgNF0gPC0gYygiUmV2aXPDo28gZGUgY8OzZGlnbyIpDQpjcm9ub1sxLCA1XSA8LSBjKCJQdWJsaWNhw6fDo286IFByZXByaW50cywgdGlwb3MgZGUgYWNlc3NvIGFiZXJ0byIpDQpjcm9ub1syLCA1XSA8LSBjKCJFeHRyYTogRG9ja2VycyBlIFRhcmdldCAvIEZpbmFsaXphw6fDo28iKQ0KDQojRFQ6OmRhdGF0YWJsZShjcm9ubywgZWRpdGFibGUgPSAiY2VsbCIpDQpgYGANCg0KYGBge3IsIGV2YWw9VCwgZWNobz1GQUxTRX0NCmNyb25vIHw+DQogIGh0bWxUYWJsZTo6YWRkSHRtbFRhYmxlU3R5bGUoY29sLmNvbHVtbnMgPSByZXAoYygiI0U2RTZGMCIsIm5vbmUiKSwgMykpIHw+DQogIGh0bWxUYWJsZTo6aHRtbFRhYmxlKCkNCmBgYA0KDQoNCioqT0JTIDEqKjogTyBpbsOtY2lvIGRhcyBhdWxhcyBtYXRpbmFpcyBzZXLDoSBhYmVydG8gcGFyYSBkw7p2aWRhcyBlIGRpc2N1c3PDtWVzIGVtIGdydXBvIHNvYnJlIGFzc3VudG9zIGRlIGRpYXMgYW50ZXJpb3Jlcy4gDQoNCioqT0JTIDIqKjogTyBmaW0gZGFzIGF1bGFzIHZlc3BlcnRpbmFzICgxNi0xN2gpIHRhbWLDqW0gc2Vyw6NvIGxpdnJlcyBwYXJhIGRpc2N1c3PDtWVzIGUgZMO6dmlkYXMgZGUgcHJvamV0b3MgaW5kaXZpZHVhaXMuDQoNCiMgUHJlcGFyYcOnw6NvIHByw6ktYXVsYSBlIG1hdGVyaWFpcyBwYXJhIHByw6F0aWNhcw0KDQpBcXVpIGFsZ3VtYXMgaW5mb3JtYcOnw7VlcyBzb2JyZSBvcyBtYXRlcmlhaXMgdXRpbGl6YWRvcyBkdXJhbnRlIGVzdGEgYXVsYSwgb3MgcGFjb3RlcyBlc3RhdMOtc3RpY29zIG5lY2Vzc8OhcmlvcyBwYXJhIHJlYWxpemFyIGFzIGF0aXZpZGFkZXMgcHLDoXRpY2FzIGUgYWxndW1hcyBjb2lzYXMgaW1wb3J0YW50ZXMgcGFyYSBmYXplciBhbnRlcyBkbyBwcmltZWlybyBkaWEgZGUgYXVsYS4NCg0KIyMgUHJvZ3JhbWFzL3BsYXRhcmZvcm1hcyB1dGlsaXphZGFzOg0KDQpWb2PDqiBwcmVjaXNhcsOhIHRlciBpbnN0YWxhZG8gcHJldmlhbWVudGUgYSDDumx0aW1hIHZlcnPDo28gZG8gW1JdKGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnLykgZSBbUnN0dWRpbyBEZXNrdG9wXShodHRwczovL3Bvc2l0LmNvL2Rvd25sb2Fkcy8pLCBlIHRhbWLDqW0gZGV2ZXLDoSB0ZXIgdW1hIGNvbnRhIG5vIFtHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmljaW5nKS4gVG9kYXMgYXMgZmVycmFtZW50YXMgc8OjbyBncmF0dWl0YXMgb3UgdMOqbSB2ZXJzw6NvIGdyYXR1aXRhLiBUcmFnYSBzZXUgY29tcHV0YWRvciBwYXJhIGFzIGF1bGFzICoqVE9ET1MgT1MgRElBUyoqISANCg0KIyMgRGFkb3MNCg0KQ29tIG8gaW50dWl0byBkZSBtYW50ZXIgbyBmb2NvIG5hIGNvbXByZWVuc8OjbyBkb3MgY29uY2VpdG9zIGUgcHJvY2Vzc29zIHF1ZSBzZXLDo28gZW5zaW5hZG9zLCBwcmVmZXJpbW9zIHV0aWxpemFyIHVtIG1hdGVyaWFsIMO6bmljbyBjb21wYXJ0aWxoYWRvIGNvbSB0b2RhIHR1cm1hLiBQYXJhIHRhbnRvIHZhbW9zIHV0aWxpemFyIGNvbmp1bnRvcyBkZSBkYWRvcyBkaXNwb27DrXZlaXMgZW0gb3V0cm9zIHR1dG9yaWFpcyBjb21vIG8gW0xpdmluZyBOb3J3YXkgUHJvamVjdF0oaHR0cHM6Ly9saXZpbmdub3J3YXkuZ2l0aHViLmlvL0xpdmluZ05vcndheVIvYXJ0aWNsZXMvTE5Xb3Jrc2hvcEV4YW1wbGVfVE9WLUUuaHRtbCksIG9zIGRhZG9zIGRvIHBhY290ZSBbRU1MXShodHRwczovL2dpdGh1Yi5jb20vcm9wZW5zY2kvRU1ML3RyZWUvbWFzdGVyL2luc3QvZXhhbXBsZXMpIGUgdW0gY29uanVudG8gZGUgZGFkb3MgY2hhbWFkbyAqKlBhbG1lciBQZW5ndWlucyoqLiBUb2RvcyBvcyBkYWRvcyBqw6EgZXN0w6NvIHByZXNlbnRlcyBubyByZXBvc2l0w7NyaW8gZGVzdGUgY3Vyc28sIHBvcnRhbnRvLCB0dWRvIHF1ZSB2b2PDqiBkZXZlIGZhemVyIMOpIG8gZG93bmxvYWQgZGVzdGUgcmVwb3NpdMOzcmlvIHBhcmEgbyBzZXUgY29tcHV0YWRvci4NCg0KDQpQYXJhIGZhemVyIG8gZG93bmxvYWQgZGVzdGUgcmVwb3NpdMOzcmlvIMOpIHPDsyBjbGljYXIgbmVzdGUgYm90w6NvDQoNCmBgYHtyIGVjaG89RkFMU0UsZXZhbD1UUlVFfQ0KDQpkb3dubG9hZHRoaXM6OmRvd25sb2FkX2xpbmsoDQogIGxpbmsgPSAiaHR0cHM6Ly9naXRodWIuY29tL0dhYnJpZWxOYWthbXVyYS9VU1BfcmVwcm9kdWNpYmlsaXR5X0JJRTU3OTgvYXJjaGl2ZS9yZWZzL2hlYWRzL21hc3Rlci56aXAiLA0KICBidXR0b25fbGFiZWwgPSAiRG93bmxvYWQgZG8gcmVwb3NpdMOzcmlvIiwNCiAgYnV0dG9uX3R5cGUgPSAiZGFuZ2VyIiwNCiAgaGFzX2ljb24gPSBUUlVFLA0KICBpY29uID0gImZhIGZhLXNhdmUiLA0KICBzZWxmX2NvbnRhaW5lZCA9IEZBTFNFDQopDQpgYGANCg0KDQo=
diff --git a/intro_ciencia_aberta.html b/intro_ciencia_aberta.html index 93dcb23..d97f660 100644 --- a/intro_ciencia_aberta.html +++ b/intro_ciencia_aberta.html @@ -11,7 +11,7 @@ - + O que é Ciência Aberta? @@ -444,7 +444,7 @@

O que é Ciência Aberta?

Melina Leite

-

2024-07-08

+

2024-07-09

diff --git a/metadata_EML.html b/metadata_EML.html index 668e7cd..70a79e3 100644 --- a/metadata_EML.html +++ b/metadata_EML.html @@ -11,7 +11,7 @@ - + Metadados @@ -448,7 +448,7 @@

Metadados

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/pre-registro.html b/pre-registro.html index 92b9cac..d35c0de 100644 --- a/pre-registro.html +++ b/pre-registro.html @@ -11,7 +11,7 @@ - + Pré-registro de projetos científicos @@ -444,7 +444,7 @@

Pré-registro de projetos científicos

Melina Leite

-

2024-07-08

+

2024-07-09

diff --git a/publicacoes.html b/publicacoes.html index 06a8069..c48bcc0 100644 --- a/publicacoes.html +++ b/publicacoes.html @@ -11,7 +11,7 @@ - + Acesso aberto a publicações científicas @@ -445,7 +445,7 @@

Acesso aberto a publicações científicas

Melina Leite

-

2024-07-08

+

2024-07-09

diff --git a/releasing.html b/releasing.html index 91d9eeb..3a2f158 100644 --- a/releasing.html +++ b/releasing.html @@ -11,7 +11,7 @@ - + Releasing @@ -444,7 +444,7 @@

Releasing

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/renv-basics.html b/renv-basics.html index 2ac4c5f..27cbd90 100644 --- a/renv-basics.html +++ b/renv-basics.html @@ -11,7 +11,7 @@ - + Ambiente reprodutível com ‘Renv’ @@ -545,7 +545,7 @@

Ambiente reprodutível com ‘Renv’

Melina Leite

-

2024-07-08

+

2024-07-09

diff --git a/rmarkdown-basics.html b/rmarkdown-basics.html index ac0031f..1aaf99a 100644 --- a/rmarkdown-basics.html +++ b/rmarkdown-basics.html @@ -11,7 +11,7 @@ - + R markdown @@ -546,7 +546,7 @@

R markdown

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/rocker_basics.html b/rocker_basics.html index 808097a..0d6916c 100644 --- a/rocker_basics.html +++ b/rocker_basics.html @@ -11,7 +11,7 @@ - + Containers @@ -448,7 +448,7 @@

Containers

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/sites-basics.html b/sites-basics.html index be66f6a..9a86240 100644 --- a/sites-basics.html +++ b/sites-basics.html @@ -11,7 +11,7 @@ - + R markdown @@ -545,7 +545,7 @@

R markdown

Gabriel Nakamura

-

2024-07-08

+

2024-07-09

diff --git a/targets_basics.html b/targets_basics.html index b53c755..b963ce4 100644 --- a/targets_basics.html +++ b/targets_basics.html @@ -11,7 +11,7 @@ - + Pipelines com targets @@ -549,7 +549,7 @@

Pipelines com targets

Gabriel Nakamura

-

2024-07-08

+

2024-07-09