<?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>99853</bug_id>
          
          <creation_ts>2012-10-19 10:45:33 -0700</creation_ts>
          <short_desc>Don&apos;t use CStrings for message receiver names and message names</short_desc>
          <delta_ts>2012-10-22 09:55:15 -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>
          <dependson>99871</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746439</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 10:45:33 -0700</bug_when>
    <thetext>Don&apos;t use CStrings for message receiver names and message names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746452</commentid>
    <comment_count>1</comment_count>
      <attachid>169651</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 11:04:41 -0700</bug_when>
    <thetext>Created attachment 169651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746453</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 11:07:39 -0700</bug_when>
    <thetext>Attachment 169651 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebKit2/Platform/CoreIPC/Connection.h:194:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746469</commentid>
    <comment_count>3</comment_count>
      <attachid>169655</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 11:17:59 -0700</bug_when>
    <thetext>Created attachment 169655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746474</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 11:20:50 -0700</bug_when>
    <thetext>Attachment 169655 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebKit2/Platform/CoreIPC/Connection.h:194:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746480</commentid>
    <comment_count>5</comment_count>
      <attachid>169659</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 11:24:17 -0700</bug_when>
    <thetext>Created attachment 169659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746484</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 11:28:21 -0700</bug_when>
    <thetext>Attachment 169659 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebKit2/Platform/CoreIPC/Connection.h:194:  Local variables should never be PassOwnPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746529</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-19 12:28:26 -0700</bug_when>
    <thetext>Committed r131931: &lt;http://trac.webkit.org/changeset/131931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746641</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 14:29:57 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 99871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746646</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-19 14:31:33 -0700</bug_when>
    <thetext>This broke Safari extensions (Adblock started to block all CSS files, causing sites to render with no style). Rolling out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747585</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 08:58:52 -0700</bug_when>
    <thetext>Great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747643</commentid>
    <comment_count>11</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-22 09:55:15 -0700</bug_when>
    <thetext>Committed r132085: &lt;http://trac.webkit.org/changeset/132085&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169651</attachid>
            <date>2012-10-19 11:04:41 -0700</date>
            <delta_ts>2012-10-19 11:17:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99853-20121019110325.patch</filename>
            <type>text/plain</type>
            <size>48518</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2UwZTMzNjQ5M2Q1Mjcw
