<?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>175183</bug_id>
          
          <creation_ts>2017-08-04 03:54:35 -0700</creation_ts>
          <short_desc>WebDriver: Implement page load strategy</short_desc>
          <delta_ts>2017-08-05 04:15:56 -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>WebKit Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>174618</dependson>
          <blocked>166679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1335208</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-04 03:54:35 -0700</bug_when>
    <thetext>https://w3c.github.io/webdriver/webdriver-spec.html#navigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335225</commentid>
    <comment_count>1</comment_count>
      <attachid>317239</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-04 06:04:22 -0700</bug_when>
    <thetext>Created attachment 317239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335346</commentid>
    <comment_count>2</comment_count>
      <attachid>317239</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-04 11:12:52 -0700</bug_when>
    <thetext>Comment on attachment 317239
Patch

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

r=me, great work. Please send through EWS before landing.

&gt; Source/WebKit/ChangeLog:8
&gt; +        Split pending navigation maps into normal and eager, and one or the other depending on the received page load strategy.

Nit: ... and *use* one or the other ...

You don&apos;t actually say why two maps are needed here.

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:459
&gt; +static void finishPendingNavigationsWithTimeoutFailure(HashMap&lt;uint64_t, RefPtr&lt;Inspector::BackendDispatcher::CallbackBase&gt;&gt;&amp; map)

Nit: I prefer a name like &quot;respondToPendingNavigationCallbacksWithTimeout&quot; or something.

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:519
&gt; +    Inspector::Protocol::Automation::PageLoadStrategy pageLoadStrategy = defaultPageLoadStrategy;

Okay, we have this same code three times. Can you extract it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335683</commentid>
    <comment_count>3</comment_count>
      <attachid>317334</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-05 02:50:23 -0700</bug_when>
    <thetext>Created attachment 317334
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335689</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-05 04:14:44 -0700</bug_when>
    <thetext>Committed r220317: &lt;http://trac.webkit.org/changeset/220317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335690</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-05 04:15:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/33740067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317239</attachid>
            <date>2017-08-04 06:04:22 -0700</date>
            <delta_ts>2017-08-05 02:50:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-page-load-strategy.diff</filename>
            <type>text/plain</type>
            <size>31098</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NhcGFiaWxpdGllcy5oCmluZGV4IDE3NTUyZDQzMWQ1Li5lMTE1NzNkZGU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NhcGFiaWxpdGllcy5oCkBAIC0zOCwxMiArMzgsMTkgQEAgc3RydWN0IFRpbWVvdXRz
IHsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGltcGxpY2l0OwogfTsKIAorZW51bSBjbGFz
cyBQYWdlTG9hZFN0cmF0ZWd5IHsKKyAgICBOb25lLAorICAgIE5vcm1hbCwKKyAgICBFYWdlcgor
fTsKKwogc3RydWN0IENhcGFiaWxpdGllcyB7CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGJy
b3dzZXJOYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBicm93c2VyVmVyc2lvbjsKICAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGxhdGZvcm1OYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gYWNjZXB0SW5zZWN1cmVDZXJ0czsKICAgICBzdGQ6Om9wdGlvbmFsPFRpbWVvdXRzPiB0
aW1lb3V0czsKKyAgICBzdGQ6Om9wdGlvbmFsPFBhZ2VMb2FkU3RyYXRlZ3k+IHBhZ2VMb2FkU3Ry
YXRlZ3k7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBicm93
c2VyQmluYXJ5OwogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGJyb3dzZXJBcmd1
bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IGZmOTYxYTE0MjM5Li4yMDA4OTk5MzQyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0wOC0wNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBJbXBsZW1lbnQg
cGFnZSBsb2FkIHN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzUxODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBWYWxpZGF0ZSBhbmQgcGFyc2UgcGFnZSBsb2FkIHN0cmF0ZWd5IHdoZW4gcHJv
Y2Vzc2luZyBjYXBhYmlsaXRpZXMuCisKKyAgICAgICAgKiBDYXBhYmlsaXRpZXMuaDoKKyAgICAg
ICAgKiBTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6cGFnZUxvYWRT
dHJhdGVneVN0cmluZyBjb25zdCk6IEhlbHBlciB0byBnZXQgdGhlIHBhZ2UgbG9hZCBzdHJhdGVn
eSBhcyBhIFN0cmluZyB0byBiZQorICAgICAgICBwYXNzZWQgdG8gQXV0b21hdGlvbi4KKyAgICAg
ICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6Z28pOiBQYXNzIHBhZ2UgbG9hZCBzdHJhdGVneSBpZiBw
cmVzZW50LgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpiYWNrKTogRGl0dG8uCisgICAg
ICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmZvcndhcmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkRy
aXZlcjo6U2Vzc2lvbjo6cmVmcmVzaCk6IERpdHRvLgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNz
aW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUpOiBEaXR0by4KKyAgICAgICAgKiBTZXNz
aW9uLmg6CisgICAgICAgICogV2ViRHJpdmVyU2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2
ZXI6OmRlc2VyaWFsaXplUGFnZUxvYWRTdHJhdGVneSk6CisgICAgICAgIChXZWJEcml2ZXI6Oldl
YkRyaXZlclNlcnZpY2U6OnBhcnNlQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkRy
aXZlcjo6V2ViRHJpdmVyU2VydmljZTo6dmFsaWRhdGVkQ2FwYWJpbGl0aWVzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbik6CisKIDIwMTct
MDgtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBwcm92aWRlIGJyb3dzZXIgaW5mb3JtYXRpb24gcmVx
dWlyZWQgYnkgYXV0b21hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggN2Q0MzY5MWY5NzguLmQy
YTZiNDIzYjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTEwMiw2ICsxMDIsMjMgQEAgdm9pZCBT
ZXNzaW9uOjpzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYnJv
d3NpbmdDb250ZXh0KQogICAgICAgICBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQgPSBicm93c2lu
Z0NvbnRleHQ7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0
cmF0ZWd5U3RyaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIWNhcGFiaWxpdGllcygpLnBhZ2VMb2Fk
U3RyYXRlZ3kpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzd2l0Y2ggKGNh
cGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgeworICAgIGNhc2UgUGFnZUxv
YWRTdHJhdGVneTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgIGNh
c2UgUGFnZUxvYWRTdHJhdGVneTo6Tm9ybWFsOgorICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3Jt
YWwiKTsKKyAgICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgorICAgICAgICByZXR1cm4g
U3RyaW5nKCJFYWdlciIpOworICAgIH0KKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisK
IHZvaWQgU2Vzc2lvbjo6Y3JlYXRlVG9wTGV2ZWxCcm93c2luZ0NvbnRleHQoRnVuY3Rpb248dm9p
ZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CkBAIC0xMzgsNiArMTU1LDggQEAg
dm9pZCBTZXNzaW9uOjpnbyhjb25zdCBTdHJpbmcmIHVybCwgRnVuY3Rpb248dm9pZCAoQ29tbWFu
ZFJlc3VsdCYmKT4mJiBjb21wbGV0aW8KICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlM
aXRlcmFsKCJ1cmwiKSwgdXJsKTsKICAgICBpZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKICAgICAg
ICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIp
LCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVlKCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKKyAg
ICBpZiAoYXV0byBwYWdlTG9hZFN0cmF0ZWd5ID0gcGFnZUxvYWRTdHJhdGVneVN0cmluZygpKQor
ICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0
ZWd5IiksIHBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFu
ZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoIm5hdmlnYXRlQnJvd3NpbmdDb250ZXh0IiksIFdURk1v
dmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0
OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNF
cnJvcikgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtMTg3LDYgKzIwNiw4IEBA
IHZvaWQgU2Vzc2lvbjo6YmFjayhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwo
ImhhbmRsZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIGlmICht
X3RpbWVvdXRzLnBhZ2VMb2FkKQogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJ
TGl0ZXJhbCgicGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5t
aWxsaXNlY29uZHNBczxpbnQ+KCkpOworICAgIGlmIChhdXRvIHBhZ2VMb2FkU3RyYXRlZ3kgPSBw
YWdlTG9hZFN0cmF0ZWd5U3RyaW5nKCkpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhB
U0NJSUxpdGVyYWwoInBhZ2VMb2FkU3RyYXRlZ3kiKSwgcGFnZUxvYWRTdHJhdGVneS52YWx1ZSgp
KTsKICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgiZ29CYWNr
SW5Ccm93c2luZ0NvbnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7
CiAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmpl
Y3QpKSk7CkBAIC0yMDgsNiArMjI5LDggQEAgdm9pZCBTZXNzaW9uOjpmb3J3YXJkKEZ1bmN0aW9u
PHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgcGFyYW1l
dGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2lu
Z0NvbnRleHQudmFsdWUoKSk7CiAgICAgaWYgKG1fdGltZW91dHMucGFnZUxvYWQpCiAgICAgICAg
IHBhcmFtZXRlcnMtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwg
bV90aW1lb3V0cy5wYWdlTG9hZC52YWx1ZSgpLm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CisgICAg
aWYgKGF1dG8gcGFnZUxvYWRTdHJhdGVneSA9IHBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSkKKyAg
ICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRTdHJhdGVn
eSIpLCBwYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRU
b0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCIpLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9z
dDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlz
RXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTIyOSw2ICsyNTIsOCBA
QCB2b2lkIFNlc3Npb246OnJlZnJlc2goRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRl
cmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBp
ZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKICAgICAgICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihB
U0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVl
KCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKKyAgICBpZiAoYXV0byBwYWdlTG9hZFN0cmF0ZWd5
ID0gcGFnZUxvYWRTdHJhdGVneVN0cmluZygpKQorICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJp
bmcoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksIHBhZ2VMb2FkU3RyYXRlZ3kudmFs
dWUoKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoInJl
bG9hZEJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2Up
IHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9i
amVjdCkpKTsKQEAgLTk2Nyw2ICs5OTIsOCBAQCB2b2lkIFNlc3Npb246OndhaXRGb3JOYXZpZ2F0
aW9uVG9Db21wbGV0ZShGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbQogICAg
ICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJmcmFtZUhhbmRsZSIpLCBt
X2N1cnJlbnRCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CiAgICAgaWYgKG1fdGltZW91dHMucGFn
ZUxvYWQpCiAgICAgICAgIHBhcmFtZXRlcnMtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJwYWdl
TG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0cy5wYWdlTG9hZC52YWx1ZSgpLm1pbGxpc2Vjb25kc0Fz
PGludD4oKSk7CisgICAgaWYgKGF1dG8gcGFnZUxvYWRTdHJhdGVneSA9IHBhZ2VMb2FkU3RyYXRl
Z3lTdHJpbmcoKSkKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgi
cGFnZUxvYWRTdHJhdGVneSIpLCBwYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpOwogICAgIG1faG9z
dC0+c2VuZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJ3YWl0Rm9yTmF2aWdhdGlvblRv
Q29tcGxldGUiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAg
IGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IENvbW1h
bmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Np
b24uaAppbmRleCA3MGQ3MjA2ZjBlNS4uNDkyMjkyNWZkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCkBAIC0x
MDEsNiArMTAxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHN3aXRjaFRvVG9wTGV2ZWxCcm93c2lu
Z0NvbnRleHQoc3RkOjpvcHRpb25hbDxTdHJpbmc+KTsKICAgICB2b2lkIHN3aXRjaFRvQnJvd3Np
bmdDb250ZXh0KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPik7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gcGFnZUxvYWRTdHJhdGVneVN0cmluZygpIGNvbnN0OworCiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFbGVtZW50KFJlZlB0cjxJbnNwZWN0b3I6Oklu
c3BlY3RvclZhbHVlPiYmKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZUVsZW1lbnQoY29uc3QgU3RyaW5nJiBlbGVtZW50SUQpOwogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gZXh0cmFjdEVsZW1lbnQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JWYWx1ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNl
LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggNGRhYjhj
YzgwZjcuLmI5ODJhMGRmYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZl
clNlcnZpY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAK
QEAgLTI3Nyw2ICsyNzcsMTcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VGltZW91dHM+IGRlc2Vy
aWFsaXplVGltZW91dHMoSW5zcGVjdG9yT2JqZWN0JiB0aW1lb3V0c09iamUKICAgICByZXR1cm4g
dGltZW91dHM7CiB9CiAKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPFBhZ2VMb2FkU3RyYXRlZ3k+IGRl
c2VyaWFsaXplUGFnZUxvYWRTdHJhdGVneShjb25zdCBTdHJpbmcmIHBhZ2VMb2FkU3RyYXRlZ3kp
Cit7CisgICAgaWYgKHBhZ2VMb2FkU3RyYXRlZ3kgPT0gIm5vbmUiKQorICAgICAgICByZXR1cm4g
UGFnZUxvYWRTdHJhdGVneTo6Tm9uZTsKKyAgICBpZiAocGFnZUxvYWRTdHJhdGVneSA9PSAibm9y
bWFsIikKKyAgICAgICAgcmV0dXJuIFBhZ2VMb2FkU3RyYXRlZ3k6Ok5vcm1hbDsKKyAgICBpZiAo
cGFnZUxvYWRTdHJhdGVneSA9PSAiZWFnZXIiKQorICAgICAgICByZXR1cm4gUGFnZUxvYWRTdHJh
dGVneTo6RWFnZXI7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwogdm9pZCBXZWJEcml2
ZXJTZXJ2aWNlOjpwYXJzZUNhcGFiaWxpdGllcyhjb25zdCBJbnNwZWN0b3JPYmplY3QmIG1hdGNo
ZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKSBjb25zdAogewogICAg
IC8vIE1hdGNoZWQgY2FwYWJpbGl0aWVzIGhhdmUgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZC4KQEAg
LTI5NSw2ICszMDYsOSBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBhcnNlQ2FwYWJpbGl0aWVz
KGNvbnN0IEluc3BlY3Rvck9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdAogICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHRpbWVvdXRzOwogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9i
amVjdChBU0NJSUxpdGVyYWwoInRpbWVvdXRzIiksIHRpbWVvdXRzKSkKICAgICAgICAgY2FwYWJp
bGl0aWVzLnRpbWVvdXRzID0gZGVzZXJpYWxpemVUaW1lb3V0cygqdGltZW91dHMpOworICAgIFN0
cmluZyBwYWdlTG9hZFN0cmF0ZWd5OworICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldFN0
cmluZyhBU0NJSUxpdGVyYWwoInBhZ2VMb2FkU3RyYXRlZ3kiKSwgcGFnZUxvYWRTdHJhdGVneSkp
CisgICAgICAgIGNhcGFiaWxpdGllcy5wYWdlTG9hZFN0cmF0ZWd5ID0gZGVzZXJpYWxpemVQYWdl
TG9hZFN0cmF0ZWd5KHBhZ2VMb2FkU3RyYXRlZ3kpOwogICAgIHBsYXRmb3JtUGFyc2VDYXBhYmls
aXRpZXMobWF0Y2hlZENhcGFiaWxpdGllcywgY2FwYWJpbGl0aWVzKTsKIH0KIApAQCAtMzM2LDkg
KzM1MCw4IEBAIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFdlYkRyaXZlclNlcnZpY2U6OnZhbGlk
YXRlZENhcGFiaWxpdGllcyhjb25zdCBJbnNwZWN0b3JPCiAgICAgICAgICAgICByZXN1bHQtPnNl
dFN0cmluZyhpdC0+a2V5LCBzdHJpbmdWYWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXQtPmtl
eSA9PSAicGFnZUxvYWRTdHJhdGVneSIpIHsKICAgICAgICAgICAgIFN0cmluZyBwYWdlTG9hZFN0
cmF0ZWd5OwotICAgICAgICAgICAgaWYgKCFpdC0+dmFsdWUtPmFzU3RyaW5nKHBhZ2VMb2FkU3Ry
YXRlZ3kpKQorICAgICAgICAgICAgaWYgKCFpdC0+dmFsdWUtPmFzU3RyaW5nKHBhZ2VMb2FkU3Ry
YXRlZ3kpIHx8ICFkZXNlcmlhbGl6ZVBhZ2VMb2FkU3RyYXRlZ3kocGFnZUxvYWRTdHJhdGVneSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
aW1wbGVtZW50IHBhZ2VMb2FkU3RyYXRlZ3kuCiAgICAgICAgICAgICByZXN1bHQtPnNldFN0cmlu
ZyhpdC0+a2V5LCBwYWdlTG9hZFN0cmF0ZWd5KTsKICAgICAgICAgfSBlbHNlIGlmIChpdC0+a2V5
ID09ICJwcm94eSIpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJveHkgc3Vw
cG9ydC4KQEAgLTU0Myw2ICs1NTYsMTkgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNz
aW9uKFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb24KICAgICAg
ICAgICAgICAgICAgICAgdGltZW91dHNPYmplY3QtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJp
bXBsaWNpdCIpLCBjYXBhYmlsaXRpZXMudGltZW91dHMudmFsdWUoKS5pbXBsaWNpdC52YWx1ZSgp
Lm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CiAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzT2Jq
ZWN0LT5zZXRPYmplY3QoQVNDSUlMaXRlcmFsKCJ0aW1lb3V0cyIpLCBXVEZNb3ZlKHRpbWVvdXRz
T2JqZWN0KSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2FwYWJpbGl0aWVzLnBh
Z2VMb2FkU3RyYXRlZ3kpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNhcGFiaWxpdGllcy5w
YWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vbmU6CisgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+
c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRTdHJhdGVneSIpLCAibm9uZSIpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBhZ2VMb2FkU3Ry
YXRlZ3k6Ok5vcm1hbDoKKyAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzT2JqZWN0LT5z
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksICJub3JtYWwiKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQYWdlTG9hZFN0
cmF0ZWd5OjpFYWdlcjoKKyAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzT2JqZWN0LT5z
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksICJlYWdlciIpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICByZXN1bHRPYmplY3QtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoInZhbHVl
IiksIFdURk1vdmUoY2FwYWJpbGl0aWVzT2JqZWN0KSk7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKFdURk1vdmUocmVzdWx0T2JqZWN0KSkpOwog
ICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWU4YjY1YWMxYjAuLmJmZjFjNzc3NDUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA4LTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IEltcGxlbWVudCBwYWdlIGxv
YWQgc3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTE4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNwbGl0IHBlbmRpbmcgbmF2aWdhdGlvbiBtYXBzIGludG8gbm9ybWFsIGFuZCBlYWdlciwg
YW5kIG9uZSBvciB0aGUgb3RoZXIgZGVwZW5kaW5nIG9uIHRoZSByZWNlaXZlZCBwYWdlIGxvYWQg
c3RyYXRlZ3kuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0
Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUpOiBFeHRyYWN0IHBhZ2UgbG9hZCBzdHJhdGVneSBmcm9t
IHBhcmFtZXRlciBhbmQgcGFzcworICAgICAgICBpdCB0byB3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGVPblBhZ2UoKSBhbmQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZSgpLgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25U
b0NvbXBsZXRlT25QYWdlKTogUmV0dXJuIGVhcmx5IGlmIHBhZ2UgbG9hZCBzdHJhdGVneSBpcwor
ICAgICAgICBub25lLiBPdGhlcndpc2UgYXQgdGhlIHBlbmluZyBjYWxsYmFjayB0byB0aGUgbm9y
bWFsIG9yIGVhZ2VyIG1hcCBkZXBlZGluZyBvbiB0aGUgcGFnZSBsb2FkIHN0cmFlZ3kuCisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGVPbkZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OmZpbmlzaFBlbmRpbmdOYXZp
Z2F0aW9uc1dpdGhUaW1lb3V0RmFpbHVyZSk6IEhlbHBlciB0byBzZW5kIHBlbmluZyBuYXZpZ2F0
aW9uIGNhbGxiYWNrIGluIGNhc2Ugb2YKKyAgICAgICAgdGltZW91dCBmYWlsdXJlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bG9hZFRpbWVyRmlyZWQpOiBDYWxsIGZp
bmlzaFBlbmRpbmdOYXZpZ2F0aW9uc1dpdGhUaW1lb3V0RmFpbHVyZSgpIHdpdGggYWxsIHRoZSBt
YXBzLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93
c2luZ0NvbnRleHQpOiBFeHRyYWN0IHBhZ2UgbG9hZCBzdHJhdGVneSBmcm9tIHBhcmFtZXRlciBh
bmQgcGFzcyBpdAorICAgICAgICB0byB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2Uo
KS4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmdvQmFja0luQnJvd3Np
bmdDb250ZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
Ojpnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JG
cmFtZSk6IFVzZSB0aGUgbm9ybWFsIG1hcHMuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpkb2N1bWVudExvYWRlZEZvckZyYW1lKTogU3RvcCB0aW1lb3V0IHRpbWVyIGFu
ZCBkaXNwYXRjaCBlYWdlciBwZW5kaW5nIG5hdmlnYXRpb25zLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUpOiBOb3RpZnkgdGhlIGF1dG9tYXRpb24gc2Vzc2lvbi4K
KwogMjAxNy0wOC0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIHByb3ZpZGUgYnJvd3NlciBpbmZvcm1h
dGlvbiByZXF1aXJlZCBieSBhdXRvbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDlm
MDE2MWJhNzM1Li41OWMzYTUzZTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTU0LDYg
KzU0LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyDCpzguIFNlc3Npb25zCiAvLyBodHRwczov
L3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tc2Vzc2lvbi1wYWdlLWxvYWQtdGltZW91dAog
c3RhdGljIGNvbnN0IFNlY29uZHMgZGVmYXVsdFBhZ2VMb2FkVGltZW91dCA9IDMwMF9zOworLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLXBhZ2UtbG9hZGluZy1zdHJhdGVn
eQorc3RhdGljIGNvbnN0IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2Fk
U3RyYXRlZ3kgZGVmYXVsdFBhZ2VMb2FkU3RyYXRlZ3kgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw7CiAKIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbigpCiAgICAgOiBtX2NsaWVudChzdGQ6Om1ha2VfdW5p
cXVlPEFQSTo6QXV0b21hdGlvblNlc3Npb25DbGllbnQ+KCkpCkBAIC0zOTEsOSArMzkzLDE0IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KLQotICAgIFNlY29uZHMgcGFnZUxvYWRUaW1lb3V0
ID0gb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpv
cHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0OworICAgIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3kgcGFnZUxvYWRT
dHJhdGVneSA9IGRlZmF1bHRQYWdlTG9hZFN0cmF0ZWd5OworICAgIGlmIChvcHRpb25hbFBhZ2VM
b2FkU3RyYXRlZ3lTdHJpbmcpIHsKKyAgICAgICAgYXV0byBwYXJzZWRQYWdlTG9hZFN0cmF0ZWd5
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNlRW51bVZhbHVl
RnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0
ZWd5Pigqb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKTsKKyAgICAgICAgaWYgKCFwYXJz
ZWRQYWdlTG9hZFN0cmF0ZWd5KQorICAgICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJS
T1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3BhZ2VMb2Fk
U3RyYXRlZ3knIGlzIGludmFsaWQuIik7CisgICAgICAgIHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYXJz
ZWRQYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCk7CisgICAgfQorICAgIGF1dG8gcGFnZUxvYWRUaW1l
b3V0ID0gb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0OwogCiAg
ICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5kbGUtPmlzRW1w
dHkoKSkgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CkBAIC00MDIsNTcgKzQwOSw4NiBA
QCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZQogICAgICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlELnZhbHVlKCkpOwogICAgICAgICBpZiAo
IWZyYW1lKQogICAgICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RG
b3VuZCk7Ci0gICAgICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoKmZyYW1l
LCBwYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgd2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZSgqZnJhbWUsIHBhZ2VMb2FkU3RyYXRlZ3ksIHBhZ2VM
b2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0gZWxzZQotICAgICAgICB3YWl0
Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VMb2FkVGltZW91dCwgV1RG
TW92ZShjYWxsYmFjaykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBh
Z2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3ksIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxs
YmFjaykpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBTZWNvbmRzIHRpbWVvdXQsIFJl
ZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYgY2FsbGJhY2sp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
blBhZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpQYWdlTG9hZFN0cmF0ZWd5IGxvYWRTdHJhdGVneSwgU2Vjb25kcyB0aW1lb3V0LCBSZWY8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQogewog
ICAgIEFTU0VSVCghbV9sb2FkVGltZXIuaXNBY3RpdmUoKSk7Ci0gICAgaWYgKCFwYWdlLnBhZ2VM
b2FkU3RhdGUoKS5pc0xvYWRpbmcoKSkgeworICAgIGlmIChsb2FkU3RyYXRlZ3kgPT0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneTo6Tm9uZSB8fCAhcGFn
ZS5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkpIHsKICAgICAgICAgY2FsbGJhY2stPnNlbmRT
dWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgbV9sb2FkVGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQpOwotICAgIG1fcGVuZGlu
Z05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2Uuc2V0KHBhZ2UucGFn
ZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzd2l0Y2ggKGxvYWRTdHJhdGVneSkgewor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVn
eTo6Tm9ybWFsOgorICAgICAgICBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6UGFnZUxvYWRTdHJhdGVneTo6RWFnZXI6CisgICAgICAgIG1fcGVuZGluZ0VhZ2VyTmF2
aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS5zZXQocGFnZS5wYWdlSUQo
KSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3k6Ok5vbmU6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiBm
cmFtZSwgU2Vjb25kcyB0aW1lb3V0LCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6
Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2Fp
dEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiBmcmFtZSwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSBsb2FkU3RyYXRl
Z3ksIFNlY29uZHMgdGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4mJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoIW1fbG9hZFRpbWVyLmlzQWN0
aXZlKCkpOwotICAgIGlmIChmcmFtZS5mcmFtZUxvYWRTdGF0ZSgpLnN0YXRlKCkgPT0gRnJhbWVM
b2FkU3RhdGU6OlN0YXRlOjpGaW5pc2hlZCkgeworICAgIGlmIChsb2FkU3RyYXRlZ3kgPT0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneTo6Tm9uZSB8fCBm
cmFtZS5mcmFtZUxvYWRTdGF0ZSgpLnN0YXRlKCkgPT0gRnJhbWVMb2FkU3RhdGU6OlN0YXRlOjpG
aW5pc2hlZCkgewogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2xvYWRUaW1lci5z
dGFydE9uZVNob3QodGltZW91dCk7Ci0gICAgbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUuc2V0KGZyYW1lLmZyYW1lSUQoKSwgV1RGTW92ZShjYWxs
YmFjaykpOworICAgIHN3aXRjaCAobG9hZFN0cmF0ZWd5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6CisgICAgICAg
IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZy
YW1lLnNldChmcmFtZS5mcmFtZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0
cmF0ZWd5OjpFYWdlcjoKKyAgICAgICAgbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2lu
Z0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZS5zZXQoZnJhbWUuZnJhbWVJRCgpLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpsb2FkVGlt
ZXJGaXJlZCgpCitzdGF0aWMgdm9pZCBmaW5pc2hQZW5kaW5nTmF2aWdhdGlvbnNXaXRoVGltZW91
dEZhaWx1cmUoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCiB7Ci0gICAgZm9yIChhdXRvIGZyYW1lSUQgOiBt
X3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZS5rZXlz
KCkpIHsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dz
aW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRha2UoZnJhbWVJRCk7Ci0gICAgICAgIGNhbGxi
YWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0
KSk7Ci0gICAgfQotICAgIGZvciAoYXV0byBwYWdlSUQgOiBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5C
cm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLmtleXMoKSkgewotICAgICAgICBhdXRvIGNh
bGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVy
UGFnZS50YWtlKHBhZ2VJRCk7CisgICAgZm9yIChhdXRvIGlkIDogbWFwLmtleXMoKSkgeworICAg
ICAgICBhdXRvIGNhbGxiYWNrID0gbWFwLnRha2UoaWQpOwogICAgICAgICBjYWxsYmFjay0+c2Vu
ZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCkpOwogICAg
IH0KIH0KIAordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bG9hZFRpbWVyRmlyZWQoKQorewor
ICAgIGZpbmlzaFBlbmRpbmdOYXZpZ2F0aW9uc1dpdGhUaW1lb3V0RmFpbHVyZShtX3BlbmRpbmdO
b3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZSk7CisgICAg
ZmluaXNoUGVuZGluZ05hdmlnYXRpb25zV2l0aFRpbWVvdXRGYWlsdXJlKG1fcGVuZGluZ0VhZ2Vy
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUpOworICAgIGZpbmlz
aFBlbmRpbmdOYXZpZ2F0aW9uc1dpdGhUaW1lb3V0RmFpbHVyZShtX3BlbmRpbmdOb3JtYWxOYXZp
Z2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlKTsKKyAgICBmaW5pc2hQZW5k
aW5nTmF2aWdhdGlvbnNXaXRoVGltZW91dEZhaWx1cmUobV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9u
SW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlKTsKK30KKwogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCog
b3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQsIFJlZjxOYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dENhbGxi
YWNrPiYmIGNhbGxiYWNrKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94
eUZvckhhbmRsZShoYW5kbGUpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgLy8gRklYTUU6IEltcGxlbWVu
dCBwYWdlIGxvYWQgc3RyYXRlZ3kuCisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6UGFnZUxvYWRTdHJhdGVneSBwYWdlTG9hZFN0cmF0ZWd5ID0gZGVmYXVsdFBhZ2VMb2FkU3Ry
YXRlZ3k7CisgICAgaWYgKG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZykgeworICAgICAg
ICBhdXRvIHBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uSGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3k+KCpvcHRpb25hbFBhZ2VMb2FkU3RyYXRl
Z3lTdHJpbmcpOworICAgICAgICBpZiAoIXBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kpCisgICAgICAg
ICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1l
dGVyLCAiVGhlIHBhcmFtZXRlciAncGFnZUxvYWRTdHJhdGVneScgaXMgaW52YWxpZC4iKTsKKyAg
ICAgICAgcGFnZUxvYWRTdHJhdGVneSA9IHBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKTsK
KyAgICB9CisgICAgYXV0byBwYWdlTG9hZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGltZW91
dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6
IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQ7CiAKICAgICBwYWdlLT5sb2FkUmVxdWVzdChXZWJDb3Jl
OjpVUkwoV2ViQ29yZTo6VVJMKCksIHVybCkpOwotICAgIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21w
bGV0ZU9uUGFnZSgqcGFnZSwgb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRU
aW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBs
ZXRlT25QYWdlKCpwYWdlLCBwYWdlTG9hZFN0cmF0ZWd5LCBwYWdlTG9hZFRpbWVvdXQsIFdURk1v
dmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z29CYWNrSW5C
cm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0
cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPEdvQmFja0luQnJv
d3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCkBAIC00NjEsMTAgKzQ5NywxNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiBlcnJvcgogICAgIGlmICghcGFnZSkKICAgICAgICAgRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgLy8gRklYTUU6IEltcGxl
bWVudCBwYWdlIGxvYWQgc3RyYXRlZ3kuCisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6UGFnZUxvYWRTdHJhdGVneSBwYWdlTG9hZFN0cmF0ZWd5ID0gZGVmYXVsdFBhZ2VMb2Fk
U3RyYXRlZ3k7CisgICAgaWYgKG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZykgeworICAg
ICAgICBhdXRvIHBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uSGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3k+KCpvcHRpb25hbFBhZ2VMb2FkU3Ry
YXRlZ3lTdHJpbmcpOworICAgICAgICBpZiAoIXBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kpCisgICAg
ICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFy
YW1ldGVyLCAiVGhlIHBhcmFtZXRlciAncGFnZUxvYWRTdHJhdGVneScgaXMgaW52YWxpZC4iKTsK
KyAgICAgICAgcGFnZUxvYWRTdHJhdGVneSA9IHBhcnNlZFBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUo
KTsKKyAgICB9CisgICAgYXV0byBwYWdlTG9hZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGlt
ZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQ7CiAKICAgICBwYWdlLT5nb0JhY2soKTsKLSAgICB3
YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxvYWRU
aW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVv
dXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHdh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgcGFnZUxvYWRTdHJhdGVneSwg
cGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBv
cHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9h
ZFRpbWVvdXQsIFJlZjxHb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxi
YWNrKQpAQCAtNDczLDEwICs1MTYsMTcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z29G
b3J3YXJkSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXIKICAgICBp
ZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorICAg
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3kgcGFnZUxv
YWRTdHJhdGVneSA9IGRlZmF1bHRQYWdlTG9hZFN0cmF0ZWd5OworICAgIGlmIChvcHRpb25hbFBh
Z2VMb2FkU3RyYXRlZ3lTdHJpbmcpIHsKKyAgICAgICAgYXV0byBwYXJzZWRQYWdlTG9hZFN0cmF0
ZWd5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNlRW51bVZh
bHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0
cmF0ZWd5Pigqb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nKTsKKyAgICAgICAgaWYgKCFw
YXJzZWRQYWdlTG9hZFN0cmF0ZWd5KQorICAgICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3BhZ2VM
b2FkU3RyYXRlZ3knIGlzIGludmFsaWQuIik7CisgICAgICAgIHBhZ2VMb2FkU3RyYXRlZ3kgPSBw
YXJzZWRQYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCk7CisgICAgfQorICAgIGF1dG8gcGFnZUxvYWRU
aW1lb3V0ID0gb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNv
bmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0Owog
CiAgICAgcGFnZS0+Z29Gb3J3YXJkKCk7Ci0gICAgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRl
T25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/IFNlY29uZHM6OmZyb21NaWxs
aXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVv
dXQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
blBhZ2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3ksIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2lu
Z0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZywg
Y29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPFJlbG9hZEJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQpAQCAtNDg1LDEwICs1MzUsMTcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmIGVycm9yU3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFn
ZSBsb2FkIHN0cmF0ZWd5LgorICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBh
Z2VMb2FkU3RyYXRlZ3kgcGFnZUxvYWRTdHJhdGVneSA9IGRlZmF1bHRQYWdlTG9hZFN0cmF0ZWd5
OworICAgIGlmIChvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcpIHsKKyAgICAgICAgYXV0
byBwYXJzZWRQYWdlTG9hZFN0cmF0ZWd5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5Pigqb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3Ry
aW5nKTsKKyAgICAgICAgaWYgKCFwYXJzZWRQYWdlTG9hZFN0cmF0ZWd5KQorICAgICAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwg
IlRoZSBwYXJhbWV0ZXIgJ3BhZ2VMb2FkU3RyYXRlZ3knIGlzIGludmFsaWQuIik7CisgICAgICAg
IHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYXJzZWRQYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCk7CisgICAg
fQorICAgIGF1dG8gcGFnZUxvYWRUaW1lb3V0ID0gb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQgPyBT
ZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBkZWZh
dWx0UGFnZUxvYWRUaW1lb3V0OwogCiAgICAgcGFnZS0+cmVsb2FkKHsgfSk7Ci0gICAgd2FpdEZv
ck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2FkVGltZW91
dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6
IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9y
TmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3ksIHBhZ2VM
b2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBm
cmFtZSkKQEAgLTQ5NywxMyArNTU0LDI4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5h
dmlnYXRpb25PY2N1cnJlZEZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lCiAgICAg
ICAgIC8vIE5ldyBwYWdlIGxvYWRlZCwgY2xlYXIgZnJhbWUgaGFuZGxlcyBwcmV2aW91c2x5IGNh
Y2hlZC4KICAgICAgICAgbV9oYW5kbGVXZWJGcmFtZU1hcC5jbGVhcigpOwogICAgICAgICBtX3dl
YkZyYW1lSGFuZGxlTWFwLmNsZWFyKCk7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKGZy
YW1lLnBhZ2UoKS0+cGFnZUlEKCkpKSB7CisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9w
ZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50
YWtlKGZyYW1lLnBhZ2UoKS0+cGFnZUlEKCkpKSB7CiAgICAgICAgICAgICBtX2xvYWRUaW1lci5z
dG9wKCk7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9kb21haW5Ob3RpZmllci0+YnJvd3Np
bmdDb250ZXh0Q2xlYXJlZChoYW5kbGVGb3JXZWJQYWdlUHJveHkoKmZyYW1lLnBhZ2UoKSkpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUudGFrZShmcmFtZS5mcmFtZUlE
KCkpKSB7CisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTm9ybWFsTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUudGFrZShmcmFtZS5mcmFtZUlE
KCkpKSB7CisgICAgICAgICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CisgICAgICAgICAgICBjYWxs
YmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRvY3VtZW50TG9hZGVkRm9y
RnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUpCit7CisgICAgaWYgKGZyYW1lLmlzTWFp
bkZyYW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdFYWdlck5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShmcmFtZS5wYWdl
KCktPnBhZ2VJRCgpKSkgeworICAgICAgICAgICAgbV9sb2FkVGltZXIuc3RvcCgpOworICAgICAg
ICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwor
ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3Bl
bmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRh
a2UoZnJhbWUuZnJhbWVJRCgpKSkgewogICAgICAgICAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwog
ICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggN2I3NjU3YTk1Y2MuLjNhNzQ2
MWEyZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQb29sKik7CiAKICAgICB2b2lkIG5hdmln
YXRpb25PY2N1cnJlZEZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKKyAgICB2b2lkIGRv
Y3VtZW50TG9hZGVkRm9yRnJhbWUoY29uc3QgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQgaW5z
cGVjdG9yRnJvbnRlbmRMb2FkZWQoY29uc3QgV2ViUGFnZVByb3h5Jik7CiAgICAgdm9pZCBrZXli
b2FyZEV2ZW50c0ZsdXNoZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYpOwogICAgIHZvaWQg
d2lsbENsb3NlUGFnZShjb25zdCBXZWJQYWdlUHJveHkmKTsKQEAgLTE2Myw4ICsxNjQsOCBAQCBw
cml2YXRlOgogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQp
OwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkm
KTsKIAotICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQ
cm94eSYsIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+JiYpOwotICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShX
ZWJGcmFtZVByb3h5JiwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OkNhbGxiYWNrQmFzZT4mJik7CisgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
blBhZ2UoV2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFn
ZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OkNhbGxiYWNrQmFzZT4mJik7CisgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
bkZyYW1lKFdlYkZyYW1lUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQ
YWdlTG9hZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
cjo6Q2FsbGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIGxvYWRUaW1lckZpcmVkKCk7CiAKICAgICAv
LyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwLgpAQCAtMjEyLDggKzIxMywxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFN0cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1hcDsKICAgICBIYXNoTWFwPFN0cmluZywg
dWludDY0X3Q+IG1faGFuZGxlV2ViRnJhbWVNYXA7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5k
aW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKLSAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJh
Y2tCYXNlPj4gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVy
RnJhbWU7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dz
aW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0Vh
Z2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKKyAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJh
Y2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJh
Y2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbklu
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVu
ZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2U7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGlu
Z0tleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGMwZjUxMmU1OWZlLi42Y2JmNjljYWQzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMzY5LDYgKzMz
NjksMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhmcmFt
ZSk7CiAKKyAgICBpZiAobV9jb250cm9sbGVkQnlBdXRvbWF0aW9uKSB7CisgICAgICAgIGlmIChh
dXRvKiBhdXRvbWF0aW9uU2Vzc2lvbiA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmF1dG9tYXRp
b25TZXNzaW9uKCkpCisgICAgICAgICAgICBhdXRvbWF0aW9uU2Vzc2lvbi0+ZG9jdW1lbnRMb2Fk
ZWRGb3JGcmFtZSgqZnJhbWUpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVz
c2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBj
dXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hl
LgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1l
LT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkK
</data>
<flag name="review"
          id="337830"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317334</attachid>
            <date>2017-08-05 02:50:23 -0700</date>
            <delta_ts>2017-08-05 02:50:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wd-page-load-strategy.diff</filename>
            <type>text/plain</type>
            <size>30772</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NhcGFiaWxpdGllcy5oCmluZGV4IDE3NTUyZDQzMWQ1Li5lMTE1NzNkZGU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL0NhcGFiaWxpdGllcy5oCkBAIC0zOCwxMiArMzgsMTkgQEAgc3RydWN0IFRpbWVvdXRz
IHsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGltcGxpY2l0OwogfTsKIAorZW51bSBjbGFz
cyBQYWdlTG9hZFN0cmF0ZWd5IHsKKyAgICBOb25lLAorICAgIE5vcm1hbCwKKyAgICBFYWdlcgor
fTsKKwogc3RydWN0IENhcGFiaWxpdGllcyB7CiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGJy
b3dzZXJOYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBicm93c2VyVmVyc2lvbjsKICAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGxhdGZvcm1OYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gYWNjZXB0SW5zZWN1cmVDZXJ0czsKICAgICBzdGQ6Om9wdGlvbmFsPFRpbWVvdXRzPiB0
aW1lb3V0czsKKyAgICBzdGQ6Om9wdGlvbmFsPFBhZ2VMb2FkU3RyYXRlZ3k+IHBhZ2VMb2FkU3Ry
YXRlZ3k7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBicm93
c2VyQmluYXJ5OwogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGJyb3dzZXJBcmd1
bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IGI3ODNmODc5YjIyLi44YjFiNDg4YzIwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxNy0wOC0wNSAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgV2ViRHJpdmVyOiBJbXBsZW1lbnQg
cGFnZSBsb2FkIHN0cmF0ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzUxODMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisg
ICAgICAgIFZhbGlkYXRlIGFuZCBwYXJzZSBwYWdlIGxvYWQgc3RyYXRlZ3kgd2hlbiBwcm9jZXNz
aW5nIGNhcGFiaWxpdGllcy4KKworICAgICAgICAqIENhcGFiaWxpdGllcy5oOgorICAgICAgICAq
IFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpwYWdlTG9hZFN0cmF0
ZWd5U3RyaW5nIGNvbnN0KTogSGVscGVyIHRvIGdldCB0aGUgcGFnZSBsb2FkIHN0cmF0ZWd5IGFz
IGEgU3RyaW5nIHRvIGJlCisgICAgICAgIHBhc3NlZCB0byBBdXRvbWF0aW9uLgorICAgICAgICAo
V2ViRHJpdmVyOjpTZXNzaW9uOjpnbyk6IFBhc3MgcGFnZSBsb2FkIHN0cmF0ZWd5IGlmIHByZXNl
bnQuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmJhY2spOiBEaXR0by4KKyAgICAgICAg
KFdlYkRyaXZlcjo6U2Vzc2lvbjo6Zm9yd2FyZCk6IERpdHRvLgorICAgICAgICAoV2ViRHJpdmVy
OjpTZXNzaW9uOjpyZWZyZXNoKTogRGl0dG8uCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246
OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZSk6IERpdHRvLgorICAgICAgICAqIFNlc3Npb24u
aDoKKyAgICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6
ZGVzZXJpYWxpemVQYWdlTG9hZFN0cmF0ZWd5KToKKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6cGFyc2VDYXBhYmlsaXRpZXMgY29uc3QpOgorICAgICAgICAoV2ViRHJpdmVy
OjpXZWJEcml2ZXJTZXJ2aWNlOjp2YWxpZGF0ZWRDYXBhYmlsaXRpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpuZXdTZXNzaW9uKToKKworMjAxNy0wOC0w
NSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAg
V2ViRHJpdmVyOiBwcm9wZXJseSBoYW5kbGUgY2FwYWJpbGl0aWVzIGFuZCBwcm9jZXNzIGZpcnN0
TWF0Y2ggdG9vCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQ2MTgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggOGE4ZjEwNWMwYWIuLjUyYjQyMjcwNTQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTEwMiw2ICsxMDIsMjMgQEAgdm9pZCBTZXNzaW9uOjpz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYnJvd3NpbmdDb250
ZXh0KQogICAgICAgICBtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQgPSBicm93c2luZ0NvbnRleHQ7
CiB9CiAKK3N0ZDo6b3B0aW9uYWw8U3RyaW5nPiBTZXNzaW9uOjpwYWdlTG9hZFN0cmF0ZWd5U3Ry
aW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIWNhcGFiaWxpdGllcygpLnBhZ2VMb2FkU3RyYXRlZ3kp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzd2l0Y2ggKGNhcGFiaWxpdGll
cygpLnBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSkgeworICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVn
eTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiTm9uZSIpOworICAgIGNhc2UgUGFnZUxv
YWRTdHJhdGVneTo6Tm9ybWFsOgorICAgICAgICByZXR1cm4gU3RyaW5nKCJOb3JtYWwiKTsKKyAg
ICBjYXNlIFBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgorICAgICAgICByZXR1cm4gU3RyaW5nKCJF
YWdlciIpOworICAgIH0KKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIHZvaWQgU2Vz
c2lvbjo6Y3JlYXRlVG9wTGV2ZWxCcm93c2luZ0NvbnRleHQoRnVuY3Rpb248dm9pZCAoQ29tbWFu
ZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1fdG9wbGV2
ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7CkBAIC0xMzQsNiArMTUxLDggQEAgdm9pZCBTZXNz
aW9uOjpnbyhjb25zdCBTdHJpbmcmIHVybCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYm
KT4mJiBjb21wbGV0aW8KICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ1
cmwiKSwgdXJsKTsKICAgICBpZiAobV90aW1lb3V0cy5wYWdlTG9hZCkKICAgICAgICAgcGFyYW1l
dGVycy0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVv
dXRzLnBhZ2VMb2FkLnZhbHVlKCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKKyAgICBpZiAoYXV0
byBwYWdlTG9hZFN0cmF0ZWd5ID0gcGFnZUxvYWRTdHJhdGVneVN0cmluZygpKQorICAgICAgICBw
YXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksIHBh
Z2VMb2FkU3RyYXRlZ3kudmFsdWUoKSk7CiAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2Vu
ZChBU0NJSUxpdGVyYWwoIm5hdmlnYXRlQnJvd3NpbmdDb250ZXh0IiksIFdURk1vdmUocGFyYW1l
dGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5k
UmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJvcikgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3Zl
KHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwpAQCAtMTgzLDYgKzIwMiw4IEBAIHZvaWQgU2Vz
c2lvbjo6YmFjayhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhbmRsZSIp
LCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIGlmIChtX3RpbWVvdXRz
LnBhZ2VMb2FkKQogICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgi
cGFnZUxvYWRUaW1lb3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5taWxsaXNlY29u
ZHNBczxpbnQ+KCkpOworICAgIGlmIChhdXRvIHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYWdlTG9hZFN0
cmF0ZWd5U3RyaW5nKCkpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVy
YWwoInBhZ2VMb2FkU3RyYXRlZ3kiKSwgcGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKTsKICAgICBt
X2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgiZ29CYWNrSW5Ccm93c2lu
Z0NvbnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CiAgICAgICAg
IGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CkBA
IC0yMDQsNiArMjI1LDggQEAgdm9pZCBTZXNzaW9uOjpmb3J3YXJkKEZ1bmN0aW9uPHZvaWQgKENv
bW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgcGFyYW1ldGVycy0+c2V0
U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQu
dmFsdWUoKSk7CiAgICAgaWYgKG1fdGltZW91dHMucGFnZUxvYWQpCiAgICAgICAgIHBhcmFtZXRl
cnMtPnNldEludGVnZXIoQVNDSUlMaXRlcmFsKCJwYWdlTG9hZFRpbWVvdXQiKSwgbV90aW1lb3V0
cy5wYWdlTG9hZC52YWx1ZSgpLm1pbGxpc2Vjb25kc0FzPGludD4oKSk7CisgICAgaWYgKGF1dG8g
cGFnZUxvYWRTdHJhdGVneSA9IHBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSkKKyAgICAgICAgcGFy
YW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRTdHJhdGVneSIpLCBwYWdl
TG9hZFN0cmF0ZWd5LnZhbHVlKCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
QVNDSUlMaXRlcmFsKCJnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFu
ZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92
ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKQEAgLTIyNSw2ICsyNDgsOCBAQCB2b2lkIFNl
c3Npb246OnJlZnJlc2goRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJoYW5k
bGUiKSwgbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpKTsKICAgICBpZiAobV90aW1l
b3V0cy5wYWdlTG9hZCkKICAgICAgICAgcGFyYW1ldGVycy0+c2V0SW50ZWdlcihBU0NJSUxpdGVy
YWwoInBhZ2VMb2FkVGltZW91dCIpLCBtX3RpbWVvdXRzLnBhZ2VMb2FkLnZhbHVlKCkubWlsbGlz
ZWNvbmRzQXM8aW50PigpKTsKKyAgICBpZiAoYXV0byBwYWdlTG9hZFN0cmF0ZWd5ID0gcGFnZUxv
YWRTdHJhdGVneVN0cmluZygpKQorICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlM
aXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksIHBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSk7CiAg
ICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoInJlbG9hZEJyb3dz
aW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAg
ICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsK
QEAgLTk4MSw2ICsxMDA2LDggQEAgdm9pZCBTZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29t
cGxldGUoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb20KICAgICAgICAgcGFy
YW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZnJhbWVIYW5kbGUiKSwgbV9jdXJyZW50
QnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIGlmIChtX3RpbWVvdXRzLnBhZ2VMb2FkKQog
ICAgICAgICBwYXJhbWV0ZXJzLT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRUaW1l
b3V0IiksIG1fdGltZW91dHMucGFnZUxvYWQudmFsdWUoKS5taWxsaXNlY29uZHNBczxpbnQ+KCkp
OworICAgIGlmIChhdXRvIHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYWdlTG9hZFN0cmF0ZWd5U3RyaW5n
KCkpCisgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoInBhZ2VMb2Fk
U3RyYXRlZ3kiKSwgcGFnZUxvYWRTdHJhdGVneS52YWx1ZSgpKTsKICAgICBtX2hvc3QtPnNlbmRD
b21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgid2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRl
IiksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBpZiAocmVz
cG9uc2UuaXNFcnJvcikgewogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBDb21tYW5kUmVzdWx0
OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgKaW5k
ZXggZmFkODYxYTBlMjguLjllMGQ3Y2ZmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVy
L1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaApAQCAtMTAxLDYgKzEw
MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzd2l0Y2hUb1RvcExldmVsQnJvd3NpbmdDb250ZXh0
KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPik7CiAgICAgdm9pZCBzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4
dChzdGQ6Om9wdGlvbmFsPFN0cmluZz4pOwogCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBh
Z2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdDsKKwogICAgIFJlZlB0cjxJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdD4gY3JlYXRlRWxlbWVudChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JW
YWx1ZT4mJik7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVF
bGVtZW50KGNvbnN0IFN0cmluZyYgZWxlbWVudElEKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpJ
bnNwZWN0b3JPYmplY3Q+IGV4dHJhY3RFbGVtZW50KEluc3BlY3Rvcjo6SW5zcGVjdG9yVmFsdWUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDI0MzhmNmIzYmVkLi45
YzJhZThhNTRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC0yNzcs
NiArMjc3LDE3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFRpbWVvdXRzPiBkZXNlcmlhbGl6ZVRp
bWVvdXRzKEluc3BlY3Rvck9iamVjdCYgdGltZW91dHNPYmplCiAgICAgcmV0dXJuIHRpbWVvdXRz
OwogfQogCitzdGF0aWMgc3RkOjpvcHRpb25hbDxQYWdlTG9hZFN0cmF0ZWd5PiBkZXNlcmlhbGl6
ZVBhZ2VMb2FkU3RyYXRlZ3koY29uc3QgU3RyaW5nJiBwYWdlTG9hZFN0cmF0ZWd5KQoreworICAg
IGlmIChwYWdlTG9hZFN0cmF0ZWd5ID09ICJub25lIikKKyAgICAgICAgcmV0dXJuIFBhZ2VMb2Fk
U3RyYXRlZ3k6Ok5vbmU7CisgICAgaWYgKHBhZ2VMb2FkU3RyYXRlZ3kgPT0gIm5vcm1hbCIpCisg
ICAgICAgIHJldHVybiBQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw7CisgICAgaWYgKHBhZ2VMb2Fk
U3RyYXRlZ3kgPT0gImVhZ2VyIikKKyAgICAgICAgcmV0dXJuIFBhZ2VMb2FkU3RyYXRlZ3k6OkVh
Z2VyOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIHZvaWQgV2ViRHJpdmVyU2Vydmlj
ZTo6cGFyc2VDYXBhYmlsaXRpZXMoY29uc3QgSW5zcGVjdG9yT2JqZWN0JiBtYXRjaGVkQ2FwYWJp
bGl0aWVzLCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykgY29uc3QKIHsKICAgICAvLyBNYXRj
aGVkIGNhcGFiaWxpdGllcyBoYXZlIGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQuCkBAIC0yOTUsNiAr
MzA2LDkgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpwYXJzZUNhcGFiaWxpdGllcyhjb25zdCBJ
bnNwZWN0b3JPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXQKICAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiB0aW1lb3V0czsKICAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllcy5nZXRPYmplY3QoQVND
SUlMaXRlcmFsKCJ0aW1lb3V0cyIpLCB0aW1lb3V0cykpCiAgICAgICAgIGNhcGFiaWxpdGllcy50
aW1lb3V0cyA9IGRlc2VyaWFsaXplVGltZW91dHMoKnRpbWVvdXRzKTsKKyAgICBTdHJpbmcgcGFn
ZUxvYWRTdHJhdGVneTsKKyAgICBpZiAobWF0Y2hlZENhcGFiaWxpdGllcy5nZXRTdHJpbmcoQVND
SUlMaXRlcmFsKCJwYWdlTG9hZFN0cmF0ZWd5IiksIHBhZ2VMb2FkU3RyYXRlZ3kpKQorICAgICAg
ICBjYXBhYmlsaXRpZXMucGFnZUxvYWRTdHJhdGVneSA9IGRlc2VyaWFsaXplUGFnZUxvYWRTdHJh
dGVneShwYWdlTG9hZFN0cmF0ZWd5KTsKICAgICBwbGF0Zm9ybVBhcnNlQ2FwYWJpbGl0aWVzKG1h
dGNoZWRDYXBhYmlsaXRpZXMsIGNhcGFiaWxpdGllcyk7CiB9CiAKQEAgLTMzNiw5ICszNTAsOCBA
QCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBXZWJEcml2ZXJTZXJ2aWNlOjp2YWxpZGF0ZWRDYXBh
YmlsaXRpZXMoY29uc3QgSW5zcGVjdG9yTwogICAgICAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmco
aXQtPmtleSwgc3RyaW5nVmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKGl0LT5rZXkgPT0gInBh
Z2VMb2FkU3RyYXRlZ3kiKSB7CiAgICAgICAgICAgICBTdHJpbmcgcGFnZUxvYWRTdHJhdGVneTsK
LSAgICAgICAgICAgIGlmICghaXQtPnZhbHVlLT5hc1N0cmluZyhwYWdlTG9hZFN0cmF0ZWd5KSkK
KyAgICAgICAgICAgIGlmICghaXQtPnZhbHVlLT5hc1N0cmluZyhwYWdlTG9hZFN0cmF0ZWd5KSB8
fCAhZGVzZXJpYWxpemVQYWdlTG9hZFN0cmF0ZWd5KHBhZ2VMb2FkU3RyYXRlZ3kpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVu
dCBwYWdlTG9hZFN0cmF0ZWd5LgogICAgICAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmcoaXQtPmtl
eSwgcGFnZUxvYWRTdHJhdGVneSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXQtPmtleSA9PSAicHJv
eHkiKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQuCkBA
IC01NjAsNiArNTczLDE5IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6bmV3U2Vzc2lvbihSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uCiAgICAgICAgICAgICAg
ICAgICAgIHRpbWVvdXRzT2JqZWN0LT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgiaW1wbGljaXQi
KSwgY2FwYWJpbGl0aWVzLnRpbWVvdXRzLnZhbHVlKCkuaW1wbGljaXQudmFsdWUoKS5taWxsaXNl
Y29uZHNBczxpbnQ+KCkpOwogICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+c2V0
T2JqZWN0KEFTQ0lJTGl0ZXJhbCgidGltZW91dHMiKSwgV1RGTW92ZSh0aW1lb3V0c09iamVjdCkp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhcGFiaWxpdGllcy5wYWdlTG9hZFN0
cmF0ZWd5KSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjYXBhYmlsaXRpZXMucGFnZUxvYWRT
dHJhdGVneS52YWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5
OjpOb25lOgorICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXNPYmplY3QtPnNldFN0cmlu
ZyhBU0NJSUxpdGVyYWwoInBhZ2VMb2FkU3RyYXRlZ3kiKSwgIm5vbmUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQYWdlTG9hZFN0cmF0ZWd5OjpO
b3JtYWw6CisgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+c2V0U3RyaW5n
KEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRTdHJhdGVneSIpLCAibm9ybWFsIik7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUGFnZUxvYWRTdHJhdGVneTo6
RWFnZXI6CisgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+c2V0U3RyaW5n
KEFTQ0lJTGl0ZXJhbCgicGFnZUxvYWRTdHJhdGVneSIpLCAiZWFnZXIiKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcmVzdWx0T2JqZWN0LT5zZXRPYmplY3QoQVNDSUlMaXRlcmFsKCJ2YWx1ZSIpLCBXVEZN
b3ZlKGNhcGFiaWxpdGllc09iamVjdCkpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6c3VjY2VzcyhXVEZNb3ZlKHJlc3VsdE9iamVjdCkpKTsKICAgICAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGZhMDA5OGZiYTg4Li41NDkwMzhlYTBmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNiBAQAogMjAxNy0wOC0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgV2ViRHJpdmVyOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0
ZWd5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUx
ODMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIFNwbGl0IHBl
bmRpbmcgbmF2aWdhdGlvbiBtYXBzIGludG8gbm9ybWFsIGFuZCBlYWdlciwgYW5kIHVzZSBvbmUg
b3IgdGhlIG90aGVyIGRlcGVuZGluZyBvbiB0aGUgcmVjZWl2ZWQgcGFnZQorICAgICAgICBsb2Fk
IHN0cmF0ZWd5LiBXZSBuZWVkIHRvIGtlZXAgZGlmZmVyZW50IG1hcHMgZm9yIGV2ZXJ5IHBhZ2Ug
bG9hZCBzdHJhdGVneSBiZWNhdXNlIGV2ZXJ5IGNvbW1hbmQgY291bGQgdXNlIGEKKyAgICAgICAg
ZGlmZmVyZW50IHN0cmF0ZWd5LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKTogRXh0cmFjdCBwYWdlIGxvYWQgc3Ry
YXRlZ3kgZnJvbSBwYXJhbWV0ZXIgYW5kIHBhc3MKKyAgICAgICAgaXQgdG8gd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25QYWdlKCkgYW5kIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9u
RnJhbWUoKS4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JO
YXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSk6IFJldHVybiBlYXJseSBpZiBwYWdlIGxvYWQgc3Ry
YXRlZ3kgaXMKKyAgICAgICAgbm9uZS4gT3RoZXJ3aXNlIGF0IHRoZSBwZW5pbmcgY2FsbGJhY2sg
dG8gdGhlIG5vcm1hbCBvciBlYWdlciBtYXAgZGVwZWRpbmcgb24gdGhlIHBhZ2UgbG9hZCBzdHJh
ZWd5LgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25GcmFtZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpyZXNwb25k
VG9QZW5kaW5nTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KTogSGVscGVyIHRvIHNlbmQg
cGVuaW5nIG5hdmlnYXRpb24gY2FsbGJhY2sgaW4gY2FzZSBvZgorICAgICAgICB0aW1lb3V0IGZh
aWx1cmUuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpsb2FkVGltZXJG
aXJlZCk6IENhbGwgZmluaXNoUGVuZGluZ05hdmlnYXRpb25zV2l0aFRpbWVvdXRGYWlsdXJlKCkg
d2l0aCBhbGwgdGhlIG1hcHMuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
OjpuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dCk6IEV4dHJhY3QgcGFnZSBsb2FkIHN0cmF0ZWd5IGZy
b20gcGFyYW1ldGVyIGFuZCBwYXNzIGl0CisgICAgICAgIHRvIHdhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZU9uUGFnZSgpLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
Z29CYWNrSW5Ccm93c2luZ0NvbnRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OmdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2luZ0NvbnRleHQp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRp
b25PY2N1cnJlZEZvckZyYW1lKTogVXNlIHRoZSBub3JtYWwgbWFwcy4KKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRvY3VtZW50TG9hZGVkRm9yRnJhbWUpOiBTdG9wIHRp
bWVvdXQgdGltZXIgYW5kIGRpc3BhdGNoIGVhZ2VyIHBlbmRpbmcgbmF2aWdhdGlvbnMuCisgICAg
ICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6IE5vdGlmeSB0aGUgYXV0b21h
dGlvbiBzZXNzaW9uLgorCisyMDE3LTA4LTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBXZWJEcml2ZXI6IHVzZSBpbi12aWV3IGNlbnRlciBw
b2ludCBmb3IgY2xpY2tzIGluc3RlYWQgb2YgYm91bmRpbmcgYm94IGNlbnRlciBwb2ludAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODYzCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggN2Y2ZDZjZDEyMTguLjQxYTUwZjczNmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcApAQCAtNTQsNiArNTQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC8v
IMKnOC4gU2Vzc2lvbnMKIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI2Rmbi1z
ZXNzaW9uLXBhZ2UtbG9hZC10aW1lb3V0CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBkZWZhdWx0UGFn
ZUxvYWRUaW1lb3V0ID0gMzAwX3M7CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVy
LyNkZm4tcGFnZS1sb2FkaW5nLXN0cmF0ZWd5CitzdGF0aWMgY29uc3QgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSBkZWZhdWx0UGFnZUxvYWRTdHJhdGVn
eSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3k6Ok5v
cm1hbDsKIAogV2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9tYXRpb25TZXNzaW9uKCkKICAg
ICA6IG1fY2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpBdXRvbWF0aW9uU2Vzc2lvbkNsaWVu
dD4oKSkKQEAgLTM4NSwxNSArMzg3LDI3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1v
dmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlCiAjZW5k
aWYKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6UGFnZUxvYWRTdHJhdGVneT4gcGFnZUxvYWRTdHJhdGVneUZyb21TdHJpbmdQYXJhbWV0
ZXIoY29uc3QgU3RyaW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcpCit7CisgICAg
aWYgKCFvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcpCisgICAgICAgIHJldHVybiBkZWZh
dWx0UGFnZUxvYWRTdHJhdGVneTsKKworICAgIGF1dG8gcGFyc2VkUGFnZUxvYWRTdHJhdGVneSA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZy
b21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVn
eT4oKm9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZyk7CisgICAgaWYgKCFwYXJzZWRQYWdl
TG9hZFN0cmF0ZWd5KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBw
YXJzZWRQYWdlTG9hZFN0cmF0ZWd5OworfQorCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3
YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcq
IG9wdGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0
ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8V2FpdEZv
ck5hdmlnYXRpb25Ub0NvbXBsZXRlQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgV2ViUGFn
ZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGJyb3dzaW5nQ29udGV4dEhhbmRs
ZSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihX
aW5kb3dOb3RGb3VuZCk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJh
dGVneS4KLQotICAgIFNlY29uZHMgcGFnZUxvYWRUaW1lb3V0ID0gb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQgPyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91
dCkgOiBkZWZhdWx0UGFnZUxvYWRUaW1lb3V0OworICAgIGF1dG8gcGFnZUxvYWRTdHJhdGVneSA9
IHBhZ2VMb2FkU3RyYXRlZ3lGcm9tU3RyaW5nUGFyYW1ldGVyKG9wdGlvbmFsUGFnZUxvYWRTdHJh
dGVneVN0cmluZyk7CisgICAgaWYgKCFwYWdlTG9hZFN0cmF0ZWd5KQorICAgICAgICBGQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlIHBh
cmFtZXRlciAncGFnZUxvYWRTdHJhdGVneScgaXMgaW52YWxpZC4iKTsKKyAgICBhdXRvIHBhZ2VM
b2FkVGltZW91dCA9IG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxp
c2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91
dDsKIAogICAgIGlmIChvcHRpb25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxl
LT5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOwpAQCAtNDAyLDU3ICs0
MTYsODIgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGUKICAgICAgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgpKTsKICAgICAg
ICAgaWYgKCFmcmFtZSkKICAgICAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZy
YW1lTm90Rm91bmQpOwotICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1l
KCpmcmFtZSwgcGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHdh
aXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoKmZyYW1lLCBwYWdlTG9hZFN0cmF0ZWd5
LnZhbHVlKCksIHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0gZWxz
ZQotICAgICAgICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VM
b2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICB3YWl0Rm9yTmF2aWdhdGlv
blRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSwgcGFnZUxv
YWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFNlY29uZHMgdGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndhaXRG
b3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3kgbG9hZFN0cmF0ZWd5LCBT
ZWNvbmRzIHRpbWVvdXQsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKCFtX2xvYWRUaW1lci5pc0FjdGl2ZSgp
KTsKLSAgICBpZiAoIXBhZ2UucGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKSB7CisgICAgaWYg
KGxvYWRTdHJhdGVneSA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5OjpOb25lIHx8ICFwYWdlLnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSkgewog
ICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2xvYWRUaW1lci5zdGFydE9uZVNob3Qo
dGltZW91dCk7Ci0gICAgbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJh
Y2tzUGVyUGFnZS5zZXQocGFnZS5wYWdlSUQoKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHN3
aXRjaCAobG9hZFN0cmF0ZWd5KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5OjpOb3JtYWw6CisgICAgICAgIG1fcGVuZGluZ05vcm1h
bE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2Uuc2V0KHBhZ2UucGFn
ZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5OjpFYWdlcjoKKyAg
ICAgICAgbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQ
ZXJQYWdlLnNldChwYWdlLnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRT
dHJhdGVneTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVP
bkZyYW1lKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBTZWNvbmRzIHRpbWVvdXQsIFJlZjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYgY2FsbGJhY2spCit2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdl
TG9hZFN0cmF0ZWd5IGxvYWRTdHJhdGVneSwgU2Vjb25kcyB0aW1lb3V0LCBSZWY8SW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQogewogICAgIEFT
U0VSVCghbV9sb2FkVGltZXIuaXNBY3RpdmUoKSk7Ci0gICAgaWYgKGZyYW1lLmZyYW1lTG9hZFN0
YXRlKCkuc3RhdGUoKSA9PSBGcmFtZUxvYWRTdGF0ZTo6U3RhdGU6OkZpbmlzaGVkKSB7CisgICAg
aWYgKGxvYWRTdHJhdGVneSA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdl
TG9hZFN0cmF0ZWd5OjpOb25lIHx8IGZyYW1lLmZyYW1lTG9hZFN0YXRlKCkuc3RhdGUoKSA9PSBG
cmFtZUxvYWRTdGF0ZTo6U3RhdGU6OkZpbmlzaGVkKSB7CiAgICAgICAgIGNhbGxiYWNrLT5zZW5k
U3VjY2VzcyhJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIG1fbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKLSAgICBtX3BlbmRp
bmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZS5zZXQoZnJhbWUu
ZnJhbWVJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc3dpdGNoIChsb2FkU3RyYXRlZ3kp
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3Ry
YXRlZ3k6Ok5vcm1hbDoKKyAgICAgICAgbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUuc2V0KGZyYW1lLmZyYW1lSUQoKSwgV1RGTW92ZShj
YWxsYmFjaykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3k6OkVhZ2VyOgorICAgICAgICBtX3BlbmRpbmdF
YWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnNldChmcmFt
ZS5mcmFtZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5OjpOb25l
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiB9CiAKLXZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OmxvYWRUaW1lckZpcmVkKCkKK3N0YXRpYyB2b2lkIHJlc3BvbmRUb1Bl
bmRpbmdOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCiB7
Ci0gICAgZm9yIChhdXRvIGZyYW1lSUQgOiBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZS5rZXlzKCkpIHsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9
IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRh
a2UoZnJhbWVJRCk7Ci0gICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BS
RURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KSk7Ci0gICAgfQotICAgIGZvciAoYXV0byBwYWdl
SUQgOiBtX3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdl
LmtleXMoKSkgewotICAgICAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbklu
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2VJRCk7CisgICAgZm9yIChh
dXRvIGlkIDogbWFwLmtleXMoKSkgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gbWFwLnRha2Uo
aWQpOwogICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVE
X0VSUk9SX05BTUUoVGltZW91dCkpOwogICAgIH0KIH0KIAordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6bG9hZFRpbWVyRmlyZWQoKQoreworICAgIHJlc3BvbmRUb1BlbmRpbmdOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQobV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2tzUGVyRnJhbWUpOworICAgIHJlc3BvbmRUb1BlbmRpbmdOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQobV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZSk7CisgICAgcmVzcG9uZFRvUGVuZGluZ05hdmlnYXRpb25D
YWxsYmFja3NXaXRoVGltZW91dChtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJQYWdlKTsKKyAgICByZXNwb25kVG9QZW5kaW5nTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250
ZXh0Q2FsbGJhY2tzUGVyUGFnZSk7Cit9CisKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5h
dmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyog
b3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxv
YWRUaW1lb3V0LCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFj
aykKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFu
ZGxlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9S
KFdpbmRvd05vdEZvdW5kKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0
cmF0ZWd5LgorICAgIGF1dG8gcGFnZUxvYWRTdHJhdGVneSA9IHBhZ2VMb2FkU3RyYXRlZ3lGcm9t
U3RyaW5nUGFyYW1ldGVyKG9wdGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZyk7CisgICAgaWYg
KCFwYWdlTG9hZFN0cmF0ZWd5KQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9B
TkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAncGFnZUxvYWRTdHJh
dGVneScgaXMgaW52YWxpZC4iKTsKKyAgICBhdXRvIHBhZ2VMb2FkVGltZW91dCA9IG9wdGlvbmFs
UGFnZUxvYWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdl
TG9hZFRpbWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dDsKIAogICAgIHBhZ2UtPmxvYWRS
ZXF1ZXN0KFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgdXJsKSk7Ci0gICAgd2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCA/
IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0KSA6IGRl
ZmF1bHRQYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB3YWl0Rm9yTmF2
aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIHBhZ2VMb2FkU3RyYXRlZ3kudmFsdWUoKSwg
cGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmdvQmFja0luQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRp
b25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQsIFJlZjxHb0JhY2tJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQpA
QCAtNDYxLDEwICs1MDAsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z29CYWNrSW5C
cm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3IKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsK
IAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgcGFnZSBsb2FkIHN0cmF0ZWd5LgorICAgIGF1dG8g
cGFnZUxvYWRTdHJhdGVneSA9IHBhZ2VMb2FkU3RyYXRlZ3lGcm9tU3RyaW5nUGFyYW1ldGVyKG9w
dGlvbmFsUGFnZUxvYWRTdHJhdGVneVN0cmluZyk7CisgICAgaWYgKCFwYWdlTG9hZFN0cmF0ZWd5
KQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlk
UGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAncGFnZUxvYWRTdHJhdGVneScgaXMgaW52YWxpZC4i
KTsKKyAgICBhdXRvIHBhZ2VMb2FkVGltZW91dCA9IG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0ID8g
U2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQpIDogZGVm
YXVsdFBhZ2VMb2FkVGltZW91dDsKIAogICAgIHBhZ2UtPmdvQmFjaygpOwotICAgIHdhaXRGb3JO
YXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgb3B0aW9uYWxQYWdlTG9hZFRpbWVvdXQg
PyBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKCpvcHRpb25hbFBhZ2VMb2FkVGltZW91dCkgOiBk
ZWZhdWx0UGFnZUxvYWRUaW1lb3V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgd2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKCpwYWdlLCBwYWdlTG9hZFN0cmF0ZWd5LnZhbHVlKCks
IHBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyog
b3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5nLCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxv
YWRUaW1lb3V0LCBSZWY8R29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxs
YmFjaykKQEAgLTQ3MywxMCArNTE1LDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Omdv
Rm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVyCiAgICAg
aWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RG
b3VuZCk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KKyAg
ICBhdXRvIHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYWdlTG9hZFN0cmF0ZWd5RnJvbVN0cmluZ1BhcmFt
ZXRlcihvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcpOworICAgIGlmICghcGFnZUxvYWRT
dHJhdGVneSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3BhZ2VMb2FkU3RyYXRlZ3knIGlzIGlu
dmFsaWQuIik7CisgICAgYXV0byBwYWdlTG9hZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGlt
ZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQ7CiAKICAgICBwYWdlLT5nb0ZvcndhcmQoKTsKLSAg
ICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxv
YWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgcGFnZUxvYWRTdHJhdGVn
eS52YWx1ZSgpLCBwYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3Ry
aW5nKiBvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcsIGNvbnN0IGludCogb3B0aW9uYWxQ
YWdlTG9hZFRpbWVvdXQsIFJlZjxSZWxvYWRCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxs
YmFjaykKQEAgLTQ4NSwxMCArNTMwLDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJl
bG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0CiAgICAg
aWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RG
b3VuZCk7CiAKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHBhZ2UgbG9hZCBzdHJhdGVneS4KKyAg
ICBhdXRvIHBhZ2VMb2FkU3RyYXRlZ3kgPSBwYWdlTG9hZFN0cmF0ZWd5RnJvbVN0cmluZ1BhcmFt
ZXRlcihvcHRpb25hbFBhZ2VMb2FkU3RyYXRlZ3lTdHJpbmcpOworICAgIGlmICghcGFnZUxvYWRT
dHJhdGVneSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3BhZ2VMb2FkU3RyYXRlZ3knIGlzIGlu
dmFsaWQuIik7CisgICAgYXV0byBwYWdlTG9hZFRpbWVvdXQgPSBvcHRpb25hbFBhZ2VMb2FkVGlt
ZW91dCA/IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKm9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0
KSA6IGRlZmF1bHRQYWdlTG9hZFRpbWVvdXQ7CiAKICAgICBwYWdlLT5yZWxvYWQoeyB9KTsKLSAg
ICB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoKnBhZ2UsIG9wdGlvbmFsUGFnZUxv
YWRUaW1lb3V0ID8gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqb3B0aW9uYWxQYWdlTG9hZFRp
bWVvdXQpIDogZGVmYXVsdFBhZ2VMb2FkVGltZW91dCwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZSgqcGFnZSwgcGFnZUxvYWRTdHJhdGVn
eS52YWx1ZSgpLCBwYWdlTG9hZFRpbWVvdXQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUpCkBAIC00OTcsMTMgKzU0NSwyOCBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JGcmFtZShjb25zdCBXZWJGcmFtZVBy
b3h5JiBmcmFtZQogICAgICAgICAvLyBOZXcgcGFnZSBsb2FkZWQsIGNsZWFyIGZyYW1lIGhhbmRs
ZXMgcHJldmlvdXNseSBjYWNoZWQuCiAgICAgICAgIG1faGFuZGxlV2ViRnJhbWVNYXAuY2xlYXIo
KTsKICAgICAgICAgbV93ZWJGcmFtZUhhbmRsZU1hcC5jbGVhcigpOwotICAgICAgICBpZiAoYXV0
byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNr
c1BlclBhZ2UudGFrZShmcmFtZS5wYWdlKCktPnBhZ2VJRCgpKSkgeworICAgICAgICBpZiAoYXV0
byBjYWxsYmFjayA9IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENh
bGxiYWNrc1BlclBhZ2UudGFrZShmcmFtZS5wYWdlKCktPnBhZ2VJRCgpKSkgewogICAgICAgICAg
ICAgbV9sb2FkVGltZXIuc3RvcCgpOwogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNz
KEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwogICAgICAgICB9CiAgICAgICAgIG1fZG9tYWlu
Tm90aWZpZXItPmJyb3dzaW5nQ29udGV4dENsZWFyZWQoaGFuZGxlRm9yV2ViUGFnZVByb3h5KCpm
cmFtZS5wYWdlKCkpKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9
IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRh
a2UoZnJhbWUuZnJhbWVJRCgpKSkgeworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVu
ZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lLnRh
a2UoZnJhbWUuZnJhbWVJRCgpKSkgeworICAgICAgICAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwor
ICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCkpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpk
b2N1bWVudExvYWRlZEZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lKQoreworICAg
IGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0g
bV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdl
LnRha2UoZnJhbWUucGFnZSgpLT5wYWdlSUQoKSkpIHsKKyAgICAgICAgICAgIG1fbG9hZFRpbWVy
LnN0b3AoKTsKKyAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxs
YmFja3NQZXJGcmFtZS50YWtlKGZyYW1lLmZyYW1lSUQoKSkpIHsKICAgICAgICAgICAgIG1fbG9h
ZFRpbWVyLnN0b3AoKTsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGM5
Y2U5MDE2NWYwLi45NTI3NWM2OTQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtOTQsNiArOTQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcm9jZXNzUG9vbChXZWJQcm9jZXNzUG9vbCopOwog
CiAgICAgdm9pZCBuYXZpZ2F0aW9uT2NjdXJyZWRGb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5
Jik7CisgICAgdm9pZCBkb2N1bWVudExvYWRlZEZvckZyYW1lKGNvbnN0IFdlYkZyYW1lUHJveHkm
KTsKICAgICB2b2lkIGluc3BlY3RvckZyb250ZW5kTG9hZGVkKGNvbnN0IFdlYlBhZ2VQcm94eSYp
OwogICAgIHZvaWQga2V5Ym9hcmRFdmVudHNGbHVzaGVkRm9yUGFnZShjb25zdCBXZWJQYWdlUHJv
eHkmKTsKICAgICB2b2lkIHdpbGxDbG9zZVBhZ2UoY29uc3QgV2ViUGFnZVByb3h5Jik7CkBAIC0x
NjMsOCArMTY0LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1
aW50NjRfdCBmcmFtZUlEKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25z
dCBXZWJGcmFtZVByb3h5Jik7CiAKLSAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0
ZU9uUGFnZShXZWJQYWdlUHJveHkmLCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKLSAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZU9uRnJhbWUoV2ViRnJhbWVQcm94eSYsIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOworICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOworICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAgdm9pZCBsb2FkVGltZXJG
aXJlZCgpOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcC4KQEAgLTIxMiw4ICsyMTMsMTAgQEAgcHJpdmF0ZToK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CiAgICAg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxi
YWNrQmFzZT4+IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
clBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
clBhZ2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dz
aW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdF
YWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxs
YmFja0Jhc2U+PiBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+PiBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1YTJhNjMzZjU2
Yi4uOGIwMzQ3MjQyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMzM2OSw2ICszMzY5LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1F
U1NBR0VfQ0hFQ0soZnJhbWUpOwogCisgICAgaWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikg
eworICAgICAgICBpZiAoYXV0byogYXV0b21hdGlvblNlc3Npb24gPSBwcm9jZXNzKCkucHJvY2Vz
c1Bvb2woKS5hdXRvbWF0aW9uU2Vzc2lvbigpKQorICAgICAgICAgICAgYXV0b21hdGlvblNlc3Np
b24tPmRvY3VtZW50TG9hZGVkRm9yRnJhbWUoKmZyYW1lKTsKKyAgICB9CisKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8g
aGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3Vn
aCB0aGUgcGFnZSBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9u
OwogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>