<?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>238267</bug_id>
          
          <creation_ts>2022-03-23 09:56:29 -0700</creation_ts>
          <short_desc>AX: Remove firstChild, lastChild, previousSibling, nextSibling, nextSiblingUnignored, and previousSiblingUnignored from the AXCoreObject interface</short_desc>
          <delta_ts>2022-03-24 08:55:02 -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>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</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>1854222</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-23 09:56:29 -0700</bug_when>
    <thetext>All of these except nextSibling and previousSibling are ASSERT_NOT_REACHED no-ops in AXIsolatedObject. We do compute next and previous sibling for isolated objects, but they&apos;re only used in one place (appendChildrenToArray), and the usage doesn&apos;t make sense for isolated objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854223</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-23 09:56:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/90705867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854231</commentid>
    <comment_count>2</comment_count>
      <attachid>455511</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-23 10:02:02 -0700</bug_when>
    <thetext>Created attachment 455511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854654</commentid>
    <comment_count>3</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-03-24 05:47:32 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #2)
&gt; Created attachment 455511 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
+++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h

-    bool accessibilityIsIgnored() const override { return boolAttributeValue(AXPropertyName::IsAccessibilityIgnored); }
+    // We should never create an isolated object from an ignored live object, so we can hardcode this to false.
+    bool accessibilityIsIgnored() const override { return false; }

What about if the object becomes ignored after being created in an update? Perhaps we should maintain the property for that case.

The rest looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854682</commentid>
    <comment_count>4</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-24 08:13:14 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #3)