NDVmMGU1M2M0OTk3ODVlMzVmNDc4MzcyNS4uZjY2NjhlM2ZiOWNjMDUzYWZiZWIxY2JlMmRhOGMz
NTk0YzI0NmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTEwLTE5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgdXNlIENT
dHJpbmdzIGZvciBtZXNzYWdlIHJlY2VpdmVyIG5hbWVzIGFuZCBtZXNzYWdlIG5hbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBTdHJp
bmdSZWZlcmVuY2Ugd2hpY2ggaXMgc2ltaWxhciB0byBEYXRhUmVmZXJlbmNlIGV4Y2VwdCBpdCBo
b2xkcyBhIHBvaW50ZXIgdG8gKyBsZW5ndGggb2YgYSBjaGFyICoKKyAgICAgICAgYW5kIGNhbiBi
ZSBjcmVhdGVkIGZyb20gYSBzdHJpbmcgbGl0ZXJhbC4gVXNlIHRoaXMgaW4gcGxhY2Ugb2YgQ1N0
cmluZyBpbiBNZXNzYWdlRW5jb2Rlci9NZXNzYWdlRGVjb2RlciBhbmQKKyAgICAgICAgbWFrZSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgdXNlIGEgSGFzaE1hcCBmcm9tIFN0cmluZ1JlZmVyZW5jZXMgdG8g
TWVzc2FnZVJlY2VpdmVycyBmb3IgZ2xvYmFsIG1lc3NhZ2UgcmVjZWl2ZXJzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6
OkNvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoQ29ubmVjdGlvbik6CisgICAgICAgIChDb3Jl
SVBDOjpDb25uZWN0aW9uOjpkZXByZWNhdGVkU2VuZFN5bmMpOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6ZGVwcmVjYXRlZFNlbmQpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZURlY29kZXI6Ok1l
c3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVy
Lmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSk6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAg
ICAgICAoTWVzc2FnZURlY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUVuY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZSk6
CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVuY29kZXIpOgorICAg
ICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAgKENvcmVJ
UEMpOgorICAgICAgICAoTWVzc2FnZUVuY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKENvcmVJUEMpOgorICAgICAg
ICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmg6CisgICAgICAgIChNZXNz
YWdlUmVjZWl2ZXJNYXApOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmNwcDogQWRkZWQuCisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZTo6ZGVjb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaDo6aGFz
aCk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKFN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAg
IChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OlN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAgIChD
b3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OmlzRW1wdHkpOgorICAgICAgICAoQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlOjpzaXplKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6
ZGF0YSk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoSGFzaCk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Okhhc2g6
OmVxdWFsKToKKyAgICAgICAgKFdURik6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMv
Q29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChtZXNzYWdl
X3RvX3N0cnVjdF9kZWNsYXJhdGlvbik6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyk6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weToKKyAgICAgICAgKiBTaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkZXByZWNhdGVkU2VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6c2VuZCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAxMi0xMC0xOSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMTY4Nik6IENy
YXNoIGluIE5TVG9vbFRpcE1hbmFnZXIgbW91c2VFbnRlcmVkVG9vbFRpcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyMzVhZjI2MGMzM2ZhNTE1MTc3ZjEyMmNkMDZhYWEzNGYwYWMxYTk0Li5iNmJm
YzdjNmY1NDIwOTZjZGUwNWVhMTllMTI5OWRmNTcyY2U2ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTI3LDYgKzEyNyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVu
Y29kZXIuY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCisg
ICAgUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCiAKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDRj
ZjgwZjk2NWQ2MDNlMzJlMzQ5ODU0OGQ3NGRlMjZiYTdhOWE1YjAuLjQxNmNmMjZjNWU5MTg5MjZm
YzU5NTIxMGUzNjAyZDliOWU4ZTg3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjY2LDYgKzI2Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCisJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9ndGsvTG9nZ2luZ0d0ay5jcHAgXApAQCAtMTIzNCw2ICsxMjM2LDggQEAgd2Via2l0
Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvU3RyaW5nUmVmZXJlbmNlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
dW5peC9BdHRhY2htZW50VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01v
ZHVsZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAKaW5kZXggYjlmOGZjZmRjNWY5NGM2YjQ0ZWYyMmU2YTBiNWY5MTA0NGZlYjM4NS4uODk0
YThkMWIyYzdkYTgyZjcxYjliZmNkYjQwZDlkMmI1MTI1ZTViOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yODMsNyArMjgzLDcgQEAg
dm9pZCBDb25uZWN0aW9uOjptYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQo
KQogICAgIG1fZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlID0gdHJ1ZTsKIH0KIAotUGFzc093blB0
cjxNZXNzYWdlRW5jb2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKGNv
bnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VO
YW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRfdCYgc3luY1JlcXVlc3RJRCkKK1Bh
c3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5j
b2Rlcihjb25zdCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCkKIHsKICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIg
PSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1l
LCBkZXN0aW5hdGlvbklEKTsKIApAQCAtNjI2LDcgKzYyNiw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBPd25QdHI8TWVzc2FnZUVuY29k
ZXI+IHJlcGx5RW5jb2RlciA9IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoIiIsICIiLCBzeW5jUmVx
dWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IHJlcGx5RW5jb2RlciA9IE1lc3Nh
Z2VFbmNvZGVyOjpjcmVhdGUoIklQQyIsICIiLCBzeW5jUmVxdWVzdElEKTsKIAogICAgIC8vIEhh
bmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIGNsaWVudC4KICAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggZmI0MmQ5ZTcyYTBiNmNjMmI4NGIxMmQzM2JmMzA0Mjk4YTZhZDUyYS4uYjQz
ODA3NDA5MDY0Njg1NTc3ZjY5MzU3OWFhYWVkZDQxYTgyNzBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kU3luYyhjb25zdCBUJiBtZXNz
YWdlLCBjb25zdCB0eXBlbmFtZSBUOjpSZXBseSYgcmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQsIGRvdWJsZSB0aW1lb3V0ID0gTm9UaW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0g
MCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1l
ZGlhdGVseSh1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCk7CiAKLSAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKKyAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpOwogICAg
IGJvb2wgc2VuZE1lc3NhZ2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwg
dW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDApOwogICAgIGJvb2wgc2VuZFN5bmNSZXBseShQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPik7CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBFLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCBjb25zdCBUJiBhcmd1bWVudHMsIGNvbnN0IFUmIHJlcGx5LCBkb3VibGUgdGltZW91dCkK
IHsKICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBPd25QdHI8TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoIiIsICIiLCBkZXN0aW5h
dGlvbklELCBzeW5jUmVxdWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29k
ZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8
RT46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIGRlc3RpbmF0aW9uSUQsIHN5bmNSZXF1ZXN0
SUQpOwogCiAgICAgLy8gRW5jb2RlIHRoZSBpbnB1dCBhcmd1bWVudHMuCiAgICAgZW5jb2Rlci0+
ZW5jb2RlKGFyZ3VtZW50cyk7CkBAIC00NjcsNyArNDY3LDcgQEAgaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELAogdGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4KIGJvb2wgQ29ubmVjdGlvbjo6
ZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0
IFQmIGFyZ3VtZW50cykKIHsKLSAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCIiLCAiIiwgZGVzdGluYXRpb25JRCk7CisgICAgT3duUHRy
PE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZShDb3JlSVBD
OjpNZXNzYWdlS2luZFRyYWl0czxFPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgZGVzdGlu
YXRpb25JRCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50cyk7CiAKICAgICByZXR1cm4g
c2VuZE1lc3NhZ2UoTWVzc2FnZUlEKG1lc3NhZ2VJRCksIGVuY29kZXIucmVsZWFzZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAK
aW5kZXggZTBhZWYzNTI1YTY1YWViMDIyZDA5ZTk3MGI0MTRmY2NlYjEyZmM0Ny4uNDE2Y2YxZWRi
YWVmNTFiOWFiMGZjYzVlZTM4ZGFiOTc4NzQ0Yzc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVu
Y2UuaCIKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC01MCwxMiArNTAsMTAgQEAgTWVzc2Fn
ZURlY29kZXI6On5NZXNzYWdlRGVjb2RlcigpCiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYgYXR0YWNo
bWVudHMpCiAgICAgOiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUo
KSwgYXR0YWNobWVudHMpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lOwotICAg
IGlmICghZGVjb2RlKG1lc3NhZ2VSZWNlaXZlck5hbWUpKQorICAgIGlmICghZGVjb2RlKG1fbWVz
c2FnZVJlY2VpdmVyTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENTdHJpbmcgbWVzc2Fn
ZU5hbWU7Ci0gICAgaWYgKCFkZWNvZGUobWVzc2FnZU5hbWUpKQorICAgIGlmICghZGVjb2RlKG1f
bWVzc2FnZU5hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBkZWNvZGVVSW50NjQobV9kZXN0
aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZURlY29kZXIuaAppbmRleCA4NDhjOWI0YjljMmVmNWYxZmQ5ZmM3YjcyYzk0MWNmMzYyNmZhZWI3
Li45NzA3YTZlZTA5YzRhOTZkZWVkM2EwY2U1YTJhMWUyNzZkNWI1NmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKQEAgLTM4LDggKzM5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxN
ZXNzYWdlRGVjb2Rlcj4gY3JlYXRlKGNvbnN0IERhdGFSZWZlcmVuY2UmIGJ1ZmZlciwgRGVxdWU8
QXR0YWNobWVudD4mKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlRGVjb2RlcigpOwogCisgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3Nh
Z2VSZWNlaXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25z
dCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgTWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYpOworCisg
ICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBTdHJpbmdSZWZl
cmVuY2UgbV9tZXNzYWdlTmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5k
ZXggNTM4NThiNmViODA2NjY0OWVkMTRhYzgwMGMxM2Y0MWFiNzM4MjhiNC4uZmJlZDU2MmRjNzUy
ODI2MjU4ZjkwMWI0MGFkMmVmNDgyNDY4YzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKQEAgLTI3LDE2ICsyNywxOSBAQAog
I2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAK
LVBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBNZXNz
YWdlRW5jb2Rlcjo6Y3JlYXRlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZXNzYWdlRW5jb2RlcihtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBtZXNzYWdlTmFtZSwgZGVzdGluYXRpb25JRCkpOwogfQogCi1NZXNzYWdlRW5jb2Rlcjo6TWVz
c2FnZUVuY29kZXIoY29uc3QgQ1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0
cmluZyYgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitNZXNzYWdlRW5jb2Rl
cjo6TWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKKyAg
ICBBU1NFUlQoIW1lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKKwogICAgIGVuY29kZSht
ZXNzYWdlUmVjZWl2ZXJOYW1lKTsKICAgICBlbmNvZGUobWVzc2FnZU5hbWUpOwogICAgIGVuY29k
ZShkZXN0aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUVuY29kZXIuaAppbmRleCAyYTg3ODUwYjk5YmMzYWM1NjU0MDAzZWI3NWQwYWZlNzdl
NjM1OWFiLi4wMjk5MjkyNDU1NWM1NDQwMDM4ZmJkNjJjMWU0MDBkYmJhM2ZiZGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VFbmNvZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5oCkBAIC0z
MSwxMyArMzEsMTUgQEAKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCitjbGFzcyBTdHJpbmdSZWZl
cmVuY2U7CisKIGNsYXNzIE1lc3NhZ2VFbmNvZGVyIDogcHVibGljIEFyZ3VtZW50RW5jb2RlciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZShj
b25zdCBDU3RyaW5nJiBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBjb25zdCBDU3RyaW5nJiBtZXNzYWdl
TmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TWVz
c2FnZUVuY29kZXI+IGNyZWF0ZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKICAg
ICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwogCiBwcml2YXRlOgotICAgIE1lc3NhZ2VFbmNv
ZGVyKGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1l
c3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKKyAgICBNZXNzYWdlRW5jb2RlcihT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCmluZGV4
IDUwYWIyOTZlY2U1N2Q3MzgxOGJiYWNlMDk1OTIzNjk0MmVlMDdlMWYuLjFmN2YxY2QzN2QyYzNi
MzZhZWYyOWFlZGFhZDcwMTg3ZTllN2ZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIK
IAorI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTM4LDYgKzM5LDEyIEBAIE1lc3NhZ2VSZWNl
aXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCiB7CiB9CiAKK3ZvaWQgTWVzc2FnZVJlY2Vp
dmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQoreworICAgIEFTU0VSVCgh
bV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsK
KyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1l
c3NhZ2VSZWNlaXZlcik7Cit9CisKIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjpkZXByZWNhdGVk
QWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNl
aXZlciogbWVzc2FnZVJlY2VpdmVyKQogewogICAgIEFTU0VSVCghbV9kZXByZWNhdGVkR2xvYmFs
TWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhtZXNzYWdlQ2xhc3MpKTsKQEAgLTUxLDYgKzU4LDEx
IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjppbnZhbGlkYXRlKCkKIAogYm9vbCBNZXNzYWdl
UmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNz
YWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoTWVz
c2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMu
Z2V0KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkgeworICAgICAgICBtZXNzYWdlUmVj
ZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuZ2V0
KG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKICAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCmluZGV4IGM5MjQwZTQxNjllYjM3MGY1Yzc5ZTBiMWVhM2Qz
MWQ5ZmVhODRjYTkuLjU5OGI2MjM4NTNjMDE3ODUxMTUwZjYwODA1NWVkNTE5ZmQ4YzZhOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBNZXNzYWdlUmVjZWl2ZXJNYXBfaAog
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTQyLDYgKzQzLDggQEAgcHVibGljOgogICAgIE1lc3NhZ2VSZWNlaXZlck1hcCgpOwogICAg
IH5NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKwog
ICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgZGVwcmVjYXRlZCBmdW5jdGlvbiBhbmQgZ2V0
IHJpZCBvZiBpdC4KICAgICB2b2lkIGRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKIApAQCAtNTMsNiArNTYsOCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRl
c3RpbmF0aW9uIElELgogICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3NhZ2VSZWNlaXZlcio+IG1f
ZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnM7CisKKyAgICBIYXNoTWFwPFN0cmluZ1Jl
ZmVyZW5jZSwgTWVzc2FnZVJlY2VpdmVyKj4gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzOwogfTsK
IAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5n
UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmU4YzFhMzdjMDExZGEwOTI2MDVmOTI4NmQzMjQwMTIy
MjYwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9TdHJpbmdSZWZlcmVuY2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ0hhc2hlci5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CisKK3ZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7Cit9CisKK2Jvb2wgU3RyaW5nUmVmZXJlbmNlOjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkKK3sK
KyAgICBEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShkYXRhUmVmZXJlbmNlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmVzdWx0Lm1fZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKTsKKyAgICByZXN1bHQubV9zaXplID0gZGF0YVJlZmVy
ZW5jZS5zaXplKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQgU3RyaW5nUmVm
ZXJlbmNlOjpIYXNoOjpoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSkKK3sKKyAgICByZXR1
cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln
bmVkIGNoYXIqPihhLmRhdGEoKSksIGEuc2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29y
ZUlQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdS
ZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWQ0ODJlNTNmNmRhZDYzMjViMmQ5N2IzYmM4ZTE4ZWVjNTY2NjFl
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3Ry
aW5nUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Ry
aW5nUmVmZXJlbmNlX2gKKyNkZWZpbmUgU3RyaW5nUmVmZXJlbmNlX2gKKworI2luY2x1ZGUgPHd0
Zi9IYXNoVHJhaXRzLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworY2xhc3MgQXJndW1lbnREZWNvZGVyOworCitjbGFzcyBTdHJpbmdSZWZlcmVuY2Ug
eworcHVibGljOgorICAgIFN0cmluZ1JlZmVyZW5jZSgpCisgICAgICAgIDogbV9kYXRhKDApCisg
ICAgICAgICwgbV9zaXplKDApCisgICAgeworICAgIH0KKworICAgIFN0cmluZ1JlZmVyZW5jZShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBtX2RhdGEoZGF0YSkKKyAg
ICAgICAgLCBtX3NpemUoc2l6ZSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8c2l6ZV90
IGxlbmd0aD4KKyAgICBTdHJpbmdSZWZlcmVuY2UoY29uc3QgY2hhciAoJnN0cmluZylbbGVuZ3Ro
XSkKKyAgICAgICAgOiBtX2RhdGEoc3RyaW5nKQorICAgICAgICAsIG1fc2l6ZShsZW5ndGggLSAx
KQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9z
aXplOyB9CisKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAg
IGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nUmVmZXJlbmNlJiBhLCBjb25zdCBTdHJpbmdS
ZWZlcmVuY2UmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5tX3NpemUgPT0gYi5tX3NpemUg
JiYgIW1lbWNtcChhLm1fZGF0YSwgYi5tX2RhdGEsIGEubV9zaXplKTsKKyAgICB9CisKKyAgICB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiwgU3RyaW5nUmVmZXJlbmNlJik7CisKKyAgICBzdHJ1Y3QgSGFz
aCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYg
YSk7CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSwg
Y29uc3QgU3RyaW5nUmVmZXJlbmNlJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAg
IH07CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9kYXRhOworICAgIHNpemVfdCBtX3Np
emU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVzcGFjZSBXVEYgewordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBEZWZhdWx0SGFzaDxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IHsKKyAgICB0eXBlZGVmIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaCBIYXNoOworfTsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IDogR2VuZXJpY0hhc2hUcmFp
dHM8Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlPiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IDA7CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHN0cmluZ1JlZmVy
ZW5jZSA9IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHJldHVybiBzdHJpbmdS
ZWZlcmVuY2Uuc2l6ZSgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gU3RyaW5nUmVmZXJlbmNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rp
b25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHAKaW5kZXggYzEzYjIzYmE1YjkxNTE0OTAzYmY3ZTdmNDIyMjA2YzZjNzRkYzdmMy4u
MTdkOGVjYmM4OTIzYThlZjI2ZThjM2EyNWUzMWQ0ODFjZTRkMGQ0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAg
LTExMiw3ICsxMTIsNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICBtX2lzQ29u
bmVjdGVkID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAgIC8vIFNlbmQgdGhlIGluaXRpYWxpemUg
bWVzc2FnZSwgd2hpY2ggY29udGFpbnMgYSBzZW5kIHJpZ2h0IGZvciB0aGUgc2VydmVyIHRvIHVz
ZS4KLSAgICAgICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29k
ZXI6OmNyZWF0ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIgPSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVu
Y29kZXItPmVuY29kZShNYWNoUG9ydChtX3JlY2VpdmVQb3J0LCBNQUNIX01TR19UWVBFX01BS0Vf
U0VORCkpOwogCiAgICAgICAgIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRChDb3JlSVBDTWVzc2FnZTo6
SW5pdGlhbGl6ZUNvbm5lY3Rpb24pLCBlbmNvZGVyLnJlbGVhc2UoKSk7CkBAIC0xMzEsNyArMTMx
LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICBpZiAobV9leGNlcHRpb25Qb3J0KSB7
CiAgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIo
bV9leGNlcHRpb25Qb3J0LCBXb3JrUXVldWU6Ok1hY2hQb3J0RGF0YUF2YWlsYWJsZSwgYmluZCgm
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyLCB0aGlzKSk7CiAKLSAgICAg
ICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0
ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVuY29kZXItPmVu
Y29kZShNYWNoUG9ydChtX2V4Y2VwdGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSk7
CiAKICAgICAgICAgc2VuZE1lc3NhZ2UoTWVzc2FnZUlEKENvcmVJUENNZXNzYWdlOjpTZXRFeGNl
cHRpb25Qb3J0KSwgZW5jb2Rlci5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2
MGM4OWIwMTYuLmQ3YWI1YjJlNGFlZTU4YmIwZTUyMWMwNWQ2MDg1ZGI3MjUxZTk5NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEyOSw4ICsxMjks
OCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgcmVz
dWx0LmFwcGVuZCgnc3RydWN0ICVzIDogJXMnICUgKG1lc3NhZ2UubmFtZSwgYmFzZV9jbGFzcyht
ZXNzYWdlKSkpCiAgICAgcmVzdWx0LmFwcGVuZCgnIHtcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgn
ICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9ICVzO1xuJyAlIG1lc3NhZ2UuaWQoKSkK
LSAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgp
IHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfVxuJykKLSAgICByZXN1bHQuYXBwZW5k
KCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiJXMiOyB9XG4nICUgbWVz
c2FnZS5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gIiVzIjsgfVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICByZXN1
bHQuYXBwZW5kKCdcbicpCiAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzICE9IE5vbmU6
CiAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSk6CkBA
IC0yMjksNiArMjI5LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKICAgICAgICAgJyJBcmd1bWVudHMuaCInLAogICAgICAgICAnIk1lc3NhZ2VFbmNv
ZGVyLmgiJywKICAgICAgICAgJyJNZXNzYWdlSUQuaCInLAorICAgICAgICAnIlN0cmluZ1JlZmVy
ZW5jZS5oIicsCiAgICAgXSkKIAogICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2Vz
OgpAQCAtMjg0LDcgKzI4NSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIoZmlsZSk6
CiAKICAgICByZXN1bHQuYXBwZW5kKCduYW1lc3BhY2UgTWVzc2FnZXMge1xubmFtZXNwYWNlICVz
IHtcbicgJSByZWNlaXZlci5uYW1lKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICByZXN1
bHQuYXBwZW5kKCdzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCdzdGF0aWMgaW5saW5lIENvcmVJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKClcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xu
JykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuICIlcyI7XG4nICUgcmVjZWl2ZXIubmFt
ZSkKICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5IGIvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CmluZGV4IGU4ZDE5MGQ0NWMzNTk1NDNj
ZDcxMjA2N2M0NGM1ZGJiMTg3YmMzMjQuLjExM2FlMDY5OGI2NGZhODJkODYyNmE5YmU0ZTNjMmQy
YjVhMjI2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlc191bml0dGVzdC5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXNfdW5pdHRlc3QucHkKQEAgLTMxOCw2ICszMTgsNyBAQCBfZXhwZWN0ZWRfaGVhZGVyID0g
IiIiLyoKICNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VJRC5o
IgogI2luY2x1ZGUgIlBsdWdpbi5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2lu
RGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzQxLDcg
KzM0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIG5hbWVz
cGFjZSBXZWJQYWdlIHsKIAotc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCkKK3N0YXRpYyBpbmxpbmUgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUoKQogewogICAgIHJldHVybiAiV2ViUGFnZSI7CiB9CkBAIC0zNzksOCArMzgw
LDggQEAgZW51bSBLaW5kIHsKIAogc3RydWN0IExvYWRVUkwgOiBDb3JlSVBDOjpBcmd1bWVudHMx
PGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9
IExvYWRVUkxJRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1
cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUo
KSB7IHJldHVybiAiTG9hZFVSTCI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJl
bmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAg
IHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuICJMb2FkVVJM
IjsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5n
Jj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBMb2FkVVJMKGNvbnN0IFdURjo6U3RyaW5nJiB1
cmwpCkBAIC0zOTIsOCArMzkzLDggQEAgc3RydWN0IExvYWRVUkwgOiBDb3JlSVBDOjpBcmd1bWVu
dHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiBzdHJ1
Y3QgVG91Y2hFdmVudCA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJUb3Vj
aEV2ZW50Jj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IFRvdWNoRXZlbnRJ
RDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVy
biAiVG91Y2hFdmVudCI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJl
Y2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRp
YyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuICJUb3VjaEV2ZW50Ijsg
fQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdlYktpdDo6V2ViVG91
Y2hFdmVudCY+IERlY29kZVR5cGU7CiAgICAgZXhwbGljaXQgVG91Y2hFdmVudChjb25zdCBXZWJL
aXQ6OldlYlRvdWNoRXZlbnQmIGV2ZW50KQpAQCAtNDA1LDggKzQwNiw4IEBAIHN0cnVjdCBUb3Vj
aEV2ZW50IDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQm
PiB7CiAKIHN0cnVjdCBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24gOiBDb3JlSVBDOjpBcmd1bWVu
dHMzPHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyX3Q+IHsKICAgICBzdGF0aWMgY29uc3QgS2lu
ZCBtZXNzYWdlSUQgPSBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb25JRDsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiRGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2
ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gIkRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbiI7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50NjRfdCwg
dWludDY0X3QsIHVpbnQzMl90PiBEZWNvZGVUeXBlOwogICAgIERpZFJlY2VpdmVQb2xpY3lEZWNp
c2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCB1aW50MzJfdCBwb2xp
Y3lBY3Rpb24pCkBAIC00MTcsMTYgKzQxOCwxNiBAQCBzdHJ1Y3QgRGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50NjRfdCwgdWludDY0X3QsIHVpbnQzMgog
CiBzdHJ1Y3QgQ2xvc2UgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsKICAgICBzdGF0aWMgY29uc3Qg
S2luZCBtZXNzYWdlSUQgPSBDbG9zZUlEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZl
ck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29u
c3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJDbG9zZSI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5h
bWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0
dXJuICJDbG9zZSI7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMCBEZWNvZGVU
eXBlOwogfTsKIAogc3RydWN0IFByZWZlcmVuY2VzRGlkQ2hhbmdlIDogQ29yZUlQQzo6QXJndW1l
bnRzMTxjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmPiB7CiAgICAgc3RhdGljIGNv
bnN0IEtpbmQgbWVzc2FnZUlEID0gUHJlZmVyZW5jZXNEaWRDaGFuZ2VJRDsKLSAgICBzdGF0aWMg
Y29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgp
OyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiUHJlZmVyZW5jZXNE
aWRDaGFuZ2UiOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZl
ck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiAiUHJlZmVyZW5jZXNEaWRDaGFu
Z2UiOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlc1N0b3JlJj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBQcmVmZXJlbmNl
c0RpZENoYW5nZShjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQpAQCAt
NDM3LDggKzQzOCw4IEBAIHN0cnVjdCBQcmVmZXJlbmNlc0RpZENoYW5nZSA6IENvcmVJUEM6OkFy
Z3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0CiAKIHN0cnVjdCBTZW5kRG91
YmxlQW5kRmxvYXQgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKICAgICBz
dGF0aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBTZW5kRG91YmxlQW5kRmxvYXRJRDsKLSAgICBz
dGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiU2VuZERv
dWJsZUFuZEZsb2F0IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gIlNlbmREb3VibGVBbmRG
bG9hdCI7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMjxkb3VibGUsIGZsb2F0
PiBEZWNvZGVUeXBlOwogICAgIFNlbmREb3VibGVBbmRGbG9hdChkb3VibGUgZCwgZmxvYXQgZikK
QEAgLTQ0OSw4ICs0NTAsOCBAQCBzdHJ1Y3QgU2VuZERvdWJsZUFuZEZsb2F0IDogQ29yZUlQQzo6
QXJndW1lbnRzMjxkb3VibGUsIGZsb2F0PiB7CiAKIHN0cnVjdCBTZW5kSW50cyA6IENvcmVJUEM6
OkFyZ3VtZW50czI8Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8
dWludDY0X3Q+ID4mPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gU2VuZElu
dHNJRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVz
c2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJl
dHVybiAiU2VuZEludHMiOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBy
ZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0
aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiAiU2VuZEludHMiOyB9
CiAKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czI8Y29uc3QgVmVjdG9yPHVpbnQ2NF90
PiYsIGNvbnN0IFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+ID4mPiBEZWNvZGVUeXBlOwogICAgIFNl
bmRJbnRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIGludHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8
dWludDY0X3Q+ID4mIGludFZlY3RvcnMpCkBAIC00NjEsOCArNDYyLDggQEAgc3RydWN0IFNlbmRJ
bnRzIDogQ29yZUlQQzo6QXJndW1lbnRzMjxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3Qg
VmVjdG9yPFZlY3QKIAogc3RydWN0IENyZWF0ZVBsdWdpbiA6IENvcmVJUEM6OkFyZ3VtZW50czI8
dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJj4gewogICAgIHN0YXRp
YyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IENyZWF0ZVBsdWdpbklEOwotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0K
LSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJDcmVhdGVQbHVnaW4iOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJl
dHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiAiQ3JlYXRlUGx1Z2luIjsgfQogCiAgICAgdHlwZWRl
ZiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2wmPiBSZXBseTsKICAgICB0eXBlZGVmIENvcmVJUEM6
OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJj4g
RGVjb2RlVHlwZTsKQEAgLTQ3NCw4ICs0NzUsOCBAQCBzdHJ1Y3QgQ3JlYXRlUGx1Z2luIDogQ29y
ZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV2ViS2l0OjpQbHVnaW46OlBhcmFtZQog
CiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRf
dCwgY29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlE
ID0gUnVuSmF2YVNjcmlwdEFsZXJ0SUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVy
TmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIlJ1bkphdmFTY3JpcHRBbGVydCI7IH0KKyAgICBzdGF0
aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3Nh
Z2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bmFtZSgpIHsgcmV0dXJuICJSdW5KYXZhU2NyaXB0QWxlcnQiOyB9CiAKICAgICB0eXBlZGVmIENv
cmVJUEM6OkFyZ3VtZW50czAgUmVwbHk7CiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMy
PHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmluZyY+IERlY29kZVR5cGU7CkBAIC00ODcsOCArNDg4
LDggQEAgc3RydWN0IFJ1bkphdmFTY3JpcHRBbGVydCA6IENvcmVJUEM6OkFyZ3VtZW50czI8dWlu
dDY0X3QsIGNvbnN0IFdURjo6U3RyaW5nJj4gewogCiBzdHJ1Y3QgR2V0UGx1Z2lucyA6IENvcmVJ
UEM6OkFyZ3VtZW50czE8Ym9vbD4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9
IEdldFBsdWdpbnNJRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyBy
ZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5h
bWUoKSB7IHJldHVybiAiR2V0UGx1Z2lucyI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuICJH
ZXRQbHVnaW5zIjsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPFZlY3RvcjxX
ZWJDb3JlOjpQbHVnaW5JbmZvPiY+IFJlcGx5OwogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1l
bnRzMTxib29sPiBEZWNvZGVUeXBlOwpAQCAtNTAwLDggKzUwMSw4IEBAIHN0cnVjdCBHZXRQbHVn
aW5zIDogQ29yZUlQQzo6QXJndW1lbnRzMTxib29sPiB7CiAKIHN0cnVjdCBHZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7
CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7
IHJldHVybiAiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CisgICAgc3RhdGljIENvcmVJ
UEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7
IHJldHVybiAiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CiAKICAgICBzdHJ1Y3QgRGVs
YXllZFJlcGx5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewog
ICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgUGFz
c093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pOwpAQCAtNTI0LDggKzUyNSw4IEBAIHN0
cnVjdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29u
c3QgV1RGOjpTdHJpbmcmPiB7CiAKIHN0cnVjdCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIDogQ29y
ZUlQQzo6QXJndW1lbnRzMCB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVz
dE11bHRpcGxlQXR0cmlidXRlc0lEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5h
bWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIjsgfQorICAgIHN0
YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVz
c2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBuYW1lKCkgeyByZXR1cm4gIlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMiOyB9CiAKICAgICBzdHJ1
Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBs
eT4gewogICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9u
PiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pOwpAQCAtNTQ0LDggKzU0NSw4
IEBAIHN0cnVjdCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIDogQ29yZUlQQzo6QXJndW1lbnRzMCB7
CiAKIHN0cnVjdCBUZXN0Q29ubmVjdGlvblF1ZXVlIDogQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50
NjRfdD4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IFRlc3RDb25uZWN0aW9u
UXVldWVJRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7
IHJldHVybiAiVGVzdENvbm5lY3Rpb25RdWV1ZSI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJu
ICJUZXN0Q29ubmVjdGlvblF1ZXVlIjsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVu
dHMxPHVpbnQ2NF90PiBEZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0IFRlc3RDb25uZWN0aW9uUXVl
dWUodWludDY0X3QgcGx1Z2luSUQpCkBAIC01NTYsOCArNTU3LDggQEAgc3RydWN0IFRlc3RDb25u
ZWN0aW9uUXVldWUgOiBDb3JlSVBDOjpBcmd1bWVudHMxPHVpbnQ2NF90PiB7CiAKIHN0cnVjdCBU
ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyA6IENvcmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3QsIGRv
dWJsZSwgZG91YmxlPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVzdFBh
cmFtZXRlckF0dHJpYnV0ZXNJRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1l
KCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNo
YXIqIG5hbWUoKSB7IHJldHVybiAiVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMiOyB9CisgICAgc3Rh
dGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNz
YWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNl
IG5hbWUoKSB7IHJldHVybiAiVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMiOyB9CiAKICAgICB0eXBl
ZGVmIENvcmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3QsIGRvdWJsZSwgZG91YmxlPiBEZWNvZGVU
eXBlOwogICAgIFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKHVpbnQ2NF90IGZvbywgZG91YmxlIGJh
ciwgZG91YmxlIGJheikKQEAgLTU2OSw4ICs1NzAsOCBAQCBzdHJ1Y3QgVGVzdFBhcmFtZXRlckF0
dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4g
ewogI2lmIFBMQVRGT1JNKE1BQykKIHN0cnVjdCBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
biA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmPiB7CiAgICAg
c3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVz
c2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJl
dHVybiAiRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CisgICAgc3RhdGljIENvcmVJ
UEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7
IHJldHVybiAiRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CiAKICAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmPiBEZWNvZGVUeXBl
OwogICAgIGV4cGxpY2l0IERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJ
UEM6Ok1hY2hQb3J0JiBjb25uZWN0aW9uSWRlbnRpZmllcikKQEAgLTU4Myw4ICs1ODQsOCBAQCBz
dHJ1Y3QgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMx
PGNvbnN0IENvcmVJUEM6Ok1hY2hQbwogI2lmIFBMQVRGT1JNKE1BQykKIHN0cnVjdCBJbnRlcnBy
ZXRLZXlFdmVudCA6IENvcmVJUEM6OkFyZ3VtZW50czE8dWludDMyX3Q+IHsKICAgICBzdGF0aWMg
Y29uc3QgS2luZCBtZXNzYWdlSUQgPSBJbnRlcnByZXRLZXlFdmVudElEOwotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7
IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJJbnRlcnByZXRLZXlF
dmVudCI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFt
ZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuICJJbnRlcnByZXRLZXlFdmVudCI7IH0K
IAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiY+IFJlcGx5OwogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50
MzJfdD4gRGVjb2RlVHlwZTsKQEAgLTU5OCw4ICs1OTksOCBAQCBzdHJ1Y3QgSW50ZXJwcmV0S2V5
RXZlbnQgOiBDb3JlSVBDOjpBcmd1bWVudHMxPHVpbnQzMl90PiB7CiAjaWYgRU5BQkxFKERFUFJF
Q0FURURfRkVBVFVSRSkKIHN0cnVjdCBEZXByZWNhdGVkT3BlcmF0aW9uIDogQ29yZUlQQzo6QXJn
dW1lbnRzMTxjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtp
bmQgbWVzc2FnZUlEID0gRGVwcmVjYXRlZE9wZXJhdGlvbklEOwotICAgIHN0YXRpYyBjb25zdCBj
aGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJEZXByZWNhdGVkT3BlcmF0aW9u
IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkg
eyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gIkRlcHJlY2F0ZWRPcGVyYXRpb24iOyB9CiAK
ICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6RHVtbXlUeXBl
Jj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBEZXByZWNhdGVkT3BlcmF0aW9uKGNvbnN0IENv
cmVJUEM6OkR1bW15VHlwZSYgZHVtbXkpCkBAIC02MTIsOCArNjEzLDggQEAgc3RydWN0IERlcHJl
Y2F0ZWRPcGVyYXRpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IENvcmVJUEM6OkR1bW15
VHlwZSY+IHsKICNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpCiBzdHJ1Y3QgRXhwZXJp
bWVudGFsT3BlcmF0aW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBDb3JlSVBDOjpEdW1t
eVR5cGUmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gRXhwZXJpbWVudGFs
T3BlcmF0aW9uSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1l
KCkgeyByZXR1cm4gIkV4cGVyaW1lbnRhbE9wZXJhdGlvbiI7IH0KKyAgICBzdGF0aWMgQ29yZUlQ
Qzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZl
ck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsg
cmV0dXJuICJFeHBlcmltZW50YWxPcGVyYXRpb24iOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6
OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6RHVtbXlUeXBlJj4gRGVjb2RlVHlwZTsKICAgICBl
eHBsaWNpdCBFeHBlcmltZW50YWxPcGVyYXRpb24oY29uc3QgQ29yZUlQQzo6RHVtbXlUeXBlJiBk
dW1teSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9X
ZWJDb250ZXh0TWVzc2FnZUtpbmRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1
cHBvcnQvV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oCmluZGV4IGU4MTk0YjU4N2IzZGI5YWMxNGM5
MTdjNjQ3YmVhOGYzNTZlYjdmZjEuLmMxZTExOTgyM2ZiMDQ5MzU5YjMyYzkyM2M2MzAzNzk0Y2Yz
MmQ4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9X
ZWJDb250ZXh0TWVzc2FnZUtpbmRzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJ
UENTdXBwb3J0L1dlYkNvbnRleHRNZXNzYWdlS2luZHMuaApAQCAtMjksNiArMjksNyBAQAogLy8g
TWVzc2FnZXMgc2VudCBmcm9tIHRoZSBpbmplY3RlZCBidW5kbGUgdG8gdGhlIFdlYkNvbnRleHQu
CiAKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIK
IAogbmFtZXNwYWNlIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlIHsKIApAQCAtNDMsNiArNDQsMTAg
QEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBNZXNzYWdlS2luZFRy
YWl0czxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD4gewogICAgIHN0YXRpYyBjb25zdCBN
ZXNzYWdlQ2xhc3MgbWVzc2FnZUNsYXNzID0gTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeTsK
KyAgICBzdGF0aWMgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICJXZWJDb250ZXh0TGVnYWN5TWVzc2FnZSI7CisgICAgfQogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKaW5kZXggNmM5OWM4NWI2YzhjZjM2MDVlZDBmNjZhZDJlY2IzNzU1OGEwNzcw
OC4uYWEyMzc0OGQyN2Y0OTc1ZTZmZjg4NzQ0YWVlZTE1MjRjZWEyOTIxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC0zMSw2ICszMSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZVJlY2VpdmVyLmggXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmggXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oIFwKKyAgICBQbGF0Zm9y
bS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oIFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmggXAog
ICAgIFBsYXRmb3JtL01vZHVsZS5oIFwKICAgICBQbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVu
dGlmaWVyLmggXApAQCAtMzkyLDYgKzM5Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFBsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZURlY29kZXIuY3BwIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VFbmNvZGVyLmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAu
Y3BwIFwKKyAgICBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgXAogICAgIFBs
YXRmb3JtL0xvZ2dpbmcuY3BwIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3BwIFwKICAgICBQbGF0
Zm9ybS9Xb3JrUXVldWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAppbmRleCAxY2JlMzQ1MDJlM2Y0YjIyNThkY2Q2NDg2MmYzMzkzMmMwZTBhMDZiLi4yZjIyNzM5
M2FjZTM1ODk5N2NiNTNlODZiZjM0MmM1NzBhZWY3NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4
dC5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgorI2luY2x1ZGUgIkRvd25sb2FkUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCkBAIC0zNiw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZUtpbmRzLmgi
CisjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVz
ZXJNZXNzYWdlQ29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC0xMjksOSArMTMxLDkgQEAgV2Vi
Q29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJp
bmcmIGluamVjdGVkQnVuZGxlUGEKICAgICAsIG1fdXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQog
I2VuZGlmCiB7Ci0gICAgZGVwcmVjYXRlZEFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJDb250ZXh0LCB0aGlzKTsKLSAgICBkZXByZWNhdGVkQWRkTWVzc2FnZVJlY2Vp
dmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHksIHRoaXMpOwotICAgIGRlcHJl
Y2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExl
Z2FjeSwgdGhpcyk7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJDb250ZXh0
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6RG93bmxvYWRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAg
ICBhZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8V2ViQ29udGV4
dExlZ2FjeU1lc3NhZ2U6OktpbmQ+OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogCiAg
ICAgLy8gTk9URTogVGhlc2Ugc3ViLW9iamVjdHMgbXVzdCBiZSBpbml0aWFsaXplZCBhZnRlciBt
X21lc3NhZ2VSZWNlaXZlck1hcC4uCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpOwpAQCAtNzg1
LDYgKzc4NywxMSBAQCBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBXZWJDb250ZXh0
OjpwZGZBbmRQb3N0U2NyaXB0TUlNRVR5cGVzKCkKICAgICByZXR1cm4gbWltZVR5cGVzOwogfQog
Cit2b2lkIFdlYkNvbnRleHQ6OmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKiBtZXNz
YWdlUmVjZWl2ZXIpCit7CisgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VSZWNlaXZlcik7Cit9CisKIHZvaWQgV2Vi
Q29udGV4dDo6ZGVwcmVjYXRlZEFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xh
c3MgbWVzc2FnZUNsYXNzLCBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
cikKIHsKICAgICBtX21lc3NhZ2VSZWNlaXZlck1hcC5kZXByZWNhdGVkQWRkTWVzc2FnZVJlY2Vp
dmVyKG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCmluZGV4IGNlZTY4OWNiYWE0YjY0MWU1OTc5ODE3NjI4MWViMTYxZGIxNWM4
MzkuLjNkOWYyNTQ1OGFkYjNhMTc5ODNhOThhZDlhODA5OGRhZmNkYTYyMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxsQ29udGV4dHMoKTsKIAorICAg
IHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
UmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIqKTsKICAgICB2b2lkIGRlcHJl
Y2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzLCBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIqKTsKICAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwog
ICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCBjMzExYzRmMDk1YWNlOGI2NmI5YjI1OGQ4MjlhZTNlMzcwNTU1MTczLi5jNDI5
MzQzN2Y2NThhZTZhZjQ4NWYxODVmZmVjMTg1ODc4ZDU2NjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMTgsNyArMjE4LDcgQEAgcHJpdmF0ZToK
IHRlbXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVuYW1lIFQ+CiBib29sIFdlYlByb2Nlc3NQcm94eTo6
ZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0
IFQmIGFyZ3VtZW50cykKIHsKLSAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIgPSBDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCIiLCAiIiwgZGVzdGluYXRp
b25JRCk7CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gQ29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZShDb3JlSVBDOjpNZXNzYWdlS2luZFRyYWl0czxF
Pjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgZGVzdGluYXRpb25JRCk7CiAgICAgZW5jb2Rl
ci0+ZW5jb2RlKGFyZ3VtZW50cyk7CiAKICAgICByZXR1cm4gc2VuZE1lc3NhZ2UoQ29yZUlQQzo6
TWVzc2FnZUlEKG1lc3NhZ2VJRCksIGVuY29kZXIucmVsZWFzZSgpLCAwKTsKQEAgLTIyNyw3ICsy
MjcsNyBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6ZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogYm9v
bCBXZWJQcm9jZXNzUHJveHk6OnNlbmQoY29uc3QgVCYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncykKIHsKLSAgICBPd25QdHI8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6Y3Jl
YXRlKCIiLCAiIiwgZGVzdGluYXRpb25JRCk7CisgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiBlbmNvZGVyID0gQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZShUOjpyZWNl
aXZlck5hbWUoKSwgIiIsIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29kZXItPmVuY29kZShtZXNz
YWdlKTsKIAogICAgIHJldHVybiBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoVDo6bWVz
c2FnZUlEKSwgZW5jb2Rlci5yZWxlYXNlKCksIG1lc3NhZ2VTZW5kRmxhZ3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVlODgx
ZmQ3Y2I1Y2Y2M2Y4ZGZlOWNiNzgwOWI1NjJhMzE1MzBlZmMuLjBjZmZmNjRmMjY0NTkxZWMzOTJi
ZjMyMTBhMjg3NWY3YTViZTVhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1Nyw2ICsxNTcsOCBAQAogCQkxQTY0MjU2ODEy
REU0MkVDMDBDQUFFMkMgLyogQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY0MjU2NjEyREU0MkVDMDBDQUFFMkMgLyogQmFja2lu
Z1N0b3JlLmggKi87IH07CiAJCTFBNjQyNTY5MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3Rv
cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2
NDI1NjcxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5jcHAgKi87IH07CiAJCTFBNjQy
OTJEMTJERTVGOTgwMENBQUUyQyAvKiBCYWNraW5nU3RvcmVNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY0MjkyQzEyREU1Rjk4MDBDQUFFMkMg
LyogQmFja2luZ1N0b3JlTWFjLm1tICovOyB9OworCQkxQTZCQjc2RTE2MzBFQkI2MDBERDE2REIg
LyogU3RyaW5nUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBNkJCNzZDMTYzMEVCQjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2Uu
Y3BwICovOyB9OworCQkxQTZCQjc2RjE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZCQjc2
RDE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmggKi87IH07CiAJCTFBNkY5Rjkw
MTFFMTNFRkMwMERCMTM3MSAvKiBDb21tYW5kTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1h
bmRMaW5lLmggKi87IH07CiAJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGlu
ZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTZGOUZCNjExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwICovOyB9OwogCQkx
QTZGQTAxRTExRTE1MjYzMDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW5NYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTAxRDExRTE1MjYzMDBE
QjEzNzEgLyogV2ViUHJvY2Vzc01haW5NYWMubW0gKi87IH07CkBAIC0xMjkwLDYgKzEyOTIsOCBA
QAogCQkxQTY0MjU2NjEyREU0MkVDMDBDQUFFMkMgLyogQmFja2luZ1N0b3JlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tpbmdTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTY0MjU2NzEyREU0MkVDMDBDQUFFMkMgLyogQmFja2luZ1N0b3JlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tpbmdTdG9yZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQyOTJDMTJERTVGOTgwMENBQUUyQyAv
KiBCYWNraW5nU3RvcmVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBCYWNraW5nU3RvcmVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
NkJCNzZDMTYzMEVCQjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nUmVmZXJlbmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE2QkI3NkQxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1Jl
ZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdSZWZlcmVu
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RjlGOEUxMUUxM0VGQzAwREIx
MzcxIC8qIENvbW1hbmRMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bW1hbmRMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkY5RkI2MTFFMTQw
ODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb21tYW5kTGluZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBNkZBMDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NNYWluTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgwMyw2ICsyODA3LDggQEAKIAkJ
CQkxQTNFRUQwQzE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNwcCAqLywK
IAkJCQkxQTNFRUQwRDE2MUE1MzUzMDBBRUI0RjUgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmggKi8s
CiAJCQkJMUExMTlBOTQxMjdCNzk2MjAwQTlFQ0IxIC8qIE1lc3NhZ2VTZW5kZXIuaCAqLywKKwkJ
CQkxQTZCQjc2QzE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLywKKwkJ
CQkxQTZCQjc2RDE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IENvcmVJUEM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDY5
OCw2ICs0NzA0LDcgQEAKIAkJCQkxQTIzMjhGRjE2MkM4NjZBMDBEODJGN0EgLyogTWVzc2FnZUVu
Y29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjMyOTAzMTYyQzg2NzMwMEQ4MkY3QSAvKiBN
ZXNzYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzNjE4M0UxNjMxMjZEQTAwQTk5
RERFIC8qIENvbm5lY3Rpb25TdGFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2QkI3NkYxNjMw
RUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01NjQ0
LDYgKzU2NTEsNyBAQAogCQkJCTFBMjMyOEZFMTYyQzg2NkEwMEQ4MkY3QSAvKiBNZXNzYWdlRW5j
b2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTIzMjkwMjE2MkM4NjczMDBEODJGN0EgLyog
TWVzc2FnZURlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEzNjE4M0QxNjMxMjZEQTAw
QTk5RERFIC8qIENvbm5lY3Rpb25TdGFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTZCQjc2
RTE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IDA2YTNmZGQwYmM4MzMwYWNjNmUzNzNkNjE1
ZWJjMDNhMTMyMjIyMWUuLjA1N2NiZjNkYjM2ZmU4M2RjYjUzOTY4ZDAwMGE2ZWU3NDkxOWM1OWIg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTQxMjksNiArNDEyOSwxNCBAQAogCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXENvcmVJUENcTWVzc2FnZVNlbmRlci5oIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZv
cm1cQ29yZUlQQ1xTdHJpbmdSZWZlcmVuY2UuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cQ29yZUlQQ1xTdHJpbmdSZWZl
cmVuY2UuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KIAkJCQk8RmlsdGVyCiAJCQkJCU5hbWU9Indp
biIKIAkJCQkJPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169655</attachid>
            <date>2012-10-19 11:17:59 -0700</date>
            <delta_ts>2012-10-19 11:24:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99853-20121019111643.patch</filename>
            <type>text/plain</type>
            <size>49186</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2UwZTMzNjQ5M2Q1Mjcw
