<?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>125886</bug_id>
          
          <creation_ts>2013-12-17 16:40:43 -0800</creation_ts>
          <short_desc>[WK2] Rename WebURLRequest to API::URLRequest</short_desc>
          <delta_ts>2013-12-17 16:51:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960729</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-17 16:40:43 -0800</bug_when>
    <thetext>[WK2] Rename WebURLRequest to API::URLRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960731</commentid>
    <comment_count>1</comment_count>
      <attachid>219472</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-17 16:41:35 -0800</bug_when>
    <thetext>Created attachment 219472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960732</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-17 16:43:45 -0800</bug_when>
    <thetext>Attachment 219472 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/API/c/WKSharedAPICast.h&apos;, u&apos;Source/WebKit2/Shared/API/c/WKURLRequest.cpp&apos;, u&apos;Source/WebKit2/Shared/API/c/mac/WKURLRequestNS.mm&apos;, u&apos;Source/WebKit2/Shared/APIString.h&apos;, u&apos;Source/WebKit2/Shared/APIURLRequest.cpp&apos;, u&apos;Source/WebKit2/Shared/APIURLRequest.h&apos;, u&apos;Source/WebKit2/Shared/UserData.cpp&apos;, u&apos;Source/WebKit2/Shared/UserMessageCoders.h&apos;, u&apos;Source/WebKit2/Shared/WebURLRequest.cpp&apos;, u&apos;Source/WebKit2/Shared/WebURLRequest.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKDownload.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKNavigationDataRef.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebInspectorProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPolicyClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebUIClient.cpp&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebKit2/UIProcess/API/C/WKContext.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 24 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>960737</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-17 16:51:30 -0800</bug_when>
    <thetext>Committed r160737: &lt;http://trac.webkit.org/changeset/160737&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219472</attachid>
            <date>2013-12-17 16:41:35 -0800</date>
            <delta_ts>2013-12-17 16:42:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125886-20131217164135.patch</filename>
            <type>text/plain</type>
            <size>44124</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDczNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDEzLTEyLTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl0gUmVuYW1lIFdlYlVSTFJlcXVl
c3QgdG8gQVBJOjpVUkxSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjU4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAg
KFdlYktpdDo6dG9BUEkpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV0tVUkxSZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLVVJMUmVxdWVz
dENyZWF0ZVdpdGhXS1VSTCk6CisgICAgICAgIChXS1VSTFJlcXVlc3RTZXREZWZhdWx0VGltZW91
dEludGVydmFsKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvbWFjL1dLVVJMUmVxdWVzdE5TLm1t
OgorICAgICAgICAoV0tVUkxSZXF1ZXN0Q3JlYXRlV2l0aE5TVVJMUmVxdWVzdCk6CisgICAgICAg
ICogU2hhcmVkL0FQSVN0cmluZy5oOgorICAgICAgICAqIFNoYXJlZC9BUElVUkxSZXF1ZXN0LmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwLgor
ICAgICAgICAoQVBJOjpVUkxSZXF1ZXN0OjpVUkxSZXF1ZXN0KToKKyAgICAgICAgKEFQSTo6VVJM
UmVxdWVzdDo6ZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgIChBUEk6OlVSTFJlcXVl
c3Q6OnNldERlZmF1bHRUaW1lb3V0SW50ZXJ2YWwpOgorICAgICAgICAoQVBJOjpVUkxSZXF1ZXN0
OjplbmNvZGUpOgorICAgICAgICAoQVBJOjpVUkxSZXF1ZXN0OjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9BUElVUkxSZXF1ZXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJVUkxSZXF1ZXN0LmguCisgICAgICAgIChBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgICogU2hhcmVkL1VzZXJEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlckRhdGE6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2Fn
ZUVuY29kZXI6OmJhc2VFbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZURlY29k
ZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViVVJMUmVxdWVzdC5oOiBSZW1vdmVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdLRG93bmxvYWRDb3B5UmVxdWVzdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGFSZWYuY3BwOgorICAgICAg
ICAoV0tOYXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVlc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAo
LVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZFJlcXVlc3Q6dXNlckRhdGE6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBvbGlj
eUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvbGljeUNsaWVudDo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBvbGljeUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmNyZWF0
ZU5ld1BhZ2UpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291cmNl
TG9hZENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudDo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorCiAyMDEzLTEyLTE3ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBEYXRhYmFzZVByb2Nl
c3M6IFBpcGUgdGhyb3VnaCBvYmplY3Qgc3RvcmUgSURzIGFuZCB0cmFuc2FjdGlvbiBtb2RlIGZv
ciAib3BlblRyYW5zYWN0aW9uIgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVN0cmlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElTdHJpbmcuaAkocmV2
aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVN0cmluZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBBUEkgewogCi1jbGFzcyBT
dHJpbmcgRklOQUwgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpT
dHJpbmc+IHsKK2NsYXNzIFN0cmluZyBGSU5BTCA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6
VHlwZTo6U3RyaW5nPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nPiBj
cmVhdGVOdWxsKCkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMUmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSVVSTFJlcXVl
c3QuY3BwCShyZXZpc2lvbiAxNjA2OTEpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJV
UkxSZXF1ZXN0LmNwcDoxNjA2OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMUmVx
dWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqICBXZWJVUkxS
ZXF1ZXN0LmNwcAorICogIFdlYktpdDIKKyAqCisgKiAgQ3JlYXRlZCBieSBTYW0gV2VpbmlnIG9u
IDgvMzAvMTAuCisgKiAgQ29weXJpZ2h0IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFJlcXVlc3Q6OldlYlVSTFJlcXVl
c3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorICAgIDogbV9yZXF1ZXN0KHJlcXVl
c3QpCit7Cit9CisKK2RvdWJsZSBXZWJVUkxSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFs
KCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpkZWZhdWx0VGltZW91dEludGVydmFs
KCk7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZWFsbHkgYmUgb24gV2Vi
Q29udGV4dC4KK3ZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbChk
b3VibGUgdGltZW91dEludGVydmFsKQoreworICAgIFJlc291cmNlUmVxdWVzdDo6c2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOworCisgICAgY29uc3QgVmVjdG9yPFdl
YkNvbnRleHQqPiYgY29udGV4dHMgPSBXZWJDb250ZXh0OjphbGxDb250ZXh0cygpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY29udGV4dHMuc2l6ZSgpOyArK2kpCisgICAgICAgIGNvbnRl
eHRzW2ldLT5zZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElVUkxSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJVVJMUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElVUkxSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMSw1MiBAQAogLyoK
LSAqICBXZWJVUkxSZXF1ZXN0LmNwcAotICogIFdlYktpdDIKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogIENyZWF0ZWQgYnkgU2Ft
IFdlaW5pZyBvbiA4LzMwLzEwLgotICogIENvcHlyaWdodCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
VVJMUmVxdWVzdC5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkFy
Z3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK25hbWVzcGFjZSBBUEkgewogCi1XZWJV
UkxSZXF1ZXN0OjpXZWJVUkxSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
K1VSTFJlcXVlc3Q6OlVSTFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiB7CiB9CiAKLWRvdWJsZSBXZWJVUkxSZXF1ZXN0Ojpk
ZWZhdWx0VGltZW91dEludGVydmFsKCkKK2RvdWJsZSBVUkxSZXF1ZXN0OjpkZWZhdWx0VGltZW91
dEludGVydmFsKCkKIHsKICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpkZWZhdWx0VGltZW91
dEludGVydmFsKCk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZWFsbHkg
YmUgb24gV2ViQ29udGV4dC4KLXZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJ
bnRlcnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQordm9pZCBVUkxSZXF1ZXN0OjpzZXREZWZh
dWx0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiB7CiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCk7CiAK
QEAgLTM2LDQgKzU1LDE5IEBAIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0RGVmYXVsdFRpbWVvdXRJ
bnQKICAgICAgICAgY29udGV4dHNbaV0tPnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFs
KHRpbWVvdXRJbnRlcnZhbCk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAordm9pZCBVUkxS
ZXF1ZXN0OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVlc3QoKTsKK30KKworYm9vbCBVUkxSZXF1ZXN0Ojpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1
bHQpCit7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJlc3VsdCA9
IGNyZWF0ZShyZXF1ZXN0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
QVBJCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMUmVxdWVzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElVUkxSZXF1ZXN0LmgJKHJldmlzaW9uIDE2
MDY5MSkJKGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaDoxNjA2OTEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJVVJMUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlVSTFJlcXVlc3RfaAor
I2RlZmluZSBXZWJVUkxSZXF1ZXN0X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlVSTFJlcXVlc3QgOiBwdWJsaWMgQVBJ
OjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVUkxSZXF1ZXN0PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViVVJMUmVxdWVzdChyZXF1ZXN0KSk7CisgICAgfQorCisgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3Q7IH0KKworICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCgpOyAv
LyBNYXkgcmV0dXJuIDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZhdWx0LgorICAgIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRUaW1lb3V0SW50ZXJ2YWwoZG91YmxlKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBXZWJVUkxSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwor
CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViVVJMUmVxdWVzdF9oCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJVVJMUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElVUkxSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElVUkxSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDIwICsyMywy
NSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
V2ViVVJMUmVxdWVzdF9oCi0jZGVmaW5lIFdlYlVSTFJlcXVlc3RfaAorI2lmbmRlZiBBUElVUkxS
ZXF1ZXN0X2gKKyNkZWZpbmUgQVBJVVJMUmVxdWVzdF9oCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKLW5hbWVzcGFjZSBXZWJLaXQgeworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBB
cmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CiAKLWNsYXNzIFdlYlVS
TFJlcXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVUkxS
ZXF1ZXN0PiB7CituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgVVJMUmVxdWVzdCA6IHB1YmxpYyBP
YmplY3RJbXBsPE9iamVjdDo6VHlwZTo6VVJMUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlVSTFJlcXVlc3Q+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8VVJMUmVxdWVzdD4gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVVJMUmVxdWVzdChyZXF1ZXN0KSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVVJMUmVxdWVzdChyZXF1ZXN0KSk7CiAgICAgfQogCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7
IHJldHVybiBtX3JlcXVlc3Q7IH0KQEAgLTQ0LDEyICs0OSwxNSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGRvdWJsZSBkZWZhdWx0VGltZW91dEludGVydmFsKCk7IC8vIE1heSByZXR1cm4gMCB3aGVu
IHVzaW5nIHBsYXRmb3JtIGRlZmF1bHQuCiAgICAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdFRpbWVv
dXRJbnRlcnZhbChkb3VibGUpOwogCisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
LCBSZWZQdHI8T2JqZWN0PiYpOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYlVSTFJlcXVl
c3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgZXhwbGljaXQgVVJMUmVx
dWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30g
Ly8gbmFtZXNwYWNlIEFQSQogCi0jZW5kaWYgLy8gV2ViVVJMUmVxdWVzdF9oCisjZW5kaWYgLy8g
QVBJVVJMUmVxdWVzdF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAJKHJldmlz
aW9uIDE2MDczNikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBUElHZW9tZXRyeS5oIgogI2lu
Y2x1ZGUgIkFQSU51bWJlci5oIgogI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgIkFQ
SVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkFy
Z3VtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCkBAIC0xNjks
NiArMTcwLDEwIEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEUKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6VVJMUmVx
dWVzdDoKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpVUkxSZXF1ZXN0Jj4ob2JqZWN0
KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBBUEk6Ok9iamVj
dDo6VHlwZTo6VUludDY0OgogICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlVJbnQ2NCY+
KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOwogICAgICAgICBicmVhazsKQEAgLTI5Niw2ICszMDEs
MTEgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RAogICAgICAgICBi
cmVhazsKICAgICB9CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpVUkxSZXF1ZXN0Ogor
ICAgICAgICBpZiAoIUFQSTo6VVJMUmVxdWVzdDo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBBUEk6
Ok9iamVjdDo6VHlwZTo6VUludDY0OgogICAgICAgICBpZiAoIUFQSTo6VUludDY0OjpkZWNvZGUo
ZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCShyZXZpc2lvbiAxNjA3MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQSUdlb21ldHJ5LmgiCiAjaW5jbHVkZSAi
QVBJTnVtYmVyLmgiCiAjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCisjaW5jbHVkZSAiQVBJVVJMUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50
RW5jb2Rlci5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTQ0LDE3ICs0NSwxNiBA
QAogI2luY2x1ZGUgIldlYlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVl
c3QuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250
ZW50VVJMUGF0dGVybi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gICAtIE51bGwgLT4g
TnVsbAotLy8gICAtIEFycmF5IC0+IEFycmF5CisvLyAgIC0gQVBJOjpBcnJheSAtPiBBUEk6OkFy
cmF5CiAvLyAgIC0gRGljdGlvbmFyeSAtPiBEaWN0aW9uYXJ5CiAvLyAgIC0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIC0+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQotLy8gICAtIFN0cmluZyAtPiBTdHJp
bmcKKy8vICAgLSBBUEk6OlN0cmluZyAtPiBBUEk6OlN0cmluZwogLy8gICAtIFVzZXJDb250ZW50
VVJMUGF0dGVybiAtPiBVc2VyQ29udGVudFVSTFBhdHRlcm4KIC8vICAgLSBXZWJDZXJ0aWZpY2F0
ZUluZm8gLT4gV2ViQ2VydGlmaWNhdGVJbmZvCiAvLyAgIC0gQVBJOjpEYXRhIC0+IEFQSTo6RGF0
YQpAQCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC8vICAgLSBXZWJSZW5kZXJP
YmplY3QgLT4gV2ViUmVuZGVyT2JqZWN0CiAvLyAgIC0gQVBJOjpVSW50NjQgLT4gQVBJOjpVSW50
NjQKIC8vICAgLSBXZWJVUkwgLT4gV2ViVVJMCi0vLyAgIC0gV2ViVVJMUmVxdWVzdCAtPiBXZWJV
UkxSZXF1ZXN0CisvLyAgIC0gQVBJOjpVUkxSZXF1ZXN0IC0+IEFQSTo6VVJMUmVxdWVzdAogLy8g
ICAtIFdlYlVSTFJlc3BvbnNlIC0+IFdlYlVSTFJlc3BvbnNlCiAvLyAgIC0gV2ViRXJyb3IgLT4g
V2ViRXJyb3IKIApAQCAtMTc3LDcgKzE3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlVSTFJl
cXVlc3Q6IHsKLSAgICAgICAgICAgIFdlYlVSTFJlcXVlc3QqIHVybFJlcXVlc3RPYmplY3QgPSBz
dGF0aWNfY2FzdDxXZWJVUkxSZXF1ZXN0Kj4obV9yb290KTsKKyAgICAgICAgICAgIEFQSTo6VVJM
UmVxdWVzdCogdXJsUmVxdWVzdE9iamVjdCA9IHN0YXRpY19jYXN0PEFQSTo6VVJMUmVxdWVzdCo+
KG1fcm9vdCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHVybFJlcXVlc3RPYmplY3QtPnJlc291
cmNlUmVxdWVzdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTI0
MiwxOCArMjQyLDE4IEBAIHByb3RlY3RlZDoKIAogLy8gSGFuZGxlcwogLy8gICAtIE51bGwgLT4g
TnVsbAotLy8gICAtIEFycmF5IC0+IEFycmF5CisvLyAgIC0gQVBJOjpBcnJheSAtPiBBUEk6OkFy
cmF5CiAvLyAgIC0gRGljdGlvbmFyeSAtPiBEaWN0aW9uYXJ5CiAvLyAgIC0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIC0+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQotLy8gICAtIFN0cmluZyAtPiBTdHJp
bmcKKy8vICAgLSBBUEk6OlN0cmluZyAtPiBBUEk6OlN0cmluZwogLy8gICAtIFVzZXJDb250ZW50
VVJMUGF0dGVybiAtPiBVc2VyQ29udGVudFVSTFBhdHRlcm4KIC8vICAgLSBXZWJDZXJ0aWZpY2F0
ZUluZm8gLT4gV2ViQ2VydGlmaWNhdGVJbmZvCi0vLyAgIC0gV2ViRGF0YSAtPiBXZWJEYXRhCisv
LyAgIC0gQVBJOjpEYXRhIC0+IEFQSTo6RGF0YQogLy8gICAtIEFQSTo6RG91YmxlIC0+IEFQSTo6
RG91YmxlCiAvLyAgIC0gV2ViSW1hZ2UgLT4gV2ViSW1hZ2UKIC8vICAgLSBBUEk6OlVJbnQ2NCAt
PiBBUEk6OlVJbnQ2NAogLy8gICAtIFdlYlVSTCAtPiBXZWJVUkwKLS8vICAgLSBXZWJVUkxSZXF1
ZXN0IC0+IFdlYlVSTFJlcXVlc3QKKy8vICAgLSBBUEk6OlVSTFJlcXVlc3QgLT4gQVBJOjpVUkxS
ZXF1ZXN0CiAvLyAgIC0gV2ViVVJMUmVzcG9uc2UgLT4gV2ViVVJMUmVzcG9uc2UKIC8vICAgLSBX
ZWJFcnJvciAtPiBXZWJFcnJvcgogCkBAIC00NjQsNyArNDY0LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlcXVlc3QpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0
KTsKKyAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKHJl
cXVlc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6
Ok9iamVjdDo6VHlwZTo6VVJMUmVzcG9uc2U6IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJVUkxSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViVVJMUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE2MDczNikKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJVUkxSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0v
KgotICogIFdlYlVSTFJlcXVlc3QuY3BwCi0gKiAgV2ViS2l0MgotICoKLSAqICBDcmVhdGVkIGJ5
IFNhbSBXZWluaWcgb24gOC8zMC8xMC4KLSAqICBDb3B5cmlnaHQgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXZWJVUkxSZXF1ZXN0LmgiCi0KLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViVVJMUmVxdWVz
dDo6V2ViVVJMUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBt
X3JlcXVlc3QocmVxdWVzdCkKLXsKLX0KLQotZG91YmxlIFdlYlVSTFJlcXVlc3Q6OmRlZmF1bHRU
aW1lb3V0SW50ZXJ2YWwoKQotewotICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6OmRlZmF1bHRU
aW1lb3V0SW50ZXJ2YWwoKTsKLX0KLQotLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJl
YWxseSBiZSBvbiBXZWJDb250ZXh0Lgotdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXREZWZhdWx0VGlt
ZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCi17Ci0gICAgUmVzb3VyY2VSZXF1
ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCk7Ci0KLSAgICBj
b25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBjb250ZXh0cyA9IFdlYkNvbnRleHQ6OmFsbENvbnRl
eHRzKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb250ZXh0cy5zaXplKCk7ICsraSkK
LSAgICAgICAgY29udGV4dHNbaV0tPnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKHRp
bWVvdXRJbnRlcnZhbCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5oCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlVSTFJlcXVlc3RfaAotI2RlZmluZSBXZWJV
UkxSZXF1ZXN0X2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYlVSTFJlcXVlc3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpVUkxSZXF1ZXN0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViVVJMUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVVJM
UmVxdWVzdChyZXF1ZXN0KSk7Ci0gICAgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLQot
ICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCgpOyAvLyBNYXkgcmV0dXJu
IDAgd2hlbiB1c2luZyBwbGF0Zm9ybSBkZWZhdWx0LgotICAgIHN0YXRpYyB2b2lkIHNldERlZmF1
bHRUaW1lb3V0SW50ZXJ2YWwoZG91YmxlKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJV
UkxSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotCi0gICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gV2ViVVJMUmVxdWVzdF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSU51bWJlci5oIgogI2luY2x1ZGUgIkFQ
SVN0cmluZy5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJJbWFnZU9w
dGlvbnMuaCIKICNpbmNsdWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgogI2luY2x1
ZGUgIldLQmFzZS5oIgpAQCAtNDYsNyArNDcsNiBAQAogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25z
LmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJVUkwuaCIK
LSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRSZWN0Lmg+CkBAIC04MCw3ICs4MCw2IEBAIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBXZWJVUkxSZXF1ZXN0OwogY2xhc3MgV2ViVVJMUmVz
cG9uc2U7CiBjbGFzcyBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm47CiAKQEAgLTExMiw3ICsxMTEs
NyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tTdHJpbmdSZWYsIEFQSTo6U3RyCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tUeXBlUmVmLCBBUEk6Ok9iamVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VJ
bnQ2NFJlZiwgQVBJOjpVSW50NjQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tVUkxSZWYsIFdlYlVS
TCkKLVdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlcXVlc3RSZWYsIFdlYlVSTFJlcXVlc3QpCitX
S19BRERfQVBJX01BUFBJTkcoV0tVUkxSZXF1ZXN0UmVmLCBBUEk6OlVSTFJlcXVlc3QpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tVUkxSZXNwb25zZVJlZiwgV2ViVVJMUmVzcG9uc2UpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tVc2VyQ29udGVudFVSTFBhdHRlcm5SZWYsIFdlYlVzZXJDb250ZW50VVJM
UGF0dGVybikKIApAQCAtMjA1LDkgKzIwNCw5IEBAIGlubGluZSBQcm94eWluZ1JlZlB0cjxXZWJF
cnJvcj4gdG9BUEkoY28KICAgICByZXR1cm4gUHJveHlpbmdSZWZQdHI8V2ViRXJyb3I+KFdlYkVy
cm9yOjpjcmVhdGUoZXJyb3IpKTsKIH0KIAotaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYlVSTFJl
cXVlc3Q+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK2lu
bGluZSBQcm94eWluZ1JlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHRvQVBJKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gUHJveHlpbmdSZWZQdHI8
V2ViVVJMUmVxdWVzdD4oV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3QpKTsKKyAgICByZXR1
cm4gUHJveHlpbmdSZWZQdHI8QVBJOjpVUkxSZXF1ZXN0PihBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0
ZShyZXF1ZXN0KSk7CiB9CiAKIGlubGluZSBQcm94eWluZ1JlZlB0cjxXZWJVUkxSZXNwb25zZT4g
dG9BUEkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNwcAkocmV2aXNpb24g
MTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9VUkwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0zNSwxMiAr
MzUsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tVUkxSZXF1ZXN0
R2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViVVJMUmVxdWVzdDo6QVBJVHlwZSk7
CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6VVJMUmVxdWVzdDo6QVBJVHlwZSk7CiB9CiAKIFdLVVJM
UmVxdWVzdFJlZiBXS1VSTFJlcXVlc3RDcmVhdGVXaXRoV0tVUkwoV0tVUkxSZWYgdXJsKQogewot
ICAgIHJldHVybiB0b0FQSShXZWJVUkxSZXF1ZXN0OjpjcmVhdGUoVVJMKFVSTCgpLCB0b0ltcGwo
dXJsKS0+c3RyaW5nKCkpKS5sZWFrUmVmKCkpOworICAgIHJldHVybiB0b0FQSShBUEk6OlVSTFJl
cXVlc3Q6OmNyZWF0ZShVUkwoVVJMKCksIHRvSW1wbCh1cmwpLT5zdHJpbmcoKSkpLmxlYWtSZWYo
KSk7CiB9CiAKIFdLVVJMUmVmIFdLVVJMUmVxdWVzdENvcHlVUkwoV0tVUkxSZXF1ZXN0UmVmIHJl
cXVlc3RSZWYpCkBAIC02MCw1ICs2MCw1IEBAIFdLU3RyaW5nUmVmIFdLVVJMUmVxdWVzdENvcHlI
VFRQTWV0aG9kKFcKIAogdm9pZCBXS1VSTFJlcXVlc3RTZXREZWZhdWx0VGltZW91dEludGVydmFs
KGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiB7Ci0gICAgV2ViVVJMUmVxdWVzdDo6c2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOworICAgIEFQSTo6VVJMUmVxdWVzdDo6
c2V0RGVmYXVsdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOwogfQpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL21hYy9XS1VSTFJlcXVlc3ROUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLVVJMUmVxdWVzdE5TLm1tCShy
ZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLVVJM
UmVxdWVzdE5TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCiAKKyNpbXBvcnQgIkFQSVVSTFJl
cXVlc3QuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgotI2ltcG9ydCAiV2ViVVJMUmVxdWVzdC5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBA
IC0zNSw3ICszNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBXS1VSTFJlcXVlc3RSZWYg
V0tVUkxSZXF1ZXN0Q3JlYXRlV2l0aE5TVVJMUmVxdWVzdChOU1VSTFJlcXVlc3QqIHVybFJlcXVl
c3QpCiB7CiAgICAgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gY29waWVkVVJMUmVxdWVzdCA9IGFk
b3B0TlMoW3VybFJlcXVlc3QgY29weV0pOwotICAgIFJlZlB0cjxXZWJVUkxSZXF1ZXN0PiByZXF1
ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKGNvcGllZFVSTFJlcXVlc3QuZ2V0KCkpOworICAg
IFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0
ZShjb3BpZWRVUkxSZXF1ZXN0LmdldCgpKTsKICAgICByZXR1cm4gdG9BUEkocmVxdWVzdC5yZWxl
YXNlKCkubGVha1JlZigpKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAkocmV2aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsNyArNTY2LDcgQEAgV2ViUHJv
Y2Vzc1Byb3h5JiBXZWJDb250ZXh0OjpjcmVhdGVOZXdXZQogCiAgICAgcGFyYW1ldGVycy5mdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0gV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nl
c3NFbmFibGVkKCk7CiAKLSAgICBwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVy
dmFsID0gV2ViVVJMUmVxdWVzdDo6ZGVmYXVsdFRpbWVvdXRJbnRlcnZhbCgpOworICAgIHBhcmFt
ZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwgPSBBUEk6OlVSTFJlcXVlc3Q6OmRl
ZmF1bHRUaW1lb3V0SW50ZXJ2YWwoKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBF
TkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgLy8gRklYTUU6IFRoZXJlIHNob3VsZCBi
ZSBhIGdlbmVyaWMgd2F5IGZvciBzdXBwbGVtZW50cyB0byBhZGQgdG8gdGhlIGludGlhbGl6YXRp
b24gcGFyYW1ldGVycy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcAkocmV2aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKQEAgLTM4
LDcgKzM5LDYgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVm
ZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIldlYlVS
TFJlcXVlc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKKyNpbmNs
dWRlICJBUElVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKQEAgLTgwLDcgKzgxLDYgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KQEAgLTYxMSw3ICs2MTEsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFVSTChjb25zdCBTdHJpbmcmCiAgICAgbV9wcm9jZXNz
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojpsb2FkVVJMUmVxdWVzdChXZWJVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0LCBBUEk6Ok9iamVjdCog
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFVSTFJlcXVlc3QoQVBJOjpVUkxSZXF1
ZXN0KiB1cmxSZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgYXV0byB0cmFu
c2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2
LDYgKzk2LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjZW5kaWYK
IAorbmFtZXNwYWNlIEFQSSB7CitjbGFzcyBVUkxSZXF1ZXN0OworfQorCiBuYW1lc3BhY2UgQ29y
ZUlQQyB7CiBjbGFzcyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtMTQ0
LDcgKzE0OCw2IEBAIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUHJvY2Vzc1By
b3h5OwotY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiBzdHJ1Y3Qg
QXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBDb2xvclNwYWNlRGF0YTsKQEAgLTM2Nyw3ICszNzAs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9z
ZWQ7IH0KIAogICAgIHZvaWQgbG9hZFVSTChjb25zdCBTdHJpbmcmLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEgPSBudWxscHRyKTsKLSAgICB2b2lkIGxvYWRVUkxSZXF1ZXN0KFdlYlVSTFJlcXVlc3Qq
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKKyAgICB2b2lkIGxvYWRVUkxSZXF1
ZXN0KEFQSTo6VVJMUmVxdWVzdCosIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwog
ICAgIHZvaWQgbG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMLCBjb25zdCBTdHJpbmcmIHJl
c291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAg
ICB2b2lkIGxvYWREYXRhKEFQSTo6RGF0YSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhID0gbnVsbHB0cik7CiAgICAgdm9pZCBsb2FkSFRNTFN0cmluZyhjb25zdCBTdHJpbmcm
IGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
ID0gbnVsbHB0cik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xp
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5
Q2xpZW50LmNwcAkocmV2aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBvbGljeUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNp
bmNsdWRlICJXZWJQb2xpY3lDbGllbnQuaCIKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRl
ICJXZWJVUkxSZXF1ZXN0LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOSw4
ICszOSw4IEBAIGJvb2wgV2ViUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXYKICAgICBp
ZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCAmJiAhbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbl9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYxICYmICFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQdHI8V2ViVVJMUmVx
dWVzdD4gb3JpZ2luYWxSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKG9yaWdpbmFsUmVz
b3VyY2VSZXF1ZXN0KTsKLSAgICBSZWZQdHI8V2ViVVJMUmVxdWVzdD4gcmVxdWVzdCA9IFdlYlVS
TFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOworICAgIFJlZlB0cjxBUEk6OlVSTFJl
cXVlc3Q+IG9yaWdpbmFsUmVxdWVzdCA9IEFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKG9yaWdpbmFs
UmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBSZWZQdHI8QVBJOjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0g
QVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIAogICAgIGlmIChtX2Ns
aWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjApCiAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh0eXBl
KSwgdG9BUEkobW9kaWZpZXJzKSwgdG9BUEkobW91c2VCdXR0b24pLCB0b0FQSShyZXF1ZXN0Lmdl
dCgpKSwgdG9BUEkobGlzdGVuZXIpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgV2ViUG9saWN5Q2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JOZXcKICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPFdlYlVSTFJlcXVlc3Q+
IHJlcXVlc3QgPSBXZWJVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBS
ZWZQdHI8QVBJOjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUo
cmVzb3VyY2VSZXF1ZXN0KTsKIAogICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbih0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh0eXBlKSwgdG9BUEkobW9k
aWZpZXJzKSwgdG9BUEkobW91c2VCdXR0b24pLCB0b0FQSShyZXF1ZXN0LmdldCgpKSwgdG9BUEko
ZnJhbWVOYW1lLmltcGwoKSksIHRvQVBJKGxpc3RlbmVyKSwgdG9BUEkodXNlckRhdGEpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgIHJldHVybiB0cnVlOwpAQCAtNjksNyArNjksNyBA
QCBib29sIFdlYlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUmVzCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlZlB0cjxXZWJVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBXZWJVUkxS
ZXNwb25zZTo6Y3JlYXRlKHJlc291cmNlUmVzcG9uc2UpOwotICAgIFJlZlB0cjxXZWJVUkxSZXF1
ZXN0PiByZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHJlc291cmNlUmVxdWVzdCk7Cisg
ICAgUmVmUHRyPEFQSTo6VVJMUmVxdWVzdD4gcmVxdWVzdCA9IEFQSTo6VVJMUmVxdWVzdDo6Y3Jl
YXRlKHJlc291cmNlUmVxdWVzdCk7CiAKICAgICBpZiAobV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkKICAgICAgICAgbV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCh0b0FQSShwYWdlKSwgdG9B
UEkoZnJhbWUpLCB0b0FQSShyZXNwb25zZS5nZXQoKSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0
b0FQSShsaXN0ZW5lciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAkocmV2aXNp
b24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4g
V2ViVUlDbGllbnQ6OmNyCiAgICAgaWYgKCFtX2NsaWVudC5iYXNlLnZlcnNpb24pCiAgICAgICAg
IHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKHRvQVBJKHBhZ2UpLCB0b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJ
KG1vZGlmaWVycyksIHRvQVBJKGJ1dHRvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpKTsK
IAotICAgIFJlZlB0cjxXZWJVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3Jl
YXRlKHJlc291cmNlUmVxdWVzdCk7ICAgIAorICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHJl
cXVlc3QgPSBBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOyAgICAKICAg
ICByZXR1cm4gYWRvcHRSZWYodG9JbXBsKG1fY2xpZW50LmNyZWF0ZU5ld1BhZ2UodG9BUEkocGFn
ZSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJ
KG1vZGlmaWVycyksIHRvQVBJKGJ1dHRvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpKTsK
IH0gCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUg
IldLQ29udGV4dC5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKIAorI2luY2x1ZGUg
IkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRG93bmxv
YWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Rv
d25sb2FkLmNwcAkocmV2aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLRG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiw5IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0tEb3dubG9hZC5oIgogCisjaW5jbHVkZSAi
QVBJVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgdWludDY0X3QgV0tEb3dubG9hZEdldElEKFdL
RG93bmxvYWRSZWYgZAogCiBXS1VSTFJlcXVlc3RSZWYgV0tEb3dubG9hZENvcHlSZXF1ZXN0KFdL
RG93bmxvYWRSZWYgZG93bmxvYWQpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKFdlYlVSTFJlcXVlc3Q6
OmNyZWF0ZSh0b0ltcGwoZG93bmxvYWQpLT5yZXF1ZXN0KCkpLmxlYWtSZWYoKSk7CisgICAgcmV0
dXJuIHRvQVBJKEFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKHRvSW1wbChkb3dubG9hZCktPnJlcXVl
c3QoKSkubGVha1JlZigpKTsKIH0KIAogV0tEYXRhUmVmIFdLRG93bmxvYWRHZXRSZXN1bWVEYXRh
KFdLRG93bmxvYWRSZWYgZG93bmxvYWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGFSZWYuY3BwCShyZXZpc2lvbiAxNjA3
MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJl
Zi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJXS05hdmln
YXRpb25EYXRhUmVmLmgiCiAKICNpbmNsdWRlICJBUElOYXZpZ2F0aW9uRGF0YS5oIgorI2luY2x1
ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJX
ZWJVUkxSZXF1ZXN0LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTU1LDUgKzU1
LDUgQEAgV0tVUkxSZWYgV0tOYXZpZ2F0aW9uRGF0YUNvcHlOYXZpZ2F0aW9uRAogCiBXS1VSTFJl
cXVlc3RSZWYgV0tOYXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVlc3QoV0tOYXZpZ2F0aW9u
RGF0YVJlZiBuYXZpZ2F0aW9uRGF0YSkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViVVJMUmVxdWVz
dDo6Y3JlYXRlKHRvSW1wbChuYXZpZ2F0aW9uRGF0YSktPm9yaWdpbmFsUmVxdWVzdCgpKS5sZWFr
UmVmKCkpOworICAgIHJldHVybiB0b0FQSShBUEk6OlVSTFJlcXVlc3Q6OmNyZWF0ZSh0b0ltcGwo
bmF2aWdhdGlvbkRhdGEpLT5vcmlnaW5hbFJlcXVlc3QoKSkubGVha1JlZigpKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNjA3MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMTk0LDcgKzE5NCw3IEBAIC0gKHZvaWQpbG9hZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXUKIAogLSAodm9pZClsb2FkUmVxdWVzdDooTlNVUkxS
ZXF1ZXN0ICopcmVxdWVzdCB1c2VyRGF0YTooaWQpdXNlckRhdGEKIHsKLSAgICBSZWZQdHI8V2Vi
VVJMUmVxdWVzdD4gd2tVUkxSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3Qp
OworICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHdrVVJMUmVxdWVzdCA9IEFQSTo6VVJMUmVx
dWVzdDo6Y3JlYXRlKHJlcXVlc3QpOwogCiAgICAgUmVmUHRyPE9iakNPYmplY3RHcmFwaD4gd2tV
c2VyRGF0YTsKICAgICBpZiAodXNlckRhdGEpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjA3MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTExNzYsOCArMTE3Niw4IEBACiAJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAv
KiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNFMEU0MjQxNjhCN0EyODAwNTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBw
bGVtZW50LmggKi87IH07CiAJCUJDRTE3QjdEMTM4MUYxMTcwMDEyQTY0MSAvKiBXS1BhZ2VQcml2
YXRlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRTE3QjdCMTM4MUYxMTcwMDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmNwcCAqLzsgfTsK
IAkJQkNFMTdCN0UxMzgxRjExNzAwMTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTE3QjdDMTM4MUYxMTcw
MDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNFMjMxNUQxMjJDMzBDQTAwRDVDMzVBIC8qIFdlYlVS
TFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRTIzMTVCMTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmggKi87IH07Ci0JCUJD
RTIzMTVFMTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTIzMTVDMTIyQzMwQ0EwMEQ1QzM1
QSAvKiBXZWJVUkxSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQkNFMjMxNUQxMjJDMzBDQTAwRDVDMzVB
IC8qIEFQSVVSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRTIzMTVCMTIyQzMwQ0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmggKi87
IH07CisJCUJDRTIzMTVFMTIyQzMwQ0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTIzMTVDMTIyQzMw
Q0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmNwcCAqLzsgfTsKIAkJQkNFMjMyNjMxMjJDNkNG
MzAwRDVDMzVBIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTIzMjYyMTIyQzZDRjMwMEQ1QzM1QSAv
KiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gKi87IH07CiAJCUJDRTQ2OTUzMTIxNEU2Q0Iw
MDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTRGMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xp
ZW50LmNwcCAqLzsgfTsKIAkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2
OTUwMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggKi87IH07CkBAIC0yODA4LDgg
KzI4MDgsOCBAQAogCQlCQ0UwRTQyNDE2OEI3QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMTdCN0IxMzgxRjExNzAw
MTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV0tQYWdlUHJpdmF0ZU1hYy5jcHA7IHBhdGggPSBtYWMvV0tQYWdlUHJpdmF0
ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTE3QjdDMTM4MUYxMTcw
MDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLUGFnZVByaXZhdGVNYWMuaDsgcGF0aCA9IG1hYy9XS1BhZ2VQcml2YXRlTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRTIzMTVCMTIyQzMwQ0EwMEQ1QzM1QSAv
KiBXZWJVUkxSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVS
TFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMjMxNUMxMjJDMzBD
QTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViVVJMUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDRTIzMTVCMTIyQzMwQ0EwMEQ1QzM1QSAvKiBBUElVUkxSZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVVSTFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkNFMjMxNUMxMjJDMzBDQTAwRDVDMzVBIC8qIEFQSVVSTFJlcXVlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJVVJMUmVxdWVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTIzMjYyMTIyQzZDRjMwMEQ1QzM1
QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRTQ2OTRGMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZvcm1DbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0U0Njk1MDEyMTRFNkNCMDAw
Qjk4RUIgLyogV2ViRm9ybUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJGb3JtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDg5LDYg
KzM0ODksOCBAQAogCQkJCTFBQzEzMzZEMTg1NjVEMkIwMEYzRUMwNSAvKiBBUElQYWdlSGFuZGxl
LmNwcCAqLywKIAkJCQkxQUMxMzM2QjE4NTY1QzdBMDBGM0VDMDUgLyogQVBJUGFnZUhhbmRsZS5o
ICovLAogCQkJCUJDRjA0QzhFMTFGRjlGNkUwMEY4NkE1OCAvKiBBUElTdHJpbmcuaCAqLywKKwkJ
CQlCQ0UyMzE1QzEyMkMzMENBMDBENUMzNUEgLyogQVBJVVJMUmVxdWVzdC5jcHAgKi8sCisJCQkJ
QkNFMjMxNUIxMjJDMzBDQTAwRDVDMzVBIC8qIEFQSVVSTFJlcXVlc3QuaCAqLywKIAkJCQlBN0Q3
OTJENTE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwICovLAogCQkJCUE3
RDc5MkQ0MTc2N0NCMDkwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oICovLAogCQkJCTUx
NUU3NzI1MTgzREQ2RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3QuY3BwICovLApAQCAtMzYxOCw4
ICszNjIwLDYgQEAKIAkJCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmggKi8sCiAJCQkJQzAzMzdERDcxMjdBNTFCNjAwOEZGNEY0IC8qIFdlYlRv
dWNoRXZlbnQuY3BwICovLAogCQkJCUJDREI4NkMwMTIwMEZCOTcwMDcyNTRCRSAvKiBXZWJVUkwu
aCAqLywKLQkJCQlCQ0UyMzE1QzEyMkMzMENBMDBENUMzNUEgLyogV2ViVVJMUmVxdWVzdC5jcHAg
Ki8sCi0JCQkJQkNFMjMxNUIxMjJDMzBDQTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuaCAqLywK
IAkJCQlCQzkwQTFEMTEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVzcG9uc2UuY3BwICovLAog
CQkJCUJDOTBBMUQwMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5oICovLAogCQkJ
CUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAq
LywKQEAgLTYxNDcsNyArNjE0Nyw3IEBACiAJCQkJMUFDNzUzN0MxODNBOUZEQjAwNzJDQjE1IC8q
IFBhZ2VMb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREI4NkMxMTIwMEZCOTcwMDcy
NTRCRSAvKiBXZWJVUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzk2MTE5MTgzRDI5NDcwMEQy
MDAyRSAvKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCUJDRTIzMTVEMTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQ0UyMzE1RDEyMkMzMENBMDBENUMzNUEgLyogQVBJVVJMUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM5MEExRDIxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3Bv
bnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0UyNTEyNkNFMTgyMDA1N0QwQTcgLyogV2Vi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUNENTVBQTEyOEUy
OTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03NTEwLDcgKzc1MTAsNyBAQAogCQkJCUMwMzM3REQ4MTI3QTUxQjYwMDhGRjRGNCAv
KiBXZWJUb3VjaEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNTk0QUJBMTEyQTFGQjYw
MDlERTdDNyAvKiBXZWJVSUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EwRUY4MDEy
MzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNF
MjMxNUUxMjJDMzBDQTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkNFMjMxNUUxMjJDMzBDQTAwRDVDMzVBIC8qIEFQSVVSTFJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM5MEExRDMxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwMzM3REQxMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJX
aGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkNCMTg1MTdCQkZFMDMwMDM5NENE
OCAvKiBBc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNw
cAkocmV2aXNpb24gMTYwNzM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTIgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAi
QVBJRGF0YS5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQ
SUNhc3QuaCIKICNpbmNsdWRlICJXZWJFcnJvci5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VQb2xpY3lDbGllbnQuY3BwCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKIAorI2luY2x1ZGUg
IkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRl
ICJXZWJFcnJvci5oIgotI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTM5LDcgKzM5LDcgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9u
IEluamVjdGVkQnVuZGxlUAogICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbikKICAgICAgICAgcmV0dXJuIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblBhc3NU
aHJvdWdoOwogCi0gICAgUmVmUHRyPFdlYlVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBXZWJVUkxSZXF1
ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBSZWZQdHI8QVBJOjpVUkxSZXF1ZXN0
PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIAog
ICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IDA7CiAgICAgV0tCdW5kbGVQYWdlUG9saWN5
QWN0aW9uIHBvbGljeSA9IG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
dG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoYWN0aW9uKSwgdG9BUEkocmVxdWVzdC5n
ZXQoKSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKQEAgLTUy
LDcgKzUyLDcgQEAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIEluamVjdGVkQnVuZGxlUAogICAg
IGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKQogICAgICAgICBy
ZXR1cm4gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uUGFzc1Rocm91Z2g7CiAKLSAgICBSZWZQdHI8
V2ViVVJMUmVxdWVzdD4gcmVxdWVzdCA9IFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJl
cXVlc3QpOworICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBBUEk6OlVSTFJl
cXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOwogCiAgICAgV0tUeXBlUmVmIHVzZXJEYXRh
VG9QYXNzID0gMDsKICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gbV9jbGll
bnQuZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFt
ZSksIHRvQVBJKGFjdGlvbiksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0b0FQSShmcmFtZU5hbWUu
aW1wbCgpKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpAQCAt
NjYsNyArNjYsNyBAQCBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQCiAg
ICAgICAgIHJldHVybiBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25QYXNzVGhyb3VnaDsKIAogICAg
IFJlZlB0cjxXZWJVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZTo6Y3JlYXRl
KHJlc291cmNlUmVzcG9uc2UpOwotICAgIFJlZlB0cjxXZWJVUkxSZXF1ZXN0PiByZXF1ZXN0ID0g
V2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHJlc291cmNlUmVxdWVzdCk7CisgICAgUmVmUHRyPEFQSTo6
VVJMUmVxdWVzdD4gcmVxdWVzdCA9IEFQSTo6VVJMUmVxdWVzdDo6Y3JlYXRlKHJlc291cmNlUmVx
dWVzdCk7CiAKICAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOwogICAgIFdLQnVuZGxl
UGFnZVBvbGljeUFjdGlvbiBwb2xpY3kgPSBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShyZXNwb25zZS5nZXQoKSksIHRvQVBJ
KHJlcXVlc3QuZ2V0KCkpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNv
dXJjZUxvYWRDbGllbnQuY3BwCShyZXZpc2lvbiAxNjA3MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbgogICAgIGlmICghbV9jbGllbnQud2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxXZWJVUkxSZXF1ZXN0
PiByZXR1cm5lZFJlcXVlc3QgPSBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQud2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgaWRlbnRpZmllciwgdG9BUEko
cmVxdWVzdCksIHRvQVBJKHJlZGlyZWN0UmVzcG9uc2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pKSk7CisgICAgUmVmUHRyPEFQSTo6VVJMUmVxdWVzdD4gcmV0dXJuZWRSZXF1ZXN0ID0gYWRv
cHRSZWYodG9JbXBsKG1fY2xpZW50LndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksIGlkZW50aWZpZXIsIHRvQVBJKHJlcXVlc3QpLCB0b0FQSShyZWRpcmVj
dFJlc3BvbnNlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOwogICAgIGlmIChyZXR1cm5l
ZFJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3QudXBkYXRlRnJvbURlbGVnYXRlUHJlc2VydmluZ09s
ZEhUVFBCb2R5KHJldHVybmVkUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgIGVsc2UK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAJKHJldmlzaW9uIDE2MDczNikKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJ
QXJyYXkuaCIKICNpbmNsdWRlICJBUElTdHJpbmcuaCIKKyNpbmNsdWRlICJBUElVUkxSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNsdWRlICJQYWdlQmFubmVyLmgiCkBA
IC00Niw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2ViUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJX
ZWJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKLSNpbmNsdWRlICJXZWJVUkxS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJh
bWUuaD4K
</data>
<flag name="review"
          id="243102"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>