<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>121924</bug_id>
          
          <creation_ts>2013-09-25 13:49:06 -0700</creation_ts>
          <short_desc>Use tuples for encoding IPC messages</short_desc>
          <delta_ts>2013-09-25 13:56:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933185</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-25 13:49:06 -0700</bug_when>
    <thetext>Use tuples for encoding IPC messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933186</commentid>
    <comment_count>1</comment_count>
      <attachid>212622</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-25 13:50:43 -0700</bug_when>
    <thetext>Created attachment 212622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933188</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-25 13:56:38 -0700</bug_when>
    <thetext>Committed r156420: &lt;http://trac.webkit.org/changeset/156420&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212622</attachid>
            <date>2013-09-25 13:50:43 -0700</date>
            <delta_ts>2013-09-25 13:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121924-20130925135043.patch</filename>
            <type>text/plain</type>
            <size>27560</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWI1YTUwOGVmODIxNzk3
ZmYyMmI4OGJhNmMzMTY1NGQzMjM2ZDgwYS4uZTMwZDk5MzdkMDc0M2M4YTM1MzJmMTU1YzRkNDdm
MjJmNWNmYTdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTA5LTI1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHR1cGxlcyBm
b3IgZW5jb2RpbmcgSVBDIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjE5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBZZXQgYW5vdGhlciBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2Yg
dGhlIEFyZ3VtZW50cyBoaWVyYXJjaHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OnNlbmQpOgorICAgICAg
ICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmMpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvSGFuZGxlTWVzc2FnZS5oOgorICAgICAgICAoQ29yZUlQQzo6aGFuZGxlTWVzc2FnZSk6
CisgICAgICAgIChDb3JlSVBDOjpoYW5kbGVNZXNzYWdlVmFyaWFkaWMpOgorICAgICAgICAoQ29y
ZUlQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZVNlbmRlci5oOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjo6c2VuZCk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoYXJndW1l
bnRzX3R5cGVfb2xkKToKKyAgICAgICAgKGFyZ3VtZW50c190eXBlKToKKyAgICAgICAgKHJlcGx5
X3R5cGUpOgorICAgICAgICAoZGVjb2RlX3R5cGUpOgorICAgICAgICAoZGVsYXllZF9yZXBseV90
eXBlKToKKyAgICAgICAgKG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHk6CisgICAgICAgIChMb2FkVVJM
KToKKyAgICAgICAgKHN0ZCk6CisgICAgICAgIChUb3VjaEV2ZW50KToKKyAgICAgICAgKERpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChDbG9zZSk6CisgICAgICAgIChQcmVmZXJl
bmNlc0RpZENoYW5nZSk6CisgICAgICAgIChTZW5kRG91YmxlQW5kRmxvYXQpOgorICAgICAgICAo
U2VuZEludHMpOgorICAgICAgICAoQ3JlYXRlUGx1Z2luKToKKyAgICAgICAgKFJ1bkphdmFTY3Jp
cHRBbGVydCk6CisgICAgICAgIChHZXRQbHVnaW5zKToKKyAgICAgICAgKEdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgKFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMpOgorICAgICAg
ICAoVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMpOgorICAgICAgICAoVGVtcGxhdGVUZXN0KToKKyAg
ICAgICAgKERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKEludGVycHJl
dEtleUV2ZW50KToKKyAgICAgICAgKERlcHJlY2F0ZWRPcGVyYXRpb24pOgorICAgICAgICAoRXhw
ZXJpbWVudGFsT3BlcmF0aW9uKToKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzUHJveHk6OnNlbmQpOgorCiAyMDEzLTA5
LTI1ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAg
ICAgICAgIFtRdF0gRml4IGJ1aWxkIHdpdGggUXQgNS4yIFF0UG9zaXRpb24gbW9kdWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IGQyZTA3MjRk
YjdkODg5NzI3YjdjMWJhMjAzYjIzMTkyM2EyNmU4MmMuLjY0ODYyYzg0NmMzOGQ4NDEzZDgzNjA5
OTdhNjVkZGM3YTM5MzIzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5oCkBAIC0zNTAsNyArMzUwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9v
bCBDb25uZWN0aW9uOjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW8K
ICAgICBDT01QSUxFX0FTU0VSVCghVDo6aXNTeW5jLCBBc3luY01lc3NhZ2VFeHBlY3RlZCk7CiAK
ICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VFbmNvZGVyPihUOjpy
ZWNlaXZlck5hbWUoKSwgVDo6bmFtZSgpLCBkZXN0aW5hdGlvbklEKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUobWVzc2FnZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UuYXJndW1lbnRzKCkp
OwogICAgIAogICAgIHJldHVybiBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5jb2RlciksIG1lc3Nh
Z2VTZW5kRmxhZ3MpOwogfQpAQCAtMzYzLDcgKzM2Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGJvb2wgQ29ubmVjdGlvbjo6c2VuZFN5bmMoY29uc3QgVCYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6
UmVwCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gY3JlYXRl
U3luY01lc3NhZ2VFbmNvZGVyKFQ6OnJlY2VpdmVyTmFtZSgpLCBUOjpuYW1lKCksIGRlc3RpbmF0
aW9uSUQsIHN5bmNSZXF1ZXN0SUQpOwogICAgIAogICAgIC8vIEVuY29kZSB0aGUgcmVzdCBvZiB0
aGUgaW5wdXQgYXJndW1lbnRzLgotICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUobWVzc2FnZS5hcmd1bWVudHMoKSk7CiAKICAgICAvLyBOb3cgc2VuZCB0
aGUgbWVzc2FnZSBhbmQgd2FpdCBmb3IgYSByZXBseS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZURlY29kZXI+IHJlcGx5RGVjb2RlciA9IHNlbmRTeW5jTWVzc2FnZShzeW5jUmVxdWVzdElE
LCBzdGQ6Om1vdmUoZW5jb2RlciksIHRpbWVvdXQsIHN5bmNTZW5kRmxhZ3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA0ZTYzMzQy
MTAwNzJiYWQ1OWI5NjNhZTcyOTk2NDVkNDljNzRjNTFhLi5kODc1YTgwMzRmZTdmZjAyZjA4ZTEw
ODY1NGU4Nzc5OTQwMDJlNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMzY1LDExICszNjUsMTAgQEAgdm9pZCBjYWxsTWVtYmVy
RnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYmIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGUKIH0KIAogLy8gTWFpbiBkaXNwYXRjaCBmdW5jdGlvbnMKLQogdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CiB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVz
c2FnZURlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgdHlw
ZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKKyAgICB0eXBlbmFtZSBU
OjpEZWNvZGVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50
cykpCiAgICAgICAgIHJldHVybjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFy
Z3VtZW50cyksIG9iamVjdCwgZnVuY3Rpb24pOwpAQCAtMzc4LDcgKzM3Nyw3IEBAIHZvaWQgaGFu
ZGxlTWVzc2FnZShNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgogdm9pZCBo
YW5kbGVNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBNZXNzYWdlRW5jb2RlciYgcmVw
bHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIHR5cGVuYW1lIFQ6OkRl
Y29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7CisgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlw
ZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTM5MCw3ICszODksNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iagog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CiB2b2lkIGhhbmRs
ZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIs
IE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7
Ci0gICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKKyAgICB0
eXBlbmFtZSBUOjpEZWNvZGVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDAyLDcgKzQwMSw3IEBAIHZvaWQg
aGFuZGxlTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgTWVzc2FnZUVuY29kCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBl
bmFtZSBNRj4KIHZvaWQgaGFuZGxlTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNz
YWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICB0eXBl
bmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOworICAgIHR5cGVuYW1lIFQ6
OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRz
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBz
dGQ6Om1vdmUoYXJndW1lbnRzKSwgb2JqZWN0LCBmdW5jdGlvbik7CkBAIC00MTEsNyArNDEwLDcg
QEAgdm9pZCBoYW5kbGVNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE0KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IEMsIHR5cGVuYW1lIE1GPgogdm9pZCBoYW5kbGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgdHlwZW5hbWUgVDo6
RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKKyAgICB0eXBlbmFtZSBUOjpEZWNvZGVU
eXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAg
ICAgIHJldHVybjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyks
IGRlY29kZXIsIG9iamVjdCwgZnVuY3Rpb24pOwpAQCAtNDIwLDcgKzQxOSw3IEBAIHZvaWQgaGFu
ZGxlTWVzc2FnZVZhcmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1G
IGZ1bmN0aW9uKQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+
CiB2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOworICAgIHR5cGVu
YW1lIFQ6OkRlY29kZVR5cGUgYXJndW1lbnRzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJn
dW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00MzIsNyArNDMxLDcgQEAgdm9pZCBoYW5k
bGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVy
JiByZXBseUVuY29kZXIKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1l
IE1GPgogdm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIHR5cGVuYW1lIFQ6
OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7CisgICAgdHlwZW5hbWUgVDo6RGVjb2Rl
VHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVNlbmRlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlU2VuZGVyLmgKaW5kZXggMDQ4NTI3OGU1YjAyNTM1OGYxYzBmY2ViZGI4ZGRhNjI1YTg4NTFl
My4uYmFkNTY2MGY5M2M3MGYzYTJmYTY3Zjk4MGIxY2Q2ZGUyNmNlNzhhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgcHVibGljOgogICAgICAgICBzdGF0aWNfYXNzZXJ0KCFVOjppc1N5bmMsICJNZXNzYWdl
IGlzIHN5bmMhIik7CiAKICAgICAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxN
ZXNzYWdlRW5jb2Rlcj4oVTo6cmVjZWl2ZXJOYW1lKCksIFU6Om5hbWUoKSwgZGVzdGluYXRpb25J
RCk7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKKyAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1lc3NhZ2UuYXJndW1lbnRzKCkpOwogICAgICAgICAKICAgICAgICAgcmV0dXJuIHNl
bmRNZXNzYWdlKHN0ZDo6bW92ZShlbmNvZGVyKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDEyZTMzZDlkOGM5NjYzMzE3YzQ5ZDFhYjA2
N2RmYWFlNzcyMjA1MTMuLjc5YTE2NmU3NDNiYmQwNjVhYzY2YWQ5YjA2OTkzMWQzYWIwN2Q0ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTkyLDM2
ICs5Miw0MyBAQCBkZWYgcmVwbHlfcGFyYW1ldGVyX3R5cGUodHlwZSk6CiAgICAgcmV0dXJuICcl
cyYnICUgdHlwZQogCiAKLWRlZiBhcmd1bWVudHNfdHlwZShwYXJhbWV0ZXJzLCBwYXJhbWV0ZXJf
dHlwZV9mdW5jdGlvbik6CitkZWYgYXJndW1lbnRzX3R5cGVfb2xkKHBhcmFtZXRlcnMsIHBhcmFt
ZXRlcl90eXBlX2Z1bmN0aW9uKToKICAgICBhcmd1bWVudHNfdHlwZSA9ICdDb3JlSVBDOjpBcmd1
bWVudHMlZCcgJSBsZW4ocGFyYW1ldGVycykKICAgICBpZiBsZW4ocGFyYW1ldGVycyk6CiAgICAg
ICAgIGFyZ3VtZW50c190eXBlID0gJyVzPCVzPicgJSAoYXJndW1lbnRzX3R5cGUsICcsICcuam9p
bihwYXJhbWV0ZXJfdHlwZV9mdW5jdGlvbihwYXJhbWV0ZXIudHlwZSkgZm9yIHBhcmFtZXRlciBp
biBwYXJhbWV0ZXJzKSkKICAgICByZXR1cm4gYXJndW1lbnRzX3R5cGUKIAogCitkZWYgYXJndW1l
bnRzX3R5cGUobWVzc2FnZSk6CisgICAgcmV0dXJuICdzdGQ6OnR1cGxlPCVzPicgJSAnLCAnLmpv
aW4oZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUocGFyYW1ldGVyLnR5cGUpIGZvciBwYXJhbWV0ZXIg
aW4gbWVzc2FnZS5wYXJhbWV0ZXJzKQorCiBkZWYgYmFzZV9jbGFzcyhtZXNzYWdlKToKICAgICBy
ZXR1cm4gYXJndW1lbnRzX3R5cGUobWVzc2FnZS5wYXJhbWV0ZXJzLCBmdW5jdGlvbl9wYXJhbWV0
ZXJfdHlwZSkKIAogCiBkZWYgcmVwbHlfdHlwZShtZXNzYWdlKToKLSAgICByZXR1cm4gYXJndW1l
bnRzX3R5cGUobWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzLCByZXBseV9wYXJhbWV0ZXJfdHlwZSkK
KyAgICByZXR1cm4gYXJndW1lbnRzX3R5cGVfb2xkKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycywg
cmVwbHlfcGFyYW1ldGVyX3R5cGUpCiAKIAogZGVmIGRlY29kZV90eXBlKG1lc3NhZ2UpOgorICAg
IHBhcmFtZXRlcnMgPSBtZXNzYWdlLnBhcmFtZXRlcnMKKwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShWQVJJQURJQ19BVFRSSUJVVEUpOgotICAgICAgICByZXR1cm4gYXJndW1lbnRzX3R5
cGUobWVzc2FnZS5wYXJhbWV0ZXJzWzotMV0sIHJlcGx5X3BhcmFtZXRlcl90eXBlKQotICAgIHJl
dHVybiBiYXNlX2NsYXNzKG1lc3NhZ2UpCisgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJz
WzotMV0KIAorICAgIHJldHVybiAnc3RkOjp0dXBsZTwlcz4nICUgJywgJy5qb2luKHBhcmFtZXRl
ci50eXBlIGZvciBwYXJhbWV0ZXIgaW4gcGFyYW1ldGVycykKIAogZGVmIGRlbGF5ZWRfcmVwbHlf
dHlwZShtZXNzYWdlKToKLSAgICByZXR1cm4gYXJndW1lbnRzX3R5cGUobWVzc2FnZS5yZXBseV9w
YXJhbWV0ZXJzLCBmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSkKKyAgICByZXR1cm4gYXJndW1lbnRz
X3R5cGVfb2xkKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycywgZnVuY3Rpb25fcGFyYW1ldGVyX3R5
cGUpCiAKIAogZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKG1lc3NhZ2UpOgogICAg
IHJlc3VsdCA9IFtdCiAgICAgZnVuY3Rpb25fcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1l
dGVyX3R5cGUoeC50eXBlKSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnBhcmFtZXRlcnNdCi0g
ICAgcmVzdWx0LmFwcGVuZCgnc3RydWN0ICVzIDogJXMnICUgKG1lc3NhZ2UubmFtZSwgYmFzZV9j
bGFzcyhtZXNzYWdlKSkpCi0gICAgcmVzdWx0LmFwcGVuZCgnIHtcbicpCisgICAgcmVzdWx0LmFw
cGVuZCgnY2xhc3MgJXMge1xuJyAlIG1lc3NhZ2UubmFtZSkKKyAgICByZXN1bHQuYXBwZW5kKCdw
dWJsaWM6XG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICB0eXBlZGVmICVzIERlY29kZVR5cGU7
XG4nICUgZGVjb2RlX3R5cGUobWVzc2FnZSkpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAg
IHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2Vp
dmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfVxuJykKICAgICByZXN1
bHQuYXBwZW5kKCcgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyBy
ZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCIlcyIpOyB9XG4nICUgbWVzc2FnZS5uYW1l
KQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSAlcztc
bicgJSAoJ2ZhbHNlJywgJ3RydWUnKVttZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9uZV0p
CkBAIC0xNDIsMTIgKzE0OSwxOCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24o
bWVzc2FnZSk6CiAKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7
XG4nICUgcmVwbHlfdHlwZShtZXNzYWdlKSkKIAotICAgIHJlc3VsdC5hcHBlbmQoJyAgICB0eXBl
ZGVmICVzIERlY29kZVR5cGU7XG4nICUgZGVjb2RlX3R5cGUobWVzc2FnZSkpCiAgICAgaWYgbGVu
KGZ1bmN0aW9uX3BhcmFtZXRlcnMpOgogICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgJXMlcygl
cyknICUgKGxlbihmdW5jdGlvbl9wYXJhbWV0ZXJzKSA9PSAxIGFuZCAnZXhwbGljaXQgJyBvciAn
JywgbWVzc2FnZS5uYW1lLCAnLCAnLmpvaW4oWycgJy5qb2luKHgpIGZvciB4IGluIGZ1bmN0aW9u
X3BhcmFtZXRlcnNdKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICAgICA6ICVzKCVz
KVxuJyAlIChiYXNlX2NsYXNzKG1lc3NhZ2UpLCAnLCAnLmpvaW4oW3hbMV0gZm9yIHggaW4gZnVu
Y3Rpb25fcGFyYW1ldGVyc10pKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgICAgIDog
bV9hcmd1bWVudHMoJXMpXG4nICUgJywgJy5qb2luKFt4WzFdIGZvciB4IGluIGZ1bmN0aW9uX3Bh
cmFtZXRlcnNdKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHtcbicpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICB9XG4nKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgfVxuXG4n
KQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjb25zdCAlcyBhcmd1bWVudHMoKSBjb25zdFxuJyAl
IGFyZ3VtZW50c190eXBlKG1lc3NhZ2UpKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICB7XG4nKQor
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzO1xuJykKKyAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgfVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbicpCisgICAgcmVz
dWx0LmFwcGVuZCgncHJpdmF0ZTpcbicpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICVzIG1fYXJn
dW1lbnRzO1xuJyAlIGFyZ3VtZW50c190eXBlKG1lc3NhZ2UpKQogICAgIHJlc3VsdC5hcHBlbmQo
J307XG4nKQogICAgIHJldHVybiBzdXJyb3VuZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQp
LCBtZXNzYWdlLmNvbmRpdGlvbikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CmluZGV4IGFhOTFjZWYwZTBiODdhZTU0YzEyZTlm
MjI5MTMzYWJkMzJlYWUzMzIuLjM3MmJjNThiZWQ3NDQwMzJiM2M1Mzk5ZmYyNjY4NDU2ZjY1MWFm
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNf
dW5pdHRlc3QucHkKQEAgLTM0OSwxMjggKzM0OSwyMzAgQEAgc3RhdGljIGlubGluZSBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSgpCiAgICAgcmV0dXJuIENvcmVJ
UEM6OlN0cmluZ1JlZmVyZW5jZSgiV2ViUGFnZSIpOwogfQogCi1zdHJ1Y3QgTG9hZFVSTCA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CitjbGFzcyBMb2FkVVJMIHsK
K3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V1RGOjpTdHJpbmc+IERlY29kZVR5cGU7
CisKICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsg
cmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiTG9h
ZFVSTCIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKLSAgICB0
eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiBEZWNvZGVUeXBl
OwogICAgIGV4cGxpY2l0IExvYWRVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHVybCkKLSAgICAgICAg
OiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4odXJsKQorICAgICAgICA6
IG1fYXJndW1lbnRzKHVybCkKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxj
b25zdCBXVEY6OlN0cmluZyY+IGFyZ3VtZW50cygpIGNvbnN0CiAgICAgeworICAgICAgICByZXR1
cm4gbV9hcmd1bWVudHM7CiAgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8Y29uc3Qg
V1RGOjpTdHJpbmcmPiBtX2FyZ3VtZW50czsKIH07CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotc3RydWN0IFRvdWNoRXZlbnQgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdlYktpdDo6
V2ViVG91Y2hFdmVudCY+IHsKK2NsYXNzIFRvdWNoRXZlbnQgeworcHVibGljOgorICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXZWJLaXQ6OldlYlRvdWNoRXZlbnQ+IERlY29kZVR5cGU7CisKICAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVG91Y2hFdmVudCIp
OyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJUb3VjaEV2ZW50Jj4gRGVjb2Rl
VHlwZTsKICAgICBleHBsaWNpdCBUb3VjaEV2ZW50KGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVu
dCYgZXZlbnQpCi0gICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQmPihldmVudCkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhldmVudCkKICAgICB7
CiAgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZl
bnQmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRz
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0IFdlYktpdDo6V2ViVG91
Y2hFdmVudCY+IG1fYXJndW1lbnRzOwogfTsKICNlbmRpZgogCi1zdHJ1Y3QgRGlkUmVjZWl2ZVBv
bGljeURlY2lzaW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50NjRfdCwgdWludDY0X3QsIHVp
bnQzMl90PiB7CitjbGFzcyBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24geworcHVibGljOgorICAg
IHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwgdWludDY0X3QsIHVpbnQzMl90PiBEZWNvZGVU
eXBlOworCiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUo
KSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2Uo
IkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbiIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNT
eW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3Qs
IHVpbnQ2NF90LCB1aW50MzJfdD4gRGVjb2RlVHlwZTsKICAgICBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDMyX3QgcG9s
aWN5QWN0aW9uKQotICAgICAgICA6IENvcmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3QsIHVpbnQ2
NF90LCB1aW50MzJfdD4oZnJhbWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5QWN0aW9uKQorICAgICAg
ICA6IG1fYXJndW1lbnRzKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeUFjdGlvbikKICAgICB7
CiAgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTx1aW50NjRfdCwgdWludDY0X3QsIHVpbnQz
Ml90PiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRz
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPHVpbnQ2NF90LCB1aW50NjRfdCwg
dWludDMyX3Q+IG1fYXJndW1lbnRzOwogfTsKIAotc3RydWN0IENsb3NlIDogQ29yZUlQQzo6QXJn
dW1lbnRzMCB7CitjbGFzcyBDbG9zZSB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PD4gRGVjb2RlVHlwZTsKKwogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CiAgICAgc3RhdGlj
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlKCJDbG9zZSIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFs
c2U7CiAKLSAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czAgRGVjb2RlVHlwZTsKKyAgICBj
b25zdCBzdGQ6OnR1cGxlPD4gYXJndW1lbnRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp0dXBsZTw+IG1fYXJn
dW1lbnRzOwogfTsKIAotc3RydWN0IFByZWZlcmVuY2VzRGlkQ2hhbmdlIDogQ29yZUlQQzo6QXJn
dW1lbnRzMTxjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmPiB7CitjbGFzcyBQcmVm
ZXJlbmNlc0RpZENoYW5nZSB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdlYktp
dDo6V2ViUHJlZmVyZW5jZXNTdG9yZT4gRGVjb2RlVHlwZTsKKwogICAgIHN0YXRpYyBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TmFtZSgpOyB9CiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyBy
ZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJQcmVmZXJlbmNlc0RpZENoYW5nZSIpOyB9
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVmIENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJj4gRGVj
b2RlVHlwZTsKICAgICBleHBsaWNpdCBQcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJLaXQ6
OldlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQotICAgICAgICA6IENvcmVJUEM6OkFyZ3VtZW50
czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJj4oc3RvcmUpCisgICAgICAgIDog
bV9hcmd1bWVudHMoc3RvcmUpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8
Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJj4gYXJndW1lbnRzKCkgY29uc3QKICAg
ICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKICAgICB9CisKK3ByaXZhdGU6CisgICAg
c3RkOjp0dXBsZTxjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmPiBtX2FyZ3VtZW50
czsKIH07CiAKLXN0cnVjdCBTZW5kRG91YmxlQW5kRmxvYXQgOiBDb3JlSVBDOjpBcmd1bWVudHMy
PGRvdWJsZSwgZmxvYXQ+IHsKK2NsYXNzIFNlbmREb3VibGVBbmRGbG9hdCB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBzdGQ6OnR1cGxlPGRvdWJsZSwgZmxvYXQ+IERlY29kZVR5cGU7CisKICAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiU2VuZERvdWJsZUFu
ZEZsb2F0Iik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKIAotICAg
IHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMjxkb3VibGUsIGZsb2F0PiBEZWNvZGVUeXBlOwog
ICAgIFNlbmREb3VibGVBbmRGbG9hdChkb3VibGUgZCwgZmxvYXQgZikKLSAgICAgICAgOiBDb3Jl
SVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+KGQsIGYpCisgICAgICAgIDogbV9hcmd1bWVu
dHMoZCwgZikKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxkb3VibGUsIGZs
b2F0PiBhcmd1bWVudHMoKSBjb25zdAogICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRz
OwogICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGRvdWJsZSwgZmxvYXQ+IG1fYXJn
dW1lbnRzOwogfTsKIAotc3RydWN0IFNlbmRJbnRzIDogQ29yZUlQQzo6QXJndW1lbnRzMjxjb25z
dCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3QgVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+Jj4gewor
Y2xhc3MgU2VuZEludHMgeworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxWZWN0b3I8
dWludDY0X3Q+LCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90Pj4+IERlY29kZVR5cGU7CisKICAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiU2VuZEludHMiKTsg
fQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNlOwogCi0gICAgdHlwZWRlZiBD
b3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8
VmVjdG9yPHVpbnQ2NF90Pj4mPiBEZWNvZGVUeXBlOwogICAgIFNlbmRJbnRzKGNvbnN0IFZlY3Rv
cjx1aW50NjRfdD4mIGludHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+PiYgaW50VmVj
dG9ycykKLSAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRf
dD4mLCBjb25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90Pj4mPihpbnRzLCBpbnRWZWN0b3JzKQor
ICAgICAgICA6IG1fYXJndW1lbnRzKGludHMsIGludFZlY3RvcnMpCisgICAgeworICAgIH0KKwor
ICAgIGNvbnN0IHN0ZDo6dHVwbGU8Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3Rv
cjxWZWN0b3I8dWludDY0X3Q+PiY+IGFyZ3VtZW50cygpIGNvbnN0CiAgICAgeworICAgICAgICBy
ZXR1cm4gbV9hcmd1bWVudHM7CiAgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8Y29u
c3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+PiY+IG1f
YXJndW1lbnRzOwogfTsKIAotc3RydWN0IENyZWF0ZVBsdWdpbiA6IENvcmVJUEM6OkFyZ3VtZW50
czI8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJj4geworY2xhc3Mg
Q3JlYXRlUGx1Z2luIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8dWludDY0X3Qs
IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzPiBEZWNvZGVUeXBlOworCiAgICAgc3RhdGljIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUo
KSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkNyZWF0ZVBsdWdpbiIpOyB9CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAogICAgIHR5cGVkZWYgQ29yZUlQ
Qzo6QXJndW1lbnRzMTxib29sJj4gUmVwbHk7Ci0gICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVu
dHMyPHVpbnQ2NF90LCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyY+IERlY29kZVR5
cGU7CiAgICAgQ3JlYXRlUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNvbnN0IFdl
YktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotICAgICAgICA6IENvcmVJUEM6
OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJj4o
cGx1Z2luSW5zdGFuY2VJRCwgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhwbHVn
aW5JbnN0YW5jZUlELCBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6
OnR1cGxlPHVpbnQ2NF90LCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyY+IGFyZ3Vt
ZW50cygpIGNvbnN0CiAgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CiAgICAgfQor
Citwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2lu
OjpQYXJhbWV0ZXJzJj4gbV9hcmd1bWVudHM7CiB9OwogCi1zdHJ1Y3QgUnVuSmF2YVNjcmlwdEFs
ZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmPiB7
CitjbGFzcyBSdW5KYXZhU2NyaXB0QWxlcnQgeworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTx1aW50NjRfdCwgV1RGOjpTdHJpbmc+IERlY29kZVR5cGU7CisKICAgICBzdGF0aWMgQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNl
aXZlck5hbWUoKTsgfQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgp
IHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiUnVuSmF2YVNjcmlwdEFsZXJ0Iik7
IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgdHlwZWRlZiBD
b3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwotICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRz
Mjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmPiBEZWNvZGVUeXBlOwogICAgIFJ1bkphdmFT
Y3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkK
LSAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMyPHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmlu
ZyY+KGZyYW1lSUQsIG1lc3NhZ2UpCisgICAgICAgIDogbV9hcmd1bWVudHMoZnJhbWVJRCwgbWVz
c2FnZSkKICAgICB7CiAgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTx1aW50NjRfdCwgY29u
c3QgV1RGOjpTdHJpbmcmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPHVpbnQ2NF90
LCBjb25zdCBXVEY6OlN0cmluZyY+IG1fYXJndW1lbnRzOwogfTsKIAotc3RydWN0IEdldFBsdWdp
bnMgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2w+IHsKK2NsYXNzIEdldFBsdWdpbnMgeworcHVi
bGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxib29sPiBEZWNvZGVUeXBlOworCiAgICAgc3Rh
dGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNz
YWdlUmVjZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkdldFBsdWdpbnMiKTsg
fQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKICAgICB0eXBlZGVmIENv
cmVJUEM6OkFyZ3VtZW50czE8VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jj4gUmVwbHk7Ci0g
ICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2w+IERlY29kZVR5cGU7CiAgICAgZXhw
bGljaXQgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpCi0gICAgICAgIDogQ29yZUlQQzo6QXJndW1l
bnRzMTxib29sPihyZWZyZXNoKQorICAgICAgICA6IG1fYXJndW1lbnRzKHJlZnJlc2gpCisgICAg
eworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8Ym9vbD4gYXJndW1lbnRzKCkgY29uc3QK
ICAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKICAgICB9CisKK3ByaXZhdGU6Cisg
ICAgc3RkOjp0dXBsZTxib29sPiBtX2FyZ3VtZW50czsKIH07CiAKLXN0cnVjdCBHZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcm
PiB7CitjbGFzcyBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdURjo6U3RyaW5nPiBEZWNvZGVUeXBlOworCiAgICAgc3RhdGljIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUo
KSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkdldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwpAQCAtNDg3
LDE0ICs1ODksMjQgQEAgc3RydWN0IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIDogQ29yZUlQ
Qzo6QXJndW1lbnRzMTxjb25zdCBXVEY6OlN0cmluZyY+IHsKICAgICB9OwogCiAgICAgdHlwZWRl
ZiBDb3JlSVBDOjpBcmd1bWVudHMxPENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5
OwotICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6OlN0cmluZyY+IERl
Y29kZVR5cGU7CiAgICAgZXhwbGljaXQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
V1RGOjpTdHJpbmcmIHBsdWdpblBhdGgpCi0gICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMTxj
b25zdCBXVEY6OlN0cmluZyY+KHBsdWdpblBhdGgpCisgICAgICAgIDogbV9hcmd1bWVudHMocGx1
Z2luUGF0aCkKICAgICB7CiAgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxjb25zdCBXVEY6
OlN0cmluZyY+IGFyZ3VtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1
bWVudHM7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8Y29uc3QgV1RGOjpTdHJp
bmcmPiBtX2FyZ3VtZW50czsKIH07CiAKLXN0cnVjdCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIDog
Q29yZUlQQzo6QXJndW1lbnRzMCB7CitjbGFzcyBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIHsKK3B1
YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8PiBEZWNvZGVUeXBlOworCiAgICAgc3RhdGlj
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdl
UmVjZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5h
bWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlRlc3RNdWx0aXBsZUF0dHJp
YnV0ZXMiKTsgfQogICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CkBAIC01MTEs
ODcgKzYyMywxNTMgQEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpB
cmd1bWVudHMwIHsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJl
cGx5OwotICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMCBEZWNvZGVUeXBlOworICAgIGNv
bnN0IHN0ZDo6dHVwbGU8PiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPD4gbV9hcmd1
bWVudHM7CiB9OwogCi1zdHJ1Y3QgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpB
cmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4geworY2xhc3MgVGVzdFBhcmFtZXRl
ckF0dHJpYnV0ZXMgeworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwg
ZG91YmxlLCBkb3VibGU+IERlY29kZVR5cGU7CisKICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fQogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMiKTsgfQogICAg
IHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNlOwogCi0gICAgdHlwZWRlZiBDb3JlSVBD
OjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4gRGVjb2RlVHlwZTsKICAgICBU
ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyh1aW50NjRfdCBmb28sIGRvdWJsZSBiYXIsIGRvdWJsZSBi
YXopCi0gICAgICAgIDogQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50NjRfdCwgZG91YmxlLCBkb3Vi
bGU+KGZvbywgYmFyLCBiYXopCisgICAgICAgIDogbV9hcmd1bWVudHMoZm9vLCBiYXIsIGJheikK
ICAgICB7CiAgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTx1aW50NjRfdCwgZG91YmxlLCBk
b3VibGU+IGFyZ3VtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVu
dHM7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8dWludDY0X3QsIGRvdWJsZSwg
ZG91YmxlPiBtX2FyZ3VtZW50czsKIH07CiAKLXN0cnVjdCBUZW1wbGF0ZVRlc3QgOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcs
IHVpbnQ2NF90Pj4mPiB7CitjbGFzcyBUZW1wbGF0ZVRlc3QgeworcHVibGljOgorICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50
NjRfdD4+PiBEZWNvZGVUeXBlOworCiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KICAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpT
dHJpbmdSZWZlcmVuY2UoIlRlbXBsYXRlVGVzdCIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
aXNTeW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3Qg
V1RGOjpIYXNoTWFwPFN0cmluZywgc3RkOjpwYWlyPFN0cmluZywgdWludDY0X3Q+PiY+IERlY29k
ZVR5cGU7CiAgICAgZXhwbGljaXQgVGVtcGxhdGVUZXN0KGNvbnN0IFdURjo6SGFzaE1hcDxTdHJp
bmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4mIGEpCi0gICAgICAgIDogQ29yZUlQQzo6
QXJndW1lbnRzMTxjb25zdCBXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50NjRfdD4+Jj4oYSkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhhKQorICAgIHsKKyAgICB9CisK
KyAgICBjb25zdCBzdGQ6OnR1cGxlPGNvbnN0IFdURjo6SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFp
cjxTdHJpbmcsIHVpbnQ2NF90Pj4mPiBhcmd1bWVudHMoKSBjb25zdAogICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fYXJndW1lbnRzOwogICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNv
bnN0IFdURjo6SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4mPiBt
X2FyZ3VtZW50czsKIH07CiAKICNpZiBQTEFURk9STShNQUMpCi1zdHJ1Y3QgRGlkQ3JlYXRlV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IENvcmVJUEM6Ok1h
Y2hQb3J0Jj4geworY2xhc3MgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24geworcHVibGlj
OgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxDb3JlSVBDOjpNYWNoUG9ydD4gRGVjb2RlVHlwZTsK
KwogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyBy
ZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJEaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbiIpOyB9CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNT
eW5jID0gZmFsc2U7CiAKLSAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29y
ZUlQQzo6TWFjaFBvcnQmPiBEZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0IERpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0JiBjb25uZWN0aW9uSWRlbnRp
ZmllcikKLSAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IENvcmVJUEM6Ok1hY2hQ
b3J0Jj4oY29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgICAgIDogbV9hcmd1bWVudHMoY29ubmVj
dGlvbklkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8Y29u
c3QgQ29yZUlQQzo6TWFjaFBvcnQmPiBhcmd1bWVudHMoKSBjb25zdAogICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fYXJndW1lbnRzOwogICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNv
bnN0IENvcmVJUEM6Ok1hY2hQb3J0Jj4gbV9hcmd1bWVudHM7CiB9OwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShNQUMpCi1zdHJ1Y3QgSW50ZXJwcmV0S2V5RXZlbnQgOiBDb3JlSVBDOjpBcmd1bWVu
dHMxPHVpbnQzMl90PiB7CitjbGFzcyBJbnRlcnByZXRLZXlFdmVudCB7CitwdWJsaWM6CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPHVpbnQzMl90PiBEZWNvZGVUeXBlOworCiAgICAgc3RhdGljIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVj
ZWl2ZXJOYW1lKCk7IH0KICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUo
KSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkludGVycHJldEtleUV2ZW50Iik7
IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgdHlwZWRlZiBD
b3JlSVBDOjpBcmd1bWVudHMxPFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jj4gUmVw
bHk7Ci0gICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPHVpbnQzMl90PiBEZWNvZGVUeXBl
OwogICAgIGV4cGxpY2l0IEludGVycHJldEtleUV2ZW50KHVpbnQzMl90IHR5cGUpCi0gICAgICAg
IDogQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50MzJfdD4odHlwZSkKKyAgICAgICAgOiBtX2FyZ3Vt
ZW50cyh0eXBlKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPHVpbnQzMl90
PiBhcmd1bWVudHMoKSBjb25zdAogICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzOwog
ICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPHVpbnQzMl90PiBtX2FyZ3VtZW50czsK
IH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCi1zdHJ1Y3QgRGVw
cmVjYXRlZE9wZXJhdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6RHVt
bXlUeXBlJj4geworY2xhc3MgRGVwcmVjYXRlZE9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPENvcmVJUEM6OkR1bW15VHlwZT4gRGVjb2RlVHlwZTsKKwogICAgIHN0
YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVz
c2FnZVJlY2VpdmVyTmFtZSgpOyB9CiAgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJEZXByZWNhdGVkT3Bl
cmF0aW9uIik7IH0KICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKIAotICAg
IHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmPiBE
ZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0IERlcHJlY2F0ZWRPcGVyYXRpb24oY29uc3QgQ29yZUlQ
Qzo6RHVtbXlUeXBlJiBkdW1teSkKLSAgICAgICAgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0
IENvcmVJUEM6OkR1bW15VHlwZSY+KGR1bW15KQorICAgICAgICA6IG1fYXJndW1lbnRzKGR1bW15
KQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPGNvbnN0IENvcmVJUEM6OkR1
bW15VHlwZSY+IGFyZ3VtZW50cygpIGNvbnN0CiAgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1
bWVudHM7CiAgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8Y29uc3QgQ29yZUlQQzo6
RHVtbXlUeXBlJj4gbV9hcmd1bWVudHM7CiB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRVhQRVJJ
TUVOVEFMX0ZFQVRVUkUpCi1zdHJ1Y3QgRXhwZXJpbWVudGFsT3BlcmF0aW9uIDogQ29yZUlQQzo6
QXJndW1lbnRzMTxjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmPiB7CitjbGFzcyBFeHBlcmltZW50
YWxPcGVyYXRpb24geworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxDb3JlSVBDOjpE
dW1teVR5cGU+IERlY29kZVR5cGU7CisKICAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJl
bmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQogICAg
IHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6
OlN0cmluZ1JlZmVyZW5jZSgiRXhwZXJpbWVudGFsT3BlcmF0aW9uIik7IH0KICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKIAotICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1l
bnRzMTxjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmPiBEZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0
IEV4cGVyaW1lbnRhbE9wZXJhdGlvbihjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmIGR1bW15KQot
ICAgICAgICA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6RHVtbXlUeXBlJj4o
ZHVtbXkpCisgICAgICAgIDogbV9hcmd1bWVudHMoZHVtbXkpCiAgICAgewogICAgIH0KKworICAg
IGNvbnN0IHN0ZDo6dHVwbGU8Y29uc3QgQ29yZUlQQzo6RHVtbXlUeXBlJj4gYXJndW1lbnRzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgc3RkOjp0dXBsZTxjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmPiBtX2FyZ3VtZW50
czsKIH07CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxk
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
aAppbmRleCA5ODEwNGQxMWFkNDNjNzY0ZGUzYWM2NGEzZGU2M2EyYTAzZjkyNTlmLi5jYjBlMDYz
ZTdiMmRjYTQ4NzA1YzJlMDA0NDk5YmI4ZWIxNGU4ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzUHJveHkuaApAQCAtOTUsNyArOTUsNyBAQCBib29sIENoaWxkUHJvY2Vz
c1Byb3h5OjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVu
c2lnbmVkCiAgICAgQ09NUElMRV9BU1NFUlQoIVQ6OmlzU3luYywgQXN5bmNNZXNzYWdlRXhwZWN0
ZWQpOwogCiAgICAgYXV0byBlbmNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4oVDo6cmVjZWl2ZXJOYW1lKCksIFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UpOworICAgIGVuY29kZXItPmVuY29kZShtZXNz
YWdlLmFyZ3VtZW50cygpKTsKIAogICAgIHJldHVybiBzZW5kTWVzc2FnZShzdGQ6Om1vdmUoZW5j
b2RlciksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogfQo=
</data>
<flag name="review"
          id="234864"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>