<?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>204754</bug_id>
          
          <creation_ts>2019-12-02 10:13:57 -0800</creation_ts>
          <short_desc>Add exclusion rule for text manipulation SPI to exclude based on element class</short_desc>
          <delta_ts>2019-12-04 10:36:23 -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>HTML Editing</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="Louie Livon-Bemel">llivonbemel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>llivonbemel</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594668</commentid>
    <comment_count>0</comment_count>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-02 10:13:57 -0800</bug_when>
    <thetext>Add the ability to make exclusion rules that exclude elements from being manipulated based on their class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594672</commentid>
    <comment_count>1</comment_count>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-02 10:15:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/57398802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594834</commentid>
    <comment_count>2</comment_count>
      <attachid>384666</attachid>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-02 15:57:36 -0800</bug_when>
    <thetext>Created attachment 384666
57398802.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595066</commentid>
    <comment_count>3</comment_count>
      <attachid>384723</attachid>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-03 10:47:35 -0800</bug_when>
    <thetext>Created attachment 384723
57398802-part-2.patch

Updated match() function to not mutate the element, and therefore left the argument as const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595343</commentid>
    <comment_count>4</comment_count>
      <attachid>384723</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-03 19:33:58 -0800</bug_when>
    <thetext>Comment on attachment 384723
57398802-part-2.patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Tests added as API tests.

This should instead be:
Tests: TextManipulation.StartTextManipulationApplyInclusionExclusionRulesForClass
       TextManipulation.StartTextManipulationApplyInclusionExclusionRulesForClassAndAttribute

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:248
&gt; +    RetainPtr&lt;_WKTextManipulationConfiguration&gt; configuration = adoptNS([[_WKTextManipulationConfiguration alloc] init]);

Why not auto?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:279
&gt; +    RetainPtr&lt;_WKTextManipulationConfiguration&gt; configuration = adoptNS([[_WKTextManipulationConfiguration alloc] init]);

Use auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595355</commentid>
    <comment_count>5</comment_count>
      <attachid>384723</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-03 20:27:55 -0800</bug_when>
    <thetext>Comment on attachment 384723
57398802-part-2.patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:283
&gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forAttribute:@&quot;data-exclude&quot; value:@&quot;yes&quot;] autorelease],
&gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)NO forAttribute:@&quot;data-exclude&quot; value:@&quot;no&quot;] autorelease],
&gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forClass:@&quot;exclude&quot;] autorelease],

Nit - I don’t think you need the (BOOL) casts here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595494</commentid>
    <comment_count>6</comment_count>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-04 09:12:23 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #4)
&gt; Comment on attachment 384723 [details]
&gt; 57398802-part-2.patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384723&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Tests added as API tests.
&gt; 
&gt; This should instead be:
&gt; Tests:
&gt; TextManipulation.StartTextManipulationApplyInclusionExclusionRulesForClass
&gt;       
&gt; TextManipulation.
&gt; StartTextManipulationApplyInclusionExclusionRulesForClassAndAttribute

Fixed.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:248
&gt; &gt; +    RetainPtr&lt;_WKTextManipulationConfiguration&gt; configuration = adoptNS([[_WKTextManipulationConfiguration alloc] init]);
&gt; 
&gt; Why not auto?

No specific reason, I&apos;m just in the habit of declaring types since I&apos;m used to Objective-C. I&apos;ll make these `auto`.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:279
&gt; &gt; +    RetainPtr&lt;_WKTextManipulationConfiguration&gt; configuration = adoptNS([[_WKTextManipulationConfiguration alloc] init]);
&gt; 
&gt; Use auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595496</commentid>
    <comment_count>7</comment_count>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-04 09:13:20 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #5)
&gt; Comment on attachment 384723 [details]
&gt; 57398802-part-2.patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384723&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:283
&gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forAttribute:@&quot;data-exclude&quot; value:@&quot;yes&quot;] autorelease],
&gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)NO forAttribute:@&quot;data-exclude&quot; value:@&quot;no&quot;] autorelease],
&gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forClass:@&quot;exclude&quot;] autorelease],
&gt; 
&gt; Nit - I don’t think you need the (BOOL) casts here.

At one point I had a build issue where it didn&apos;t understand these values, and a typecast fixed it. I&apos;ll see if these are still required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595500</commentid>
    <comment_count>8</comment_count>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-04 09:38:50 -0800</bug_when>
    <thetext>(In reply to Louie Livon-Bemel from comment #7)
&gt; (In reply to Wenson Hsieh from comment #5)
&gt; &gt; Comment on attachment 384723 [details]
&gt; &gt; 57398802-part-2.patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384723&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:283
&gt; &gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forAttribute:@&quot;data-exclude&quot; value:@&quot;yes&quot;] autorelease],
&gt; &gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)NO forAttribute:@&quot;data-exclude&quot; value:@&quot;no&quot;] autorelease],
&gt; &gt; &gt; +        [[[_WKTextManipulationExclusionRule alloc] initExclusion:(BOOL)YES forClass:@&quot;exclude&quot;] autorelease],
&gt; &gt; 
&gt; &gt; Nit - I don’t think you need the (BOOL) casts here.
&gt; 
&gt; At one point I had a build issue where it didn&apos;t understand these values,
&gt; and a typecast fixed it. I&apos;ll see if these are still required.

Testing this now, I see no issues when removing the typecast. It looks like the tests Ryosuke originally added include the typecast so that&apos;s probably why I did too. I&apos;ll remove them from my tests though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595501</commentid>
    <comment_count>9</comment_count>
      <attachid>384820</attachid>
    <who name="Louie Livon-Bemel">llivonbemel</who>
    <bug_when>2019-12-04 09:45:02 -0800</bug_when>
    <thetext>Created attachment 384820
57398802-part-3.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595523</commentid>
    <comment_count>10</comment_count>
      <attachid>384820</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 10:36:21 -0800</bug_when>
    <thetext>Comment on attachment 384820
57398802-part-3.patch

Clearing flags on attachment: 384820

Committed r253112: &lt;https://trac.webkit.org/changeset/253112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595524</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 10:36:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384666</attachid>
            <date>2019-12-02 15:57:36 -0800</date>
            <delta_ts>2019-12-03 10:47:35 -0800</delta_ts>
            <desc>57398802.patch</desc>
            <filename>file_204754.txt</filename>
            <type>text/plain</type>
            <size>13577</size>
            <attacher name="Louie Livon-Bemel">llivonbemel</attacher>
            
              <data encoding="base64">Y29tbWl0IDIwMTc4YmNhMGQxN2UxY2Q2YTZhNDY5MjhlMWYwMzJiMTYwMzNiNjgNCkF1dGhvcjog