NDVmMGU1M2M0OTk3ODVlMzVmNDc4MzcyNS4uZjY2NjhlM2ZiOWNjMDUzYWZiZWIxY2JlMmRhOGMz
NTk0YzI0NmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTEwLTE5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgdXNlIENT
dHJpbmdzIGZvciBtZXNzYWdlIHJlY2VpdmVyIG5hbWVzIGFuZCBtZXNzYWdlIG5hbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBTdHJp
bmdSZWZlcmVuY2Ugd2hpY2ggaXMgc2ltaWxhciB0byBEYXRhUmVmZXJlbmNlIGV4Y2VwdCBpdCBo
b2xkcyBhIHBvaW50ZXIgdG8gKyBsZW5ndGggb2YgYSBjaGFyICoKKyAgICAgICAgYW5kIGNhbiBi
ZSBjcmVhdGVkIGZyb20gYSBzdHJpbmcgbGl0ZXJhbC4gVXNlIHRoaXMgaW4gcGxhY2Ugb2YgQ1N0
cmluZyBpbiBNZXNzYWdlRW5jb2Rlci9NZXNzYWdlRGVjb2RlciBhbmQKKyAgICAgICAgbWFrZSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgdXNlIGEgSGFzaE1hcCBmcm9tIFN0cmluZ1JlZmVyZW5jZXMgdG8g
TWVzc2FnZVJlY2VpdmVycyBmb3IgZ2xvYmFsIG1lc3NhZ2UgcmVjZWl2ZXJzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6
OkNvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoQ29ubmVjdGlvbik6CisgICAgICAgIChDb3Jl
SVBDOjpDb25uZWN0aW9uOjpkZXByZWNhdGVkU2VuZFN5bmMpOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6ZGVwcmVjYXRlZFNlbmQpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZURlY29kZXI6Ok1l
c3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVy
Lmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSk6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAg
ICAgICAoTWVzc2FnZURlY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUVuY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZSk6
CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVuY29kZXIpOgorICAg
ICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAgKENvcmVJ
UEMpOgorICAgICAgICAoTWVzc2FnZUVuY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKENvcmVJUEMpOgorICAgICAg
ICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmg6CisgICAgICAgIChNZXNz
YWdlUmVjZWl2ZXJNYXApOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmNwcDogQWRkZWQuCisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZTo6ZGVjb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaDo6aGFz
aCk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKFN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAg
IChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OlN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAgIChD
b3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OmlzRW1wdHkpOgorICAgICAgICAoQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlOjpzaXplKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6
ZGF0YSk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoSGFzaCk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Okhhc2g6
OmVxdWFsKToKKyAgICAgICAgKFdURik6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMv
Q29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChtZXNzYWdl
X3RvX3N0cnVjdF9kZWNsYXJhdGlvbik6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyk6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weToKKyAgICAgICAgKiBTaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkZXByZWNhdGVkU2VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6c2VuZCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAxMi0xMC0xOSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMTY4Nik6IENy
YXNoIGluIE5TVG9vbFRpcE1hbmFnZXIgbW91c2VFbnRlcmVkVG9vbFRpcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyMzVhZjI2MGMzM2ZhNTE1MTc3ZjEyMmNkMDZhYWEzNGYwYWMxYTk0Li5iNmJm
YzdjNmY1NDIwOTZjZGUwNWVhMTllMTI5OWRmNTcyY2U2ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTI3LDYgKzEyNyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVu
Y29kZXIuY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCisg
ICAgUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCiAKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDRj
ZjgwZjk2NWQ2MDNlMzJlMzQ5ODU0OGQ3NGRlMjZiYTdhOWE1YjAuLjQxNmNmMjZjNWU5MTg5MjZm
YzU5NTIxMGUzNjAyZDliOWU4ZTg3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjY2LDYgKzI2Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCisJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9ndGsvTG9nZ2luZ0d0ay5jcHAgXApAQCAtMTIzNCw2ICsxMjM2LDggQEAgd2Via2l0
Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvU3RyaW5nUmVmZXJlbmNlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
dW5peC9BdHRhY2htZW50VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01v
ZHVsZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAKaW5kZXggYjlmOGZjZmRjNWY5NGM2YjQ0ZWYyMmU2YTBiNWY5MTA0NGZlYjM4NS4uODk0
YThkMWIyYzdkYTgyZjcxYjliZmNkYjQwZDlkMmI1MTI1ZTViOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yODMsNyArMjgzLDcgQEAg
dm9pZCBDb25uZWN0aW9uOjptYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQo
KQogICAgIG1fZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlID0gdHJ1ZTsKIH0KIAotUGFzc093blB0
cjxNZXNzYWdlRW5jb2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKGNv
bnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VO
YW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRfdCYgc3luY1JlcXVlc3RJRCkKK1Bh
c3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5j
b2Rlcihjb25zdCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCkKIHsKICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIg
PSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1l
LCBkZXN0aW5hdGlvbklEKTsKIApAQCAtNjI2LDcgKzYyNiw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBPd25QdHI8TWVzc2FnZUVuY29k
ZXI+IHJlcGx5RW5jb2RlciA9IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoIiIsICIiLCBzeW5jUmVx
dWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IHJlcGx5RW5jb2RlciA9IE1lc3Nh
Z2VFbmNvZGVyOjpjcmVhdGUoIklQQyIsICIiLCBzeW5jUmVxdWVzdElEKTsKIAogICAgIC8vIEhh
bmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIGNsaWVudC4KICAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggZmI0MmQ5ZTcyYTBiNmNjMmI4NGIxMmQzM2JmMzA0Mjk4YTZhZDUyYS4uYjQz
ODA3NDA5MDY0Njg1NTc3ZjY5MzU3OWFhYWVkZDQxYTgyNzBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kU3luYyhjb25zdCBUJiBtZXNz
YWdlLCBjb25zdCB0eXBlbmFtZSBUOjpSZXBseSYgcmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQsIGRvdWJsZSB0aW1lb3V0ID0gTm9UaW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0g
MCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1l
ZGlhdGVseSh1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCk7CiAKLSAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKKyAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpOwogICAg
IGJvb2wgc2VuZE1lc3NhZ2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwg
dW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDApOwogICAgIGJvb2wgc2VuZFN5bmNSZXBseShQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPik7CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBFLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCBjb25zdCBUJiBhcmd1bWVudHMsIGNvbnN0IFUmIHJlcGx5LCBkb3VibGUgdGltZW91dCkK
IHsKICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBPd25QdHI8TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoIiIsICIiLCBkZXN0aW5h
dGlvbklELCBzeW5jUmVxdWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29k
ZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8
RT46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIGRlc3RpbmF0aW9uSUQsIHN5bmNSZXF1ZXN0
SUQpOwogCiAgICAgLy8gRW5jb2RlIHRoZSBpbnB1dCBhcmd1bWVudHMuCiAgICAgZW5jb2Rlci0+
ZW5jb2RlKGFyZ3VtZW50cyk7CkBAIC00NjcsNyArNDY3LDcgQEAgaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELAogdGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4KIGJvb2wgQ29ubmVjdGlvbjo6
ZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0
IFQmIGFyZ3VtZW50cykKIHsKLSAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCIiLCAiIiwgZGVzdGluYXRpb25JRCk7CisgICAgT3duUHRy
PE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZShDb3JlSVBD
OjpNZXNzYWdlS2luZFRyYWl0czxFPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgZGVzdGlu
YXRpb25JRCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50cyk7CiAKICAgICByZXR1cm4g
c2VuZE1lc3NhZ2UoTWVzc2FnZUlEKG1lc3NhZ2VJRCksIGVuY29kZXIucmVsZWFzZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAK
aW5kZXggZTBhZWYzNTI1YTY1YWViMDIyZDA5ZTk3MGI0MTRmY2NlYjEyZmM0Ny4uNDE2Y2YxZWRi
YWVmNTFiOWFiMGZjYzVlZTM4ZGFiOTc4NzQ0Yzc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVu
Y2UuaCIKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC01MCwxMiArNTAsMTAgQEAgTWVzc2Fn
ZURlY29kZXI6On5NZXNzYWdlRGVjb2RlcigpCiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYgYXR0YWNo
bWVudHMpCiAgICAgOiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUo
KSwgYXR0YWNobWVudHMpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lOwotICAg
IGlmICghZGVjb2RlKG1lc3NhZ2VSZWNlaXZlck5hbWUpKQorICAgIGlmICghZGVjb2RlKG1fbWVz
c2FnZVJlY2VpdmVyTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENTdHJpbmcgbWVzc2Fn
ZU5hbWU7Ci0gICAgaWYgKCFkZWNvZGUobWVzc2FnZU5hbWUpKQorICAgIGlmICghZGVjb2RlKG1f
bWVzc2FnZU5hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBkZWNvZGVVSW50NjQobV9kZXN0
aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZURlY29kZXIuaAppbmRleCA4NDhjOWI0YjljMmVmNWYxZmQ5ZmM3YjcyYzk0MWNmMzYyNmZhZWI3
Li45NzA3YTZlZTA5YzRhOTZkZWVkM2EwY2U1YTJhMWUyNzZkNWI1NmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKQEAgLTM4LDggKzM5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxN
ZXNzYWdlRGVjb2Rlcj4gY3JlYXRlKGNvbnN0IERhdGFSZWZlcmVuY2UmIGJ1ZmZlciwgRGVxdWU8
QXR0YWNobWVudD4mKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlRGVjb2RlcigpOwogCisgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3Nh
Z2VSZWNlaXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25z
dCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgTWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYpOworCisg
ICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBTdHJpbmdSZWZl
cmVuY2UgbV9tZXNzYWdlTmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5k
ZXggNTM4NThiNmViODA2NjY0OWVkMTRhYzgwMGMxM2Y0MWFiNzM4MjhiNC4uZmJlZDU2MmRjNzUy
ODI2MjU4ZjkwMWI0MGFkMmVmNDgyNDY4YzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKQEAgLTI3LDE2ICsyNywxOSBAQAog
I2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAK
LVBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBNZXNz
YWdlRW5jb2Rlcjo6Y3JlYXRlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZXNzYWdlRW5jb2RlcihtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBtZXNzYWdlTmFtZSwgZGVzdGluYXRpb25JRCkpOwogfQogCi1NZXNzYWdlRW5jb2Rlcjo6TWVz
c2FnZUVuY29kZXIoY29uc3QgQ1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0
cmluZyYgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitNZXNzYWdlRW5jb2Rl
cjo6TWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKKyAg
ICBBU1NFUlQoIW1lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKKwogICAgIGVuY29kZSht
ZXNzYWdlUmVjZWl2ZXJOYW1lKTsKICAgICBlbmNvZGUobWVzc2FnZU5hbWUpOwogICAgIGVuY29k
ZShkZXN0aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUVuY29kZXIuaAppbmRleCAyYTg3ODUwYjk5YmMzYWM1NjU0MDAzZWI3NWQwYWZlNzdl
NjM1OWFiLi4wMjk5MjkyNDU1NWM1NDQwMDM4ZmJkNjJjMWU0MDBkYmJhM2ZiZGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VFbmNvZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5oCkBAIC0z
MSwxMyArMzEsMTUgQEAKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCitjbGFzcyBTdHJpbmdSZWZl
cmVuY2U7CisKIGNsYXNzIE1lc3NhZ2VFbmNvZGVyIDogcHVibGljIEFyZ3VtZW50RW5jb2RlciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZShj
b25zdCBDU3RyaW5nJiBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBjb25zdCBDU3RyaW5nJiBtZXNzYWdl
TmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TWVz
c2FnZUVuY29kZXI+IGNyZWF0ZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKICAg
ICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwogCiBwcml2YXRlOgotICAgIE1lc3NhZ2VFbmNv
ZGVyKGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1l
c3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKKyAgICBNZXNzYWdlRW5jb2RlcihT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCmluZGV4
IDUwYWIyOTZlY2U1N2Q3MzgxOGJiYWNlMDk1OTIzNjk0MmVlMDdlMWYuLjFmN2YxY2QzN2QyYzNi
MzZhZWYyOWFlZGFhZDcwMTg3ZTllN2ZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIK
IAorI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTM4LDYgKzM5LDEyIEBAIE1lc3NhZ2VSZWNl
aXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCiB7CiB9CiAKK3ZvaWQgTWVzc2FnZVJlY2Vp
dmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQoreworICAgIEFTU0VSVCgh
bV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsK
KyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1l
c3NhZ2VSZWNlaXZlcik7Cit9CisKIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjpkZXByZWNhdGVk
QWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNl
aXZlciogbWVzc2FnZVJlY2VpdmVyKQogewogICAgIEFTU0VSVCghbV9kZXByZWNhdGVkR2xvYmFs
TWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhtZXNzYWdlQ2xhc3MpKTsKQEAgLTUxLDYgKzU4LDEx
IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjppbnZhbGlkYXRlKCkKIAogYm9vbCBNZXNzYWdl
UmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNz
YWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoTWVz
c2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMu
Z2V0KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkgeworICAgICAgICBtZXNzYWdlUmVj
ZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuZ2V0
KG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKICAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCmluZGV4IGM5MjQwZTQxNjllYjM3MGY1Yzc5ZTBiMWVhM2Qz
MWQ5ZmVhODRjYTkuLjU5OGI2MjM4NTNjMDE3ODUxMTUwZjYwODA1NWVkNTE5ZmQ4YzZhOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBNZXNzYWdlUmVjZWl2ZXJNYXBfaAog
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTQyLDYgKzQzLDggQEAgcHVibGljOgogICAgIE1lc3NhZ2VSZWNlaXZlck1hcCgpOwogICAg
IH5NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKwog
ICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgZGVwcmVjYXRlZCBmdW5jdGlvbiBhbmQgZ2V0
IHJpZCBvZiBpdC4KICAgICB2b2lkIGRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKIApAQCAtNTMsNiArNTYsOCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRl
c3RpbmF0aW9uIElELgogICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3NhZ2VSZWNlaXZlcio+IG1f
ZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnM7CisKKyAgICBIYXNoTWFwPFN0cmluZ1Jl
ZmVyZW5jZSwgTWVzc2FnZVJlY2VpdmVyKj4gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzOwogfTsK
IAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5n
UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmU4YzFhMzdjMDExZGEwOTI2MDVmOTI4NmQzMjQwMTIy
MjYwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9TdHJpbmdSZWZlcmVuY2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ0hhc2hlci5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CisKK3ZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7Cit9CisKK2Jvb2wgU3RyaW5nUmVmZXJlbmNlOjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkKK3sK
KyAgICBEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShkYXRhUmVmZXJlbmNlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmVzdWx0Lm1fZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKTsKKyAgICByZXN1bHQubV9zaXplID0gZGF0YVJlZmVy
ZW5jZS5zaXplKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQgU3RyaW5nUmVm
ZXJlbmNlOjpIYXNoOjpoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSkKK3sKKyAgICByZXR1
cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln
bmVkIGNoYXIqPihhLmRhdGEoKSksIGEuc2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29y
ZUlQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdS
ZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWQ0ODJlNTNmNmRhZDYzMjViMmQ5N2IzYmM4ZTE4ZWVjNTY2NjFl
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3Ry
aW5nUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Ry
aW5nUmVmZXJlbmNlX2gKKyNkZWZpbmUgU3RyaW5nUmVmZXJlbmNlX2gKKworI2luY2x1ZGUgPHd0
Zi9IYXNoVHJhaXRzLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworY2xhc3MgQXJndW1lbnREZWNvZGVyOworCitjbGFzcyBTdHJpbmdSZWZlcmVuY2Ug
eworcHVibGljOgorICAgIFN0cmluZ1JlZmVyZW5jZSgpCisgICAgICAgIDogbV9kYXRhKDApCisg
ICAgICAgICwgbV9zaXplKDApCisgICAgeworICAgIH0KKworICAgIFN0cmluZ1JlZmVyZW5jZShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBtX2RhdGEoZGF0YSkKKyAg
ICAgICAgLCBtX3NpemUoc2l6ZSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8c2l6ZV90
IGxlbmd0aD4KKyAgICBTdHJpbmdSZWZlcmVuY2UoY29uc3QgY2hhciAoJnN0cmluZylbbGVuZ3Ro
XSkKKyAgICAgICAgOiBtX2RhdGEoc3RyaW5nKQorICAgICAgICAsIG1fc2l6ZShsZW5ndGggLSAx
KQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9z
aXplOyB9CisKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAg
IGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nUmVmZXJlbmNlJiBhLCBjb25zdCBTdHJpbmdS
ZWZlcmVuY2UmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5tX3NpemUgPT0gYi5tX3NpemUg
JiYgIW1lbWNtcChhLm1fZGF0YSwgYi5tX2RhdGEsIGEubV9zaXplKTsKKyAgICB9CisKKyAgICB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiwgU3RyaW5nUmVmZXJlbmNlJik7CisKKyAgICBzdHJ1Y3QgSGFz
aCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYg
YSk7CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSwg
Y29uc3QgU3RyaW5nUmVmZXJlbmNlJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAg
IH07CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9kYXRhOworICAgIHNpemVfdCBtX3Np
emU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVzcGFjZSBXVEYgewordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBEZWZhdWx0SGFzaDxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IHsKKyAgICB0eXBlZGVmIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaCBIYXNoOworfTsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IDogR2VuZXJpY0hhc2hUcmFp
dHM8Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlPiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IDA7CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHN0cmluZ1JlZmVy
ZW5jZSA9IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHJldHVybiBzdHJpbmdS
ZWZlcmVuY2Uuc2l6ZSgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gU3RyaW5nUmVmZXJlbmNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rp
b25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHAKaW5kZXggYzEzYjIzYmE1YjkxNTE0OTAzYmY3ZTdmNDIyMjA2YzZjNzRkYzdmMy4u
MTdkOGVjYmM4OTIzYThlZjI2ZThjM2EyNWUzMWQ0ODFjZTRkMGQ0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAg
LTExMiw3ICsxMTIsNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICBtX2lzQ29u
bmVjdGVkID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAgIC8vIFNlbmQgdGhlIGluaXRpYWxpemUg
bWVzc2FnZSwgd2hpY2ggY29udGFpbnMgYSBzZW5kIHJpZ2h0IGZvciB0aGUgc2VydmVyIHRvIHVz
ZS4KLSAgICAgICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29k
ZXI6OmNyZWF0ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIgPSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVu
Y29kZXItPmVuY29kZShNYWNoUG9ydChtX3JlY2VpdmVQb3J0LCBNQUNIX01TR19UWVBFX01BS0Vf
U0VORCkpOwogCiAgICAgICAgIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRChDb3JlSVBDTWVzc2FnZTo6
SW5pdGlhbGl6ZUNvbm5lY3Rpb24pLCBlbmNvZGVyLnJlbGVhc2UoKSk7CkBAIC0xMzEsNyArMTMx
LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICBpZiAobV9leGNlcHRpb25Qb3J0KSB7
CiAgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIo
bV9leGNlcHRpb25Qb3J0LCBXb3JrUXVldWU6Ok1hY2hQb3J0RGF0YUF2YWlsYWJsZSwgYmluZCgm
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyLCB0aGlzKSk7CiAKLSAgICAg
ICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0
ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVuY29kZXItPmVu
Y29kZShNYWNoUG9ydChtX2V4Y2VwdGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSk7
CiAKICAgICAgICAgc2VuZE1lc3NhZ2UoTWVzc2FnZUlEKENvcmVJUENNZXNzYWdlOjpTZXRFeGNl
cHRpb25Qb3J0KSwgZW5jb2Rlci5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2
MGM4OWIwMTYuLmYxY2Q1MDM4OTA1YWMzOTQzOTJlM2VhNWMzMTQ4YmNhNmNjNTExMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEyOSw4ICsxMjks
OCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgcmVz
dWx0LmFwcGVuZCgnc3RydWN0ICVzIDogJXMnICUgKG1lc3NhZ2UubmFtZSwgYmFzZV9jbGFzcyht
ZXNzYWdlKSkpCiAgICAgcmVzdWx0LmFwcGVuZCgnIHtcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgn
ICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9ICVzO1xuJyAlIG1lc3NhZ2UuaWQoKSkK
LSAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgp
IHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfVxuJykKLSAgICByZXN1bHQuYXBwZW5k
KCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiJXMiOyB9XG4nICUgbWVz
c2FnZS5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCIlcyIpOyB9XG4n
ICUgbWVzc2FnZS5uYW1lKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICBpZiBtZXNzYWdl
LnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9uZToKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKERFTEFZRURfQVRUUklCVVRFKToKQEAgLTIyOSw2ICsyMjksNyBAQCBkZWYgZm9yd2FyZF9k
ZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnIkFyZ3VtZW50cy5o
IicsCiAgICAgICAgICciTWVzc2FnZUVuY29kZXIuaCInLAogICAgICAgICAnIk1lc3NhZ2VJRC5o
IicsCisgICAgICAgICciU3RyaW5nUmVmZXJlbmNlLmgiJywKICAgICBdKQogCiAgICAgZm9yIG1l
c3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CkBAIC0yODQsOSArMjg1LDkgQEAgZGVmIGdlbmVy
YXRlX21lc3NhZ2VzX2hlYWRlcihmaWxlKToKIAogICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFj
ZSBNZXNzYWdlcyB7XG5uYW1lc3BhY2UgJXMge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgcmVz
dWx0LmFwcGVuZCgnXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJ3N0YXRpYyBpbmxpbmUgY29uc3Qg
Y2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZSgpXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ3N0YXRp
YyBpbmxpbmUgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKVxu
JykKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1
cm4gIiVzIjtcbicgJSByZWNlaXZlci5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1
cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCIlcyIpO1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAg
ICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5w
eSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQpp
bmRleCBlOGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0Li5mNGZhMWVlZTgx
NmEyYzNjMTgzYTcxOWEyN2EwNGE0OGI2MTI3NDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC0zMTgsNiArMzE4LDcg
QEAgX2V4cGVjdGVkX2hlYWRlciA9ICIiIi8qCiAjaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKKyNpbmNsdWRlICJT
dHJpbmdSZWZlcmVuY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KQEAgLTM0MSw5ICszNDIsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVz
cGFjZSBNZXNzYWdlcyB7CiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKLXN0YXRpYyBpbmxpbmUgY29u
c3QgY2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZSgpCitzdGF0aWMgaW5saW5lIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKCkKIHsKLSAgICByZXR1cm4gIldlYlBh
Z2UiOworICAgIHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIldlYlBhZ2UiKTsKIH0K
IAogZW51bSBLaW5kIHsKQEAgLTM3OSw4ICszODAsOCBAQCBlbnVtIEtpbmQgewogCiBzdHJ1Y3Qg
TG9hZFVSTCA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAg
c3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gTG9hZFVSTElEOwotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0K
LSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJMb2FkVVJMIjsgfQorICAg
IHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJMb2FkVVJMIik7
IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6OlN0cmluZyY+
IERlY29kZVR5cGU7CiAgICAgZXhwbGljaXQgTG9hZFVSTChjb25zdCBXVEY6OlN0cmluZyYgdXJs
KQpAQCAtMzkyLDggKzM5Myw4IEBAIHN0cnVjdCBMb2FkVVJMIDogQ29yZUlQQzo6QXJndW1lbnRz
MTxjb25zdCBXVEY6OlN0cmluZyY+IHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogc3RydWN0
IFRvdWNoRXZlbnQgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdlYktpdDo6V2ViVG91Y2hF
dmVudCY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBUb3VjaEV2ZW50SUQ7
Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VS
ZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4g
IlRvdWNoRXZlbnQiOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNl
aXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMg
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UoIlRvdWNoRXZlbnQiKTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVu
dHMxPGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCY+IERlY29kZVR5cGU7CiAgICAgZXhwbGlj
aXQgVG91Y2hFdmVudChjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIGV2ZW50KQpAQCAtNDA1
LDggKzQwNiw4IEBAIHN0cnVjdCBUb3VjaEV2ZW50IDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmPiB7CiAKIHN0cnVjdCBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyX3Q+
IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7
IHJldHVybiAiRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uIjsgfQorICAgIHN0YXRpYyBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyBy
ZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24i
KTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRf
dCwgdWludDMyX3Q+IERlY29kZVR5cGU7CiAgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIHVpbnQzMl90IHBvbGljeUFjdGlv
bikKQEAgLTQxNywxNiArNDE4LDE2IEBAIHN0cnVjdCBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24g
OiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyCiAKIHN0cnVj
dCBDbG9zZSA6IENvcmVJUEM6OkFyZ3VtZW50czAgewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1l
c3NhZ2VJRCA9IENsb3NlSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgp
IHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkNsb3NlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJDbG9zZSIpOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6
OkFyZ3VtZW50czAgRGVjb2RlVHlwZTsKIH07CiAKIHN0cnVjdCBQcmVmZXJlbmNlc0RpZENoYW5n
ZSA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3Jl
Jj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IFByZWZlcmVuY2VzRGlkQ2hh
bmdlSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyBy
ZXR1cm4gIlByZWZlcmVuY2VzRGlkQ2hhbmdlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJp
bmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgp
OyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4g
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJQcmVmZXJlbmNlc0RpZENoYW5nZSIpOyB9CiAKICAg
ICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNl
c1N0b3JlJj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBQcmVmZXJlbmNlc0RpZENoYW5nZShj
b25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQpAQCAtNDM3LDggKzQzOCw4
IEBAIHN0cnVjdCBQcmVmZXJlbmNlc0RpZENoYW5nZSA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29u
c3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0CiAKIHN0cnVjdCBTZW5kRG91YmxlQW5kRmxvYXQg
OiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKICAgICBzdGF0aWMgY29uc3Qg
S2luZCBtZXNzYWdlSUQgPSBTZW5kRG91YmxlQW5kRmxvYXRJRDsKLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiU2VuZERvdWJsZUFuZEZsb2F0
IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkg
eyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJT
ZW5kRG91YmxlQW5kRmxvYXQiKTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMy
PGRvdWJsZSwgZmxvYXQ+IERlY29kZVR5cGU7CiAgICAgU2VuZERvdWJsZUFuZEZsb2F0KGRvdWJs
ZSBkLCBmbG9hdCBmKQpAQCAtNDQ5LDggKzQ1MCw4IEBAIHN0cnVjdCBTZW5kRG91YmxlQW5kRmxv
YXQgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKIAogc3RydWN0IFNlbmRJ
bnRzIDogQ29yZUlQQzo6QXJndW1lbnRzMjxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3Qg
VmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4gPiY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNz
YWdlSUQgPSBTZW5kSW50c0lEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUo
KSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogbmFtZSgpIHsgcmV0dXJuICJTZW5kSW50cyI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJu
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiU2VuZEludHMiKTsgfQogCiAgICAgdHlwZWRlZiBD
b3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8
VmVjdG9yPHVpbnQ2NF90PiA+Jj4gRGVjb2RlVHlwZTsKICAgICBTZW5kSW50cyhjb25zdCBWZWN0
b3I8dWludDY0X3Q+JiBpbnRzLCBjb25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90PiA+JiBpbnRW
ZWN0b3JzKQpAQCAtNDYxLDggKzQ2Miw4IEBAIHN0cnVjdCBTZW5kSW50cyA6IENvcmVJUEM6OkFy
Z3VtZW50czI8Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0CiAKIHN0
cnVjdCBDcmVhdGVQbHVnaW4gOiBDb3JlSVBDOjpBcmd1bWVudHMyPHVpbnQ2NF90LCBjb25zdCBX
ZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNz
YWdlSUQgPSBDcmVhdGVQbHVnaW5JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJO
YW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0
IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiQ3JlYXRlUGx1Z2luIjsgfQorICAgIHN0YXRpYyBDb3Jl
SVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2Vp
dmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkg
eyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJDcmVhdGVQbHVnaW4iKTsgfQogCiAg
ICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2wmPiBSZXBseTsKICAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJh
bWV0ZXJzJj4gRGVjb2RlVHlwZTsKQEAgLTQ3NCw4ICs0NzUsOCBAQCBzdHJ1Y3QgQ3JlYXRlUGx1
Z2luIDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV2ViS2l0OjpQbHVnaW46
OlBhcmFtZQogCiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRz
Mjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQg
bWVzc2FnZUlEID0gUnVuSmF2YVNjcmlwdEFsZXJ0SUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIlJ1bkphdmFTY3JpcHRBbGVydCI7IH0K
KyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiUnVuSmF2
YVNjcmlwdEFsZXJ0Iik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMCBSZXBs
eTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdURjo6
U3RyaW5nJj4gRGVjb2RlVHlwZTsKQEAgLTQ4Nyw4ICs0ODgsOCBAQCBzdHJ1Y3QgUnVuSmF2YVNj
cmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJp
bmcmPiB7CiAKIHN0cnVjdCBHZXRQbHVnaW5zIDogQ29yZUlQQzo6QXJndW1lbnRzMTxib29sPiB7
CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gR2V0UGx1Z2luc0lEOwotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJO
YW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJHZXRQbHVn
aW5zIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1l
KCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6
OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNl
KCJHZXRQbHVnaW5zIik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mPiBSZXBseTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFy
Z3VtZW50czE8Ym9vbD4gRGVjb2RlVHlwZTsKQEAgLTUwMCw4ICs1MDEsOCBAQCBzdHJ1Y3QgR2V0
UGx1Z2lucyA6IENvcmVJUEM6OkFyZ3VtZW50czE8Ym9vbD4gewogCiBzdHJ1Y3QgR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5n
Jj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IEdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1l
KCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQorICAgIHN0YXRpYyBD
b3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJl
Y2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1l
KCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbiIpOyB9CiAKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewogICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1Jl
ZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4pOwpAQCAtNTI0LDggKzUyNSw4IEBAIHN0cnVjdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiAKIHN0cnVj
dCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIDogQ29yZUlQQzo6QXJndW1lbnRzMCB7CiAgICAgc3Rh
dGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVzdE11bHRpcGxlQXR0cmlidXRlc0lEOwotICAg
IHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAg
c3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KIAogICAgIHN0cnVj
dCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGVsYXllZFJlcGx5
PiB7CiAgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CkBAIC01NDQsOCArNTQ1LDgg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
IAogc3RydWN0IFRlc3RDb25uZWN0aW9uUXVldWUgOiBDb3JlSVBDOjpBcmd1bWVudHMxPHVpbnQ2
NF90PiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVzdENvbm5lY3Rpb25R
dWV1ZUlEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsg
cmV0dXJuICJUZXN0Q29ubmVjdGlvblF1ZXVlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJp
bmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgp
OyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4g
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0Q29ubmVjdGlvblF1ZXVlIik7IH0KIAogICAg
IHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50NjRfdD4gRGVjb2RlVHlwZTsKICAgICBl
eHBsaWNpdCBUZXN0Q29ubmVjdGlvblF1ZXVlKHVpbnQ2NF90IHBsdWdpbklEKQpAQCAtNTU2LDgg
KzU1Nyw4IEBAIHN0cnVjdCBUZXN0Q29ubmVjdGlvblF1ZXVlIDogQ29yZUlQQzo6QXJndW1lbnRz
MTx1aW50NjRfdD4gewogCiBzdHJ1Y3QgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMgOiBDb3JlSVBD
OjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4gewogICAgIHN0YXRpYyBjb25z
dCBLaW5kIG1lc3NhZ2VJRCA9IFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ7Ci0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIlRlc3RQYXJhbWV0
ZXJBdHRyaWJ1dGVzIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlKCJUZXN0UGFyYW1ldGVyQXR0cmlidXRlcyIpOyB9CiAKICAgICB0eXBlZGVmIENv
cmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3QsIGRvdWJsZSwgZG91YmxlPiBEZWNvZGVUeXBlOwog
ICAgIFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKHVpbnQ2NF90IGZvbywgZG91YmxlIGJhciwgZG91
YmxlIGJheikKQEAgLTU2OSw4ICs1NzAsOCBAQCBzdHJ1Y3QgVGVzdFBhcmFtZXRlckF0dHJpYnV0
ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4gewogI2lm
IFBMQVRGT1JNKE1BQykKIHN0cnVjdCBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbiA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmPiB7CiAgICAgc3RhdGlj
IGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb25JRDsK
LSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJl
Y2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAi
RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1l
KCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVy
biBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
Iik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBDb3JlSVBDOjpN
YWNoUG9ydCY+IERlY29kZVR5cGU7CiAgICAgZXhwbGljaXQgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpA
QCAtNTgzLDggKzU4NCw4IEBAIHN0cnVjdCBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbiA6
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvCiAjaWYgUExBVEZPUk0o
TUFDKQogc3RydWN0IEludGVycHJldEtleUV2ZW50IDogQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50
MzJfdD4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IEludGVycHJldEtleUV2
ZW50SUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyBy
ZXR1cm4gIkludGVycHJldEtleUV2ZW50IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJJbnRlcnByZXRLZXlFdmVudCIpOyB9CiAKICAgICB0eXBl
ZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
PiBSZXBseTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8dWludDMyX3Q+IERlY29k
ZVR5cGU7CkBAIC01OTgsOCArNTk5LDggQEAgc3RydWN0IEludGVycHJldEtleUV2ZW50IDogQ29y
ZUlQQzo6QXJndW1lbnRzMTx1aW50MzJfdD4gewogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRV
UkUpCiBzdHJ1Y3QgRGVwcmVjYXRlZE9wZXJhdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29u
c3QgQ29yZUlQQzo6RHVtbXlUeXBlJj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJ
RCA9IERlcHJlY2F0ZWRPcGVyYXRpb25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2
ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiRGVwcmVjYXRlZE9wZXJhdGlvbiI7IH0KKyAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiRGVwcmVjYXRlZE9w
ZXJhdGlvbiIpOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29y
ZUlQQzo6RHVtbXlUeXBlJj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBEZXByZWNhdGVkT3Bl
cmF0aW9uKGNvbnN0IENvcmVJUEM6OkR1bW15VHlwZSYgZHVtbXkpCkBAIC02MTIsOCArNjEzLDgg
QEAgc3RydWN0IERlcHJlY2F0ZWRPcGVyYXRpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0
IENvcmVJUEM6OkR1bW15VHlwZSY+IHsKICNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUp
CiBzdHJ1Y3QgRXhwZXJpbWVudGFsT3BlcmF0aW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBDb3JlSVBDOjpEdW1teVR5cGUmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlE
ID0gRXhwZXJpbWVudGFsT3BlcmF0aW9uSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2Vp
dmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIkV4cGVyaW1lbnRhbE9wZXJhdGlvbiI7IH0KKyAg
ICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJu
IG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiRXhwZXJpbWVu
dGFsT3BlcmF0aW9uIik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBDb3JlSVBDOjpEdW1teVR5cGUmPiBEZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0IEV4cGVyaW1l
bnRhbE9wZXJhdGlvbihjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmIGR1bW15KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbnRleHRNZXNzYWdl
S2luZHMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb250ZXh0
TWVzc2FnZUtpbmRzLmgKaW5kZXggZTgxOTRiNTg3YjNkYjlhYzE0YzkxN2M2NDdiZWE4ZjM1NmVi
N2ZmMS4uYzFlMTE5ODIzZmIwNDkzNTliMzJjOTIzYzYzMDM3OTRjZjMyZDgxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbnRleHRNZXNzYWdl
S2luZHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29u
dGV4dE1lc3NhZ2VLaW5kcy5oCkBAIC0yOSw2ICsyOSw3IEBACiAvLyBNZXNzYWdlcyBzZW50IGZy
b20gdGhlIGluamVjdGVkIGJ1bmRsZSB0byB0aGUgV2ViQ29udGV4dC4KIAogI2luY2x1ZGUgIk1l
c3NhZ2VJRC5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29udGV4dExlZ2FjeU1lc3NhZ2UgewogCkBAIC00Myw2ICs0NCwxMCBAQCBuYW1lc3BhY2UgQ29y
ZUlQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IE1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbnRleHRM
ZWdhY3lNZXNzYWdlOjpLaW5kPiB7CiAgICAgc3RhdGljIGNvbnN0IE1lc3NhZ2VDbGFzcyBtZXNz
YWdlQ2xhc3MgPSBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5OworICAgIHN0YXRpYyBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4g
IldlYkNvbnRleHRMZWdhY3lNZXNzYWdlIjsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCA2Yzk5Yzg1YjZjOGNmMzYwNWVkMGY2NmFkMmVjYjM3NTU4YTA3NzA4Li5hYTIzNzQ4ZDI3ZjQ5
NzVlNmZmODg3NDRhZWVlMTUyNGNlYTI5MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTMxLDYgKzMxLDcg
QEAgSEVBREVSUyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaCBc
CiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaCBcCiAgICAgUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlU2VuZGVyLmggXAorICAgIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5n
UmVmZXJlbmNlLmggXAogICAgIFBsYXRmb3JtL0xvZ2dpbmcuaCBcCiAgICAgUGxhdGZvcm0vTW9k
dWxlLmggXAogICAgIFBsYXRmb3JtL1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBcCkBAIC0z
OTIsNiArMzkzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
RGVjb2Rlci5jcHAgXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuY3BwIFwK
ICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgXAorICAgIFBsYXRm
b3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcCBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5j
cHAgXAogICAgIFBsYXRmb3JtL01vZHVsZS5jcHAgXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDFjYmUzNDUw
MmUzZjRiMjI1OGRjZDY0ODYyZjMzOTMyYzBlMGEwNmIuLjJmMjI3MzkzYWNlMzU4OTk3Y2I1M2U4
NmJmMzQyYzU3MGFlZjc1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5LmgiCisjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXS0Nv
bnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKQEAgLTEyOSw5ICsxMzEsOSBAQCBXZWJDb250ZXh0OjpXZWJDb250
ZXh0KFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5k
bGVQYQogICAgICwgbV91c2VzTmV0d29ya1Byb2Nlc3MoZmFsc2UpCiAjZW5kaWYKIHsKLSAgICBk
ZXByZWNhdGVkQWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRl
eHQsIHRoaXMpOwotICAgIGRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzRG93bmxvYWRQcm94eSwgdGhpcyk7Ci0gICAgZGVwcmVjYXRlZEFkZE1lc3NhZ2VS
ZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LCB0aGlzKTsKKyAg
ICBhZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkNvbnRleHQ6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgdGhpcyk7CisgICAgYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpEb3dubG9h
ZFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworICAgIGFkZE1lc3NhZ2VSZWNl
aXZlcihDb3JlSVBDOjpNZXNzYWdlS2luZFRyYWl0czxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6
S2luZD46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiAKICAgICAvLyBOT1RFOiBUaGVz
ZSBzdWItb2JqZWN0cyBtdXN0IGJlIGluaXRpYWxpemVkIGFmdGVyIG1fbWVzc2FnZVJlY2VpdmVy
TWFwLi4KICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkgPSBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CkBAIC03ODUsNiArNzg3LDExIEBAIEhh
c2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IFdlYkNvbnRleHQ6OnBkZkFuZFBvc3RTY3Jp
cHRNSU1FVHlwZXMoKQogICAgIHJldHVybiBtaW1lVHlwZXM7CiB9CiAKK3ZvaWQgV2ViQ29udGV4
dDo6YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlcikKK3sK
KyAgICBtX21lc3NhZ2VSZWNlaXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZVJlY2Vp
dmVyTmFtZSwgbWVzc2FnZVJlY2VpdmVyKTsKK30KKwogdm9pZCBXZWJDb250ZXh0OjpkZXByZWNh
dGVkQWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3Ms
IENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQogewogICAgIG1fbWVz
c2FnZVJlY2VpdmVyTWFwLmRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZUNsYXNz
LCBtZXNzYWdlUmVjZWl2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5k
ZXggY2VlNjg5Y2JhYTRiNjQxZTU5Nzk4MTc2MjgxZWIxNjFkYjE1YzgzOS4uM2Q5ZjI1NDU4YWRi
M2ExNzk4M2E5OGFkOWE4MDk4ZGFmY2RhNjIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dCo+JiBhbGxDb250ZXh0cygpOwogCisgICAgdm9pZCBhZGRNZXNzYWdl
UmVjZWl2ZXIoQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENv
cmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciopOwogICAgIHZvaWQgZGVwcmVjYXRlZEFkZE1lc3NhZ2VS
ZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3MsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciop
OwogICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgYm9vbCBkaXNwYXRj
aFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMzMTFj
NGYwOTVhY2U4YjY2YjliMjU4ZDgyOWFlM2UzNzA1NTUxNzMuLmM0MjkzNDM3ZjY1OGFlNmFmNDg1
ZjE4NWZmZWMxODU4NzhkNTY2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKQEAgLTIxOCw3ICsyMTgsNyBAQCBwcml2YXRlOgogdGVtcGxhdGU8dHlwZW5h
bWUgRSwgdHlwZW5hbWUgVD4KIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpkZXByZWNhdGVkU2VuZChF
IG1lc3NhZ2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzKQog
ewotICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoIiIsICIiLCBkZXN0aW5hdGlvbklEKTsKKyAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcjo6Y3JlYXRlKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPEU+OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksICIiLCBkZXN0aW5hdGlvbklEKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoYXJndW1l
bnRzKTsKIAogICAgIHJldHVybiBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQobWVzc2Fn
ZUlEKSwgZW5jb2Rlci5yZWxlYXNlKCksIDApOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgV2Vi
UHJvY2Vzc1Byb3h5OjpkZXByZWNhdGVkU2VuZChFIG1lc3NhZ2VJRCwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCwgY29uc3QKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBib29sIFdlYlByb2Nlc3NQcm94
eTo6c2VuZChjb25zdCBUJiBtZXNzYWdlLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1bnNpZ25l
ZCBtZXNzYWdlU2VuZEZsYWdzKQogewotICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rl
cj4gZW5jb2RlciA9IENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoIiIsICIiLCBkZXN0
aW5hdGlvbklEKTsKKyAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIg
PSBDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKFQ6OnJlY2VpdmVyTmFtZSgpLCAiIiwg
ZGVzdGluYXRpb25JRCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UpOwogCiAgICAgcmV0
dXJuIHNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRChUOjptZXNzYWdlSUQpLCBlbmNvZGVy
LnJlbGVhc2UoKSwgbWVzc2FnZVNlbmRGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWU4ODFmZDdjYjVjZjYzZjhkZmU5
Y2I3ODA5YjU2MmEzMTUzMGVmYy4uMGNmZmY2NGYyNjQ1OTFlYzM5MmJmMzIxMGEyODc1ZjdhNWJl
NWFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTU3LDYgKzE1Nyw4IEBACiAJCTFBNjQyNTY4MTJERTQyRUMwMENBQUUyQyAv
KiBCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNjQyNTY2MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLzsgfTsK
IAkJMUE2NDI1NjkxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY0MjU2NzEyREU0MkVDMDBD
QUFFMkMgLyogQmFja2luZ1N0b3JlLmNwcCAqLzsgfTsKIAkJMUE2NDI5MkQxMkRFNUY5ODAwQ0FB
RTJDIC8qIEJhY2tpbmdTdG9yZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNjQyOTJDMTJERTVGOTgwMENBQUUyQyAvKiBCYWNraW5nU3RvcmVN
YWMubW0gKi87IH07CisJCTFBNkJCNzZFMTYzMEVCQjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVu
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2
QkI3NkMxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi87IH07CisJCTFB
NkJCNzZGMTYzMEVCQjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkJCNzZEMTYzMEVCQjYwMEREMTZE
QiAvKiBTdHJpbmdSZWZlcmVuY2UuaCAqLzsgfTsKIAkJMUE2RjlGOTAxMUUxM0VGQzAwREIxMzcx
IC8qIENvbW1hbmRMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCAqLzsgfTsK
IAkJMUE2RjlGQjcxMUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUw
MERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgKi87IH07CiAJCTFBNkZBMDFFMTFFMTUyNjMw
MERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkZBMDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9j
ZXNzTWFpbk1hYy5tbSAqLzsgfTsKQEAgLTEyOTAsNiArMTI5Miw4IEBACiAJCTFBNjQyNTY2MTJE
RTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQmFja2luZ1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
NjQyNTY3MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2luZ1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE2NDI5MkMxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJhY2tpbmdTdG9y
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE2QkI3NkMxNjMwRUJCNjAw
REQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdHJpbmdSZWZlcmVuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQTZCQjc2RDE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1JlZmVyZW5jZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbWFuZExpbmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENv
bW1hbmRMaW5lTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bW1hbmRMaW5lTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkEwMUQx
MUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc01haW5NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODAzLDYgKzI4MDcsOCBAQAogCQkJCTFBM0VFRDBDMTYxQTUz
NTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwICovLAogCQkJCTFBM0VFRDBEMTYx
QTUzNTMwMEFFQjRGNSAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuaCAqLywKIAkJCQkxQTExOUE5NDEy
N0I3OTYyMDBBOUVDQjEgLyogTWVzc2FnZVNlbmRlci5oICovLAorCQkJCTFBNkJCNzZDMTYzMEVC
QjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwICovLAorCQkJCTFBNkJCNzZEMTYzMEVC
QjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2UuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29y
ZUlQQzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00Njk4LDYgKzQ3MDQsNyBAQAog
CQkJCTFBMjMyOEZGMTYyQzg2NkEwMEQ4MkY3QSAvKiBNZXNzYWdlRW5jb2Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUEyMzI5MDMxNjJDODY3MzAwRDgyRjdBIC8qIE1lc3NhZ2VEZWNvZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTM2MTgzRTE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlv
blN0YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTZCQjc2RjE2MzBFQkI2MDBERDE2REIgLyog
U3RyaW5nUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU2NDQsNiArNTY1MSw3IEBACiAJ
CQkJMUEyMzI4RkUxNjJDODY2QTAwRDgyRjdBIC8qIE1lc3NhZ2VFbmNvZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBMjMyOTAyMTYyQzg2NzMwMEQ4MkY3QSAvKiBNZXNzYWdlRGVjb2Rlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTM2MTgzRDE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVj
dGlvblN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBNkJCNzZFMTYzMEVCQjYwMEREMTZE
QiAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oKaW5kZXggMDZhM2ZkZDBiYzgzMzBhY2M2ZTM3M2Q2MTVlYmMwM2ExMzIyMjIxZS4u
MDU3Y2JmM2RiMzZmZTgzZGNiNTM5NjhkMDAwYTZlZTc0OTE5YzU5YiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagpAQCAtNDEyOSw2ICs0MTI5LDE0IEBACiAJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cUGxhdGZvcm1cQ29yZUlQQ1xNZXNzYWdlU2VuZGVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxDb3JlSVBDXFN0cmlu
Z1JlZmVyZW5jZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxDb3JlSVBDXFN0cmluZ1JlZmVyZW5jZS5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgogCQkJCTxGaWx0ZXIKIAkJCQkJTmFtZT0id2luIgogCQkJCQk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169659</attachid>
            <date>2012-10-19 11:24:17 -0700</date>
            <delta_ts>2012-10-19 12:22:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99853-20121019112301.patch</filename>
            <type>text/plain</type>
            <size>49203</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2UwZTMzNjQ5M2Q1Mjcw
