{"url":"https://api.github.com/repos/dvershinin/lastversion/releases/300815000","assets_url":"https://api.github.com/repos/dvershinin/lastversion/releases/300815000/assets","upload_url":"https://uploads.github.com/repos/dvershinin/lastversion/releases/300815000/assets{?name,label}","html_url":"https://github.com/dvershinin/lastversion/releases/tag/v3.6.10","id":300815000,"author":{"login":"dvershinin","id":250071,"node_id":"MDQ6VXNlcjI1MDA3MQ==","avatar_url":"https://avatars.githubusercontent.com/u/250071?v=4","gravatar_id":"","url":"https://api.github.com/users/dvershinin","html_url":"https://github.com/dvershinin","followers_url":"https://api.github.com/users/dvershinin/followers","following_url":"https://api.github.com/users/dvershinin/following{/other_user}","gists_url":"https://api.github.com/users/dvershinin/gists{/gist_id}","starred_url":"https://api.github.com/users/dvershinin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dvershinin/subscriptions","organizations_url":"https://api.github.com/users/dvershinin/orgs","repos_url":"https://api.github.com/users/dvershinin/repos","events_url":"https://api.github.com/users/dvershinin/events{/privacy}","received_events_url":"https://api.github.com/users/dvershinin/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOCycuFc4R7hKY","tag_name":"v3.6.10","target_commitish":"master","name":"v3.6.10","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-03-24T17:47:51Z","updated_at":"2026-03-24T17:48:08Z","published_at":"2026-03-24T17:48:08Z","assets":["https://github.com/dvershinin/lastversion/archive/v3.6.10/lastversion-v3.6.10.tar.gz"],"tarball_url":"https://api.github.com/repos/dvershinin/lastversion/tarball/v3.6.10","zipball_url":"https://api.github.com/repos/dvershinin/lastversion/zipball/v3.6.10","body":"## What's Changed\n\n### Bug Fixes\n- Replace debug `print()` calls in `update_spec`/`update_spec_commit`/`pypi` with proper logging — these were writing to stdout and breaking automation scripts that parse `lastversion` output\n- Add error logging to 4 bare `except Exception` blocks that silently discarded errors in changelog generation, AI changelog, and release notes collection\n- Narrow `ai.py` exception handling to specific types (`RequestException`, `ValueError`, `KeyError`)\n- Replace deprecated `datetime.utcnow()` with `datetime.now(timezone.utc)` (fixes DeprecationWarning on Python 3.12+)\n\n### Improvements\n- Unify flake8 max-line-length to 120 across `setup.cfg`, CI, and pre-commit configs\n- Add Python 3.13 classifier to `setup.py`\n- Add RapidAPI badge and API teaser to README for better API discoverability","tag_date":"2026-03-24 17:48:08+00:00","version":"3.6.10","type":"release","install_name":"lastversion","v_prefix":true,"source":"github","spec_tag":"v%{version}","spec_tag_no_prefix":"%{version}","license":{"name":"LICENSE","path":"LICENSE","sha":"e6668d3c53122b723471a4f7df05a69dec13fdb7","size":1326,"url":"https://api.github.com/repos/dvershinin/lastversion/contents/LICENSE?ref=v3.6.10","html_url":"https://github.com/dvershinin/lastversion/blob/v3.6.10/LICENSE","git_url":"https://api.github.com/repos/dvershinin/lastversion/git/blobs/e6668d3c53122b723471a4f7df05a69dec13fdb7","download_url":"https://raw.githubusercontent.com/dvershinin/lastversion/v3.6.10/LICENSE","type":"file","content":"QlNEIDItQ2xhdXNlIExpY2Vuc2UKCkNvcHlyaWdodCAoYykgMjAxOSwgRGFu\naWxhIFZlcnNoaW5pbgpBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmli\ndXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0\naCBvciB3aXRob3V0Cm1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92\naWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoK\nMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu\nIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgIGxpc3Qgb2Yg\nY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgoKMi4g\nUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl\nIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAogICB0aGlzIGxpc3Qgb2Yg\nY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo\nZSBkb2N1bWVudGF0aW9uCiAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv\ndmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgoKVEhJUyBTT0ZUV0FSRSBJ\nUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS\nSUJVVE9SUyAiQVMgSVMiCkFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB\nUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK\nSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU\nTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCkRJU0NMQUlNRUQu\nIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENP\nTlRSSUJVVE9SUyBCRSBMSUFCTEUKRk9SIEFOWSBESVJFQ1QsIElORElSRUNU\nLCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF\nTlRJQUwKREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s\nIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKU0VSVklDRVM7\nIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ\nTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ\nIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ\nQUJJTElUWSwKT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI\nRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKT0Yg\nVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ\nTElUWSBPRiBTVUNIIERBTUFHRS4K\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/dvershinin/lastversion/contents/LICENSE?ref=v3.6.10","git":"https://api.github.com/repos/dvershinin/lastversion/git/blobs/e6668d3c53122b723471a4f7df05a69dec13fdb7","html":"https://github.com/dvershinin/lastversion/blob/v3.6.10/LICENSE"},"license":{"key":"bsd-2-clause","name":"BSD 2-Clause \"Simplified\" License","spdx_id":"BSD-2-Clause","url":"https://api.github.com/licenses/bsd-2-clause","node_id":"MDc6TGljZW5zZTQ="}},"readme":{"name":"README.md","path":"README.md","sha":"9e7773467dc2c3b34dbb963ba88b833283e166c3","size":27676,"url":"https://api.github.com/repos/dvershinin/lastversion/contents/README.md?ref=v3.6.10","html_url":"https://github.com/dvershinin/lastversion/blob/v3.6.10/README.md","git_url":"https://api.github.com/repos/dvershinin/lastversion/git/blobs/9e7773467dc2c3b34dbb963ba88b833283e166c3","download_url":"https://raw.githubusercontent.com/dvershinin/lastversion/v3.6.10/README.md","type":"file","content":"IyBsYXN0dmVyc2lvbgoKWyFbUHl0aG9uIHBhY2thZ2VdKGh0dHBzOi8vZ2l0\naHViLmNvbS9kdmVyc2hpbmluL2xhc3R2ZXJzaW9uL2FjdGlvbnMvd29ya2Zs\nb3dzL3B5dGhvbnBhY2thZ2UueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0\naHViLmNvbS9kdmVyc2hpbmluL2xhc3R2ZXJzaW9uL2FjdGlvbnMvd29ya2Zs\nb3dzL3B5dGhvbnBhY2thZ2UueW1sKQpbIVtQeVBJIHZlcnNpb25dKGh0dHBz\nOi8vYmFkZ2UuZnVyeS5pby9weS9sYXN0dmVyc2lvbi5zdmcpXShodHRwczov\nL2JhZGdlLmZ1cnkuaW8vcHkvbGFzdHZlcnNpb24pClshW0dpdEh1YiBSZWxl\nYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2R5bmFtaWMvanNv\nbj91cmw9aHR0cHMlM0ElMkYlMkZsYXN0dmVyc2lvbi1hcGkuZ2V0cGFnZXNw\nZWVkLmNvbSUyRmR2ZXJzaGluaW4lMkZsYXN0dmVyc2lvbiZxdWVyeT12ZXJz\naW9uJmxhYmVsPVJlbGVhc2UpXShodHRwczovL2dpdGh1Yi5jb20vZHZlcnNo\naW5pbi9sYXN0dmVyc2lvbi9yZWxlYXNlcykKWyFbRG9jdW1lbnRhdGlvbiBT\ndGF0dXNdKGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL2xhc3R2\nZXJzaW9uL2JhZGdlLz92ZXJzaW9uPWxhdGVzdCldKGh0dHBzOi8vbGFzdHZl\ncnNpb24uZ2V0cGFnZXNwZWVkLmNvbS9lbi9sYXRlc3QvP2JhZGdlPWxhdGVz\ndCkKWyFbQ29kYWN5IEJhZGdlXShodHRwczovL2FwaS5jb2RhY3kuY29tL3By\nb2plY3QvYmFkZ2UvR3JhZGUvMzgwZTNhMzhkYzUyNDExMmI0ZGNmYzA0OTJk\nNWI4MTYpXShodHRwczovL3d3dy5jb2RhY3kuY29tL21hbnVhbC9HZXRQYWdl\nU3BlZWQvbGFzdHZlcnNpb24/dXRtX3NvdXJjZT1naXRodWIuY29tJmFtcDt1\ndG1fbWVkaXVtPXJlZmVycmFsJmFtcDt1dG1fY29udGVudD1kdmVyc2hpbmlu\nL2xhc3R2ZXJzaW9uJmFtcDt1dG1fY2FtcGFpZ249QmFkZ2VfR3JhZGUpClsh\nW0NvZGFjeSBCYWRnZV0oaHR0cHM6Ly9hcHAuY29kYWN5LmNvbS9wcm9qZWN0\nL2JhZGdlL0NvdmVyYWdlLzM4MGUzYTM4ZGM1MjQxMTJiNGRjZmMwNDkyZDVi\nODE2KV0oaHR0cHM6Ly93d3cuY29kYWN5LmNvbS9naC9kdmVyc2hpbmluL2xh\nc3R2ZXJzaW9uL2Rhc2hib2FyZD91dG1fc291cmNlPWdpdGh1Yi5jb20mdXRt\nX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1kdmVyc2hpbmluL2xhc3R2\nZXJzaW9uJnV0bV9jYW1wYWlnbj1CYWRnZV9Db3ZlcmFnZSkKWyFbQnV5IE1l\nIGEgQ29mZmVlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2R5bmFt\naWMvanNvbj9jb2xvcj1ibHVlJmxhYmVsPUJ1eSUyMG1lJTIwYSUyMENvZmZl\nZSZwcmVmaXg9JTIzJnF1ZXJ5PW5leHRfdGltZV90b3RhbCZ1cmw9aHR0cHMl\nM0ElMkYlMkZ3d3cuZ2V0cGFnZXNwZWVkLmNvbSUyRmJ1eW1lYWNvZmZlZS5q\nc29uJmxvZ289YnV5bWVhY29mZmVlKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29m\nZmVlLmNvbS9kdmVyc2hpbmluKQpbIVtBUEldKGh0dHBzOi8vaW1nLnNoaWVs\nZHMuaW8vYmFkZ2UvQVBJLVJhcGlkQVBJLWJsdWUpXShodHRwczovL3JhcGlk\nYXBpLmNvbS9jaWFwbnovYXBpL2xhc3R2ZXJzaW9uKQoKIVtVc2luZyBsYXN0\ndmVyc2lvbiBpbiB0ZXJtaW5hbF0oaHR0cHM6Ly93d3cuZ2V0cGFnZXNwZWVk\nLmNvbS9pbWcvbGFzdHZlcnNpb24uZ2lmKQoKRW5nbGlzaCB8IFvnroDkvZPk\nuK3mloddKFJFQURNRS1aSC1DTi5tZCkKCkEgdGlueSBjb21tYW5kLWxpbmUg\ndXRpbGl0eSB0aGF0IGhlbHBzIHRvIGFuc3dlciBhIHNpbXBsZSBxdWVzdGlv\nbjoKCj4gV2hhdCBpcyB0aGUgbGF0ZXN0ICpzdGFibGUqIHZlcnNpb24gZm9y\nIGEgcHJvamVjdD8KCi4uLiBhbmQsIG9wdGlvbmFsbHksIGRvd25sb2FkL2lu\nc3RhbGwgaXQuCgpgbGFzdHZlcnNpb25gIGFsbG93cyBmaW5kaW5nIHdlbGwt\nZm9ybWF0dGVkLCB0aGUgbGF0ZXN0IHJlbGVhc2UgdmVyc2lvbiBvZiBhIHBy\nb2plY3QgZnJvbSB0aGVzZQogc3VwcG9ydGVkIGxvY2F0aW9uczoKCiogICBb\nR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vZHZlcnNoaW5pbi9sYXN0dmVy\nc2lvbi93aWtpL0dpdEh1Yi1zcGVjaWZpY3MpCiogICBHaXRMYWIKKiAgIEJp\ndEJ1Y2tldAoqICAgUHlQSQoqICAgTWVyY3VyaWFsCiogICBTb3VyY2VGb3Jn\nZQoqICAgV2lraXBlZGlhCiogICBXb3JkUHJlc3MgcGx1Z2luIGRpcmVjdG9y\neQoqICAgQXJiaXRyYXJ5IHNvZnR3YXJlIHNpdGVzIHdoaWNoIHB1Ymxpc2gg\ncmVsZWFzZXMgaW4gUlNTL0FUT00gZmVlZHMKCiMjIFdoeSB5b3UgbmVlZCBg\nbGFzdHZlcnNpb25gCgpJbiBnZW5lcmFsLCBxdWl0ZSBtYW55IHByb2plY3Qg\nYXV0aG9ycyBjb21wbGljYXRlIGZpbmRpbmcgdGhlIGxhdGVzdCB2ZXJzaW9u\nIGJ5OgoKKiAgIENyZWF0aW5nIGEgZm9ybWFsIHJlbGVhc2UgdGhhdCBpcyBj\nbGVhcmx5IGEgUmVsZWFzZSBDYW5kaWRhdGUgKGByY2AgaW4gdGFnKSwgYnV0\nIGZvcmdldHRpbmcgdG8KICAgIG1hcmsgaXQgYXMgYSBwcmUtcmVsZWFzZQoK\nKiAgIFB1dHRpbmcgZXh0cmFuZW91cyB0ZXh0IGluIHJlbGVhc2UgdGFnIGUu\nZy4gYHJlbGVhc2UtMS4yLjNgIG9yIGBuYW1lLTEuMi4zLTIwMTlgIGFueXRo\naW5nIGZhbmN5CiAgICBsaWtlIHRoYXQKCiogICBQdXR0aW5nIG9yIG5vdCBw\ndXR0aW5nIHRoZSBgdmAgcHJlZml4IGluc2lkZSByZWxlYXNlIHRhZ3MuIFRv\nZGF5IHllcywgdG9tb3Jyb3cgbm90LiBJJ20gbm90CiAgICBjb25zaXN0ZW50\nIGFib3V0IGl0IG15c2VsZiA6KQoKKiAgIFN3aXRjaGluZyBmcm9tIG9uZSB2\nZXJzaW9uIGZvcm1hdCB0byBhbm90aGVyLCBlLmcuIGB2MjAxNTAxMjFgIHRv\nIGB2Mi4wLjFgCgpUaGVyZSBpcyBubyBjb25zaXN0ZW5jeSBpbiBodW1hbiBi\nZWluZ3MuCgpUbyBkZWFsIHdpdGggYWxsIHRoaXMgbWVzcyBhbmQgZ2V0IGEg\nd2VsbC1mb3JtYXR0ZWQsIGxhc3QgKnN0YWJsZSogdmVyc2lvbiAob3IgZG93\nbmxvYWQKIFVSTCEpIG9uIHRoZSBjb21tYW5kIGxpbmUsIHlvdSBjYW4gdXNl\nIGBsYXN0dmVyc2lvbmAuCgpgbGFzdHZlcnNpb25gIGlzIHBhcnRpY3VsYXJs\neSB1c2VmdWwgaW4gYXV0b21hdGVkIGJ1aWxkIHN5c3RlbXMgd2hlcmUgdHJh\nY2tpbmcgdGhlIGxhdGVzdCByZWxlYXNlIHZlcnNpb25zIGlzIGVzc2VudGlh\nbC4KCmBsYXN0dmVyc2lvbmAgZG9lcyBhIGxpdHRsZSBiaXQgb2YgQUkgdG8g\nZGV0ZWN0IGlmIHJlbGVhc2VycyBtaXN0YWtlbmx5IGZpbGVkIGEgYmV0YSB2\nZXJzaW9uIGFzIGEKc3RhYmxlIHJlbGVhc2UuCkl0IGluY29ycG9yYXRlcyBs\nb2dpYyBmb3IgY2xlYW5pbmcgdXAgaHVtYW4gaW5jb25zaXN0ZW5jeSBmcm9t\nCnZlcnNpb24gaW5mb3JtYXRpb24uCgojIyBTeW5vcHNpcwoKYGBgYmFzaAps\nYXN0dmVyc2lvbiBhcGFjaGUvaW5jdWJhdG9yLXBhZ2VzcGVlZC1uZ3gKIz4g\nMS4xMy4zNS4yCgpsYXN0dmVyc2lvbiBkb3dubG9hZCBhcGFjaGUvaW5jdWJh\ndG9yLXBhZ2VzcGVlZC1uZ3gKIz4gZG93bmxvYWRlZCBpbmN1YmF0b3ItcGFn\nZXNwZWVkLW5neC12MS4xMy4zNS4yLXN0YWJsZS50YXIuZ3oKCmxhc3R2ZXJz\naW9uIGRvd25sb2FkIGFwYWNoZS9pbmN1YmF0b3ItcGFnZXNwZWVkLW5neCAt\nbyBwYWdlc3BlZWQudGFyLmd6CiM+IGRvd25sb2FkcyB3aXRoIGNob3NlbiBm\naWxlbmFtZQoKbGFzdHZlcnNpb24gaHR0cHM6Ly90cmFuc21pc3Npb25idC5j\nb20vCiM+IDMuMAoKbGFzdHZlcnNpb24gZm9ybWF0ICJteXNxbGQgIFZlciA1\nLjYuNTEtOTEuMCBmb3IgTGludXgiCiM+IDUuNi41MQpgYGAKCj4gKipQcmVm\nZXIgYSBob3N0ZWQgc29sdXRpb24/KiogVXNlIHRoZSBbbGFzdHZlcnNpb24g\nQVBJXShodHRwczovL3JhcGlkYXBpLmNvbS9jaWFwbnovYXBpL2xhc3R2ZXJz\naW9uKSDigJQgbm8gaW5zdGFsbGF0aW9uIG5lZWRlZCwgd29ya3MgZnJvbSBh\nbnkgZW52aXJvbm1lbnQuIFtMZWFybiBtb3JlXShodHRwczovL2xhc3R2ZXJz\naW9uLmdldHBhZ2VzcGVlZC5jb20vZW4vbGF0ZXN0L2FwaS8pLgoKIyMgSW5z\ndGFsbGF0aW9uIGZvciBSUE0tYmFzZWQgc3lzdGVtcwoKU3VwcG9ydGVkOgoK\nKiBDZW50T1MvUkhFTCA3LCA4LCA5IGluY2x1ZGluZyBjbG9uZXMgbGlrZSBB\nbG1hTGludXggYW5kIFJvY2t5IExpbnV4CiogQW1hem9uIExpbnV4IDIsIEFt\nYXpvbiBMaW51eCAyMDIzCiogRmVkb3JhIExpbnV4CgpgYGBiYXNoCnN1ZG8g\neXVtIC15IGluc3RhbGwgaHR0cHM6Ly9leHRyYXMuZ2V0cGFnZXNwZWVkLmNv\nbS9yZWxlYXNlLWxhdGVzdC5ycG0Kc3VkbyB5dW0gLXkgaW5zdGFsbCBsYXN0\ndmVyc2lvbgpgYGAKCiMjIEluc3RhbGxhdGlvbiBmb3Igb3RoZXIgc3lzdGVt\ncwoKSW5zdGFsbGluZyB3aXRoIGBwaXBgIGlzIGVhc2llc3Q6CgpgYGBiYXNo\nCnBpcCBpbnN0YWxsIGxhc3R2ZXJzaW9uCmBgYAoKIyMgVXNhZ2UKClR5cGlj\nYWxseSwgeW91IHdvdWxkIGp1c3QgcGFzcyBhIHJlcG9zaXRvcnkgVVJMIChv\nciByZXBvIG93bmVyL25hbWUgdG8gaXQpIGFzIHRoZSBvbmx5IGFyZ3VtZW50\nLAplLmcuOgoKYGBgYmFzaApsYXN0dmVyc2lvbiBodHRwczovL2dpdGh1Yi5j\nb20vZ3BlcmZ0b29scy9ncGVyZnRvb2xzCmBgYAoKRXF1aXZhbGVudGx5IGFj\nY2VwdGVkIGludm9jYXRpb24gd2l0aCB0aGUgc2FtZSBvdXRwdXQgaXM6Cgpg\nYGBiYXNoCmxhc3R2ZXJzaW9uIGdwZXJmdG9vbHMvZ3BlcmZ0b29scwpgYGAK\nCklmIHlvdSdyZSBsYXp5IHRvIGV2ZW4gY29weS1wYXN0ZSBhIHByb2plY3Qn\ncyBVUkwsIHlvdSBjYW4ganVzdCB0eXBlIGl0cyBuYW1lIGFzIGFyZ3VtZW50\nLCB3aGljaAp3aWxsIHVzZSByZXBvc2l0b3J5IHNlYXJjaCBBUEkgKHNsb3dl\ncikuCkhlbHBzIHRvIGFuc3dlciB3aGF0IGlzIHRoZSBsYXRlc3QgTGludXgg\ndmVyc2lvbjoKCmBgYGJhc2gKbGFzdHZlcnNpb24gbGludXgKYGBgCgpPciB3\nb25kZXJpbmcgd2hhdCBpcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgV29yZFBy\nZXNzPwoKYGBgYmFzaApsYXN0dmVyc2lvbiB3b3JkcHJlc3MKYGBgCgpBIHNw\nZWNpYWwgdmFsdWUgb2YgYHNlbGZgIGZvciB0aGUgbWFpbiBhcmd1bWVudCwg\nd2lsbCBsb29rIHVwIHRoZSBsYXN0IHJlbGVhc2Ugb2YgYGxhc3R2ZXJzaW9u\nYAppdHNlbGYuCgpGb3IgbW9yZSBvcHRpb25zIHRvIGNvbnRyb2wgb3V0cHV0\nIG9yIGJlaGF2aW9yLCBzZWUgYC0taGVscGAgb3V0cHV0OgoKYGBgdGV4dAp1\nc2FnZTogbGFzdHZlcnNpb24gWy1oXSBbLS1wcmVdIFstLXNlbSB7bWFqb3Is\nbWlub3IscGF0Y2gsYW55fV0gWy12XQogICAgICAgICAgICAgICAgICAgWy1k\nIFtGSUxFTkFNRV1dIFstLWZvcm1hdCB7dmVyc2lvbixhc3NldHMsc291cmNl\nLGpzb24sdGFnfV0KICAgICAgICAgICAgICAgICAgIFstLWFzc2V0c10gWy0t\nc291cmNlXSBbLWd0IFZFUl0gWy1iIE1BSk9SXSBbLS1vbmx5IFJFR0VYXQog\nICAgICAgICAgICAgICAgICAgWy0tZXhjbHVkZSBSRUdFWF0gWy0tZmlsdGVy\nIFJFR0VYXSBbLS1oYXZpbmctYXNzZXQgW0FTU0VUXV0KICAgICAgICAgICAg\nICAgICAgIFstc3VdIFstLWV2ZW5dCiAgICAgICAgICAgICAgICAgICBbLS1j\naGFuZ2Vsb2ddCiAgICAgICAgICAgICAgICAgICBbLS1hdCB7Z2l0aHViLGdp\ndGxhYixiaXRidWNrZXQscGlwLGhnLHNmLHdlYnNpdGUtZmVlZCxsb2NhbCxo\nZWxtX2NoYXJ0LHdpa2ksc3lzdGVtLHdwLGdpdGVhfV0KICAgICAgICAgICAg\nICAgICAgIFsteV0gWy0tdmVyc2lvbl0KICAgICAgICAgICAgICAgICAgIFt7\nZ2V0LGRvd25sb2FkLGV4dHJhY3QsdW56aXAsdGVzdCxmb3JtYXQsaW5zdGFs\nbCx1cGRhdGUtc3BlY31dCiAgICAgICAgICAgICAgICAgICA8cmVwbyBVUkwg\nb3Igc3RyaW5nPgoKRmluZCB0aGUgbGF0ZXN0IHNvZnR3YXJlIHJlbGVhc2Uu\nCgpwb3NpdGlvbmFsIGFyZ3VtZW50czoKICB7Z2V0LGRvd25sb2FkLGV4dHJh\nY3QsdW56aXAsdGVzdCxmb3JtYXQsaW5zdGFsbCx1cGRhdGUtc3BlY30KICAg\nICAgICAgICAgICAgICAgICAgICAgQWN0aW9uIHRvIHJ1bi4gRGVmYXVsdDog\nZ2V0CiAgPHJlcG8gVVJMIG9yIHN0cmluZz4gIFJlcG9zaXRvcnkgaW4gZm9y\nbWF0IG93bmVyL25hbWUgb3IgYW55IFVSTCB0aGF0CiAgICAgICAgICAgICAg\nICAgICAgICAgIGJlbG9uZ3MgdG8gaXQsIG9yIGEgdmVyc2lvbiBzdHJpbmcK\nCm9wdGlvbmFsIGFyZ3VtZW50czoKICAtaCwgLS1oZWxwICAgICAgICAgICAg\nc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAogIC0tcHJlICAgICAg\nICAgICAgICAgICBJbmNsdWRlIHByZS1yZWxlYXNlcyBpbiBwb3RlbnRpYWwg\ndmVyc2lvbnMKICAtLXNlbSB7bWFqb3IsbWlub3IscGF0Y2gsYW55fQogICAg\nICAgICAgICAgICAgICAgICAgICBTZW1hbnRpYyB2ZXJzaW9uaW5nIGxldmVs\nIGJhc2UgdG8gcHJpbnQgb3IgY29tcGFyZQogICAgICAgICAgICAgICAgICAg\nICAgICBhZ2FpbnN0CiAgLXYsIC0tdmVyYm9zZSAgICAgICAgIFdpbGwgZ2l2\nZSB5b3UgYW4gaWRlYSBvZiB3aGF0IGlzIGhhcHBlbmluZyB1bmRlciB0aGUK\nICAgICAgICAgICAgICAgICAgICAgICAgaG9vZCwgLXZ2IHRvIGluY3JlYXNl\nIHZlcmJvc2l0eSBsZXZlbAogIC1kIFtGSUxFTkFNRV0sIC1vIFtGSUxFTkFN\nRV0sIC0tZG93bmxvYWQgW0ZJTEVOQU1FXSwgLS1vdXRwdXQgW0ZJTEVOQU1F\nXQogICAgICAgICAgICAgICAgICAgICAgICBEb3dubG9hZCB3aXRoIGN1c3Rv\nbSBmaWxlbmFtZQogIC0tZm9ybWF0IHt2ZXJzaW9uLGFzc2V0cyxzb3VyY2Us\nanNvbix0YWd9CiAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dCBmb3Jt\nYXQKICAtLWFzc2V0cyAgICAgICAgICAgICAgUmV0dXJucyBhc3NldHMgZG93\nbmxvYWQgVVJMcyBmb3IgbGFzdCByZWxlYXNlCiAgLS1zb3VyY2UgICAgICAg\nICAgICAgIFJldHVybnMgb25seSBzb3VyY2UgVVJMIGZvciBsYXN0IHJlbGVh\nc2UKICAtZ3QgVkVSLCAtLW5ld2VyLXRoYW4gVkVSCiAgICAgICAgICAgICAg\nICAgICAgICAgIE91dHB1dCBvbmx5IGlmIGxhc3QgdmVyc2lvbiBpcyBuZXdl\nciB0aGFuIGdpdmVuCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24K\nICAtYiBNQUpPUiwgLS1tYWpvciBNQUpPUiwgLS1icmFuY2ggTUFKT1IKICAg\nICAgICAgICAgICAgICAgICAgICAgT25seSBjb25zaWRlciByZWxlYXNlcyBv\nZiBhIHNwZWNpZmljIG1ham9yIHZlcnNpb24sCiAgICAgICAgICAgICAgICAg\nICAgICAgIGUuZy4gMi4xLngKICAtLW9ubHkgUkVHRVggICAgICAgICAgT25s\neSBjb25zaWRlciByZWxlYXNlcyBjb250YWluaW5nIHRoaXMgdGV4dC4gVXNl\nZnVsCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZXBvcyB3aXRoIG11\nbHRpcGxlIHByb2plY3RzIGluc2lkZQogIC0tZXhjbHVkZSBSRUdFWCAgICAg\nICBPbmx5IGNvbnNpZGVyIHJlbGVhc2VzIE5PVCBjb250YWluaW5nIHRoaXMg\ndGV4dC4KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZnVsIGZvciByZXBv\ncyB3aXRoIG11bHRpcGxlIHByb2plY3RzIGluc2lkZQogIC0tZXZlbiAgICAg\nICAgICAgICAgICBPbmx5IGV2ZW4gdmVyc2lvbnMgbGlrZSAxLlsyXS54LCBv\nciAzLls2XS54IGFyZQogICAgICAgICAgICAgICAgICAgICAgICBjb25zaWRl\ncmVkIGFzIHN0YWJsZQogIC0tZmlsdGVyIFJFR0VYICAgICAgICBGaWx0ZXJz\nIC0tYXNzZXRzIHJlc3VsdCBieSBhIHJlZ3VsYXIgZXhwcmVzc2lvbgogIC0t\naGF2aW5nLWFzc2V0IFtBU1NFVF0KICAgICAgICAgICAgICAgICAgICAgICAg\nT25seSBjb25zaWRlciByZWxlYXNlcyB3aXRoIHRoaXMgYXNzZXQKICAtc3Us\nIC0tc2hvcnRlci11cmxzICAgQSB0aW55IGJpdCBzaG9ydGVyIFVSTHMgcHJv\nZHVjZWQKICAtLWF0IHtnaXRodWIsZ2l0bGFiLGJpdGJ1Y2tldCxwaXAsaGcs\nc2Ysd2Vic2l0ZS1mZWVkLGxvY2FsLGhlbG1fY2hhcnQsd2lraSxzeXN0ZW0s\nd3AsZ2l0ZWF9CiAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSByZXBv\nIGFyZ3VtZW50IGlzIG9uZSB3b3JkLCBzcGVjaWZpZXMgd2hlcmUgdG8KICAg\nICAgICAgICAgICAgICAgICAgICAgbG9vayB1cCB0aGUgcHJvamVjdC4gVGhl\nIGRlZmF1bHQgaXMgdmlhIGludGVybmFsCiAgICAgICAgICAgICAgICAgICAg\nICAgIGxvb2t1cCBvciBHaXRIdWIgU2VhcmNoCiAgLXksIC0tYXNzdW1leWVz\nICAgICAgIEF1dG9tYXRpY2FsbHkgYW5zd2VyIHllcyBmb3IgYWxsIHF1ZXN0\naW9ucwogIC0tdmVyc2lvbiAgICAgICAgICAgICBzaG93IHByb2dyYW0ncyB2\nZXJzaW9uIG51bWJlciBhbmQgZXhpdAogIC0tY2hhbmdlbG9nICAgICAgICAg\nICBHZW5lcmF0ZSBSUE0gJWNoYW5nZWxvZyBlbnRyeSAoMeKAkzcgY29uY2lz\nZSBidWxsZXRzKQpgYGAKClRoZSBgLS1mb3JtYXRgIHdpbGwgYWZmZWN0IHdo\nYXQga2luZCBvZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBsYXN0IHJlbGVhc2Ug\nYW5kIGluIHdoaWNoIGZvcm1hdCB3aWxsCiBiZSBkaXNwbGF5ZWQsIGUuZy46\nCgoqICAgYHZlcnNpb25gIGlzIHRoZSBkZWZhdWx0LiBTaW1wbHkgb3V0cHV0\ncyB3ZWxsLWZvcm1hdHRlZCB2ZXJzaW9uIG51bWJlciBvZiB0aGUgbGF0ZXN0\nIHJlbGVhc2UKCiogICBgYXNzZXRzYCB3aWxsIG91dHB1dCBhIG5ld2xpbmUt\nc2VwYXJhdGVkIGxpc3Qgb2YgYXNzZXRzIFVSTHMgKGlmIGFueSksIG90aGVy\nd2lzZSBsaW5rIHRvCiAgICBzb3VyY2VzIGFyY2hpdmUKCiogICBgc291cmNl\nYCB3aWxsIG91dHB1dCBsaW5rIHRvIHNvdXJjZSBhcmNoaXZlLCBubyBtYXR0\nZXIgaWYgdGhlIHJlbGVhc2UgaGFzIHNvbWUgYXNzZXRzIGFkZGVkCgoqICAg\nYGpzb25gIGNhbiBiZSB1c2VkIGJ5IGV4dGVybmFsIFB5dGhvbiBtb2R1bGVz\nIG9yIGZvciBkZWJ1Z2dpbmcsIGl0IGlzIGRpY3QvSlNPTiBvdXRwdXQgb2Yg\nYW4gQVBJCiAgICBjYWxsIHRoYXQgc2F0aXNmaWVkIGxhc3QgdmVyc2lvbiBj\naGVja3MKCiogICBgdGFnYCB3aWxsIGVtaXQganVzdCB0aGUgbGF0ZXN0IHJl\nbGVhc2UncyB0YWcgbmFtZSwgd2hpY2ggdXNlZnVsIGlmIHlvdSdyZSBjb25z\ndHJ1Y3RpbmcgZG93bmxvYWQKICAgIFVSTCB5b3Vyc2VsZiBvciBuZWVkIHRo\nZSB0YWcgbmFtZSBvdGhlcndpc2UKCkFuIGFzc2V0IGlzIGEgZG93bmxvYWRh\nYmxlIGZpbGUgdGhhdCB0eXBpY2FsbHkgcmVwcmVzZW50cyBhbiBleGVjdXRh\nYmxlLCBvciBvdGhlcndpc2UKInJlYWR5IHRvIGxhdW5jaCIgcHJvamVjdC4g\nSXQncyB3aGF0IHlvdSBzZWUgZmlsZWQgdW5kZXIgZm9ybWFsIHJlbGVhc2Vz\nLCBhbmQgaXMgdXN1YWxseSBhIGNvbXBpbGVkCihmb3IgYSBzcGVjaWZpYyBw\nbGF0Zm9ybSksIHByb2dyYW0uCgpTb3VyY2UgZmlsZXMgYXJlIGVpdGhlciB0\nYXJiYWxscyBvciB6aXBiYWxscyBvZiBzb3VyY2VzIGZvciB0aGUgc291cmNl\nIGNvZGUgb2YgcmVsZWFzZS4KCllvdSBjYW4gZGlzcGxheSBlaXRoZXIgYXNz\nZXRzIG9yIHNvdXJjZSBVUkxzIG9mIHRoZSBsYXRlc3QgcmVsZWFzZSwgYnkg\ncGFzc2luZyB0aGUgY29ycmVzcG9uZGluZwogYC0tZm9ybWF0IGZsYWdgLCBl\nLmcuIGAtLWZvcm1hdCBzb3VyY2VgCgpZb3UgYWxzbyBzaW1wbHkgcGFzcyBg\nLS1zb3VyY2VgIGluc3RlYWQgb2YgYC0tZm9ybWF0IHNvdXJjZWAsIGFuZCBg\nLS1hc3NldHNgIGluc3RlYWQgb2YKYC0tZm9ybWF0IGFzc2V0c2AsIGFzIGlu\nOgoKYGBgYmFzaApsYXN0dmVyc2lvbiAtLWFzc2V0cyBtYXV0aWMvbWF1dGlj\nCiM+IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXV0aWMvbWF1dGljL2FyY2hpdmUv\nMi4xNS4xL21hdXRpYy0yLjE1LjEudGFyLmd6CmBgYAoKQnkgZGVmYXVsdCwg\nYGxhc3R2ZXJzaW9uYCBmaWx0ZXJzIG91dHB1dCBvZiBgLS1hc3NldHNgIHRv\nIGJlIE9TLXNwZWNpZmljLiBXaG8gbmVlZHMgYC5leGVgIG9uIExpbnV4PwoK\nVG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvciwgeW91IGNhbiB1c2UgYC0tZmls\ndGVyYCwgd2hpY2ggaGFzIGEgcmVndWxhciBleHByZXNzaW9uIGFzIGl0cyBh\ncmd1bWVudC4KVG8gZGlzYWJsZSBPUyBmaWx0ZXJpbmcsIHVzZSBgLS1maWx0\nZXIgLmAsIHRoaXMgd2lsbCBtYXRjaCBldmVyeXRoaW5nLgoKWW91IGNhbiBu\nYXR1cmFsbHkgdXNlIGAtLWZpbHRlcmAgaW4gcGxhY2Ugd2hlcmUgeW91IHdv\ndWxkIHVzZSBgZ3JlcGAsIGUuZy4KYGxhc3R2ZXJzaW9uIC0tYXNzZXRzIC0t\nZmlsdGVyIHdpbiBSRVBPYAoKIyMjIFVzZSBjYXNlOiBXb3JrIHdpdGggYSBt\ndWx0aS1wcm9qZWN0IHJlcG9zaXRvcnkKClNvbWV0aW1lcyBhIHNpbmdsZSBy\nZXBvc2l0b3J5IGFjdHVhbGx5IGhvc3RzIG1hbnkgY29tcG9uZW50cywgYW5k\nIGNyZWF0ZXMgcmVsZWFzZXMgdGhhdApoYXZlIHNlcGFyYXRlIHZlcnNpb24g\nbGluZSBmb3IgZWFjaCBjb21wb25lbnQuCgpUbyBoZWxwIGBsYXN0dmVyc2lv\nbmAgZ2V0IGEgY29tcG9uZW50J3MgdmVyc2lvbiBmb3Igc3VjaCByZXBvcywg\ndXNlIGAtLW9ubHlgIGFuZCBgLS1leGNsdWRlYApzd2l0Y2hlcy4KVGhleSBt\nYWtlIGBsYXN0dmVyc2lvbmAgbG9vayBhdCBvbmx5IHRob3NlIHJlbGVhc2Vz\nIHdoaWNoIGFyZSB0YWdnZWQgKG9yIG5vdCkgd2l0aCBzcGVjaWZpZWQKc3Ry\naW5ncy4KCltFeGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vbGFzdHZlcnNp\nb24tdGVzdC1yZXBvcy9hdXRvc2NhbGVyL3RhZ3MpOgoKYGBgYmFzaApsYXN0\ndmVyc2lvbiAtLW9ubHkgY2hhcnQgaHR0cHM6Ly9naXRodWIuY29tL2xhc3R2\nZXJzaW9uLXRlc3QtcmVwb3MvYXV0b3NjYWxlcgpgYGAKClRoZSBhYm92ZSB3\naWxsIHJlcG9ydCBgOS4xNi4wYC4KCmBgYGJhc2gKbGFzdHZlcnNpb24gLS1l\neGNsdWRlIGNoYXJ0IGh0dHBzOi8vZ2l0aHViLmNvbS9sYXN0dmVyc2lvbi10\nZXN0LXJlcG9zL2F1dG9zY2FsZXIKYGBgCgpUaGUgYWJvdmUgd2lsbCByZXBv\ncnQgYSBub24tY2hhcnQgbGF0ZXN0IHZlcnNpb24sIGAxLjIzLjBgLgoKVXNl\nZnVsIGZvciBoYXJkIGNhc2VzLCB5b3UgY2FuIHBhc3MgaW4gcmVndWxhciBl\neHByZXNzaW9ucyBmb3IgYm90aCBhcmd1bWVudHMsIGJ5IHByZXBlbmRpbmcg\ndGhlbQp3aXRoIHRpbGRlLCBsaWtlIHNvOgoKYGBgYmFzaApsYXN0dmVyc2lv\nbiAtLW9ubHkgJ34tcG8uLScgaHR0cHM6Ly9naXRodWIuY29tL2xhc3R2ZXJz\naW9uLXRlc3QtcmVwb3MvYXV0b3NjYWxlcgpgYGAKClRoZSBhYm92ZSB3aWxs\nIGNvbnNpZGVyIG9ubHkgcmVsZWFzZXMgdGFnZ2VkIHdpdGggLXBvKmQqLSwg\nb3IgLXBvKnYqLSwgZXRjLgoKIyMjIFVzZSBjYXNlOiBIb3cgdG8gZG93bmxv\nYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHNvbWV0aGluZwoKWW91IGNhbiBh\nbHNvIHVzZSBgbGFzdHZlcnNpb25gIHRvIGRvd25sb2FkIGFzc2V0cy9zb3Vy\nY2VzIGZvciB0aGUgbGF0ZXN0IHJlbGVhc2UuCgpEb3dubG9hZCB0aGUgbW9z\ndCByZWNlbnQgTWF1dGljIHNvdXJjZSByZWxlYXNlOgoKYGBgYmFzaApsYXN0\ndmVyc2lvbiBkb3dubG9hZCBtYXV0aWMvbWF1dGljCmBgYAoKQ3VzdG9taXpl\nIGRvd25sb2FkZWQgZmlsZW5hbWUgKHdvcmtzIG9ubHkgZm9yIHNvdXJjZXMs\nIHdoaWNoIGlzIHRoZSBkZWZhdWx0KToKCmBgYGJhc2gKbGFzdHZlcnNpb24g\nZG93bmxvYWQgbWF1dGljL21hdXRpYyAtbyBtYXV0aWMudGFyLmd6CmBgYAoK\nWW91IGNhbiBhbHNvIGRpcmVjdGx5IGZldGNoIGFuZCBleHRyYWN0IHRoZSBs\nYXRlc3QgcmVsZWFzZSdzIGZpbGUgaW50byB0aGUgY3VycmVudCB3b3JraW5n\nIGRpcmVjdG9yeQpieSB1c2luZyBgZXh0cmFjdGAgY29tbWFuZDoKCmBgYGJh\nc2gKbGFzdHZlcnNpb24gZXh0cmFjdCB3b3JkcHJlc3MKYGBgCgpZb3UgY2Fu\nIGhhdmUgYGxhc3R2ZXJzaW9uYCBvdXRwdXQgc291cmNlcy9hc3NldHMgVVJM\ncyBhbmQgaGF2ZSB0aG9zZSBkb3dubG9hZGVkIGJ5CnNvbWV0aGluZyBlbHNl\nOgoKYGBgYmFzaAp3Z2V0ICQobGFzdHZlcnNpb24gLS1hc3NldHMgbWF1dGlj\nL21hdXRpYykKYGBgCgpUaGlzIHdpbGwgZG93bmxvYWQgYWxsIGFzc2V0cyBv\nZiB0aGUgbmV3ZXN0IHN0YWJsZSBNYXV0aWMsIHdoaWNoIGFyZSB0d28gemlw\nIGZpbGVzLgoKSG93IHRoaXMgd29ya3M6IGBsYXN0dmVyc2lvbmAgb3V0cHV0\ncyBhbGwgYXNzZXQgVVJMcywgZWFjaCBvbiBhIG5ldyBsaW5lLCBhbmQgYHdn\nZXRgIGlzIHNtYXJ0CmVub3VnaCB0byBkb3dubG9hZCBlYWNoIFVSTC4gTWFn\naWMgOikKCkZvciByZWxlYXNlcyB0aGF0IGhhdmUgbm8gYXNzZXRzIGFkZGVk\nLCBpdCB3aWxsIGRvd25sb2FkIHRoZSBzb3VyY2UgYXJjaGl2ZS4KClRvIGFs\nd2F5cyBkb3dubG9hZCB0aGUgc291cmNlLCB1c2UgYC0tc291cmNlYCBpbnN0\nZWFkOgoKYGBgYmFzaAp3Z2V0ICQobGFzdHZlcnNpb24gLS1zb3VyY2UgbWF1\ndGljL21hdXRpYykKYGBgCgojIyMgVXNlIGNhc2U6IERvd25sb2FkIHNwZWNp\nZmljIGFzc2V0IHVuZGVyIHNwZWNpZmllZCBmaWxlbmFtZQoKSWYgeW91IHdh\nbnQgdG8gZG93bmxvYWQgc3BlY2lmaWMgYXNzZXQgb2YgdGhlIGxhc3QgdmVy\nc2lvbidzIHJlbGVhc2UgYW5kIHNhdmUgdGhlIGRvd25sb2FkZWQgZmlsZQog\ndW5kZXIgYSBkZXNpcmVkIG5hbWUsIGNvbWJpbmUgYC1kYCBvcHRpb24gKGZv\nciBkb3dubG9hZCBuYW1lKSBhbmQgYC0tZmlsdGVyYCBmb3Igc3BlY2lmeWlu\nZyBhc3NldHMKIGZpbHRlci4KCkV4YW1wbGU6CgpgYGBiYXNoCmxhc3R2ZXJz\naW9uIC0tcHJlIEFpcmNvb29raWUvV0xFRCAtLWZvcm1hdCBhc3NldHMgLS1m\naWx0ZXIgRVNQMzIuYmluIC1kIEVTUDMyLmJpbgpgYGAKCiMjIyBVc2UgY2Fz\nZTogR2V0IHRoZSBsYXN0IHZlcnNpb24gKGJldGFzIGFyZSBmaW5lKQoKV2Ug\nY29uc2lkZXIgdGhlIGxhdGVzdCByZWxlYXNlIGlzIHRoZSBvbmUgdGhhdCBp\ncyBzdGFibGUgLyBub3QgbWFya2VkIGFzIGJldGEuCklmIHlvdSB0aGluayBv\ndGhlcndpc2UsIHRoZW4gcGFzcyBgLS1wcmVgIHN3aXRjaCBhbmQgaWYgdGhl\nIGxhdGVzdCB2ZXJzaW9uIG9mIHJlcG9zaXRvcnkgaXMgYQpwcmUtcmVsZWFz\nZSwgdGhlbiB5b3UnbGwgZ2V0IGl0cyB2ZXJzaW9uIGluc3RlYWQ6CgpgYGBi\nYXNoCmxhc3R2ZXJzaW9uIC0tcHJlIG1hdXRpYy9tYXV0aWMKIz4gMi4xNS4y\nYjAKYGBgCgojIyMgVXNlIGNhc2U6IHZlcnNpb24gb2YgYSBzcGVjaWZpYyBi\ncmFuY2gKCkZvciBzb21lIHByb2plY3RzLCB0aGVyZSBtYXkgYmUgc2V2ZXJh\nbCBzdGFibGUgcmVsZWFzZXMgYXZhaWxhYmxlIHNpbXVsdGFuZW91c2x5LCBp\nbiBkaWZmZXJlbnQKYnJhbmNoZXMuIEFuIG9idmlvdXMgZXhhbXBsZSBpcyBQ\nSFAuIFlvdSBjYW4gdXNlIGAtLW1ham9yYCBmbGFnIHRvIHNwZWNpZnkgdGhl\nIG1ham9yIHJlbGVhc2UKdmVyc2lvbiB0byBtYXRjaCB3aXRoLCB0byBoZWxw\nIHlvdSBmaW5kIHRoZSBsYXRlc3Qgc3RhYmxlIHJlbGVhc2Ugb2YgYSBicmFu\nY2gsIGxpa2Ugc286CgpgYGBiYXNoCmxhc3R2ZXJzaW9uIHBocC9waHAtc3Jj\nIC0tbWFqb3IgNy4yCmBgYAoKVGhpcyB3aWxsIGdpdmUgeW91IGN1cnJlbnQg\nc3RhYmxlIHZlcnNpb24gb2YgUEhQIDcuMi54LCBlLmcuIGA3LjIuMjhgLgoK\nQnJhbmNoIHNlbGVjdG9yIGlzIGVhc3kgdG8gYmUgc3BlY2lmaWVkIGFmdGVy\nIHNlbWljb2xvbiwgYW5kIHRvZ2V0aGVyIHdpdGggdGhlIHNlYXJjaCBBUEks\nCmEgY2xlYW4gaW52b2NhdGlvbiBmb3IgdGhlIHNhbWUgd291bGQgYmU6Cgpg\nYGBiYXNoCmxhc3R2ZXJzaW9uIHBocDo3LjIKYGBgCgpUaGUgYnJhbmNoIHNl\nbGVjdG9yIGNhbiBhbHNvIGJlIHVzZWQgdG8gZ2V0IHNwZWNpZmljIHJlbGVh\nc2UgZGV0YWlscywgZS5nLjoKCmBgYGJhc2gKbGFzdHZlcnNpb24gcGhwOjcu\nMi4zMyAtLWFzc2V0cwpgYGAKCiMjIyBVc2UgY2FzZTogcmVsZWFzZXMgd2l0\naCBzcGVjaWZpYyBhc3NldHMKClNvbWV0aW1lcyBhIHByb2plY3QgbWFrZXMg\nbmljZSBmb3JtYWwgcmVsZWFzZXMgYnV0IGRlbGF5IGluIHVwbG9hZGluZyBh\nc3NldHMgZm9yIHJlbGVhc2VzLgpBbmQgeW91IG1pZ2h0IGJlIGludGVyZXN0\nZWQgaW4gc3BlY2lmaWMgYXNzZXQgdHlwZSBhbHdheXMuClRoZW4geW91IGNh\nbiBtYWtlIGBsYXN0dmVyc2lvbmAgY29uc2lkZXIgYXMgbGF0ZXN0IG9ubHkg\ndGhlIGxhc3QgcmVsZWFzZSB3aXRoIHNwZWNpZmljIGFzc2V0IG5hbWUuCkVh\nc3kgd2l0aCB0aGUgYC0taGF2aW5nLWFzc2V0YCBzd2l0Y2g6CgpgYGBiYXNo\nCmxhc3R2ZXJzaW9uIHRlbGVncmFtZGVza3RvcC90ZGVza3RvcCAtLWhhdmlu\nZy1hc3NldCAiTGludXggNjQgYml0OiBCaW5hcnkiCmBgYAoKVGhlIGFyZ3Vt\nZW50IHZhbHVlIHRvIGAtLWhhdmluZy1hc3NldGAgY2FuIGJlIG1hZGUgYXMg\ncmVndWxhciBleHByZXNzaW9uLiBGb3IgdGhpcywgcHJlcGVuZCBpdAp3aXRo\nIHRpbGRlIHNpZ24uIEUuZy4gdG8gZ2V0IHJlbGVhc2VzIHdpdGggbWFjT1Mg\naW5zdGFsbGVyczoKCmBgYGJhc2gKbGFzdHZlcnNpb24gdGVsZWdyYW1kZXNr\ndG9wL3RkZXNrdG9wIC0taGF2aW5nLWFzc2V0ICJ+XC5kbWckIgpgYGAKCllv\ndSBjYW4gcGFzcyBubyB2YWx1ZSB0byBgLS1oYXZpbmctYXNzZXRgIGF0IGFs\nbC4gVGhlbiBgbGFzdHZlcnNpb25gIHdpbGwgb25seSByZXR1cm4gdGhlIGxh\ndGVzdApyZWxlYXNlIHdoaWNoIGhhcyAqKmFueSoqIGFzc2V0cyBhZGRlZCB0\nbyBpdDoKCmBgYGJhc2gKbGFzdHZlcnNpb24gdGVsZWdyYW1kZXNrdG9wL3Rk\nZXNrdG9wIC0taGF2aW5nLWFzc2V0CmBgYAoKIyMjIFVzZSBjYXNlOiB2ZXJz\naW9uIG9mIGFuIG9wZXJhdGluZyBzeXN0ZW0KClRoZSBvcGVyYXRpbmcgc3lz\ndGVtcyBhcmUgdXN1YWxseSAqbm90KiB2ZXJzaW9uZWQgdGhyb3VnaCBHaXRI\ndWIgcmVsZWFzZXMgb3Igc3VjaC4KSXQgaXMgYSBjaGFsbGVuZ2UgdG8gZ2V0\nIHRoZSBsYXN0IHN0YWJsZSB2ZXJzaW9uIG9mIGFuIE9TIG90aGVyIHRoYW4g\nZnJvbSBpdHMgd2Vic2l0ZSwKb3Igb3RoZXIgYW5ub3VuY2VtZW50IGNoYW5u\nZWxzLgoKQW4gZWFzeSBjb21wcm9taXNlIHRoYXQgYGxhc3R2ZXJzaW9uYCBk\nb2VzIGFib3V0IHRoaXMsIGlzIGhhcmQgY29kaW5nIHdlbGwta25vd24gT1Mg\nbmFtZXMsIGFuZCB1c2luZwpXaWtpcGVkaWEgYmVoaW5kIHRoZSBzY2VuZXM6\nCgpgYGBiYXNoCmxhc3R2ZXJzaW9uIHJvY2t5ICAjPiA4LjQKbGFzdHZlcnNp\nb24gd2luZG93cyAgIz4gMTAuMC4xOTA0My4xMDgxCmxhc3R2ZXJzaW9uIGlv\ncyAgIz4gMTQuNgpgYGAKCllvdSBjYW4gc3VwcGx5IGEgZnVsbHkgcXVhbGlm\naWVkIFVSTCB0byBhIFdpa2lwZWRpYSBwYWdlIGZvciBhbiBPUy9zb2Z0d2Fy\nZSBwcm9qZWN0IHRvIGdldCB2ZXJzaW9uCmZyb20gdGhlcmUsIGUuZy46Cgpg\nYGBiYXNoCmxhc3R2ZXJzaW9uIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93\naWtpL1JvY2t5X0xpbnV4ICAjPiA4LjQKYGBgCgojIyMgU3BlY2lhbCB1c2Ug\nY2FzZTogTkdJTlggc3RhYmxlIHZzIG1haW5saW5lIGJyYW5jaCB2ZXJzaW9u\nCgpgYGBiYXNoCmxhc3R2ZXJzaW9uIGh0dHBzOi8vbmdpbngub3JnIC0tbWFq\nb3Igc3RhYmxlICM+IDEuMTYuMQpsYXN0dmVyc2lvbiBodHRwczovL25naW54\nLm9yZyAtLW1ham9yIG1haW5saW5lICM+IDEuMTcuOQpgYGAKCkJlaGluZCB0\naGUgc2NlbmVzLCB0aGlzIGNoZWNrcyB3aXRoIGBoZy5uZ2lueC5vcmdgIHdo\naWNoIGlzIGEgTWVyY3VyaWFsIHdlYiByZXBvLgpUaG9zZSBhcmUgc3VwcG9y\ndGVkIGFzIHdlbGwsIGUuZy4KCmBgYGJhc2gKbGFzdHZlcnNpb24gaHR0cHM6\nLy9oZy5leGFtcGxlLmNvbS9wcm9qZWN0LwpgYGAKCk1lcmN1cmlhbCByZXBv\nc2l0b3JpZXMgYXJlIHJhdGhlciByYXJlIHRoZXNlIGRheXMsIGJ1dCBzdXBw\nb3J0IGhhcyBiZWVuIGFkZGVkIHByaW1hcmlseSBmb3IgTkdJTlguCgojIyMg\nU3BlY2lhbCB1c2UgY2FzZTogZmluZCB0aGUgcmVsZWFzZSBvZiBhIFB5UEkg\ncHJvamVjdAoKTW9zdCBQeXRob24gbGlicmFyaWVzL2FwcHMgYXJlIGhvc3Rl\nZCBvbiBQeVBJLiBUbyBjaGVjayB2ZXJzaW9ucyBvZiBhIHByb2plY3Qgb24g\nUHlQSSwgeW91IGNhbiB1c2U6CgpgYGBiYXNoCmxhc3R2ZXJzaW9uIGh0dHBz\nOi8vcHlwaS5vcmcvcHJvamVjdC9yZXF1ZXN0cy8KYGBgCgpJZiB5b3UgcHJl\nZmVyIHVzaW5nIGEgc2hvcnRlciByZXBvIG5hbWUsIGVuc3VyZSBgLS1hdCBw\naXBgIHN3aXRjaCwgbGlrZSBzbzoKCmBgYGJhc2gKbGFzdHZlcnNpb24gcmVx\ndWVzdHMgLS1hdCBwaXAKYGBgCgojIyMgSW5zdGFsbCBhbiBSUE0gYXNzZXQK\nCklmIGEgcHJvamVjdCBwcm92aWRlcyBgLnJwbWAgYXNzZXRzIGFuZCB5b3Vy\nIHN5c3RlbSBoYXMgYHl1bWAgb3IgYGRuZmAsIHlvdSBjYW4gaW5zdGFsbCB0\naGUgcHJvamVjdCdzCiBSUE0gZGlyZWN0bHksIGxpa2Ugc286CgpgYGBiYXNo\nCnN1ZG8gbGFzdHZlcnNpb24gaW5zdGFsbCBtYWlsc3ByaW5nCmBgYAoKVGhp\ncyBmaW5kcyBbTWFpbFNwcmluZ10oaHR0cHM6Ly9naXRodWIuY29tL0ZvdW5k\ncnkzNzYvTWFpbHNwcmluZyksIGdldHMgaXRzIGxhdGVzdCByZWxlYXNlIGlu\nZm8sCmZpbHRlcnMgYXNzZXRzIGZvciBgLnJwbWAgYW5kIHBhc3NlcyBpdCB0\nbyBgeXVtYCAvIGBkbmZgLgoKWW91IGNhbiBldmVuIHNldCB1cCBhbiBhdXRv\nLXVwZGF0ZXIgY3JvbiBqb2Igd2hpY2ggd2lsbCBlbnN1cmUgeW91IGFyZSBv\nbiB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgYQogcGFja2FnZSwgbGlrZSBzbzoK\nCmBgYGJhc2gKQGRhaWx5IC91c3IvYmluL2xhc3R2ZXJzaW9uIGluc3RhbGwg\nbWFpbHNwcmluZyAteSAyPi9kZXYvbnVsbApgYGAKCklmIHRoZSBNYWlsc3By\naW5nIEdpdEh1YiByZXBvIHBvc3RzIGEgcmVsZWFzZSB3aXRoIG5ld2VyIGAu\ncnBtYCwgdGhlbiBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkKIGluc3RhbGxl\nZCwgbWFraW5nIHN1cmUgeW91IGFyZSBydW5uaW5nIHRoZSBsYXRlc3QgYW5k\nIGdyZWF0ZXN0IE1haWxzcHJpbmcgdmVyc2lvbi4KCllvdSdsbCBldmVuIGdl\ndCBhbiBlbWFpbCBhbGVydCBhZnRlciB1cGRhdGUgKHN0YW5kYXJkIGNyb24g\nZmVhdHVyZSkuCgpOZWVkbGVzcyB0byBzYXksIG1vcmUgb2Z0ZW4gdGhhbiBu\nb3QsIHN1Y2ggUlBNIHBhY2thZ2VzIGhhdmUgbm8gaWRlYSBhYm91dCBhbGwg\ncG90ZW50aWFsbHkgbWlzc2luZwpkZXBlbmRlbmNpZXMuIFRodXMsIG9ubHkg\ndXNlIGBsYXN0dmVyc2lvbiBpbnN0YWxsIC4uLmAgaWYgdGhlIHNvZnR3YXJl\nIGlzIG1pc3NpbmcgZnJvbSB0aGUgYmFzZQpgeXVtYCByZXBvc2l0b3JpZXMu\nCgojIyMgSW5zdGFsbCBhbiBBcHBJbWFnZQoKSWYgYSBwcm9qZWN0IHByb3Zp\nZGVzIGAuQXBwSW1hZ2VgLCB5b3UgY2FuIGluc3RhbGwgdGhvc2UgZGlyZWN0\nbHkgdXNpbmcgYGxhc3R2ZXJzaW9uYC4KVGhlIGBBcHBJbWFnZWAgaXMgc2Vs\nZi1jb250YWluZWQgTGludXggZXhlY3V0YWJsZSBmaWxlLiBXaGF0IGBsYXN0\ndmVyc2lvbmAgZG9lcyBmb3IgeW91LCBpcyBmZXRjaAp0aGUgbGF0ZXN0IHJl\nbGVhc2UncyBgQXBwSW1hZ2VgLCBpbnN0YWxscyBpdCB1bmRlciBgfi9BcHBs\naWNhdGlvbnMvPGFwcD5gIGFuZCBtYWtlcyBpdCBleGVjdXRhYmxlLgpKdXN0\nIHJ1bjoKCmBgYGJhc2gKbGFzdHZlcnNpb24gaW5zdGFsbCBmbHVlbnQtcmVh\nZGVyCmBgYAoKIyMjIFRlc3QgdmVyc2lvbiBwYXJzZXIKClRoZSBgdGVzdGAg\nY29tbWFuZCBjYW4gYmUgdXNlZCBmb3IgdHJvdWJsZXNob290aW5nIG9yIHNp\nbXBseSB3ZWxsIGZvcm1hdHRpbmcgYSBzdHJpbmcgd2l0aCB2ZXJzaW9uOgoK\nYGBgYmFzaApsYXN0dmVyc2lvbiB0ZXN0ICdibGFoLTEuMi4zLWRldmVsJyAj\nID4gMS4yLjMuZGV2MApsYXN0dmVyc2lvbiB0ZXN0ICcxLjIueCcgIyA+IEZh\nbHNlIChubyBjbGVhciB2ZXJzaW9uKQpsYXN0dmVyc2lvbiB0ZXN0ICcxLjIu\nMy1yYzEnICMgPiAxLjIuM3JjMQpgYGAKCiMjIyBTY3JpcHRpbmcgd2l0aCBg\nbGFzdHZlcnNpb25gIGluIGBiYXNoYAoKIyMjIyBTZW1hbnRpYyB2ZXJzaW9u\naW5nIHN1cHBvcnQKClNvbWV0aW1lcyB5b3Ugb25seSB3YW50IHRvIGNoZWNr\nIHVwZGF0ZXMgZm9yIGEgc3BlY2lmaWMgc2VtYW50aWMgdmVyc2lvbmluZyBs\nZXZlbC4KRG9lcyBhIHByb2plY3QgaGF2ZSBhIG5ldyBtaW5vciByZWxlYXNl\nPyBEb2VzIGEgcHJvamVjdCBoYXZlIGEgbmV3IG1ham9yIHJlbGVhc2U/ClRv\nIHByaW50IGp1c3QgdGhlIG5lY2Vzc2FyeSBzZW1hbnRpYyB2ZXJzaW9uaW5n\nIGJhc2UsIHVzZSBgLS1zZW1gIG9wdGlvbi4KCkFjY2VwdGFibGUgdmFsdWVz\nIGFyZSBgbWFqb3JgLCBgbWlub3JgLCBhbmQgYHBhdGNoYC4KCmBgYGJhc2gK\nbGFzdHZlcnNpb24gd29yZHByZXNzIC0tc2VtIG1ham9yCiM+IDUKYGBgCgpg\nYGBiYXNoCmxhc3R2ZXJzaW9uIHdvcmRwcmVzcyAtLXNlbSBtaW5vcgojPiA1\nLjkKYGBgCgpgYGBiYXNoCmxhc3R2ZXJzaW9uIHdvcmRwcmVzcyAtLXNlbSBw\nYXRjaAojPiA1LjkuMwpgYGAKClRoZSB2YWx1ZSBgLS1zZW0gcGF0Y2hgIGNh\nbiBiZSB1c2VkIHRvICpub3JtYWxpemUqIGEgZ2l2ZW4gcmVzdWx0IHRvIHNl\nbWFudGljIHZlcnNpb25pbmcsCmlmIGEgcHJvamVjdCBkb2Vzbid0IGZvbGxv\ndyB0aGUgc2VtYW50aWNzIHN0cmljdGx5LiBFLmcuIHNvbWV0aW1lcyBXb3Jk\nUHJlc3Mgd291bGQgcHVibGlzaCBhbiB4LnkKcmVsZWFzZSB3aGlsZSBpdCdz\nIGltcGxpY2l0bHkgeC55LjAuIFNvIGxldCdzIHNheSBXb3JkUHJlc3MgcmVs\nZWFzZWQgIjUuMTAiOgoKYGBgYmFzaApsYXN0dmVyc2lvbiB3b3JkcHJlc3Mg\nLS1zZW0gcGF0Y2gKIz4gNS4xMC4wCmBgYAoKIyMjIyBGb3JtYXQgYW55IHZl\ncnNpb24gc3RyaW5nCgpTYXkgeW91IHJhbiBgbXlzcWxkIC0tdmVyc2lvbmAg\nYW5kIGdvdCB0aGlzIG91dHB1dDoKCj4gbXlzcWxkICBWZXIgNS42LjUxLTkx\nLjAgZm9yIExpbnV4IG9uIHg4Nl82NCAoUGVyY29uYSBTZXJ2ZXIgKEdQTCks\nIFJlbGVhc2UgOTEuMCwgUmV2aXNpb24gYjU5MTM5ZSkKClRoaXMgaXMgcmF0\naGVyIGhhcmQgdG8gcGFyc2UgaW4gYmFzaCBpZiB5b3Ugd2FudCB0byBqdXN0\nIGV4dHJhY3QgdGhlIG1ham9yIE15U1FMIHNlcnZlciB2ZXJzaW9uLgoKYGxh\nc3R2ZXJzaW9uYCBjYW4gZWFzaWx5IHBhcnNlIG91dCBhbmQgZ2l2ZSB0aGUg\nZGVzaXJlZCBpbmZvcm1hdGlvbiBiYXNlZCBvbiBkZXNpcmVkIHNlbWFudGlj\nCnZlcnNpb25pbmcgbGV2ZWw6CgpgYGBiYXNoCmxhc3R2ZXJzaW9uIC0tc2Vt\nIG1ham9yIGZvcm1hdCAibXlzcWxkICBWZXIgNS42LjUxLTkxLjAgZm9yIExp\nbnV4IG9uIHg4Nl82NCAoUGVyY29uYSBTZXJ2ZXIgKEdQTCkgLCBSZWxlYXNl\nIDkxLjAsIFJldmlzaW9uIGI1OTEzOWUpIgojPiA1CmBgYAoKIyMjIyBDb21w\nYXJlIGFyYml0cmFyeSB2ZXJzaW9ucwoKVXNlIGBsYXN0dmVyc2lvbmAgZm9y\nIGVhc3kgY29tcGFyaXNvbiBvZiB2ZXJzaW9ucyBvbiB0aGUgY29tbWFuZCBs\naW5lLgpDb21wYXJlIHR3byB2ZXJzaW9ucywgdGhlIGNvbW1hbmQgd2lsbCBv\ndXRwdXQgdGhlIGhpZ2hlc3QgdmVyc2lvbjoKCmBgYGJhc2gKbGFzdHZlcnNp\nb24gMS4yLjMgLWd0IDEuMi40CiM+IDEuMi40CmBgYAoKU2VlIHRoZSBleGl0\nIGNvZGVzIGJlbG93LCB0byBmaW5kIHdoZXRoZXIgdGhlIGZpcnN0IGFyZ3Vt\nZW50IGlzIGEgaGlnaGVyIHZlcnNpb24sIG9yIHRoZSBzZWNvbmQuCgpUaGUg\nYC0tc2VtYCBvcHRpb24gZGVzY3JpYmVkIGVhcmxpZXIgd2lsbCBhZmZlY3Qg\nYm90aCB3aGF0J3MgYmVpbmcgcHJpbnRlZCBhbmQgd2hhdCBzZW1hbnRpYwp2\nZXJzaW9uaW5nIGJhc2UgbGV2ZWwgaXMgYmVpbmcgY29tcGFyZWQsIHRodXMg\ndGhlIHJlc3VsdC4KCiMjIyMgQ2hlY2sgZm9yIE5FVyByZWxlYXNlCgpXaGVu\nIHlvdSdyZSBidWlsZGluZyBzb21lIHVwc3RyZWFtIHBhY2thZ2UsIGFuZCB5\nb3UgZGlkIHRoaXMgYmVmb3JlLCB0aGVyZSBpcyBhIGtub3duICJsYXN0IGJ1\naWxkIgp2ZXJzaW9uLgpBdXRvbWF0aWMgYnVpbGRzIGJlY29tZSBlYXN5IHdp\ndGg6CgpgYGBiYXNoCkNVUlJFTlRMWV9CVUlMVF9WRVI9MS4yLjMgIyBzdG9y\nZWQgc29tZXdoZXJlLCBlLmcuIHNwZWMgZmlsZSBpbiBteSBjYXNlCkxBU1Rf\nVkVSPSQobGFzdHZlcnNpb24gcmVwby9vd25lciAtZ3QgJHtDVVJSRU5UTFlf\nQlVJTFRfVkVSfSkKaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAjIExBU1Rf\nVkVSIGlzIG5ld2VyLCB1cGRhdGUgYW5kIHRyaWdnZXIgYnVpbGQKICAjIC4u\nLi4KZmkKYGBgCgpIZXJlLCB0aGUgYC1ndGAgaXMgYWN0dWFsbHkgYSBzd2l0\nY2ggcGFzc2VkIHRvIGBsYXN0dmVyc2lvbmAsIHdoaWNoIGFjdHMgaW4gYSBz\naW1pbGFyIGZhc2hpb24gdG8KIGAtZ3RgIGNvbXBhcmlzb24gaW4gYmFzaC4K\nClRoZXJlIGlzIG1vcmUgdG8gaXQgaWYgeW91IHdhbnQgdG8gbWFrZSB0aGlz\nIHJlbGlhYmxlLgpTZWUgbXkgcmFudGluZyBvbgpbUlBNIGF1dG8tYnVpbGRz\nIHdpdGggYGxhc3R2ZXJzaW9uYF0oaHR0cHM6Ly9naXRodWIuY29tL2R2ZXJz\naGluaW4vbGFzdHZlcnNpb24vd2lraS9Vc2UtaW4tUlBNLWJ1aWxkaW5nKQoK\nIyMjIyBDaGVjayBpZiB0aGVyZSBpcyBhIG5ld2VyIGtlcm5lbCBmb3IgeW91\nciBMaW51eCBtYWNoaW5lCgpgYGBiYXNoCkxBVEVTVF9LRVJORUw9JChsYXN0\ndmVyc2lvbiBsaW51eCAtZ3QgJCh1bmFtZSAtciB8IGN1dCAtZCAnLScgLWYg\nMSkpCmlmIFtbICQ/IC1lcSAwIF1dOyB0aGVuCiAgZWNobyAiSSBiZXR0ZXIg\ndXBkYXRlIG15IGtlcm5lbCBub3csIGJlY2F1c2UgJHtMQVRFU1RfS0VSTkVM\nfSBpcyB0aGVyZSIKZWxzZQogIGVjaG8gIk15IGtlcm5lbCBpcyBsYXRlc3Qg\nYW5kIGdyZWF0ZXN0LiIKZmkKYGBgCgojIyMjIEV4aXQgU3RhdHVzIGNvZGVz\nCgpFeGl0IHN0YXR1cyBjb2RlcyBhcmUgdGhlIHVzdWFsIG1lYW5zIG9mIGNv\nbW11bmljYXRpbmcgYSBjb21tYW5kJ3MgZXhlY3V0aW9uIHN1Y2Nlc3Mgb3Ig\nZmFpbHVyZS4KU28gYGxhc3R2ZXJzaW9uYCBmb2xsb3dzIHRoaXM6IHN1Y2Nl\nc3NmdWwgY29tbWFuZCByZXR1cm5zIGAwYCB3aGlsZSBhbnl0aGluZyBlbHNl\nIGlzIGFuIGVycm9yIG9mCnNvbWUga2luZC4KRm9yIGV4YW1wbGUsIHdoZW4g\ndGhlIGxhdGVzdCBzdGFibGUgcmVsZWFzZSB2ZXJzaW9uIGlmIGZvdW5kLCBg\nMGAgaXMgcmV0dXJuZWQuCmAwYCBpcyBhbHNvIHJldHVybmVkIGZvciBgLWd0\nYCBjb21wYXJpc29uIHdoZW4gbGVmdG1vc3QgYXJndW1lbnQgaXMgbmV3ZXIg\ndGhhbiByaWdodG1vc3QgYXJndW1lbnQuCgpFeGl0IHN0YXR1cyBjb2RlIGAx\nYCBpcyByZXR1cm5lZCBmb3IgY2FzZXMgbGlrZSBubyByZWxlYXNlIHRhZyBl\neGlzdGluZyBmb3IgcmVwb3NpdG9yeSBhdCBhbGwsIG9yCnJlcG9zaXRvcnkg\nZG9lcyBub3QgZXhpc3QuCgpFeGl0IHN0YXR1cyBjb2RlIGAyYCBpcyByZXR1\ncm5lZCBmb3IgYC1ndGAgdmVyc2lvbiBjb21wYXJpc29uIG5lZ2F0aXZlIGxv\nb2t1cCwgdGhhdCBpcyB3aGVuIHJpZ2h0bW9zdCBhcmd1bWVudCBpcyBuZXdl\ncgp0aGFuIGxlZnRtb3N0IGFyZ3VtZW50LgoKRXhpdCBzdGF0dXMgY29kZSBg\nM2AgaXMgcmV0dXJuZWQgd2hlbiBmaWx0ZXJpbmcgYXNzZXRzIG9mIGxhc3Qg\ncmVsZWFzZSB5aWVsZHMgZW1wdHkgVVJMIHNldAoobm8gbWF0Y2gpCgojIyBU\naXBzCgpHZXR0aW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBpcyBoZWF2eSBvbiB0\naGUgQVBJLCBiZWNhdXNlIEdpdEh1YiBkb2VzIG5vdCBhbGxvdyB0byBmZXRj\naCB0YWdzIGluCmNocm9ub2xvZ2ljYWwgb3JkZXIsIGFuZCBzb21lIHJlcG9z\naXRvcmllcyBzd2l0Y2ggZnJvbSBvbmUgdmVyc2lvbiBmb3JtYXQgdG8gYW5v\ndGhlciwgc28gKndlIGNhbid0Cmp1c3QgY29uc2lkZXIgdGhlIGhpZ2hlc3Qg\ndmVyc2lvbiB0byBiZSBsYXRlc3QqLgpXZSBoYXZlIHRvIGZldGNoIGV2ZXJ5\nIHRhZydzIGNvbW1pdCBkYXRlLCBhbmQgc2VlIGlmIGl0J3MgYWN0dWFsbHkg\nbW9yZSByZWNlbnQuIFRodXMsIGl0J3Mgc2xvd2VyCndpdGggbGFyZ2VyIHJl\ncG9zaXRvcmllcywgd2hpY2ggaGF2ZSBwb3RlbnRpYWxseSBhIGxvdCBvZiB0\nYWdzLgoKVGh1cywgYGxhc3R2ZXJzaW9uYCBtYWtlcyB1c2Ugb2YgY2FjaGlu\nZyBBUEkgcmVzcG9uc2UgdG8gYmUgZmFzdCBhbmQgbGlnaHQgb24gR2l0SHVi\nIEFQSSwKSXQgZG9lcyBjb25kaXRpb25hbCBFVGFnIHZhbGlkYXRpb24sIHdo\naWNoLCBhcyBwZXIgR2l0SHViIEFQSSB3aWxsIG5vdCBjb3VudCB0b3dhcmRz\nIHJhdGUgbGltaXQuClRoZSBjYWNoZSBpcyBzdG9yZWQgaW4gYH4vLmNhY2hl\nL2xhc3R2ZXJzaW9uYCBvbiBMaW51eCBzeXN0ZW1zLgoKSXQgaXMgKm11Y2gg\ncmVjb21tZW5kZWQqIHRvIHNldCB1cCB5b3VyIFtHaXRIdWIgQVBJIHRva2Vu\nXShodHRwczovL2dpdGh1Yi5jb20vc2V0dGluZ3MvdG9rZW5zKS4KQmFyZSBB\nUEkgdG9rZW4gaXMgZW5vdWdoLCB5b3UgbWF5IGRlc2VsZWN0IGFsbCBwZXJt\naXNzaW9ucy4KWW91IGNhbiB0aGVuIGluY3JlYXNlIHlvdXIgcmF0ZSBsaW1p\ndCBieSBhZGRpbmcgdGhlIGZvbGxvd2luZyBgfi8uYmFzaHJjYCBmaWxlOgoK\nYGBgYmFzaApleHBvcnQgR0lUSFVCX0FQSV9UT0tFTj14eHh4eHh4eHh4eHh4\neHgKYGBgCgpZb3UgY2FuIHVzZSBlaXRoZXIgYEdJVEhVQl9BUElfVE9LRU5g\nIG9yIGBHSVRIVUJfVE9LRU5gIGVudmlyb25tZW50IHZhcmlhYmxlLgpUaGUg\nZm9ybWVyIGhhcyBwcmlvcml0eS4KCkZvciBHaXRMYWIsIHlvdSBjYW4gdXNl\nIGEKW1BlcnNvbmFsIEFjY2VzcyBUb2tlbl0oaHR0cHM6Ly9kb2NzLmdpdGxh\nYi5jb20vZWUvdXNlci9wcm9maWxlL3BlcnNvbmFsX2FjY2Vzc190b2tlbnMu\naHRtbCk6CgpgYGBiYXNoCmV4cG9ydCBHSVRMQUJfUEFfVE9LRU49eHh4eHh4\neHh4eHh4eHh4CmBgYAoKVGhlbiBydW4gYHNvdXJjZSB+Ly5iYXNocmNgLiBB\nZnRlciB0aGlzLCBgbGFzdHZlcnNpb25gIHdpbGwgdXNlIGl0IHRvIGdldCBs\nYXJnZXIgQVBJIGNhbGxzIGFsbG93YW5jZQpmcm9tIEdpdEh1Yi4KCiMjIFVz\nYWdlIGluIGEgUHl0aG9uIG1vZHVsZQoKWW91IGNhbiB1c2UgYGxhc3R2ZXJz\naW9uLmhhc191cGRhdGUoLi4uKWAgdG8gZmluZCB3aGV0aGVyIGFuIHVwZGF0\nZSBmb3IgZXhpc3RpbmcgdmVyc2lvbiBvZgogc29tZXRoaW5nIGlzIGF2YWls\nYWJsZSwgc2ltcGx5OgoKYGBgcHl0aG9uCmZyb20gbGFzdHZlcnNpb24gaW1w\nb3J0IGhhc191cGRhdGUKbGF0ZXN0X3ZlcnNpb24gPSBoYXNfdXBkYXRlKHJl\ncG89Im1hdXRpYy9tYXV0aWMiLCBjdXJyZW50X3ZlcnNpb249JzEuMi4zJykK\naWYgbGF0ZXN0X3ZlcnNpb246CiAgICBwcmludChmJ05ld2VyIE1hdXRpYyB2\nZXJzaW9uIGlzIGF2YWlsYWJsZToge2xhdGVzdF92ZXJzaW9ufScpCmVsc2U6\nCiAgICBwcmludCgnTm8gdXBkYXRlIGlzIGF2YWlsYWJsZScpCmBgYAoKVGhl\nIGBsYXN0dmVyc2lvbi5oYXNfdXBkYXRlKC4uLilgIGZ1bmN0aW9uIGFjY2Vw\ndHMgYW55IFVSTCBmcm9tIGEgcmVwb3NpdG9yeSAob3IgaXRzIHNob3J0IG5h\nbWUKLCBlLmcuIGBvd25lci9uYW1lYCkgYW5kIHlvdSBzaG91bGQgcGFzcyBh\nbiBleGlzdGluZy9jdXJyZW50IHZlcnNpb24uCgpJZiB5b3UgYXJlIGNoZWNr\naW5nIHZlcnNpb24gb2YgYSBwcm9qZWN0IG9uIFB5UGksIHN1cHBseSBhbiBh\nZGRpdGlvbmFsIGBhdD0ncGlwJ2AgYXJndW1lbnQsCmluIG9yZGVyIHRvIGF2\nb2lkIHBhc3NpbmcgdGhlIGZ1bGwgUHlQSSBVUkkgb2YgYSBwcm9qZWN0LCBh\nbmQgcmVtb3ZlIGFtYmlndWl0eSB3aXRoIEdpdEh1YiBob3N0ZWQKIHByb2pl\nY3RzLiBGb3IgZXhhbXBsZSwgY2hlY2tpbmcgZm9yIG5ld2VyIFJlcXVlc3Rz\nCmxpYnJhcnk6CgpgYGBweXRob24KZnJvbSBsYXN0dmVyc2lvbiBpbXBvcnQg\naGFzX3VwZGF0ZQpsYXRlc3RfdmVyc2lvbiA9IGhhc191cGRhdGUocmVwbz0i\ncmVxdWVzdHMiLCBhdD0ncGlwJywgY3VycmVudF92ZXJzaW9uPScxLjIuMycp\nCmlmIGxhdGVzdF92ZXJzaW9uOgogICAgcHJpbnQoJ05ld2VyIFJlcXVlc3Rz\nIGxpYnJhcnkgaXMgYXZhaWxhYmxlOiB7bGF0ZXN0X3ZlcnNpb259JykKZWxz\nZToKICAgIHByaW50KCdObyB1cGRhdGUgaXMgYXZhaWxhYmxlJykKYGBgCgpU\naGUgYGhhc191cGRhdGVgIGZ1bmN0aW9uIHJldHVybnMgZWl0aGVyOgoKKiAg\nIFRoZSBbVmVyc2lvbl0oaHR0cHM6Ly9wYWNrYWdpbmcucHlwYS5pby9lbi9s\nYXRlc3QvdmVyc2lvbi5odG1sI3BhY2thZ2luZy52ZXJzaW9uLlZlcnNpb24p\nIG9iamVjdAoqICAgYEZhbHNlYCBpZiB0aGVyZSBpcyBubyBuZXdlciB2ZXJz\naW9uIHRoYW4gdGhlIG9uZSBnaXZlbgoKQWx0ZXJuYXRpdmVseSwgaW52b2tl\nIGBsYXN0dmVyc2lvbi5sYXRlc3QoLi4uKWAgZnVuY3Rpb24gdG8gZ2V0IHRo\nZSBsYXRlc3QgdmVyc2lvbiBpbmZvcm1hdGlvbgogZm9yIGEgcmVwby4KCmBg\nYHB5dGhvbgpmcm9tIGxhc3R2ZXJzaW9uIGltcG9ydCBsYXRlc3QKZnJvbSBw\nYWNrYWdpbmcgaW1wb3J0IHZlcnNpb24KCmxhdGVzdF9tYXV0aWNfdmVyc2lv\nbiA9IGxhdGVzdCgibWF1dGljL21hdXRpYyIsIG91dHB1dF9mb3JtYXQ9J3Zl\ncnNpb24nLCBwcmVfb2s9VHJ1ZSkKCnByaW50KGYnTGF0ZXN0IE1hdXRpYyB2\nZXJzaW9uOiB7bGF0ZXN0X21hdXRpY192ZXJzaW9ufScpCgppZiBsYXRlc3Rf\nbWF1dGljX3ZlcnNpb24gPj0gdmVyc2lvbi5wYXJzZSgnMS44LjEnKToKICAg\nIHByaW50KCdJdCBpcyBuZXdlcicpCmBgYAoKV2l0aCBgb3V0cHV0X2Zvcm1h\ndD0ndmVyc2lvbidgICh0aGUgZGVmYXVsdCksIHRoZSBmdW5jdGlvbiByZXR1\ncm5zIGEKW1ZlcnNpb25dKGh0dHBzOi8vcGFja2FnaW5nLnB5cGEuaW8vZW4v\nbGF0ZXN0L3ZlcnNpb24uaHRtbCNwYWNrYWdpbmcudmVyc2lvbi5WZXJzaW9u\nKSBvYmplY3QsIG9yCiBgTm9uZWAuIFNvIHlvdSBjYW4gZG8gdGhpbmdzIGxp\na2UgYWJvdmUsIG5hbWVseSB2ZXJzaW9uIGNvbXBhcmlzb24sIGNoZWNraW5n\nIGRldiBzdGF0dXMsIGV0Yy4KCldpdGggYG91dHB1dF9mb3JtYXQ9J2RpY3Qn\nYCwgYSBkaWN0aW9uYXJ5IHJldHVybmVkIHdpdGggdGhlIGxhdGVzdCByZWxl\nYXNlIGluZm9ybWF0aW9uLCBvciBgRmFsc2VgLgpUaGUgZGljdGlvbmFyeSBr\nZXlzIHZhcnkgYmV0d2VlbiBkaWZmZXJlbnQgcHJvamVjdCBsb2NhdGlvbnMg\nKEdpdEh1YiB2cyBCaXRCdWNrZXQsIGZvciBleGFtcGxlKSwKYnV0IGFyZSBn\ndWFyYW50ZWVkIHRvIGFsd2F5cyBoYXZlIHRoZXNlIGtleXM6CgoqICAgYHZl\ncnNpb25gOiBbVmVyc2lvbl0oaHR0cHM6Ly9wYWNrYWdpbmcucHlwYS5pby9l\nbi9sYXRlc3QvdmVyc2lvbi5odG1sI3BhY2thZ2luZy52ZXJzaW9uLlZlcnNp\nb24pCiBvYmplY3QsIGNvbnRhaW5zIHRoZSBmb3VuZCByZWxlYXNlIHZlcnNp\nb24sIGUuZy4gYDEuMi4zYAoqICAgYHNvdXJjZWA6IHN0cmluZywgdGhlIGlk\nZW50aWZpZXIgb2YgdGhlIHByb2plY3Qgc291cmNlLCBlLmcuIGBnaXRodWJg\nLCBvciBgZ2l0bGFiYAoqICAgYHRhZ19kYXRlYDogZGF0ZXRpbWUgb2JqZWN0\nLCB0aGUgcmVsZWFzZSBkYXRlLCBlLmcuIGAyMDIwLTEyLTE1IDE0OjQxOjM5\nYAoqICAgYGZyb21gOiBzdHJpbmcsIGNvbnRhaW5zIGZ1bGx5IHF1YWxpZmll\nZCBVUkwgb2YgdGhlIHByb2plY3QKKiAgIGB0YWdfbmFtZWA6IHN0cmluZywg\ndmVyc2lvbiBjb250cm9sIHRhZyBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhl\nIHJlbGVhc2UKClRoZSBgbGFzdHZlcnNpb24ubGF0ZXN0YCBmdW5jdGlvbiBh\nY2NlcHRzIDMgYXJndW1lbnRzCgoqICAgYHJlcG9gLCBpbiBmb3JtYXQgb2Yg\nYDxvd25lcj4vPG5hbWU+YCwgb3IgYW55IFVSTCB1bmRlciB0aGlzIHJlcG9z\naXRvcnksIGUuZy4gYGh0dHBzOi8vZ2l0aHViLmNvbS9kdmVyc2hpbmluL2xh\nc3R2ZXJzaW9uL2lzc3Vlc2AKKiAgIGBmb3JtYXRgLCB3aGljaCBhY2NlcHRz\nIHRoZSBzYW1lIHZhbHVlcyBhcyB3aGVuIHlvdSBydW4gYGxhc3R2ZXJzaW9u\nYCBpbnRlcmFjdGl2ZWx5LCBhcyB3ZWxsIGFzCiBgZGljdGAgdG8gcmV0dXJu\nIGEgZGljdGlvbmFyeSBhcyBkZXNjcmliZWQgYWJvdmUKKiAgIGBwcmVfb2tg\nLCBib29sZWFuIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgcHJlLXJlbGVhc2Vz\nIGFzIHBvdGVudGlhbCB2ZXJzaW9ucwoqICAgYGF0YCwgc3BlY2lmaWVzIHBy\nb2plY3QgbG9jYXRpb24gd2hlbiB1c2luZyBvbmUtd29yZCByZXBvIG5hbWVz\nLCBvbmUgb2YKIGBnaXRodWJgLCBgZ2l0bGFiYCwgYGJpdGJ1Y2tldGAsIGBw\naXBgLCBgaGdgLCBgc2ZgLCBgd2Vic2l0ZS1mZWVkYCwgYGxvY2FsYAoKIyMg\nVXNpbmcgaW4gQ29udGludW91cyBJbnRlZ3JhdGlvbgoKWW91IGNhbiBhbHNv\nIHVzZSBgbGFzdHZlcnNpb25gIGRpcmVjdGx5IGluIHlvdXIgR2l0SHViIGFj\ndGlvbiB3b3JrZmxvd3MsCndpdGggW2BsYXN0dmVyc2lvbi1hY3Rpb25gXSho\ndHRwczovL2dpdGh1Yi5jb20vZHZlcnNoaW5pbi9sYXN0dmVyc2lvbi1hY3Rp\nb24pLgoKIyMgSG9zdGVkIEFQSSBPcHRpb24KClByZWZlciBhIGhvc3RlZCwg\nbm8taW5zdGFsbCBzb2x1dGlvbiBmb3IgZ2V0dGluZyB0aGUgbGF0ZXN0IHZl\ncnNpb25zPwpDaGVjayBvdXQgdGhlIFtsYXN0dmVyc2lvbiBBUEkgb24gUmFw\naWRBUEldKGh0dHBzOi8vcmFwaWRhcGkuY29tL2NpYXBuei9hcGkvbGFzdHZl\ncnNpb24pLgoKKipIaWdobGlnaHRzOioqCi0gKipObyBJbnN0YWxsYXRpb24g\nTmVlZGVkKio6IEFjY2VzcyB0aGUgbGF0ZXN0IHJlbGVhc2UgaW5mbyBvZiBh\nbnkgcHJvamVjdCBmcm9tIGFueSBlbnZpcm9ubWVudOKAlENJL0NEIHBpcGVs\naW5lcywgc2VydmVybGVzcyBmdW5jdGlvbnMsIG9yIGZyb250LWVuZCBjb2Rl\n4oCUd2l0aG91dCBpbnN0YWxsaW5nIGBsYXN0dmVyc2lvbmAuCi0gKipNdWx0\naXBsZSBFbmRwb2ludHMqKjogRmV0Y2gganVzdCB0aGUgdmVyc2lvbiwgYXNz\nZXRzLCBvciB0aGUgZnVsbCByZWxlYXNlIGRldGFpbHMgd2l0aCBmbGV4aWJs\nZSBKU09OIHJlc3BvbnNlcy4KLSAqKkNvbW1lcmNpYWwgU3VwcG9ydCoqOiBG\nb3IgdXNlcnMgd2hvIG5lZWQgYSBxdWljaywgZnVsbHkgaG9zdGVkIHNvbHV0\naW9uIChvciBjYW7igJl0IGluc3RhbGwgb24gY2VydGFpbiBzeXN0ZW1zKSwg\ndGhlIEFQSSBtYXkgYmUgbW9yZSBjb252ZW5pZW50LgoKKk9mIGNvdXJzZSwg\ndGhlIG9wZW4tc291cmNlIENMSSByZW1haW5zIGZyZWUgYW5kIGZ1bGx5IGZl\nYXR1cmVkLiBUaGlzIEFQSSBpcyBhbiBvcHRpb25hbCBob3N0ZWQgc2Vydmlj\nZS4qCgojIyBGZWF0dXJlIFJlcXVlc3RzIGFuZCBFbmhhbmNlbWVudHMKCk9u\nbHkgZmVhdHVyZXMgdGhhdCBhcmUgZXNzZW50aWFsIHRvIEdpdEh1YiByZWxl\nYXNlcyBhcmUgcHJpb3JpdGl6ZWQuIElmIHlvdXIgaXNzdWUgb3Igc3VnZ2Vz\ndGVkIGZlYXR1cmUgaXMgb3V0c2lkZSB0aGUgY3VycmVudCBmb2N1cywgaGVy\nZSdzIGhvdyB5b3UgY2FuIGhlbHAgbWFrZSBpdCBoYXBwZW46CgotICoqQ29u\ndHJpYnV0ZSoqOiBXZSBlbmNvdXJhZ2UgeW91IHRvIHN1Ym1pdCBhIHB1bGwg\ncmVxdWVzdCB3aXRoIHlvdXIgcHJvcG9zZWQgY2hhbmdlcyBvciBlbmhhbmNl\nbWVudC4KLSAqKkRvbmF0ZSoqOiBJZiB5b3UnZCBsaWtlIHRvIHNlZSBhIGZl\nYXR1cmUgZGV2ZWxvcGVkIGJ1dCBjYW5ub3QgY29udHJpYnV0ZSBjb2RlLCBj\nb25zaWRlciBbbWFraW5nIGEgZG9uYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNv\nbS9zcG9uc29ycy9kdmVyc2hpbmluKS4gWW91ciBkb25hdGlvbnMgaGVscCB1\ncyBhbGxvY2F0ZSByZXNvdXJjZXMgdG8gd29yayBvbiBhZGRpdGlvbmFsIGZl\nYXR1cmVzIGFuZCBpbXByb3ZlbWVudHMuCgojIyBQcm9qZWN0IEluZGVwZW5k\nZW5jZQoKKipsYXN0dmVyc2lvbioqIGlzIGFuIGluZGVwZW5kZW50IG9wZW4t\nc291cmNlIHByb2plY3QgbWFpbnRhaW5lZCBieSBjb250cmlidXRvcnMuIEl0\nIGlzIG5vdCBhZmZpbGlhdGVkIHdpdGggYW55IGNvbW1lcmNpYWwgZW50aXRp\nZXMuCgotLS0KCipUaGlzIHByb2plY3QgaXMgZGV2ZWxvcGVkIHVzaW5nIFtK\nZXRCcmFpbnNdKGh0dHBzOi8vd3d3LmpldGJyYWlucy5jb20vKSB0b29scy4q\nCg==\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/dvershinin/lastversion/contents/README.md?ref=v3.6.10","git":"https://api.github.com/repos/dvershinin/lastversion/git/blobs/9e7773467dc2c3b34dbb963ba88b833283e166c3","html":"https://github.com/dvershinin/lastversion/blob/v3.6.10/README.md"}},"from":"https://github.com/dvershinin/lastversion","rpmspec_license":"BSD","source_url":"https://github.com/dvershinin/lastversion/archive/v3.6.10/lastversion-v3.6.10.tar.gz"}