<?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>173362</bug_id>
          
          <creation_ts>2017-06-14 05:11:46 -0700</creation_ts>
          <short_desc>Add API::InjectedBundle::ResourceLoadClient</short_desc>
          <delta_ts>2017-06-15 01:20:45 -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>WebKit2</component>
          <version>WebKit 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>173383</dependson>
          <blocked>173364</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1319096</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 05:11:46 -0700</bug_when>
    <thetext>It will be used by the GTK+ port instead of the C API. This is the last one we need to get rid of the C API in the GTK+ implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319097</commentid>
    <comment_count>1</comment_count>
      <attachid>312884</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 05:14:44 -0700</bug_when>
    <thetext>Created attachment 312884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319138</commentid>
    <comment_count>2</comment_count>
      <attachid>312884</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-14 08:45:25 -0700</bug_when>
    <thetext>Comment on attachment 312884
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=312884&amp;action=review

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:336
&gt; -    page.initializeInjectedBundleResourceLoadClient(&amp;client.base);
&gt; +    WKBundlePageSetResourceLoadClient(toAPI(&amp;page), &amp;client.base);

I&apos;m not sure about this change.  From API objects I think we want to call C++ methods, not use the C API.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:353
&gt; -        _page-&gt;initializeInjectedBundleResourceLoadClient(nullptr);
&gt; +        WKBundlePageSetResourceLoadClient(toAPI(_page.get()), nullptr);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319143</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 08:51:19 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 312884 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312884&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:336
&gt; &gt; -    page.initializeInjectedBundleResourceLoadClient(&amp;client.base);
&gt; &gt; +    WKBundlePageSetResourceLoadClient(toAPI(&amp;page), &amp;client.base);
&gt; 
&gt; I&apos;m not sure about this change.  From API objects I think we want to call
&gt; C++ methods, not use the C API.

But the C API is used there, mixing both is what caused this. If you prefer to use the C++ API, then this should be migrated to use API::InjectedBundle::ResourceLoadClient the same way we are doing for all our clients in the GTK+ API.

&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:353
&gt; &gt; -        _page-&gt;initializeInjectedBundleResourceLoadClient(nullptr);
&gt; &gt; +        WKBundlePageSetResourceLoadClient(toAPI(_page.get()), nullptr);
&gt; 
&gt; ditto

Thanks for all the reviews, btw!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319195</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-14 10:10:39 -0700</bug_when>
    <thetext>Committed r218266: &lt;http://trac.webkit.org/changeset/218266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319322</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-14 13:49:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 173383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319497</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-15 01:20:45 -0700</bug_when>
    <thetext>Committed r218321: &lt;http://trac.webkit.org/changeset/218321&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312884</attachid>
            <date>2017-06-14 05:14:44 -0700</date>
            <delta_ts>2017-06-14 08:45:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-resource-load-api.diff</filename>
            <type>text/plain</type>
            <size>31515</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxMzUzZDEwNDg1Yy4uNGY0MzlmNzFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NSBAQAogMjAxNy0wNi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgQWRkIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlJlc291cmNlTG9h
ZENsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTczMzYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBHVEsrIHBvcnQgaW5zdGVhZCBvZiB0aGUgQyBBUEkuCisK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmguCisgICAg
ICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpSZXNvdXJjZUxvYWRDbGllbnQ6OmRpZEluaXRpYXRl
TG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlJlc291cmNl
TG9hZENsaWVudDo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoQVBJOjpJbmpl
Y3RlZEJ1bmRsZTo6UmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNv
dXJjZSk6CisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpSZXNvdXJjZUxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UpOgorICAgICAgICAoQVBJOjpJbmpl
Y3RlZEJ1bmRsZTo6UmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2Up
OgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6UmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRG
YWlsTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlJlc291
cmNlTG9hZENsaWVudDo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChBUEk6OkluamVj
dGVkQnVuZGxlOjpSZXNvdXJjZUxvYWRDbGllbnQ6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgIChzZXRVcFJlc291cmNlTG9h
ZENsaWVudCk6CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciBzZXRMb2FkRGVsZWdhdGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OkluamVjdGVk
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6
OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZEZvclJlc291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xp
ZW50OjpkaWRGYWlsTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6d2lsbENhY2hlUmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SW5qZWN0ZWRCdW5kbGVSZXNv
dXJjZUxvYWRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9zZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQpOgorCisyMDE3LTA2LTE0ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RL
XSBVc2UgQVBJOjpJbmplY3RlZEJ1bmRsZTo6RWRpdG9yQ2xpZW50IGluIFdlYktpdFdlYkVkaXRv
cgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzU1
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkZjgzYWI2NjhjOS4uNjI2ZWQ4ZmMzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTYsNiArMTIxNiw3IEBA
CiAJCTdBODIxRjRDMUUyRjY3MzkwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFn
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBODIxRjRCMUUyRjY2NDgwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJD
bGllbnQuaCAqLzsgfTsKIAkJN0E4MjFGNEUxRTJGNjdBODAwNjA0NTc3IC8qIExlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlckNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBODIxRjREMUUyRjY3OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Q
cm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi87IH07CiAJCTdBODIxRjUwMUUyRjdBNzUwMDYwNDU3
NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBODIxRjRGMUUyRjdBNUMwMDYwNDU3NyAvKiBB
UElDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCAqLzsgfTsKKwkJN0E4QTlENUMxRUYxNDU5
ODAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4QTlENUIxRUYx
NDU4RTAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5o
ICovOyB9OwogCQk3QUFEMTc1RjFFQTZBRjk5MDAzQjA4OTQgLyogV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QUFEMTc1RTFFQTZBRjM3MDAzQjA4OTQgLyogV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlQ29jb2EubW0gKi87IH07CiAJCTdBQjZFQTQ1MUVFQUFFMzgwMDAzN0IyQiAv
KiBBUElJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdBQjZFQTQ0MUVFQUFFMjMwMDAzN0IyQiAvKiBBUElJY29uRGF0YWJh
c2VDbGllbnQuaCAqLzsgfTsKIAkJN0FCNkVBNDcxRUVBQjZCODAwMDM3QjJCIC8qIEFQSUdlb2xv
Y2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdBQjZFQTQ2MUVFQUI2QjAwMDAzN0IyQiAvKiBBUElHZW9sb2NhdGlvblByb3ZpZGVy
LmggKi87IH07CkBAIC0zNTAyLDYgKzM1MDMsNyBAQAogCQk3QTgyMUY0QjFFMkY2NjQ4MDA2MDQ1
NzcgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTgyMUY0RDFFMkY2NzlFMDA2MDQ1NzcgLyog
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTgyMUY0RjFFMkY3QTVDMDA2MDQ1Nzcg
LyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QThBOUQ1QjFFRjE0NThFMDA5ODAxQUUgLyogQVBJSW5qZWN0
ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSUluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTlDRDhDMDFDNzc5ODQ5MDBEOUY2QzcgLyogV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBOUNEOEMxMUM3Nzk4NDkwMEQ5RjZDNyAvKiBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdBOUNEOEMyMUM3NzlBRDYwMEQ5RjZDNyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzI0OSw2ICs3MjUxLDcgQEAKIAkJCQkzNzc1MTIzMDFERjBERUUyMDA4QTM1MUMg
LyogQVBJSW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQuaCAqLywKIAkJCQkwNzZFODg0RjFBMTND
QkM2MDA1RTkwRkMgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAq
LywKIAkJCQk3QTNBQ0UxQTFFRUVGNzhDMDBBODY0QTQgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmggKi8sCisJCQkJN0E4QTlENUIxRUYxNDU4RTAwOTgwMUFFIC8qIEFQSUlu
amVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBBUEk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODcwNyw2ICs4NzEwLDcgQEAK
IAkJCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4OTFENjYxOUIxMjRGRjAwQkE3OUREIC8qIFdlYklu
c3BlY3RvclVJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEg
LyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0E4QTlENUMx
RUYxNDU5ODAwOTgwMUFFIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYklu
c3BlY3RvclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBOTQ0QTAxODg0RTRGMDAw
RUQ4NkRCIC8qIFdlYklPU0V2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4NUU0
NzIxRTMwM0YzNzAwOTE0NTk5IC8qIFdlYktpdC5hcGlub3RlcyBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJ
SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJj
ZUxvYWRDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjI0
NmY1YzhhYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdl
YkZyYW1lOworY2xhc3MgV2ViUGFnZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
UmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVz
cG9uc2U7Cit9CisKK25hbWVzcGFjZSBBUEkgeworCituYW1lc3BhY2UgSW5qZWN0ZWRCdW5kbGUg
eworCitjbGFzcyBSZXNvdXJjZUxvYWRDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflJl
c291cmNlTG9hZENsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRJbml0
aWF0ZUxvYWRGb3JSZXNvdXJjZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwg
dWludDY0X3QgLyppZGVudGlmaWVyKi8sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgLypwYWdlSXNQcm92aXNpb25hbGx5TG9hZGluZyovKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJG
cmFtZSYsIHVpbnQ2NF90IC8qaWRlbnRpZmllciovLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6
V2ViRnJhbWUmLCB1aW50NjRfdCAvKmlkZW50aWZpZXIqLywgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0
aEZvclJlc291cmNlKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCB1aW50NjRf
dCAvKmlkZW50aWZpZXIqLywgdWludDY0X3QgY29udGVudExlbmd0aCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6
OldlYkZyYW1lJiwgdWludDY0X3QgLyppZGVudGlmaWVyKi8pIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJh
bWUmLCB1aW50NjRfdCAvKmlkZW50aWZpZXIqLywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdlYktpdDo6V2Vi
UGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCB1aW50NjRfdCAvKmlkZW50aWZpZXIqLykgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShX
ZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgdWludDY0X3QgLyppZGVudGlmaWVy
Ki8pIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEluamVjdGVkQnVuZGxl
CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4
IDM2OTAwY2QzZmZjLi41ZGYzZGZjM2U2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKQEAgLTEwMCw3ICsxMDEsNyBAQCB2b2lkIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2Fk
ZXJDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZUxvYWRlcgogCiB2
b2lkIFdLQnVuZGxlUGFnZVNldFJlc291cmNlTG9hZENsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZVJlZiwgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0g
ICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRD
bGllbnQod2tDbGllbnQpOworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0SW5qZWN0ZWRCdW5kbGVS
ZXNvdXJjZUxvYWRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxJbmplY3RlZEJ1bmRsZVBhZ2VSZXNv
dXJjZUxvYWRDbGllbnQ+KHdrQ2xpZW50KSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9s
aWN5Q2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGll
bnRCYXNlKiB3a0NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4
IDg2MDk5NjcwMDg5Li5mODk5Y2E5MTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tCkBAIC0zMzMsNyArMzMzLDcgQEAgc3RhdGljIHZvaWQgc2V0VXBSZXNvdXJjZUxvYWRD
bGllbnQoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICoKICAgICBj
bGllbnQuZGlkRmluaXNoTG9hZEZvclJlc291cmNlID0gZGlkRmluaXNoTG9hZEZvclJlc291cmNl
OwogICAgIGNsaWVudC5kaWRGYWlsTG9hZEZvclJlc291cmNlID0gZGlkRmFpbExvYWRGb3JSZXNv
dXJjZTsKIAotICAgIHBhZ2UuaW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xp
ZW50KCZjbGllbnQuYmFzZSk7CisgICAgV0tCdW5kbGVQYWdlU2V0UmVzb3VyY2VMb2FkQ2xpZW50
KHRvQVBJKCZwYWdlKSwgJmNsaWVudC5iYXNlKTsKIH0KIAogLSAoaWQgPFdLV2ViUHJvY2Vzc1Bs
dWdJbkxvYWREZWxlZ2F0ZT4pbG9hZERlbGVnYXRlCkBAIC0zNTAsNyArMzUwLDcgQEAgc3RhdGlj
IHZvaWQgc2V0VXBSZXNvdXJjZUxvYWRDbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICoKICAgICAgICAgc2V0VXBSZXNvdXJjZUxvYWRDbGllbnQoc2VsZiwg
Kl9wYWdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVy
Q2xpZW50KHRvQVBJKF9wYWdlLmdldCgpKSwgbnVsbHB0cik7Ci0gICAgICAgIF9wYWdlLT5pbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQobnVsbHB0cik7CisgICAgICAg
IFdLQnVuZGxlUGFnZVNldFJlc291cmNlTG9hZENsaWVudCh0b0FQSShfcGFnZS5nZXQoKSksIG51
bGxwdHIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwCmluZGV4IDEzMmUyNmRjODdmLi5lMDg3NDY0NTE3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50LmNwcApAQCAtMzUsMjAgKzM1LDI1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJj
ZUxvYWRDbGllbnQ6OmRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdlYlBhZ2UqIHBhZ2UsIFdl
YkZyYW1lKiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKQorSW5q
ZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpJbmplY3RlZEJ1bmRsZVBhZ2VSZXNv
dXJjZUxvYWRDbGllbnQoY29uc3QgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50QmFzZSog
Y2xpZW50KQoreworICAgIGluaXRpYWxpemUoY2xpZW50KTsKK30KKwordm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OmRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdl
YlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5n
KQogewogICAgIGlmICghbV9jbGllbnQuZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50LmRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKHRv
QVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIGlkZW50aWZpZXIsIHRvQVBJKHJlcXVlc3QpLCBwYWdl
SXNQcm92aXNpb25hbGx5TG9hZGluZywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBt
X2NsaWVudC5kaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZm
cmFtZSksIGlkZW50aWZpZXIsIHRvQVBJKHJlcXVlc3QpLCBwYWdlSXNQcm92aXNpb25hbGx5TG9h
ZGluZywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdlYlBhZ2Uq
IHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQor
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OndpbGxTZW5kUmVxdWVz
dEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgdWludDY0X3QgaWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKQogewogICAgIGlmICghbV9jbGllbnQud2lsbFNlbmRSZXF1ZXN0Rm9y
RnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHJl
dHVybmVkUmVxdWVzdCA9IGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC53aWxsU2VuZFJlcXVlc3RG
b3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBpZGVudGlmaWVyLCB0b0FQSShyZXF1
ZXN0KSwgdG9BUEkocmVkaXJlY3RSZXNwb25zZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykp
KTsKKyAgICBSZWZQdHI8QVBJOjpVUkxSZXF1ZXN0PiByZXR1cm5lZFJlcXVlc3QgPSBhZG9wdFJl
Zih0b0ltcGwobV9jbGllbnQud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0
b0FQSSgmZnJhbWUpLCBpZGVudGlmaWVyLCB0b0FQSShyZXF1ZXN0KSwgdG9BUEkocmVkaXJlY3RS
ZXNwb25zZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpKTsKICAgICBpZiAocmV0dXJuZWRS
ZXF1ZXN0KSB7CiAgICAgICAgIC8vIElmIHRoZSBjbGllbnQgcmV0dXJuZWQgYW4gSFRUUCBib2R5
LCB3ZSB3YW50IHRvIHVzZSB0aGF0IGh0dHAgYm9keS4gVGhpcyBpcyBuZWVkZWQgdG8gZml4IDxy
ZGFyOi8vcHJvYmxlbS8yMzc2MzU4ND4KICAgICAgICAgYXV0byYgcmV0dXJuZWRSZXNvdXJjZVJl
cXVlc3QgPSByZXR1cm5lZFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgpOwpAQCAtNjAsNTIgKzY1
LDUyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojp3aWxsU2Vu
ZFJlcXVlc3RGb3JGcmFtZShXZWJQYWdlKiBwYWdlCiAgICAgICAgIHJlcXVlc3QgPSB7IH07CiB9
CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZl
UmVzcG9uc2VGb3JSZXNvdXJjZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZUZvclJlc291cmNlKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgdWludDY0
X3QgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAg
aWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UodG9BUEko
cGFnZSksIHRvQVBJKGZyYW1lKSwgaWRlbnRpZmllciwgdG9BUEkocmVzcG9uc2UpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZXNwb25zZUZvclJl
c291cmNlKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgaWRlbnRpZmllciwgdG9BUEkocmVz
cG9uc2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNv
dXJjZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNl
TG9hZENsaWVudDo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXZWJQYWdlJiBw
YWdlLCBXZWJGcmFtZSYgZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IGNvbnRl
bnRMZW5ndGgpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlQ29udGVudExlbmd0aEZv
clJlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5kaWRSZWNlaXZlQ29u
dGVudExlbmd0aEZvclJlc291cmNlKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIGlkZW50aWZp
ZXIsIGNvbnRlbnRMZW5ndGgsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgbV9jbGll
bnQuZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZSh0b0FQSSgmcGFnZSksIHRvQVBJ
KCZmcmFtZSksIGlkZW50aWZpZXIsIGNvbnRlbnRMZW5ndGgsIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Ojpk
aWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1lLCB1
aW50NjRfdCBpZGVudGlmaWVyKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRD
bGllbnQ6OmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZShXZWJQYWdlJiBwYWdlLCBXZWJGcmFtZSYg
ZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRGaW5p
c2hMb2FkRm9yUmVzb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50LmRpZEZp
bmlzaExvYWRGb3JSZXNvdXJjZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBpZGVudGlmaWVy
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LmRpZEZpbmlzaExvYWRG
b3JSZXNvdXJjZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIGlkZW50aWZpZXIsIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50OjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdlYlBhZ2UqIHBhZ2UsIFdlYkZy
YW1lKiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYgZXJyb3IpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6
ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXZWJQYWdlJiBwYWdlLCBXZWJGcmFtZSYgZnJhbWUsIHVp
bnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlm
ICghbV9jbGllbnQuZGlkRmFpbExvYWRGb3JSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9jbGllbnQuZGlkRmFpbExvYWRGb3JSZXNvdXJjZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJh
bWUpLCBpZGVudGlmaWVyLCB0b0FQSShlcnJvciksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgbV9jbGllbnQuZGlkRmFpbExvYWRGb3JSZXNvdXJjZSh0b0FQSSgmcGFnZSksIHRvQVBJ
KCZmcmFtZSksIGlkZW50aWZpZXIsIHRvQVBJKGVycm9yKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OnNo
b3VsZENhY2hlUmVzcG9uc2UoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1lLCB1aW50NjRf
dCBpZGVudGlmaWVyKQorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6
OnNob3VsZENhY2hlUmVzcG9uc2UoV2ViUGFnZSYgcGFnZSwgV2ViRnJhbWUmIGZyYW1lLCB1aW50
NjRfdCBpZGVudGlmaWVyKQogewogICAgIGlmICghbV9jbGllbnQuc2hvdWxkQ2FjaGVSZXNwb25z
ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkQ2Fj
aGVSZXNwb25zZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBpZGVudGlmaWVyLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOworICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRDYWNoZVJlc3Bv
bnNlKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgaWRlbnRpZmllciwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRD
bGllbnQ6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1l
KiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllcikKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlUmVz
b3VyY2VMb2FkQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJQYWdlJiBwYWdl
LCBXZWJGcmFtZSYgZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX2Ns
aWVudC5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodG9BUEkocGFn
ZSksIHRvQVBJKGZyYW1lKSwgaWRlbnRpZmllciwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
KyAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodG9BUEkoJnBh
Z2UpLCB0b0FQSSgmZnJhbWUpLCBpZGVudGlmaWVyLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2Fk
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oCmluZGV4IDY4NGM4N2I3ODVjLi4zYWVm
M2RjY2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudC5oCkBAIC0yNyw5ICsyNyw4IEBACiAjZGVmaW5lIEluamVjdGVkQnVuZGxl
UGFnZVJlc291cmNlTG9hZENsaWVudF9oCiAKICNpbmNsdWRlICJBUElDbGllbnQuaCIKLSNpbmNs
dWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgorI2luY2x1ZGUgIkFQSUluamVjdGVk
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFj
ZSBBUEkgewogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudEJhc2U+IHsKQEAgLTQ4LDE2ICs0NywxOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJGcmFtZTsKIAotY2xhc3MgSW5qZWN0ZWRCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFn
ZVJlc291cmNlTG9hZENsaWVudEJhc2U+IHsKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudCA6IHB1YmxpYyBBUEk6OkluamVjdGVkQnVuZGxlOjpSZXNvdXJjZUxvYWRD
bGllbnQsIHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnRC
YXNlPiB7CiBwdWJsaWM6Ci0gICAgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXZWJQ
YWdlKiwgV2ViRnJhbWUqLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKTsKLSAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdl
YlBhZ2UqLCBXZWJGcmFtZSosIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVz
b3VyY2UoV2ViUGFnZSosIFdlYkZyYW1lKiwgdWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3Qg
Y29udGVudExlbmd0aCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV2ViUGFn
ZSosIFdlYkZyYW1lKiwgdWludDY0X3QgaWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGYWlsTG9h
ZEZvclJlc291cmNlKFdlYlBhZ2UqLCBXZWJGcmFtZSosIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICBib29sIHNob3VsZENhY2hlUmVzcG9u
c2UoV2ViUGFnZSosIFdlYkZyYW1lKiwgdWludDY0X3QgaWRlbnRpZmllcik7Ci0gICAgYm9vbCBz
aG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJQYWdlKiwgV2ViRnJhbWUqLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKyAgICBleHBsaWNpdCBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRD
bGllbnQoY29uc3QgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50QmFzZSopOworCisgICAg
dm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXZWJQYWdlJiwgV2ViRnJhbWUmLCB1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIC8q
cGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcqLykgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RGb3JGcmFtZShXZWJQYWdlJiwgV2ViRnJhbWUmLCB1aW50NjRfdCBpZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShX
ZWJQYWdlJiwgV2ViRnJhbWUmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudExl
bmd0aEZvclJlc291cmNlKFdlYlBhZ2UmLCBXZWJGcmFtZSYsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmluaXNoTG9h
ZEZvclJlc291cmNlKFdlYlBhZ2UmLCBXZWJGcmFtZSYsIHVpbnQ2NF90IGlkZW50aWZpZXIpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXZWJQYWdlJiwgV2ViRnJh
bWUmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikg
b3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdlYlBhZ2UmLCBXZWJGcmFt
ZSYsIHVpbnQ2NF90IGlkZW50aWZpZXIpIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoV2ViUGFnZSYsIFdlYkZyYW1lJiwgdWludDY0X3QgaWRlbnRpZmllcikg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggNmRmMjYzMTc0YzMuLjI4MmVkZTgyZGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpCiAgICAgaWYgKEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGxvYWRlci0+
ZnJhbWVMb2FkZXIoKSkKICAgICAgICAgcGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcgPSBmcmFt
ZUxvYWRlci0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpID09IGxvYWRlcjsKIAotICAgIHdl
YlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuZGlkSW5pdGlhdGVMb2Fk
Rm9yUmVzb3VyY2Uod2ViUGFnZSwgbV9mcmFtZSwgaWRlbnRpZmllciwgcmVxdWVzdCwgcGFnZUlz
UHJvdmlzaW9uYWxseUxvYWRpbmcpOworICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3Vy
Y2VMb2FkQ2xpZW50KCkuZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoKndlYlBhZ2UsICptX2Zy
YW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0LCBwYWdlSXNQcm92aXNpb25hbGx5TG9hZGluZyk7CiAg
ICAgd2ViUGFnZS0+YWRkUmVzb3VyY2VSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QpOwogfQog
CkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hX
aWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb24KICAgICBpZiAoIXdl
YlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVz
b3VyY2VMb2FkQ2xpZW50KCkud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUod2ViUGFnZSwgbV9mcmFt
ZSwgaWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgd2ViUGFnZS0+
aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS53aWxsU2VuZFJlcXVlc3RGb3JGcmFt
ZSgqd2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOwogfQogCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTE4
NCw3ICsxODQsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkCiAgICAgaWYgKCF3ZWJQYWdlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRs
ZVJlc291cmNlTG9hZENsaWVudCgpLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHdlYlBhZ2Us
IG1fZnJhbWUsIGlkZW50aWZpZXIpOworICAgIHJldHVybiB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRs
ZVJlc291cmNlTG9hZENsaWVudCgpLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCp3ZWJQYWdl
LCAqbV9mcmFtZSwgaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5n
ZSkKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkCiAgICAgaWYgKCF3
ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJl
c291cmNlTG9hZENsaWVudCgpLmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKHdlYlBhZ2Us
IG1fZnJhbWUsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1
bmRsZVJlc291cmNlTG9hZENsaWVudCgpLmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKCp3
ZWJQYWdlLCAqbV9mcmFtZSwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogfQogCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCkKQEAgLTIy
Myw3ICsyMjMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaQogICAgIGlmICghd2ViUGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxv
YWRDbGllbnQoKS5kaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKHdlYlBhZ2UsIG1f
ZnJhbWUsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgpOworICAgIHdlYlBhZ2UtPmluamVjdGVkQnVu
ZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJj
ZSgqd2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgpOwogfQogCiAjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJQ
YWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgpLmRpZEZpbmlzaExvYWRGb3JS
ZXNvdXJjZSh3ZWJQYWdlLCBtX2ZyYW1lLCBpZGVudGlmaWVyKTsKKyAgICB3ZWJQYWdlLT5pbmpl
Y3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgpLmRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSgq
d2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIpOwogICAgIHdlYlBhZ2UtPnJlbW92ZVJlc291
cmNlUmVxdWVzdChpZGVudGlmaWVyKTsKIH0KIApAQCAtMjUyLDcgKzI1Miw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgpLmRpZEZhaWxMb2Fk
Rm9yUmVzb3VyY2Uod2ViUGFnZSwgbV9mcmFtZSwgaWRlbnRpZmllciwgZXJyb3IpOworICAgIHdl
YlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuZGlkRmFpbExvYWRGb3JS
ZXNvdXJjZSgqd2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIsIGVycm9yKTsKICAgICB3ZWJQ
YWdlLT5yZW1vdmVSZXNvdXJjZVJlcXVlc3QoaWRlbnRpZmllcik7CiB9CiAKQEAgLTE3MDEsNyAr
MTcwMSw3IEBAIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxs
Q2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuCiAgICAgaWYgKCF3ZWJQYWdlKQogICAg
ICAgICByZXR1cm4gcmVzcG9uc2U7CiAKLSAgICByZXR1cm4gd2ViUGFnZS0+aW5qZWN0ZWRCdW5k
bGVSZXNvdXJjZUxvYWRDbGllbnQoKS5zaG91bGRDYWNoZVJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJh
bWUsIGlkZW50aWZpZXIpID8gcmVzcG9uc2UgOiBuaWw7CisgICAgcmV0dXJuIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuc2hvdWxkQ2FjaGVSZXNwb25zZSgqd2Vi
UGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIpID8gcmVzcG9uc2UgOiBuaWw7CiB9CiAKIE5TRGlj
dGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRhdGFEZXRlY3Rpb25Db250ZXh0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1NmI5
ZmQ5ZWEyMS4uZTg1YTZmYTg5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0MCw2ICszNDAsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAg
ICAgLCBtX2VkaXRvckNsaWVudCB7IHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRs
ZTo6RWRpdG9yQ2xpZW50PigpIH0KICAgICAsIG1fZm9ybUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ+KCkpCiAgICAgLCBtX2xvYWRlckNsaWVu
dChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VMb2FkZXJDbGllbnQ+
KCkpCisgICAgLCBtX3Jlc291cmNlTG9hZENsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6SW5q
ZWN0ZWRCdW5kbGU6OlJlc291cmNlTG9hZENsaWVudD4oKSkKICAgICAsIG1fdWlDbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KCkpCiAgICAg
LCBtX2ZpbmRDb250cm9sbGVyKG1ha2VVbmlxdWVSZWY8RmluZENvbnRyb2xsZXI+KHRoaXMpKQog
ICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpn
ZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnVzZXJDb250ZW50Q29udHJvbGxlcklEKSkKQEAgLTc0Nyw5
ICs3NDgsMTIgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQb2xpY3lD
bGllbnQoV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50QmFzZSoKICAgICBtX3BvbGljeUNsaWVudC5p
bml0aWFsaXplKGNsaWVudCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KFdLQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudEJh
c2UqIGNsaWVudCkKK3ZvaWQgV2ViUGFnZTo6c2V0SW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRD
bGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlJlc291cmNlTG9hZENs
aWVudD4mJiBjbGllbnQpCiB7Ci0gICAgbV9yZXNvdXJjZUxvYWRDbGllbnQuaW5pdGlhbGl6ZShj
bGllbnQpOworICAgIGlmICghbV9yZXNvdXJjZUxvYWRDbGllbnQpCisgICAgICAgIG1fcmVzb3Vy
Y2VMb2FkQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpSZXNv
dXJjZUxvYWRDbGllbnQ+KCk7CisgICAgZWxzZQorICAgICAgICBtX3Jlc291cmNlTG9hZENsaWVu
dCA9IFdURk1vdmUoY2xpZW50KTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRJbmplY3RlZEJ1bmRs
ZVVJQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGll
bnQ+IHVpQ2xpZW50KQpAQCAtMTE1MCw3ICsxMTU0LDcgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgp
CiAgICAgbV9mb3JtQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxl
OjpGb3JtQ2xpZW50PigpOwogICAgIG1fbG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxB
UEk6OkluamVjdGVkQnVuZGxlOjpQYWdlTG9hZGVyQ2xpZW50PigpOwogICAgIG1fcG9saWN5Q2xp
ZW50LmluaXRpYWxpemUoMCk7Ci0gICAgbV9yZXNvdXJjZUxvYWRDbGllbnQuaW5pdGlhbGl6ZSgw
KTsKKyAgICBtX3Jlc291cmNlTG9hZENsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpJbmpl
Y3RlZEJ1bmRsZTo6UmVzb3VyY2VMb2FkQ2xpZW50PigpOwogICAgIG1fdWlDbGllbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VVSUNsaWVudD4oKTsKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgbV9mdWxsU2NyZWVuQ2xpZW50LmluaXRpYWxpemUo
MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1
YmZkY2Y2N2Y2Ny4uNzZkNDg4NjIxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAiQVBJSW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGll
bnQuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFn
ZVBvbGljeUNsaWVudC5oIgotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudC5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCkBAIC0zMzIsNyArMzMy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KHN0ZDo6
dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50Pik7CiAgICAgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5q
ZWN0ZWRCdW5kbGU6OlBhZ2VMb2FkZXJDbGllbnQ+KTsKICAgICB2b2lkIGluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZVBvbGljeUNsaWVudChXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKik7Ci0g
ICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50QmFzZSopOworICAgIHZvaWQgc2V0SW5qZWN0ZWRCdW5k
bGVSZXNvdXJjZUxvYWRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6
OlJlc291cmNlTG9hZENsaWVudD4mJik7CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVVJQ2xp
ZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KTsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRC
dW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKik7
CkBAIC0zNDUsNyArMzQ1LDcgQEAgcHVibGljOgogICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZv
cm1DbGllbnQmIGluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpIHsgcmV0dXJuICptX2Zvcm1DbGll
bnQuZ2V0KCk7IH0KICAgICBBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlTG9hZGVyQ2xpZW50JiBp
bmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpIHsgcmV0dXJuICptX2xvYWRlckNsaWVudDsgfQog
ICAgIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVQb2xpY3lD
bGllbnQoKSB7IHJldHVybiBtX3BvbGljeUNsaWVudDsgfQotICAgIEluamVjdGVkQnVuZGxlUGFn
ZVJlc291cmNlTG9hZENsaWVudCYgaW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKSB7
IHJldHVybiBtX3Jlc291cmNlTG9hZENsaWVudDsgfQorICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6
OlJlc291cmNlTG9hZENsaWVudCYgaW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKSB7
IHJldHVybiAqbV9yZXNvdXJjZUxvYWRDbGllbnQ7IH0KICAgICBBUEk6OkluamVjdGVkQnVuZGxl
OjpQYWdlVUlDbGllbnQmIGluamVjdGVkQnVuZGxlVUlDbGllbnQoKSB7IHJldHVybiAqbV91aUNs
aWVudC5nZXQoKTsgfQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBJbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQo
KSB7IHJldHVybiBtX2Z1bGxTY3JlZW5DbGllbnQ7IH0KQEAgLTEzODQsNyArMTM4NCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGll
bnQ+IG1fZm9ybUNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJbmplY3RlZEJ1bmRs
ZTo6UGFnZUxvYWRlckNsaWVudD4gbV9sb2FkZXJDbGllbnQ7CiAgICAgSW5qZWN0ZWRCdW5kbGVQ
YWdlUG9saWN5Q2xpZW50IG1fcG9saWN5Q2xpZW50OwotICAgIEluamVjdGVkQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudCBtX3Jlc291cmNlTG9hZENsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8QVBJOjpJbmplY3RlZEJ1bmRsZTo6UmVzb3VyY2VMb2FkQ2xpZW50PiBtX3Jlc291cmNlTG9h
ZENsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJ
Q2xpZW50PiBtX3VpQ2xpZW50OwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNsaWVudDsK
</data>
<flag name="review"
          id="333774"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>