TG91aWUgTGl2b24tQmVtZWwgPGxsaXZvbmJlbWVsQGFwcGxlLmNvbT4NCkRhdGU6ICAgTW9uIERl
YyAyIDEzOjM4OjUxIDIwMTkgLTA4MDANCg0KICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4
dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcw0KICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3NTQNCiAgICA8cmRh
cjovL3Byb2JsZW0vNTczOTg4MDI+DQoNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDRiYWJiMDY3MDMzLi42YTg3
YmM5OGQ1YSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDI0IEBADQorMjAxOS0xMi0wMiAgTG91
aWUgTGl2b24tQmVtZWwgIDxsbGl2b25iZW1lbEBhcHBsZS5jb20+DQorDQorICAgICAgICBBZGQg
ZXhjbHVzaW9uIHJ1bGUgZm9yIHRleHQgbWFuaXB1bGF0aW9uIFNQSSB0byBleGNsdWRlIGJhc2Vk
IG9uIGVsZW1lbnQgY2xhc3MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ3NTQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM5ODgwMj4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgVGVzdHMg
YWRkZWQgYXMgQVBJIHRlc3RzLg0KKw0KKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6RXhjbHVzaW9uUnVsZTo6bWF0Y2ggY29uc3QpOg0KKyAgICAgICAgICAgIC0gQ2hh
bmdlIHRoZSBwYXJhbWV0ZXIgdG8gbm90IGJlIGEgY29uc3Q7IGNoZWNraW5nIHRoZSBjbGFzc0xp
c3QgaXNuJ3QgY29tcGF0aWJsZSB3aXRoIGEgY29uc3QsIGFuZCB0aGUNCisgICAgICAgICAgICAg
IG9ubHkgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gaGFzIG5vbi1jb25zdCBhcmd1bWVudHMgYWxy
ZWFkeS4NCisgICAgICAgICAgICAtIFdoZW4gbWF0Y2hpbmcgYSBDbGFzc1J1bGUsIGNoZWNrIHRo
YXQgYW4gZWxlbWVudCdzIGNsYXNzTGlzdCBjb250YWlucyB0aGlzIGNsYXNzIG5hbWUuDQorICAg
ICAgICAqIGVkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaDoNCisgICAgICAgICAg
ICAtIEFkZCBhIG5ldyBydWxlIHR5cGUgZm9yIGEgQ2xhc3NSdWxlLg0KKyAgICAgICAgICAgIC0g
RGVjbGFyZSBtYXRjaCgpIHdpdGhvdXQgYSBjb25zdCBhcmd1bWVudCAoYXMgbWVudGlvbmVkIGFi
b3ZlKS4NCisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6RXhj
bHVzaW9uUnVsZTo6Q2xhc3NSdWxlOjplbmNvZGUgY29uc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6
OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGU6OmRl
Y29kZSk6DQorDQogMjAxOS0xMi0wMiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
DQogDQogICAgICAgICBTaW1wbGlmeSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UgYW5kIFJl
YWx0aW1lT3V0Z29pbmdWaWRlb29Tb3VyY2Ugb2JzZXJ2ZVNvdXJjZS91bm9ic2VydmVTb3VyY2Ug
cGF0dGVybg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0
aW9uQ29udHJvbGxlci5jcHANCmluZGV4IDU3NDFlZGQ3YTFiLi4xMjVlNmE5NDljNyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
Y3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyLmNwcA0KQEAgLTI3LDYgKzI3LDcgQEANCiAjaW5jbHVkZSAiVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuaCINCiANCiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5oIg0KKyNpbmNsdWRlICJE
b21Ub2tlbkxpc3QuaCINCiAjaW5jbHVkZSAiRWRpdGluZy5oIg0KICNpbmNsdWRlICJFbGVtZW50
QW5jZXN0b3JJdGVyYXRvci5oIg0KICNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIN
CkBAIC0zNSwxMiArMzYsMTQgQEANCiANCiBuYW1lc3BhY2UgV2ViQ29yZSB7DQogDQotaW5saW5l
IGJvb2wgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU6Om1hdGNoKGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0DQoraW5saW5lIGJvb2wgVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU6Om1hdGNoKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0
DQogew0KICAgICByZXR1cm4gc3dpdGNoT24ocnVsZSwgWyZlbGVtZW50XSAoRWxlbWVudFJ1bGUg
cnVsZSkgew0KICAgICAgICAgcmV0dXJuIHJ1bGUubG9jYWxOYW1lID09IGVsZW1lbnQubG9jYWxO
YW1lKCk7DQogICAgIH0sIFsmZWxlbWVudF0gKEF0dHJpYnV0ZVJ1bGUgcnVsZSkgew0KICAgICAg
ICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZWxlbWVudC5nZXRBdHRyaWJ1dGUocnVs
ZS5uYW1lKSwgcnVsZS52YWx1ZSk7DQorICAgIH0sIFsmZWxlbWVudF0gKENsYXNzUnVsZSBydWxl
KSB7DQorICAgICAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QoKS5jb250YWlucyhydWxlLmNs
YXNzTmFtZSk7DQogICAgIH0pOw0KIH0NCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgNCmluZGV4IDQzZmE0MGVkNjU2Li5mYzVi
MjRiYmMxYSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5oDQpAQCAtNzQsMTAgKzc0LDE3IEBAIHB1YmxpYzoNCiAgICAgICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXR0cmlidXRlUnVs
ZT4gZGVjb2RlKERlY29kZXImKTsNCiAgICAgICAgIH07DQogDQorICAgICAgICBzdHJ1Y3QgQ2xh
c3NSdWxlIHsNCisgICAgICAgICAgICBBdG9tU3RyaW5nIGNsYXNzTmFtZTsNCisNCisgICAgICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
DQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENs
YXNzUnVsZT4gZGVjb2RlKERlY29kZXImKTsNCisgICAgICAgIH07DQorDQogICAgICAgICBUeXBl
IHR5cGU7DQotICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1bGUsIEF0dHJpYnV0ZVJ1bGU+
IHJ1bGU7DQorICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1bGUsIEF0dHJpYnV0ZVJ1bGUs
IENsYXNzUnVsZT4gcnVsZTsNCiANCi0gICAgICAgIGJvb2wgbWF0Y2goY29uc3QgRWxlbWVudCYp
IGNvbnN0Ow0KKyAgICAgICAgYm9vbCBtYXRjaChFbGVtZW50JikgY29uc3Q7DQogDQogICAgICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7DQog
ICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8RXhjbHVzaW9u
UnVsZT4gZGVjb2RlKERlY29kZXImKTsNCkBAIC0xODEsNiArMTg4LDIxIEBAIE9wdGlvbmFsPFRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpBdHRyaWJ1dGVSdWxlPiBU
ZXh0TWFuaXB1bGF0DQogICAgIHJldHVybiByZXN1bHQ7DQogfQ0KIA0KK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+DQordm9pZCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6RXhjbHVzaW9uUnVs
ZTo6Q2xhc3NSdWxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QNCit7DQorICAgIGVu
Y29kZXIgPDwgY2xhc3NOYW1lOw0KK30NCisNCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPg0KK09w
dGlvbmFsPFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1
bGU+IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQ0KK3sNCisgICAgQ2xhc3NSdWxlIHJlc3VsdDsNCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY2xhc3NOYW1lKSkNCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7DQorICAgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUNCiANCiBuYW1lc3BhY2UgV1RGIHsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQppbmRleCBkNDU0NGRjNzY2
OS4uOTUzNmUxYmFkYTAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0KKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMjMgQEANCisyMDE5LTEyLTAy
ICBMb3VpZSBMaXZvbi1CZW1lbCAgPGxsaXZvbmJlbWVsQGFwcGxlLmNvbT4NCisNCisgICAgICAg
IEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUg
YmFzZWQgb24gZWxlbWVudCBjbGFzcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDc1NA0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3Mzk4ODAy
Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICBH
aXZlIGNsaWVudHMgYW5vdGhlciBvcHRpb24gZm9yIGFkZGluZyBhbiBleGNsdXNpb24gZm9yIHRl
eHQgbWFuaXB1bGF0aW9uOyBhbGxvdyB0aGVtIHRvIGV4Y2x1ZGUgYmFzZWQgb24gYW4NCisgICAg
ICAgIGVsZW1lbnQgaGF2aW5nIGEgY2VydGFpbiBjbGFzcy4NCisNCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06DQorICAgICAgICAoLVtXS1dlYlZpZXcgX3N0YXJ0
VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpjb21wbGV0aW9uOl0pOg0KKyAgICAg
ICAgICAgIElmIHRoZSBydWxlIGRvZXNuJ3QgaGF2ZSBhbiBhdHRyaWJ1dGUgYnV0IGRvZXMgaGF2
ZSBhIGNsYXNzIG5hbWUsIHRyZWF0IGl0IGFzIGEgQ2xhc3NSdWxlIGV4Y2x1c2lvbi4NCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVs
ZS5oOg0KKyAgICAgICAgICAgIEFkZCBhbiBpbml0aWFsaXplciBmb3IgZXhjbHVkaW5nIGJhc2Vk
IG9uIGEgY2xhc3MgbmFtZS4gQWxzbyBhZGQgYSBnZXR0ZXIgZm9yIHRoZSBjbGFzc05hbWUuDQor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lv
blJ1bGUubW06DQorICAgICAgICAoLVtfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBp
bml0RXhjbHVzaW9uOmZvckNsYXNzOl0pOg0KKyAgICAgICAgKC1bX1dLVGV4dE1hbmlwdWxhdGlv
bkV4Y2x1c2lvblJ1bGUgY2xhc3NOYW1lXSk6DQorDQogMjAxOS0xMi0wMiAgWW9zaGlha2kgSml0
c3VrYXdhICA8eW9zaGlha2kuaml0c3VrYXdhQHNvbnkuY29tPg0KIA0KICAgICAgICAgUmVzcG9u
c2l2ZW5lc3NUaW1lciBtaXN0YWtlbmx5IHJlc3RhcnRzIGltbWVkaWF0ZWx5DQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0NCmluZGV4IDM5NTFkOGQ0
ZDgwLi5mNmY4ZmE4MzhjOSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0NCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0NCkBAIC03NTgwLDYgKzc1ODAsOCBAQCBzdGF0aWMgV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24oVUlTZQ0KICAgICAgICAgICAgIGF1dG8gdHlwZSA9IHdrUnVsZS5pc0V4Y2x1c2lvbiA/IEV4
Y2x1c2lvblJ1bGU6OlR5cGU6OkV4Y2x1ZGUgOiBFeGNsdXNpb25SdWxlOjpUeXBlOjpJbmNsdWRl
Ow0KICAgICAgICAgICAgIGlmICh3a1J1bGUuYXR0cmlidXRlTmFtZSkNCiAgICAgICAgICAgICAg
ICAgZXhjbHVzaW9uUnVsZXMuYXBwZW5kKHt0eXBlLCBFeGNsdXNpb25SdWxlOjpBdHRyaWJ1dGVS
dWxlIHsgd2tSdWxlLmF0dHJpYnV0ZU5hbWUsIHdrUnVsZS5hdHRyaWJ1dGVWYWx1ZSB9IH0pOw0K
KyAgICAgICAgICAgIGVsc2UgaWYgKHdrUnVsZS5jbGFzc05hbWUpDQorICAgICAgICAgICAgICAg
IGV4Y2x1c2lvblJ1bGVzLmFwcGVuZCh7dHlwZSwgRXhjbHVzaW9uUnVsZTo6Q2xhc3NSdWxlIHsg
d2tSdWxlLmNsYXNzTmFtZSB9IH0pOw0KICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAg
ICAgZXhjbHVzaW9uUnVsZXMuYXBwZW5kKHt0eXBlLCBFeGNsdXNpb25SdWxlOjpFbGVtZW50UnVs
ZSB7IHdrUnVsZS5lbGVtZW50TmFtZSB9IH0pOw0KICAgICAgICAgfQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVz
aW9uUnVsZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5p
cHVsYXRpb25FeGNsdXNpb25SdWxlLmgNCmluZGV4IGYwOGQzZTQ0YWVhLi45MjdmZWY3MWY1MSAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFu
aXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaA0KQEAgLTMzLDEwICsz
MywxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSkNCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsNCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdEV4Y2x1c2lvbjooQk9PTClleGNsdXNpb24gZm9yRWxlbWVudDooTlNTdHJpbmcg
Kilsb2NhbE5hbWU7DQogLSAoaW5zdGFuY2V0eXBlKWluaXRFeGNsdXNpb246KEJPT0wpZXhjbHVz
aW9uIGZvckF0dHJpYnV0ZTooTlNTdHJpbmcgKiluYW1lIHZhbHVlOihOU1N0cmluZyAqKXZhbHVl
Ow0KKy0gKGluc3RhbmNldHlwZSlpbml0RXhjbHVzaW9uOihCT09MKWV4Y2x1c2lvbiBmb3JDbGFz
czooTlNTdHJpbmcgKiljbGFzc05hbWU7DQogDQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIGlzRXhjbHVzaW9uOw0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcgKmVsZW1lbnROYW1lOw0KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcgKmF0dHJpYnV0ZU5hbWU7DQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU1N0cmluZyAqYXR0cmlidXRlVmFsdWU7DQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1N0cmluZyAqY2xhc3NOYW1lOw0KIA0KIEBlbmQNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1
bGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxh
dGlvbkV4Y2x1c2lvblJ1bGUubW0NCmluZGV4IDc5NWU3MjcwYjQzLi43OTk3YWQ0OGI3YiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZS5tbQ0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1tDQpAQCAtMzMsNiArMzMs
NyBAQA0KICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9lbGVtZW50TmFtZTsNCiAgICAgUmV0YWlu
UHRyPE5TU3RyaW5nPiBfYXR0cmlidXRlTmFtZTsNCiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBf
YXR0cmlidXRlVmFsdWU7DQorICAgIFJldGFpblB0cjxOU1N0cmluZz4gX2NsYXNzTmFtZTsNCiB9
DQogDQogLSAoaW5zdGFuY2V0eXBlKWluaXRFeGNsdXNpb246KEJPT0wpZXhjbHVzaW9uIGZvckVs
ZW1lbnQ6KE5TU3RyaW5nICopbG9jYWxOYW1lDQpAQCAtNTgsNiArNTksMTcgQEANCiAgICAgcmV0
dXJuIHNlbGY7DQogfQ0KIA0KKy0gKGluc3RhbmNldHlwZSlpbml0RXhjbHVzaW9uOihCT09MKWV4
Y2x1c2lvbiBmb3JDbGFzczooTlNTdHJpbmcgKiljbGFzc05hbWUNCit7DQorICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQ0KKyAgICAgICAgcmV0dXJuIG5pbDsNCisNCisgICAgX2lzRXhj
bHVzaW9uID0gZXhjbHVzaW9uOw0KKyAgICBfY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KKw0KKyAg
ICByZXR1cm4gc2VsZjsNCit9DQorDQogLSAoTlNTdHJpbmcgKillbGVtZW50TmFtZQ0KIHsNCiAg
ICAgcmV0dXJuIF9lbGVtZW50TmFtZS5nZXQoKTsNCkBAIC03Myw1ICs4NSwxMCBAQA0KICAgICBy
ZXR1cm4gX2F0dHJpYnV0ZVZhbHVlLmdldCgpOw0KIH0NCiANCistIChOU1N0cmluZyAqKWNsYXNz
TmFtZQ0KK3sNCisgICAgcmV0dXJuIF9jbGFzc05hbWUuZ2V0KCk7DQorfQ0KKw0KIEBlbmQNCiAN
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cNCmluZGV4IDI0
OGY0OGZiNDI5Li45MDVhYjBlM2YxOSAxMDA2NDQNCi0tLSBhL1Rvb2xzL0NoYW5nZUxvZw0KKysr
IGIvVG9vbHMvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDE2IEBADQorMjAxOS0xMi0wMiAgTG91aWUg
TGl2b24tQmVtZWwgIDxsbGl2b25iZW1lbEBhcHBsZS5jb20+DQorDQorICAgICAgICBBZGQgZXhj
bHVzaW9uIHJ1bGUgZm9yIHRleHQgbWFuaXB1bGF0aW9uIFNQSSB0byBleGNsdWRlIGJhc2VkIG9u
IGVsZW1lbnQgY2xhc3MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQ3NTQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM5ODgwMj4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW06DQorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6DQorICAgICAgICAgICAgLSBXaGVuIG1hdGNoaW5nIGEgY2xh
c3MsIGl0IHNob3VsZCB3b3JrIGV2ZW4gd2l0aCBvdGhlciBjbGFzcyBuYW1lcyBvbiB0aGUgZWxl
bWVudC4NCisgICAgICAgICAgICAtIEFsbCBjaGlsZHJlbiBlbGVtZW50cyBzaG91bGQgZ2V0IHRo
ZSBzYW1lIGV4Y2x1c2lvbiBydWxlLCB1bmxlc3Mgb3ZlcnJpZGRlbiBieSBhbm90aGVyIHJ1bGUu
DQorDQogMjAxOS0xMS0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+
DQogDQogICAgICAgICB0ZXN0MjYyLXJ1bm5lciBzaG91bGQgZHVtcCBZQU1MIHdpdGggY29ycmVj
dCBlbmNvZGluZw0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQ0KaW5kZXggYzYyY2UwNjY1ZjYuLjA0OTcwNzJh
ODYxIDEwMDY0NA0KLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9U
ZXh0TWFuaXB1bGF0aW9uLm1tDQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0NCkBAIC0yMzYsNiArMjM2LDcwIEBAIFRFU1QoVGV4
dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uQXBwbHlJbmNsdXNpb25FeGNsdXNp
b25SdWxlc0ZvckF0dHJpDQogICAgIEVYUEVDVF9GQUxTRShpdGVtc1swXS50b2tlbnNbMV0uaXNF
eGNsdWRlZCk7DQogfQ0KIA0KK1RFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1
bGF0aW9uQXBwbHlJbmNsdXNpb25FeGNsdXNpb25SdWxlc0ZvckNsYXNzKQ0KK3sNCisgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsNCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsNCisgICAgW3dlYlZp
ZXcgX3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07DQorDQorICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPiIN
CisgICAgICAgICI8aHRtbD48Ym9keT48c3BhbiBjbGFzcz0nc29tZUNsYXNzIGV4Y2x1ZGUnPk1l
c3NhZ2U6IDxiPmhlbGxvLCA8L2I+PHNwYW4+d29ybGQ8L3NwYW4+PC9zcGFuPjwvYm9keT48L2h0
bWw+Il07DQorDQorICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
bj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOw0KKyAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxl
czpAWw0KKyAgICAgICAgW1tbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2Nd
IGluaXRFeGNsdXNpb246KEJPT0wpWUVTIGZvckNsYXNzOkAiZXhjbHVkZSJdIGF1dG9yZWxlYXNl
XSwNCisgICAgXV07DQorDQorICAgIGRvbmUgPSBmYWxzZTsNCisgICAgW3dlYlZpZXcgX3N0YXJ0
VGV4dE1hbmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGNv
bXBsZXRpb246XnsNCisgICAgICAgIGRvbmUgPSB0cnVlOw0KKyAgICB9XTsNCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsNCisNCisgICAgYXV0byAqaXRlbXMgPSBbZGVsZWdh
dGUgaXRlbXNdOw0KKyAgICBFWFBFQ1RfRVEoaXRlbXMuY291bnQsIDFVTCk7DQorICAgIEVYUEVD
VF9FUShpdGVtc1swXS50b2tlbnMuY291bnQsIDNVTCk7DQorICAgIEVYUEVDVF9TVFJFUSgiTWVz
c2FnZTogIiwgaXRlbXNbMF0udG9rZW5zWzBdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQorICAgIEVY
UEVDVF9UUlVFKGl0ZW1zWzBdLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsNCisgICAgRVhQRUNUX1NU
UkVRKCJoZWxsbywgIiwgaXRlbXNbMF0udG9rZW5zWzFdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQor
ICAgIEVYUEVDVF9UUlVFKGl0ZW1zWzBdLnRva2Vuc1sxXS5pc0V4Y2x1ZGVkKTsNCisgICAgRVhQ
RUNUX1NUUkVRKCJ3b3JsZCIsIGl0ZW1zWzBdLnRva2Vuc1syXS5jb250ZW50LlVURjhTdHJpbmcp
Ow0KKyAgICBFWFBFQ1RfVFJVRShpdGVtc1swXS50b2tlbnNbMl0uaXNFeGNsdWRlZCk7DQorfQ0K
Kw0KK1RFU1QoVGV4dE1hbmlwdWxhdGlvbiwgU3RhcnRUZXh0TWFuaXB1bGF0aW9uQXBwbHlJbmNs
dXNpb25FeGNsdXNpb25SdWxlc0ZvckNsYXNzQW5kQXR0cmlidXRlKQ0KK3sNCisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsNCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsNCisgICAgW3dlYlZpZXcg
X3NldFRleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07DQorDQorICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQRSBodG1sPiINCisg
ICAgICAgICI8aHRtbD48Ym9keT48c3BhbiBjbGFzcz0nc29tZUNsYXNzIGV4Y2x1ZGUnPk1lc3Nh
Z2U6IDxiIGRhdGEtZXhjbHVkZT1ubz5oZWxsbywgPC9iPjxzcGFuPndvcmxkPC9zcGFuPjwvc3Bh
bj48L2JvZHk+PC9odG1sPiJdOw0KKw0KKyAgICBSZXRhaW5QdHI8X1dLVGV4dE1hbmlwdWxhdGlv
bkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLVGV4dE1hbmlwdWxh
dGlvbkNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsNCisgICAgW2NvbmZpZ3VyYXRpb24gc2V0
RXhjbHVzaW9uUnVsZXM6QFsNCisgICAgICAgIFtbW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNp
b25SdWxlIGFsbG9jXSBpbml0RXhjbHVzaW9uOihCT09MKVlFUyBmb3JBdHRyaWJ1dGU6QCJkYXRh
LWV4Y2x1ZGUiIHZhbHVlOkAieWVzIl0gYXV0b3JlbGVhc2VdLA0KKyAgICAgICAgW1tbX1dLVGV4
dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNsdXNpb246KEJPT0wpTk8g
Zm9yQXR0cmlidXRlOkAiZGF0YS1leGNsdWRlIiB2YWx1ZTpAIm5vIl0gYXV0b3JlbGVhc2VdLA0K
KyAgICAgICAgW1tbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRF
eGNsdXNpb246KEJPT0wpWUVTIGZvckNsYXNzOkAiZXhjbHVkZSJdIGF1dG9yZWxlYXNlXSwNCisg
ICAgXV07DQorDQorICAgIGRvbmUgPSBmYWxzZTsNCisgICAgW3dlYlZpZXcgX3N0YXJ0VGV4dE1h
bmlwdWxhdGlvbnNXaXRoQ29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGNvbXBsZXRp
b246XnsNCisgICAgICAgIGRvbmUgPSB0cnVlOw0KKyAgICB9XTsNCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsNCisNCisgICAgYXV0byAqaXRlbXMgPSBbZGVsZWdhdGUgaXRl
bXNdOw0KKyAgICBFWFBFQ1RfRVEoaXRlbXMuY291bnQsIDFVTCk7DQorICAgIEVYUEVDVF9FUShp
dGVtc1swXS50b2tlbnMuY291bnQsIDNVTCk7DQorICAgIEVYUEVDVF9TVFJFUSgiTWVzc2FnZTog
IiwgaXRlbXNbMF0udG9rZW5zWzBdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQorICAgIEVYUEVDVF9U
UlVFKGl0ZW1zWzBdLnRva2Vuc1swXS5pc0V4Y2x1ZGVkKTsNCisgICAgRVhQRUNUX1NUUkVRKCJo
ZWxsbywgIiwgaXRlbXNbMF0udG9rZW5zWzFdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQorICAgIEVY
UEVDVF9GQUxTRShpdGVtc1swXS50b2tlbnNbMV0uaXNFeGNsdWRlZCk7DQorICAgIEVYUEVDVF9T
VFJFUSgid29ybGQiLCBpdGVtc1swXS50b2tlbnNbMl0uY29udGVudC5VVEY4U3RyaW5nKTsNCisg
ICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0udG9rZW5zWzJdLmlzRXhjbHVkZWQpOw0KK30NCisNCiBz
dHJ1Y3QgVG9rZW4gew0KICAgICBOU1N0cmluZyAqaWRlbnRpZmllcjsNCiAgICAgTlNTdHJpbmcg
KmNvbnRlbnQ7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384723</attachid>
            <date>2019-12-03 10:47:35 -0800</date>
            <delta_ts>2019-12-04 09:45:02 -0800</delta_ts>
            <desc>57398802-part-2.patch</desc>
            <filename>file_204754.txt</filename>
            <type>text/plain</type>
            <size>12928</size>
            <attacher name="Louie Livon-Bemel">llivonbemel</attacher>
            
              <data encoding="base64">Y29tbWl0IGM1ZjYyY2FjMWI2YjI5N2VkNDM0ZmFiMzczMWU3OWVmMGU1OWRhMzANCkF1dGhvcjog
