# # patch "ChangeLog" # from [012048b71f64fbe18c149bee6bcf99f24011666f] # to [d975e96baab064b053f56997fd12287654bd8770] # # patch "tests/t_merge_6.at" # from [98c527059720ddf78cad7457e859dbeafe60ecf6] # to [b164c34e148c527df216a29d3e9126f52876e5ff] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,9 @@ 2005-04-28 Matt Johnston + * tests/t_merge_6.at: narrow the testcase down considerably. + +2005-04-28 Matt Johnston + * tests/t_merge_6.at, testsuite.at: add a new test for the case where duplicate lines appear in a file during a merge. This testcase can be correctly handled by merge(1). --- tests/t_merge_6.at +++ tests/t_merge_6.at @@ -9,758 +9,68 @@ # Another real merge error. This is the diff between the correct # result and the file produced by the merge: # -# --- correct Thu Apr 28 14:52:11 2005 -# +++ testfile Thu Apr 28 14:52:20 2005 -# @@ -277,6 +277,17 @@ -# committing a new revision, rather than the current time. Useful when -# importing history from another version control system. -# .TP -# +\fB--author=\fI\fP -# +Use the given author as the value of the "author" cert when committing -# +a new revision, rather than the default author. Useful when -# +committing a patch on behalf of someone else, or when importing -# +history from another version control system. -# +.TP -# +\fB--date=\fI\fP -# +Use the given given date and time as value of the "date" cert when -# +committing a new revision, rather than the current time. Useful when -# +importing history from another version control system. -# +.TP -# \fB--root=\fI\fP -# Stop the search for a working copy (containing the @file{MT} directory) -# at the specified root directory rather than at the physical root of the +# --- correct Thu Apr 28 15:38:27 2005 +# +++ testfile Thu Apr 28 15:38:36 2005 +# @@ -5,6 +5,10 @@ +# 3 +# 4 +# a +# +2 +# +3 +# +4 +# +a +# q +# d +# g -# merge(1) can handle this merge correctly. +# merge(1) can handle this merge correctly. Experimenting with the input files, +# it seems that the second 'a' character in the left and right files has some +# importance. -AT_DATA(parent.b64, [ -LlRIICJtb25vdG9uZSIgMQouU0ggTkFNRQptb25vdG9uZSBcLSBkaXN0cmlidXRlZCB2ZXJzaW9u -IGNvbnRyb2wgc3lzdGVtCi5TSCBTWU5PUFNJUwpcZkJtb25vdG9uZVxmUCBcZklbb3B0aW9uc10g -PGNvbW1hbmQ+IFtwYXJhbWV0ZXJzXVxmUAouUApPcHRpb25zLCB3aGljaCBhZmZlY3QgZ2xvYmFs -IGJlaGF2aW9yIG9yIHNldCBkZWZhdWx0IHZhbHVlcywgY29tZQpmaXJzdCBpbiB0aGUgYXJndW1l -bnQgbGlzdC4gQSBzaW5nbGUgY29tbWFuZCBtdXN0IGZvbGxvdywgaW5kaWNhdGluZwp0aGUgb3Bl -cmF0aW9uIHRvIHBlcmZvcm0sIGZvbGxvd2VkIGJ5IHBhcmFtZXRlcnMgd2hpY2ggdmFyeSBkZXBl -bmRpbmcKb24gdGhlIGNvbW1hbmQuCi5TUyBOb3RlClRoaXMgbWFucGFnZSBpcyBhIHN1bW1hcnkg -b2Ygc29tZSBvZiB0aGUgZmVhdHVyZXMgYW5kIGNvbW1hbmRzIG9mClxmQm1vbm90b25lXGZQLCBi -dXQgaXQgaXMgbm90IHRoZSBtb3N0IGRldGFpbGVkIHNvdXJjZSBvZiBpbmZvcm1hdGlvbgphdmFp -bGFibGUuIEZvciBhIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgdGhlIGNvbmNlcHRzIGFuZCBhIHR1 -dG9yaWFsIG9uCml0cyB1c2UsIHBsZWFzZSByZWZlciB0byB0aGUgdGV4aW5mbyBtYW51YWwgKHZp -YSB0aGUgXGZCaW5mbwptb25vdG9uZVxmUCBjb21tYW5kLCBvciBvbmxpbmUpLgouU1MgQ29tbWFu -ZHMKLlRQIApcZkJjb21tZW50XGZQIFxmSTxpZD5cZlAKV3JpdGUgYSBjb21tZW50IGNlcnQgZm9y -IGEgcmV2aXNpb24uCi5UUApcZkJhcHByb3ZlXGZQIFxmSTxpZD5cZlAKTWFrZSBhICJicmFuY2gi -IGNlcnQgYXBwcm92aW5nIG9mIGEgcmV2aXNpb24ncyBtZW1iZXJzaGlwIGluIGEgYnJhbmNoLgou -VFAKXGZCZGlzYXBwcm92ZVxmUCBcZkk8aWQxPlxmUApEaXNhcHByb3ZlIG9mIGEgcmV2aXNpb24s -IGNvbW1pdHRpbmcgdGhlIGludmVyc2UgY2hhbmdlcyBhcyBhcyBhCmRlc2NlbmRhbnQgb2YgdGhl -IGRpc2FwcHJvdmVkIHJldmlzaW9uLgouVFAKXGZCdGFnXGZQIFxmSTxpZD4gPHRhZ25hbWU+XGZQ -ClB1dCBhIHN5bWJvbGljIHRhZyBjZXJ0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJ0ZXN0cmVzdWx0 -XGZQIFxmSTxpZD4gKDB8MXx0cnVlfGZhbHNlfHllc3xub3xwYXNzfGZhaWwpXGZQCkluZGljYXRl -IGEgcGFzc2luZyBvciBmYWlsaW5nIHRlc3QgcmVzdWx0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJh -Z3JhcGhcZlAKRHVtcCByZXZpc2lvbiBncmFwaCB0byBzdGRvdXQgaW4gVkNHIGZvcm1hdC4KLlRQ -ClxmQmRpZmYgXGZJWy0tcmV2aXNpb249PGlkMT4gWy0tcmV2aXNpb249PGlkMj5dIF0gWzxwYXRo -bmFtZT4uLi5dXGZQClNob3cgZGlmZnMgYmV0d2VlbiB3b3JraW5nIGNvcHkgYW5kIGRhdGFiYXNl -LgouVFAKXGZCc3RhdHVzIFxmSVs8cGF0aG5hbWU+Li4uXVxmUApTaG93IHN0YXR1cyBvZiB3b3Jr -aW5nIGNvcHkuCi5UUApcZkJsb2dcZlAgXGZJW2lkXSBcZlAKU2hvdyBoaXN0b3JpY2FsIGxvZyBv -ZiByZXZpc2lvbnMsIHN0YXJ0aW5nIGZyb20gd29ya2luZyBjb3B5CmJhc2UgcmV2aXNpb24sIG9y -IFxmSVtpZF1cZlAgaWYgZ2l2ZW4uCi5UUApcZkJjZXJ0XGZQIFxmSTxpZD4gPGNlcnRuYW1lPiBb -Y2VydHZhbF1cZlAKQ3JlYXRlIGEgY3VzdG9tIGNlcnQgZm9yIGEgcmV2aXNpb24uIFJlYWRzIGNl -cnQgdmFsdWUKZnJvbSBzdGRpbiBpZiBubyB2YWx1ZSBnaXZlbiBvbiBjb21tYW5kIGxpbmUuCi5U -UApcZkJnZW5rZXlcZlAgXGZJPGtleWlkPlxmUApHZW5lcmF0ZSBhbiBSU0Ega2V5LXBhaXIgYW5k -IHN0b3JlIGl0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxjaGtleXBhc3NcZlAgXGZJPGtleWlkPlxm -UApDaGFuZ2UgcGFzc3BocmFzZSBvZiB0aGUgcHJpdmF0ZSBoYWxmIG9mIGEga2V5LgouVFAKXGZC -bGlzdCBjZXJ0c1xmUCBcZkk8aWQ+XGZQCkxpc3QgY2VydHMgYXNzb2NpYXRlZCB3aXRoIHJldmlz -aW9uLgouVFAKXGZCbGlzdCBrZXlzXGZQIFxmSVtwYXJ0aWFsLWlkXVxmUApMaXN0IGtleXMgbWF0 -Y2hpbmcgZ2xvYiwgb3IgbGlzdCBhbGwga2V5cyBpZiBubyBnbG9iIGdpdmVuLgouVFAKXGZCbGlz -dCBicmFuY2hlc1xmUApMaXN0IGFsbCBicmFuY2hlcy4KLlRQClxmQmxpc3QgdGFnc1xmUApMaXN0 -IGFsbCB0YWdzLgouVFAKXGZCbGlzdCB2YXJzIFxmSVs8ZG9tYWluPl1cZlAKTGlzdCBhbGwgdmFy -cyAocG9zc2libHkgbGltaXRlZCBieSBkb21haW4pLgouVFAKXGZCbGlzdCB1bmtub3duIFxmSVs8 -cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gd29ya2luZyBkaXJlY3RvcnksIGJ1dCBub3Qg -aW4gcmV2aXNpb24ncyBtYW5pZmVzdCBvcgp3b3JrIGxpc3QuCi5UUApcZkJsaXN0IGlnbm9yZWQg -XGZJWzxwYXRobmFtZS4uLl1cZlAKTGlzdCBmaWxlcyBpbnRlbnRpb25hbGx5IGlnbm9yZWQgZHVl -IHRvIHRoZSBpZ25vcmVfZmlsZSBob29rLgouVFAKXGZCbGlzdCBtaXNzaW5nIFxmSVs8cGF0aG5h -bWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gcmV2aXNpb24ncyBtYW5pZmVzdCwgYnV0IG5vdCBpbiB3 -b3JraW5nIGRpcmVjdG9yeS4KLlRQClxmQmZkYXRhXGZQIFxmSTxpZD5cZlAKV3JpdGUgZmlsZSBk -YXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJmZGVsdGFcZlAgXGZJPG9sZGlkPiA8bmV3aWQ+ -XGZQCldyaXRlIGZpbGUgZGVsdGEgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQm1kYXRhXGZQIFxm -STxpZD5cZlAKV3JpdGUgbWFuaWZlc3QgZGF0YSBwYWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCbWRl -bHRhXGZQIFxmSTxvbGRpZD4gPG5ld2lkPlxmUApXcml0ZSBtYW5pZmVzdCBkZWx0YSBwYWNrZXQg -dG8gc3Rkb3V0LgouVFAKXGZCY2VydHNcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZpc2lvbiBjZXJ0 -IHBhY2tldHMgdG8gc3Rkb3V0LgouVFAKXGZCcmRhdGFcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZp -c2lvbiBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJwcml2a2V5XGZQIFxmSTxpZD5cZlAK -V3JpdGUgcHJpdmF0ZSBrZXkgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQnB1YmtleVxmUCBcZkk8 -aWQ+XGZQCldyaXRlIHB1YmxpYyBrZXkgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQnJlYWRcZlAK -UmVhZCBwYWNrZXRzIGZyb20gc3RkaW4uIAouVFAKXGZCY3ZzX2ltcG9ydFxmUCBcZkk8Y3Zzcm9v -dD5cZlAKSW1wb3J0IGFsbCB2ZXJzaW9ucyBpbiBDVlMgcmVwb3NpdG9yeS4gUmVjb25zdHJ1Y3Rz -IHJldmlzaW9ucyBhbmQKY29udmVydHMgbWV0YWRhdGEgdG8gY2VydGlmaWNhdGVzLiBBIHByaXZh -dGUgc2lnbmluZyBrZXkgbXVzdCBhbHJlYWR5CmV4aXN0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxm -QnJjc19pbXBvcnRcZlAgXGZJPHJjc2ZpbGU+IC4uLlxmUApJbXBvcnQgYWxsIGZpbGUgdmVyc2lv -bnMgaW4gUkNTIGZpbGVzLiBEb2VzIG5vdCByZWNvbnN0cnVjdCByZXZpc2lvbnMKYWNyb3NzIHRo -ZSBlbnRpcmUgdHJlZS4KLlRQClxmQmNoZWNrb3V0XGZQIFxmSVttYW5pZmVzdC1pZF1cZlAgXGZJ -PGRpcmVjdG9yeVxmUApDaGVjayBvdXQgdHJlZSBzdGF0ZSBmcm9tIGRhdGFiYXNlLgouVFAKXGZC -Y29cZlAgXGZJW21hbmlmZXN0LWlkXVxmUCBcZkk8ZGlyZWN0b3J5XGZQCkNoZWNrIG91dCB0cmVl -IHN0YXRlIGZyb20gZGF0YWJhc2U7IGFuIGFsaWFzIGZvciBcZkJjaGVja291dFxmUC4KLlRQClxm -QmNhdFxmUCBcZkkoZmlsZXxtYW5pZmVzdCkgPGlkPlxmUApXcml0ZSBmaWxlIG9yIG1hbmlmZXN0 -IGZyb20gZGF0YWJhc2UgdG8gc3Rkb3V0LgouVFAKXGZCaGVhZHNcZlAKU2hvdyB1bm1lcmdlZCBo -ZWFkcyBvZiBicmFuY2gsIG9yIHJlcG9ydCB3aGVuIGJyYW5jaCBpcyBtZXJnZWQuCi5UUApcZkJt -ZXJnZVxmUApNZXJnZSB1bm1lcmdlZCBoZWFkcyBvZiBicmFuY2guCi5UUApcZkJhZGRcZlAgXGZJ -PHBhdGhuYW1lPiBbLi4uXVxmUApBZGQgZmlsZXMgdG8gd29ya2luZyBjb3B5LiBhZGRpbmcgYSBm -aWxlIGRvZXMgbm90IGNvcHkgaXQgaW50byB0aGUgZGF0YWJhc2UsCm1lcmVseSBhZGRzIGl0IHRv -IHRoZSB3b3JrIGxpc3QuIFlvdSBtdXN0IFxmQmNvbW1pdFxmUCB5b3VyIGNoYW5nZXMgaW4gb3Jk -ZXIKdG8gY29weSBhZGRlZCBmaWxlcyB0byB0aGUgZGF0YWJhc2UuCi5UUApcZkJkcm9wXGZQIFxm -STxwYXRobmFtZT4gWy4uLl1cZlAKRHJvcCBmaWxlcyBmcm9tIHdvcmtpbmcgY29weS4gRmlsZXMg -YXJlIG5vdCBkZWxldGVkIGZyb20gd29ya2luZyBjb3B5LCAKbWVyZWx5IG5vdGVkIGFzIHJlbW92 -YWxzIGluIHRoZSB3b3JrIGxpc3QuCi5UUApcZkJyZW5hbWVcZlAgXGZJPHNyYz4gXGZJPGRzdD5c -ZlAKUmVuYW1lIGZpbGVzIGZyb20gXGZJPHNyYz4gXGZQIHRvIFxmSTxkc3Q+IFxmUCBpbiB3b3Jr -aW5nIGNvcHkuCi5UUApcZkJjb21taXRcZlAgXGZJWy0tbWVzc2FnZT08bG9nIG1lc3NhZ2U+XSBb -PHBhdGhuYW1lPi4uLl1cZlAgCkNvbW1pdCB3b3JraW5nIGNvcHkgdG8gZGF0YWJhc2UuIElmIGEg -LS1tZXNzYWdlIG9wdGlvbiBpcyBwcm92aWRlZCBvbgp0aGUgY29tbWFuZCBpbmUsIGl0IGlzIHVz -ZWQ7IG90aGVyd2lzZSBhIGxvZyBtZXNzYWdlIGVkaXRvciB3aWxsIGJlCmludm9rZWQuCi5UUApc -ZkJ1cGRhdGVcZlAgClVwZGF0ZSB3b3JraW5nIGNvcHkuCi5UUApcZkJwdXNoXGZQIFxmSTxob3N0 -PiA8Y29sbGVjdGlvbj5cZlAgClB1c2ggY29udGVudHMgb2YgXGZJPGNvbGxlY3Rpb24+XGZQIHRv -IGRhdGFiYXNlIG9uIFxmSTxob3N0PlxmUCAKLlRQClxmQnB1bGxcZlAgXGZJPGhvc3Q+IDxjb2xs -ZWN0aW9uPlxmUCAKUHVzaCBjb250ZW50cyBvZiBcZkk8Y29sbGVjdGlvbj5cZlAgZnJvbSBkYXRh -YmFzZSBvbiBcZkk8aG9zdD5cZlAgCi5UUApcZkJzeW5jXGZQIFxmSTxob3N0PiA8Y29sbGVjdGlv -bj5cZlAgClN5bmMgY29udGVudHMgb2YgXGZJPGNvbGxlY3Rpb24+XGZQIHdpdGggZGF0YWJhc2Ug -b24gXGZJPGhvc3Q+XGZQIAouVFAKXGZCc2VydmVcZlAgXGZJPGhvc3Q+IDxjb2xsZWN0aW9uPlxm -UCAKU2VydmUgY29udGVudHMgb2YgXGZJPGNvbGxlY3Rpb24+XGZQIGF0IG5ldHdvcmsgYWRkcmVz -cyBcZkk8aG9zdD5cZlAgCi5UUApcZkJzZXRcZlAgXGZJPGRvbWFpbj4gPG5hbWU+IDx2YWx1ZT5c -ZlAgClNldCB0aGUgZGIgdmFyIFxmSTxuYW1lPlxmUCBpbiBkb21haW4gXGZJPGRvbWFpbj5cZlAg -dG8gdmFsdWUKXGZJPHZhbHVlPlxmUC4gCi5UUApcZkJ1bnNldFxmUCBcZkk8ZG9tYWluPiA8bmFt -ZT5cZlAgCkRlbGV0ZSBhbnkgc2V0dGluZyBmb3IgZGIgdmFyIFxmSTxuYW1lPlxmUCBpbiBkb21h -aW4gXGZJPGRvbWFpbj5cZlAuCi5UUApcZkJhdXRvbWF0ZVxmUCBcZkkoaW50ZXJmYWNlX3ZlcnNp -b258aGVhZHN8ZGVzY2VuZGVudHN8ZXJhc2VfYW5jZXN0b3JzfHRvcG9zb3J0fGFuY2VzdHJ5X2Rp -ZmZlcmVuY2V8bGVhdmVzKVxmUApTY3JpcHRpbmcgaW50ZXJmYWNlLgouVFAKXGZCZGJcZlAgXGZJ -KGluaXR8aW5mb3x2ZXJzaW9ufGR1bXB8bG9hZHxtaWdyYXRlfHJlYnVpbGR8ZXhlY3V0ZXxjaGVj -aylcZlAKTWFuaXB1bGF0ZSBkYXRhYmFzZSBzdGF0ZS4KLlNIIERFU0NSSVBUSU9OCk1vbm90b25l -IGlzIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgd2hpY2ggYWxsb3dzIHlvdSB0byBrZWVwIG9s -ZAp2ZXJzaW9ucyBvZiBmaWxlcywgYXMgd2VsbCBhcyBzcGVjaWFsIFxmSW1hbmlmZXN0IGZpbGVz -XGZQIHdoaWNoCmRlc2NyaWJlIHRoZSBsb2NhdGlvbiBvZiBmaWxlcyBpbiBhIHRyZWUuIFVubGlr -ZSBvdGhlciBzeXN0ZW1zLAp2ZXJzaW9ucyBpbiBtb25vdG9uZSBhcmUgXGZJaWRlbnRpZmllZFxm -UCBieSBjcnlwdG9ncmFwaGljIGhhc2gsIGFuZApvcGVyYXRpb25zIGFyZSBhdXRoZW50aWNhdGVk -IGJ5IGluZGl2aWR1YWwgdXNlcnMnIGV2YWx1YXRpbmcKY3J5cHRvZ3JhcGhpYyBzaWduYXR1cmVz -IG9uIG1ldGEtZGF0YSwgcmF0aGVyIHRoYW4gYW55IGNlbnRyYWwKYXV0aG9yaXR5LgoKTW9ub3Rv -bmUga2VlcHMgYSBjb2xsZWN0aW9uIG9mIHZlcnNpb25zIGluIGEgc2luZ2xlLWZpbGUgcmVsYXRp -b25hbApkYXRhYmFzZS4gSXQgaXMgZXNzZW50aWFsbHkgc2VydmVybGVzcywgdXNpbmcgbmV0d29y -ayBzZXJ2ZXJzIG9ubHkgYXMKdW50cnVzdGVkIGNvbW11bmljYXRpb24gZmFjaWxpdGllcy4gQSBt -b25vdG9uZSBkYXRhYmFzZSBpcyBhIHJlZ3VsYXIKZmlsZSwgd2hpY2ggY29udGFpbnMgYWxsIHRo -ZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gZXh0cmFjdCBwcmV2aW91cwp2ZXJzaW9ucyBvZiBmaWxl -cywgdmVyaWZ5IHNpZ25hdHVyZXMsIG1lcmdlIGFuZCBtb2RpZnkgdmVyc2lvbnMsIGFuZApjb21t -dW5pY2F0ZSB3aXRoIG5ldHdvcmsgc2VydmVycy4KLlNIIE9QVElPTlMKLlRQClxmQi0taGVscFxm -UApQcmludCBoZWxwIG1lc3NhZ2UuCi5UUApcZkItLWRlYnVnXGZQClR1cm4gb24gZGVidWdnaW5n -IGxvZyBvbiBzdGFuZGFyZCBlcnJvciBzdHJlYW0uIFRoaXMgaXMgdmVyeQp2ZXJib3NlLiBEZWZh -dWx0IGlzIHRvIGJlIHNpbGVudCwgdW5sZXNzIGFuIGVycm9yIG9jY3VycywgaW4gd2hpY2gKY2Fz -ZSBmYWlsdXJlIGxvZyBpcyBkdW1wZWQuCi5UUApcZkItLXF1aWV0XGZQClR1cm4gb2ZmIG5vcm1h -bCBwcm9ncmVzcyBtZXNzYWdlcy4KLlRQClxmQi0tZHVtcD1cZlBcZkk8ZmlsZT5cZlAKRHVtcCBk -ZWJ1Z2dpbmcgbG9nIHRvIFxmSWZpbGVcZlAgb24gZmFpbHVyZS4KLlRQClxmQi0tbm9zdGRcZlAK -RG8gbm90IGV2YWx1YXRlICJzdGFuZGFyZCIgbHVhIGhvb2tzIGNvbXBpbGVkIGludG8gXGZCbW9u -b3RvbmVcZlAuCi5UUApcZkItLW5vcmNcZlAKRG8gbm90IGxvYWQgbHVhIGhvb2tzIGZyb20gdXNl -cidzIFxmQn4vLm1vbm90b25lcmNcZlAgZmlsZS4KLlRQClxmQi0tcmNmaWxlPVxmUFxmSTxmaWxl -PlxmUApMb2FkIGV4dHJhIGx1YSBob29rcyBmcm9tIFxmSWZpbGVcZlAgKG1heSBiZSBnaXZlbiBt -dWx0aXBsZSB0aW1lcykuCi5UUApcZkItLWRiPVxmUFxmSTxmaWxlPlxmUApVc2UgZGF0YWJhc2Ug -aW4gXGZJZmlsZVxmUC4KLlRQClxmQi0ta2V5PVxmUFxmSTxrZXlpZD5cZlAKVXNlIFxmSWtleWlk -XGZQIGZvciBvcGVyYXRpb25zIHdoaWNoIHByb2R1Y2UgUlNBIHNpZ25hdHVyZXMuIERlZmF1bHQK -aXMgaW5mZXJyZWQgZnJvbSBwcmVzZW5jZSBvZiB1bmlxdWUgcHJpdmF0ZSBrZXkgaW4gZGF0YWJh -c2UuIENhbiBhbHNvCmJlIGN1c3RvbWl6ZWQgb24gYSBwZXItYnJhbmNoIGJhc2lzIHdpdGggaG9v -ayBmdW5jdGlvbiAKXGZCZ2V0X2JyYW5jaF9rZXkoYnJhbmNobmFtZSlcZlAuCi5UUApcZkIta1xm -UCBcZkk8a2V5aWQ+XGZQCkFuIGFsaWFzIGZvciBcZkItLWtleT1cZlBcZkk8a2V5aWQ+XGZQCi5U -UApcZkItLWJyYW5jaD1cZlBcZkk8YnJhbmNobmFtZT5cZlAKVXNlIFxmSWJyYW5jaG5hbWVcZlAg -Zm9yIG9wZXJhdGlvbnMgb24gYSBicmFuY2guIERlZmF1bHQgaXMgaW5mZXJyZWQKaW4gb3BlcmF0 -aW9ucyBvbiBleGlzdGluZyBicmFuY2hlcyAoY29tbWl0LCB1cGRhdGUsIGV0YykuCi5UUApcZkIt -YlxmUCBcZkk8YnJhbmNobmFtZT5cZlAKQW4gYWxpYXMgZm9yIFxmQi0tYnJhbmNoPVxmUFxmSTxi -cmFuY2huYW1lPlxmUAouVFAKXGZCLS10aWNrZXQ9XGZQXGZJZG90fGNvdW50XGZQClVzZSB0aGUg -Z2l2ZW4gbWV0aG9kIHRvIHByaW50IHRpY2tlcnMuICBUaGUgXGZCY291bnRcZlAgbWV0aG9kIHBy -aW50cwp0aGUgY291bnQgZm9yIGVhY2ggdGlja2VyIG9uIG9uZSBsaW5lLCBpbmNyZW1lbnRpbmcg -dGhlIG51bWJlcnMgaW4KcGxhY2UsIHdoaWxlIHRoZSBcZkJkb3RcZlAgbWV0aG9kIHByaW50cyBh -IGNvbnRpbnVvdXMgc3RyaW5nIG9mCmNoYXJhY3RlcnMgKGxpa2Ugc29tZSBwcm9ncmFtcyBwcm92 -aWRlIGEgcHJvZ3Jlc3MgbGluZSBvZiBkb3RzKS4KVGhlIGRlZmF1bHQgaXMgXGZCY291bnRcZlAu -Ci5UUApcZkItLXJldmlzaW9uPVxmUFxmSTxpZD5cZlAKQ3VycmVudGx5IHRoaXMgb3B0aW9uIG9u -bHkgYXBwbGllcyB0byB0aGUgZGlmZiBjb21tYW5kIHdoZXJlIGl0IG1heSBiZQp1c2VkIHRvIGNv -bXBhcmUgYSB3b3JraW5nIGNvcHkgd2l0aCBhIHNwZWNpZmljIHJldmlzaW9uIG9yIHRvIGNvbXBh -cmUKdHdvIHNwZWNpZmljIHJldmlzaW9ucy4gSXQgd2lsbCBsaWtlbHkgYXBwbHkgdG8gb3RoZXIg -Y29tbWFuZHMgaW4gdGhlCmZ1dHVyZS4KLlRQClxmQi1yXGZQIFxmSTxpZD5cZlAKQW4gYWxpYXMg -Zm9yIFxmQi0tcmV2aXNpb249XGZQXGZJPGlkPlxmUAouVFAKXGZCLS1tZXNzYWdlPVxmSTxsb2cg -bWVzc2FnZT5cZlAKVXNlIHRoZSBnaXZlbiBtZXNzYWdlIGFzIHRoZSBjaGFuZ2Vsb2cgd2hlbiBj -b21taXR0aW5nIGEgbmV3IHJldmlzaW9uCnJhdGhlciB0aGFuIGludm9raW5nIHRoZSBsb2cgbWVz -c2FnZSBlZGl0b3IuIEN1cnJlbnRseSB0aGlzIG9wdGlvbiBvbmx5CmFwcGxpZXMgdG8gdGhlIGNv -bW1pdCBjb21tYW5kIGJ1dCBpdCBtYXkgYWxzbyBhcHBseSB0byB0aGUgY29tbWVudApjb21tYW5k -IGluIHRoZSBmdXR1cmUuCi5UUApcZkItbSBcZkk8bG9nIG1lc3NhZ2U+XGZQCkFuIGFsaWFzIGZv -ciBcZkItLW1lc3NhZ2U9XGZJPGxvZyBtZXNzYWdlPlxmUAouVFAKXGZCLS1yb290PVxmSTxyb290 -IGRpcj5cZlAKU3RvcCB0aGUgc2VhcmNoIGZvciBhIHdvcmtpbmcgY29weSAoY29udGFpbmluZyB0 -aGUgQGZpbGV7TVR9IGRpcmVjdG9yeSkKYXQgdGhlIHNwZWNpZmllZCByb290IGRpcmVjdG9yeSBy -YXRoZXIgdGhhbiBhdCB0aGUgcGh5c2ljYWwgcm9vdCBvZiB0aGUKZmlsZXN5c3RlbS4KLlRQClxm -Qi14YXJncz1cZkk8ZmlsZT5cZlAKSW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBpbiBw -bGFjZSBhbW9uZyB0aGUgY29tbWFuZCBsaW5lCmFyZ3VtZW50cy4gIFRoaXMgbWF5IGJlIHVzZWZ1 -bCBpbiBjYXNlIHRoZSBjb21tYW5kIGxpbmUgd291bGQKb3RoZXJ3aXNlIGJlY29tZSB0b28gbG9u -ZyBmb3IgeW91ciBzeXN0ZW0uICBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZAptb3JlIHRoYW4gb25j -ZSBpZiBuZWVkZWQuCi5UUApcZkItQCBcZkk8ZmlsZT5cZlAKQW4gYWxpYXMgZm9yIFxmQi0teGFy -Z3M9XGZJPGZpbGU+XGZQCgouU0ggRU5WSVJPTk1FTlQKLlRQClxmQkVESVRPUlxmUApVc2VkIHRv -IGVkaXQgY29tbWVudHMsIGxvZyBtZXNzYWdlcywgZXRjLgouVFAKXGZCVklTVUFMXGZQClVzZWQg -aW4gcHJlZmVyZW5jZSB0byBcZkJFRElUT1JcZlAsIGlmIHNldC4KLlNIIEZJTEVTCi5UUApcZkIk -SE9NRS8ubW9ub3RvbmVyY1xmUApBIGx1YSBzY3JpcHQsIHVzZWQgYXMgYSBjdXN0b21pemF0aW9u -IGZpbGUuCi5TSCBOT1RFUwouSVAgXChidQpDb21tYW5kIGxpbmUgb3B0aW9ucyBvdmVycmlkZSBl -bnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kCnNldHRpbmdzIGluIGx1YSBzY3JpcHRzIChzdWNoIGFz -IFxmQi5tb25vdG9uZXJjXGZQKQouU0ggIlNFRSBBTFNPIgpcZkJpbmZvIG1vbm90b25lXGZQCi5T -SCBCVUdTCnNlZSBodHRwOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9idWdzLz9ncm91cD1tb25vdG9u -ZQouU0ggQVVUSE9SCmdyYXlkb24gaG9hcmUgPGdyYXlkb25AcG9ib3guY29tPgo= +AT_DATA(parent, [ +o +a +q +e +g ]) -AT_DATA(left.b64, [ -LlRIICJtb25vdG9uZSIgMQouU0ggTkFNRQptb25vdG9uZSBcLSBkaXN0cmlidXRlZCB2ZXJzaW9u -IGNvbnRyb2wgc3lzdGVtCi5TSCBTWU5PUFNJUwpcZkJtb25vdG9uZVxmUCBcZklbb3B0aW9uc10g -PGNvbW1hbmQ+IFtwYXJhbWV0ZXJzXVxmUAouUApPcHRpb25zLCB3aGljaCBhZmZlY3QgZ2xvYmFs -IGJlaGF2aW9yIG9yIHNldCBkZWZhdWx0IHZhbHVlcywgY29tZQpmaXJzdCBpbiB0aGUgYXJndW1l -bnQgbGlzdC4gQSBzaW5nbGUgY29tbWFuZCBtdXN0IGZvbGxvdywgaW5kaWNhdGluZwp0aGUgb3Bl -cmF0aW9uIHRvIHBlcmZvcm0sIGZvbGxvd2VkIGJ5IHBhcmFtZXRlcnMgd2hpY2ggdmFyeSBkZXBl -bmRpbmcKb24gdGhlIGNvbW1hbmQuCi5TUyBOb3RlClRoaXMgbWFucGFnZSBpcyBhIHN1bW1hcnkg -b2Ygc29tZSBvZiB0aGUgZmVhdHVyZXMgYW5kIGNvbW1hbmRzIG9mClxmQm1vbm90b25lXGZQLCBi -dXQgaXQgaXMgbm90IHRoZSBtb3N0IGRldGFpbGVkIHNvdXJjZSBvZiBpbmZvcm1hdGlvbgphdmFp -bGFibGUuIEZvciBhIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgdGhlIGNvbmNlcHRzIGFuZCBhIHR1 -dG9yaWFsIG9uCml0cyB1c2UsIHBsZWFzZSByZWZlciB0byB0aGUgdGV4aW5mbyBtYW51YWwgKHZp -YSB0aGUgXGZCaW5mbwptb25vdG9uZVxmUCBjb21tYW5kLCBvciBvbmxpbmUpLgouU1MgQ29tbWFu -ZHMKLlRQIApcZkJjb21tZW50XGZQIFxmSTxpZD5cZlAKV3JpdGUgYSBjb21tZW50IGNlcnQgZm9y -IGEgcmV2aXNpb24uCi5UUApcZkJhcHByb3ZlXGZQIFxmSTxpZD5cZlAKTWFrZSBhICJicmFuY2gi -IGNlcnQgYXBwcm92aW5nIG9mIGEgcmV2aXNpb24ncyBtZW1iZXJzaGlwIGluIGEgYnJhbmNoLgou -VFAKXGZCZGlzYXBwcm92ZVxmUCBcZkk8aWQxPlxmUApEaXNhcHByb3ZlIG9mIGEgcmV2aXNpb24s -IGNvbW1pdHRpbmcgdGhlIGludmVyc2UgY2hhbmdlcyBhcyBhcyBhCmRlc2NlbmRhbnQgb2YgdGhl -IGRpc2FwcHJvdmVkIHJldmlzaW9uLgouVFAKXGZCdGFnXGZQIFxmSTxpZD4gPHRhZ25hbWU+XGZQ -ClB1dCBhIHN5bWJvbGljIHRhZyBjZXJ0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJ0ZXN0cmVzdWx0 -XGZQIFxmSTxpZD4gKDB8MXx0cnVlfGZhbHNlfHllc3xub3xwYXNzfGZhaWwpXGZQCkluZGljYXRl -IGEgcGFzc2luZyBvciBmYWlsaW5nIHRlc3QgcmVzdWx0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJh -Z3JhcGhcZlAKRHVtcCByZXZpc2lvbiBncmFwaCB0byBzdGRvdXQgaW4gVkNHIGZvcm1hdC4KLlRQ -ClxmQmRpZmYgXGZJWy0tcmV2aXNpb249PGlkMT4gWy0tcmV2aXNpb249PGlkMj5dIF0gWzxwYXRo -bmFtZT4uLi5dXGZQClNob3cgZGlmZnMgYmV0d2VlbiB3b3JraW5nIGNvcHkgYW5kIGRhdGFiYXNl -LgouVFAKXGZCc3RhdHVzIFxmSVs8cGF0aG5hbWU+Li4uXVxmUApTaG93IHN0YXR1cyBvZiB3b3Jr -aW5nIGNvcHkuCi5UUApcZkJpbnZlbnRvcnkgXGZJWzxwYXRobmFtZT4uLi5dXGZQClNob3cgaW52 -ZW50b3J5IG9mIGZpbGVzIGluIHRoZSB3b3JraW5nIGNvcHkuCi5UUApcZkJsb2dcZlAgXGZJW2lk -XSBcZlAKU2hvdyBoaXN0b3JpY2FsIGxvZyBvZiByZXZpc2lvbnMsIHN0YXJ0aW5nIGZyb20gd29y -a2luZyBjb3B5CmJhc2UgcmV2aXNpb24sIG9yIFxmSVtpZF1cZlAgaWYgZ2l2ZW4uCi5UUApcZkJj -ZXJ0XGZQIFxmSTxpZD4gPGNlcnRuYW1lPiBbY2VydHZhbF1cZlAKQ3JlYXRlIGEgY3VzdG9tIGNl -cnQgZm9yIGEgcmV2aXNpb24uIFJlYWRzIGNlcnQgdmFsdWUKZnJvbSBzdGRpbiBpZiBubyB2YWx1 -ZSBnaXZlbiBvbiBjb21tYW5kIGxpbmUuCi5UUApcZkJnZW5rZXlcZlAgXGZJPGtleWlkPlxmUApH -ZW5lcmF0ZSBhbiBSU0Ega2V5LXBhaXIgYW5kIHN0b3JlIGl0IGluIHRoZSBkYXRhYmFzZS4KLlRQ -ClxjaGtleXBhc3NcZlAgXGZJPGtleWlkPlxmUApDaGFuZ2UgcGFzc3BocmFzZSBvZiB0aGUgcHJp -dmF0ZSBoYWxmIG9mIGEga2V5LgouVFAKXGZCbGlzdCBjZXJ0c1xmUCBcZkk8aWQ+XGZQCkxpc3Qg -Y2VydHMgYXNzb2NpYXRlZCB3aXRoIHJldmlzaW9uLgouVFAKXGZCbGlzdCBrZXlzXGZQIFxmSVtw -YXJ0aWFsLWlkXVxmUApMaXN0IGtleXMgbWF0Y2hpbmcgZ2xvYiwgb3IgbGlzdCBhbGwga2V5cyBp -ZiBubyBnbG9iIGdpdmVuLgouVFAKXGZCbGlzdCBicmFuY2hlc1xmUApMaXN0IGFsbCBicmFuY2hl -cy4KLlRQClxmQmxpc3QgdGFnc1xmUApMaXN0IGFsbCB0YWdzLgouVFAKXGZCbGlzdCB2YXJzIFxm -SVs8ZG9tYWluPl1cZlAKTGlzdCBhbGwgdmFycyAocG9zc2libHkgbGltaXRlZCBieSBkb21haW4p -LgouVFAKXGZCbGlzdCB1bmtub3duIFxmSVs8cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4g -d29ya2luZyBkaXJlY3RvcnksIGJ1dCBub3QgaW4gcmV2aXNpb24ncyBtYW5pZmVzdCBvcgp3b3Jr -IGxpc3QuCi5UUApcZkJsaXN0IGlnbm9yZWQgXGZJWzxwYXRobmFtZS4uLl1cZlAKTGlzdCBmaWxl -cyBpbnRlbnRpb25hbGx5IGlnbm9yZWQgZHVlIHRvIHRoZSBpZ25vcmVfZmlsZSBob29rLgouVFAK -XGZCbGlzdCBtaXNzaW5nIFxmSVs8cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gcmV2aXNp -b24ncyBtYW5pZmVzdCwgYnV0IG5vdCBpbiB3b3JraW5nIGRpcmVjdG9yeS4KLlRQClxmQmZkYXRh -XGZQIFxmSTxpZD5cZlAKV3JpdGUgZmlsZSBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJm -ZGVsdGFcZlAgXGZJPG9sZGlkPiA8bmV3aWQ+XGZQCldyaXRlIGZpbGUgZGVsdGEgcGFja2V0IHRv -IHN0ZG91dC4KLlRQClxmQm1kYXRhXGZQIFxmSTxpZD5cZlAKV3JpdGUgbWFuaWZlc3QgZGF0YSBw -YWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCbWRlbHRhXGZQIFxmSTxvbGRpZD4gPG5ld2lkPlxmUApX -cml0ZSBtYW5pZmVzdCBkZWx0YSBwYWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCY2VydHNcZlAgXGZJ -PGlkPlxmUApXcml0ZSByZXZpc2lvbiBjZXJ0IHBhY2tldHMgdG8gc3Rkb3V0LgouVFAKXGZCcmRh -dGFcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZpc2lvbiBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5U -UApcZkJwcml2a2V5XGZQIFxmSTxpZD5cZlAKV3JpdGUgcHJpdmF0ZSBrZXkgcGFja2V0IHRvIHN0 -ZG91dC4KLlRQClxmQnB1YmtleVxmUCBcZkk8aWQ+XGZQCldyaXRlIHB1YmxpYyBrZXkgcGFja2V0 -IHRvIHN0ZG91dC4KLlRQClxmQnJlYWRcZlAKUmVhZCBwYWNrZXRzIGZyb20gc3RkaW4uIAouVFAK -XGZCY3ZzX2ltcG9ydFxmUCBcZkk8Y3Zzcm9vdD5cZlAKSW1wb3J0IGFsbCB2ZXJzaW9ucyBpbiBD -VlMgcmVwb3NpdG9yeS4gUmVjb25zdHJ1Y3RzIHJldmlzaW9ucyBhbmQKY29udmVydHMgbWV0YWRh -dGEgdG8gY2VydGlmaWNhdGVzLiBBIHByaXZhdGUgc2lnbmluZyBrZXkgbXVzdCBhbHJlYWR5CmV4 -aXN0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxmQnJjc19pbXBvcnRcZlAgXGZJPHJjc2ZpbGU+IC4u -LlxmUApJbXBvcnQgYWxsIGZpbGUgdmVyc2lvbnMgaW4gUkNTIGZpbGVzLiBEb2VzIG5vdCByZWNv -bnN0cnVjdCByZXZpc2lvbnMKYWNyb3NzIHRoZSBlbnRpcmUgdHJlZS4gIFlvdSBkbyBub3Qgd2Fu -dCB0aGlzIGNvbW1hbmQsIGl0IGlzIGZvcgpkZWJ1Z2dpbmc7IHVzZSBjdnNfaW1wb3J0LgouVFAK -XGZCY2hlY2tvdXRcZlAgXGZJW21hbmlmZXN0LWlkXVxmUCBcZkk8ZGlyZWN0b3J5XGZQCkNoZWNr -IG91dCB0cmVlIHN0YXRlIGZyb20gZGF0YWJhc2UuCi5UUApcZkJjb1xmUCBcZklbbWFuaWZlc3Qt -aWRdXGZQIFxmSTxkaXJlY3RvcnlcZlAKQ2hlY2sgb3V0IHRyZWUgc3RhdGUgZnJvbSBkYXRhYmFz -ZTsgYW4gYWxpYXMgZm9yIFxmQmNoZWNrb3V0XGZQLgouVFAKXGZCY2F0XGZQIFxmSShmaWxlfG1h -bmlmZXN0KSA8aWQ+XGZQCldyaXRlIGZpbGUgb3IgbWFuaWZlc3QgZnJvbSBkYXRhYmFzZSB0byBz -dGRvdXQuCi5UUApcZkJoZWFkc1xmUApTaG93IHVubWVyZ2VkIGhlYWRzIG9mIGJyYW5jaCwgb3Ig -cmVwb3J0IHdoZW4gYnJhbmNoIGlzIG1lcmdlZC4KLlRQClxmQm1lcmdlXGZQCk1lcmdlIHVubWVy -Z2VkIGhlYWRzIG9mIGJyYW5jaC4KLlRQClxmQmFkZFxmUCBcZkk8cGF0aG5hbWU+IFsuLi5dXGZQ -CkFkZCBmaWxlcyB0byB3b3JraW5nIGNvcHkuIGFkZGluZyBhIGZpbGUgZG9lcyBub3QgY29weSBp -dCBpbnRvIHRoZSBkYXRhYmFzZSwKbWVyZWx5IGFkZHMgaXQgdG8gdGhlIHdvcmsgbGlzdC4gWW91 -IG11c3QgXGZCY29tbWl0XGZQIHlvdXIgY2hhbmdlcyBpbiBvcmRlcgp0byBjb3B5IGFkZGVkIGZp -bGVzIHRvIHRoZSBkYXRhYmFzZS4KLlRQClxmQmRyb3BcZlAgXGZJPHBhdGhuYW1lPiBbLi4uXVxm -UApEcm9wIGZpbGVzIGZyb20gd29ya2luZyBjb3B5LiBGaWxlcyBhcmUgbm90IGRlbGV0ZWQgZnJv -bSB3b3JraW5nIGNvcHksIAptZXJlbHkgbm90ZWQgYXMgcmVtb3ZhbHMgaW4gdGhlIHdvcmsgbGlz -dC4KLlRQClxmQnJlbmFtZVxmUCBcZkk8c3JjPiBcZkk8ZHN0PlxmUApSZW5hbWUgZmlsZXMgZnJv -bSBcZkk8c3JjPiBcZlAgdG8gXGZJPGRzdD4gXGZQIGluIHdvcmtpbmcgY29weS4KLlRQClxmQmNv -bW1pdFxmUCBcZklbLS1tZXNzYWdlPTxsb2cgbWVzc2FnZT5dIFs8cGF0aG5hbWU+Li4uXVxmUCAK -Q29tbWl0IHdvcmtpbmcgY29weSB0byBkYXRhYmFzZS4gSWYgYSAtLW1lc3NhZ2Ugb3B0aW9uIGlz -IHByb3ZpZGVkIG9uCnRoZSBjb21tYW5kIGluZSwgaXQgaXMgdXNlZDsgb3RoZXJ3aXNlIGEgbG9n -IG1lc3NhZ2UgZWRpdG9yIHdpbGwgYmUKaW52b2tlZC4KLlRQClxmQnVwZGF0ZVxmUCAgXGZJW3Jl -dmlzaW9uLWlkXVxmUApVcGRhdGUgd29ya2luZyBjb3B5LgouVFAKXGZCdXBkYXRlX2lub2RlcHJp -bnRzXGZQIApUdXJuIG9uIGlub2RlcHJpbnRzIG1vZGUsIGFuZCBmb3JjZSBhIGNhY2hlIHJlZnJl -c2guCi5UUApcZkJwdXNoXGZQIFxmSVs8aG9zdD4gWzxjb2xsZWN0aW9uPl1dXGZQIApQdXNoIGNv -bnRlbnRzIG9mIFxmSTxjb2xsZWN0aW9uPlxmUCB0byBkYXRhYmFzZSBvbiBcZkk8aG9zdD5cZlAg -Ci5UUApcZkJwdWxsXGZQIFxmSVs8aG9zdD4gWzxjb2xsZWN0aW9uPl1dXGZQIApQdXNoIGNvbnRl -bnRzIG9mIFxmSTxjb2xsZWN0aW9uPlxmUCBmcm9tIGRhdGFiYXNlIG9uIFxmSTxob3N0PlxmUCAK -LlRQClxmQnN5bmNcZlAgXGZJPGhvc3Q+IDxjb2xsZWN0aW9uPlxmUCAKU3luYyBjb250ZW50cyBv -ZiBcZkk8Y29sbGVjdGlvbj5cZlAgd2l0aCBkYXRhYmFzZSBvbiBcZkk8aG9zdD5cZlAgCi5UUApc -ZkJzZXJ2ZVxmUCBcZkk8aG9zdD4gPGNvbGxlY3Rpb24+XGZQIApTZXJ2ZSBjb250ZW50cyBvZiBc -Zkk8Y29sbGVjdGlvbj5cZlAgYXQgbmV0d29yayBhZGRyZXNzIFxmSTxob3N0PlxmUCAKLlRQClxm -QnNldFxmUCBcZkk8ZG9tYWluPiA8bmFtZT4gPHZhbHVlPlxmUCAKU2V0IHRoZSBkYiB2YXIgXGZJ -PG5hbWU+XGZQIGluIGRvbWFpbiBcZkk8ZG9tYWluPlxmUCB0byB2YWx1ZQpcZkk8dmFsdWU+XGZQ -LiAKLlRQClxmQnVuc2V0XGZQIFxmSTxkb21haW4+IDxuYW1lPlxmUCAKRGVsZXRlIGFueSBzZXR0 -aW5nIGZvciBkYiB2YXIgXGZJPG5hbWU+XGZQIGluIGRvbWFpbiBcZkk8ZG9tYWluPlxmUC4KLlRQ -ClxmQmF1dG9tYXRlXGZQIFxmSShpbnRlcmZhY2VfdmVyc2lvbnxoZWFkc3xkZXNjZW5kZW50c3xl -cmFzZV9hbmNlc3RvcnN8dG9wb3NvcnR8YW5jZXN0cnlfZGlmZmVyZW5jZXxsZWF2ZXMpXGZQClNj -cmlwdGluZyBpbnRlcmZhY2UuCi5UUApcZkJkYlxmUCBcZkkoaW5pdHxpbmZvfHZlcnNpb258ZHVt -cHxsb2FkfG1pZ3JhdGV8cmVidWlsZHxleGVjdXRlfGNoZWNrKVxmUApNYW5pcHVsYXRlIGRhdGFi -YXNlIHN0YXRlLgouU0ggREVTQ1JJUFRJT04KTW9ub3RvbmUgaXMgYSB2ZXJzaW9uIGNvbnRyb2wg -c3lzdGVtLCB3aGljaCBhbGxvd3MgeW91IHRvIGtlZXAgb2xkCnZlcnNpb25zIG9mIGZpbGVzLCBh -cyB3ZWxsIGFzIHNwZWNpYWwgXGZJbWFuaWZlc3QgZmlsZXNcZlAgd2hpY2gKZGVzY3JpYmUgdGhl -IGxvY2F0aW9uIG9mIGZpbGVzIGluIGEgdHJlZS4gVW5saWtlIG90aGVyIHN5c3RlbXMsCnZlcnNp -b25zIGluIG1vbm90b25lIGFyZSBcZklpZGVudGlmaWVkXGZQIGJ5IGNyeXB0b2dyYXBoaWMgaGFz -aCwgYW5kCm9wZXJhdGlvbnMgYXJlIGF1dGhlbnRpY2F0ZWQgYnkgaW5kaXZpZHVhbCB1c2Vycycg -ZXZhbHVhdGluZwpjcnlwdG9ncmFwaGljIHNpZ25hdHVyZXMgb24gbWV0YS1kYXRhLCByYXRoZXIg -dGhhbiBhbnkgY2VudHJhbAphdXRob3JpdHkuCgpNb25vdG9uZSBrZWVwcyBhIGNvbGxlY3Rpb24g -b2YgdmVyc2lvbnMgaW4gYSBzaW5nbGUtZmlsZSByZWxhdGlvbmFsCmRhdGFiYXNlLiBJdCBpcyBl -c3NlbnRpYWxseSBzZXJ2ZXJsZXNzLCB1c2luZyBuZXR3b3JrIHNlcnZlcnMgb25seSBhcwp1bnRy -dXN0ZWQgY29tbXVuaWNhdGlvbiBmYWNpbGl0aWVzLiBBIG1vbm90b25lIGRhdGFiYXNlIGlzIGEg -cmVndWxhcgpmaWxlLCB3aGljaCBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCB0 -byBleHRyYWN0IHByZXZpb3VzCnZlcnNpb25zIG9mIGZpbGVzLCB2ZXJpZnkgc2lnbmF0dXJlcywg -bWVyZ2UgYW5kIG1vZGlmeSB2ZXJzaW9ucywgYW5kCmNvbW11bmljYXRlIHdpdGggbmV0d29yayBz -ZXJ2ZXJzLgouU0ggT1BUSU9OUwouVFAKXGZCLS1oZWxwXGZQClByaW50IGhlbHAgbWVzc2FnZS4K -LlRQClxmQi0tZGVidWdcZlAKVHVybiBvbiBkZWJ1Z2dpbmcgbG9nIG9uIHN0YW5kYXJkIGVycm9y -IHN0cmVhbS4gVGhpcyBpcyB2ZXJ5CnZlcmJvc2UuIERlZmF1bHQgaXMgdG8gYmUgc2lsZW50LCB1 -bmxlc3MgYW4gZXJyb3Igb2NjdXJzLCBpbiB3aGljaApjYXNlIGZhaWx1cmUgbG9nIGlzIGR1bXBl -ZC4KLlRQClxmQi0tcXVpZXRcZlAKVHVybiBvZmYgbm9ybWFsIHByb2dyZXNzIG1lc3NhZ2VzLgou -VFAKXGZCLS1kdW1wPVxmUFxmSTxmaWxlPlxmUApEdW1wIGRlYnVnZ2luZyBsb2cgdG8gXGZJZmls -ZVxmUCBvbiBmYWlsdXJlLgouVFAKXGZCLS1ub3N0ZFxmUApEbyBub3QgZXZhbHVhdGUgInN0YW5k -YXJkIiBsdWEgaG9va3MgY29tcGlsZWQgaW50byBcZkJtb25vdG9uZVxmUC4KLlRQClxmQi0tbm9y -Y1xmUApEbyBub3QgbG9hZCBsdWEgaG9va3MgZnJvbSB1c2VyJ3MgXGZCfi8ubW9ub3RvbmVyY1xm -UCBmaWxlLgouVFAKXGZCLS1yY2ZpbGU9XGZQXGZJPGZpbGU+XGZQCkxvYWQgZXh0cmEgbHVhIGhv -b2tzIGZyb20gXGZJZmlsZVxmUCAobWF5IGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzKS4KLlRQClxm -Qi0tZGI9XGZQXGZJPGZpbGU+XGZQClVzZSBkYXRhYmFzZSBpbiBcZklmaWxlXGZQLgouVFAKXGZC -LS1rZXk9XGZQXGZJPGtleWlkPlxmUApVc2UgXGZJa2V5aWRcZlAgZm9yIG9wZXJhdGlvbnMgd2hp -Y2ggcHJvZHVjZSBSU0Egc2lnbmF0dXJlcy4gRGVmYXVsdAppcyBpbmZlcnJlZCBmcm9tIHByZXNl -bmNlIG9mIHVuaXF1ZSBwcml2YXRlIGtleSBpbiBkYXRhYmFzZS4gQ2FuIGFsc28KYmUgY3VzdG9t -aXplZCBvbiBhIHBlci1icmFuY2ggYmFzaXMgd2l0aCBob29rIGZ1bmN0aW9uIApcZkJnZXRfYnJh -bmNoX2tleShicmFuY2huYW1lKVxmUC4KLlRQClxmQi1rXGZQIFxmSTxrZXlpZD5cZlAKQW4gYWxp -YXMgZm9yIFxmQi0ta2V5PVxmUFxmSTxrZXlpZD5cZlAKLlRQClxmQi0tYnJhbmNoPVxmUFxmSTxi -cmFuY2huYW1lPlxmUApVc2UgXGZJYnJhbmNobmFtZVxmUCBmb3Igb3BlcmF0aW9ucyBvbiBhIGJy -YW5jaC4gRGVmYXVsdCBpcyBpbmZlcnJlZAppbiBvcGVyYXRpb25zIG9uIGV4aXN0aW5nIGJyYW5j -aGVzIChjb21taXQsIHVwZGF0ZSwgZXRjKS4KLlRQClxmQi1iXGZQIFxmSTxicmFuY2huYW1lPlxm -UApBbiBhbGlhcyBmb3IgXGZCLS1icmFuY2g9XGZQXGZJPGJyYW5jaG5hbWU+XGZQCi5UUApcZkIt -LXRpY2tldD1cZlBcZklkb3R8Y291bnRcZlAKVXNlIHRoZSBnaXZlbiBtZXRob2QgdG8gcHJpbnQg -dGlja2Vycy4gIFRoZSBcZkJjb3VudFxmUCBtZXRob2QgcHJpbnRzCnRoZSBjb3VudCBmb3IgZWFj -aCB0aWNrZXIgb24gb25lIGxpbmUsIGluY3JlbWVudGluZyB0aGUgbnVtYmVycyBpbgpwbGFjZSwg -d2hpbGUgdGhlIFxmQmRvdFxmUCBtZXRob2QgcHJpbnRzIGEgY29udGludW91cyBzdHJpbmcgb2YK -Y2hhcmFjdGVycyAobGlrZSBzb21lIHByb2dyYW1zIHByb3ZpZGUgYSBwcm9ncmVzcyBsaW5lIG9m -IGRvdHMpLgpUaGUgZGVmYXVsdCBpcyBcZkJjb3VudFxmUC4KLlRQClxmQi0tcmV2aXNpb249XGZQ -XGZJPGlkPlxmUApDdXJyZW50bHkgdGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHRoZSBkaWZm -IGNvbW1hbmQgd2hlcmUgaXQgbWF5IGJlCnVzZWQgdG8gY29tcGFyZSBhIHdvcmtpbmcgY29weSB3 -aXRoIGEgc3BlY2lmaWMgcmV2aXNpb24gb3IgdG8gY29tcGFyZQp0d28gc3BlY2lmaWMgcmV2aXNp -b25zLiBJdCB3aWxsIGxpa2VseSBhcHBseSB0byBvdGhlciBjb21tYW5kcyBpbiB0aGUKZnV0dXJl -LgouVFAKXGZCLXJcZlAgXGZJPGlkPlxmUApBbiBhbGlhcyBmb3IgXGZCLS1yZXZpc2lvbj1cZlBc -Zkk8aWQ+XGZQCi5UUApcZkItLW1lc3NhZ2U9XGZJPGxvZyBtZXNzYWdlPlxmUApVc2UgdGhlIGdp -dmVuIG1lc3NhZ2UgYXMgdGhlIGNoYW5nZWxvZyB3aGVuIGNvbW1pdHRpbmcgYSBuZXcgcmV2aXNp -b24KcmF0aGVyIHRoYW4gaW52b2tpbmcgdGhlIGxvZyBtZXNzYWdlIGVkaXRvci4gQ3VycmVudGx5 -IHRoaXMgb3B0aW9uIG9ubHkKYXBwbGllcyB0byB0aGUgY29tbWl0IGNvbW1hbmQgYnV0IGl0IG1h -eSBhbHNvIGFwcGx5IHRvIHRoZSBjb21tZW50CmNvbW1hbmQgaW4gdGhlIGZ1dHVyZS4KLlRQClxm -Qi1tIFxmSTxsb2cgbWVzc2FnZT5cZlAKQW4gYWxpYXMgZm9yIFxmQi0tbWVzc2FnZT1cZkk8bG9n -IG1lc3NhZ2U+XGZQCi5UUApcZkItLWF1dGhvcj1cZkk8YXV0aG9yIGVtYWlsPlxmUApVc2UgdGhl -IGdpdmVuIGF1dGhvciBhcyB0aGUgdmFsdWUgb2YgdGhlICJhdXRob3IiIGNlcnQgd2hlbiBjb21t -aXR0aW5nCmEgbmV3IHJldmlzaW9uLCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBhdXRob3IuICBV -c2VmdWwgd2hlbgpjb21taXR0aW5nIGEgcGF0Y2ggb24gYmVoYWxmIG9mIHNvbWVvbmUgZWxzZSwg -b3Igd2hlbiBpbXBvcnRpbmcKaGlzdG9yeSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5 -c3RlbS4KLlRQClxmQi0tZGF0ZT1cZkk8ZGF0ZSBhbmQgdGltZT5cZlAKVXNlIHRoZSBnaXZlbiBn -aXZlbiBkYXRlIGFuZCB0aW1lIGFzIHZhbHVlIG9mIHRoZSAiZGF0ZSIgY2VydCB3aGVuCmNvbW1p -dHRpbmcgYSBuZXcgcmV2aXNpb24sIHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IHRpbWUuICBVc2Vm -dWwgd2hlbgppbXBvcnRpbmcgaGlzdG9yeSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5 -c3RlbS4KLlRQClxmQi0tcm9vdD1cZkk8cm9vdCBkaXI+XGZQClN0b3AgdGhlIHNlYXJjaCBmb3Ig -YSB3b3JraW5nIGNvcHkgKGNvbnRhaW5pbmcgdGhlIEBmaWxle01UfSBkaXJlY3RvcnkpCmF0IHRo -ZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gYXQgdGhlIHBoeXNpY2FsIHJv -b3Qgb2YgdGhlCmZpbGVzeXN0ZW0uCi5UUApcZkItLXhhcmdzPVxmSTxmaWxlPlxmUApJbmplY3Qg -dGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGluIHBsYWNlIGFtb25nIHRoZSBjb21tYW5kIGxpbmUK -YXJndW1lbnRzLiAgVGhpcyBtYXkgYmUgdXNlZnVsIGluIGNhc2UgdGhlIGNvbW1hbmQgbGluZSB3 -b3VsZApvdGhlcndpc2UgYmVjb21lIHRvbyBsb25nIGZvciB5b3VyIHN5c3RlbS4gIFRoaXMgb3B0 -aW9uIGNhbiBiZSB1c2VkCm1vcmUgdGhhbiBvbmNlIGlmIG5lZWRlZC4KLlRQClxmQi1AIFxmSTxm -aWxlPlxmUApBbiBhbGlhcyBmb3IgXGZCLS14YXJncz1cZkk8ZmlsZT5cZlAKLlRQClxmQi0tYWxs -LWZpbGVzXGZQCkluY2x1ZGUgZXZlcnkgZmlsZSBhdmFpbGFibGUgaW4gdGhlIHdvcmtpbmcgY29w -eSBpbiB0aGUgaW52ZW50b3J5Cmxpc3QuIEJ5IGRlZmF1bHQgaW52ZW50b3J5IG9ubHkgbGlzdHMg -YGBpbnRlcmVzdGluZycnIGZpbGVzLiBUaGlzIG9wdGlvbgppcyBzcGVjaWZpYyB0byB0aGUgQGNv -bW1hbmR7aW52ZW50b3J5fSBjb21tYW5kLgoKLlNIIEVOVklST05NRU5UCi5UUApcZkJFRElUT1Jc -ZlAKVXNlZCB0byBlZGl0IGNvbW1lbnRzLCBsb2cgbWVzc2FnZXMsIGV0Yy4KLlRQClxmQlZJU1VB -TFxmUApVc2VkIGluIHByZWZlcmVuY2UgdG8gXGZCRURJVE9SXGZQLCBpZiBzZXQuCi5TSCBGSUxF -UwouVFAKXGZCJEhPTUUvLm1vbm90b25lcmNcZlAKQSBsdWEgc2NyaXB0LCB1c2VkIGFzIGEgY3Vz -dG9taXphdGlvbiBmaWxlLgouU0ggTk9URVMKLklQIFwoYnUKQ29tbWFuZCBsaW5lIG9wdGlvbnMg -b3ZlcnJpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZApzZXR0aW5ncyBpbiBsdWEgc2NyaXB0 -cyAoc3VjaCBhcyBcZkIubW9ub3RvbmVyY1xmUCkKLlNIICJTRUUgQUxTTyIKXGZCaW5mbyBtb25v -dG9uZVxmUAouU0ggQlVHUwpzZWUgaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvYnVncy8/Z3Jv -dXA9bW9ub3RvbmUKLlNIIEFVVEhPUgpncmF5ZG9uIGhvYXJlIDxncmF5ZG9uQHBvYm94LmNvbT4K +AT_DATA(left, [ +o +a +2 +3 +4 +a +q +d +g ]) -AT_DATA(right.b64, [ -LlRIICJtb25vdG9uZSIgMQouU0ggTkFNRQptb25vdG9uZSBcLSBkaXN0cmlidXRlZCB2ZXJzaW9u -IGNvbnRyb2wgc3lzdGVtCi5TSCBTWU5PUFNJUwpcZkJtb25vdG9uZVxmUCBcZklbb3B0aW9uc10g -PGNvbW1hbmQ+IFtwYXJhbWV0ZXJzXVxmUAouUApPcHRpb25zLCB3aGljaCBhZmZlY3QgZ2xvYmFs -IGJlaGF2aW9yIG9yIHNldCBkZWZhdWx0IHZhbHVlcywgY29tZQpmaXJzdCBpbiB0aGUgYXJndW1l -bnQgbGlzdC4gQSBzaW5nbGUgY29tbWFuZCBtdXN0IGZvbGxvdywgaW5kaWNhdGluZwp0aGUgb3Bl -cmF0aW9uIHRvIHBlcmZvcm0sIGZvbGxvd2VkIGJ5IHBhcmFtZXRlcnMgd2hpY2ggdmFyeSBkZXBl -bmRpbmcKb24gdGhlIGNvbW1hbmQuCi5TUyBOb3RlClRoaXMgbWFucGFnZSBpcyBhIHN1bW1hcnkg -b2Ygc29tZSBvZiB0aGUgZmVhdHVyZXMgYW5kIGNvbW1hbmRzIG9mClxmQm1vbm90b25lXGZQLCBi -dXQgaXQgaXMgbm90IHRoZSBtb3N0IGRldGFpbGVkIHNvdXJjZSBvZiBpbmZvcm1hdGlvbgphdmFp -bGFibGUuIEZvciBhIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgdGhlIGNvbmNlcHRzIGFuZCBhIHR1 -dG9yaWFsIG9uCml0cyB1c2UsIHBsZWFzZSByZWZlciB0byB0aGUgdGV4aW5mbyBtYW51YWwgKHZp -YSB0aGUgXGZCaW5mbwptb25vdG9uZVxmUCBjb21tYW5kLCBvciBvbmxpbmUpLgouU1MgQ29tbWFu -ZHMKLlRQIApcZkJjb21tZW50XGZQIFxmSTxpZD5cZlAKV3JpdGUgYSBjb21tZW50IGNlcnQgZm9y -IGEgcmV2aXNpb24uCi5UUApcZkJhcHByb3ZlXGZQIFxmSTxpZD5cZlAKTWFrZSBhICJicmFuY2gi -IGNlcnQgYXBwcm92aW5nIG9mIGEgcmV2aXNpb24ncyBtZW1iZXJzaGlwIGluIGEgYnJhbmNoLgou -VFAKXGZCZGlzYXBwcm92ZVxmUCBcZkk8aWQxPlxmUApEaXNhcHByb3ZlIG9mIGEgcmV2aXNpb24s -IGNvbW1pdHRpbmcgdGhlIGludmVyc2UgY2hhbmdlcyBhcyBhcyBhCmRlc2NlbmRhbnQgb2YgdGhl -IGRpc2FwcHJvdmVkIHJldmlzaW9uLgouVFAKXGZCdGFnXGZQIFxmSTxpZD4gPHRhZ25hbWU+XGZQ -ClB1dCBhIHN5bWJvbGljIHRhZyBjZXJ0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJ0ZXN0cmVzdWx0 -XGZQIFxmSTxpZD4gKDB8MXx0cnVlfGZhbHNlfHllc3xub3xwYXNzfGZhaWwpXGZQCkluZGljYXRl -IGEgcGFzc2luZyBvciBmYWlsaW5nIHRlc3QgcmVzdWx0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJh -Z3JhcGhcZlAKRHVtcCByZXZpc2lvbiBncmFwaCB0byBzdGRvdXQgaW4gVkNHIGZvcm1hdC4KLlRQ -ClxmQmRpZmYgXGZJWy0tcmV2aXNpb249PGlkMT4gWy0tcmV2aXNpb249PGlkMj5dIF0gWzxwYXRo -bmFtZT4uLi5dXGZQClNob3cgZGlmZnMgYmV0d2VlbiB3b3JraW5nIGNvcHkgYW5kIGRhdGFiYXNl -LgouVFAKXGZCc3RhdHVzIFxmSVs8cGF0aG5hbWU+Li4uXVxmUApTaG93IHN0YXR1cyBvZiB3b3Jr -aW5nIGNvcHkuCi5UUApcZkJsb2dcZlAgXGZJW2lkXSBcZlAKU2hvdyBoaXN0b3JpY2FsIGxvZyBv -ZiByZXZpc2lvbnMsIHN0YXJ0aW5nIGZyb20gd29ya2luZyBjb3B5CmJhc2UgcmV2aXNpb24sIG9y -IFxmSVtpZF1cZlAgaWYgZ2l2ZW4uCi5UUApcZkJjZXJ0XGZQIFxmSTxpZD4gPGNlcnRuYW1lPiBb -Y2VydHZhbF1cZlAKQ3JlYXRlIGEgY3VzdG9tIGNlcnQgZm9yIGEgcmV2aXNpb24uIFJlYWRzIGNl -cnQgdmFsdWUKZnJvbSBzdGRpbiBpZiBubyB2YWx1ZSBnaXZlbiBvbiBjb21tYW5kIGxpbmUuCi5U -UApcZkJnZW5rZXlcZlAgXGZJPGtleWlkPlxmUApHZW5lcmF0ZSBhbiBSU0Ega2V5LXBhaXIgYW5k -IHN0b3JlIGl0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxjaGtleXBhc3NcZlAgXGZJPGtleWlkPlxm -UApDaGFuZ2UgcGFzc3BocmFzZSBvZiB0aGUgcHJpdmF0ZSBoYWxmIG9mIGEga2V5LgouVFAKXGZC -bGlzdCBjZXJ0c1xmUCBcZkk8aWQ+XGZQCkxpc3QgY2VydHMgYXNzb2NpYXRlZCB3aXRoIHJldmlz -aW9uLgouVFAKXGZCbGlzdCBrZXlzXGZQIFxmSVtwYXJ0aWFsLWlkXVxmUApMaXN0IGtleXMgbWF0 -Y2hpbmcgZ2xvYiwgb3IgbGlzdCBhbGwga2V5cyBpZiBubyBnbG9iIGdpdmVuLgouVFAKXGZCbGlz -dCBicmFuY2hlc1xmUApMaXN0IGFsbCBicmFuY2hlcy4KLlRQClxmQmxpc3QgdGFnc1xmUApMaXN0 -IGFsbCB0YWdzLgouVFAKXGZCbGlzdCB2YXJzIFxmSVs8ZG9tYWluPl1cZlAKTGlzdCBhbGwgdmFy -cyAocG9zc2libHkgbGltaXRlZCBieSBkb21haW4pLgouVFAKXGZCbGlzdCB1bmtub3duIFxmSVs8 -cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gd29ya2luZyBkaXJlY3RvcnksIGJ1dCBub3Qg -aW4gcmV2aXNpb24ncyBtYW5pZmVzdCBvcgp3b3JrIGxpc3QuCi5UUApcZkJsaXN0IGlnbm9yZWQg -XGZJWzxwYXRobmFtZS4uLl1cZlAKTGlzdCBmaWxlcyBpbnRlbnRpb25hbGx5IGlnbm9yZWQgZHVl -IHRvIHRoZSBpZ25vcmVfZmlsZSBob29rLgouVFAKXGZCbGlzdCBtaXNzaW5nIFxmSVs8cGF0aG5h -bWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gcmV2aXNpb24ncyBtYW5pZmVzdCwgYnV0IG5vdCBpbiB3 -b3JraW5nIGRpcmVjdG9yeS4KLlRQClxmQmZkYXRhXGZQIFxmSTxpZD5cZlAKV3JpdGUgZmlsZSBk -YXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJmZGVsdGFcZlAgXGZJPG9sZGlkPiA8bmV3aWQ+ -XGZQCldyaXRlIGZpbGUgZGVsdGEgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQm1kYXRhXGZQIFxm -STxpZD5cZlAKV3JpdGUgbWFuaWZlc3QgZGF0YSBwYWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCbWRl -bHRhXGZQIFxmSTxvbGRpZD4gPG5ld2lkPlxmUApXcml0ZSBtYW5pZmVzdCBkZWx0YSBwYWNrZXQg -dG8gc3Rkb3V0LgouVFAKXGZCY2VydHNcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZpc2lvbiBjZXJ0 -IHBhY2tldHMgdG8gc3Rkb3V0LgouVFAKXGZCcmRhdGFcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZp -c2lvbiBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJwcml2a2V5XGZQIFxmSTxpZD5cZlAK -V3JpdGUgcHJpdmF0ZSBrZXkgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQnB1YmtleVxmUCBcZkk8 -aWQ+XGZQCldyaXRlIHB1YmxpYyBrZXkgcGFja2V0IHRvIHN0ZG91dC4KLlRQClxmQnJlYWRcZlAK -UmVhZCBwYWNrZXRzIGZyb20gc3RkaW4uIAouVFAKXGZCY3ZzX2ltcG9ydFxmUCBcZkk8Y3Zzcm9v -dD5cZlAKSW1wb3J0IGFsbCB2ZXJzaW9ucyBpbiBDVlMgcmVwb3NpdG9yeS4gUmVjb25zdHJ1Y3Rz -IHJldmlzaW9ucyBhbmQKY29udmVydHMgbWV0YWRhdGEgdG8gY2VydGlmaWNhdGVzLiBBIHByaXZh -dGUgc2lnbmluZyBrZXkgbXVzdCBhbHJlYWR5CmV4aXN0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxm -QnJjc19pbXBvcnRcZlAgXGZJPHJjc2ZpbGU+IC4uLlxmUApJbXBvcnQgYWxsIGZpbGUgdmVyc2lv -bnMgaW4gUkNTIGZpbGVzLiBEb2VzIG5vdCByZWNvbnN0cnVjdCByZXZpc2lvbnMKYWNyb3NzIHRo -ZSBlbnRpcmUgdHJlZS4gIFlvdSBkbyBub3Qgd2FudCB0aGlzIGNvbW1hbmQsIGl0IGlzIGZvcgpk -ZWJ1Z2dpbmc7IHVzZSBjdnNfaW1wb3J0LgouVFAKXGZCY2hlY2tvdXRcZlAgXGZJW21hbmlmZXN0 -LWlkXVxmUCBcZkk8ZGlyZWN0b3J5XGZQCkNoZWNrIG91dCB0cmVlIHN0YXRlIGZyb20gZGF0YWJh -c2UuCi5UUApcZkJjb1xmUCBcZklbbWFuaWZlc3QtaWRdXGZQIFxmSTxkaXJlY3RvcnlcZlAKQ2hl -Y2sgb3V0IHRyZWUgc3RhdGUgZnJvbSBkYXRhYmFzZTsgYW4gYWxpYXMgZm9yIFxmQmNoZWNrb3V0 -XGZQLgouVFAKXGZCY2F0XGZQIFxmSShmaWxlfG1hbmlmZXN0KSA8aWQ+XGZQCldyaXRlIGZpbGUg -b3IgbWFuaWZlc3QgZnJvbSBkYXRhYmFzZSB0byBzdGRvdXQuCi5UUApcZkJoZWFkc1xmUApTaG93 -IHVubWVyZ2VkIGhlYWRzIG9mIGJyYW5jaCwgb3IgcmVwb3J0IHdoZW4gYnJhbmNoIGlzIG1lcmdl -ZC4KLlRQClxmQm1lcmdlXGZQCk1lcmdlIHVubWVyZ2VkIGhlYWRzIG9mIGJyYW5jaC4KLlRQClxm -QmFkZFxmUCBcZkk8cGF0aG5hbWU+IFsuLi5dXGZQCkFkZCBmaWxlcyB0byB3b3JraW5nIGNvcHku -IGFkZGluZyBhIGZpbGUgZG9lcyBub3QgY29weSBpdCBpbnRvIHRoZSBkYXRhYmFzZSwKbWVyZWx5 -IGFkZHMgaXQgdG8gdGhlIHdvcmsgbGlzdC4gWW91IG11c3QgXGZCY29tbWl0XGZQIHlvdXIgY2hh -bmdlcyBpbiBvcmRlcgp0byBjb3B5IGFkZGVkIGZpbGVzIHRvIHRoZSBkYXRhYmFzZS4KLlRQClxm -QmRyb3BcZlAgXGZJPHBhdGhuYW1lPiBbLi4uXVxmUApEcm9wIGZpbGVzIGZyb20gd29ya2luZyBj -b3B5LiBGaWxlcyBhcmUgbm90IGRlbGV0ZWQgZnJvbSB3b3JraW5nIGNvcHksIAptZXJlbHkgbm90 -ZWQgYXMgcmVtb3ZhbHMgaW4gdGhlIHdvcmsgbGlzdC4KLlRQClxmQnJlbmFtZVxmUCBcZkk8c3Jj -PiBcZkk8ZHN0PlxmUApSZW5hbWUgZmlsZXMgZnJvbSBcZkk8c3JjPiBcZlAgdG8gXGZJPGRzdD4g -XGZQIGluIHdvcmtpbmcgY29weS4KLlRQClxmQmNvbW1pdFxmUCBcZklbLS1tZXNzYWdlPTxsb2cg -bWVzc2FnZT5dIFs8cGF0aG5hbWU+Li4uXVxmUCAKQ29tbWl0IHdvcmtpbmcgY29weSB0byBkYXRh -YmFzZS4gSWYgYSAtLW1lc3NhZ2Ugb3B0aW9uIGlzIHByb3ZpZGVkIG9uCnRoZSBjb21tYW5kIGlu -ZSwgaXQgaXMgdXNlZDsgb3RoZXJ3aXNlIGEgbG9nIG1lc3NhZ2UgZWRpdG9yIHdpbGwgYmUKaW52 -b2tlZC4KLlRQClxmQnVwZGF0ZVxmUCAKVXBkYXRlIHdvcmtpbmcgY29weS4KLlRQClxmQnB1c2hc -ZlAgXGZJPGhvc3Q+IDxjb2xsZWN0aW9uPlxmUCAKUHVzaCBjb250ZW50cyBvZiBcZkk8Y29sbGVj -dGlvbj5cZlAgdG8gZGF0YWJhc2Ugb24gXGZJPGhvc3Q+XGZQIAouVFAKXGZCcHVsbFxmUCBcZkk8 -aG9zdD4gPGNvbGxlY3Rpb24+XGZQIApQdXNoIGNvbnRlbnRzIG9mIFxmSTxjb2xsZWN0aW9uPlxm -UCBmcm9tIGRhdGFiYXNlIG9uIFxmSTxob3N0PlxmUCAKLlRQClxmQnN5bmNcZlAgXGZJPGhvc3Q+ -IDxjb2xsZWN0aW9uPlxmUCAKU3luYyBjb250ZW50cyBvZiBcZkk8Y29sbGVjdGlvbj5cZlAgd2l0 -aCBkYXRhYmFzZSBvbiBcZkk8aG9zdD5cZlAgCi5UUApcZkJzZXJ2ZVxmUCBcZkk8aG9zdD4gPGNv -bGxlY3Rpb24+XGZQIApTZXJ2ZSBjb250ZW50cyBvZiBcZkk8Y29sbGVjdGlvbj5cZlAgYXQgbmV0 -d29yayBhZGRyZXNzIFxmSTxob3N0PlxmUCAKLlRQClxmQnNldFxmUCBcZkk8ZG9tYWluPiA8bmFt -ZT4gPHZhbHVlPlxmUCAKU2V0IHRoZSBkYiB2YXIgXGZJPG5hbWU+XGZQIGluIGRvbWFpbiBcZkk8 -ZG9tYWluPlxmUCB0byB2YWx1ZQpcZkk8dmFsdWU+XGZQLiAKLlRQClxmQnVuc2V0XGZQIFxmSTxk -b21haW4+IDxuYW1lPlxmUCAKRGVsZXRlIGFueSBzZXR0aW5nIGZvciBkYiB2YXIgXGZJPG5hbWU+ -XGZQIGluIGRvbWFpbiBcZkk8ZG9tYWluPlxmUC4KLlRQClxmQmF1dG9tYXRlXGZQIFxmSShpbnRl -cmZhY2VfdmVyc2lvbnxoZWFkc3xkZXNjZW5kZW50c3xlcmFzZV9hbmNlc3RvcnN8dG9wb3NvcnR8 -YW5jZXN0cnlfZGlmZmVyZW5jZXxsZWF2ZXMpXGZQClNjcmlwdGluZyBpbnRlcmZhY2UuCi5UUApc -ZkJkYlxmUCBcZkkoaW5pdHxpbmZvfHZlcnNpb258ZHVtcHxsb2FkfG1pZ3JhdGV8cmVidWlsZHxl -eGVjdXRlfGNoZWNrKVxmUApNYW5pcHVsYXRlIGRhdGFiYXNlIHN0YXRlLgouU0ggREVTQ1JJUFRJ -T04KTW9ub3RvbmUgaXMgYSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLCB3aGljaCBhbGxvd3MgeW91 -IHRvIGtlZXAgb2xkCnZlcnNpb25zIG9mIGZpbGVzLCBhcyB3ZWxsIGFzIHNwZWNpYWwgXGZJbWFu -aWZlc3QgZmlsZXNcZlAgd2hpY2gKZGVzY3JpYmUgdGhlIGxvY2F0aW9uIG9mIGZpbGVzIGluIGEg -dHJlZS4gVW5saWtlIG90aGVyIHN5c3RlbXMsCnZlcnNpb25zIGluIG1vbm90b25lIGFyZSBcZklp -ZGVudGlmaWVkXGZQIGJ5IGNyeXB0b2dyYXBoaWMgaGFzaCwgYW5kCm9wZXJhdGlvbnMgYXJlIGF1 -dGhlbnRpY2F0ZWQgYnkgaW5kaXZpZHVhbCB1c2VycycgZXZhbHVhdGluZwpjcnlwdG9ncmFwaGlj -IHNpZ25hdHVyZXMgb24gbWV0YS1kYXRhLCByYXRoZXIgdGhhbiBhbnkgY2VudHJhbAphdXRob3Jp -dHkuCgpNb25vdG9uZSBrZWVwcyBhIGNvbGxlY3Rpb24gb2YgdmVyc2lvbnMgaW4gYSBzaW5nbGUt -ZmlsZSByZWxhdGlvbmFsCmRhdGFiYXNlLiBJdCBpcyBlc3NlbnRpYWxseSBzZXJ2ZXJsZXNzLCB1 -c2luZyBuZXR3b3JrIHNlcnZlcnMgb25seSBhcwp1bnRydXN0ZWQgY29tbXVuaWNhdGlvbiBmYWNp -bGl0aWVzLiBBIG1vbm90b25lIGRhdGFiYXNlIGlzIGEgcmVndWxhcgpmaWxlLCB3aGljaCBjb250 -YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCB0byBleHRyYWN0IHByZXZpb3VzCnZlcnNp -b25zIG9mIGZpbGVzLCB2ZXJpZnkgc2lnbmF0dXJlcywgbWVyZ2UgYW5kIG1vZGlmeSB2ZXJzaW9u -cywgYW5kCmNvbW11bmljYXRlIHdpdGggbmV0d29yayBzZXJ2ZXJzLgouU0ggT1BUSU9OUwouVFAK -XGZCLS1oZWxwXGZQClByaW50IGhlbHAgbWVzc2FnZS4KLlRQClxmQi0tZGVidWdcZlAKVHVybiBv -biBkZWJ1Z2dpbmcgbG9nIG9uIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4gVGhpcyBpcyB2ZXJ5CnZl -cmJvc2UuIERlZmF1bHQgaXMgdG8gYmUgc2lsZW50LCB1bmxlc3MgYW4gZXJyb3Igb2NjdXJzLCBp -biB3aGljaApjYXNlIGZhaWx1cmUgbG9nIGlzIGR1bXBlZC4KLlRQClxmQi0tcXVpZXRcZlAKVHVy -biBvZmYgbm9ybWFsIHByb2dyZXNzIG1lc3NhZ2VzLgouVFAKXGZCLS1kdW1wPVxmUFxmSTxmaWxl -PlxmUApEdW1wIGRlYnVnZ2luZyBsb2cgdG8gXGZJZmlsZVxmUCBvbiBmYWlsdXJlLgouVFAKXGZC -LS1ub3N0ZFxmUApEbyBub3QgZXZhbHVhdGUgInN0YW5kYXJkIiBsdWEgaG9va3MgY29tcGlsZWQg -aW50byBcZkJtb25vdG9uZVxmUC4KLlRQClxmQi0tbm9yY1xmUApEbyBub3QgbG9hZCBsdWEgaG9v -a3MgZnJvbSB1c2VyJ3MgXGZCfi8ubW9ub3RvbmVyY1xmUCBmaWxlLgouVFAKXGZCLS1yY2ZpbGU9 -XGZQXGZJPGZpbGU+XGZQCkxvYWQgZXh0cmEgbHVhIGhvb2tzIGZyb20gXGZJZmlsZVxmUCAobWF5 -IGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzKS4KLlRQClxmQi0tZGI9XGZQXGZJPGZpbGU+XGZQClVz -ZSBkYXRhYmFzZSBpbiBcZklmaWxlXGZQLgouVFAKXGZCLS1rZXk9XGZQXGZJPGtleWlkPlxmUApV -c2UgXGZJa2V5aWRcZlAgZm9yIG9wZXJhdGlvbnMgd2hpY2ggcHJvZHVjZSBSU0Egc2lnbmF0dXJl -cy4gRGVmYXVsdAppcyBpbmZlcnJlZCBmcm9tIHByZXNlbmNlIG9mIHVuaXF1ZSBwcml2YXRlIGtl -eSBpbiBkYXRhYmFzZS4gQ2FuIGFsc28KYmUgY3VzdG9taXplZCBvbiBhIHBlci1icmFuY2ggYmFz -aXMgd2l0aCBob29rIGZ1bmN0aW9uIApcZkJnZXRfYnJhbmNoX2tleShicmFuY2huYW1lKVxmUC4K -LlRQClxmQi1rXGZQIFxmSTxrZXlpZD5cZlAKQW4gYWxpYXMgZm9yIFxmQi0ta2V5PVxmUFxmSTxr -ZXlpZD5cZlAKLlRQClxmQi0tYnJhbmNoPVxmUFxmSTxicmFuY2huYW1lPlxmUApVc2UgXGZJYnJh -bmNobmFtZVxmUCBmb3Igb3BlcmF0aW9ucyBvbiBhIGJyYW5jaC4gRGVmYXVsdCBpcyBpbmZlcnJl -ZAppbiBvcGVyYXRpb25zIG9uIGV4aXN0aW5nIGJyYW5jaGVzIChjb21taXQsIHVwZGF0ZSwgZXRj -KS4KLlRQClxmQi1iXGZQIFxmSTxicmFuY2huYW1lPlxmUApBbiBhbGlhcyBmb3IgXGZCLS1icmFu -Y2g9XGZQXGZJPGJyYW5jaG5hbWU+XGZQCi5UUApcZkItLXRpY2tldD1cZlBcZklkb3R8Y291bnRc -ZlAKVXNlIHRoZSBnaXZlbiBtZXRob2QgdG8gcHJpbnQgdGlja2Vycy4gIFRoZSBcZkJjb3VudFxm -UCBtZXRob2QgcHJpbnRzCnRoZSBjb3VudCBmb3IgZWFjaCB0aWNrZXIgb24gb25lIGxpbmUsIGlu -Y3JlbWVudGluZyB0aGUgbnVtYmVycyBpbgpwbGFjZSwgd2hpbGUgdGhlIFxmQmRvdFxmUCBtZXRo -b2QgcHJpbnRzIGEgY29udGludW91cyBzdHJpbmcgb2YKY2hhcmFjdGVycyAobGlrZSBzb21lIHBy -b2dyYW1zIHByb3ZpZGUgYSBwcm9ncmVzcyBsaW5lIG9mIGRvdHMpLgpUaGUgZGVmYXVsdCBpcyBc -ZkJjb3VudFxmUC4KLlRQClxmQi0tcmV2aXNpb249XGZQXGZJPGlkPlxmUApDdXJyZW50bHkgdGhp -cyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHRoZSBkaWZmIGNvbW1hbmQgd2hlcmUgaXQgbWF5IGJl -CnVzZWQgdG8gY29tcGFyZSBhIHdvcmtpbmcgY29weSB3aXRoIGEgc3BlY2lmaWMgcmV2aXNpb24g -b3IgdG8gY29tcGFyZQp0d28gc3BlY2lmaWMgcmV2aXNpb25zLiBJdCB3aWxsIGxpa2VseSBhcHBs -eSB0byBvdGhlciBjb21tYW5kcyBpbiB0aGUKZnV0dXJlLgouVFAKXGZCLXJcZlAgXGZJPGlkPlxm -UApBbiBhbGlhcyBmb3IgXGZCLS1yZXZpc2lvbj1cZlBcZkk8aWQ+XGZQCi5UUApcZkItLW1lc3Nh -Z2U9XGZJPGxvZyBtZXNzYWdlPlxmUApVc2UgdGhlIGdpdmVuIG1lc3NhZ2UgYXMgdGhlIGNoYW5n -ZWxvZyB3aGVuIGNvbW1pdHRpbmcgYSBuZXcgcmV2aXNpb24KcmF0aGVyIHRoYW4gaW52b2tpbmcg -dGhlIGxvZyBtZXNzYWdlIGVkaXRvci4gQ3VycmVudGx5IHRoaXMgb3B0aW9uIG9ubHkKYXBwbGll -cyB0byB0aGUgY29tbWl0IGNvbW1hbmQgYnV0IGl0IG1heSBhbHNvIGFwcGx5IHRvIHRoZSBjb21t -ZW50CmNvbW1hbmQgaW4gdGhlIGZ1dHVyZS4KLlRQClxmQi1tIFxmSTxsb2cgbWVzc2FnZT5cZlAK -QW4gYWxpYXMgZm9yIFxmQi0tbWVzc2FnZT1cZkk8bG9nIG1lc3NhZ2U+XGZQCi5UUApcZkItLWF1 -dGhvcj1cZkk8YXV0aG9yIGVtYWlsPlxmUApVc2UgdGhlIGdpdmVuIGF1dGhvciBhcyB0aGUgdmFs -dWUgb2YgdGhlICJhdXRob3IiIGNlcnQgd2hlbiBjb21taXR0aW5nCmEgbmV3IHJldmlzaW9uLCBy -YXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBhdXRob3IuICBVc2VmdWwgd2hlbgpjb21taXR0aW5nIGEg -cGF0Y2ggb24gYmVoYWxmIG9mIHNvbWVvbmUgZWxzZSwgb3Igd2hlbiBpbXBvcnRpbmcKaGlzdG9y -eSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4KLlRQClxmQi0tZGF0ZT1cZkk8 -ZGF0ZSBhbmQgdGltZT5cZlAKVXNlIHRoZSBnaXZlbiBnaXZlbiBkYXRlIGFuZCB0aW1lIGFzIHZh -bHVlIG9mIHRoZSAiZGF0ZSIgY2VydCB3aGVuCmNvbW1pdHRpbmcgYSBuZXcgcmV2aXNpb24sIHJh -dGhlciB0aGFuIHRoZSBjdXJyZW50IHRpbWUuICBVc2VmdWwgd2hlbgppbXBvcnRpbmcgaGlzdG9y -eSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4KLlRQClxmQi0tcm9vdD1cZkk8 -cm9vdCBkaXI+XGZQClN0b3AgdGhlIHNlYXJjaCBmb3IgYSB3b3JraW5nIGNvcHkgKGNvbnRhaW5p -bmcgdGhlIEBmaWxle01UfSBkaXJlY3RvcnkpCmF0IHRoZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3Rv -cnkgcmF0aGVyIHRoYW4gYXQgdGhlIHBoeXNpY2FsIHJvb3Qgb2YgdGhlCmZpbGVzeXN0ZW0uCi5U -UApcZkIteGFyZ3M9XGZJPGZpbGU+XGZQCkluamVjdCB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUg -aW4gcGxhY2UgYW1vbmcgdGhlIGNvbW1hbmQgbGluZQphcmd1bWVudHMuICBUaGlzIG1heSBiZSB1 -c2VmdWwgaW4gY2FzZSB0aGUgY29tbWFuZCBsaW5lIHdvdWxkCm90aGVyd2lzZSBiZWNvbWUgdG9v -IGxvbmcgZm9yIHlvdXIgc3lzdGVtLiAgVGhpcyBvcHRpb24gY2FuIGJlIHVzZWQKbW9yZSB0aGFu -IG9uY2UgaWYgbmVlZGVkLgouVFAKXGZCLUAgXGZJPGZpbGU+XGZQCkFuIGFsaWFzIGZvciBcZkIt -LXhhcmdzPVxmSTxmaWxlPlxmUAoKLlNIIEVOVklST05NRU5UCi5UUApcZkJFRElUT1JcZlAKVXNl -ZCB0byBlZGl0IGNvbW1lbnRzLCBsb2cgbWVzc2FnZXMsIGV0Yy4KLlRQClxmQlZJU1VBTFxmUApV -c2VkIGluIHByZWZlcmVuY2UgdG8gXGZCRURJVE9SXGZQLCBpZiBzZXQuCi5TSCBGSUxFUwouVFAK -XGZCJEhPTUUvLm1vbm90b25lcmNcZlAKQSBsdWEgc2NyaXB0LCB1c2VkIGFzIGEgY3VzdG9taXph -dGlvbiBmaWxlLgouU0ggTk9URVMKLklQIFwoYnUKQ29tbWFuZCBsaW5lIG9wdGlvbnMgb3ZlcnJp -ZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZApzZXR0aW5ncyBpbiBsdWEgc2NyaXB0cyAoc3Vj -aCBhcyBcZkIubW9ub3RvbmVyY1xmUCkKLlNIICJTRUUgQUxTTyIKXGZCaW5mbyBtb25vdG9uZVxm -UAouU0ggQlVHUwpzZWUgaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvYnVncy8/Z3JvdXA9bW9u -b3RvbmUKLlNIIEFVVEhPUgpncmF5ZG9uIGhvYXJlIDxncmF5ZG9uQHBvYm94LmNvbT4K +AT_DATA(right, [ +o +a +2 +3 +4 +a +q +e +g ]) -AT_DATA(correct.b64, [ -LlRIICJtb25vdG9uZSIgMQouU0ggTkFNRQptb25vdG9uZSBcLSBkaXN0cmlidXRlZCB2ZXJzaW9u -IGNvbnRyb2wgc3lzdGVtCi5TSCBTWU5PUFNJUwpcZkJtb25vdG9uZVxmUCBcZklbb3B0aW9uc10g -PGNvbW1hbmQ+IFtwYXJhbWV0ZXJzXVxmUAouUApPcHRpb25zLCB3aGljaCBhZmZlY3QgZ2xvYmFs -IGJlaGF2aW9yIG9yIHNldCBkZWZhdWx0IHZhbHVlcywgY29tZQpmaXJzdCBpbiB0aGUgYXJndW1l -bnQgbGlzdC4gQSBzaW5nbGUgY29tbWFuZCBtdXN0IGZvbGxvdywgaW5kaWNhdGluZwp0aGUgb3Bl -cmF0aW9uIHRvIHBlcmZvcm0sIGZvbGxvd2VkIGJ5IHBhcmFtZXRlcnMgd2hpY2ggdmFyeSBkZXBl -bmRpbmcKb24gdGhlIGNvbW1hbmQuCi5TUyBOb3RlClRoaXMgbWFucGFnZSBpcyBhIHN1bW1hcnkg -b2Ygc29tZSBvZiB0aGUgZmVhdHVyZXMgYW5kIGNvbW1hbmRzIG9mClxmQm1vbm90b25lXGZQLCBi -dXQgaXQgaXMgbm90IHRoZSBtb3N0IGRldGFpbGVkIHNvdXJjZSBvZiBpbmZvcm1hdGlvbgphdmFp -bGFibGUuIEZvciBhIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgdGhlIGNvbmNlcHRzIGFuZCBhIHR1 -dG9yaWFsIG9uCml0cyB1c2UsIHBsZWFzZSByZWZlciB0byB0aGUgdGV4aW5mbyBtYW51YWwgKHZp -YSB0aGUgXGZCaW5mbwptb25vdG9uZVxmUCBjb21tYW5kLCBvciBvbmxpbmUpLgouU1MgQ29tbWFu -ZHMKLlRQIApcZkJjb21tZW50XGZQIFxmSTxpZD5cZlAKV3JpdGUgYSBjb21tZW50IGNlcnQgZm9y -IGEgcmV2aXNpb24uCi5UUApcZkJhcHByb3ZlXGZQIFxmSTxpZD5cZlAKTWFrZSBhICJicmFuY2gi -IGNlcnQgYXBwcm92aW5nIG9mIGEgcmV2aXNpb24ncyBtZW1iZXJzaGlwIGluIGEgYnJhbmNoLgou -VFAKXGZCZGlzYXBwcm92ZVxmUCBcZkk8aWQxPlxmUApEaXNhcHByb3ZlIG9mIGEgcmV2aXNpb24s -IGNvbW1pdHRpbmcgdGhlIGludmVyc2UgY2hhbmdlcyBhcyBhcyBhCmRlc2NlbmRhbnQgb2YgdGhl -IGRpc2FwcHJvdmVkIHJldmlzaW9uLgouVFAKXGZCdGFnXGZQIFxmSTxpZD4gPHRhZ25hbWU+XGZQ -ClB1dCBhIHN5bWJvbGljIHRhZyBjZXJ0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJ0ZXN0cmVzdWx0 -XGZQIFxmSTxpZD4gKDB8MXx0cnVlfGZhbHNlfHllc3xub3xwYXNzfGZhaWwpXGZQCkluZGljYXRl -IGEgcGFzc2luZyBvciBmYWlsaW5nIHRlc3QgcmVzdWx0IG9uIGEgcmV2aXNpb24uCi5UUApcZkJh -Z3JhcGhcZlAKRHVtcCByZXZpc2lvbiBncmFwaCB0byBzdGRvdXQgaW4gVkNHIGZvcm1hdC4KLlRQ -ClxmQmRpZmYgXGZJWy0tcmV2aXNpb249PGlkMT4gWy0tcmV2aXNpb249PGlkMj5dIF0gWzxwYXRo -bmFtZT4uLi5dXGZQClNob3cgZGlmZnMgYmV0d2VlbiB3b3JraW5nIGNvcHkgYW5kIGRhdGFiYXNl -LgouVFAKXGZCc3RhdHVzIFxmSVs8cGF0aG5hbWU+Li4uXVxmUApTaG93IHN0YXR1cyBvZiB3b3Jr -aW5nIGNvcHkuCi5UUApcZkJpbnZlbnRvcnkgXGZJWzxwYXRobmFtZT4uLi5dXGZQClNob3cgaW52 -ZW50b3J5IG9mIGZpbGVzIGluIHRoZSB3b3JraW5nIGNvcHkuCi5UUApcZkJsb2dcZlAgXGZJW2lk -XSBcZlAKU2hvdyBoaXN0b3JpY2FsIGxvZyBvZiByZXZpc2lvbnMsIHN0YXJ0aW5nIGZyb20gd29y -a2luZyBjb3B5CmJhc2UgcmV2aXNpb24sIG9yIFxmSVtpZF1cZlAgaWYgZ2l2ZW4uCi5UUApcZkJj -ZXJ0XGZQIFxmSTxpZD4gPGNlcnRuYW1lPiBbY2VydHZhbF1cZlAKQ3JlYXRlIGEgY3VzdG9tIGNl -cnQgZm9yIGEgcmV2aXNpb24uIFJlYWRzIGNlcnQgdmFsdWUKZnJvbSBzdGRpbiBpZiBubyB2YWx1 -ZSBnaXZlbiBvbiBjb21tYW5kIGxpbmUuCi5UUApcZkJnZW5rZXlcZlAgXGZJPGtleWlkPlxmUApH -ZW5lcmF0ZSBhbiBSU0Ega2V5LXBhaXIgYW5kIHN0b3JlIGl0IGluIHRoZSBkYXRhYmFzZS4KLlRQ -ClxjaGtleXBhc3NcZlAgXGZJPGtleWlkPlxmUApDaGFuZ2UgcGFzc3BocmFzZSBvZiB0aGUgcHJp -dmF0ZSBoYWxmIG9mIGEga2V5LgouVFAKXGZCbGlzdCBjZXJ0c1xmUCBcZkk8aWQ+XGZQCkxpc3Qg -Y2VydHMgYXNzb2NpYXRlZCB3aXRoIHJldmlzaW9uLgouVFAKXGZCbGlzdCBrZXlzXGZQIFxmSVtw -YXJ0aWFsLWlkXVxmUApMaXN0IGtleXMgbWF0Y2hpbmcgZ2xvYiwgb3IgbGlzdCBhbGwga2V5cyBp -ZiBubyBnbG9iIGdpdmVuLgouVFAKXGZCbGlzdCBicmFuY2hlc1xmUApMaXN0IGFsbCBicmFuY2hl -cy4KLlRQClxmQmxpc3QgdGFnc1xmUApMaXN0IGFsbCB0YWdzLgouVFAKXGZCbGlzdCB2YXJzIFxm -SVs8ZG9tYWluPl1cZlAKTGlzdCBhbGwgdmFycyAocG9zc2libHkgbGltaXRlZCBieSBkb21haW4p -LgouVFAKXGZCbGlzdCB1bmtub3duIFxmSVs8cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4g -d29ya2luZyBkaXJlY3RvcnksIGJ1dCBub3QgaW4gcmV2aXNpb24ncyBtYW5pZmVzdCBvcgp3b3Jr -IGxpc3QuCi5UUApcZkJsaXN0IGlnbm9yZWQgXGZJWzxwYXRobmFtZS4uLl1cZlAKTGlzdCBmaWxl -cyBpbnRlbnRpb25hbGx5IGlnbm9yZWQgZHVlIHRvIHRoZSBpZ25vcmVfZmlsZSBob29rLgouVFAK -XGZCbGlzdCBtaXNzaW5nIFxmSVs8cGF0aG5hbWUuLi5dXGZQCkxpc3QgZmlsZXMgaW4gcmV2aXNp -b24ncyBtYW5pZmVzdCwgYnV0IG5vdCBpbiB3b3JraW5nIGRpcmVjdG9yeS4KLlRQClxmQmZkYXRh -XGZQIFxmSTxpZD5cZlAKV3JpdGUgZmlsZSBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5UUApcZkJm -ZGVsdGFcZlAgXGZJPG9sZGlkPiA8bmV3aWQ+XGZQCldyaXRlIGZpbGUgZGVsdGEgcGFja2V0IHRv -IHN0ZG91dC4KLlRQClxmQm1kYXRhXGZQIFxmSTxpZD5cZlAKV3JpdGUgbWFuaWZlc3QgZGF0YSBw -YWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCbWRlbHRhXGZQIFxmSTxvbGRpZD4gPG5ld2lkPlxmUApX -cml0ZSBtYW5pZmVzdCBkZWx0YSBwYWNrZXQgdG8gc3Rkb3V0LgouVFAKXGZCY2VydHNcZlAgXGZJ -PGlkPlxmUApXcml0ZSByZXZpc2lvbiBjZXJ0IHBhY2tldHMgdG8gc3Rkb3V0LgouVFAKXGZCcmRh -dGFcZlAgXGZJPGlkPlxmUApXcml0ZSByZXZpc2lvbiBkYXRhIHBhY2tldCB0byBzdGRvdXQuCi5U -UApcZkJwcml2a2V5XGZQIFxmSTxpZD5cZlAKV3JpdGUgcHJpdmF0ZSBrZXkgcGFja2V0IHRvIHN0 -ZG91dC4KLlRQClxmQnB1YmtleVxmUCBcZkk8aWQ+XGZQCldyaXRlIHB1YmxpYyBrZXkgcGFja2V0 -IHRvIHN0ZG91dC4KLlRQClxmQnJlYWRcZlAKUmVhZCBwYWNrZXRzIGZyb20gc3RkaW4uIAouVFAK -XGZCY3ZzX2ltcG9ydFxmUCBcZkk8Y3Zzcm9vdD5cZlAKSW1wb3J0IGFsbCB2ZXJzaW9ucyBpbiBD -VlMgcmVwb3NpdG9yeS4gUmVjb25zdHJ1Y3RzIHJldmlzaW9ucyBhbmQKY29udmVydHMgbWV0YWRh -dGEgdG8gY2VydGlmaWNhdGVzLiBBIHByaXZhdGUgc2lnbmluZyBrZXkgbXVzdCBhbHJlYWR5CmV4 -aXN0IGluIHRoZSBkYXRhYmFzZS4KLlRQClxmQnJjc19pbXBvcnRcZlAgXGZJPHJjc2ZpbGU+IC4u -LlxmUApJbXBvcnQgYWxsIGZpbGUgdmVyc2lvbnMgaW4gUkNTIGZpbGVzLiBEb2VzIG5vdCByZWNv -bnN0cnVjdCByZXZpc2lvbnMKYWNyb3NzIHRoZSBlbnRpcmUgdHJlZS4gIFlvdSBkbyBub3Qgd2Fu -dCB0aGlzIGNvbW1hbmQsIGl0IGlzIGZvcgpkZWJ1Z2dpbmc7IHVzZSBjdnNfaW1wb3J0LgouVFAK -XGZCY2hlY2tvdXRcZlAgXGZJW21hbmlmZXN0LWlkXVxmUCBcZkk8ZGlyZWN0b3J5XGZQCkNoZWNr -IG91dCB0cmVlIHN0YXRlIGZyb20gZGF0YWJhc2UuCi5UUApcZkJjb1xmUCBcZklbbWFuaWZlc3Qt -aWRdXGZQIFxmSTxkaXJlY3RvcnlcZlAKQ2hlY2sgb3V0IHRyZWUgc3RhdGUgZnJvbSBkYXRhYmFz -ZTsgYW4gYWxpYXMgZm9yIFxmQmNoZWNrb3V0XGZQLgouVFAKXGZCY2F0XGZQIFxmSShmaWxlfG1h -bmlmZXN0KSA8aWQ+XGZQCldyaXRlIGZpbGUgb3IgbWFuaWZlc3QgZnJvbSBkYXRhYmFzZSB0byBz -dGRvdXQuCi5UUApcZkJoZWFkc1xmUApTaG93IHVubWVyZ2VkIGhlYWRzIG9mIGJyYW5jaCwgb3Ig -cmVwb3J0IHdoZW4gYnJhbmNoIGlzIG1lcmdlZC4KLlRQClxmQm1lcmdlXGZQCk1lcmdlIHVubWVy -Z2VkIGhlYWRzIG9mIGJyYW5jaC4KLlRQClxmQmFkZFxmUCBcZkk8cGF0aG5hbWU+IFsuLi5dXGZQ -CkFkZCBmaWxlcyB0byB3b3JraW5nIGNvcHkuIGFkZGluZyBhIGZpbGUgZG9lcyBub3QgY29weSBp -dCBpbnRvIHRoZSBkYXRhYmFzZSwKbWVyZWx5IGFkZHMgaXQgdG8gdGhlIHdvcmsgbGlzdC4gWW91 -IG11c3QgXGZCY29tbWl0XGZQIHlvdXIgY2hhbmdlcyBpbiBvcmRlcgp0byBjb3B5IGFkZGVkIGZp -bGVzIHRvIHRoZSBkYXRhYmFzZS4KLlRQClxmQmRyb3BcZlAgXGZJPHBhdGhuYW1lPiBbLi4uXVxm -UApEcm9wIGZpbGVzIGZyb20gd29ya2luZyBjb3B5LiBGaWxlcyBhcmUgbm90IGRlbGV0ZWQgZnJv -bSB3b3JraW5nIGNvcHksIAptZXJlbHkgbm90ZWQgYXMgcmVtb3ZhbHMgaW4gdGhlIHdvcmsgbGlz -dC4KLlRQClxmQnJlbmFtZVxmUCBcZkk8c3JjPiBcZkk8ZHN0PlxmUApSZW5hbWUgZmlsZXMgZnJv -bSBcZkk8c3JjPiBcZlAgdG8gXGZJPGRzdD4gXGZQIGluIHdvcmtpbmcgY29weS4KLlRQClxmQmNv -bW1pdFxmUCBcZklbLS1tZXNzYWdlPTxsb2cgbWVzc2FnZT5dIFs8cGF0aG5hbWU+Li4uXVxmUCAK -Q29tbWl0IHdvcmtpbmcgY29weSB0byBkYXRhYmFzZS4gSWYgYSAtLW1lc3NhZ2Ugb3B0aW9uIGlz -IHByb3ZpZGVkIG9uCnRoZSBjb21tYW5kIGluZSwgaXQgaXMgdXNlZDsgb3RoZXJ3aXNlIGEgbG9n -IG1lc3NhZ2UgZWRpdG9yIHdpbGwgYmUKaW52b2tlZC4KLlRQClxmQnVwZGF0ZVxmUCAgXGZJW3Jl -dmlzaW9uLWlkXVxmUApVcGRhdGUgd29ya2luZyBjb3B5LgouVFAKXGZCdXBkYXRlX2lub2RlcHJp -bnRzXGZQIApUdXJuIG9uIGlub2RlcHJpbnRzIG1vZGUsIGFuZCBmb3JjZSBhIGNhY2hlIHJlZnJl -c2guCi5UUApcZkJwdXNoXGZQIFxmSVs8aG9zdD4gWzxjb2xsZWN0aW9uPl1dXGZQIApQdXNoIGNv -bnRlbnRzIG9mIFxmSTxjb2xsZWN0aW9uPlxmUCB0byBkYXRhYmFzZSBvbiBcZkk8aG9zdD5cZlAg -Ci5UUApcZkJwdWxsXGZQIFxmSVs8aG9zdD4gWzxjb2xsZWN0aW9uPl1dXGZQIApQdXNoIGNvbnRl -bnRzIG9mIFxmSTxjb2xsZWN0aW9uPlxmUCBmcm9tIGRhdGFiYXNlIG9uIFxmSTxob3N0PlxmUCAK -LlRQClxmQnN5bmNcZlAgXGZJPGhvc3Q+IDxjb2xsZWN0aW9uPlxmUCAKU3luYyBjb250ZW50cyBv -ZiBcZkk8Y29sbGVjdGlvbj5cZlAgd2l0aCBkYXRhYmFzZSBvbiBcZkk8aG9zdD5cZlAgCi5UUApc -ZkJzZXJ2ZVxmUCBcZkk8aG9zdD4gPGNvbGxlY3Rpb24+XGZQIApTZXJ2ZSBjb250ZW50cyBvZiBc -Zkk8Y29sbGVjdGlvbj5cZlAgYXQgbmV0d29yayBhZGRyZXNzIFxmSTxob3N0PlxmUCAKLlRQClxm -QnNldFxmUCBcZkk8ZG9tYWluPiA8bmFtZT4gPHZhbHVlPlxmUCAKU2V0IHRoZSBkYiB2YXIgXGZJ -PG5hbWU+XGZQIGluIGRvbWFpbiBcZkk8ZG9tYWluPlxmUCB0byB2YWx1ZQpcZkk8dmFsdWU+XGZQ -LiAKLlRQClxmQnVuc2V0XGZQIFxmSTxkb21haW4+IDxuYW1lPlxmUCAKRGVsZXRlIGFueSBzZXR0 -aW5nIGZvciBkYiB2YXIgXGZJPG5hbWU+XGZQIGluIGRvbWFpbiBcZkk8ZG9tYWluPlxmUC4KLlRQ -ClxmQmF1dG9tYXRlXGZQIFxmSShpbnRlcmZhY2VfdmVyc2lvbnxoZWFkc3xkZXNjZW5kZW50c3xl -cmFzZV9hbmNlc3RvcnN8dG9wb3NvcnR8YW5jZXN0cnlfZGlmZmVyZW5jZXxsZWF2ZXMpXGZQClNj -cmlwdGluZyBpbnRlcmZhY2UuCi5UUApcZkJkYlxmUCBcZkkoaW5pdHxpbmZvfHZlcnNpb258ZHVt -cHxsb2FkfG1pZ3JhdGV8cmVidWlsZHxleGVjdXRlfGNoZWNrKVxmUApNYW5pcHVsYXRlIGRhdGFi -YXNlIHN0YXRlLgouU0ggREVTQ1JJUFRJT04KTW9ub3RvbmUgaXMgYSB2ZXJzaW9uIGNvbnRyb2wg -c3lzdGVtLCB3aGljaCBhbGxvd3MgeW91IHRvIGtlZXAgb2xkCnZlcnNpb25zIG9mIGZpbGVzLCBh -cyB3ZWxsIGFzIHNwZWNpYWwgXGZJbWFuaWZlc3QgZmlsZXNcZlAgd2hpY2gKZGVzY3JpYmUgdGhl -IGxvY2F0aW9uIG9mIGZpbGVzIGluIGEgdHJlZS4gVW5saWtlIG90aGVyIHN5c3RlbXMsCnZlcnNp -b25zIGluIG1vbm90b25lIGFyZSBcZklpZGVudGlmaWVkXGZQIGJ5IGNyeXB0b2dyYXBoaWMgaGFz -aCwgYW5kCm9wZXJhdGlvbnMgYXJlIGF1dGhlbnRpY2F0ZWQgYnkgaW5kaXZpZHVhbCB1c2Vycycg -ZXZhbHVhdGluZwpjcnlwdG9ncmFwaGljIHNpZ25hdHVyZXMgb24gbWV0YS1kYXRhLCByYXRoZXIg -dGhhbiBhbnkgY2VudHJhbAphdXRob3JpdHkuCgpNb25vdG9uZSBrZWVwcyBhIGNvbGxlY3Rpb24g -b2YgdmVyc2lvbnMgaW4gYSBzaW5nbGUtZmlsZSByZWxhdGlvbmFsCmRhdGFiYXNlLiBJdCBpcyBl -c3NlbnRpYWxseSBzZXJ2ZXJsZXNzLCB1c2luZyBuZXR3b3JrIHNlcnZlcnMgb25seSBhcwp1bnRy -dXN0ZWQgY29tbXVuaWNhdGlvbiBmYWNpbGl0aWVzLiBBIG1vbm90b25lIGRhdGFiYXNlIGlzIGEg -cmVndWxhcgpmaWxlLCB3aGljaCBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCB0 -byBleHRyYWN0IHByZXZpb3VzCnZlcnNpb25zIG9mIGZpbGVzLCB2ZXJpZnkgc2lnbmF0dXJlcywg -bWVyZ2UgYW5kIG1vZGlmeSB2ZXJzaW9ucywgYW5kCmNvbW11bmljYXRlIHdpdGggbmV0d29yayBz -ZXJ2ZXJzLgouU0ggT1BUSU9OUwouVFAKXGZCLS1oZWxwXGZQClByaW50IGhlbHAgbWVzc2FnZS4K -LlRQClxmQi0tZGVidWdcZlAKVHVybiBvbiBkZWJ1Z2dpbmcgbG9nIG9uIHN0YW5kYXJkIGVycm9y -IHN0cmVhbS4gVGhpcyBpcyB2ZXJ5CnZlcmJvc2UuIERlZmF1bHQgaXMgdG8gYmUgc2lsZW50LCB1 -bmxlc3MgYW4gZXJyb3Igb2NjdXJzLCBpbiB3aGljaApjYXNlIGZhaWx1cmUgbG9nIGlzIGR1bXBl -ZC4KLlRQClxmQi0tcXVpZXRcZlAKVHVybiBvZmYgbm9ybWFsIHByb2dyZXNzIG1lc3NhZ2VzLgou -VFAKXGZCLS1kdW1wPVxmUFxmSTxmaWxlPlxmUApEdW1wIGRlYnVnZ2luZyBsb2cgdG8gXGZJZmls -ZVxmUCBvbiBmYWlsdXJlLgouVFAKXGZCLS1ub3N0ZFxmUApEbyBub3QgZXZhbHVhdGUgInN0YW5k -YXJkIiBsdWEgaG9va3MgY29tcGlsZWQgaW50byBcZkJtb25vdG9uZVxmUC4KLlRQClxmQi0tbm9y -Y1xmUApEbyBub3QgbG9hZCBsdWEgaG9va3MgZnJvbSB1c2VyJ3MgXGZCfi8ubW9ub3RvbmVyY1xm -UCBmaWxlLgouVFAKXGZCLS1yY2ZpbGU9XGZQXGZJPGZpbGU+XGZQCkxvYWQgZXh0cmEgbHVhIGhv -b2tzIGZyb20gXGZJZmlsZVxmUCAobWF5IGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzKS4KLlRQClxm -Qi0tZGI9XGZQXGZJPGZpbGU+XGZQClVzZSBkYXRhYmFzZSBpbiBcZklmaWxlXGZQLgouVFAKXGZC -LS1rZXk9XGZQXGZJPGtleWlkPlxmUApVc2UgXGZJa2V5aWRcZlAgZm9yIG9wZXJhdGlvbnMgd2hp -Y2ggcHJvZHVjZSBSU0Egc2lnbmF0dXJlcy4gRGVmYXVsdAppcyBpbmZlcnJlZCBmcm9tIHByZXNl -bmNlIG9mIHVuaXF1ZSBwcml2YXRlIGtleSBpbiBkYXRhYmFzZS4gQ2FuIGFsc28KYmUgY3VzdG9t -aXplZCBvbiBhIHBlci1icmFuY2ggYmFzaXMgd2l0aCBob29rIGZ1bmN0aW9uIApcZkJnZXRfYnJh -bmNoX2tleShicmFuY2huYW1lKVxmUC4KLlRQClxmQi1rXGZQIFxmSTxrZXlpZD5cZlAKQW4gYWxp -YXMgZm9yIFxmQi0ta2V5PVxmUFxmSTxrZXlpZD5cZlAKLlRQClxmQi0tYnJhbmNoPVxmUFxmSTxi -cmFuY2huYW1lPlxmUApVc2UgXGZJYnJhbmNobmFtZVxmUCBmb3Igb3BlcmF0aW9ucyBvbiBhIGJy -YW5jaC4gRGVmYXVsdCBpcyBpbmZlcnJlZAppbiBvcGVyYXRpb25zIG9uIGV4aXN0aW5nIGJyYW5j -aGVzIChjb21taXQsIHVwZGF0ZSwgZXRjKS4KLlRQClxmQi1iXGZQIFxmSTxicmFuY2huYW1lPlxm -UApBbiBhbGlhcyBmb3IgXGZCLS1icmFuY2g9XGZQXGZJPGJyYW5jaG5hbWU+XGZQCi5UUApcZkIt -LXRpY2tldD1cZlBcZklkb3R8Y291bnRcZlAKVXNlIHRoZSBnaXZlbiBtZXRob2QgdG8gcHJpbnQg -dGlja2Vycy4gIFRoZSBcZkJjb3VudFxmUCBtZXRob2QgcHJpbnRzCnRoZSBjb3VudCBmb3IgZWFj -aCB0aWNrZXIgb24gb25lIGxpbmUsIGluY3JlbWVudGluZyB0aGUgbnVtYmVycyBpbgpwbGFjZSwg -d2hpbGUgdGhlIFxmQmRvdFxmUCBtZXRob2QgcHJpbnRzIGEgY29udGludW91cyBzdHJpbmcgb2YK -Y2hhcmFjdGVycyAobGlrZSBzb21lIHByb2dyYW1zIHByb3ZpZGUgYSBwcm9ncmVzcyBsaW5lIG9m -IGRvdHMpLgpUaGUgZGVmYXVsdCBpcyBcZkJjb3VudFxmUC4KLlRQClxmQi0tcmV2aXNpb249XGZQ -XGZJPGlkPlxmUApDdXJyZW50bHkgdGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHRoZSBkaWZm -IGNvbW1hbmQgd2hlcmUgaXQgbWF5IGJlCnVzZWQgdG8gY29tcGFyZSBhIHdvcmtpbmcgY29weSB3 -aXRoIGEgc3BlY2lmaWMgcmV2aXNpb24gb3IgdG8gY29tcGFyZQp0d28gc3BlY2lmaWMgcmV2aXNp -b25zLiBJdCB3aWxsIGxpa2VseSBhcHBseSB0byBvdGhlciBjb21tYW5kcyBpbiB0aGUKZnV0dXJl -LgouVFAKXGZCLXJcZlAgXGZJPGlkPlxmUApBbiBhbGlhcyBmb3IgXGZCLS1yZXZpc2lvbj1cZlBc -Zkk8aWQ+XGZQCi5UUApcZkItLW1lc3NhZ2U9XGZJPGxvZyBtZXNzYWdlPlxmUApVc2UgdGhlIGdp -dmVuIG1lc3NhZ2UgYXMgdGhlIGNoYW5nZWxvZyB3aGVuIGNvbW1pdHRpbmcgYSBuZXcgcmV2aXNp -b24KcmF0aGVyIHRoYW4gaW52b2tpbmcgdGhlIGxvZyBtZXNzYWdlIGVkaXRvci4gQ3VycmVudGx5 -IHRoaXMgb3B0aW9uIG9ubHkKYXBwbGllcyB0byB0aGUgY29tbWl0IGNvbW1hbmQgYnV0IGl0IG1h -eSBhbHNvIGFwcGx5IHRvIHRoZSBjb21tZW50CmNvbW1hbmQgaW4gdGhlIGZ1dHVyZS4KLlRQClxm -Qi1tIFxmSTxsb2cgbWVzc2FnZT5cZlAKQW4gYWxpYXMgZm9yIFxmQi0tbWVzc2FnZT1cZkk8bG9n -IG1lc3NhZ2U+XGZQCi5UUApcZkItLWF1dGhvcj1cZkk8YXV0aG9yIGVtYWlsPlxmUApVc2UgdGhl -IGdpdmVuIGF1dGhvciBhcyB0aGUgdmFsdWUgb2YgdGhlICJhdXRob3IiIGNlcnQgd2hlbiBjb21t -aXR0aW5nCmEgbmV3IHJldmlzaW9uLCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBhdXRob3IuICBV -c2VmdWwgd2hlbgpjb21taXR0aW5nIGEgcGF0Y2ggb24gYmVoYWxmIG9mIHNvbWVvbmUgZWxzZSwg -b3Igd2hlbiBpbXBvcnRpbmcKaGlzdG9yeSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5 -c3RlbS4KLlRQClxmQi0tZGF0ZT1cZkk8ZGF0ZSBhbmQgdGltZT5cZlAKVXNlIHRoZSBnaXZlbiBn -aXZlbiBkYXRlIGFuZCB0aW1lIGFzIHZhbHVlIG9mIHRoZSAiZGF0ZSIgY2VydCB3aGVuCmNvbW1p -dHRpbmcgYSBuZXcgcmV2aXNpb24sIHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IHRpbWUuICBVc2Vm -dWwgd2hlbgppbXBvcnRpbmcgaGlzdG9yeSBmcm9tIGFub3RoZXIgdmVyc2lvbiBjb250cm9sIHN5 -c3RlbS4KLlRQClxmQi0tcm9vdD1cZkk8cm9vdCBkaXI+XGZQClN0b3AgdGhlIHNlYXJjaCBmb3Ig -YSB3b3JraW5nIGNvcHkgKGNvbnRhaW5pbmcgdGhlIEBmaWxle01UfSBkaXJlY3RvcnkpCmF0IHRo -ZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gYXQgdGhlIHBoeXNpY2FsIHJv -b3Qgb2YgdGhlCmZpbGVzeXN0ZW0uCi5UUApcZkItLXhhcmdzPVxmSTxmaWxlPlxmUApJbmplY3Qg -dGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGluIHBsYWNlIGFtb25nIHRoZSBjb21tYW5kIGxpbmUK -YXJndW1lbnRzLiAgVGhpcyBtYXkgYmUgdXNlZnVsIGluIGNhc2UgdGhlIGNvbW1hbmQgbGluZSB3 -b3VsZApvdGhlcndpc2UgYmVjb21lIHRvbyBsb25nIGZvciB5b3VyIHN5c3RlbS4gIFRoaXMgb3B0 -aW9uIGNhbiBiZSB1c2VkCm1vcmUgdGhhbiBvbmNlIGlmIG5lZWRlZC4KLlRQClxmQi1AIFxmSTxm -aWxlPlxmUApBbiBhbGlhcyBmb3IgXGZCLS14YXJncz1cZkk8ZmlsZT5cZlAKLlRQClxmQi0tYWxs -LWZpbGVzXGZQCkluY2x1ZGUgZXZlcnkgZmlsZSBhdmFpbGFibGUgaW4gdGhlIHdvcmtpbmcgY29w -eSBpbiB0aGUgaW52ZW50b3J5Cmxpc3QuIEJ5IGRlZmF1bHQgaW52ZW50b3J5IG9ubHkgbGlzdHMg -YGBpbnRlcmVzdGluZycnIGZpbGVzLiBUaGlzIG9wdGlvbgppcyBzcGVjaWZpYyB0byB0aGUgQGNv -bW1hbmR7aW52ZW50b3J5fSBjb21tYW5kLgoKLlNIIEVOVklST05NRU5UCi5UUApcZkJFRElUT1Jc -ZlAKVXNlZCB0byBlZGl0IGNvbW1lbnRzLCBsb2cgbWVzc2FnZXMsIGV0Yy4KLlRQClxmQlZJU1VB -TFxmUApVc2VkIGluIHByZWZlcmVuY2UgdG8gXGZCRURJVE9SXGZQLCBpZiBzZXQuCi5TSCBGSUxF -UwouVFAKXGZCJEhPTUUvLm1vbm90b25lcmNcZlAKQSBsdWEgc2NyaXB0LCB1c2VkIGFzIGEgY3Vz -dG9taXphdGlvbiBmaWxlLgouU0ggTk9URVMKLklQIFwoYnUKQ29tbWFuZCBsaW5lIG9wdGlvbnMg -b3ZlcnJpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZApzZXR0aW5ncyBpbiBsdWEgc2NyaXB0 -cyAoc3VjaCBhcyBcZkIubW9ub3RvbmVyY1xmUCkKLlNIICJTRUUgQUxTTyIKXGZCaW5mbyBtb25v -dG9uZVxmUAouU0ggQlVHUwpzZWUgaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvYnVncy8/Z3Jv -dXA9bW9ub3RvbmUKLlNIIEFVVEhPUgpncmF5ZG9uIGhvYXJlIDxncmF5ZG9uQHBvYm94LmNvbT4K +AT_DATA(correct, [ +o +a +2 +3 +4 +a +q +d +g ]) -UNB64(parent.b64, parent) -UNB64(left.b64, left) -UNB64(right.b64, right) -UNB64(correct.b64, correct) - AT_CHECK(cp -f parent testfile) AT_CHECK(MONOTONE add testfile, [], [ignore], [ignore]) COMMIT(testbranch)