NDVmMGU1M2M0OTk3ODVlMzVmNDc4MzcyNS4uZjY2NjhlM2ZiOWNjMDUzYWZiZWIxY2JlMmRhOGMz
NTk0YzI0NmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTEwLTE5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgdXNlIENT
dHJpbmdzIGZvciBtZXNzYWdlIHJlY2VpdmVyIG5hbWVzIGFuZCBtZXNzYWdlIG5hbWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBTdHJp
bmdSZWZlcmVuY2Ugd2hpY2ggaXMgc2ltaWxhciB0byBEYXRhUmVmZXJlbmNlIGV4Y2VwdCBpdCBo
b2xkcyBhIHBvaW50ZXIgdG8gKyBsZW5ndGggb2YgYSBjaGFyICoKKyAgICAgICAgYW5kIGNhbiBi
ZSBjcmVhdGVkIGZyb20gYSBzdHJpbmcgbGl0ZXJhbC4gVXNlIHRoaXMgaW4gcGxhY2Ugb2YgQ1N0
cmluZyBpbiBNZXNzYWdlRW5jb2Rlci9NZXNzYWdlRGVjb2RlciBhbmQKKyAgICAgICAgbWFrZSBN
ZXNzYWdlUmVjZWl2ZXJNYXAgdXNlIGEgSGFzaE1hcCBmcm9tIFN0cmluZ1JlZmVyZW5jZXMgdG8g
TWVzc2FnZVJlY2VpdmVycyBmb3IgZ2xvYmFsIG1lc3NhZ2UgcmVjZWl2ZXJzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKToKKyAgICAgICAgKENvcmVJUEM6
OkNvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAoQ29ubmVjdGlvbik6CisgICAgICAgIChDb3Jl
SVBDOjpDb25uZWN0aW9uOjpkZXByZWNhdGVkU2VuZFN5bmMpOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6ZGVwcmVjYXRlZFNlbmQpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZURlY29kZXI6Ok1l
c3NhZ2VEZWNvZGVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVy
Lmg6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSk6CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRGVjb2Rlcjo6bWVzc2FnZU5hbWUpOgorICAg
ICAgICAoTWVzc2FnZURlY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUVuY29kZXIuY3BwOgorICAgICAgICAoQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZSk6
CisgICAgICAgIChDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcjo6TWVzc2FnZUVuY29kZXIpOgorICAg
ICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuaDoKKyAgICAgICAgKENvcmVJ
UEMpOgorICAgICAgICAoTWVzc2FnZUVuY29kZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlck1hcDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKENvcmVJUEMpOgorICAgICAg
ICAoQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmg6CisgICAgICAgIChNZXNz
YWdlUmVjZWl2ZXJNYXApOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmNwcDogQWRkZWQuCisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5j
ZTo6ZGVjb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaDo6aGFz
aCk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaDogQWRkZWQu
CisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKFN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAg
IChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OlN0cmluZ1JlZmVyZW5jZSk6CisgICAgICAgIChD
b3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6OmlzRW1wdHkpOgorICAgICAgICAoQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlOjpzaXplKToKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6
ZGF0YSk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoSGFzaCk6CisgICAgICAgIChDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U6Okhhc2g6
OmVxdWFsKToKKyAgICAgICAgKFdURik6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMv
Q29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChtZXNzYWdl
X3RvX3N0cnVjdF9kZWNsYXJhdGlvbik6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0aW9uc19h
bmRfaGVhZGVycyk6CisgICAgICAgIChnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weToKKyAgICAgICAgKiBTaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvbnRleHQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkZXByZWNhdGVkU2VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6c2VuZCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAxMi0xMC0xOSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMTY4Nik6IENy
YXNoIGluIE5TVG9vbFRpcE1hbmFnZXIgbW91c2VFbnRlcmVkVG9vbFRpcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyMzVhZjI2MGMzM2ZhNTE1MTc3ZjEyMmNkMDZhYWEzNGYwYWMxYTk0Li5iNmJm
YzdjNmY1NDIwOTZjZGUwNWVhMTllMTI5OWRmNTcyY2U2ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMTI3LDYgKzEyNyw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVu
Y29kZXIuY3BwCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCisg
ICAgUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCiAKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDRj
ZjgwZjk2NWQ2MDNlMzJlMzQ5ODU0OGQ3NGRlMjZiYTdhOWE1YjAuLjQxNmNmMjZjNWU5MTg5MjZm
YzU5NTIxMGUzNjAyZDliOWU4ZTg3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMjY2LDYgKzI2Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCisJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9ndGsvTG9nZ2luZ0d0ay5jcHAgXApAQCAtMTIzNCw2ICsxMjM2LDggQEAgd2Via2l0
Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVNlbmRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvU3RyaW5nUmVmZXJlbmNlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
dW5peC9BdHRhY2htZW50VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01v
ZHVsZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlv
bi5jcHAKaW5kZXggYjlmOGZjZmRjNWY5NGM2YjQ0ZWYyMmU2YTBiNWY5MTA0NGZlYjM4NS4uODk0
YThkMWIyYzdkYTgyZjcxYjliZmNkYjQwZDlkMmI1MTI1ZTViOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yODMsNyArMjgzLDcgQEAg
dm9pZCBDb25uZWN0aW9uOjptYXJrQ3VycmVudGx5RGlzcGF0Y2hlZE1lc3NhZ2VBc0ludmFsaWQo
KQogICAgIG1fZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlID0gdHJ1ZTsKIH0KIAotUGFzc093blB0
cjxNZXNzYWdlRW5jb2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKGNv
bnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VO
YW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRfdCYgc3luY1JlcXVlc3RJRCkKK1Bh
c3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdlRW5j
b2Rlcihjb25zdCBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1aW50NjRf
dCYgc3luY1JlcXVlc3RJRCkKIHsKICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIg
PSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1l
LCBkZXN0aW5hdGlvbklEKTsKIApAQCAtNjI2LDcgKzYyNiw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBPd25QdHI8TWVzc2FnZUVuY29k
ZXI+IHJlcGx5RW5jb2RlciA9IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoIiIsICIiLCBzeW5jUmVx
dWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IHJlcGx5RW5jb2RlciA9IE1lc3Nh
Z2VFbmNvZGVyOjpjcmVhdGUoIklQQyIsICIiLCBzeW5jUmVxdWVzdElEKTsKIAogICAgIC8vIEhh
bmQgb2ZmIGJvdGggdGhlIGRlY29kZXIgYW5kIGVuY29kZXIgdG8gdGhlIGNsaWVudC4KICAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggZmI0MmQ5ZTcyYTBiNmNjMmI4NGIxMmQzM2JmMzA0Mjk4YTZhZDUyYS4uYjQz
ODA3NDA5MDY0Njg1NTc3ZjY5MzU3OWFhYWVkZDQxYTgyNzBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE5MSw3ICsxOTEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kU3luYyhjb25zdCBUJiBtZXNz
YWdlLCBjb25zdCB0eXBlbmFtZSBUOjpSZXBseSYgcmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQsIGRvdWJsZSB0aW1lb3V0ID0gTm9UaW1lb3V0LCB1bnNpZ25lZCBzeW5jU2VuZEZsYWdzID0g
MCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1l
ZGlhdGVseSh1aW50NjRfdCBkZXN0aW5hdGlvbklELCBkb3VibGUgdGltZW91dCk7CiAKLSAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElEKTsKKyAgICBQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoU3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFt
ZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgdWludDY0X3QmIHN5bmNSZXF1ZXN0SUQpOwogICAg
IGJvb2wgc2VuZE1lc3NhZ2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiwg
dW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyA9IDApOwogICAgIGJvb2wgc2VuZFN5bmNSZXBseShQ
YXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPik7CiAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBFLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCBjb25zdCBUJiBhcmd1bWVudHMsIGNvbnN0IFUmIHJlcGx5LCBkb3VibGUgdGltZW91dCkK
IHsKICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBPd25QdHI8TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoIiIsICIiLCBkZXN0aW5h
dGlvbklELCBzeW5jUmVxdWVzdElEKTsKKyAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29k
ZXIgPSBjcmVhdGVTeW5jTWVzc2FnZUVuY29kZXIoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8
RT46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIGRlc3RpbmF0aW9uSUQsIHN5bmNSZXF1ZXN0
SUQpOwogCiAgICAgLy8gRW5jb2RlIHRoZSBpbnB1dCBhcmd1bWVudHMuCiAgICAgZW5jb2Rlci0+
ZW5jb2RlKGFyZ3VtZW50cyk7CkBAIC00NjcsNyArNDY3LDcgQEAgaW5saW5lIGJvb2wgQ29ubmVj
dGlvbjo6ZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELAogdGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4KIGJvb2wgQ29ubmVjdGlvbjo6
ZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0
IFQmIGFyZ3VtZW50cykKIHsKLSAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCIiLCAiIiwgZGVzdGluYXRpb25JRCk7CisgICAgT3duUHRy
PE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZShDb3JlSVBD
OjpNZXNzYWdlS2luZFRyYWl0czxFPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAiIiwgZGVzdGlu
YXRpb25JRCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50cyk7CiAKICAgICByZXR1cm4g
c2VuZE1lc3NhZ2UoTWVzc2FnZUlEKG1lc3NhZ2VJRCksIGVuY29kZXIucmVsZWFzZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZURlY29kZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAK
aW5kZXggZTBhZWYzNTI1YTY1YWViMDIyZDA5ZTk3MGI0MTRmY2NlYjEyZmM0Ny4uNDE2Y2YxZWRi
YWVmNTFiOWFiMGZjYzVlZTM4ZGFiOTc4NzQ0Yzc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlICJTdHJpbmdSZWZlcmVu
Y2UuaCIKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC01MCwxMiArNTAsMTAgQEAgTWVzc2Fn
ZURlY29kZXI6On5NZXNzYWdlRGVjb2RlcigpCiBNZXNzYWdlRGVjb2Rlcjo6TWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYgYXR0YWNo
bWVudHMpCiAgICAgOiBBcmd1bWVudERlY29kZXIoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUo
KSwgYXR0YWNobWVudHMpCiB7Ci0gICAgQ1N0cmluZyBtZXNzYWdlUmVjZWl2ZXJOYW1lOwotICAg
IGlmICghZGVjb2RlKG1lc3NhZ2VSZWNlaXZlck5hbWUpKQorICAgIGlmICghZGVjb2RlKG1fbWVz
c2FnZVJlY2VpdmVyTmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIENTdHJpbmcgbWVzc2Fn
ZU5hbWU7Ci0gICAgaWYgKCFkZWNvZGUobWVzc2FnZU5hbWUpKQorICAgIGlmICghZGVjb2RlKG1f
bWVzc2FnZU5hbWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBkZWNvZGVVSW50NjQobV9kZXN0
aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZURlY29kZXIuaAppbmRleCA4NDhjOWI0YjljMmVmNWYxZmQ5ZmM3YjcyYzk0MWNmMzYyNmZhZWI3
Li45NzA3YTZlZTA5YzRhOTZkZWVkM2EwY2U1YTJhMWUyNzZkNWI1NmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRGVjb2Rlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIE1lc3NhZ2VEZWNvZGVyX2gKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVj
b2Rlci5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKQEAgLTM4LDggKzM5LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxN
ZXNzYWdlRGVjb2Rlcj4gY3JlYXRlKGNvbnN0IERhdGFSZWZlcmVuY2UmIGJ1ZmZlciwgRGVxdWU8
QXR0YWNobWVudD4mKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlRGVjb2RlcigpOwogCisgICAgU3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKSBjb25zdCB7IHJldHVybiBtX21lc3Nh
Z2VSZWNlaXZlck5hbWU7IH0KKyAgICBTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUoKSBjb25z
dCB7IHJldHVybiBtX21lc3NhZ2VOYW1lOyB9CisKIHByaXZhdGU6CiAgICAgTWVzc2FnZURlY29k
ZXIoY29uc3QgRGF0YVJlZmVyZW5jZSYgYnVmZmVyLCBEZXF1ZTxBdHRhY2htZW50PiYpOworCisg
ICAgU3RyaW5nUmVmZXJlbmNlIG1fbWVzc2FnZVJlY2VpdmVyTmFtZTsKKyAgICBTdHJpbmdSZWZl
cmVuY2UgbV9tZXNzYWdlTmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUVuY29kZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKaW5k
ZXggNTM4NThiNmViODA2NjY0OWVkMTRhYzgwMGMxM2Y0MWFiNzM4MjhiNC4uZmJlZDU2MmRjNzUy
ODI2MjU4ZjkwMWI0MGFkMmVmNDgyNDY4YzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5jcHAKQEAgLTI3LDE2ICsyNywxOSBAQAog
I2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAK
LVBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IE1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoY29uc3Qg
Q1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZU5hbWUs
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitQYXNzT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBNZXNz
YWdlRW5jb2Rlcjo6Y3JlYXRlKFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZXNzYWdlRW5jb2RlcihtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBtZXNzYWdlTmFtZSwgZGVzdGluYXRpb25JRCkpOwogfQogCi1NZXNzYWdlRW5jb2Rlcjo6TWVz
c2FnZUVuY29kZXIoY29uc3QgQ1N0cmluZyYgbWVzc2FnZVJlY2VpdmVyTmFtZSwgY29uc3QgQ1N0
cmluZyYgbWVzc2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitNZXNzYWdlRW5jb2Rl
cjo6TWVzc2FnZUVuY29kZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKKyAg
ICBBU1NFUlQoIW1lc3NhZ2VSZWNlaXZlck5hbWUuaXNFbXB0eSgpKTsKKwogICAgIGVuY29kZSht
ZXNzYWdlUmVjZWl2ZXJOYW1lKTsKICAgICBlbmNvZGUobWVzc2FnZU5hbWUpOwogICAgIGVuY29k
ZShkZXN0aW5hdGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUVuY29kZXIuaAppbmRleCAyYTg3ODUwYjk5YmMzYWM1NjU0MDAzZWI3NWQwYWZlNzdl
NjM1OWFiLi4wMjk5MjkyNDU1NWM1NDQwMDM4ZmJkNjJjMWU0MDBkYmJhM2ZiZGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VFbmNvZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlRW5jb2Rlci5oCkBAIC0z
MSwxMyArMzEsMTUgQEAKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCitjbGFzcyBTdHJpbmdSZWZl
cmVuY2U7CisKIGNsYXNzIE1lc3NhZ2VFbmNvZGVyIDogcHVibGljIEFyZ3VtZW50RW5jb2RlciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVzc2FnZUVuY29kZXI+IGNyZWF0ZShj
b25zdCBDU3RyaW5nJiBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBjb25zdCBDU3RyaW5nJiBtZXNzYWdl
TmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8TWVz
c2FnZUVuY29kZXI+IGNyZWF0ZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKICAg
ICB2aXJ0dWFsIH5NZXNzYWdlRW5jb2RlcigpOwogCiBwcml2YXRlOgotICAgIE1lc3NhZ2VFbmNv
ZGVyKGNvbnN0IENTdHJpbmcmIG1lc3NhZ2VSZWNlaXZlck5hbWUsIGNvbnN0IENTdHJpbmcmIG1l
c3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKKyAgICBNZXNzYWdlRW5jb2RlcihT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCmluZGV4
IDUwYWIyOTZlY2U1N2Q3MzgxOGJiYWNlMDk1OTIzNjk0MmVlMDdlMWYuLjFmN2YxY2QzN2QyYzNi
MzZhZWYyOWFlZGFhZDcwMTg3ZTllN2ZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIK
IAorI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTM4LDYgKzM5LDEyIEBAIE1lc3NhZ2VSZWNl
aXZlck1hcDo6fk1lc3NhZ2VSZWNlaXZlck1hcCgpCiB7CiB9CiAKK3ZvaWQgTWVzc2FnZVJlY2Vp
dmVyTWFwOjphZGRNZXNzYWdlUmVjZWl2ZXIoU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQoreworICAgIEFTU0VSVCgh
bV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsK
KyAgICBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuc2V0KG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1l
c3NhZ2VSZWNlaXZlcik7Cit9CisKIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjpkZXByZWNhdGVk
QWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIE1lc3NhZ2VSZWNl
aXZlciogbWVzc2FnZVJlY2VpdmVyKQogewogICAgIEFTU0VSVCghbV9kZXByZWNhdGVkR2xvYmFs
TWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhtZXNzYWdlQ2xhc3MpKTsKQEAgLTUxLDYgKzU4LDEx
IEBAIHZvaWQgTWVzc2FnZVJlY2VpdmVyTWFwOjppbnZhbGlkYXRlKCkKIAogYm9vbCBNZXNzYWdl
UmVjZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNz
YWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBpZiAoTWVz
c2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX2dsb2JhbE1lc3NhZ2VSZWNlaXZlcnMu
Z2V0KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKSkgeworICAgICAgICBtZXNzYWdlUmVj
ZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnMuZ2V0
KG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSkpIHsKICAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZVJlY2VpdmVyTWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L01lc3NhZ2VSZWNlaXZlck1hcC5oCmluZGV4IGM5MjQwZTQxNjllYjM3MGY1Yzc5ZTBiMWVhM2Qz
MWQ5ZmVhODRjYTkuLjU5OGI2MjM4NTNjMDE3ODUxMTUwZjYwODA1NWVkNTE5ZmQ4YzZhOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBNZXNzYWdlUmVjZWl2ZXJNYXBfaAog
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTQyLDYgKzQzLDggQEAgcHVibGljOgogICAgIE1lc3NhZ2VSZWNlaXZlck1hcCgpOwogICAg
IH5NZXNzYWdlUmVjZWl2ZXJNYXAoKTsKIAorICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKFN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBNZXNzYWdlUmVjZWl2ZXIqKTsKKwog
ICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgZGVwcmVjYXRlZCBmdW5jdGlvbiBhbmQgZ2V0
IHJpZCBvZiBpdC4KICAgICB2b2lkIGRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZUNsYXNzLCBNZXNzYWdlUmVjZWl2ZXIqKTsKIApAQCAtNTMsNiArNTYsOCBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRl
c3RpbmF0aW9uIElELgogICAgIEhhc2hNYXA8dW5zaWduZWQsIE1lc3NhZ2VSZWNlaXZlcio+IG1f
ZGVwcmVjYXRlZEdsb2JhbE1lc3NhZ2VSZWNlaXZlcnM7CisKKyAgICBIYXNoTWFwPFN0cmluZ1Jl
ZmVyZW5jZSwgTWVzc2FnZVJlY2VpdmVyKj4gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzOwogfTsK
IAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5n
UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmU4YzFhMzdjMDExZGEwOTI2MDVmOTI4NmQzMjQwMTIy
MjYwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9TdHJpbmdSZWZlcmVuY2UuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCisKKyNpbmNsdWRl
ICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ0hhc2hlci5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CisKK3ZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxl
TGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7Cit9CisKK2Jvb2wgU3RyaW5nUmVmZXJlbmNlOjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkKK3sK
KyAgICBEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShkYXRhUmVmZXJlbmNlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmVzdWx0Lm1fZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KGRhdGFSZWZlcmVuY2UuZGF0YSgpKTsKKyAgICByZXN1bHQubV9zaXplID0gZGF0YVJlZmVy
ZW5jZS5zaXplKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQgU3RyaW5nUmVm
ZXJlbmNlOjpIYXNoOjpoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSkKK3sKKyAgICByZXR1
cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaChyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln
bmVkIGNoYXIqPihhLmRhdGEoKSksIGEuc2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29y
ZUlQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdS
ZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWQ0ODJlNTNmNmRhZDYzMjViMmQ5N2IzYmM4ZTE4ZWVjNTY2NjFl
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3Ry
aW5nUmVmZXJlbmNlLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Ry
aW5nUmVmZXJlbmNlX2gKKyNkZWZpbmUgU3RyaW5nUmVmZXJlbmNlX2gKKworI2luY2x1ZGUgPHd0
Zi9IYXNoVHJhaXRzLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworY2xhc3MgQXJndW1lbnREZWNvZGVyOworCitjbGFzcyBTdHJpbmdSZWZlcmVuY2Ug
eworcHVibGljOgorICAgIFN0cmluZ1JlZmVyZW5jZSgpCisgICAgICAgIDogbV9kYXRhKDApCisg
ICAgICAgICwgbV9zaXplKDApCisgICAgeworICAgIH0KKworICAgIFN0cmluZ1JlZmVyZW5jZShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBtX2RhdGEoZGF0YSkKKyAg
ICAgICAgLCBtX3NpemUoc2l6ZSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8c2l6ZV90
IGxlbmd0aD4KKyAgICBTdHJpbmdSZWZlcmVuY2UoY29uc3QgY2hhciAoJnN0cmluZylbbGVuZ3Ro
XSkKKyAgICAgICAgOiBtX2RhdGEoc3RyaW5nKQorICAgICAgICAsIG1fc2l6ZShsZW5ndGggLSAx
KQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9z
aXplOyB9CisKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAg
IGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nUmVmZXJlbmNlJiBhLCBjb25zdCBTdHJpbmdS
ZWZlcmVuY2UmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5tX3NpemUgPT0gYi5tX3NpemUg
JiYgIW1lbWNtcChhLm1fZGF0YSwgYi5tX2RhdGEsIGEubV9zaXplKTsKKyAgICB9CisKKyAgICB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiwgU3RyaW5nUmVmZXJlbmNlJik7CisKKyAgICBzdHJ1Y3QgSGFz
aCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYg
YSk7CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZ1JlZmVyZW5jZSYgYSwg
Y29uc3QgU3RyaW5nUmVmZXJlbmNlJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAg
IH07CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9kYXRhOworICAgIHNpemVfdCBtX3Np
emU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVzcGFjZSBXVEYgewordGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBEZWZhdWx0SGFzaDxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IHsKKyAgICB0eXBlZGVmIENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6SGFzaCBIYXNoOworfTsKKwordGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2U+IDogR2VuZXJpY0hhc2hUcmFp
dHM8Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlPiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IDA7CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHN0cmluZ1JlZmVy
ZW5jZSA9IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IENv
cmVJUEM6OlN0cmluZ1JlZmVyZW5jZSYgc3RyaW5nUmVmZXJlbmNlKSB7IHJldHVybiBzdHJpbmdS
ZWZlcmVuY2Uuc2l6ZSgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gU3RyaW5nUmVmZXJlbmNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rp
b25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHAKaW5kZXggYzEzYjIzYmE1YjkxNTE0OTAzYmY3ZTdmNDIyMjA2YzZjNzRkYzdmMy4u
MTdkOGVjYmM4OTIzYThlZjI2ZThjM2EyNWUzMWQ0ODFjZTRkMGQ0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAKQEAg
LTExMiw3ICsxMTIsNyBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogICAgICAgICBtX2lzQ29u
bmVjdGVkID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAgIC8vIFNlbmQgdGhlIGluaXRpYWxpemUg
bWVzc2FnZSwgd2hpY2ggY29udGFpbnMgYSBzZW5kIHJpZ2h0IGZvciB0aGUgc2VydmVyIHRvIHVz
ZS4KLSAgICAgICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29k
ZXI6OmNyZWF0ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVu
Y29kZXIgPSBNZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVu
Y29kZXItPmVuY29kZShNYWNoUG9ydChtX3JlY2VpdmVQb3J0LCBNQUNIX01TR19UWVBFX01BS0Vf
U0VORCkpOwogCiAgICAgICAgIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRChDb3JlSVBDTWVzc2FnZTo6
SW5pdGlhbGl6ZUNvbm5lY3Rpb24pLCBlbmNvZGVyLnJlbGVhc2UoKSk7CkBAIC0xMzEsNyArMTMx
LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICBpZiAobV9leGNlcHRpb25Qb3J0KSB7
CiAgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIo
bV9leGNlcHRpb25Qb3J0LCBXb3JrUXVldWU6Ok1hY2hQb3J0RGF0YUF2YWlsYWJsZSwgYmluZCgm
Q29ubmVjdGlvbjo6ZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyLCB0aGlzKSk7CiAKLSAgICAg
ICAgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0
ZSgiIiwgIiIsIDApOworICAgICAgICBPd25QdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIgPSBN
ZXNzYWdlRW5jb2Rlcjo6Y3JlYXRlKCJJUEMiLCAiIiwgMCk7CiAgICAgICAgIGVuY29kZXItPmVu
Y29kZShNYWNoUG9ydChtX2V4Y2VwdGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSk7
CiAKICAgICAgICAgc2VuZE1lc3NhZ2UoTWVzc2FnZUlEKENvcmVJUENNZXNzYWdlOjpTZXRFeGNl
cHRpb25Qb3J0KSwgZW5jb2Rlci5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2
MGM4OWIwMTYuLmYxY2Q1MDM4OTA1YWMzOTQzOTJlM2VhNWMzMTQ4YmNhNmNjNTExMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEyOSw4ICsxMjks
OCBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnZSk6CiAgICAgcmVz
dWx0LmFwcGVuZCgnc3RydWN0ICVzIDogJXMnICUgKG1lc3NhZ2UubmFtZSwgYmFzZV9jbGFzcyht
ZXNzYWdlKSkpCiAgICAgcmVzdWx0LmFwcGVuZCgnIHtcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgn
ICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9ICVzO1xuJyAlIG1lc3NhZ2UuaWQoKSkK
LSAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgp
IHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfVxuJykKLSAgICByZXN1bHQuYXBwZW5k
KCcgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiJXMiOyB9XG4nICUgbWVz
c2FnZS5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fVxuJykKKyAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCIlcyIpOyB9XG4n
ICUgbWVzc2FnZS5uYW1lKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICBpZiBtZXNzYWdl
LnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9uZToKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKERFTEFZRURfQVRUUklCVVRFKToKQEAgLTIyOSw2ICsyMjksNyBAQCBkZWYgZm9yd2FyZF9k
ZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnIkFyZ3VtZW50cy5o
IicsCiAgICAgICAgICciTWVzc2FnZUVuY29kZXIuaCInLAogICAgICAgICAnIk1lc3NhZ2VJRC5o
IicsCisgICAgICAgICciU3RyaW5nUmVmZXJlbmNlLmgiJywKICAgICBdKQogCiAgICAgZm9yIG1l
c3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CkBAIC0yODQsOSArMjg1LDkgQEAgZGVmIGdlbmVy
YXRlX21lc3NhZ2VzX2hlYWRlcihmaWxlKToKIAogICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFj
ZSBNZXNzYWdlcyB7XG5uYW1lc3BhY2UgJXMge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgcmVz
dWx0LmFwcGVuZCgnXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJ3N0YXRpYyBpbmxpbmUgY29uc3Qg
Y2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZSgpXG4nKQorICAgIHJlc3VsdC5hcHBlbmQoJ3N0YXRp
YyBpbmxpbmUgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKVxu
JykKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1
cm4gIiVzIjtcbicgJSByZWNlaXZlci5uYW1lKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1
cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCIlcyIpO1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAg
ICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5w
eSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQpp
bmRleCBlOGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0Li5mNGZhMWVlZTgx
NmEyYzNjMTgzYTcxOWEyN2EwNGE0OGI2MTI3NDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC0zMTgsNiArMzE4LDcg
QEAgX2V4cGVjdGVkX2hlYWRlciA9ICIiIi8qCiAjaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKKyNpbmNsdWRlICJT
dHJpbmdSZWZlcmVuY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KQEAgLTM0MSw5ICszNDIsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVz
cGFjZSBNZXNzYWdlcyB7CiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKLXN0YXRpYyBpbmxpbmUgY29u
c3QgY2hhciogbWVzc2FnZVJlY2VpdmVyTmFtZSgpCitzdGF0aWMgaW5saW5lIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKCkKIHsKLSAgICByZXR1cm4gIldlYlBh
Z2UiOworICAgIHJldHVybiBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIldlYlBhZ2UiKTsKIH0K
IAogZW51bSBLaW5kIHsKQEAgLTM3OSw4ICszODAsOCBAQCBlbnVtIEtpbmQgewogCiBzdHJ1Y3Qg
TG9hZFVSTCA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAg
c3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gTG9hZFVSTElEOwotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0K
LSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJMb2FkVVJMIjsgfQorICAg
IHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJMb2FkVVJMIik7
IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6OlN0cmluZyY+
IERlY29kZVR5cGU7CiAgICAgZXhwbGljaXQgTG9hZFVSTChjb25zdCBXVEY6OlN0cmluZyYgdXJs
KQpAQCAtMzkyLDggKzM5Myw4IEBAIHN0cnVjdCBMb2FkVVJMIDogQ29yZUlQQzo6QXJndW1lbnRz
MTxjb25zdCBXVEY6OlN0cmluZyY+IHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogc3RydWN0
IFRvdWNoRXZlbnQgOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdlYktpdDo6V2ViVG91Y2hF
dmVudCY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBUb3VjaEV2ZW50SUQ7
Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VS
ZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4g
IlRvdWNoRXZlbnQiOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNl
aXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMg
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UoIlRvdWNoRXZlbnQiKTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVu
dHMxPGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCY+IERlY29kZVR5cGU7CiAgICAgZXhwbGlj
aXQgVG91Y2hFdmVudChjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmIGV2ZW50KQpAQCAtNDA1
LDggKzQwNiw4IEBAIHN0cnVjdCBUb3VjaEV2ZW50IDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmPiB7CiAKIHN0cnVjdCBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyX3Q+
IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4g
bWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7
IHJldHVybiAiRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uIjsgfQorICAgIHN0YXRpYyBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVy
TmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyBy
ZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24i
KTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRf
dCwgdWludDMyX3Q+IERlY29kZVR5cGU7CiAgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIHVpbnQzMl90IHBvbGljeUFjdGlv
bikKQEAgLTQxNywxNiArNDE4LDE2IEBAIHN0cnVjdCBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24g
OiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyCiAKIHN0cnVj
dCBDbG9zZSA6IENvcmVJUEM6OkFyZ3VtZW50czAgewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1l
c3NhZ2VJRCA9IENsb3NlSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgp
IHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkNsb3NlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJDbG9zZSIpOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6
OkFyZ3VtZW50czAgRGVjb2RlVHlwZTsKIH07CiAKIHN0cnVjdCBQcmVmZXJlbmNlc0RpZENoYW5n
ZSA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3Jl
Jj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IFByZWZlcmVuY2VzRGlkQ2hh
bmdlSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyBy
ZXR1cm4gIlByZWZlcmVuY2VzRGlkQ2hhbmdlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJp
bmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgp
OyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4g
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJQcmVmZXJlbmNlc0RpZENoYW5nZSIpOyB9CiAKICAg
ICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNl
c1N0b3JlJj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBQcmVmZXJlbmNlc0RpZENoYW5nZShj
b25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQpAQCAtNDM3LDggKzQzOCw4
IEBAIHN0cnVjdCBQcmVmZXJlbmNlc0RpZENoYW5nZSA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29u
c3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0CiAKIHN0cnVjdCBTZW5kRG91YmxlQW5kRmxvYXQg
OiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKICAgICBzdGF0aWMgY29uc3Qg
S2luZCBtZXNzYWdlSUQgPSBTZW5kRG91YmxlQW5kRmxvYXRJRDsKLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiU2VuZERvdWJsZUFuZEZsb2F0
IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkg
eyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJT
ZW5kRG91YmxlQW5kRmxvYXQiKTsgfQogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMy
PGRvdWJsZSwgZmxvYXQ+IERlY29kZVR5cGU7CiAgICAgU2VuZERvdWJsZUFuZEZsb2F0KGRvdWJs
ZSBkLCBmbG9hdCBmKQpAQCAtNDQ5LDggKzQ1MCw4IEBAIHN0cnVjdCBTZW5kRG91YmxlQW5kRmxv
YXQgOiBDb3JlSVBDOjpBcmd1bWVudHMyPGRvdWJsZSwgZmxvYXQ+IHsKIAogc3RydWN0IFNlbmRJ
bnRzIDogQ29yZUlQQzo6QXJndW1lbnRzMjxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3Qg
VmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4gPiY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNz
YWdlSUQgPSBTZW5kSW50c0lEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUo
KSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogbmFtZSgpIHsgcmV0dXJuICJTZW5kSW50cyI7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3Ry
aW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJu
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiU2VuZEludHMiKTsgfQogCiAgICAgdHlwZWRlZiBD
b3JlSVBDOjpBcmd1bWVudHMyPGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8
VmVjdG9yPHVpbnQ2NF90PiA+Jj4gRGVjb2RlVHlwZTsKICAgICBTZW5kSW50cyhjb25zdCBWZWN0
b3I8dWludDY0X3Q+JiBpbnRzLCBjb25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90PiA+JiBpbnRW
ZWN0b3JzKQpAQCAtNDYxLDggKzQ2Miw4IEBAIHN0cnVjdCBTZW5kSW50cyA6IENvcmVJUEM6OkFy
Z3VtZW50czI8Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxWZWN0CiAKIHN0
cnVjdCBDcmVhdGVQbHVnaW4gOiBDb3JlSVBDOjpBcmd1bWVudHMyPHVpbnQ2NF90LCBjb25zdCBX
ZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyY+IHsKICAgICBzdGF0aWMgY29uc3QgS2luZCBtZXNz
YWdlSUQgPSBDcmVhdGVQbHVnaW5JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJO
YW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0
IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiQ3JlYXRlUGx1Z2luIjsgfQorICAgIHN0YXRpYyBDb3Jl
SVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2Vp
dmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkg
eyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJDcmVhdGVQbHVnaW4iKTsgfQogCiAg
ICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMxPGJvb2wmPiBSZXBseTsKICAgICB0eXBlZGVm
IENvcmVJUEM6OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJh
bWV0ZXJzJj4gRGVjb2RlVHlwZTsKQEAgLTQ3NCw4ICs0NzUsOCBAQCBzdHJ1Y3QgQ3JlYXRlUGx1
Z2luIDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV2ViS2l0OjpQbHVnaW46
OlBhcmFtZQogCiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRz
Mjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQg
bWVzc2FnZUlEID0gUnVuSmF2YVNjcmlwdEFsZXJ0SUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIlJ1bkphdmFTY3JpcHRBbGVydCI7IH0K
KyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiUnVuSmF2
YVNjcmlwdEFsZXJ0Iik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMCBSZXBs
eTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czI8dWludDY0X3QsIGNvbnN0IFdURjo6
U3RyaW5nJj4gRGVjb2RlVHlwZTsKQEAgLTQ4Nyw4ICs0ODgsOCBAQCBzdHJ1Y3QgUnVuSmF2YVNj
cmlwdEFsZXJ0IDogQ29yZUlQQzo6QXJndW1lbnRzMjx1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJp
bmcmPiB7CiAKIHN0cnVjdCBHZXRQbHVnaW5zIDogQ29yZUlQQzo6QXJndW1lbnRzMTxib29sPiB7
CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gR2V0UGx1Z2luc0lEOwotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJO
YW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJHZXRQbHVn
aW5zIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1l
KCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6
OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNl
KCJHZXRQbHVnaW5zIik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mPiBSZXBseTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFy
Z3VtZW50czE8Ym9vbD4gRGVjb2RlVHlwZTsKQEAgLTUwMCw4ICs1MDEsOCBAQCBzdHJ1Y3QgR2V0
UGx1Z2lucyA6IENvcmVJUEM6OkFyZ3VtZW50czE8Ym9vbD4gewogCiBzdHJ1Y3QgR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5n
Jj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IEdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1l
KCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQorICAgIHN0YXRpYyBD
b3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJl
Y2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1l
KCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJHZXRQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbiIpOyB9CiAKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewogICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1Jl
ZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4pOwpAQCAtNTI0LDggKzUyNSw4IEBAIHN0cnVjdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiAKIHN0cnVj
dCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIDogQ29yZUlQQzo6QXJndW1lbnRzMCB7CiAgICAgc3Rh
dGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVzdE11bHRpcGxlQXR0cmlidXRlc0lEOwotICAg
IHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0
TXVsdGlwbGVBdHRyaWJ1dGVzIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAg
c3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KIAogICAgIHN0cnVj
dCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGVsYXllZFJlcGx5
PiB7CiAgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CkBAIC01NDQsOCArNTQ1LDgg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
IAogc3RydWN0IFRlc3RDb25uZWN0aW9uUXVldWUgOiBDb3JlSVBDOjpBcmd1bWVudHMxPHVpbnQ2
NF90PiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gVGVzdENvbm5lY3Rpb25R
dWV1ZUlEOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZWNlaXZlck5hbWUoKSB7IHJldHVybiBt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsg
cmV0dXJuICJUZXN0Q29ubmVjdGlvblF1ZXVlIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJp
bmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgp
OyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4g
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0Q29ubmVjdGlvblF1ZXVlIik7IH0KIAogICAg
IHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50NjRfdD4gRGVjb2RlVHlwZTsKICAgICBl
eHBsaWNpdCBUZXN0Q29ubmVjdGlvblF1ZXVlKHVpbnQ2NF90IHBsdWdpbklEKQpAQCAtNTU2LDgg
KzU1Nyw4IEBAIHN0cnVjdCBUZXN0Q29ubmVjdGlvblF1ZXVlIDogQ29yZUlQQzo6QXJndW1lbnRz
MTx1aW50NjRfdD4gewogCiBzdHJ1Y3QgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMgOiBDb3JlSVBD
OjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4gewogICAgIHN0YXRpYyBjb25z
dCBLaW5kIG1lc3NhZ2VJRCA9IFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ7Ci0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUo
KTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIlRlc3RQYXJhbWV0
ZXJBdHRyaWJ1dGVzIjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlKCJUZXN0UGFyYW1ldGVyQXR0cmlidXRlcyIpOyB9CiAKICAgICB0eXBlZGVmIENv
cmVJUEM6OkFyZ3VtZW50czM8dWludDY0X3QsIGRvdWJsZSwgZG91YmxlPiBEZWNvZGVUeXBlOwog
ICAgIFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKHVpbnQ2NF90IGZvbywgZG91YmxlIGJhciwgZG91
YmxlIGJheikKQEAgLTU2OSw4ICs1NzAsOCBAQCBzdHJ1Y3QgVGVzdFBhcmFtZXRlckF0dHJpYnV0
ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMzPHVpbnQ2NF90LCBkb3VibGUsIGRvdWJsZT4gewogI2lm
IFBMQVRGT1JNKE1BQykKIHN0cnVjdCBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbiA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmPiB7CiAgICAgc3RhdGlj
IGNvbnN0IEtpbmQgbWVzc2FnZUlEID0gRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb25JRDsK
LSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJl
Y2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAi
RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24iOyB9CisgICAgc3RhdGljIENvcmVJUEM6OlN0
cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1l
KCk7IH0KKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVy
biBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
Iik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBDb3JlSVBDOjpN
YWNoUG9ydCY+IERlY29kZVR5cGU7CiAgICAgZXhwbGljaXQgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpA
QCAtNTgzLDggKzU4NCw4IEBAIHN0cnVjdCBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbiA6
IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29yZUlQQzo6TWFjaFBvCiAjaWYgUExBVEZPUk0o
TUFDKQogc3RydWN0IEludGVycHJldEtleUV2ZW50IDogQ29yZUlQQzo6QXJndW1lbnRzMTx1aW50
MzJfdD4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJRCA9IEludGVycHJldEtleUV2
ZW50SUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBuYW1lKCkgeyBy
ZXR1cm4gIkludGVycHJldEtleUV2ZW50IjsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJJbnRlcnByZXRLZXlFdmVudCIpOyB9CiAKICAgICB0eXBl
ZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
PiBSZXBseTsKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8dWludDMyX3Q+IERlY29k
ZVR5cGU7CkBAIC01OTgsOCArNTk5LDggQEAgc3RydWN0IEludGVycHJldEtleUV2ZW50IDogQ29y
ZUlQQzo6QXJndW1lbnRzMTx1aW50MzJfdD4gewogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRV
UkUpCiBzdHJ1Y3QgRGVwcmVjYXRlZE9wZXJhdGlvbiA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29u
c3QgQ29yZUlQQzo6RHVtbXlUeXBlJj4gewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJ
RCA9IERlcHJlY2F0ZWRPcGVyYXRpb25JRDsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcmVjZWl2
ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Ci0gICAgc3RhdGljIGNv
bnN0IGNoYXIqIG5hbWUoKSB7IHJldHVybiAiRGVwcmVjYXRlZE9wZXJhdGlvbiI7IH0KKyAgICBz
dGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiRGVwcmVjYXRlZE9w
ZXJhdGlvbiIpOyB9CiAKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgQ29y
ZUlQQzo6RHVtbXlUeXBlJj4gRGVjb2RlVHlwZTsKICAgICBleHBsaWNpdCBEZXByZWNhdGVkT3Bl
cmF0aW9uKGNvbnN0IENvcmVJUEM6OkR1bW15VHlwZSYgZHVtbXkpCkBAIC02MTIsOCArNjEzLDgg
QEAgc3RydWN0IERlcHJlY2F0ZWRPcGVyYXRpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0
IENvcmVJUEM6OkR1bW15VHlwZSY+IHsKICNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUp
CiBzdHJ1Y3QgRXhwZXJpbWVudGFsT3BlcmF0aW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBDb3JlSVBDOjpEdW1teVR5cGUmPiB7CiAgICAgc3RhdGljIGNvbnN0IEtpbmQgbWVzc2FnZUlE
ID0gRXhwZXJpbWVudGFsT3BlcmF0aW9uSUQ7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHJlY2Vp
dmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBuYW1lKCkgeyByZXR1cm4gIkV4cGVyaW1lbnRhbE9wZXJhdGlvbiI7IH0KKyAg
ICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJu
IG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSgiRXhwZXJpbWVu
dGFsT3BlcmF0aW9uIik7IH0KIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxjb25z
dCBDb3JlSVBDOjpEdW1teVR5cGUmPiBEZWNvZGVUeXBlOwogICAgIGV4cGxpY2l0IEV4cGVyaW1l
bnRhbE9wZXJhdGlvbihjb25zdCBDb3JlSVBDOjpEdW1teVR5cGUmIGR1bW15KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbnRleHRNZXNzYWdl
S2luZHMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb250ZXh0
TWVzc2FnZUtpbmRzLmgKaW5kZXggZTgxOTRiNTg3YjNkYjlhYzE0YzkxN2M2NDdiZWE4ZjM1NmVi
N2ZmMS4uNjMxZDA1M2ViNTliNmEwMzc3YjE3MzVkZTJiZDBkZjQ4MTUxMjEyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbnRleHRNZXNzYWdl
S2luZHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29u
dGV4dE1lc3NhZ2VLaW5kcy5oCkBAIC0yOSw2ICsyOSw3IEBACiAvLyBNZXNzYWdlcyBzZW50IGZy
b20gdGhlIGluamVjdGVkIGJ1bmRsZSB0byB0aGUgV2ViQ29udGV4dC4KIAogI2luY2x1ZGUgIk1l
c3NhZ2VJRC5oIgorI2luY2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29udGV4dExlZ2FjeU1lc3NhZ2UgewogCkBAIC00Myw2ICs0NCwxMCBAQCBuYW1lc3BhY2UgQ29y
ZUlQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IE1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbnRleHRM
ZWdhY3lNZXNzYWdlOjpLaW5kPiB7CiAgICAgc3RhdGljIGNvbnN0IE1lc3NhZ2VDbGFzcyBtZXNz
YWdlQ2xhc3MgPSBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5OworICAgIHN0YXRpYyBTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4g
U3RyaW5nUmVmZXJlbmNlKCJXZWJDb250ZXh0TGVnYWN5TWVzc2FnZSIpOworICAgIH0KIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCmluZGV4IDZjOTljODViNmM4Y2YzNjA1ZWQwZjY2YWQyZWNiMzc1NThhMDc3
MDguLmFhMjM3NDhkMjdmNDk3NWU2ZmY4ODc0NGFlZWUxNTI0Y2VhMjkyMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQpAQCAtMzEsNiArMzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlci5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1h
cC5oIFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VTZW5kZXIuaCBcCisgICAgUGxhdGZv
cm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaCBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwK
ICAgICBQbGF0Zm9ybS9Nb2R1bGUuaCBcCiAgICAgUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oIFwKQEAgLTM5Miw2ICszOTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VEZWNvZGVyLmNwcCBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlRW5jb2Rlci5jcHAgXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFw
LmNwcCBcCisgICAgUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIFwKICAgICBQ
bGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcCBcCiAgICAgUGxh
dGZvcm0vV29ya1F1ZXVlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAKaW5kZXggMWNiZTM0NTAyZTNmNGIyMjU4ZGNkNjQ4NjJmMzM5MzJjMGUwYTA2Yi4uMmYyMjcz
OTNhY2UzNTg5OTdjYjUzZTg2YmYzNDJjNTcwYWVmNzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRl
eHQuaCIKIAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKKyNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgpAQCAtMzYsNiArMzcsNyBA
QAogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRV
c2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtMTI5LDkgKzEzMSw5IEBAIFdl
YkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCwgY29uc3QgU3Ry
aW5nJiBpbmplY3RlZEJ1bmRsZVBhCiAgICAgLCBtX3VzZXNOZXR3b3JrUHJvY2VzcyhmYWxzZSkK
ICNlbmRpZgogewotICAgIGRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViQ29udGV4dCwgdGhpcyk7Ci0gICAgZGVwcmVjYXRlZEFkZE1lc3NhZ2VSZWNl
aXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LCB0aGlzKTsKLSAgICBkZXBy
ZWNhdGVkQWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRM
ZWdhY3ksIHRoaXMpOworICAgIGFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29udGV4
dDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKKyAgICBhZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OkRvd25sb2FkUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cisg
ICAgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbnRl
eHRMZWdhY3lNZXNzYWdlOjpLaW5kPjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIAog
ICAgIC8vIE5PVEU6IFRoZXNlIHN1Yi1vYmplY3RzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYWZ0ZXIg
bV9tZXNzYWdlUmVjZWl2ZXJNYXAuLgogICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKTsKQEAgLTc4
NSw2ICs3ODcsMTEgQEAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gV2ViQ29udGV4
dDo6cGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpCiAgICAgcmV0dXJuIG1pbWVUeXBlczsKIH0K
IAordm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciogbWVz
c2FnZVJlY2VpdmVyKQoreworICAgIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmFkZE1lc3NhZ2VSZWNl
aXZlcihtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlUmVjZWl2ZXIpOworfQorCiB2b2lkIFdl
YkNvbnRleHQ6OmRlcHJlY2F0ZWRBZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNs
YXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2
ZXIpCiB7CiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGVwcmVjYXRlZEFkZE1lc3NhZ2VSZWNl
aXZlcihtZXNzYWdlQ2xhc3MsIG1lc3NhZ2VSZWNlaXZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuaAppbmRleCBjZWU2ODljYmFhNGI2NDFlNTk3OTgxNzYyODFlYjE2MWRiMTVj
ODM5Li4zZDlmMjU0NThhZGIzYTE3OTgzYTk4YWQ5YTgwOThkYWZjZGE2MjMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0Kj4mIGFsbENvbnRleHRzKCk7CiAKKyAg
ICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKik7CiAgICAgdm9pZCBkZXBy
ZWNhdGVkQWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcywgQ29yZUlQQzo6
TWVzc2FnZVJlY2VpdmVyKik7CiAgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
ICAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKaW5kZXggYzMxMWM0ZjA5NWFjZThiNjZiOWIyNThkODI5YWUzZTM3MDU1NTE3My4uYzQy
OTM0MzdmNjU4YWU2YWY0ODVmMTg1ZmZlYzE4NTg3OGQ1NjY1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjE4LDcgKzIxOCw3IEBAIHByaXZhdGU6
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCB0eXBlbmFtZSBUPgogYm9vbCBXZWJQcm9jZXNzUHJveHk6
OmRlcHJlY2F0ZWRTZW5kKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25z
dCBUJiBhcmd1bWVudHMpCiB7Ci0gICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBl
bmNvZGVyID0gQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIGRlc3RpbmF0
aW9uSUQpOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciA9IENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoQ29yZUlQQzo6TWVzc2FnZUtpbmRUcmFpdHM8
RT46Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgIiIsIGRlc3RpbmF0aW9uSUQpOwogICAgIGVuY29k
ZXItPmVuY29kZShhcmd1bWVudHMpOwogCiAgICAgcmV0dXJuIHNlbmRNZXNzYWdlKENvcmVJUEM6
Ok1lc3NhZ2VJRChtZXNzYWdlSUQpLCBlbmNvZGVyLnJlbGVhc2UoKSwgMCk7CkBAIC0yMjcsNyAr
MjI3LDcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmRlcHJlY2F0ZWRTZW5kKEUgbWVzc2FnZUlE
LCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25zdAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGJv
b2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3Rp
bmF0aW9uSUQsIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpCiB7Ci0gICAgT3duUHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyID0gQ29yZUlQQzo6TWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIGRlc3RpbmF0aW9uSUQpOworICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlciA9IENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyOjpjcmVhdGUoVDo6cmVj
ZWl2ZXJOYW1lKCksICIiLCBkZXN0aW5hdGlvbklEKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobWVz
c2FnZSk7CiAKICAgICByZXR1cm4gc2VuZE1lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKFQ6Om1l
c3NhZ2VJRCksIGVuY29kZXIucmVsZWFzZSgpLCBtZXNzYWdlU2VuZEZsYWdzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlZTg4
MWZkN2NiNWNmNjNmOGRmZTljYjc4MDliNTYyYTMxNTMwZWZjLi4wY2ZmZjY0ZjI2NDU5MWVjMzky
YmYzMjEwYTI4NzVmN2E1YmU1YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTcsNiArMTU3LDggQEAKIAkJMUE2NDI1Njgx
MkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2NDI1NjYxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tp
bmdTdG9yZS5oICovOyB9OwogCQkxQTY0MjU2OTEyREU0MkVDMDBDQUFFMkMgLyogQmFja2luZ1N0
b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
NjQyNTY3MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuY3BwICovOyB9OwogCQkxQTY0
MjkyRDEyREU1Rjk4MDBDQUFFMkMgLyogQmFja2luZ1N0b3JlTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2NDI5MkMxMkRFNUY5ODAwQ0FBRTJD
IC8qIEJhY2tpbmdTdG9yZU1hYy5tbSAqLzsgfTsKKwkJMUE2QkI3NkUxNjMwRUJCNjAwREQxNkRC
IC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTZCQjc2QzE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNl
LmNwcCAqLzsgfTsKKwkJMUE2QkI3NkYxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5j
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2QkI3
NkQxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5oICovOyB9OwogCQkxQTZGOUY5
MDExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RjhFMTFFMTNFRkMwMERCMTM3MSAvKiBDb21t
YW5kTGluZS5oICovOyB9OwogCQkxQTZGOUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFuZExp
bmVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCAqLzsgfTsKIAkJ
MUE2RkEwMUUxMUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEwMUQxMUUxNTI2MzAw
REIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tICovOyB9OwpAQCAtMTI5MCw2ICsxMjkyLDgg
QEAKIAkJMUE2NDI1NjYxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNraW5nU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE2NDI1NjcxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYWNraW5nU3RvcmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY0MjkyQzEyREU1Rjk4MDBDQUFFMkMg
LyogQmFja2luZ1N0b3JlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQmFja2luZ1N0b3JlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTZCQjc2QzE2MzBFQkI2MDBERDE2REIgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ1JlZmVyZW5jZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNkJCNzZEMTYzMEVCQjYwMEREMTZEQiAvKiBTdHJpbmdS
ZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nUmVmZXJl
bmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkY5RjhFMTFFMTNFRkMwMERC
MTM3MSAvKiBDb21tYW5kTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b21tYW5kTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGOUZCNjExRTE0
MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29tbWFuZExpbmVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTZGQTAxRDExRTE1MjYzMDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW5NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzTWFpbk1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDMsNiArMjgwNyw4IEBACiAJ
CQkJMUEzRUVEMEMxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgKi8s
CiAJCQkJMUEzRUVEMEQxNjFBNTM1MzAwQUVCNEY1IC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5oICov
LAogCQkJCTFBMTE5QTk0MTI3Qjc5NjIwMEE5RUNCMSAvKiBNZXNzYWdlU2VuZGVyLmggKi8sCisJ
CQkJMUE2QkI3NkMxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgKi8sCisJ
CQkJMUE2QkI3NkQxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBDb3JlSVBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ2
OTgsNiArNDcwNCw3IEBACiAJCQkJMUEyMzI4RkYxNjJDODY2QTAwRDgyRjdBIC8qIE1lc3NhZ2VF
bmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTIzMjkwMzE2MkM4NjczMDBEODJGN0EgLyog
TWVzc2FnZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMzYxODNFMTYzMTI2REEwMEE5
OURERSAvKiBDb25uZWN0aW9uU3RhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNkJCNzZGMTYz
MEVCQjYwMEREMTZEQiAvKiBTdHJpbmdSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTY0
NCw2ICs1NjUxLDcgQEAKIAkJCQkxQTIzMjhGRTE2MkM4NjZBMDBEODJGN0EgLyogTWVzc2FnZUVu
Y29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyMzI5MDIxNjJDODY3MzAwRDgyRjdBIC8q
IE1lc3NhZ2VEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMzYxODNEMTYzMTI2REEw
MEE5OURERSAvKiBDb25uZWN0aW9uU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUE2QkI3
NkUxNjMwRUJCNjAwREQxNkRCIC8qIFN0cmluZ1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCAwNmEzZmRkMGJjODMzMGFjYzZlMzczZDYx
NWViYzAzYTEzMjIyMjFlLi4wNTdjYmYzZGIzNmZlODNkY2I1Mzk2OGQwMDBhNmVlNzQ5MTljNTli
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC00MTI5LDYgKzQxMjksMTQgQEAKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxDb3JlSVBDXE1lc3NhZ2VTZW5kZXIuaCIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRm
b3JtXENvcmVJUENcU3RyaW5nUmVmZXJlbmNlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXENvcmVJUENcU3RyaW5nUmVm
ZXJlbmNlLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CiAJCQkJPEZpbHRlcgogCQkJCQlOYW1lPSJ3
aW4iCiAJCQkJCT4K
</data>
<flag name="review"
          id="183037"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>