TG91aWUgTGl2b24tQmVtZWwgPGxsaXZvbmJlbWVsQGFwcGxlLmNvbT4NCkRhdGU6ICAgTW9uIERl
YyAyIDEzOjM4OjUxIDIwMTkgLTA4MDANCg0KICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4
dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcw0KICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3NTQNCiAgICA8cmRh
cjovL3Byb2JsZW0vNTczOTg4MDI+DQoNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDRiYWJiMDY3MDMzLi41YzM4
YzllN2FiYyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDIzIEBADQorMjAxOS0xMi0wMiAgTG91
aWUgTGl2b24tQmVtZWwgIDxsbGl2b25iZW1lbEBhcHBsZS5jb20+DQorDQorICAgICAgICBBZGQg
ZXhjbHVzaW9uIHJ1bGUgZm9yIHRleHQgbWFuaXB1bGF0aW9uIFNQSSB0byBleGNsdWRlIGJhc2Vk
IG9uIGVsZW1lbnQgY2xhc3MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ3NTQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM5ODgwMj4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgVGVzdHMg
YWRkZWQgYXMgQVBJIHRlc3RzLg0KKw0KKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6RXhjbHVzaW9uUnVsZTo6bWF0Y2ggY29uc3QpOg0KKyAgICAgICAgICAgIFdoZW4g
bWF0Y2hpbmcgYSBDbGFzc1J1bGUsIGNoZWNrIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGF0IGxlYXN0
IG9uZSBjbGFzcywgYW5kIHRoYXQgdGhlIGNsYXNzTGlzdCBjb250YWlucw0KKyAgICAgICAgICAg
IHRoZSBydWxlJ3MgY2xhc3MgbmFtZS4gQ2hlY2tpbmcgaXQgdGhpcyB3YXkgcmF0aGVyIHRoYW4g
Y2hlY2tpbmcgaWYgdGhlIENsYXNzTGlzdCBjb250YWlucyB0aGUgcnVsZSBhbGxvd3MNCisgICAg
ICAgICAgICB1cyB0byBhdm9pZCBtdXRhdGluZyB0aGUgZWxlbWVudCBpbiB0aGlzIGZ1bmN0aW9u
Lg0KKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg6DQorICAg
ICAgICAgICAgQWRkIGEgbmV3IHJ1bGUgdHlwZSBmb3IgYSBDbGFzc1J1bGUuDQorICAgICAgICAo
V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU6OkNsYXNz
UnVsZTo6ZW5jb2RlIGNvbnN0KToNCisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjo6RXhjbHVzaW9uUnVsZTo6Q2xhc3NSdWxlOjpkZWNvZGUpOg0KKw0KIDIwMTkt
MTItMDIgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPg0KIA0KICAgICAgICAgU2lt
cGxpZnkgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIGFuZCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9vU291cmNlIG9ic2VydmVTb3VyY2UvdW5vYnNlcnZlU291cmNlIHBhdHRlcm4NCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3Bw
DQppbmRleCA1NzQxZWRkN2ExYi4uZDJlMzlmN2JkZjMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcA0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHANCkBAIC00MSw2
ICs0MSw4IEBAIGlubGluZSBib29sIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNp
b25SdWxlOjptYXRjaChjb25zdCBFbGVtZW50JiBlbGVtDQogICAgICAgICByZXR1cm4gcnVsZS5s
b2NhbE5hbWUgPT0gZWxlbWVudC5sb2NhbE5hbWUoKTsNCiAgICAgfSwgWyZlbGVtZW50XSAoQXR0
cmlidXRlUnVsZSBydWxlKSB7DQogICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShlbGVtZW50LmdldEF0dHJpYnV0ZShydWxlLm5hbWUpLCBydWxlLnZhbHVlKTsNCisgICAgfSwg
WyZlbGVtZW50XSAoQ2xhc3NSdWxlIHJ1bGUpIHsNCisgICAgICAgIHJldHVybiBlbGVtZW50Lmhh
c0NsYXNzKCkgJiYgZWxlbWVudC5jbGFzc05hbWVzKCkuY29udGFpbnMocnVsZS5jbGFzc05hbWUp
Ow0KICAgICB9KTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oDQppbmRleCA0M2ZhNDBlZDY1Ni4uMzcyY2Q2NGVhNGYg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuaA0KQEAgLTc0LDggKzc0LDE1IEBAIHB1YmxpYzoNCiAgICAgICAgICAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXR0cmlidXRlUnVsZT4gZGVjb2Rl
KERlY29kZXImKTsNCiAgICAgICAgIH07DQogDQorICAgICAgICBzdHJ1Y3QgQ2xhc3NSdWxlIHsN
CisgICAgICAgICAgICBBdG9tU3RyaW5nIGNsYXNzTmFtZTsNCisNCisgICAgICAgICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7DQorICAgICAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENsYXNzUnVsZT4g
ZGVjb2RlKERlY29kZXImKTsNCisgICAgICAgIH07DQorDQogICAgICAgICBUeXBlIHR5cGU7DQot
ICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1bGUsIEF0dHJpYnV0ZVJ1bGU+IHJ1bGU7DQor
ICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1bGUsIEF0dHJpYnV0ZVJ1bGUsIENsYXNzUnVs
ZT4gcnVsZTsNCiANCiAgICAgICAgIGJvb2wgbWF0Y2goY29uc3QgRWxlbWVudCYpIGNvbnN0Ow0K
IA0KQEAgLTE4MSw2ICsxODgsMjEgQEAgT3B0aW9uYWw8VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6OkV4Y2x1c2lvblJ1bGU6OkF0dHJpYnV0ZVJ1bGU+IFRleHRNYW5pcHVsYXQNCiAgICAgcmV0
dXJuIHJlc3VsdDsNCiB9DQogDQordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4NCit2b2lkIFRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdA0KK3sNCisgICAgZW5jb2RlciA8PCBjbGFzc05hbWU7DQor
fQ0KKw0KK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+DQorT3B0aW9uYWw8VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU6OkNsYXNzUnVsZT4gVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU6OkNsYXNzUnVsZTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpDQorew0KKyAgICBDbGFzc1J1bGUgcmVzdWx0Ow0KKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5jbGFzc05hbWUpKQ0KKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsNCisgICAg
cmV0dXJuIHJlc3VsdDsNCit9DQorDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KIA0KIG5hbWVz
cGFjZSBXVEYgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cNCmluZGV4IGQ0NTQ0ZGM3NjY5Li45NTM2ZTFiYWRhMCAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSwyMyBAQA0KKzIwMTktMTItMDIgIExvdWllIExpdm9uLUJlbWVsICA8
bGxpdm9uYmVtZWxAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQWRkIGV4Y2x1c2lvbiBydWxlIGZv
ciB0ZXh0IG1hbmlwdWxhdGlvbiBTUEkgdG8gZXhjbHVkZSBiYXNlZCBvbiBlbGVtZW50IGNsYXNz
DQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzU0
DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTczOTg4MDI+DQorDQorICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEdpdmUgY2xpZW50cyBhbm90aGVyIG9w
dGlvbiBmb3IgYWRkaW5nIGFuIGV4Y2x1c2lvbiBmb3IgdGV4dCBtYW5pcHVsYXRpb247IGFsbG93
IHRoZW0gdG8gZXhjbHVkZSBiYXNlZCBvbiBhbg0KKyAgICAgICAgZWxlbWVudCBoYXZpbmcgYSBj
ZXJ0YWluIGNsYXNzLg0KKw0KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToNCisgICAgICAgICgtW1dLV2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhD
b25maWd1cmF0aW9uOmNvbXBsZXRpb246XSk6DQorICAgICAgICAgICAgSWYgdGhlIHJ1bGUgZG9l
c24ndCBoYXZlIGFuIGF0dHJpYnV0ZSBidXQgZG9lcyBoYXZlIGEgY2xhc3MgbmFtZSwgdHJlYXQg
aXQgYXMgYSBDbGFzc1J1bGUgZXhjbHVzaW9uLg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg6DQorICAgICAgICAgICAgQWRk
IGFuIGluaXRpYWxpemVyIGZvciBleGNsdWRpbmcgYmFzZWQgb24gYSBjbGFzcyBuYW1lLiBBbHNv
IGFkZCBhIGdldHRlciBmb3IgdGhlIGNsYXNzTmFtZS4NCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbToNCisgICAgICAgICgt
W19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGluaXRFeGNsdXNpb246Zm9yQ2xhc3M6
XSk6DQorICAgICAgICAoLVtfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBjbGFzc05h
bWVdKToNCisNCiAyMDE5LTEyLTAyICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRz
dWthd2FAc29ueS5jb20+DQogDQogICAgICAgICBSZXNwb25zaXZlbmVzc1RpbWVyIG1pc3Rha2Vu
bHkgcmVzdGFydHMgaW1tZWRpYXRlbHkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQ0KaW5kZXggMzk1MWQ4ZDRkODAuLmY2ZjhmYTgzOGM5IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQ0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQ0KQEAg
LTc1ODAsNiArNzU4MCw4IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNlDQogICAgICAgICAgICAg
YXV0byB0eXBlID0gd2tSdWxlLmlzRXhjbHVzaW9uID8gRXhjbHVzaW9uUnVsZTo6VHlwZTo6RXhj
bHVkZSA6IEV4Y2x1c2lvblJ1bGU6OlR5cGU6OkluY2x1ZGU7DQogICAgICAgICAgICAgaWYgKHdr
UnVsZS5hdHRyaWJ1dGVOYW1lKQ0KICAgICAgICAgICAgICAgICBleGNsdXNpb25SdWxlcy5hcHBl
bmQoe3R5cGUsIEV4Y2x1c2lvblJ1bGU6OkF0dHJpYnV0ZVJ1bGUgeyB3a1J1bGUuYXR0cmlidXRl
TmFtZSwgd2tSdWxlLmF0dHJpYnV0ZVZhbHVlIH0gfSk7DQorICAgICAgICAgICAgZWxzZSBpZiAo
d2tSdWxlLmNsYXNzTmFtZSkNCisgICAgICAgICAgICAgICAgZXhjbHVzaW9uUnVsZXMuYXBwZW5k
KHt0eXBlLCBFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGUgeyB3a1J1bGUuY2xhc3NOYW1lIH0gfSk7
DQogICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICBleGNsdXNpb25SdWxlcy5hcHBl
bmQoe3R5cGUsIEV4Y2x1c2lvblJ1bGU6OkVsZW1lbnRSdWxlIHsgd2tSdWxlLmVsZW1lbnROYW1l
IH0gfSk7DQogICAgICAgICB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUu
aA0KaW5kZXggZjA4ZDNlNDRhZWEuLjkyN2ZlZjcxZjUxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxl
LmgNCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1
bGF0aW9uRXhjbHVzaW9uUnVsZS5oDQpAQCAtMzMsMTAgKzMzLDEyIEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQ0KIC0gKGluc3RhbmNldHlw
ZSlpbml0IE5TX1VOQVZBSUxBQkxFOw0KIC0gKGluc3RhbmNldHlwZSlpbml0RXhjbHVzaW9uOihC
T09MKWV4Y2x1c2lvbiBmb3JFbGVtZW50OihOU1N0cmluZyAqKWxvY2FsTmFtZTsNCiAtIChpbnN0
YW5jZXR5cGUpaW5pdEV4Y2x1c2lvbjooQk9PTClleGNsdXNpb24gZm9yQXR0cmlidXRlOihOU1N0
cmluZyAqKW5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWU7DQorLSAoaW5zdGFuY2V0eXBlKWlu
aXRFeGNsdXNpb246KEJPT0wpZXhjbHVzaW9uIGZvckNsYXNzOihOU1N0cmluZyAqKWNsYXNzTmFt
ZTsNCiANCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNFeGNsdXNpb247
DQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqZWxlbWVudE5hbWU7
DQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqYXR0cmlidXRlTmFt
ZTsNCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICphdHRyaWJ1dGVW
YWx1ZTsNCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpjbGFzc05h
bWU7DQogDQogQGVuZA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5tbQ0K
aW5kZXggNzk1ZTcyNzBiNDMuLjc5OTdhZDQ4YjdiIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1t
DQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxh
dGlvbkV4Y2x1c2lvblJ1bGUubW0NCkBAIC0zMyw2ICszMyw3IEBADQogICAgIFJldGFpblB0cjxO
U1N0cmluZz4gX2VsZW1lbnROYW1lOw0KICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9hdHRyaWJ1
dGVOYW1lOw0KICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9hdHRyaWJ1dGVWYWx1ZTsNCisgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfY2xhc3NOYW1lOw0KIH0NCiANCiAtIChpbnN0YW5jZXR5cGUp
aW5pdEV4Y2x1c2lvbjooQk9PTClleGNsdXNpb24gZm9yRWxlbWVudDooTlNTdHJpbmcgKilsb2Nh
bE5hbWUNCkBAIC01OCw2ICs1OSwxNyBAQA0KICAgICByZXR1cm4gc2VsZjsNCiB9DQogDQorLSAo
aW5zdGFuY2V0eXBlKWluaXRFeGNsdXNpb246KEJPT0wpZXhjbHVzaW9uIGZvckNsYXNzOihOU1N0
cmluZyAqKWNsYXNzTmFtZQ0KK3sNCisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpDQor
ICAgICAgICByZXR1cm4gbmlsOw0KKw0KKyAgICBfaXNFeGNsdXNpb24gPSBleGNsdXNpb247DQor
ICAgIF9jbGFzc05hbWUgPSBjbGFzc05hbWU7DQorDQorICAgIHJldHVybiBzZWxmOw0KK30NCisN
CiAtIChOU1N0cmluZyAqKWVsZW1lbnROYW1lDQogew0KICAgICByZXR1cm4gX2VsZW1lbnROYW1l
LmdldCgpOw0KQEAgLTczLDUgKzg1LDEwIEBADQogICAgIHJldHVybiBfYXR0cmlidXRlVmFsdWUu
Z2V0KCk7DQogfQ0KIA0KKy0gKE5TU3RyaW5nICopY2xhc3NOYW1lDQorew0KKyAgICByZXR1cm4g
X2NsYXNzTmFtZS5nZXQoKTsNCit9DQorDQogQGVuZA0KIA0KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZw0KaW5kZXggMjQ4ZjQ4ZmI0MjkuLjkwNWFiMGUzZjE5
IDEwMDY0NA0KLS0tIGEvVG9vbHMvQ2hhbmdlTG9nDQorKysgYi9Ub29scy9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsMTYgQEANCisyMDE5LTEyLTAyICBMb3VpZSBMaXZvbi1CZW1lbCAgPGxsaXZvbmJl
bWVsQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4dCBt
YW5pcHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcw0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc1NA0KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU3Mzk4ODAyPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVGV4dE1hbmlwdWxhdGlvbi5tbToNCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToN
CisgICAgICAgICAgICAtIFdoZW4gbWF0Y2hpbmcgYSBjbGFzcywgaXQgc2hvdWxkIHdvcmsgZXZl
biB3aXRoIG90aGVyIGNsYXNzIG5hbWVzIG9uIHRoZSBlbGVtZW50Lg0KKyAgICAgICAgICAgIC0g
QWxsIGNoaWxkcmVuIGVsZW1lbnRzIHNob3VsZCBnZXQgdGhlIHNhbWUgZXhjbHVzaW9uIHJ1bGUs
IHVubGVzcyBvdmVycmlkZGVuIGJ5IGFub3RoZXIgcnVsZS4NCisNCiAyMDE5LTExLTMwICBSb3Nz
IEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4NCiANCiAgICAgICAgIHRlc3QyNjIt
cnVubmVyIHNob3VsZCBkdW1wIFlBTUwgd2l0aCBjb3JyZWN0IGVuY29kaW5nDQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9u
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0
aW9uLm1tDQppbmRleCBjNjJjZTA2NjVmNi4uMDQ5NzA3MmE4NjEgMTAwNjQ0DQotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0NCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlv
bi5tbQ0KQEAgLTIzNiw2ICsyMzYsNzAgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRl
eHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQXR0cmkNCiAgICAg
RVhQRUNUX0ZBTFNFKGl0ZW1zWzBdLnRva2Vuc1sxXS5pc0V4Y2x1ZGVkKTsNCiB9DQogDQorVEVT
VChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4
Y2x1c2lvblJ1bGVzRm9yQ2xhc3MpDQorew0KKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDQwMCwgNDAwKV0pOw0KKyAgICBbd2ViVmlldyBfc2V0VGV4dE1hbmlwdWxhdGlv
bkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsNCisNCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+Ig0KKyAgICAgICAgIjxodG1sPjxib2R5
PjxzcGFuIGNsYXNzPSdzb21lQ2xhc3MgZXhjbHVkZSc+TWVzc2FnZTogPGI+aGVsbG8sIDwvYj48
c3Bhbj53b3JsZDwvc3Bhbj48L3NwYW4+PC9ib2R5PjwvaHRtbD4iXTsNCisNCisgICAgUmV0YWlu
UHRyPF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7DQor
ICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbDQorICAgICAgICBbW1tfV0tU
ZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZ
RVMgZm9yQ2xhc3M6QCJleGNsdWRlIl0gYXV0b3JlbGVhc2VdLA0KKyAgICBdXTsNCisNCisgICAg
ZG9uZSA9IGZhbHNlOw0KKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhD
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbjpeew0KKyAgICAgICAg
ZG9uZSA9IHRydWU7DQorICAgIH1dOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOw0KKw0KKyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107DQorICAgIEVYUEVD
VF9FUShpdGVtcy5jb3VudCwgMVVMKTsNCisgICAgRVhQRUNUX0VRKGl0ZW1zWzBdLnRva2Vucy5j
b3VudCwgM1VMKTsNCisgICAgRVhQRUNUX1NUUkVRKCJNZXNzYWdlOiAiLCBpdGVtc1swXS50b2tl
bnNbMF0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0udG9r
ZW5zWzBdLmlzRXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvLCAiLCBpdGVtc1sw
XS50b2tlbnNbMV0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNb
MF0udG9rZW5zWzFdLmlzRXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoIndvcmxkIiwgaXRl
bXNbMF0udG9rZW5zWzJdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQorICAgIEVYUEVDVF9UUlVFKGl0
ZW1zWzBdLnRva2Vuc1syXS5pc0V4Y2x1ZGVkKTsNCit9DQorDQorVEVTVChUZXh0TWFuaXB1bGF0
aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9y
Q2xhc3NBbmRBdHRyaWJ1dGUpDQorew0KKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
eHRNYW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDQwMCwgNDAwKV0pOw0KKyAgICBbd2ViVmlldyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsNCisNCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+Ig0KKyAgICAgICAgIjxodG1sPjxib2R5Pjxz
cGFuIGNsYXNzPSdzb21lQ2xhc3MgZXhjbHVkZSc+TWVzc2FnZTogPGIgZGF0YS1leGNsdWRlPW5v
PmhlbGxvLCA8L2I+PHNwYW4+d29ybGQ8L3NwYW4+PC9zcGFuPjwvYm9keT48L2h0bWw+Il07DQor
DQorICAgIFJldGFpblB0cjxfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbj4gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOw0KKyAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNpb25SdWxlczpAWw0KKyAg
ICAgICAgW1tbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUgYWxsb2NdIGluaXRFeGNs
dXNpb246KEJPT0wpWUVTIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFsdWU6QCJ5ZXMi
XSBhdXRvcmVsZWFzZV0sDQorICAgICAgICBbW1tfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9u
UnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClOTyBmb3JBdHRyaWJ1dGU6QCJkYXRhLWV4
Y2x1ZGUiIHZhbHVlOkAibm8iXSBhdXRvcmVsZWFzZV0sDQorICAgICAgICBbW1tfV0tUZXh0TWFu
aXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjooQk9PTClZRVMgZm9y
Q2xhc3M6QCJleGNsdWRlIl0gYXV0b3JlbGVhc2VdLA0KKyAgICBdXTsNCisNCisgICAgZG9uZSA9
IGZhbHNlOw0KKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbjpeew0KKyAgICAgICAgZG9uZSA9
IHRydWU7DQorICAgIH1dOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOw0K
Kw0KKyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107DQorICAgIEVYUEVDVF9FUShp
dGVtcy5jb3VudCwgMVVMKTsNCisgICAgRVhQRUNUX0VRKGl0ZW1zWzBdLnRva2Vucy5jb3VudCwg
M1VMKTsNCisgICAgRVhQRUNUX1NUUkVRKCJNZXNzYWdlOiAiLCBpdGVtc1swXS50b2tlbnNbMF0u
Y29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0udG9rZW5zWzBd
LmlzRXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvLCAiLCBpdGVtc1swXS50b2tl
bnNbMV0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX0ZBTFNFKGl0ZW1zWzBdLnRv
a2Vuc1sxXS5pc0V4Y2x1ZGVkKTsNCisgICAgRVhQRUNUX1NUUkVRKCJ3b3JsZCIsIGl0ZW1zWzBd
LnRva2Vuc1syXS5jb250ZW50LlVURjhTdHJpbmcpOw0KKyAgICBFWFBFQ1RfVFJVRShpdGVtc1sw
XS50b2tlbnNbMl0uaXNFeGNsdWRlZCk7DQorfQ0KKw0KIHN0cnVjdCBUb2tlbiB7DQogICAgIE5T
U3RyaW5nICppZGVudGlmaWVyOw0KICAgICBOU1N0cmluZyAqY29udGVudDsNCg==
</data>
<flag name="review"
          id="400528"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384820</attachid>
            <date>2019-12-04 09:45:02 -0800</date>
            <delta_ts>2019-12-04 10:36:21 -0800</delta_ts>
            <desc>57398802-part-3.patch</desc>
            <filename>file_204754.txt</filename>
            <type>text/plain</type>
            <size>12982</size>
            <attacher name="Louie Livon-Bemel">llivonbemel</attacher>
            
              <data encoding="base64">Y29tbWl0IDZlOGE3YWQ2OTI0M2FlNWQxZjA3MGNlYTIwMTdhMjJjMTJjY2RiODgNCkF1dGhvcjog
