f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAYCQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGNpcGhlcjsKcGtncGF0aCBjcnlwdG8vY2lwaGVyOwpwcmlvcml0eSA0OwppbXBvcnQgc3VidGxlIGNyeXB0by9zdWJ0bGUgImNyeXB0by9zdWJ0bGUiOwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCBydW50aW1lIHJ1bnRpbWUgInJ1bnRpbWUiOwppbXBvcnQgdW5zYWZlIHVuc2FmZSAidW5zYWZlIjsKaW5pdCBjaXBoZXIgY3J5cHRvX2NpcGhlci4uaW1wb3J0IDQgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMzsKdHlwZSA8dHlwZSAxICJBRUFEIiA8dHlwZSAyIGludGVyZmFjZSB7IE5vbmNlU2l6ZSAoKSA8dHlwZSAtMTE+OyBPdmVyaGVhZCAoKSA8dHlwZSAtMTE+OyBTZWFsIChkc3QgPHR5cGUgMyBbXSA8dHlwZSAtMjA+Piwgbm9uY2UgPHR5cGUgMz4sIHBsYWludGV4dCA8dHlwZSAzPiwgZGF0YSA8dHlwZSAzPikgPHR5cGUgNCBbXSA8dHlwZSAtMjA+PjsgT3BlbiAoZHN0IDx0eXBlIDUgW10gPHR5cGUgLTIwPj4sIG5vbmNlIDx0eXBlIDU+LCBjaXBoZXJ0ZXh0IDx0eXBlIDU+LCBkYXRhIDx0eXBlIDU+KSAoPyA8dHlwZSA2IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOyB9Pj47CnR5cGUgPHR5cGUgNyAiQmxvY2siIDx0eXBlIDggaW50ZXJmYWNlIHsgQmxvY2tTaXplICgpIDx0eXBlIC0xMT47IEVuY3J5cHQgKGRzdCA8dHlwZSA5IFtdIDx0eXBlIC0yMD4+LCBzcmMgPHR5cGUgOT4pOyBEZWNyeXB0IChkc3QgPHR5cGUgMTAgW10gPHR5cGUgLTIwPj4sIHNyYyA8dHlwZSAxMD4pOyB9Pj47CnR5cGUgPHR5cGUgMTEgIkJsb2NrTW9kZSIgPHR5cGUgMTIgaW50ZXJmYWNlIHsgQmxvY2tTaXplICgpIDx0eXBlIC0xMT47IENyeXB0QmxvY2tzIChkc3QgPHR5cGUgMTMgW10gPHR5cGUgLTIwPj4sIHNyYyA8dHlwZSAxMz4pOyB9Pj47CmZ1bmMgTmV3Q0JDRGVjcnlwdGVyIChiIDx0eXBlIDc+LCBpdiA8dHlwZSAxNCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgMTE+OwpmdW5jIE5ld0NCQ0VuY3J5cHRlciAoYiA8dHlwZSA3PiwgaXYgPHR5cGUgMTUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDExPjsKZnVuYyBOZXdDRkJEZWNyeXB0ZXIgKGJsb2NrIDx0eXBlIDc+LCBpdiA8dHlwZSAxNiBbXSA8dHlwZSAtMjA+PikgPHR5cGUgMTcgIlN0cmVhbSIgPHR5cGUgMTggaW50ZXJmYWNlIHsgWE9SS2V5U3RyZWFtIChkc3QgPHR5cGUgMTkgW10gPHR5cGUgLTIwPj4sIHNyYyA8dHlwZSAxOT4pOyB9Pj47CmZ1bmMgTmV3Q0ZCRW5jcnlwdGVyIChibG9jayA8dHlwZSA3PiwgaXYgPHR5cGUgMjAgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDE3PjsKZnVuYyBOZXdDVFIgKGJsb2NrIDx0eXBlIDc+LCBpdiA8dHlwZSAyMSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgMTc+OwpmdW5jIE5ld0dDTSAoY2lwaGVyIDx0eXBlIDc+KSAoPyA8dHlwZSAxPiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBOZXdPRkIgKGIgPHR5cGUgNz4sIGl2IDx0eXBlIDIyIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAxNz47CnR5cGUgPHR5cGUgMTc+Owp0eXBlIDx0eXBlIDIzICJTdHJlYW1SZWFkZXIiIDx0eXBlIDI0IHN0cnVjdCB7IFMgPHR5cGUgMTc+OyBSIDx0eXBlIDI1ICJpby5SZWFkZXIiIDx0eXBlIDI2IGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgMjcgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyB9PgogZnVuYyAociA8dHlwZSAyMz4pIFJlYWQgKGRzdCA8dHlwZSAyOCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwo+Owp0eXBlIDx0eXBlIDI5ICJTdHJlYW1Xcml0ZXIiIDx0eXBlIDMwIHN0cnVjdCB7IFMgPHR5cGUgMTc+OyBXIDx0eXBlIDMxICJpby5Xcml0ZXIiIDx0eXBlIDMyIGludGVyZmFjZSB7IFdyaXRlIChwIDx0eXBlIDMzIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsgRXJyIDx0eXBlIC0xOT47IH0+CiBmdW5jICh3IDx0eXBlIDI5PikgV3JpdGUgKHNyYyA8dHlwZSAzNCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodyA8dHlwZSAyOT4pIENsb3NlICgpIDx0eXBlIC0xOT47Cj47CmNoZWNrc3VtIERGRTlCNTA1MzlGNjhFN0ZBNUQyQTc1QjE0ODYzOEFDNTcxRThENUU7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAlwgAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAywgAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAPQIAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAUCQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=