<?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>230614</bug_id>
          
          <creation_ts>2021-09-22 05:35:46 -0700</creation_ts>
          <short_desc>[WebDriver] Add support for shadow roots</short_desc>
          <delta_ts>2022-02-07 02:25:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230551</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bburg</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796024</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-22 05:35:46 -0700</bug_when>
    <thetext>See https://w3c.github.io/webdriver/#shadow-root, https://w3c.github.io/webdriver/#find-element-from-shadow-root, https://w3c.github.io/webdriver/#find-elements-from-shadow-root and https://w3c.github.io/webdriver/#get-element-shadow-root

imported/w3c/webdriver/tests/find_element_from_shadow_root/
imported/w3c/webdriver/tests/find_elements_from_shadow_root/
imported/w3c/webdriver/tests/get_element_shadow_root/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798269</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 05:36:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/83667535&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835911</commentid>
    <comment_count>2</comment_count>
      <attachid>450514</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-01 04:25:02 -0800</bug_when>
    <thetext>Created attachment 450514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837340</commentid>
    <comment_count>3</comment_count>
      <attachid>450514</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-02-04 06:26:09 -0800</bug_when>
    <thetext>Comment on attachment 450514
Patch

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

&gt; Source/WebDriver/Session.cpp:1139
&gt; +                if (isShadowRoot == ElementIsShadowRoot::Yes &amp;&amp; result.errorString() == &quot;stale element reference&quot;) {

Wouldn&apos;t it be more robust to compare the error code instead of comparing
strings? As in:

  result.errorCode == CommandResult::ErrorCode::StaleElementReference

&gt; Source/WebDriver/WebDriverService.cpp:1461
&gt;  }

These two functions are so similar... the only variation AFAICS is
using FindElementsMode::{Multiple,Single} in the last line; maybe most
of the function body could be factored out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838042</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-02-07 02:25:26 -0800</bug_when>
    <thetext>Committed r289202 (?): &lt;https://commits.webkit.org/r289202&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450514</attachid>
            <date>2022-02-01 04:25:02 -0800</date>
            <delta_ts>2022-02-04 06:26:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-shadow-root.diff</filename>
            <type>text/plain</type>
            <size>27072</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggNjhjOGQ0NjRiMTgwLi4zZjYzMWQ1YTllNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJEcml2ZXJdIEFkZCBzdXBwb3J0IGZv
