<?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>215613</bug_id>
          
          <creation_ts>2020-08-18 09:30:52 -0700</creation_ts>
          <short_desc>Fix for accessibility/mac/aria-expanded-notifications.html in isolated tree mode.</short_desc>
          <delta_ts>2020-08-18 17:55:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1681097</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-18 09:30:52 -0700</bug_when>
    <thetext>Fix for accessibility/mac/aria-expanded-notifications.html in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681113</commentid>
    <comment_count>1</comment_count>
      <attachid>406790</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-18 10:03:41 -0700</bug_when>
    <thetext>Created attachment 406790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681119</commentid>
    <comment_count>2</comment_count>
      <attachid>406790</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-18 10:38:03 -0700</bug_when>
    <thetext>Comment on attachment 406790
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1655
&gt; +    if (auto* object = get(node)) {

I’d like to see get return a RefPtr, then we don’t have to do this &quot;protected&quot; thing. But that’s probably a big change.

Another way do it is to write this:

    if (auto object = makeRefPtr(node))

I like that better than using a separate &quot;protectedObject&quot;.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1656
&gt; +        // This object might be deleted during the call to findAncestor, thus increase its ref count to avoid destruction.

Are you are that’s true? Seems peculiar that findAncestor can do this. How would finding an ancestor have side effects? We’re just calling roleValue. Does that function do non-obvious work?

Seems more likely that postNotification could delete the object. So I guess we probably do need to use RefPtr. But the comment is misleading, I think.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1660
&gt; +        auto* ancestor = Accessibility::findAncestor&lt;AccessibilityObject&gt;(*object, false, [] (const auto&amp; obj) {

Please don’t use abbreviations like &quot;obj&quot; in WebKit code. I suggest &quot;candidate&quot; here, but another word would be fine. Also can just be &quot;auto&amp;&quot;, no need to state &quot;const&quot;.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1670
&gt; +            switch (obj.roleValue()) {
&gt; +            case AccessibilityRole::Tree:
&gt; +            case AccessibilityRole::TreeGrid:
&gt; +            case AccessibilityRole::Grid:
&gt; +            case AccessibilityRole::Table:
&gt; +            case AccessibilityRole::Browser:
&gt; +                return true;
&gt; +            default:
&gt; +                return false;
&gt; +            }

Should we have a function called something like supportsRowCountChanged instead of writing out the switch like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681157</commentid>
    <comment_count>3</comment_count>
      <attachid>406801</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-18 13:07:07 -0700</bug_when>
    <thetext>Created attachment 406801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681161</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-08-18 13:18:10 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 406790 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406790&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1655
&gt; &gt; +    if (auto* object = get(node)) {
&gt; 
&gt; I’d like to see get return a RefPtr, then we don’t have to do this
&gt; &quot;protected&quot; thing. But that’s probably a big change.
&gt; 
&gt; Another way do it is to write this:
&gt; 
&gt;     if (auto object = makeRefPtr(node))
&gt; 
&gt; I like that better than using a separate &quot;protectedObject&quot;.

Yes! fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1656
&gt; &gt; +        // This object might be deleted during the call to findAncestor, thus increase its ref count to avoid destruction.
&gt; 
&gt; Are you are that’s true? Seems peculiar that findAncestor can do this. How
&gt; would finding an ancestor have side effects? We’re just calling roleValue.
&gt; Does that function do non-obvious work?
&gt; 
&gt; Seems more likely that postNotification could delete the object. So I guess
&gt; we probably do need to use RefPtr. But the comment is misleading, I think.

The original comment referred to parentObject since they were using a while loop to traverse the hierarchy upwards instead of findAncestor. I have not confirm that parentObject indeed may cause the object to be deleted, so I trusted whoever wrote that. But the point is kind of mute now that we are using the RefPtr.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1660
&gt; &gt; +        auto* ancestor = Accessibility::findAncestor&lt;AccessibilityObject&gt;(*object, false, [] (const auto&amp; obj) {
&gt; 
&gt; Please don’t use abbreviations like &quot;obj&quot; in WebKit code. I suggest
&gt; &quot;candidate&quot; here, but another word would be fine. Also can just be &quot;auto&amp;&quot;,
&gt; no need to state &quot;const&quot;.

Fixed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1670
&gt; &gt; +            switch (obj.roleValue()) {
&gt; &gt; +            case AccessibilityRole::Tree:
&gt; &gt; +            case AccessibilityRole::TreeGrid:
&gt; &gt; +            case AccessibilityRole::Grid:
&gt; &gt; +            case AccessibilityRole::Table:
&gt; &gt; +            case AccessibilityRole::Browser:
&gt; &gt; +                return true;
&gt; &gt; +            default:
&gt; &gt; +                return false;
&gt; &gt; +            }
&gt; 
&gt; Should we have a function called something like supportsRowCountChanged
&gt; instead of writing out the switch like this?

Yes, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681275</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-18 17:54:49 -0700</bug_when>
    <thetext>Committed r265842: &lt;https://trac.webkit.org/changeset/265842&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406801.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681276</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-18 17:55:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/67365749&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406790</attachid>
            <date>2020-08-18 10:03:41 -0700</date>
            <delta_ts>2020-08-18 13:07:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215613-20200818130340.patch</filename>
            <type>text/plain</type>
            <size>15472</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3NmRkZWY3ZTdhMDdj
NTVlMmE5ZThkNGFkOTZjZjc4YmYyN2E5OC4uZTE5MTA3YjIxMmQxMDk4MTJhOGVmZTFlOTI2MTI4
ZmU3NTdhZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA4LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGFj
Y2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sIGluIGlzb2xh
dGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNTYxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9u
cy5odG1sLgorCisgICAgICAgIFJlZmFjdG9yZWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4
cGFuZGVkQ2hhbmdlIHNvIHRoYXQgaXQgZG9lc24ndAorICAgICAgICBjYWxsIGludG8gQWNjZXNz
aWJpbGl0eU9iamVjdCB0byBoYW5kbGUgdGhlIG5vdGlmaWNhdGlvbiwgdG8gdGhlbiBjYWxsCisg
ICAgICAgIGludG8gQVhPYmplY3RDYWNoZSBhZ2Fpbi4gVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBp
cyBjbGVhbmVyIGFuZCBtb3JlCisgICAgICAgIHN0cmFpZ2h0Zm9yd2FyZC4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKTogVXBkYXRlcyB0aGUgaXNvbGF0ZWQg
dHJlZQorICAgICAgICBvbiB0aGUgcm93IGV4cGFuZGVkL2NvbGxhcHNlZC1yZWxhdGVkIG5vdGlm
aWNhdGlvbnMuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhhbmRsZUFyaWFF
eHBhbmRlZENoYW5nZWQpOgorICAgICAgICBEZWxldGVkLCBubyBuZWVkZWQgYW55IGxvbmdlciBz
aW5jZSBpdCBpcyBoYW5kbGVkIGluIEFYT2JqZWN0Q2FjaGUgd2hlcmUKKyAgICAgICAgaXQgc2hv
dWxkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aGFuZGxlQXJpYUV4cGFu
ZGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorCiAyMDIwLTA4LTE3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2F2ZVNoYXBlck5vZGUgc2hvdWxkIG5vdCBvdXRwdXQg
c2lsZW5jZSB3aGVuIGl0IGhhcyBubyBpbnB1dCBvciB3aGVuIGlucHV0IGlzIHNpbGVuY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGIw
M2MzMDA5NGQxYjJiMmMzZmQ1MDI0MGU1MjY2NTRkZTU2ZTdkNzcuLmM5ZGQ1NGQyZDFiNDFmMDk4
MWUyYzJiMGU5OTg2NjlkNmFhMGFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTY0NiwxMyArMTY0Niw0MyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KiB2aWV3KQogICAgICAg
ICBzY3JvbGxWaWV3T2JqZWN0LT51cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCk7CiAgICAgfQog
fQotICAgIAorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZShO
b2RlKiBub2RlKQogewotICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXQobm9k
ZSkpCi0gICAgICAgIG9iai0+aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlZCgpOworICAgIC8vIEFu
IGFyaWEtZXhwYW5kZWQgY2hhbmdlIGNhbiBjYXVzZSB0d28gbm90aWZpY2F0aW9ucyB0byBiZSBw
b3N0ZWQ6CisgICAgLy8gUm93Q291bnRDaGFuZ2VkIGZvciB0aGUgdHJlZSBvciB0YWJsZSBhbmNl
c3RvciBvZiB0aGlzIG9iamVjdCwgYW5kCisgICAgLy8gUm93RXhwYW5kZWQvQ29sbGFwc2VkIGZv
ciB0aGlzIG9iamVjdC4KKyAgICBpZiAoYXV0byogb2JqZWN0ID0gZ2V0KG5vZGUpKSB7CisgICAg
ICAgIC8vIFRoaXMgb2JqZWN0IG1pZ2h0IGJlIGRlbGV0ZWQgZHVyaW5nIHRoZSBjYWxsIHRvIGZp
bmRBbmNlc3RvciwgdGh1cyBpbmNyZWFzZSBpdHMgcmVmIGNvdW50IHRvIGF2b2lkIGRlc3RydWN0
aW9uLgorICAgICAgICBhdXRvIHByb3RlY3RlZE9iamVjdCA9IG1ha2VSZWYoKm9iamVjdCk7CisK
KyAgICAgICAgLy8gRmluZCB0aGUgYW5jZXN0b3IgdGhhdCBoYW5kbGVzIFJvd0NvdW50Q2hhbmdl
ZCBpZiBleGlzdHMuCisgICAgICAgIGF1dG8qIGFuY2VzdG9yID0gQWNjZXNzaWJpbGl0eTo6Zmlu
ZEFuY2VzdG9yPEFjY2Vzc2liaWxpdHlPYmplY3Q+KCpvYmplY3QsIGZhbHNlLCBbXSAoY29uc3Qg
YXV0byYgb2JqKSB7CisgICAgICAgICAgICBzd2l0Y2ggKG9iai5yb2xlVmFsdWUoKSkgeworICAg
ICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKKyAgICAgICAgICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVHcmlkOgorICAgICAgICAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6R3JpZDoKKyAgICAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxl
OgorICAgICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlcjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAv
LyBQb3N0IHRoYXQgdGhlIGFuY2VzdG9yJ3Mgcm93IGNvdW50IGNoYW5nZWQuCisgICAgICAgIGlm
IChhbmNlc3RvcikKKyAgICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oYW5jZXN0b3IsICZkb2N1
bWVudCgpLCBBWFJvd0NvdW50Q2hhbmdlZCk7CisKKyAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBz
cGVjaWZpYyByb3cgZWl0aGVyIGNvbGxhcHNlZCBvciBleHBhbmRlZC4KKyAgICAgICAgYXV0byBy
b2xlID0gb2JqZWN0LT5yb2xlVmFsdWUoKTsKKyAgICAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlJvdyB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbSkKKyAg
ICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24ob2JqZWN0LCAmZG9jdW1lbnQoKSwgb2JqZWN0LT5p
c0V4cGFuZGVkKCkgPyBBWFJvd0V4cGFuZGVkIDogQVhSb3dDb2xsYXBzZWQpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG9iamVjdCwgJmRvY3VtZW50KCksIEFY
RXhwYW5kZWRDaGFuZ2VkKTsKKyAgICB9CiB9Ci0gICAgCisKIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSkpCkBAIC0zMTg4LDYgKzMy
MTgsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIEFYTm90aWZpY2F0aW9uIG5vdGkKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBWENoaWxkcmVuQ2hhbmdlZDoKICAgICBjYXNlIEFYTGFuZ3VhZ2VDaGFuZ2VkOgorICAgIGNh
c2UgQVhSb3dDb3VudENoYW5nZWQ6CisgICAgY2FzZSBBWFJvd0NvbGxhcHNlZDoKKyAgICBjYXNl
IEFYUm93RXhwYW5kZWQ6CisgICAgY2FzZSBBWEV4cGFuZGVkQ2hhbmdlZDoKICAgICAgICAgdHJl
ZS0+dXBkYXRlQ2hpbGRyZW4ob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
QEAgLTMyNDksNyArMzI4MywxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVk
VHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoKLSAg
ICAgICAgY2FzZSBBWExhbmd1YWdlQ2hhbmdlZDogeworICAgICAgICBjYXNlIEFYTGFuZ3VhZ2VD
aGFuZ2VkOgorICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgorICAgICAgICBjYXNlIEFY
Um93Q29sbGFwc2VkOgorICAgICAgICBjYXNlIEFYUm93RXhwYW5kZWQ6CisgICAgICAgIGNhc2Ug
QVhFeHBhbmRlZENoYW5nZWQ6IHsKICAgICAgICAgICAgIGJvb2wgbmVlZHNVcGRhdGUgPSBhcHBl
bmRJZk5vdENvbnRhaW5zTWF0Y2hpbmcoZmlsdGVyZWROb3RpZmljYXRpb25zLCBub3RpZmljYXRp
b24sIFsmbm90aWZpY2F0aW9uXSAoY29uc3Qgc3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+
LCBBWE5vdGlmaWNhdGlvbj4mIG5vdGUpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gbm90ZS5z
ZWNvbmQgPT0gbm90aWZpY2F0aW9uLnNlY29uZCAmJiBub3RlLmZpcnN0LmdldCgpID09IG5vdGlm
aWNhdGlvbi5maXJzdC5nZXQoKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBlY2ZiYzdlNjE1
YmVjMGEyYmEzMjA5MDBhNzhiNWZiMTA5YjRkZWFmLi5hMWFlMWE5N2EyMWIwZmQ4YWZjNmFhZjg2
ZTNmMDgzNDRmZTRhNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNTA1LDcgKzUwNSw2IEBAIHB1YmxpYzoKICAgICBi
b29sIHNob3VsZEZvY3VzQWN0aXZlRGVzY2VuZGFudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWN0aXZlRGVzY2VuZGFudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGhhbmRsZUFjdGl2ZURl
c2NlbmRhbnRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBoYW5kbGVBcmlhRXhwYW5k
ZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RB
bm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGVUb1dlYkNvcmVSb2xlKGNvbnN0IFN0
cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBkMWQ2MTM0MmU1OWQ5YWNhYmE2NmUw
ZGRlMmJiNTQ4MGY5YTNlYTllLi5jYTRiMjViNGUzZjQ2NWQ2ZTcyZDM0MGEyZWFmMjJlMTg4NWJl
NzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTIzOCw3ICsxMjM4LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2VkKCkgPSAwOwogICAg
IGJvb2wgaXNEZXNjZW5kYW50T2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KikgY29uc3Q7CiAg
ICAgYm9vbCBpc0FuY2VzdG9yT2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KikgY29uc3Q7CiAg
ICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGZpcnN0QW5vbnltb3VzQmxvY2tDaGlsZCgpIGNvbnN0
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDBkODM4ZDU3NDgxZmI0N2JkOWZlMjlkOTdh
NWRjMDlhYjFkOGNhYjYuLjE4ZDlhZDliODIzODJiMzAyMWY3M2FjZjAyNDc4ZTk0OGRiMjcyYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjU4MSw0OSArMjU4MSw2IEBAIEFjY2Vzc2liaWxp
dHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjdGl2ZURlc2NlbmRhbnQoKSBj
b25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZWQoKQotewotICAgIC8vIFRoaXMgb2JqZWN0
IG1pZ2h0IGJlIGRlbGV0ZWQgdW5kZXIgdGhlIGNhbGwgdG8gdGhlIHBhcmVudE9iamVjdCgpIG1l
dGhvZC4KLSAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKLSAgICAKLSAg
ICAvLyBGaW5kIGlmIGEgcGFyZW50IG9mIHRoaXMgb2JqZWN0IHNob3VsZCBoYW5kbGUgYXJpYS1l
eHBhbmRlZCBjaGFuZ2VzLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvbnRhaW5lclBhcmVu
dCA9IHRoaXMtPnBhcmVudE9iamVjdCgpOwotICAgIHdoaWxlIChjb250YWluZXJQYXJlbnQpIHsK
LSAgICAgICAgYm9vbCBmb3VuZFBhcmVudCA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgc3dp
dGNoIChjb250YWluZXJQYXJlbnQtPnJvbGVWYWx1ZSgpKSB7Ci0gICAgICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRyZWU6Ci0gICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVH
cmlkOgotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgotICAgICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QnJvd3NlcjoKLSAgICAgICAgICAgIGZvdW5kUGFyZW50ID0gdHJ1ZTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIGlmIChmb3VuZFBhcmVudCkKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAKLSAgICAgICAgY29udGFpbmVyUGFyZW50ID0gY29udGFpbmVyUGFyZW50LT5wYXJl
bnRPYmplY3QoKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gUG9zdCB0aGF0IHRoZSByb3cgY291bnQg
Y2hhbmdlZC4KLSAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsKLSAg
ICBpZiAoIWNhY2hlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGNvbnRhaW5lclBh
cmVudCkKLSAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY29udGFpbmVyUGFyZW50LCBk
b2N1bWVudCgpLCBBWE9iamVjdENhY2hlOjpBWFJvd0NvdW50Q2hhbmdlZCk7Ci0KLSAgICAvLyBQ
b3N0IHRoYXQgdGhlIHNwZWNpZmljIHJvdyBlaXRoZXIgY29sbGFwc2VkIG9yIGV4cGFuZGVkLgot
ICAgIGlmIChyb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93IHx8IHJvbGVWYWx1
ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbSkKLSAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24odGhpcywgZG9jdW1lbnQoKSwgaXNFeHBhbmRlZCgpID8gQVhPYmplY3RDYWNo
ZTo6QVhSb3dFeHBhbmRlZCA6IEFYT2JqZWN0Q2FjaGU6OkFYUm93Q29sbGFwc2VkKTsKLSAgICBl
bHNlCi0gICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIGRvY3VtZW50KCksIEFY
T2JqZWN0Q2FjaGU6OkFYRXhwYW5kZWRDaGFuZ2VkKTsKLX0KLSAgICAKIFJlbmRlck9iamVjdCog
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGFyZ2V0RWxlbWVudEZvckFjdGl2ZURlc2NlbmRh
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQWNjZXNzaWJpbGl0eU9iamVj
dCogYWN0aXZlRGVzY2VuZGFudCkgY29uc3QKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZWxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4
IGNkMGJhMjNlZmE5YmNiOWJjMzBkMTg5ZjZhNjUyYTcxMzhlNGE5NDIuLjQ1YjZiMzRmZjVmYTlh
ZGY0ZWVlYmY0ZjIwZTllMjc0MTM1OTZlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNjEsOCAr
MTYxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkTm90aWZ5QWN0aXZlRGVzY2VuZGFudCgp
IGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0g
ICAgCisKICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJh
bmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UmVjdCBib3VuZHNG
b3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA4MzE5ZTVhZGQ4MzMz
MWVmZThmMDUyY2I0OTQ1NzgyOWI5YTZlN2YyLi5kY2FhZmI0NjRiZWFiOGJmYmJiMjc4ZmEzNDU1
MmIzNTMxZmI4MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTc0MCwxMSAr
MTc0MCw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENo
YW5nZWQoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIEFYSXNvbGF0ZWRP
YmplY3Q6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZWQoKQotewotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotfQotCiBBWENvcmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OmZpcnN0QW5vbnlt
b3VzQmxvY2tDaGlsZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKaW5kZXggM2IxNGU0YTE1OGIyMGFjM2YwNTllOWNjMDMwMzA3NjBj
MjY2NGM4Ny4uOGFjOThkNDg1MjM3MTBiZmNjZWE0NjI0YjEzZWZjZDIzNWQ1YjIwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtODcxLDcgKzg3MSw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBzaG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBWENv
cmVPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhh
bmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVB
cmlhRXhwYW5kZWRDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgQVhDb3JlT2JqZWN0KiBmaXJzdEFu
b255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGhhc0F0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQXRvbVN0
cmluZyYgZ2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYjVjZjk2MTYzNWIxYjFlZDM2Nzk2MDExMTM2Yjk1ZmU4MTdkY2FiLi43M2EzMGY3
MjFkYzZmZTVlYTJhZTYzY2FjMjZhMjYzM2EwMTk3MTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjAtMDgtMTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpeCBmb3IgYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRp
b25zLmh0bWwgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVk
LW5vdGlmaWNhdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sOiBSZW1vdmVkIHVubmVjZXNzYXJ5Cisg
ICAgICAgIGNhbGwgdG8gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuIFNv
bWUgY29kZSBjbGVhbnVwLgorCiAyMDIwLTA4LTE3ICBIZWN0b3IgTG9wZXogIDxoZWN0b3JfaV9s
b3BlekBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBdIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy92b2x1bWUtdXAtc3VwcG9ydC92b2x1bWUtdXAtc3VwcG9ydC5odG1sIGlzIGEgZmxh
a3kgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJp
YS1leHBhbmRlZC1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy1leHBlY3RlZC50eHQKaW5k
ZXggYmU1OTk1Y2QxYjI4ZTRkMDIzZGNmMWM3NWQ3NGRkZDY4YjFkYTRmMi4uZjAxNTlhNzA5Njcy
MzZjZTlhZmM5YzdhMTUxZTg3NmQ3YWIxMWZmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNh
dGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQW5pbWFscwogQmlyZHMKLVRoaXMg
dGVzdHMgdGhhdCB3aGVuIGFyaWEtZXhwYW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRl
IG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgb3V0CitUaGlzIHRlc3RzIHRoYXQgd2hlbiBhcmlhLWV4
cGFuZGVkIGlzIHRvZ2dsZWQsIHRoZSBhcHByb3ByaWF0ZSBub3RpZmljYXRpb25zIGFyZSBzZW50
IG91dC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9u
cy5odG1sCmluZGV4IGJkOThhYzFmMTdhMjg5ZWNlZDEyOWU3MGNiYmQ2NmY4MWM2YjAwZjUuLjgx
ZjQzMWQ4ZGU0MWRhYWQ0MmYzZjEyZGE2MTdhYWEwYjI0MzhlOGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZp
Y2F0aW9ucy5odG1sCkBAIC0xOSwyMSArMTksMjAgQEAKIAogPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwv
ZGl2PgogCiA8c2NyaXB0PgotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVu
IGFyaWEtZXhwYW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRlIG5vdGlmaWNhdGlvbnMg
YXJlIHNlbnQgb3V0Iik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFy
aWEtZXhwYW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRlIG5vdGlmaWNhdGlvbnMgYXJl
IHNlbnQgb3V0LiIpOwogCiAgICAgdmFyIGF4VHJlZSA9IDA7CiAgICAgdmFyIG5vdGlmeUNvdW50
ID0gMDsKLSAgICB2YXIgbm90aWZ5TmFtZSA9IDA7Ci0gICAgLy8gVGhlIG9yZGVyIG9mIG5vdGlm
aWNhdGlvbnMgc2hvdWxkIGJlIFJvdyBDb3VudCwgUm93IENvbGxhcHNlZCwgUm93IENvdW50LCBS
b3cgRXhwYW5kZWQKLSAgICBmdW5jdGlvbiBub3RpZnlDYWxsYmFjayhlbGVtZW50LCBub3RpZmlj
YXRpb24pIHsgIAorICAgIHZhciBub3RpZnlOYW1lID0gIiI7CisgICAgLy8gVGhlIG9yZGVyIG9m
IG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIFJvd0NvdW50LCBSb3dDb2xsYXBzZWQsIFJvd0NvdW50
LCBSb3dFeHBhbmRlZC4KKyAgICBmdW5jdGlvbiBub3RpZnlDYWxsYmFjayhlbGVtZW50LCBub3Rp
ZmljYXRpb24pIHsKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhMb2FkQ29tcGxldGUi
CiAgICAgICAgICAgICB8fCBub3RpZmljYXRpb24gPT0gIkFYTGF5b3V0Q29tcGxldGUiCiAgICAg
ICAgICAgICB8fCBub3RpZmljYXRpb24gPT0gIkFYRm9jdXNDaGFuZ2VkIikKICAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICBub3RpZnlOYW1lID0gbm90aWZpY2F0aW9uOwogICAgICAgICBp
ZiAobm90aWZ5Q291bnQgPT0gMCkKICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bm90aWZ5TmFtZSIsICJBWFJvd0NvdW50Q2hhbmdlZCIpOwpAQCAtNDYsMzAgKzQ1LDI4IEBACiAg
ICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpOwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KKwogICAgICAg
ICBub3RpZnlDb3VudCsrOwogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKLSAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICB2YXIgZG9tVHJlZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0cmVlMCIpOwogICAgICAgICBkb21UcmVlLmZvY3VzKCk7CiAKLSAg
ICAgICAgYXhUcmVlID0gd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50OwotCiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmeUNhbGxiYWNrKTsKICAgICAgICAg
c2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRyZWUwIik7CiAgICAgICAg
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidHJlZTBfaXRl
bTAiKTsKIAotICAgICAgICAvLyB0aGUgZmlyc3QgYXJpYS1leHBhbmRlZCBzaG91bGQgZ2VuZXJh
dGUgcm93IGNvdW50LCByb3cgY29sbGFwc2VkLgorICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHNo
b3VsZCBnZW5lcmF0ZSBub3RpZmljYXRpb25zIFJvd0NvdW50LCBSb3dDb2xsYXBzZWQuCiAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmVlMF9pdGVtMCIpLnNldEF0dHJpYnV0ZSgi
YXJpYS1leHBhbmRlZCIsICJmYWxzZSIpOwogCi0gICAgICAgIC8vIHRoZSBzZWNvbmQgYXJpYS1l
eHBhbmRlZCBzaG91bGQgZ2VuZXJhdGUgcm93IGNvdW50LCByb3cgZXhwYW5kZWQuCisgICAgICAg
IC8vIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGdlbmVyYXRlIG5vdGlmaWNhdGlvbnMgUm93Q291bnQs
IFJvd0V4cGFuZGVkLgogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJlZTBfaXRl
bTAiKS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCAidHJ1ZSIpOwogICAgIH0KLQogPC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406801</attachid>
            <date>2020-08-18 13:07:07 -0700</date>
            <delta_ts>2020-08-18 17:54:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215613-20200818160706.patch</filename>
            <type>text/plain</type>
            <size>18373</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3NmRkZWY3ZTdhMDdj
NTVlMmE5ZThkNGFkOTZjZjc4YmYyN2E5OC4uNTY4YTJlMjAzNjNmOWJmYmEwNGMzMGNmODEwYTUy
NWZjNGE5NDMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA4LTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIGFj
Y2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sIGluIGlzb2xh
dGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNTYxMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5o
dG1sLgorCisgICAgICAgIFJlZmFjdG9yZWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFu
ZGVkQ2hhbmdlIHNvIHRoYXQgaXQgZG9lc24ndAorICAgICAgICBjYWxsIGludG8gQWNjZXNzaWJp
bGl0eU9iamVjdCB0byBoYW5kbGUgdGhlIG5vdGlmaWNhdGlvbiwgdG8gdGhlbiBjYWxsCisgICAg
ICAgIGludG8gQVhPYmplY3RDYWNoZSBhZ2Fpbi4gVGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBpcyBj
bGVhbmVyIGFuZCBtb3JlCisgICAgICAgIHN0cmFpZ2h0Zm9yd2FyZC4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKTogVXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJl
ZQorICAgICAgICBvbiB0aGUgcm93IGV4cGFuZGVkL2NvbGxhcHNlZC1yZWxhdGVkIG5vdGlmaWNh
dGlvbnMuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUm93Q291bnRD
aGFuZ2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlZCk6CisgICAgICAgIERlbGV0ZWQsIG5vdCBuZWVkZWQg
YW55IGxvbmdlciBzaW5jZSBpdCBpcyBoYW5kbGVkIGluIEFYT2JqZWN0Q2FjaGUgd2hlcmUKKyAg
ICAgICAgaXQgc2hvdWxkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEpOiBDYWNoZXMgdGhlCisgICAgICAgIHN1cHBvcnRzUm93Q291
bnRDaGFuZ2UgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpo
YW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2VkKTogRGVsZXRlZCwgbm90CisgICAgICAgIG5lZWRlZCBh
bnkgbG9uZ2VyLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaDoKKwogMjAyMC0wOC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFdhdmVTaGFwZXJOb2RlIHNob3VsZCBub3Qgb3V0cHV0IHNpbGVuY2Ugd2hl
biBpdCBoYXMgbm8gaW5wdXQgb3Igd2hlbiBpbnB1dCBpcyBzaWxlbmNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBiMDNjMzAwOTRkMWIy
YjJjM2ZkNTAyNDBlNTI2NjU0ZGU1NmU3ZDc3Li41NzlkMGQ4NzE2Yjc5MTIzYmFiMDM5ZmE0MDYy
MGE0YWFlM2JiYjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTE2NDYsMTMgKzE2NDYsMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyogdmlldykKICAgICAgICAgc2Nyb2xsVmll
d09iamVjdC0+dXBkYXRlQ2hpbGRyZW5JZk5lY2Vzc2FyeSgpOwogICAgIH0KIH0KLSAgICAKKwog
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UoTm9kZSogbm9kZSkK
IHsKLSAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0KG5vZGUpKQotICAgICAg
ICBvYmotPmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZWQoKTsKKyAgICAvLyBBbiBhcmlhLWV4cGFu
ZGVkIGNoYW5nZSBjYW4gY2F1c2UgdHdvIG5vdGlmaWNhdGlvbnMgdG8gYmUgcG9zdGVkOgorICAg
IC8vIFJvd0NvdW50Q2hhbmdlZCBmb3IgdGhlIHRyZWUgb3IgdGFibGUgYW5jZXN0b3Igb2YgdGhp
cyBvYmplY3QsIGFuZAorICAgIC8vIFJvd0V4cGFuZGVkL0NvbGxhcHNlZCBmb3IgdGhpcyBvYmpl
Y3QuCisgICAgaWYgKGF1dG8gb2JqZWN0ID0gbWFrZVJlZlB0cihnZXQobm9kZSkpKSB7CisgICAg
ICAgIC8vIEZpbmQgdGhlIGFuY2VzdG9yIHRoYXQgc3VwcG9ydHMgUm93Q291bnRDaGFuZ2VkIGlm
IGV4aXN0cy4KKyAgICAgICAgYXV0byogYW5jZXN0b3IgPSBBY2Nlc3NpYmlsaXR5OjpmaW5kQW5j
ZXN0b3I8QWNjZXNzaWJpbGl0eU9iamVjdD4oKm9iamVjdCwgZmFsc2UsIFtdIChhdXRvJiBjYW5k
aWRhdGUpIHsKKyAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGUuc3VwcG9ydHNSb3dDb3VudENo
YW5nZSgpOworICAgICAgICB9KTsKKworICAgICAgICAvLyBQb3N0IHRoYXQgdGhlIGFuY2VzdG9y
J3Mgcm93IGNvdW50IGNoYW5nZWQuCisgICAgICAgIGlmIChhbmNlc3RvcikKKyAgICAgICAgICAg
IHBvc3ROb3RpZmljYXRpb24oYW5jZXN0b3IsICZkb2N1bWVudCgpLCBBWFJvd0NvdW50Q2hhbmdl
ZCk7CisKKyAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBzcGVjaWZpYyByb3cgZWl0aGVyIGNvbGxh
cHNlZCBvciBleHBhbmRlZC4KKyAgICAgICAgYXV0byByb2xlID0gb2JqZWN0LT5yb2xlVmFsdWUo
KTsKKyAgICAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlJvdyB8fCByb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbSkKKyAgICAgICAgICAgIHBvc3ROb3RpZmljYXRp
b24ob2JqZWN0LmdldCgpLCAmZG9jdW1lbnQoKSwgb2JqZWN0LT5pc0V4cGFuZGVkKCkgPyBBWFJv
d0V4cGFuZGVkIDogQVhSb3dDb2xsYXBzZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBw
b3N0Tm90aWZpY2F0aW9uKG9iamVjdC5nZXQoKSwgJmRvY3VtZW50KCksIEFYRXhwYW5kZWRDaGFu
Z2VkKTsKKyAgICB9CiB9Ci0gICAgCisKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQWN0aXZl
RGVzY2VuZGFudENoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBpZiAoQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSkpCkBAIC0zMTg4LDYgKzMyMDYsMTAgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0JiBvYmplY3Qs
IEFYTm90aWZpY2F0aW9uIG5vdGkKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWENoaWxkcmVu
Q2hhbmdlZDoKICAgICBjYXNlIEFYTGFuZ3VhZ2VDaGFuZ2VkOgorICAgIGNhc2UgQVhSb3dDb3Vu
dENoYW5nZWQ6CisgICAgY2FzZSBBWFJvd0NvbGxhcHNlZDoKKyAgICBjYXNlIEFYUm93RXhwYW5k
ZWQ6CisgICAgY2FzZSBBWEV4cGFuZGVkQ2hhbmdlZDoKICAgICAgICAgdHJlZS0+dXBkYXRlQ2hp
bGRyZW4ob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTMyNDksNyAr
MzI3MSwxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoKLSAgICAgICAgY2FzZSBB
WExhbmd1YWdlQ2hhbmdlZDogeworICAgICAgICBjYXNlIEFYTGFuZ3VhZ2VDaGFuZ2VkOgorICAg
ICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgorICAgICAgICBjYXNlIEFYUm93Q29sbGFwc2Vk
OgorICAgICAgICBjYXNlIEFYUm93RXhwYW5kZWQ6CisgICAgICAgIGNhc2UgQVhFeHBhbmRlZENo
YW5nZWQ6IHsKICAgICAgICAgICAgIGJvb2wgbmVlZHNVcGRhdGUgPSBhcHBlbmRJZk5vdENvbnRh
aW5zTWF0Y2hpbmcoZmlsdGVyZWROb3RpZmljYXRpb25zLCBub3RpZmljYXRpb24sIFsmbm90aWZp
Y2F0aW9uXSAoY29uc3Qgc3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBBWE5vdGlmaWNh
dGlvbj4mIG5vdGUpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gbm90ZS5zZWNvbmQgPT0gbm90
aWZpY2F0aW9uLnNlY29uZCAmJiBub3RlLmZpcnN0LmdldCgpID09IG5vdGlmaWNhdGlvbi5maXJz
dC5nZXQoKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMTg5YzM2Y2JmMjE2N2VkOWFm
MDBlYWYyZmQ0Mzc4YjdhOWE3ZTRmZC4uY2E1ZjIyMTMwNmM1OTdhZmQxZmJlMTM3MmE5ZGNhNjQz
YzU4ODRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNzM1LDYgKzI3MzUsMjAgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdXBwb3J0c0NoZWNrZWQoKSBjb25zdAogICAgIH0KIH0KIAorYm9vbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1Jvd0NvdW50Q2hhbmdlKCkgY29uc3QKK3sKKyAgICBz
d2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToK
KyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpHcmlkOgorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgorICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJyb3dzZXI6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIEFjY2Vzc2li
aWxpdHlCdXR0b25TdGF0ZSBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjaGVja2JveE9yUmFkaW9WYWx1
ZSgpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhpcyBpcyBhIHJlYWwgY2hlY2tib3ggb3IgcmFkaW8g
YnV0dG9uLCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHdpbGwgaGFuZGxlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBl
Y2ZiYzdlNjE1YmVjMGEyYmEzMjA5MDBhNzhiNWZiMTA5YjRkZWFmLi5lZmZiNzJlODYxN2E1ZDg0
YTM1YWNiMGQxZjBmNjVmOTNkZTMwY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMzA1LDYgKzMwNSw3IEBAIHB1Ymxp
YzoKICAgICBib29sIHN1cHBvcnRzUHJlc3NlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
c3VwcG9ydHNFeHBhbmRlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNDaGVj
a2VkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c1Jvd0NvdW50Q2hhbmdlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVNvcnREaXJlY3Rpb24gc29ydERpcmVj
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FudmFzSGFzRmFsbGJhY2tDb250ZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHN1cHBvcnRzUmFu
Z2VWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTA1LDcgKzUwNiw2IEBAIHB1YmxpYzoKICAg
ICBib29sIHNob3VsZEZvY3VzQWN0aXZlRGVzY2VuZGFudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYWN0aXZlRGVzY2VuZGFudCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIGhhbmRsZUFjdGl2
ZURlc2NlbmRhbnRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBoYW5kbGVBcmlhRXhw
YW5kZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZmly
c3RBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGVUb1dlYkNvcmVSb2xlKGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBkMWQ2MTM0MmU1OWQ5YWNhYmE2
NmUwZGRlMmJiNTQ4MGY5YTNlYTllLi43ZjBmNTk0ZjE2MTJmZWI3M2QwODk1YjhhY2FiMTk2YWFk
NmEzMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTAzMiw2ICsxMDMyLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ByZXNzZWQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRXhwYW5kZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzQ2hlY2tlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNSb3dDb3VudENoYW5nZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlT
b3J0RGlyZWN0aW9uIHNvcnREaXJlY3Rpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNSYW5nZVZhbHVlKCkgY29uc3QgPSAwOwpAQCAtMTIzOCw3ICsxMjM5LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2VkKCkgPSAwOwog
ICAgIGJvb2wgaXNEZXNjZW5kYW50T2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KikgY29uc3Q7
CiAgICAgYm9vbCBpc0FuY2VzdG9yT2ZPYmplY3QoY29uc3QgQVhDb3JlT2JqZWN0KikgY29uc3Q7
CiAgICAgdmlydHVhbCBBWENvcmVPYmplY3QqIGZpcnN0QW5vbnltb3VzQmxvY2tDaGlsZCgpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDBkODM4ZDU3NDgxZmI0N2JkOWZlMjlk
OTdhNWRjMDlhYjFkOGNhYjYuLjE4ZDlhZDliODIzODJiMzAyMWY3M2FjZjAyNDc4ZTk0OGRiMjcy
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjU4MSw0OSArMjU4MSw2IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjdGl2ZURlc2NlbmRhbnQo
KSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZWQoKQotewotICAgIC8vIFRoaXMgb2Jq
ZWN0IG1pZ2h0IGJlIGRlbGV0ZWQgdW5kZXIgdGhlIGNhbGwgdG8gdGhlIHBhcmVudE9iamVjdCgp
IG1ldGhvZC4KLSAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKLSAgICAK
LSAgICAvLyBGaW5kIGlmIGEgcGFyZW50IG9mIHRoaXMgb2JqZWN0IHNob3VsZCBoYW5kbGUgYXJp
YS1leHBhbmRlZCBjaGFuZ2VzLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvbnRhaW5lclBh
cmVudCA9IHRoaXMtPnBhcmVudE9iamVjdCgpOwotICAgIHdoaWxlIChjb250YWluZXJQYXJlbnQp
IHsKLSAgICAgICAgYm9vbCBmb3VuZFBhcmVudCA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAg
c3dpdGNoIChjb250YWluZXJQYXJlbnQtPnJvbGVWYWx1ZSgpKSB7Ci0gICAgICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlRyZWU6Ci0gICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRy
ZWVHcmlkOgotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgotICAgICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QnJvd3NlcjoKLSAgICAgICAgICAgIGZvdW5kUGFyZW50ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGlmIChmb3VuZFBhcmVudCkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAKLSAgICAgICAgY29udGFpbmVyUGFyZW50ID0gY29udGFpbmVyUGFyZW50LT5w
YXJlbnRPYmplY3QoKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gUG9zdCB0aGF0IHRoZSByb3cgY291
bnQgY2hhbmdlZC4KLSAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKTsK
LSAgICBpZiAoIWNhY2hlKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGNvbnRhaW5l
clBhcmVudCkKLSAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY29udGFpbmVyUGFyZW50
LCBkb2N1bWVudCgpLCBBWE9iamVjdENhY2hlOjpBWFJvd0NvdW50Q2hhbmdlZCk7Ci0KLSAgICAv
LyBQb3N0IHRoYXQgdGhlIHNwZWNpZmljIHJvdyBlaXRoZXIgY29sbGFwc2VkIG9yIGV4cGFuZGVk
LgotICAgIGlmIChyb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93IHx8IHJvbGVW
YWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbSkKLSAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24odGhpcywgZG9jdW1lbnQoKSwgaXNFeHBhbmRlZCgpID8gQVhPYmplY3RD
YWNoZTo6QVhSb3dFeHBhbmRlZCA6IEFYT2JqZWN0Q2FjaGU6OkFYUm93Q29sbGFwc2VkKTsKLSAg
ICBlbHNlCi0gICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIGRvY3VtZW50KCks
IEFYT2JqZWN0Q2FjaGU6OkFYRXhwYW5kZWRDaGFuZ2VkKTsKLX0KLSAgICAKIFJlbmRlck9iamVj
dCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGFyZ2V0RWxlbWVudEZvckFjdGl2ZURlc2Nl
bmRhbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQWNjZXNzaWJpbGl0eU9i
amVjdCogYWN0aXZlRGVzY2VuZGFudCkgY29uc3QKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZWxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmlu
ZGV4IGNkMGJhMjNlZmE5YmNiOWJjMzBkMTg5ZjZhNjUyYTcxMzhlNGE5NDIuLjQ1YjZiMzRmZjVm
YTlhZGY0ZWVlYmY0ZjIwZTllMjc0MTM1OTZlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNjEs
OCArMTYxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkTm90aWZ5QWN0aXZlRGVzY2VuZGFu
dCgpIGNvbnN0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2VkKCkgb3ZlcnJpZGU7
Ci0gICAgCisKICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlv
blJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UmVjdCBib3Vu
ZHNGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA4MzE5ZTVhZGQ4
MzMzMWVmZThmMDUyY2I0OTQ1NzgyOWI5YTZlN2YyLi5jMGFiNGEzMGM1NWRjNDBiYjVmMzYxYjI2
MTJmMTRkNWI1OTU3M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTM1LDYg
KzEzNSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEo
QVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlJvbGVWYWx1ZSwgc3RhdGljX2Nhc3Q8aW50PihvYmplY3Qucm9sZVZhbHVlKCkp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlZWNoSGludCwgb2JqZWN0LnNw
ZWVjaEhpbnRBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0
eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNEYXRldGltZUF0dHJpYnV0ZSwgb2JqZWN0LnN1cHBv
cnRzRGF0ZXRpbWVBdHRyaWJ1dGUoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OlN1cHBvcnRzUm93Q291bnRDaGFuZ2UsIG9iamVjdC5zdXBwb3J0c1Jvd0NvdW50Q2hhbmdlKCkp
OwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUaXRsZSwgb2JqZWN0LnRpdGxlKCku
aXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUaXRsZUF0
dHJpYnV0ZVZhbHVlLCBvYmplY3QudGl0bGVBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGF0ZXRpbWVBdHRyaWJ1dGVWYWx1
ZSwgb2JqZWN0LmRhdGV0aW1lQXR0cmlidXRlVmFsdWUoKSk7CkBAIC0xNzQwLDExICsxNzQxLDYg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCgp
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6
aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlZCgpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci19Ci0KIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6Zmlyc3RBbm9ueW1vdXNCbG9j
a0NoaWxkKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaAppbmRleCAzYjE0ZTRhMTU4YjIwYWMzZjA1OWU5Y2MwMzAzMDc2MGMyNjY0Yzg3
Li40ZDYxYzkwMmRiNDVjNmRjZDhjZjdhZmUyNGNmOTg5OGY1ZTNjMGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCkBAIC0zMTUsNiArMzE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgU3BlYWtB
cywKICAgICAgICAgU3BlZWNoSGludCwKICAgICAgICAgU3RyaW5nVmFsdWUsCisgICAgICAgIFN1
cHBvcnRzUm93Q291bnRDaGFuZ2UsCiAgICAgICAgIFN1cHBvcnRzRHJhZ2dpbmcsCiAgICAgICAg
IFN1cHBvcnRzRHJvcHBpbmcsCiAgICAgICAgIFN1cHBvcnRzQVJJQU93bnMsCkBAIC04MDIsNiAr
ODAzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzSGFzUG9wdXAoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIHN1cHBvcnRzUHJlc3NlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJv
b2wgc3VwcG9ydHNDaGVja2VkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c1Jv
d0NvdW50Q2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Jvd0NvdW50Q2hhbmdlKTsgfQogICAgIGJvb2wgaWdu
b3JlZEZyb21Nb2RhbFByZXNlbmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vZGFs
RGVzY2VuZGFudChOb2RlKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vZGFsTm9kZSgp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtODcxLDcgKzg3Myw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBz
aG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBBWENvcmVP
YmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRs
ZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVBcmlh
RXhwYW5kZWRDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgQVhDb3JlT2JqZWN0KiBmaXJzdEFub255
bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGhhc0F0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQXRvbVN0cmlu
ZyYgZ2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAzYjVjZjk2MTYzNWIxYjFlZDM2Nzk2MDExMTM2Yjk1ZmU4MTdkY2FiLi43NGQwZTUzZGMy
MTMwMTdjZjc4ZGYzNjY0ZjFkZjdkMWY3ODk0NzVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMDgtMTggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBmb3IgYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25z
Lmh0bWwgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlm
aWNhdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
ZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sOiBSZW1vdmVkIHVubmVjZXNzYXJ5CisgICAgICAg
IGNhbGwgdG8gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuIFNvbWUgY29k
ZSBjbGVhbnVwLgorCiAyMDIwLTA4LTE3ICBIZWN0b3IgTG9wZXogIDxoZWN0b3JfaV9sb3BlekBh
cHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBdIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy92b2x1bWUtdXAtc3VwcG9ydC92b2x1bWUtdXAtc3VwcG9ydC5odG1sIGlzIGEgZmxha3kgdGlt
ZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBh
bmRlZC1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggYmU1
OTk1Y2QxYjI4ZTRkMDIzZGNmMWM3NWQ3NGRkZDY4YjFkYTRmMi4uZjAxNTlhNzA5NjcyMzZjZTlh
ZmM5YzdhMTUxZTg3NmQ3YWIxMWZmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQW5pbWFscwogQmlyZHMKLVRoaXMgdGVzdHMg
dGhhdCB3aGVuIGFyaWEtZXhwYW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRlIG5vdGlm
aWNhdGlvbnMgYXJlIHNlbnQgb3V0CitUaGlzIHRlc3RzIHRoYXQgd2hlbiBhcmlhLWV4cGFuZGVk
IGlzIHRvZ2dsZWQsIHRoZSBhcHByb3ByaWF0ZSBub3RpZmljYXRpb25zIGFyZSBzZW50IG91dC4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1s
CmluZGV4IGJkOThhYzFmMTdhMjg5ZWNlZDEyOWU3MGNiYmQ2NmY4MWM2YjAwZjUuLjgxZjQzMWQ4
ZGU0MWRhYWQ0MmYzZjEyZGE2MTdhYWEwYjI0MzhlOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9u
cy5odG1sCkBAIC0xOSwyMSArMTksMjAgQEAKIAogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2Pgog
CiA8c2NyaXB0PgotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFyaWEt
ZXhwYW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRlIG5vdGlmaWNhdGlvbnMgYXJlIHNl
bnQgb3V0Iik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3aGVuIGFyaWEtZXhw
YW5kZWQgaXMgdG9nZ2xlZCwgdGhlIGFwcHJvcHJpYXRlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQg
b3V0LiIpOwogCiAgICAgdmFyIGF4VHJlZSA9IDA7CiAgICAgdmFyIG5vdGlmeUNvdW50ID0gMDsK
LSAgICB2YXIgbm90aWZ5TmFtZSA9IDA7Ci0gICAgLy8gVGhlIG9yZGVyIG9mIG5vdGlmaWNhdGlv
bnMgc2hvdWxkIGJlIFJvdyBDb3VudCwgUm93IENvbGxhcHNlZCwgUm93IENvdW50LCBSb3cgRXhw
YW5kZWQKLSAgICBmdW5jdGlvbiBub3RpZnlDYWxsYmFjayhlbGVtZW50LCBub3RpZmljYXRpb24p
IHsgIAorICAgIHZhciBub3RpZnlOYW1lID0gIiI7CisgICAgLy8gVGhlIG9yZGVyIG9mIG5vdGlm
aWNhdGlvbnMgc2hvdWxkIGJlIFJvd0NvdW50LCBSb3dDb2xsYXBzZWQsIFJvd0NvdW50LCBSb3dF
eHBhbmRlZC4KKyAgICBmdW5jdGlvbiBub3RpZnlDYWxsYmFjayhlbGVtZW50LCBub3RpZmljYXRp
b24pIHsKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhMb2FkQ29tcGxldGUiCiAgICAg
ICAgICAgICB8fCBub3RpZmljYXRpb24gPT0gIkFYTGF5b3V0Q29tcGxldGUiCiAgICAgICAgICAg
ICB8fCBub3RpZmljYXRpb24gPT0gIkFYRm9jdXNDaGFuZ2VkIikKICAgICAgICAgICAgIHJldHVy
bjsKKwogICAgICAgICBub3RpZnlOYW1lID0gbm90aWZpY2F0aW9uOwogICAgICAgICBpZiAobm90
aWZ5Q291bnQgPT0gMCkKICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibm90aWZ5
TmFtZSIsICJBWFJvd0NvdW50Q2hhbmdlZCIpOwpAQCAtNDYsMzAgKzQ1LDI4IEBACiAgICAgICAg
ICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
OwogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KKwogICAgICAgICBub3Rp
ZnlDb3VudCsrOwogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKLSAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICB2YXIgZG9tVHJlZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0cmVlMCIpOwogICAgICAgICBkb21UcmVlLmZvY3VzKCk7CiAKLSAgICAgICAg
YXhUcmVlID0gd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50Owot
CiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmeUNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxk
QmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRyZWUwIik7CiAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidHJlZTBfaXRlbTAiKTsK
IAotICAgICAgICAvLyB0aGUgZmlyc3QgYXJpYS1leHBhbmRlZCBzaG91bGQgZ2VuZXJhdGUgcm93
IGNvdW50LCByb3cgY29sbGFwc2VkLgorICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHNob3VsZCBn
ZW5lcmF0ZSBub3RpZmljYXRpb25zIFJvd0NvdW50LCBSb3dDb2xsYXBzZWQuCiAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0cmVlMF9pdGVtMCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1l
eHBhbmRlZCIsICJmYWxzZSIpOwogCi0gICAgICAgIC8vIHRoZSBzZWNvbmQgYXJpYS1leHBhbmRl
ZCBzaG91bGQgZ2VuZXJhdGUgcm93IGNvdW50LCByb3cgZXhwYW5kZWQuCisgICAgICAgIC8vIFRo
ZSBmb2xsb3dpbmcgc2hvdWxkIGdlbmVyYXRlIG5vdGlmaWNhdGlvbnMgUm93Q291bnQsIFJvd0V4
cGFuZGVkLgogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJlZTBfaXRlbTAiKS5z
ZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCAidHJ1ZSIpOwogICAgIH0KLQogPC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>