TG91aWUgTGl2b24tQmVtZWwgPGxsaXZvbmJlbWVsQGFwcGxlLmNvbT4NCkRhdGU6ICAgTW9uIERl
YyAyIDEzOjM4OjUxIDIwMTkgLTA4MDANCg0KICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4
dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcw0KICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3NTQNCiAgICA8cmRh
cjovL3Byb2JsZW0vNTczOTg4MDI+DQoNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDRiYWJiMDY3MDMzLi5iOGVk
YzlmMWI5NiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDI0IEBADQorMjAxOS0xMi0wMiAgTG91
aWUgTGl2b24tQmVtZWwgIDxsbGl2b25iZW1lbEBhcHBsZS5jb20+DQorDQorICAgICAgICBBZGQg
ZXhjbHVzaW9uIHJ1bGUgZm9yIHRleHQgbWFuaXB1bGF0aW9uIFNQSSB0byBleGNsdWRlIGJhc2Vk
IG9uIGVsZW1lbnQgY2xhc3MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ3NTQNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM5ODgwMj4NCisN
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4NCisNCisgICAgICAgIFRlc3RzOiAg
VGV4dE1hbmlwdWxhdGlvbi5TdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1
c2lvblJ1bGVzRm9yQ2xhc3MNCisgICAgICAgICAgICAgICAgVGV4dE1hbmlwdWxhdGlvbi5TdGFy
dFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQ2xhc3NBbmRB
dHRyaWJ1dGUNCisNCisgICAgICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
ci5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OkV4
Y2x1c2lvblJ1bGU6Om1hdGNoIGNvbnN0KToNCisgICAgICAgICAgICBXaGVuIG1hdGNoaW5nIGEg
Q2xhc3NSdWxlLCBjaGVjayB0aGF0IHRoZSBlbGVtZW50IGhhcyBhdCBsZWFzdCBvbmUgY2xhc3Ms
IGFuZCB0aGF0IHRoZSBjbGFzc0xpc3QgY29udGFpbnMNCisgICAgICAgICAgICB0aGUgcnVsZSdz
IGNsYXNzIG5hbWUuIENoZWNraW5nIGl0IHRoaXMgd2F5IHJhdGhlciB0aGFuIGNoZWNraW5nIGlm
IHRoZSBDbGFzc0xpc3QgY29udGFpbnMgdGhlIHJ1bGUgYWxsb3dzDQorICAgICAgICAgICAgdXMg
dG8gYXZvaWQgbXV0YXRpbmcgdGhlIGVsZW1lbnQgaW4gdGhpcyBmdW5jdGlvbi4NCisgICAgICAg
ICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oOg0KKyAgICAgICAgICAgIEFk
ZCBhIG5ldyBydWxlIHR5cGUgZm9yIGEgQ2xhc3NSdWxlLg0KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGU6OmVuY29k
ZSBjb25zdCk6DQorICAgICAgICAoV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6
OkV4Y2x1c2lvblJ1bGU6OkNsYXNzUnVsZTo6ZGVjb2RlKToNCisNCiAyMDE5LTEyLTAyICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFNpbXBsaWZ5IFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSBhbmQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvb1NvdXJjZSBv
YnNlcnZlU291cmNlL3Vub2JzZXJ2ZVNvdXJjZSBwYXR0ZXJuDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcA0KaW5kZXggNTc0
MWVkZDdhMWIuLmQyZTM5ZjdiZGYzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwDQpAQCAtNDEsNiArNDEsOCBAQCBp
bmxpbmUgYm9vbCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6RXhjbHVzaW9uUnVsZTo6bWF0
Y2goY29uc3QgRWxlbWVudCYgZWxlbQ0KICAgICAgICAgcmV0dXJuIHJ1bGUubG9jYWxOYW1lID09
IGVsZW1lbnQubG9jYWxOYW1lKCk7DQogICAgIH0sIFsmZWxlbWVudF0gKEF0dHJpYnV0ZVJ1bGUg
cnVsZSkgew0KICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZWxlbWVudC5n
ZXRBdHRyaWJ1dGUocnVsZS5uYW1lKSwgcnVsZS52YWx1ZSk7DQorICAgIH0sIFsmZWxlbWVudF0g
KENsYXNzUnVsZSBydWxlKSB7DQorICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNDbGFzcygpICYm
IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKHJ1bGUuY2xhc3NOYW1lKTsNCiAgICAgfSk7
DQogfQ0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIuaA0KaW5kZXggNDNmYTQwZWQ2NTYuLjM3MmNkNjRlYTRmIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgN
CkBAIC03NCw4ICs3NCwxNSBAQCBwdWJsaWM6DQogICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEF0dHJpYnV0ZVJ1bGU+IGRlY29kZShEZWNvZGVyJik7
DQogICAgICAgICB9Ow0KIA0KKyAgICAgICAgc3RydWN0IENsYXNzUnVsZSB7DQorICAgICAgICAg
ICAgQXRvbVN0cmluZyBjbGFzc05hbWU7DQorDQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Ow0KKyAgICAgICAgICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDbGFzc1J1bGU+IGRlY29kZShEZWNv
ZGVyJik7DQorICAgICAgICB9Ow0KKw0KICAgICAgICAgVHlwZSB0eXBlOw0KLSAgICAgICAgV1RG
OjpWYXJpYW50PEVsZW1lbnRSdWxlLCBBdHRyaWJ1dGVSdWxlPiBydWxlOw0KKyAgICAgICAgV1RG
OjpWYXJpYW50PEVsZW1lbnRSdWxlLCBBdHRyaWJ1dGVSdWxlLCBDbGFzc1J1bGU+IHJ1bGU7DQog
DQogICAgICAgICBib29sIG1hdGNoKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsNCiANCkBAIC0xODEs
NiArMTg4LDIxIEBAIE9wdGlvbmFsPFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNp
b25SdWxlOjpBdHRyaWJ1dGVSdWxlPiBUZXh0TWFuaXB1bGF0DQogICAgIHJldHVybiByZXN1bHQ7
DQogfQ0KIA0KK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+DQordm9pZCBUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjo6RXhjbHVzaW9uUnVsZTo6Q2xhc3NSdWxlOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QNCit7DQorICAgIGVuY29kZXIgPDwgY2xhc3NOYW1lOw0KK30NCisNCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPg0KK09wdGlvbmFsPFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpFeGNsdXNpb25SdWxlOjpDbGFzc1J1bGU+IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpF
eGNsdXNpb25SdWxlOjpDbGFzc1J1bGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQ0KK3sNCisg
ICAgQ2xhc3NSdWxlIHJlc3VsdDsNCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY2xh
c3NOYW1lKSkNCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7DQorICAgIHJldHVybiByZXN1
bHQ7DQorfQ0KKw0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCiBuYW1lc3BhY2UgV1RGIHsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nDQppbmRleCBkNDU0NGRjNzY2OS4uN2JjZDRjYzQ1NjQgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0x
LDMgKzEsMjMgQEANCisyMDE5LTEyLTAyICBMb3VpZSBMaXZvbi1CZW1lbCAgPGxsaXZvbmJlbWVs
QGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4dCBtYW5p
cHVsYXRpb24gU1BJIHRvIGV4Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcw0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc1NA0KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU3Mzk4ODAyPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLg0KKw0KKyAgICAgICAgR2l2ZSBjbGllbnRzIGFub3RoZXIgb3B0aW9uIGZvciBhZGRp
bmcgYW4gZXhjbHVzaW9uIGZvciB0ZXh0IG1hbmlwdWxhdGlvbjsgYWxsb3cgdGhlbSB0byBleGNs
dWRlIGJhc2VkIG9uIGFuDQorICAgICAgICBlbGVtZW50IGhhdmluZyBhIGNlcnRhaW4gY2xhc3Mu
DQorDQorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOg0KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zdGFydFRleHRNYW5pcHVsYXRpb25zV2l0aENvbmZpZ3VyYXRpb246
Y29tcGxldGlvbjpdKToNCisgICAgICAgICAgICBJZiB0aGUgcnVsZSBkb2Vzbid0IGhhdmUgYW4g
YXR0cmlidXRlIGJ1dCBkb2VzIGhhdmUgYSBjbGFzcyBuYW1lLCB0cmVhdCBpdCBhcyBhIENsYXNz
UnVsZSBleGNsdXNpb24uDQorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1h
bmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDoNCisgICAgICAgICAgICBBZGQgYW4gaW5pdGlhbGl6
ZXIgZm9yIGV4Y2x1ZGluZyBiYXNlZCBvbiBhIGNsYXNzIG5hbWUuIEFsc28gYWRkIGEgZ2V0dGVy
IGZvciB0aGUgY2xhc3NOYW1lLg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1tOg0KKyAgICAgICAgKC1bX1dLVGV4dE1hbmlw
dWxhdGlvbkV4Y2x1c2lvblJ1bGUgaW5pdEV4Y2x1c2lvbjpmb3JDbGFzczpdKToNCisgICAgICAg
ICgtW19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlIGNsYXNzTmFtZV0pOg0KKw0KIDIw
MTktMTItMDIgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNv
bT4NCiANCiAgICAgICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbWlzdGFrZW5seSByZXN0YXJ0cyBp
bW1lZGlhdGVseQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tDQppbmRleCAzOTUxZDhkNGQ4MC4uZjZmOGZhODM4YzkgMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tDQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tDQpAQCAtNzU4MCw2ICs3NTgw
LDggQEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFVJU2UNCiAgICAgICAgICAgICBhdXRvIHR5cGUgPSB3
a1J1bGUuaXNFeGNsdXNpb24gPyBFeGNsdXNpb25SdWxlOjpUeXBlOjpFeGNsdWRlIDogRXhjbHVz
aW9uUnVsZTo6VHlwZTo6SW5jbHVkZTsNCiAgICAgICAgICAgICBpZiAod2tSdWxlLmF0dHJpYnV0
ZU5hbWUpDQogICAgICAgICAgICAgICAgIGV4Y2x1c2lvblJ1bGVzLmFwcGVuZCh7dHlwZSwgRXhj
bHVzaW9uUnVsZTo6QXR0cmlidXRlUnVsZSB7IHdrUnVsZS5hdHRyaWJ1dGVOYW1lLCB3a1J1bGUu
YXR0cmlidXRlVmFsdWUgfSB9KTsNCisgICAgICAgICAgICBlbHNlIGlmICh3a1J1bGUuY2xhc3NO
YW1lKQ0KKyAgICAgICAgICAgICAgICBleGNsdXNpb25SdWxlcy5hcHBlbmQoe3R5cGUsIEV4Y2x1
c2lvblJ1bGU6OkNsYXNzUnVsZSB7IHdrUnVsZS5jbGFzc05hbWUgfSB9KTsNCiAgICAgICAgICAg
ICBlbHNlDQogICAgICAgICAgICAgICAgIGV4Y2x1c2lvblJ1bGVzLmFwcGVuZCh7dHlwZSwgRXhj
bHVzaW9uUnVsZTo6RWxlbWVudFJ1bGUgeyB3a1J1bGUuZWxlbWVudE5hbWUgfSB9KTsNCiAgICAg
ICAgIH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
VGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oDQppbmRleCBmMDhk
M2U0NGFlYS4uOTI3ZmVmNzFmNTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaA0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNp
b25SdWxlLmgNCkBAIC0zMywxMCArMzMsMTIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpDQogLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5B
VkFJTEFCTEU7DQogLSAoaW5zdGFuY2V0eXBlKWluaXRFeGNsdXNpb246KEJPT0wpZXhjbHVzaW9u
IGZvckVsZW1lbnQ6KE5TU3RyaW5nICopbG9jYWxOYW1lOw0KIC0gKGluc3RhbmNldHlwZSlpbml0
RXhjbHVzaW9uOihCT09MKWV4Y2x1c2lvbiBmb3JBdHRyaWJ1dGU6KE5TU3RyaW5nICopbmFtZSB2
YWx1ZTooTlNTdHJpbmcgKil2YWx1ZTsNCistIChpbnN0YW5jZXR5cGUpaW5pdEV4Y2x1c2lvbjoo
Qk9PTClleGNsdXNpb24gZm9yQ2xhc3M6KE5TU3RyaW5nICopY2xhc3NOYW1lOw0KIA0KIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc0V4Y2x1c2lvbjsNCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICplbGVtZW50TmFtZTsNCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICphdHRyaWJ1dGVOYW1lOw0KIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmF0dHJpYnV0ZVZhbHVlOw0KK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmNsYXNzTmFtZTsNCiANCiBAZW5k
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRN
YW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLm1tDQppbmRleCA3OTVlNzI3
MGI0My4uNzk5N2FkNDhiN2IgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUubW0NCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9u
UnVsZS5tbQ0KQEAgLTMzLDYgKzMzLDcgQEANCiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfZWxl
bWVudE5hbWU7DQogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX2F0dHJpYnV0ZU5hbWU7DQogICAg
IFJldGFpblB0cjxOU1N0cmluZz4gX2F0dHJpYnV0ZVZhbHVlOw0KKyAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IF9jbGFzc05hbWU7DQogfQ0KIA0KIC0gKGluc3RhbmNldHlwZSlpbml0RXhjbHVzaW9u
OihCT09MKWV4Y2x1c2lvbiBmb3JFbGVtZW50OihOU1N0cmluZyAqKWxvY2FsTmFtZQ0KQEAgLTU4
LDYgKzU5LDE3IEBADQogICAgIHJldHVybiBzZWxmOw0KIH0NCiANCistIChpbnN0YW5jZXR5cGUp
aW5pdEV4Y2x1c2lvbjooQk9PTClleGNsdXNpb24gZm9yQ2xhc3M6KE5TU3RyaW5nICopY2xhc3NO
YW1lDQorew0KKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkNCisgICAgICAgIHJldHVy
biBuaWw7DQorDQorICAgIF9pc0V4Y2x1c2lvbiA9IGV4Y2x1c2lvbjsNCisgICAgX2NsYXNzTmFt
ZSA9IGNsYXNzTmFtZTsNCisNCisgICAgcmV0dXJuIHNlbGY7DQorfQ0KKw0KIC0gKE5TU3RyaW5n
ICopZWxlbWVudE5hbWUNCiB7DQogICAgIHJldHVybiBfZWxlbWVudE5hbWUuZ2V0KCk7DQpAQCAt
NzMsNSArODUsMTAgQEANCiAgICAgcmV0dXJuIF9hdHRyaWJ1dGVWYWx1ZS5nZXQoKTsNCiB9DQog
DQorLSAoTlNTdHJpbmcgKiljbGFzc05hbWUNCit7DQorICAgIHJldHVybiBfY2xhc3NOYW1lLmdl
dCgpOw0KK30NCisNCiBAZW5kDQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nDQppbmRleCAyNDhmNDhmYjQyOS4uYTI0ZDc4OGJmZDEgMTAwNjQ0DQotLS0g
YS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxNiBA
QA0KKzIwMTktMTItMDIgIExvdWllIExpdm9uLUJlbWVsICA8bGxpdm9uYmVtZWxAYXBwbGUuY29t
Pg0KKw0KKyAgICAgICAgQWRkIGV4Y2x1c2lvbiBydWxlIGZvciB0ZXh0IG1hbmlwdWxhdGlvbiBT
UEkgdG8gZXhjbHVkZSBiYXNlZCBvbiBlbGVtZW50IGNsYXNzDQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzU0DQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTczOTg4MDI+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuDQor
DQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxh
dGlvbi5tbToNCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToNCisgICAgICAgICAgICAt
IFdoZW4gbWF0Y2hpbmcgYSBjbGFzcywgaXQgc2hvdWxkIHdvcmsgZXZlbiB3aXRoIG90aGVyIGNs
YXNzIG5hbWVzIG9uIHRoZSBlbGVtZW50Lg0KKyAgICAgICAgICAgIC0gQWxsIGNoaWxkcmVuIGVs
ZW1lbnRzIHNob3VsZCBnZXQgdGhlIHNhbWUgZXhjbHVzaW9uIHJ1bGUsIHVubGVzcyBvdmVycmlk
ZGVuIGJ5IGFub3RoZXIgcnVsZS4NCisNCiAyMDE5LTExLTMwICBSb3NzIEtpcnNsaW5nICA8cm9z
cy5raXJzbGluZ0Bzb255LmNvbT4NCiANCiAgICAgICAgIHRlc3QyNjItcnVubmVyIHNob3VsZCBk
dW1wIFlBTUwgd2l0aCBjb3JyZWN0IGVuY29kaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXh0TWFuaXB1bGF0aW9uLm1tDQppbmRleCBj
NjJjZTA2NjVmNi4uYWY2MGYxNzc4MGYgMTAwNjQ0DQotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1RleHRNYW5pcHVsYXRpb24ubW0NCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGV4dE1hbmlwdWxhdGlvbi5tbQ0KQEAgLTIzNiw2
ICsyMzYsNzAgQEAgVEVTVChUZXh0TWFuaXB1bGF0aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25B
cHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQXR0cmkNCiAgICAgRVhQRUNUX0ZBTFNFKGl0
ZW1zWzBdLnRva2Vuc1sxXS5pc0V4Y2x1ZGVkKTsNCiB9DQogDQorVEVTVChUZXh0TWFuaXB1bGF0
aW9uLCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9y
Q2xhc3MpDQorew0KKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRNYW5pcHVsYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDQwMCwg
NDAwKV0pOw0KKyAgICBbd2ViVmlldyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsNCisNCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OkAiPCFET0NUWVBFIGh0bWw+Ig0KKyAgICAgICAgIjxodG1sPjxib2R5PjxzcGFuIGNsYXNzPSdz
b21lQ2xhc3MgZXhjbHVkZSc+TWVzc2FnZTogPGI+aGVsbG8sIDwvYj48c3Bhbj53b3JsZDwvc3Bh
bj48L3NwYW4+PC9ib2R5PjwvaHRtbD4iXTsNCisNCisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW19XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
DQorICAgIFtjb25maWd1cmF0aW9uIHNldEV4Y2x1c2lvblJ1bGVzOkBbDQorICAgICAgICBbW1tf
V0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMg
Zm9yQ2xhc3M6QCJleGNsdWRlIl0gYXV0b3JlbGVhc2VdLA0KKyAgICBdXTsNCisNCisgICAgZG9u
ZSA9IGZhbHNlOw0KKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbjpeew0KKyAgICAgICAgZG9u
ZSA9IHRydWU7DQorICAgIH1dOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
Ow0KKw0KKyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107DQorICAgIEVYUEVDVF9F
UShpdGVtcy5jb3VudCwgMVVMKTsNCisgICAgRVhQRUNUX0VRKGl0ZW1zWzBdLnRva2Vucy5jb3Vu
dCwgM1VMKTsNCisgICAgRVhQRUNUX1NUUkVRKCJNZXNzYWdlOiAiLCBpdGVtc1swXS50b2tlbnNb
MF0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0udG9rZW5z
WzBdLmlzRXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvLCAiLCBpdGVtc1swXS50
b2tlbnNbMV0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0u
dG9rZW5zWzFdLmlzRXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoIndvcmxkIiwgaXRlbXNb
MF0udG9rZW5zWzJdLmNvbnRlbnQuVVRGOFN0cmluZyk7DQorICAgIEVYUEVDVF9UUlVFKGl0ZW1z
WzBdLnRva2Vuc1syXS5pc0V4Y2x1ZGVkKTsNCit9DQorDQorVEVTVChUZXh0TWFuaXB1bGF0aW9u
LCBTdGFydFRleHRNYW5pcHVsYXRpb25BcHBseUluY2x1c2lvbkV4Y2x1c2lvblJ1bGVzRm9yQ2xh
c3NBbmRBdHRyaWJ1dGUpDQorew0KKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1RleHRN
YW5pcHVsYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDQwMCwgNDAwKV0pOw0KKyAgICBbd2ViVmlldyBfc2V0VGV4dE1hbmlwdWxhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsNCisNCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+Ig0KKyAgICAgICAgIjxodG1sPjxib2R5PjxzcGFu
IGNsYXNzPSdzb21lQ2xhc3MgZXhjbHVkZSc+TWVzc2FnZTogPGIgZGF0YS1leGNsdWRlPW5vPmhl
bGxvLCA8L2I+PHNwYW4+d29ybGQ8L3NwYW4+PC9zcGFuPjwvYm9keT48L2h0bWw+Il07DQorDQor
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tUZXh0TWFuaXB1bGF0aW9uQ29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOw0KKyAgICBbY29uZmlndXJhdGlvbiBzZXRFeGNsdXNp
b25SdWxlczpAWw0KKyAgICAgICAgW1tbX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUg
YWxsb2NdIGluaXRFeGNsdXNpb246WUVTIGZvckF0dHJpYnV0ZTpAImRhdGEtZXhjbHVkZSIgdmFs
dWU6QCJ5ZXMiXSBhdXRvcmVsZWFzZV0sDQorICAgICAgICBbW1tfV0tUZXh0TWFuaXB1bGF0aW9u
RXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpOTyBmb3JBdHRyaWJ1dGU6QCJkYXRh
LWV4Y2x1ZGUiIHZhbHVlOkAibm8iXSBhdXRvcmVsZWFzZV0sDQorICAgICAgICBbW1tfV0tUZXh0
TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZSBhbGxvY10gaW5pdEV4Y2x1c2lvbjpZRVMgZm9yQ2xh
c3M6QCJleGNsdWRlIl0gYXV0b3JlbGVhc2VdLA0KKyAgICBdXTsNCisNCisgICAgZG9uZSA9IGZh
bHNlOw0KKyAgICBbd2ViVmlldyBfc3RhcnRUZXh0TWFuaXB1bGF0aW9uc1dpdGhDb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbjpeew0KKyAgICAgICAgZG9uZSA9IHRy
dWU7DQorICAgIH1dOw0KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOw0KKw0K
KyAgICBhdXRvICppdGVtcyA9IFtkZWxlZ2F0ZSBpdGVtc107DQorICAgIEVYUEVDVF9FUShpdGVt
cy5jb3VudCwgMVVMKTsNCisgICAgRVhQRUNUX0VRKGl0ZW1zWzBdLnRva2Vucy5jb3VudCwgM1VM
KTsNCisgICAgRVhQRUNUX1NUUkVRKCJNZXNzYWdlOiAiLCBpdGVtc1swXS50b2tlbnNbMF0uY29u
dGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX1RSVUUoaXRlbXNbMF0udG9rZW5zWzBdLmlz
RXhjbHVkZWQpOw0KKyAgICBFWFBFQ1RfU1RSRVEoImhlbGxvLCAiLCBpdGVtc1swXS50b2tlbnNb
MV0uY29udGVudC5VVEY4U3RyaW5nKTsNCisgICAgRVhQRUNUX0ZBTFNFKGl0ZW1zWzBdLnRva2Vu
c1sxXS5pc0V4Y2x1ZGVkKTsNCisgICAgRVhQRUNUX1NUUkVRKCJ3b3JsZCIsIGl0ZW1zWzBdLnRv
a2Vuc1syXS5jb250ZW50LlVURjhTdHJpbmcpOw0KKyAgICBFWFBFQ1RfVFJVRShpdGVtc1swXS50
b2tlbnNbMl0uaXNFeGNsdWRlZCk7DQorfQ0KKw0KIHN0cnVjdCBUb2tlbiB7DQogICAgIE5TU3Ry
aW5nICppZGVudGlmaWVyOw0KICAgICBOU1N0cmluZyAqY29udGVudDsNCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>