ciBzaGFkb3cgcm9vdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDYxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM2Njc1MzU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGltcGxlbWVudGF0
aW9uIG9mIG5ldyBzaGFkb3cgcm9vdCBjb21tYW5kcy4KKworICAgICAgICAqIENvbW1hbmRSZXN1
bHQuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpDb21tYW5kUmVzdWx0OjpodHRwU3RhdHVzQ29k
ZSBjb25zdCk6IEhhbmRsZSBOb1N1Y2hTaGFkb3dSb290IGFuZCBEZXRhY2hlZFNoYWRvd1Jvb3Qg
ZXJyb3JzCisgICAgICAgIChXZWJEcml2ZXI6OkNvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nIGNv
bnN0KTogRGl0dG8uCisgICAgICAgICogQ29tbWFuZFJlc3VsdC5oOgorICAgICAgICAqIFNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpzaGFkb3dSb290SWRlbnRpZmll
cik6IFJldHVybiBzaGFkb3cgcm9vdCBpZGVudGlmaWVyLgorICAgICAgICAoV2ViRHJpdmVyOjpT
ZXNzaW9uOjpjcmVhdGVTaGFkb3dSb290KTogQ3JlYXRlIHNoYWRvdyByb290IGVsbWVudCB1c2lu
ZyB0aGUgc2hhZG93IHJvb3QgaWRlbnRpZmllci4KKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lv
bjo6ZmluZEVsZW1lbnRzKTogQWRkIEVsZW1lbnRJc1NoYWRvd1Jvb3QgcGFyYW1ldGVycyB0byBo
YW5kbGUgRGV0YWNoZWRTaGFkb3dSb290IGVycm9yLgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNz
aW9uOjpnZXRFbGVtZW50U2hhZG93Um9vdCk6IFJldHVybiB0aGUgZWxlbWVudCBzaGFkb3cgcm9v
dC4KKyAgICAgICAgKiBTZXNzaW9uLmg6CisgICAgICAgICogV2ViRHJpdmVyU2VydmljZS5jcHA6
CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50KTogUGFz
cyBFbGVtZW50SXNTaGFkb3dSb290OjpObyB0byBTZXNzaW9uOjpmaW5kRWxlbWVudHMoKS4KKyAg
ICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRzKTogRGl0dG8u
CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50RnJvbUVs
ZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6Zmlu
ZEVsZW1lbnRzRnJvbUVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJp
dmVyU2VydmljZTo6ZmluZEVsZW1lbnRGcm9tU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJEcml2
ZXI6OldlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50c0Zyb21TaGFkb3dSb290KToKKyAgICAg
ICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6Z2V0RWxlbWVudFNoYWRvd1Jvb3QpOgor
ICAgICAgICAqIFdlYkRyaXZlclNlcnZpY2UuaDoKKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJlZigqdGhpcykg
LyBtYWtlUmVmUHRyKHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRS
ZXN1bHQuY3BwIGIvU291cmNlL1dlYkRyaXZlci9Db21tYW5kUmVzdWx0LmNwcAppbmRleCAzNTNk
YTBjM2YyMzMuLjUyZTI3Njc2M2NhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9Db21t
YW5kUmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuY3BwCkBA
IC0xNDUsNyArMTQ1LDkgQEAgdW5zaWduZWQgQ29tbWFuZFJlc3VsdDo6aHR0cFN0YXR1c0NvZGUo
KSBjb25zdAogICAgIGNhc2UgRXJyb3JDb2RlOjpOb1N1Y2hFbGVtZW50OgogICAgIGNhc2UgRXJy
b3JDb2RlOjpOb1N1Y2hGcmFtZToKICAgICBjYXNlIEVycm9yQ29kZTo6Tm9TdWNoV2luZG93Ogor
ICAgIGNhc2UgRXJyb3JDb2RlOjpOb1N1Y2hTaGFkb3dSb290OgogICAgIGNhc2UgRXJyb3JDb2Rl
OjpTdGFsZUVsZW1lbnRSZWZlcmVuY2U6CisgICAgY2FzZSBFcnJvckNvZGU6OkRldGFjaGVkU2hh
ZG93Um9vdDoKICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZFNlc3Npb25JRDoKICAgICBjYXNl
IEVycm9yQ29kZTo6VW5rbm93bkNvbW1hbmQ6CiAgICAgICAgIHJldHVybiA0MDQ7CkBAIC0xNzYs
NiArMTc4LDggQEAgU3RyaW5nIENvbW1hbmRSZXN1bHQ6OmVycm9yU3RyaW5nKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuICJlbGVtZW50IG5vdCBzZWxlY3RhYmxlIl9zOwogICAgIGNhc2UgRXJyb3JD
b2RlOjpFbGVtZW50Tm90SW50ZXJhY3RhYmxlOgogICAgICAgICByZXR1cm4gImVsZW1lbnQgbm90
IGludGVyYWN0YWJsZSJfczsKKyAgICBjYXNlIEVycm9yQ29kZTo6RGV0YWNoZWRTaGFkb3dSb290
OgorICAgICAgICByZXR1cm4gImRldGFjaGVkIHNoYWRvdyByb290Il9zOwogICAgIGNhc2UgRXJy
b3JDb2RlOjpJbnZhbGlkQXJndW1lbnQ6CiAgICAgICAgIHJldHVybiAiaW52YWxpZCBhcmd1bWVu
dCJfczsKICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZEVsZW1lbnRTdGF0ZToKQEAgLTE5NCw2
ICsxOTgsOCBAQCBTdHJpbmcgQ29tbWFuZFJlc3VsdDo6ZXJyb3JTdHJpbmcoKSBjb25zdAogICAg
ICAgICByZXR1cm4gIm5vIHN1Y2ggZWxlbWVudCJfczsKICAgICBjYXNlIEVycm9yQ29kZTo6Tm9T
dWNoRnJhbWU6CiAgICAgICAgIHJldHVybiAibm8gc3VjaCBmcmFtZSJfczsKKyAgICBjYXNlIEVy
cm9yQ29kZTo6Tm9TdWNoU2hhZG93Um9vdDoKKyAgICAgICAgcmV0dXJuICJubyBzdWNoIHNoYWRv
dyByb290Il9zOwogICAgIGNhc2UgRXJyb3JDb2RlOjpOb1N1Y2hXaW5kb3c6CiAgICAgICAgIHJl
dHVybiAibm8gc3VjaCB3aW5kb3ciX3M7CiAgICAgY2FzZSBFcnJvckNvZGU6OlNjcmlwdFRpbWVv
dXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaCBiL1NvdXJj
ZS9XZWJEcml2ZXIvQ29tbWFuZFJlc3VsdC5oCmluZGV4IDI5ZGRhNzU5MzA5ZS4uNmNkNTk3MDNm
ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaAorKysgYi9T
b3VyY2UvV2ViRHJpdmVyL0NvbW1hbmRSZXN1bHQuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6
CiAgICAgICAgIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkLAogICAgICAgICBFbGVtZW50Tm90U2Vs
ZWN0YWJsZSwKICAgICAgICAgRWxlbWVudE5vdEludGVyYWN0YWJsZSwKKyAgICAgICAgRGV0YWNo
ZWRTaGFkb3dSb290LAogICAgICAgICBJbnZhbGlkQXJndW1lbnQsCiAgICAgICAgIEludmFsaWRF
bGVtZW50U3RhdGUsCiAgICAgICAgIEludmFsaWRTZWxlY3RvciwKQEAgLTQ5LDYgKzUwLDcgQEAg
cHVibGljOgogICAgICAgICBOb1N1Y2hDb29raWUsCiAgICAgICAgIE5vU3VjaEVsZW1lbnQsCiAg
ICAgICAgIE5vU3VjaEZyYW1lLAorICAgICAgICBOb1N1Y2hTaGFkb3dSb290LAogICAgICAgICBO
b1N1Y2hXaW5kb3csCiAgICAgICAgIFNjcmlwdFRpbWVvdXQsCiAgICAgICAgIFNlc3Npb25Ob3RD
cmVhdGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggMDNjNTZlNDRjZmI3Li43MDVkMzViNzllNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci9TZXNzaW9uLmNwcApAQCAtNTIsNiArNTIsMTMgQEAgY29uc3QgU3RyaW5nJiBTZXNz
aW9uOjp3ZWJFbGVtZW50SWRlbnRpZmllcigpCiAgICAgcmV0dXJuIHdlYkVsZW1lbnRJRDsKIH0K
IAorY29uc3QgU3RyaW5nJiBTZXNzaW9uOjpzaGFkb3dSb290SWRlbnRpZmllcigpCit7CisgICAg
Ly8gVGhlIHNoYWRvdyByb290IGlkZW50aWZpZXIgaXMgY29uc3RhbnQgZGVmaW5lZCBieSB0aGUg
c3BlYy4KKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzaGFkb3dSb290SUQgeyAi
c2hhZG93LTYwNjYtMTFlNC1hNTJlLTRmNzM1NDY2Y2VjZiJfcyB9OworICAgIHJldHVybiBzaGFk
b3dSb290SUQ7Cit9CisKIFNlc3Npb246OlNlc3Npb24oc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25I
b3N0PiYmIGhvc3QpCiAgICAgOiBtX2hvc3QoV1RGTW92ZShob3N0KSkKICAgICAsIG1fc2NyaXB0
VGltZW91dChkZWZhdWx0U2NyaXB0VGltZW91dCkKQEAgLTk4NCw2ICs5OTEsMjQgQEAgUmVmPEpT
T046Ok9iamVjdD4gU2Vzc2lvbjo6Y3JlYXRlRWxlbWVudChjb25zdCBTdHJpbmcmIGVsZW1lbnRJ
RCkKICAgICByZXR1cm4gZWxlbWVudE9iamVjdDsKIH0KIAorUmVmUHRyPEpTT046Ok9iamVjdD4g
U2Vzc2lvbjo6Y3JlYXRlU2hhZG93Um9vdChSZWZQdHI8SlNPTjo6VmFsdWU+JiYgdmFsdWUpCit7
CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHZh
bHVlT2JqZWN0ID0gdmFsdWUtPmFzT2JqZWN0KCk7CisgICAgaWYgKCF2YWx1ZU9iamVjdCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGVsZW1lbnRJRCA9IHZhbHVlT2JqZWN0
LT5nZXRTdHJpbmcoInNlc3Npb24tbm9kZS0iICsgaWQoKSk7CisgICAgaWYgKCFlbGVtZW50SUQp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBlbGVtZW50T2JqZWN0ID0gSlNP
Tjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBlbGVtZW50T2JqZWN0LT5zZXRTdHJpbmcoc2hhZG93
Um9vdElkZW50aWZpZXIoKSwgZWxlbWVudElEKTsKKyAgICByZXR1cm4gZWxlbWVudE9iamVjdDsK
K30KKwogUmVmUHRyPEpTT046Ok9iamVjdD4gU2Vzc2lvbjo6ZXh0cmFjdEVsZW1lbnQoSlNPTjo6
VmFsdWUmIHZhbHVlKQogewogICAgIFN0cmluZyBlbGVtZW50SUQgPSBleHRyYWN0RWxlbWVudElE
KHZhbHVlKTsKQEAgLTEwNzUsMTQgKzExMDAsMTQgQEAgdm9pZCBTZXNzaW9uOjpjb21wdXRlRWxl
bWVudExheW91dChjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgT3B0aW9uU2V0PEVsZW1lbnRMYXkK
ICAgICB9KTsKIH0KIAotdm9pZCBTZXNzaW9uOjpmaW5kRWxlbWVudHMoY29uc3QgU3RyaW5nJiBz
dHJhdGVneSwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgRmluZEVsZW1lbnRzTW9kZSBtb2RlLCBj
b25zdCBTdHJpbmcmIHJvb3RFbGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFNlc3Npb246OmZpbmRFbGVtZW50cyhjb25z
dCBTdHJpbmcmIHN0cmF0ZWd5LCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBGaW5kRWxlbWVudHNN
b2RlIG1vZGUsIGNvbnN0IFN0cmluZyYgcm9vdEVsZW1lbnRJRCwgRWxlbWVudElzU2hhZG93Um9v
dCBpc1NoYWRvd1Jvb3QsIEZ1bmN0aW9uPHZvaWQoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fY3VycmVudEJyb3dzaW5nQ29udGV4dCkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6
OkVycm9yQ29kZTo6Tm9TdWNoV2luZG93KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBoYW5kbGVVc2VyUHJvbXB0cyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0s
IHN0cmF0ZWd5LCBzZWxlY3RvciwgbW9kZSwgcm9vdEVsZW1lbnRJRCwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgaGFuZGxlVXNlclByb21wdHMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBzdHJhdGVneSwgc2VsZWN0b3IsIG1vZGUsIHJvb3RFbGVtZW50SUQsIGlz
U2hhZG93Um9vdCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQu
aXNFcnJvcigpKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3Vs
dCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTEwOCw5ICsxMTMzLDE0IEBAIHZvaWQgU2Vz
c2lvbjo6ZmluZEVsZW1lbnRzKGNvbnN0IFN0cmluZyYgc3RyYXRlZ3ksIGNvbnN0IFN0cmluZyYg
c2VsZWN0b3IsIEZpbmRFCiAgICAgICAgIGlmIChtX2ltcGxpY2l0V2FpdFRpbWVvdXQpCiAgICAg
ICAgICAgICBwYXJhbWV0ZXJzLT5zZXREb3VibGUoImNhbGxiYWNrVGltZW91dCJfcywgbV9pbXBs
aWNpdFdhaXRUaW1lb3V0ICsgMTAwMCk7CiAKLSAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRv
QmFja2VuZCgiZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVy
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBtb2RlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVz
cG9uc2UpIHsKKyAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24iX3MsIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzLCBtb2RlLCBpc1NoYWRvd1Jvb3QsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25z
ZSkgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3Bv
bnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNl
LnJlc3BvbnNlT2JqZWN0KSk7CisgICAgICAgICAgICAgICAgaWYgKGlzU2hhZG93Um9vdCA9PSBF
bGVtZW50SXNTaGFkb3dSb290OjpZZXMgJiYgcmVzdWx0LmVycm9yU3RyaW5nKCkgPT0gInN0YWxl
IGVsZW1lbnQgcmVmZXJlbmNlIikgeworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6RGV0YWNo
ZWRTaGFkb3dSb290KSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKQEAgLTEyMDIsNiAr
MTIzMiw1NiBAQCB2b2lkIFNlc3Npb246OmdldEFjdGl2ZUVsZW1lbnQoRnVuY3Rpb248dm9pZCAo
Q29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZAogICAgIH0pOwogfQogCit2b2lkIFNl
c3Npb246OmdldEVsZW1lbnRTaGFkb3dSb290KGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5j
dGlvbjx2b2lkKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKCFtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdp
bmRvdykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlVXNlclByb21wdHMo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBlbGVtZW50SUQsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gYXJndW1lbnRzID0gSlNPTjo6QXJyYXk6
OmNyZWF0ZSgpOworICAgICAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoY3JlYXRlRWxlbWVudChl
bGVtZW50SUQpLT50b0pTT05TdHJpbmcoKSk7CisKKyAgICAgICAgYXV0byBwYXJhbWV0ZXJzID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKCJi
cm93c2luZ0NvbnRleHRIYW5kbGUiX3MsIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUo
KSk7CisgICAgICAgIGlmIChtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQpCisgICAgICAgICAgICBw
YXJhbWV0ZXJzLT5zZXRTdHJpbmcoImZyYW1lSGFuZGxlIl9zLCBtX2N1cnJlbnRCcm93c2luZ0Nv
bnRleHQudmFsdWUoKSk7CisgICAgICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZygiZnVuY3Rpb24i
X3MsICJmdW5jdGlvbihlbGVtZW50KSB7IHJldHVybiBlbGVtZW50LnNoYWRvd1Jvb3Q7IH0iX3Mp
OworICAgICAgICBwYXJhbWV0ZXJzLT5zZXRBcnJheSgiYXJndW1lbnRzIl9zLCBXVEZNb3ZlKGFy
Z3VtZW50cykpOworICAgICAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKCJldmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbiJfcywgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgeworICAgICAgICAgICAg
aWYgKHJlc3BvbnNlLmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CisgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChXVEZNb3Zl
KHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byB2YWx1ZVN0cmluZyA9IHJlc3BvbnNlLnJl
c3BvbnNlT2JqZWN0LT5nZXRTdHJpbmcoInJlc3VsdCJfcyk7CisgICAgICAgICAgICBpZiAoIXZh
bHVlU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBy
ZXN1bHRWYWx1ZSA9IEpTT046OlZhbHVlOjpwYXJzZUpTT04odmFsdWVTdHJpbmcpOworICAgICAg
ICAgICAgaWYgKCFyZXN1bHRWYWx1ZSkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3du
RXJyb3IpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGF1dG8gZWxlbWVudE9iamVjdCA9IGNyZWF0ZVNoYWRvd1Jvb3QoV1RGTW92ZShyZXN1
bHRWYWx1ZSkpOworICAgICAgICAgICAgaWYgKCFlbGVtZW50T2JqZWN0KSB7CisgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6Ok5vU3VjaFNoYWRvd1Jvb3QpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpzdWNjZXNzKFdURk1vdmUoZWxlbWVudE9iamVjdCkpKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9CisKIHZvaWQgU2Vzc2lvbjo6aXNFbGVtZW50U2VsZWN0ZWQoY29uc3QgU3RyaW5nJiBl
bGVtZW50SUQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRCcm93c2luZ0NvbnRleHQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9u
LmgKaW5kZXggYWY2NTE1NjkwYWY0Li41ODA0ZGVlMTY1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJEcml2ZXIvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCkBAIC01
NSw5ICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHBhZ2VMb2FkVGltZW91dCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUxvYWRUaW1lb3V0OyB9CiAgICAgZG91YmxlIGltcGxpY2l0V2FpdFRp
bWVvdXQoKSBjb25zdCB7IHJldHVybiBtX2ltcGxpY2l0V2FpdFRpbWVvdXQ7IH0KICAgICBzdGF0
aWMgY29uc3QgU3RyaW5nJiB3ZWJFbGVtZW50SWRlbnRpZmllcigpOworICAgIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHNoYWRvd1Jvb3RJZGVudGlmaWVyKCk7CiAKICAgICBlbnVtIGNsYXNzIEZpbmRF
bGVtZW50c01vZGUgeyBTaW5nbGUsIE11bHRpcGxlIH07CiAgICAgZW51bSBjbGFzcyBFeGVjdXRl
U2NyaXB0TW9kZSB7IFN5bmMsIEFzeW5jIH07CisgICAgZW51bSBjbGFzcyBFbGVtZW50SXNTaGFk
b3dSb290IHsgTm8sIFllcyB9OwogCiAgICAgc3RydWN0IENvb2tpZSB7CiAgICAgICAgIFN0cmlu
ZyBuYW1lOwpAQCAtOTYsOCArOTgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXhpbWl6ZVdpbmRv
dyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIG1pbmltaXpl
V2luZG93KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZnVs
bHNjcmVlbldpbmRvdyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKLSAgICB2
b2lkIGZpbmRFbGVtZW50cyhjb25zdCBTdHJpbmcmIHN0cmF0ZWd5LCBjb25zdCBTdHJpbmcmIHNl
bGVjdG9yLCBGaW5kRWxlbWVudHNNb2RlLCBjb25zdCBTdHJpbmcmIHJvb3RFbGVtZW50SUQsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgZmluZEVsZW1lbnRz
KGNvbnN0IFN0cmluZyYgc3RyYXRlZ3ksIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIEZpbmRFbGVt
ZW50c01vZGUsIGNvbnN0IFN0cmluZyYgcm9vdEVsZW1lbnRJRCwgRWxlbWVudElzU2hhZG93Um9v
dCwgRnVuY3Rpb248dm9pZChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGdldEFjdGl2
ZUVsZW1lbnQoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBn
ZXRFbGVtZW50U2hhZG93Um9vdChjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgRnVuY3Rpb248dm9p
ZChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGlzRWxlbWVudFNlbGVjdGVkKGNvbnN0
IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsK
ICAgICB2b2lkIGdldEVsZW1lbnRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIGNv
bnN0IFN0cmluZyYgYXR0cmlidXRlLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
KTsKICAgICB2b2lkIGdldEVsZW1lbnRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwg
Y29uc3QgU3RyaW5nJiBhdHRyaWJ1dGUsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+
JiYpOwpAQCAtMTQ2LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiBjcmVhdGVFbGVtZW50KFJlZlB0cjxKU09OOjpWYWx1ZT4mJik7CiAgICAgUmVmPEpTT046
Ok9iamVjdD4gY3JlYXRlRWxlbWVudChjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCk7CisgICAgUmVm
UHRyPEpTT046Ok9iamVjdD4gY3JlYXRlU2hhZG93Um9vdChSZWZQdHI8SlNPTjo6VmFsdWU+JiYp
OwogICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IGV4dHJhY3RFbGVtZW50KEpTT046OlZhbHVlJik7
CiAgICAgU3RyaW5nIGV4dHJhY3RFbGVtZW50SUQoSlNPTjo6VmFsdWUmKTsKICAgICBSZWY8SlNP
Tjo6VmFsdWU+IGhhbmRsZVNjcmlwdFJlc3VsdChSZWY8SlNPTjo6VmFsdWU+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJE
cml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKaW5kZXggM2I1NDUxMzQzMDIwLi5kYTQ4ZDlmYjZh
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysr
IGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtMTczLDggKzE3Mywx
MSBAQCBjb25zdCBXZWJEcml2ZXJTZXJ2aWNlOjpDb21tYW5kIFdlYkRyaXZlclNlcnZpY2U6OnNf
Y29tbWFuZHNbXSA9IHsKICAgICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lv
bklkL2VsZW1lbnRzIiwgJldlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50cyB9LAogICAgIHsg
SFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kZWxlbWVudElk
L2VsZW1lbnQiLCAmV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRGcm9tRWxlbWVudCB9LAog
ICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudC8kZWxl
bWVudElkL2VsZW1lbnRzIiwgJldlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50c0Zyb21FbGVt
ZW50IH0sCisgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9zaGFk
b3cvJHNoYWRvd0lkL2VsZW1lbnQiLCAmV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRGcm9t
U2hhZG93Um9vdCB9LAorICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9u
SWQvc2hhZG93LyRzaGFkb3dJZC9lbGVtZW50cyIsICZXZWJEcml2ZXJTZXJ2aWNlOjpmaW5kRWxl
bWVudHNGcm9tU2hhZG93Um9vdCB9LAogICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24v
JHNlc3Npb25JZC9lbGVtZW50L2FjdGl2ZSIsICZXZWJEcml2ZXJTZXJ2aWNlOjpnZXRBY3RpdmVF
bGVtZW50IH0sCiAKKyAgICB7IEhUVFBNZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQv
ZWxlbWVudC8kZWxlbWVudElkL3NoYWRvdyIsICZXZWJEcml2ZXJTZXJ2aWNlOjpnZXRFbGVtZW50
U2hhZG93Um9vdCB9LAogICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC9lbGVtZW50LyRlbGVtZW50SWQvc2VsZWN0ZWQiLCAmV2ViRHJpdmVyU2VydmljZTo6aXNFbGVt
ZW50U2VsZWN0ZWQgfSwKICAgICB7IEhUVFBNZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9u
SWQvZWxlbWVudC8kZWxlbWVudElkL2F0dHJpYnV0ZS8kbmFtZSIsICZXZWJEcml2ZXJTZXJ2aWNl
OjpnZXRFbGVtZW50QXR0cmlidXRlIH0sCiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIvc2Vzc2lv
bi8kc2Vzc2lvbklkL2VsZW1lbnQvJGVsZW1lbnRJZC9wcm9wZXJ0eS8kbmFtZSIsICZXZWJEcml2
ZXJTZXJ2aWNlOjpnZXRFbGVtZW50UHJvcGVydHkgfSwKQEAgLTEzNDUsNyArMTM0OCw3IEBAIHZv
aWQgV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnQoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBw
YXJhbWV0ZXJzLCBGdW5jdGlvbjx2CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1f
c2Vzc2lvbi0+ZmluZEVsZW1lbnRzKHN0cmF0ZWd5LCBzZWxlY3RvciwgU2Vzc2lvbjo6RmluZEVs
ZW1lbnRzTW9kZTo6U2luZ2xlLCBlbXB0eVN0cmluZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgICAgIG1fc2Vzc2lvbi0+ZmluZEVsZW1lbnRzKHN0cmF0ZWd5LCBzZWxlY3Rv
ciwgU2Vzc2lvbjo6RmluZEVsZW1lbnRzTW9kZTo6U2luZ2xlLCBlbXB0eVN0cmluZygpLCBTZXNz
aW9uOjpFbGVtZW50SXNTaGFkb3dSb290OjpObywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH0pOwogfQogCkBAIC0xMzY1LDcgKzEzNjgsNyBAQCB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OmZpbmRFbGVtZW50cyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0
aW9uPAogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtX3Nlc3Npb24tPmZpbmRFbGVt
ZW50cyhzdHJhdGVneSwgc2VsZWN0b3IsIFNlc3Npb246OkZpbmRFbGVtZW50c01vZGU6Ok11bHRp
cGxlLCBlbXB0eVN0cmluZygpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
IG1fc2Vzc2lvbi0+ZmluZEVsZW1lbnRzKHN0cmF0ZWd5LCBzZWxlY3RvciwgU2Vzc2lvbjo6Rmlu
ZEVsZW1lbnRzTW9kZTo6TXVsdGlwbGUsIGVtcHR5U3RyaW5nKCksIFNlc3Npb246OkVsZW1lbnRJ
c1NoYWRvd1Jvb3Q6Ok5vLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9
CiAKQEAgLTEzODQsNyArMTM4Nyw3IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1l
bnRGcm9tRWxlbWVudChSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsCiAgICAgaWYg
KCFmaW5kU3RyYXRlZ3lBbmRTZWxlY3Rvck9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMs
IGNvbXBsZXRpb25IYW5kbGVyLCBzdHJhdGVneSwgc2VsZWN0b3IpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3Nlc3Npb24tPmZpbmRFbGVtZW50cyhzdHJhdGVneSwgc2VsZWN0b3IsIFNlc3Np
b246OkZpbmRFbGVtZW50c01vZGU6OlNpbmdsZSwgZWxlbWVudElELnZhbHVlKCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3Nlc3Npb24tPmZpbmRFbGVtZW50cyhzdHJhdGVn
eSwgc2VsZWN0b3IsIFNlc3Npb246OkZpbmRFbGVtZW50c01vZGU6OlNpbmdsZSwgZWxlbWVudElE
LnZhbHVlKCksIFNlc3Npb246OkVsZW1lbnRJc1NoYWRvd1Jvb3Q6Ok5vLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRz
RnJvbUVsZW1lbnQoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2
b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTQwMiw3ICsx
NDA1LDU5IEBAIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRzRnJvbUVsZW1lbnQo
UmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzCiAgICAgaWYgKCFmaW5kU3RyYXRlZ3lB
bmRTZWxlY3Rvck9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5k
bGVyLCBzdHJhdGVneSwgc2VsZWN0b3IpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Nlc3Np
b24tPmZpbmRFbGVtZW50cyhzdHJhdGVneSwgc2VsZWN0b3IsIFNlc3Npb246OkZpbmRFbGVtZW50
c01vZGU6Ok11bHRpcGxlLCBlbGVtZW50SUQudmFsdWUoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIG1fc2Vzc2lvbi0+ZmluZEVsZW1lbnRzKHN0cmF0ZWd5LCBzZWxlY3Rvciwg
U2Vzc2lvbjo6RmluZEVsZW1lbnRzTW9kZTo6TXVsdGlwbGUsIGVsZW1lbnRJRC52YWx1ZSgpLCBT
ZXNzaW9uOjpFbGVtZW50SXNTaGFkb3dSb290OjpObywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCit2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmZpbmRFbGVtZW50RnJvbVNoYWRvd1Jv
b3QoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkKENvbW1h
bmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFmaW5kU2Vzc2lv
bk9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBzaGFkb3dJRCA9IHBhcmFtZXRlcnMtPmdldFN0cmlu
Zygic2hhZG93SWQiX3MpOworICAgIGlmIChzaGFkb3dJRC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJv
ckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
U3RyaW5nIHN0cmF0ZWd5LCBzZWxlY3RvcjsKKyAgICBpZiAoIWZpbmRTdHJhdGVneUFuZFNlbGVj
dG9yT3JDb21wbGV0ZVdpdGhFcnJvcigqcGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIsIHN0
cmF0ZWd5LCBzZWxlY3RvcikpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEN1cnJlbnRseSB0
aGVyZSBpcyBhbiBvcGVuZWQgZGlzY3Vzc2lvbiBhYm91dCBpZiB0aGUgZm9sbG93aW5nIHZhbHVl
cyBoYXMgdG8gYmUgc3VwcG9ydGVkIGZvciBhIFNoYWRvdyBSb290CisgICAgLy8gYmVjYXVzZSB0
aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlbS4gV2UgaGF2ZSB0
aGVtIGRpc2FibGVkIGZvciBub3cuCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJk
cml2ZXIvaXNzdWVzLzE2MTAKKyAgICBpZiAoc3RyYXRlZ3kgPT0gInRhZyBuYW1lIiB8fCBzdHJh
dGVneSA9PSAieHBhdGgiKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1
bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2VsZWN0b3IpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2Vzc2lvbi0+ZmluZEVsZW1lbnRzKHN0cmF0
ZWd5LCBzZWxlY3RvciwgU2Vzc2lvbjo6RmluZEVsZW1lbnRzTW9kZTo6U2luZ2xlLCBzaGFkb3dJ
RCwgU2Vzc2lvbjo6RWxlbWVudElzU2hhZG93Um9vdDo6WWVzLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRzRnJvbVNo
YWRvd1Jvb3QoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lk
KENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFmaW5k
U2Vzc2lvbk9yQ29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVy
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBzaGFkb3dJRCA9IHBhcmFtZXRlcnMtPmdl
dFN0cmluZygic2hhZG93SWQiX3MpOworICAgIGlmIChzaGFkb3dJRC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0
OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgU3RyaW5nIHN0cmF0ZWd5LCBzZWxlY3RvcjsKKyAgICBpZiAoIWZpbmRTdHJhdGVneUFu
ZFNlbGVjdG9yT3JDb21wbGV0ZVdpdGhFcnJvcigqcGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRs
ZXIsIHN0cmF0ZWd5LCBzZWxlY3RvcikpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEN1cnJl
bnRseSB0aGVyZSBpcyBhbiBvcGVuZWQgZGlzY3Vzc2lvbiBhYm91dCBpZiB0aGUgZm9sbG93aW5n
IHZhbHVlcyBoYXMgdG8gYmUgc3VwcG9ydGVkIGZvciBhIFNoYWRvdyBSb290CisgICAgLy8gYmVj
YXVzZSB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlbS4gV2Ug
aGF2ZSB0aGVtIGRpc2FibGVkIGZvciBub3cuCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWJkcml2ZXIvaXNzdWVzLzE2MTAKKyAgICBpZiAoc3RyYXRlZ3kgPT0gInRhZyBuYW1lIiB8
fCBzdHJhdGVneSA9PSAieHBhdGgiKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1h
bmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkU2VsZWN0b3Ip
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2Vzc2lvbi0+ZmluZEVsZW1lbnRz
KHN0cmF0ZWd5LCBzZWxlY3RvciwgU2Vzc2lvbjo6RmluZEVsZW1lbnRzTW9kZTo6TXVsdGlwbGUs
IHNoYWRvd0lELCBTZXNzaW9uOjpFbGVtZW50SXNTaGFkb3dSb290OjpZZXMsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpnZXRBY3RpdmVF
bGVtZW50KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAo
Q29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE0MjEsNiArMTQ3Niwx
OCBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmdldEFjdGl2ZUVsZW1lbnQoUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdAogICAgIH0pOwogfQogCit2b2lkIFdlYkRyaXZl
clNlcnZpY2U6OmdldEVsZW1lbnRTaGFkb3dSb290KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFy
YW1ldGVycywgRnVuY3Rpb248dm9pZChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0
ZXJzLCBjb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZWxl
bWVudElEID0gZmluZEVsZW1lbnRPckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21w
bGV0aW9uSGFuZGxlcik7CisgICAgaWYgKCFlbGVtZW50SUQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fc2Vzc2lvbi0+Z2V0RWxlbWVudFNoYWRvd1Jvb3QoZWxlbWVudElELnZhbHVlKCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpp
c0VsZW1lbnRTZWxlY3RlZChSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0
aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
Ly8gwqcxMy4xIElzIEVsZW1lbnQgU2VsZWN0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJp
dmVyL1dlYkRyaXZlclNlcnZpY2UuaCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vydmlj
ZS5oCmluZGV4IGU0MmQyN2Y3MWZmYy4uOTY3MGJjNjg0YTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRy
aXZlclNlcnZpY2UuaApAQCAtODgsNyArODgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmRF
bGVtZW50cyhSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVz
dWx0JiYpPiYmKTsKICAgICB2b2lkIGZpbmRFbGVtZW50RnJvbUVsZW1lbnQoUmVmUHRyPEpTT046
Ok9iamVjdD4mJiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9p
ZCBmaW5kRWxlbWVudHNGcm9tRWxlbWVudChSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKKyAgICB2b2lkIGZpbmRFbGVtZW50RnJvbVNo
YWRvd1Jvb3QoUmVmUHRyPEpTT046Ok9iamVjdD4mJiwgRnVuY3Rpb248dm9pZChDb21tYW5kUmVz
dWx0JiYpPiYmKTsKKyAgICB2b2lkIGZpbmRFbGVtZW50c0Zyb21TaGFkb3dSb290KFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAg
dm9pZCBnZXRBY3RpdmVFbGVtZW50KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgZ2V0RWxlbWVudFNoYWRvd1Jvb3Qo
UmVmUHRyPEpTT046Ok9iamVjdD4mJiwgRnVuY3Rpb248dm9pZChDb21tYW5kUmVzdWx0JiYpPiYm
KTsKICAgICB2b2lkIGlzRWxlbWVudFNlbGVjdGVkKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZ2V0RWxlbWVudEF0
dHJpYnV0ZShSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVz
dWx0JiYpPiYmKTsKICAgICB2b2lkIGdldEVsZW1lbnRQcm9wZXJ0eShSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDg3NzAyNDkyOTljLi4xYjgyYmI5YTk5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjItMDItMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXZWJEcml2ZXJdIEFkZCBzdXBwb3J0IGZvciBzaGFkb3cgcm9vdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDYxNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODM2Njc1MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHF1ZXJ5U2VsZWN0b3JBbGwoKSBpbnN0ZWFkIG9mIGdldEVs
ZW1lbnRzQnlUYWdOYW1lKCkgYmVjYXVzZSBpdCBpcyBhbHNvIGF2YWlsYWJsZSBmb3Igc2hhZG93
IHJvb3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9hdG9tcy9GaW5kTm9kZXMu
anM6CisgICAgICAgICh0cnlUb0ZpbmROb2RlKToKKwogMjAyMi0wMS0zMSAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBGb250Q2FzY2Fk
ZTo6Zm9udE1ldHJpY3MoKSBhbmQgUmVuZGVyU3R5bGU6OmZvbnRNZXRyaWNzKCkgdG8gZm9udE1l
dHJpY3NPZlByaW1hcnlGb250KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vYXRvbXMvRmluZE5vZGVzLmpzIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9hdG9tcy9GaW5kTm9kZXMuanMKaW5kZXggZTM2YTE0ZmI0N2YyLi5lMWZmNzA3
MmE0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vYXRv
bXMvRmluZE5vZGVzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
YXRvbXMvRmluZE5vZGVzLmpzCkBAIC02Niw3ICs2Niw3IEBAIGZ1bmN0aW9uKHN0cmF0ZWd5LCBh
bmNlc3RvckVsZW1lbnQsIHF1ZXJ5LCBmaXJzdFJlc3VsdE9ubHksIHRpbWVvdXREdXJhdGlvbiwg
Y2FsCiAKICAgICAgICAgICAgIGNhc2UgImxpbmsgdGV4dCI6CiAgICAgICAgICAgICAgICAgbGV0
IGxpbmtUZXh0UmVzdWx0ID0gW107Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgbGluayBvZiBh
bmNlc3RvckVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSkgeworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGxpbmsgb2YgYW5jZXN0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImEi
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobGluay50ZXh0LnRyaW0oKSA9PSBxdWVyeSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgbGlua1RleHRSZXN1bHQucHVzaChsaW5rKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFJlc3VsdE9ubHkpCkBAIC03OSw3ICs3OSw3
IEBAIGZ1bmN0aW9uKHN0cmF0ZWd5LCBhbmNlc3RvckVsZW1lbnQsIHF1ZXJ5LCBmaXJzdFJlc3Vs
dE9ubHksIHRpbWVvdXREdXJhdGlvbiwgY2FsCiAKICAgICAgICAgICAgIGNhc2UgInBhcnRpYWwg
bGluayB0ZXh0IjoKICAgICAgICAgICAgICAgICBsZXQgcGFydGlhbExpbmtSZXN1bHQgPSBbXTsK
LSAgICAgICAgICAgICAgICBmb3IgKGxldCBsaW5rIG9mIGFuY2VzdG9yRWxlbWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiYSIpKSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgbGluayBvZiBh
bmNlc3RvckVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiYSIpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChsaW5rLnRleHQuaW5jbHVkZXMocXVlcnkpKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJ0aWFsTGlua1Jlc3VsdC5wdXNoKGxpbmspOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGZpcnN0UmVzdWx0T25seSkKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL0NoYW5n
ZUxvZyBiL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZwppbmRleCAxZDUxMGZkMDU2ZjcuLjNkZDlm
MGVlYzNmOSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1dlYkRy
aXZlclRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAyLTAxICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViRHJpdmVy
XSBBZGQgc3VwcG9ydCBmb3Igc2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgz
NjY3NTM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnMu
anNvbjoKKwogMjAyMi0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIFczQyBXZWJEcml2ZXIgaW1wb3J0
ZWQgdGVzdHMuCmRpZmYgLS1naXQgYS9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpz
b24gYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpzb24KaW5kZXggMzE4NTUzMDIz
NTI3Li5iZjhjYTk3MWRkNTcgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMuanNvbgorKysgYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpzb24KQEAg
LTE1NjksMjIgKzE1NjksNTggQEAKICAgICAgICAgImV4cGVjdGVkIjogeyAid3BlIjogeyAic3Rh
dHVzIjogWyJTS0lQIl0gfSB9CiAgICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90
ZXN0cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5IjogewotICAgICAgICAi
ZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMjMwNjE0In19Ci0gICAgfSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0
cy9maW5kX2VsZW1lbnRfZnJvbV9zaGFkb3dfcm9vdC91c2VyX3Byb21wdHMucHkiOiB7Ci0gICAg
ICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndl
YmtpdC5vcmcvYi8yMzA2MTQifX0KKyAgICAgICAgInN1YnRlc3RzIjogeworICAgICAgICAgICAg
InRlc3RfZmluZF9lbGVtZW50W3RhZyBuYW1lLWFdIjogeworICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsgImFsbCI6IHsgInN0YXR1cyI6IFsiU0tJUCJdfX0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRbeHBhdGgtLy9hXSI6IHsKKyAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXX19CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X2xpbmtfdGV4dFs8YSBocmVm
PSM+bGluazxicj50ZXh0PC9hPi1saW5rXFxudGV4dF0iOiB7CisgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcv
Yi8xODQ5NjQifX0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1l
bnRfbGlua190ZXh0WzxhIGhyZWY9IyBzdHlsZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+
bGluayB0ZXh0PC9hPi1MSU5LIFRFWFRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0
In19CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRp
YWxfbGlua190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjog
eworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInRlc3RfZmluZF9lbGVtZW50X3BhcnRpYWxfbGlua190ZXh0WzxhIGhyZWY9IyBzdHls
ZT0ndGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSc+cGFydGlhbCBsaW5rIHRleHQ8L2E+LUxJTktd
IjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KICAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2ZpbmRfZWxl
bWVudHNfZnJvbV9zaGFkb3dfcm9vdC9maW5kLnB5IjogewotICAgICAgICAiZXhwZWN0ZWQiOiB7
ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMjMwNjE0
In19Ci0gICAgfSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9maW5kX2VsZW1l
bnRzX2Zyb21fc2hhZG93X3Jvb3QvdXNlcl9wcm9tcHRzLnB5IjogewotICAgICAgICAiZXhwZWN0
ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MjMwNjE0In19CisgICAgICAgICJzdWJ0ZXN0cyI6IHsKKyAgICAgICAgICAgICJ0ZXN0X2ZpbmRf
ZWxlbWVudHNbdGFnIG5hbWUtYV0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyAi
YWxsIjogeyAic3RhdHVzIjogWyJTS0lQIl19fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICJ0ZXN0X2ZpbmRfZWxlbWVudHNbeHBhdGgtLy9hXSI6IHsKKyAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7ICJhbGwiOiB7ICJzdGF0dXMiOiBbIlNLSVAiXX19CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5rX3RleHRbPGEgaHJlZj0jPmxpbms8
YnI+dGV4dDwvYT4tbGlua1xcbnRleHRdIjogeworICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0
In19CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInRlc3RfZmluZF9lbGVtZW50c19saW5r
X3RleHRbPGEgaHJlZj0jIHN0eWxlPSd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJz5saW5rIHRl
eHQ8L2E+LUxJTksgVEVYVF0iOiB7CisgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwi
OiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODQ5NjQifX0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAidGVzdF9maW5kX2VsZW1lbnRzX3BhcnRpYWxfbGlu
a190ZXh0WzxhIGhyZWY9Iz5wYXJ0aWFsIGxpbms8YnI+dGV4dDwvYT4ta1xcbnRdIjogeworICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMTg0OTY0In19CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
InRlc3RfZmluZF9lbGVtZW50c19wYXJ0aWFsX2xpbmtfdGV4dFs8YSBocmVmPSMgc3R5bGU9J3Rl
eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UnPnBhcnRpYWwgbGluayB0ZXh0PC9hPi1MSU5LXSI6IHsK
KyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzE4NDk2NCJ9fQorICAgICAgICAgICAgfQorICAgICAgICB9
CiAgICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9nZXRfZWxlbWVudF9z
aGFkb3dfcm9vdC9nZXQucHkiOiB7Ci0gICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6IHsgInN0
YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTQifX0KLSAgICB9LAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL2dldF9lbGVtZW50X3NoYWRvd19yb290
L3VzZXJfcHJvbXB0cy5weSI6IHsKLSAgICAgICAgImV4cGVjdGVkIjogeyAiYWxsIjogeyAic3Rh
dHVzIjogWyJTS0lQIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzIzMDYxNCJ9fQorICAgICAgICAi
c3VidGVzdHMiOiB7CisgICAgICAgICAgICAidGVzdF9ub190b3BfYnJvd3NpbmdfY29udGV4dCI6
IHsKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7CisgICAgICAgICAgICAgICAgICAgICJ3
cGUiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMTI5NTAifSwK
KyAgICAgICAgICAgICAgICAgICAgImd0ayI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzIzMDYxMiJ9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYmRyaXZlci90ZXN0cy9iaWRp
L25ld19zZXNzaW9uL2Nvbm5lY3QucHkiOiB7CiAgICAgICAgICJleHBlY3RlZCI6IHsgImFsbCI6
IHsgInN0YXR1cyI6IFsiU0tJUCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8yMzA2MTUifX0K
</data>
<flag name="review"
          id="476927"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>