&gt; (In reply to Tyler Wilcock from comment #2)
&gt; &gt; Created attachment 455511 [details]
&gt; &gt; Patch
&gt; 
&gt; --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
&gt; +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
&gt; 
&gt; -    bool accessibilityIsIgnored() const override { return
&gt; boolAttributeValue(AXPropertyName::IsAccessibilityIgnored); }
&gt; +    // We should never create an isolated object from an ignored live
&gt; object, so we can hardcode this to false.
&gt; +    bool accessibilityIsIgnored() const override { return false; }
&gt; 
&gt; What about if the object becomes ignored after being created in an update?
&gt; Perhaps we should maintain the property for that case.
&gt; 
&gt; The rest looks good!
I would expect this sequence:

  1. Object becomes ignored through some webpage change
  2. Because the object is ignored, its live object parent gets a child update that now excludes this newly ignored object (because we never allow insertion of ignored children into what is effectively the AX tree, AccessibilityObject::m_children -- see AccessibilityObject::insertChild)
  3. We also get an AXIsolatedTree::updateChildren for the parent, which finds that it no longer has the newly ignored object as a child, and thus the child gets deleted from the isolated tree entirely

Meaning a property wouldn&apos;t be necessary, because the object should be deleted from the isolated tree outright.  Step 2 is heavy in assumption, though...not sure that every change that would cause an object to become ignored also causes a live object to update its children.

And regardless of all of that, because we don&apos;t have any logic in place to update AXPropertyName::IsAccessibilityIgnored, my opinion is that we can add the property again later when we actually need to (if we ever do).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854684</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-03-24 08:18:13 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; (In reply to Andres Gonzalez from comment #3)
&gt; &gt; (In reply to Tyler Wilcock from comment #2)
&gt; &gt; &gt; Created attachment 455511 [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
&gt; &gt; +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
&gt; &gt; 
&gt; &gt; -    bool accessibilityIsIgnored() const override { return
&gt; &gt; boolAttributeValue(AXPropertyName::IsAccessibilityIgnored); }
&gt; &gt; +    // We should never create an isolated object from an ignored live
&gt; &gt; object, so we can hardcode this to false.
&gt; &gt; +    bool accessibilityIsIgnored() const override { return false; }
&gt; &gt; 
&gt; &gt; What about if the object becomes ignored after being created in an update?
&gt; &gt; Perhaps we should maintain the property for that case.
&gt; &gt; 
&gt; &gt; The rest looks good!
&gt; I would expect this sequence:
&gt; 
&gt;   1. Object becomes ignored through some webpage change
&gt;   2. Because the object is ignored, its live object parent gets a child
&gt; update that now excludes this newly ignored object (because we never allow
&gt; insertion of ignored children into what is effectively the AX tree,
&gt; AccessibilityObject::m_children -- see AccessibilityObject::insertChild)
&gt;   3. We also get an AXIsolatedTree::updateChildren for the parent, which
&gt; finds that it no longer has the newly ignored object as a child, and thus
&gt; the child gets deleted from the isolated tree entirely
&gt; 
&gt; Meaning a property wouldn&apos;t be necessary, because the object should be
&gt; deleted from the isolated tree outright.  Step 2 is heavy in assumption,
&gt; though...not sure that every change that would cause an object to become
&gt; ignored also causes a live object to update its children.
&gt; 
&gt; And regardless of all of that, because we don&apos;t have any logic in place to
&gt; update AXPropertyName::IsAccessibilityIgnored, my opinion is that we can add
&gt; the property again later when we actually need to (if we ever do).

Agree. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854687</commentid>
    <comment_count>6</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-03-24 08:26:31 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854700</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-24 08:54:57 -0700</bug_when>
    <thetext>Committed r291798 (248826@main): &lt;https://commits.webkit.org/248826@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455511.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455511</attachid>
            <date>2022-03-23 10:02:02 -0700</date>
            <delta_ts>2022-03-24 08:55:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238267-20220323120200.patch</filename>
            <type>text/plain</type>
            <size>12951</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk3ZDQ3MDIyZjNjMWYz
YzRkY2I5MzE5MDE1MTg5NzdiN2ZkYjNjYy4uY2FiZDVhNmQ2NDE2ZmQ4OTgxNzc1YTdlNGRiNmFi
ZTJiMDRmMmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAzLTIzICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFJlbW92ZSBmaXJz
dENoaWxkLCBsYXN0Q2hpbGQsIHByZXZpb3VzU2libGluZywgbmV4dFNpYmxpbmcsIG5leHRTaWJs
aW5nVW5pZ25vcmVkLCBhbmQgcHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkIGZyb20gdGhlIEFYQ29y
ZU9iamVjdCBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODI2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbCBvZiB0aGVzZSBleGNlcHQgbmV4dFNpYmxpbmcgYW5kIHByZXZpb3VzU2li
bGluZyBhcmUgQVNTRVJUX05PVF9SRUFDSEVEIG5vLW9wcworICAgICAgICBpbiBBWElzb2xhdGVk
T2JqZWN0LiBXZSBkbyBjb21wdXRlIG5leHQgYW5kIHByZXZpb3VzIHNpYmxpbmcgZm9yIGlzb2xh
dGVkIG9iamVjdHMsCisgICAgICAgIGJ1dCB0aGV5J3JlIG9ubHkgdXNlZCBpbiBvbmUgcGxhY2Ug
KGFwcGVuZENoaWxkcmVuVG9BcnJheSkuIFVzYWdlIG9mIHRoZXNlIGZ1bmN0aW9ucworICAgICAg
ICBpbiBhcHBlbmRDaGlsZHJlblRvQXJyYXkgZG9lc24ndCBtYWtlIHNlbnNlIGZvciBpc29sYXRl
ZCBvYmplY3RzLCBhcyBpdCB3b3VsZCByZXF1aXJlCisgICAgICAgIHRoZSBpc29sYXRlZCBvYmpl
Y3QgdG8gYmUgaWdub3JlZCBmb3IgdGhlbSB0byBiZSBjYWxsZWQsIGFuZCB3ZSBzaG91bGQgbmV2
ZXIgaGF2ZSBjcmVhdGVkIGFuCisgICAgICAgIGlzb2xhdGVkIG9iamVjdCBmcm9tIGFuIGlnbm9y
ZWQgbGl2ZSBvYmplY3QuCisKKyAgICAgICAgRG92ZXRhaWxpbmcgZnJvbSB0aGF0LCB0aGlzIHBh
dGNoIGFsc28gcmVtb3ZlcyBBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwK
KyAgICAgICAgc2luY2UgdGhpcyBzaG91bGQgYWx3YXlzIGJlIGZhbHNlIGZvciBpc29sYXRlZCBv
YmplY3RzLiBBU1NFUlRzIGhhdmUgYmVlbiBhZGRlZCBpbiBhCisgICAgICAgIGZldyBwbGFjZXMg
dG8gYXNzdXJlIHRoaXMgaXMgdGhlIGNhc2UuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6
YXBwZW5kQ2hpbGRyZW5Ub0FycmF5KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmZp
cnN0Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
bGFzdENoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OnByZXZpb3VzU2libGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpuZXh0U2libGluZyBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkT2JqZWN0OjpmaXJzdENoaWxkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Omxhc3RDaGlsZCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpuZXh0U2libGluZ1VuaWdub3JlZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2aW91
c1NpYmxpbmdVbmlnbm9yZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAgICBSZW1vdmUgQVhQcm9w
ZXJ0eU5hbWU6Ok5leHRTaWJsaW5nLCBBWFByb3BlcnR5TmFtZTo6UHJldmlvdXNTaWJsaW5nLAor
ICAgICAgICBBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmlsaXR5SWdub3JlZC4KKwogMjAyMi0w
My0yMSAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojp2aXNpYmxlQ2hhcmFjdGVyUmFuZ2UgaXMgZXh0cmVtZWx5IHNs
b3cgd2hlbiBjYWxsZWQgb24gb2JqZWN0cyB3aXRoIGxvdHMgb2YgdGV4dApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXgg
NWFkMjJjMTcwZjU0MjdhODViNzU0ODM3ODkwNWRjMGYyN2UyZWJmMi4uNmRiMGEwYzk3ZDYwOTY0
MjIxZDJkODRiMGI4NDZlYThjNjVjZGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC00MjYzLDkgKzQyNjMsMTUg
QEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5KFJlZlB0cjxBWENvcmVPYmplY3Q+
IG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIFIKICAgICAgICAgICAgIHN0YXJ0T2JqZWN0ID0gcGFy
ZW50T2JqZWN0OwogICAgICAgICAgICAgcGFyZW50T2JqZWN0ID0gcGFyZW50T2JqZWN0LT5wYXJl
bnRPYmplY3QoKTsKICAgICAgICAgfQorCisgICAgICAgIC8vIFdlIHNob3VsZCBvbmx5IGV2ZXIg
aGl0IHRoaXMgY2FzZSB3aXRoIGEgbGl2ZSBvYmplY3QgKG5vdCBhbiBpc29sYXRlZCBvYmplY3Qp
LCBhcyBpdCB3b3VsZCByZXF1aXJlIHN0YXJ0T2JqZWN0IHRvIGJlIGlnbm9yZWQsCisgICAgICAg
IC8vIGFuZCB3ZSBzaG91bGQgbmV2ZXIgaGF2ZSBjcmVhdGVkIGFuIGlzb2xhdGVkIG9iamVjdCBm
cm9tIGFuIGlnbm9yZWQgbGl2ZSBvYmplY3QuCisgICAgICAgIEFTU0VSVChpczxBY2Nlc3NpYmls
aXR5T2JqZWN0PihzdGFydE9iamVjdCkpOworICAgICAgICBhdXRvKiBuZXdTdGFydE9iamVjdCA9
IGR5bmFtaWNEb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PihzdGFydE9iamVjdC5nZXQoKSk7
CiAgICAgICAgIC8vIEdldCB0aGUgdW4taWdub3JlZCBzaWJsaW5nIGJhc2VkIG9uIHRoZSBzZWFy
Y2ggZGlyZWN0aW9uLCBhbmQgdXBkYXRlIHRoZSBzZWFyY2hQb3NpdGlvbi4KLSAgICAgICAgd2hp
bGUgKHN0YXJ0T2JqZWN0ICYmIHN0YXJ0T2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkp
Ci0gICAgICAgICAgICBzdGFydE9iamVjdCA9IGlzRm9yd2FyZCA/IHN0YXJ0T2JqZWN0LT5wcmV2
aW91c1NpYmxpbmcoKSA6IHN0YXJ0T2JqZWN0LT5uZXh0U2libGluZygpOworICAgICAgICB3aGls
ZSAobmV3U3RhcnRPYmplY3QgJiYgbmV3U3RhcnRPYmplY3QtPmFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSkKKyAgICAgICAgICAgIG5ld1N0YXJ0T2JqZWN0ID0gaXNGb3J3YXJkID8gbmV3U3RhcnRP
YmplY3QtPnByZXZpb3VzU2libGluZygpIDogbmV3U3RhcnRPYmplY3QtPm5leHRTaWJsaW5nKCk7
CisgICAgICAgIHN0YXJ0T2JqZWN0ID0gbmV3U3RhcnRPYmplY3Q7CiAgICAgfQogCiAgICAgc2l6
ZV90IHNlYXJjaFBvc2l0aW9uID0gc3RhcnRPYmplY3QgPyBzZWFyY2hDaGlsZHJlbi5maW5kKHN0
YXJ0T2JqZWN0KSA6IG5vdEZvdW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0YjI3MzEzNTYyNTk4NDA1MzA1YWM1NGU5
ODM0NzQzYjMyZTVmN2VlLi5iMjA4MmU0ZWI2NjljMDA4MDlkZTVlNDM3NTZjZjg5ZGE0ODk1Y2M3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtMzY2LDEyICszNjYsMTIgQEAgcHVibGljOgogCiAgICAgQVhDb3JlT2JqZWN0
KiBmb2N1c2VkVUlFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQot
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxhc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG51bGxwdHI7IH0KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogbmV4dFNpYmxpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbmV4dFNpYmxpbmdVbmlnbm9yZWQoaW50IGxpbWl0KSBj
b25zdCBvdmVycmlkZTsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdV
bmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxp
bmcoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG5leHRTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkg
Y29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmdV
bmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJl
bnRPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogZGlzcGxheUNvbnRlbnRzUGFyZW50KCkgY29uc3Q7CiAgICAgQVhDb3Jl
T2JqZWN0KiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
SW50ZXJmYWNlLmgKaW5kZXggMGQwZTYwNzMyZDdmYzU3ZDQzYWI4MGM1NWZmYTkzY2JjYzQzNjBi
OS4uN2E0MTE5MDMwMzU2MzFkOTk5NDc3ZGM2MzAwOWUwNjc0ZTdiYzg5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
SW50ZXJmYWNlLmgKQEAgLTExMTYsMTUgKzExMTYsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBBWENvcmVPYmplY3QqIGZvY3VzZWRVSUVsZW1lbnQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0
dWFsIEFYQ29yZU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFY
Q29yZU9iamVjdCogbGFzdENoaWxkKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQVhDb3JlT2Jq
ZWN0KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBBWENvcmVPYmpl
Y3QqIG5leHRTaWJsaW5nKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBu
ZXh0U2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEFY
Q29yZU9iamVjdCogcHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCBsaW1pdCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBBWENvcmVPYmplY3QqIHBhcmVudE9iamVjdFVuaWdub3JlZCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25z
dCA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmls
aXR5U2VhcmNoQ3JpdGVyaWEqLCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzRGVzY2VuZGFudE9mQmFycmVuUGFyZW50KCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBpc0Rlc2NlbmRhbnRPZlJvbGUoQWNjZXNzaWJpbGl0eVJvbGUpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggNzRiNWJkOTYxNzRkZWM1
NDczMjIwOTkxNGMwYTg0MTIyMmMwNjU2ZC4uN2ZlYjg0NDNhNzNkNWM4YWNkOTQ3NjI3ZDE1MGVh
MmQ0ZjdkNjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTcxLDYgKzcxLDgg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVP
YmplY3QmIGNvcmVPYmplY3QsIGJvb2wgaXMKIHsKICAgICBBU1NFUlQoaXM8QWNjZXNzaWJpbGl0
eU9iamVjdD4oY29yZU9iamVjdCkpOwogICAgIGF1dG8mIG9iamVjdCA9IGRvd25jYXN0PEFjY2Vz
c2liaWxpdHlPYmplY3Q+KGNvcmVPYmplY3QpOworICAgIC8vIFdlIHNob3VsZCBuZXZlciBjcmVh
dGUgYW4gaXNvbGF0ZWQgb2JqZWN0IGZyb20gYW4gaWdub3JlZCBvYmplY3QuCisgICAgQVNTRVJU
KCFvYmplY3QuYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKTsKIAogICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpBUklBTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5hcmlhTGFu
ZG1hcmtSb2xlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OkFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbiwgb2JqZWN0LmFjY2Vzc2li
aWxpdHlEZXNjcmlwdGlvbigpLmlzb2xhdGVkQ29weSgpKTsKQEAgLTgxLDcgKzgzLDYgQEAgdm9p
ZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3Qm
IGNvcmVPYmplY3QsIGJvb2wgaXMKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkFuY2VzdG9yRmxhZ3MsIG9iamVjdC5jb21wdXRlQW5jZXN0b3JGbGFnc1dpdGhUcmF2ZXJzYWwo
KSk7CiAKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQVJJQVZhbHVlTm93LCBv
YmplY3QuaGFzQVJJQVZhbHVlTm93KCkpOwotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLCBvYmplY3QuYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY3RpdmVEZXNjZW5kYW50T2ZG
b2N1c2VkQ29udGFpbmVyLCBvYmplY3QuaXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFp
bmVyKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc0F0dGFjaG1lbnQsIG9i
amVjdC5pc0F0dGFjaG1lbnQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Oklz
QnVzeSwgb2JqZWN0LmlzQnVzeSgpKTsKQEAgLTIyNyw4ICsyMjgsNiBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgY29yZU9iamVj
dCwgYm9vbCBpcwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIYXNQbGFpblRleHQs
IG9iamVjdC5oYXNQbGFpblRleHQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
Okhhc1VuZGVybGluZSwgb2JqZWN0Lmhhc1VuZGVybGluZSgpKTsKICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6SXNLZXlib2FyZEZvY3VzYWJsZSwgb2JqZWN0LmlzS2V5Ym9hcmRGb2N1
c2FibGUoKSk7Ci0gICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Ok5leHRTaWJs
aW5nLCBvYmplY3QubmV4dFNpYmxpbmcoKSk7Ci0gICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlByZXZpb3VzU2libGluZywgb2JqZWN0LnByZXZpb3VzU2libGluZygpKTsKICAg
ICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QnJhaWxsZVJvbGVEZXNjcmlwdGlvbiwgb2Jq
ZWN0LmJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OkJyYWlsbGVMYWJlbCwgb2JqZWN0LmJyYWlsbGVMYWJlbCgp
Lmlzb2xhdGVkQ29weSgpKTsKIApAQCAtMTk4MCwzMCArMTk3OSw2IEBAIEFYQ29yZU9iamVjdCog
QVhJc29sYXRlZE9iamVjdDo6ZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBv
aW50JikgY29uCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUFYQ29yZU9iamVjdCogQVhJc29s
YXRlZE9iamVjdDo6Zmlyc3RDaGlsZCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLUFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9i
amVjdDo6bGFzdENoaWxkKCkgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLQotQVhDb3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0Ojpu
ZXh0U2libGluZ1VuaWdub3JlZChpbnQpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLUFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9i
amVjdDo6cHJldmlvdXNTaWJsaW5nVW5pZ25vcmVkKGludCkgY29uc3QKLXsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogQVhDb3JlT2JqZWN0KiBB
WElzb2xhdGVkT2JqZWN0OjpwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0CiB7CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggZGViNmRjYWUx
Y2U3YmJiODE4NGRmYTE0NmM0MmFmMjI5NDkzZjYwMy4uZDk1NzJmNTM1ZWI4YTEzMTdmY2Y0ZTli
MzZmZTkxNjgzYjUwZTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMjEzLDcgKzIx
Myw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Q2Fu
U2V0U2VsZWN0ZWRBdHRyaWJ1dGUpOyB9CiAgICAgYm9vbCBjYW5TZXRTZWxlY3RlZENoaWxkcmVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlO
YW1lOjpDYW5TZXRTZWxlY3RlZENoaWxkcmVuKTsgfQogICAgIGJvb2wgY2FuU2V0RXhwYW5kZWRB
dHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OkNhblNldEV4cGFuZGVkQXR0cmlidXRlKTsgfQotICAgIGJvb2wgYWNjZXNz
aWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmlsaXR5SWdub3JlZCk7IH0KKyAgICAvLyBX
ZSBzaG91bGQgbmV2ZXIgY3JlYXRlIGFuIGlzb2xhdGVkIG9iamVjdCBmcm9tIGFuIGlnbm9yZWQg
bGl2ZSBvYmplY3QsIHNvIHdlIGNhbiBoYXJkY29kZSB0aGlzIHRvIGZhbHNlLgorICAgIGJvb2wg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBpc1Nob3dpbmdWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNTaG93aW5nVmFsaWRh
dGlvbk1lc3NhZ2UpOyB9CiAgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlZhbGlk
YXRpb25NZXNzYWdlKTsgfQogICAgIHVuc2lnbmVkIGJsb2NrcXVvdGVMZXZlbCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHVuc2lnbmVkQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkJs
b2NrcXVvdGVMZXZlbCk7IH0KQEAgLTU2MSwxMiArNTYyLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IGlzTW9kYWxEZXNjZW5kYW50KE5vZGUqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzTW9k
YWxOb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQVhDb3JlT2JqZWN0KiBlbGVtZW50QWNjZXNz
aWJpbGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBBWENv
cmVPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBBWENvcmVPYmplY3Qq
IGxhc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEFYQ29yZU9iamVjdCogcHJldmlvdXNT
aWJsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gb2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OlByZXZpb3VzU2libGluZyk7IH0KLSAgICBBWENvcmVPYmplY3QqIG5leHRT
aWJsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gb2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6Ok5leHRTaWJsaW5nKTsgfQotICAgIEFYQ29yZU9iamVjdCogbmV4dFNpYmxp
bmdVbmlnbm9yZWQoaW50IGxpbWl0KSBjb25zdCBvdmVycmlkZTsKLSAgICBBWENvcmVPYmplY3Qq
IHByZXZpb3VzU2libGluZ1VuaWdub3JlZChpbnQgbGltaXQpIGNvbnN0IG92ZXJyaWRlOwogICAg
IEFYQ29yZU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIGlzRGVzY2VuZGFudE9mQmFycmVuUGFyZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBpc0Rlc2NlbmRhbnRPZlJvbGUoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZjFmOGYwZWRmZDQ4NWEyYzIwOGY3ZThkNGFhZWEz
OWU5NzRhNzNlOC4uZjc1Mzc0Zjc0MGFkODgyNTc3MWFiNGYzZDU5NTQzMTlmNTFjMjc5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0xMzAsNyArMTMwLDYgQEAgZW51bSBjbGFzcyBBWFByb3Bl
cnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBJbmNyZW1lbnRCdXR0b24sCiAgICAgSW5uZXJIVE1M
LAogICAgIEludmFsaWRTdGF0dXMsCi0gICAgSXNBY2Nlc3NpYmlsaXR5SWdub3JlZCwKICAgICBJ
c0FjdGl2ZURlc2NlbmRhbnRPZkZvY3VzZWRDb250YWluZXIsCiAgICAgSXNBbm9ueW1vdXNNYXRo
T3BlcmF0b3IsCiAgICAgSXNHcmFiYmVkLApAQCAtMjUxLDEzICsyNTAsMTEgQEAgZW51bSBjbGFz
cyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBNYXhWYWx1ZUZvclJhbmdlLAogICAg
IE1pblZhbHVlRm9yUmFuZ2UsCiAgICAgTmFtZUF0dHJpYnV0ZSwKLSAgICBOZXh0U2libGluZywK
ICAgICBPcmllbnRhdGlvbiwKICAgICBPdXRlckhUTUwsCiAgICAgUGF0aCwKICAgICBQbGFjZWhv
bGRlclZhbHVlLAogICAgIFByZXNzZWRJc1ByZXNlbnQsCi0gICAgUHJldmlvdXNTaWJsaW5nLAog
ICAgIFBvcHVwVmFsdWUsCiAgICAgUG9zSW5TZXQsCiAgICAgUHJldmVudEtleWJvYXJkRE9NRXZl
bnREaXNwYXRjaCwK
</data>

          </attachment>
      

    </bug>

</bugzilla>