<?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>230204</bug_id>
          
          <creation_ts>2021-09-12 11:51:35 -0700</creation_ts>
          <short_desc>[macOS] Avoid computing post-layout EditorState data unless necessary</short_desc>
          <delta_ts>2021-09-14 15:43:06 -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>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>
          <dependson>230238</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792794</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-12 11:51:35 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793155</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-13 16:55:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/83078713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793178</commentid>
    <comment_count>2</comment_count>
      <attachid>438094</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-13 18:29:00 -0700</bug_when>
    <thetext>Created attachment 438094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793179</commentid>
    <comment_count>3</comment_count>
      <attachid>438095</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-13 18:30:31 -0700</bug_when>
    <thetext>Created attachment 438095
Just for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793312</commentid>
    <comment_count>4</comment_count>
      <attachid>438144</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-14 08:37:58 -0700</bug_when>
    <thetext>Created attachment 438144
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793407</commentid>
    <comment_count>5</comment_count>
      <attachid>438144</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-14 13:13:30 -0700</bug_when>
    <thetext>Comment on attachment 438144
For EWS

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

r=me, neat stuff :)

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1234
&gt; -    result.isContentEditable = selection.isContentEditable();
&gt; +    result.isContentEditable = selection.hasEditableStyle();

These appear to have different `UserSelectAllTreatment`.  Is that a problem?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1327
&gt; +    auto isEditable = frame-&gt;selection().selection().hasEditableStyle() ? EditorStateIsContentEditable::Yes : EditorStateIsContentEditable::No;

ditto (:1231)

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3561
&gt;      m_hasEverFocusedElementDueToUserInteractionSincePageTransition = false;

NIT: Shouldn&apos;t this really be inside a `HAVE(TOUCH_BAR)`?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5979
&gt; -    m_hasEverFocusedElementDueToUserInteractionSincePageTransition |= m_userIsInteracting;
&gt; +    if (m_userIsInteracting &amp;&amp; m_focusedElement)
&gt; +        m_hasEverFocusedElementDueToUserInteractionSincePageTransition = true;

This seems like a actual functional difference.  Is it something we can/should test?

&gt; Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:1089
&gt; +    if (m_needsFontAttributes)

NIT: it&apos;d be nice if we could add comments explaining why these things require computing post layout data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793414</commentid>
    <comment_count>6</comment_count>
      <attachid>438144</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-14 13:27:31 -0700</bug_when>
    <thetext>Comment on attachment 438144
For EWS

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1234
&gt;&gt; +    result.isContentEditable = selection.hasEditableStyle();
&gt; 
&gt; These appear to have different `UserSelectAllTreatment`.  Is that a problem?

I don&apos;t think this will be an issue since we already use this option when grabbing the `rootEditableElement()`, computing editing style, and other adjacent codepaths.

(`isContentRichlyEditable()` also uses this option, so it would be consistent with that)

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3561
&gt;&gt;      m_hasEverFocusedElementDueToUserInteractionSincePageTransition = false;
&gt; 
&gt; NIT: Shouldn&apos;t this really be inside a `HAVE(TOUCH_BAR)`?

Moved this into `HAVE(TOUCH_BAR)` instead.

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5979
&gt;&gt; +        m_hasEverFocusedElementDueToUserInteractionSincePageTransition = true;
&gt; 
&gt; This seems like a actual functional difference.  Is it something we can/should test?

It&apos;s not actually clear to me what the functional difference would be, since this should only prevent us from setting `m_hasEverFocusedElementDueToUserInteractionSincePageTransition` to true in cases where we wouldn&apos;t have tried to show the text editing controls on the Touch Bar anyways.

&gt;&gt; Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:1089
&gt;&gt; +    if (m_needsFontAttributes)
&gt; 
&gt; NIT: it&apos;d be nice if we could add comments explaining why these things require computing post layout data

This is because font attributes are plumbed through post-layout data. I&apos;ll add comments clarifying this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793416</commentid>
    <comment_count>7</comment_count>
      <attachid>438162</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-14 13:36:19 -0700</bug_when>
    <thetext>Created attachment 438162
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793477</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-14 15:43:05 -0700</bug_when>
    <thetext>Committed r282419 (241678@main): &lt;https://commits.webkit.org/241678@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438162.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438094</attachid>
            <date>2021-09-13 18:29:00 -0700</date>
            <delta_ts>2021-09-13 18:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230204-20210913182900.patch</filename>
            <type>text/plain</type>
            <size>14771</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMzA5OGIzNWM5NjI1
YzI1ZDcwYTNkMWZhODc0NDc1MTY3YjQxNS4uMDlmNmUxZDI5YTgwN2QwYjhhYmE2YTllMDJlZGUz
NmU4YjA3YzE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9y
dCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OmlzRWRpdGFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNF
ZGl0YWJsZSk6IERlbGV0ZWQuCisKIDIwMjEtMDktMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSAtdG9nZ2xlQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uOiBtZW51IGl0ZW0gdmFsaWRhdGlvbiBzaG91bGRuJ3QgcmVxdWlyZSBwb3N0
LWxheW91dCBlZGl0b3Igc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzk0MDdhMDY2MDgwMDA5NzYwMDEwMzQ2
Y2Y2MTk4ODViNGMzZDU5OS4uODQxNzA0ZTY4YmRjZDVlMzhjZmQ0YTMxMWEzYTc0YjU4OTc2NDMw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wOS0xMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEF2b2lkIGNvbXB1dGlu
ZyBwb3N0LWxheW91dCBFZGl0b3JTdGF0ZSBkYXRhIHVubGVzcyBuZWNlc3NhcnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDIwNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODMwNzg3MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGF0Y2ggZm9yIEVXUy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjplZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVw
ZGF0ZUVkaXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZFN0YXJ0UGFnZVRyYW5zaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb25Pck92ZXJmbG93U2Nyb2xsUG9zaXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kRWRpdG9yU3RhdGVVcGRhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFG
b3JFZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3Jt
TmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpyZXF1aXJlc1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3RhdGUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0
TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlIGNvbnN0KToKKwogMjAyMS0wOS0xMyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciAtW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9s
c01hbmFnZXI6XSB0byB1c2UgQVBJOjpQYWdlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBjNjlmN2FkMjljMzBkNTExNjU2MWEzMzFjNTcxNzIxMmMwNzJjMzEzLi40ZjljZGNhMWJmOWMz
OTY2YzNhNjZiZjZmNTJiMDg1MDRmNThjNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjI4LDcgKzYy
OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgaW50IG1heE51bWJlck9mRnJhbWVzID0g
MTAwMDsKIAogICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCBpc0VkaXRhYmxlKSB7IG1faXNFZGl0
YWJsZSA9IGlzRWRpdGFibGU7IH0KLSAgICBib29sIGlzRWRpdGFibGUoKSB7IHJldHVybiBtX2lz
RWRpdGFibGU7IH0KKyAgICBib29sIGlzRWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBtX2lzRWRp
dGFibGU7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5
U3RhdGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZUFuaW1hdGluZ0lt
YWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCBkNjZmOTFhODUxYjg3YjZlZjRkZTRkZWYyOGI4NzY2OWRiYjA1NWVl
Li5hZDQxMWI4MDYyOThhNGI4NWU4Nzg1YmJmNDc1ZmYyZDkzY2YxN2VmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTg5
LDYgKzE4OSwxMCBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQogICAg
IGVuY29kZXIgPDwgYXBwSGlnaGxpZ2h0c1Zpc2libGU7CiAjZW5kaWYKKworI2lmIEhBVkUoVE9V
Q0hfQkFSKQorICAgIGVuY29kZXIgPDwgcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRy
b2xzTWFuYWdlcjsKKyNlbmRpZgogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIpCkBAIC02MDgsNiArNjEyLDExIEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIAorI2lmIEhBVkUoVE9VQ0hfQkFS
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5yZXF1aXJlc1VzZXJBY3Rpb25G
b3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyNlbmRpZgorCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5NjgyNDhkNDMyZjY0
NTFlMGQyYzI5ZjdhMzQwYjA2NzQxNzI5ZjcwLi45OGRmNDZjZmE0YTIxNGQ3ODEwMTc0M2JiM2U4
ZWEwMDgzZjQzMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0yNjQsNyArMjY0LDEwIEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgV2ViQ29yZTo6
SGlnaGxpZ2h0VmlzaWJpbGl0eSBhcHBIaWdobGlnaHRzVmlzaWJsZSB7IFdlYkNvcmU6OkhpZ2hs
aWdodFZpc2liaWxpdHk6OkhpZGRlbiB9OwogI2VuZGlmCi0gICAgCisKKyNpZiBIQVZFKFRPVUNI
X0JBUikKKyAgICBib29sIHJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFn
ZXIgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVjMzc1NDE3OTRiNzk3ZDdm
NTMxMGNjMzc0ZGYwNWYwZTk2YzAwOWMuLmUyYjI0MzdhMWJhYTcwNDUyNWY1NGJiYjk2MmI0Njdl
MzQ4NGIwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODM0Niw2ICs4MzQ2LDEwIEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVy
cy5hcHBIaWdobGlnaHRzVmlzaWJsZSA9IGFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5KCkgPyBIaWdo
bGlnaHRWaXNpYmlsaXR5OjpWaXNpYmxlIDogSGlnaGxpZ2h0VmlzaWJpbGl0eTo6SGlkZGVuOwog
I2VuZGlmCiAKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICBwYXJhbWV0ZXJzLnJlcXVpcmVzVXNl
ckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBtX2NvbmZpZ3VyYXRpb24tPnJlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIoKTsKKyNlbmRpZgorCiAgICAg
cmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggNTI2ZjIxMDdmMmNjNjA4NmVlMTMxYjgwNTYzNzZjZmJhNDY5
YjhkNS4uZmE4NmFhYTU0MDhiOGRkOTMzZWJmOGRkOGIyZWVkMzQyYWQwY2YzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUxNSw2ICs1MTUs
OSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgLCBtX3BhZ2VTY3JvbGxlZEh5c3RlcmVz
aXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBQQUw6
Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRTY3JvbGxpbmcoKTsgfSwgcGFn
ZVNjcm9sbEh5c3RlcmVzaXNEdXJhdGlvbikKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAg
ICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQorI2lmIEhBVkUoVE9VQ0hf
QkFSKQorICAgICwgbV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
KHBhcmFtZXRlcnMucmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcikK
KyNlbmRpZgogI2lmIEVOQUJMRShNRVRBX1ZJRVdQT1JUKQogICAgICwgbV9mb3JjZUFsd2F5c1Vz
ZXJTY2FsYWJsZShwYXJhbWV0ZXJzLmlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKQogI2VuZGlm
CkBAIC0xMjI4LDcgKzEyMzEsNyBAQCBFZGl0b3JTdGF0ZSBXZWJQYWdlOjplZGl0b3JTdGF0ZShT
aG91bGRQZXJmb3JtTGF5b3V0IHNob3VsZFBlcmZvcm1MYXlvdXQpIGNvbnN0CiAgICAgcmVzdWx0
LmlkZW50aWZpZXIgPSBtX2xhc3RFZGl0b3JTdGF0ZUlkZW50aWZpZXIuaW5jcmVtZW50KCk7CiAg
ICAgcmVzdWx0LnNlbGVjdGlvbklzTm9uZSA9IHNlbGVjdGlvbi5pc05vbmUoKTsKICAgICByZXN1
bHQuc2VsZWN0aW9uSXNSYW5nZSA9IHNlbGVjdGlvbi5pc1JhbmdlKCk7Ci0gICAgcmVzdWx0Lmlz
Q29udGVudEVkaXRhYmxlID0gc2VsZWN0aW9uLmlzQ29udGVudEVkaXRhYmxlKCk7CisgICAgcmVz
dWx0LmlzQ29udGVudEVkaXRhYmxlID0gc2VsZWN0aW9uLmhhc0VkaXRhYmxlU3R5bGUoKTsKICAg
ICByZXN1bHQuaXNDb250ZW50UmljaGx5RWRpdGFibGUgPSBzZWxlY3Rpb24uaXNDb250ZW50Umlj
aGx5RWRpdGFibGUoKTsKICAgICByZXN1bHQuaXNJblBhc3N3b3JkRmllbGQgPSBzZWxlY3Rpb24u
aXNJblBhc3N3b3JkRmllbGQoKTsKICAgICByZXN1bHQuaGFzQ29tcG9zaXRpb24gPSBlZGl0b3Iu
aGFzQ29tcG9zaXRpb24oKTsKQEAgLTEyNDMsNyArMTI0NiwxNCBAQCBFZGl0b3JTdGF0ZSBXZWJQ
YWdlOjplZGl0b3JTdGF0ZShTaG91bGRQZXJmb3JtTGF5b3V0IHNob3VsZFBlcmZvcm1MYXlvdXQp
IGNvbnN0CiAgICAgICAgIHJlc3VsdC5zZWxlY3Rpb25Jc1JhbmdlSW5zaWRlSW1hZ2VPdmVybGF5
ID0gc2VsZWN0aW9uUmFuZ2UgJiYgSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpz
ZWxlY3Rpb25SYW5nZSk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZFBlcmZvcm1MYXlvdXQgPT0g
U2hvdWxkUGVyZm9ybUxheW91dDo6WWVzIHx8IHBsYXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0b3JT
dGF0ZShmcmFtZSkpCisgICAgbV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50RWRpdGFibGUgPSBy
ZXN1bHQuaXNDb250ZW50RWRpdGFibGUgPyBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpZ
ZXMgOiBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpObzsKKworICAgIGlmIChzaG91bGRB
dm9pZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoKSkgeworICAgICAgICBn
ZXRQbGF0Zm9ybUVkaXRvclN0YXRlKGZyYW1lLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKworICAgIGlmIChzaG91bGRQZXJmb3JtTGF5b3V0ID09IFNob3VsZFBlcmZv
cm1MYXlvdXQ6OlllcyB8fCByZXF1aXJlc1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoZnJh
bWUpKQogICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0KCk7IC8vIE1heSBjYXVzZSBkb2N1
bWVudCBkZXN0cnVjdGlvbgogCiAgICAgaWYgKGF1dG8qIGZyYW1lVmlldyA9IGRvY3VtZW50LT52
aWV3KCk7IGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3LT5uZWVkc0xheW91dCgpKSB7CkBAIC0xMjU4
LDEwICsxMjY4LDYgQEAgRWRpdG9yU3RhdGUgV2ViUGFnZTo6ZWRpdG9yU3RhdGUoU2hvdWxkUGVy
Zm9ybUxheW91dCBzaG91bGRQZXJmb3JtTGF5b3V0KSBjb25zdAogICAgICAgICAgICAgcG9zdExh
eW91dERhdGEuZm9udEF0dHJpYnV0ZXMgPSBlZGl0b3IuZm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlv
blN0YXJ0KCk7CiAgICAgfQogCi0gICAgZ2V0UGxhdGZvcm1FZGl0b3JTdGF0ZShmcmFtZSwgcmVz
dWx0KTsKLQotICAgIG1fbGFzdEVkaXRvclN0YXRlV2FzQ29udGVudEVkaXRhYmxlID0gcmVzdWx0
LmlzQ29udGVudEVkaXRhYmxlID8gRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6WWVzIDog
RWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6Tm87Ci0KICAgICByZXR1cm4gcmVzdWx0Owog
fQogCkBAIC0xMzEyLDggKzEzMTgsMTEgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVFZGl0b3JTdGF0
ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0eUNoYW5nZWQoKQogICAgIGlmIChtX2xhc3RFZGl0b3JT
dGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSA9PSBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpV
bnNldCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGhhc1BlbmRpbmdFZGl0b3JTdGF0ZVVw
ZGF0ZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBSZWYgZnJhbWUgPSBDaGVja2VkUmVmKG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBFZGl0
b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlIGVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGUgPSBm
cmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFibGUoKSA/IEVkaXRv
clN0YXRlSXNDb250ZW50RWRpdGFibGU6OlllcyA6IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFi
bGU6Ok5vOworICAgIEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGUgZWRpdG9yU3RhdGVJc0Nv
bnRlbnRFZGl0YWJsZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5oYXNFZGl0YWJs
ZVN0eWxlKCkgPyBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpZZXMgOiBFZGl0b3JTdGF0
ZUlzQ29udGVudEVkaXRhYmxlOjpObzsKICAgICBpZiAobV9sYXN0RWRpdG9yU3RhdGVXYXNDb250
ZW50RWRpdGFibGUgIT0gZWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgc2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKIH0KQEAgLTM1NDcsOCArMzU1Niw4IEBAIHZv
aWQgV2ViUGFnZTo6ZGlkU3RhcnRQYWdlVHJhbnNpdGlvbigpCiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgYm9vbCBoYXNQcmV2aW91c2x5Rm9jdXNlZER1ZVRvVXNlckludGVyYWN0aW9uID0gbV9o
YXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRp
b247Ci0jZW5kaWYKICAgICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0
aW9uU2luY2VQYWdlVHJhbnNpdGlvbiA9IGZhbHNlOworI2VuZGlmCiAgICAgbV9sYXN0RWRpdG9y
U3RhdGVXYXNDb250ZW50RWRpdGFibGUgPSBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpV
bnNldDsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTU5NjQsNyArNTk3Myw4IEBAIHZvaWQgV2Vi
UGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uT3JPdmVyZmxvd1Njcm9sbFBvc2l0aW9uKCkKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBib29sIGhhc1ByZXZpb3VzbHlGb2N1c2VkRHVlVG9Vc2VySW50
ZXJhY3Rpb24gPSBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2lu
Y2VQYWdlVHJhbnNpdGlvbjsKLSAgICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlcklu
dGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiB8PSBtX3VzZXJJc0ludGVyYWN0aW5nOworICAg
IGlmIChtX3VzZXJJc0ludGVyYWN0aW5nICYmIG1fZm9jdXNlZEVsZW1lbnQpCisgICAgICAgIG1f
aGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0
aW9uID0gdHJ1ZTsKIAogICAgIGlmICghaGFzUHJldmlvdXNseUZvY3VzZWREdWVUb1VzZXJJbnRl
cmFjdGlvbiAmJiBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2lu
Y2VQYWdlVHJhbnNpdGlvbikgewogI2lmIEhBVkUoVE9VQ0hfQkFSKQpAQCAtNjUxMCwxMCArNjUy
MCwxMCBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRFZGl0b3JTdGF0ZVVwZGF0ZSgpCiAgICAgLy8gSWYg
dGhhdCBpcyB0aGUgY2FzZSwganVzdCBzZW5kIHdoYXQgd2UgaGF2ZSAoaS5lLiBkb24ndCBpbmNs
dWRlIHBvc3QtbGF5b3V0IGRhdGEpIGFuZCB3YWl0IHVudGlsIHRoZQogICAgIC8vIG5leHQgbGF5
ZXIgdHJlZSBjb21taXQgdG8gY29tcHV0ZSBhbmQgc2VuZCB0aGUgY29tcGxldGUgRWRpdG9yU3Rh
dGUgb3Zlci4KICAgICBhdXRvIHN0YXRlID0gZWRpdG9yU3RhdGUoKTsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkVkaXRvclN0YXRlQ2hhbmdlZChzdGF0ZSkpOwotCi0gICAgaWYg
KHN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKQorICAgIGlmIChzdGF0ZS5pc01pc3NpbmdQ
b3N0TGF5b3V0RGF0YSAmJiAhc2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0TGF5b3V0RGF0YUZvckVk
aXRvclN0YXRlKCkpCiAgICAgICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CisK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVkaXRvclN0YXRlQ2hhbmdlZChXVEZN
b3ZlKHN0YXRlKSkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNjaGVkdWxlRnVsbEVkaXRvclN0YXRl
VXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAxZWMyODE3ZDM2OTdjMzZhM2EyMWFjNjE2MmU4N2YwOWMxYjg2YjgyLi40NzZmODU3ZTA2Njcw
MWNiNTQwZTI4YjA1MTdhZmZkYTY2NDBhMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGxhdGZvcm1SZWluaXRpYWxpemUoKTsKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAg
ICAgdm9pZCBnZXRQbGF0Zm9ybUVkaXRvclN0YXRlKFdlYkNvcmU6OkZyYW1lJiwgRWRpdG9yU3Rh
dGUmKSBjb25zdDsKLSAgICBib29sIHBsYXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZShj
b25zdCBXZWJDb3JlOjpGcmFtZSYpIGNvbnN0OworICAgIGJvb2wgcmVxdWlyZXNQb3N0TGF5b3V0
RGF0YUZvckVkaXRvclN0YXRlKGNvbnN0IFdlYkNvcmU6OkZyYW1lJikgY29uc3Q7CiAgICAgdm9p
ZCBwbGF0Zm9ybVdpbGxQZXJmb3JtRWRpdGluZ0NvbW1hbmQoKTsKICAgICB2b2lkIHNlbmRFZGl0
b3JTdGF0ZVVwZGF0ZSgpOwogICAgIHZvaWQgZ2V0UGxhdGZvcm1FZGl0b3JTdGF0ZUNvbW1vbihj
b25zdCBXZWJDb3JlOjpGcmFtZSYsIEVkaXRvclN0YXRlJikgY29uc3Q7CkBAIC0xOTIwLDYgKzE5
MjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94
RXh0ZW5zaW9ucyhjb25zdCBWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYpOwogCiAg
ICAgYm9vbCBoYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKSBjb25zdDsKKyAgICBib29sIHNo
b3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpIGNvbnN0Owog
CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCkBAIC0yMTY1LDkg
KzIxNjYsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+
IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKIAogICAgIGJvb2wgbV91c2VySXNJ
bnRlcmFjdGluZyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1
ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiB7IGZhbHNlIH07CiAKICNpZiBI
QVZFKFRPVUNIX0JBUikKKyAgICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2Vy
SW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhciB7
IGZhbHNlIH07CiAjZW5kaWYKQEAgLTIzODAsOCArMjM4MiwxMiBAQCBwcml2YXRlOgogCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCiBpbmxpbmUgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybVdpbGxQ
ZXJmb3JtRWRpdGluZ0NvbW1hbmQoKSB7IH0KLWlubGluZSBib29sIFdlYlBhZ2U6OnBsYXRmb3Jt
TmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZShjb25zdCBXZWJDb3JlOjpGcmFtZSYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CitpbmxpbmUgYm9vbCBXZWJQYWdlOjpyZXF1aXJlc1Bvc3RMYXlvdXRE
YXRhRm9yRWRpdG9yU3RhdGUoY29uc3QgV2ViQ29yZTo6RnJhbWUmKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogaW5saW5lIHZvaWQgV2ViUGFnZTo6cHJlcGFyZVRvUnVuTW9kYWxKYXZhU2NyaXB0
RGlhbG9nKCkgeyB9CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpCitpbmxpbmUgYm9vbCBX
ZWJQYWdlOjpzaG91bGRBdm9pZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCBiMzc3ZDY0NGFhZmM1MjY0ZjMwNDZiZDE4MjUwMzY5YjY2ODAwZWIxLi43YmFi
NDkyNzVlMmZjZTc3MjgyMGNmMTE1ZmI5MmVkODUyYmIzODJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjUwLDcgKzI1
MCw3IEBAIGJvb2wgV2ViUGFnZTo6aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcmVyLT5oYXNOb25FbXB0eVZp
c2libGVSZWN0UmVzcGVjdGluZ1BhcmVudEZyYW1lcygpOwogfQogCi1ib29sIFdlYlBhZ2U6OnBs
YXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZShjb25zdCBGcmFtZSYgZnJhbWUpIGNvbnN0
Citib29sIFdlYlBhZ2U6OnJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShjb25z
dCBGcmFtZSYgZnJhbWUpIGNvbnN0CiB7CiAgICAgLy8gSWYgd2UgaGF2ZSBhIGNvbXBvc2l0aW9u
IG9yIGFyZSB1c2luZyBhIGhhcmR3YXJlIGtleWJvYXJkIHRoZW4gd2UgbmVlZCB0byBzZW5kIHRo
ZSBmdWxsCiAgICAgLy8gZWRpdG9yIHNvIHRoYXQgdGhlIFVJUHJvY2VzcyBjYW4gdXBkYXRlIFVJ
LCBpbmNsdWRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBjYXJldC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggMDk2ZmIyMTI4
MTY0YzkxYmU2OWU1MDkwYmU2ZWVlNzcxYWU1OWVmYi4uYzVlYWQ5NGQ5MTk5ZWFkNWQ5NGYxNTFh
OTdlOTE5MjU1NmUyMmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTEwODQsNiArMTA4NCwyMCBAQCB2b2lkIFdlYlBh
Z2U6OmRpZEVuZE1hZ25pZmljYXRpb25HZXN0dXJlKCkKICNlbmRpZgogfQogCitib29sIFdlYlBh
Z2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpIGNv
bnN0Cit7CisgICAgaWYgKG1fbmVlZHNGb250QXR0cmlidXRlcykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFtX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX2hhc0V2ZXJGb2N1c2Vk
RWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBIQVZFKEFQUF9BQ0NF
TlRfQ09MT1JTKQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjY2VudENvbG9yKFdlYkNvcmU6OkNvbG9y
IGNvbG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438095</attachid>
            <date>2021-09-13 18:30:31 -0700</date>
            <delta_ts>2021-09-14 08:37:56 -0700</delta_ts>
            <desc>Just for EWS</desc>
            <filename>bug-230204-20210913183031.patch</filename>
            <type>text/plain</type>
            <size>14856</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMzA5OGIzNWM5NjI1
YzI1ZDcwYTNkMWZhODc0NDc1MTY3YjQxNS4uNDc1YjM1ODNkOTZhNjRmYTg2ZDliOTE5Y2JhZjEy
YzlhNWVkMGFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQXZv
aWQgY29tcHV0aW5nIHBvc3QtbGF5b3V0IEVkaXRvclN0YXRlIGRhdGEgdW5sZXNzIG5lY2Vzc2Fy
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMjA0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzA3ODcxMz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBmb3IgRVdTLgorCisgICAgICAgICog
cGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjppc0VkaXRhYmxlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzRWRpdGFibGUpOiBEZWxldGVkLgorCiAyMDIxLTA5
LTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtt
YWNPU10gLXRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbjogbWVudSBpdGVtIHZhbGlk
YXRpb24gc2hvdWxkbid0IHJlcXVpcmUgcG9zdC1sYXlvdXQgZWRpdG9yIHN0YXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDM5NDA3YTA2NjA4MDAwOTc2MDAxMDM0NmNmNjE5ODg1YjRjM2Q1OTkuLjg0MTcwNGU2OGJk
Y2Q1ZTM4Y2ZkNGEzMTFhM2E3NGI1ODk3NjQzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMjEtMDktMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBBdm9pZCBjb21wdXRpbmcgcG9zdC1sYXlvdXQgRWRpdG9yU3RhdGUgZGF0
YSB1bmxlc3MgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzAyMDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMDc4NzEzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhdGNoIGZvciBF
V1MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZWRpdG9yU3RhdGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZF
ZGl0YWJpbGl0eUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRTdGFydFBh
Z2VUcmFuc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0
aW9uT3JPdmVyZmxvd1Njcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2VuZEVkaXRvclN0YXRlVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1aXJlc1Bvc3RMYXlvdXREYXRh
Rm9yRWRpdG9yU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaG91bGRB
dm9pZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3RhdGUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWlyZXNQb3N0TGF5b3V0RGF0YUZv
ckVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1O
ZWVkc0xheW91dEZvckVkaXRvclN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBjb25z
dCk6CisKIDIwMjEtMDktMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVmYWN0b3IgLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOl0gdG8gdXNlIEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYzY5ZjdhZDI5YzMwZDUxMTY1NjFhMzMxYzU3
MTcyMTJjMDcyYzMxMy4uNGY5Y2RjYTFiZjljMzk2NmMzYTY2YmY2ZjUyYjA4NTA0ZjU4YzY5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTYyOCw3ICs2MjgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IGludCBtYXhOdW1iZXJPZkZyYW1lcyA9IDEwMDA7CiAKICAgICB2b2lkIHNldEVkaXRhYmxl
KGJvb2wgaXNFZGl0YWJsZSkgeyBtX2lzRWRpdGFibGUgPSBpc0VkaXRhYmxlOyB9Ci0gICAgYm9v
bCBpc0VkaXRhYmxlKCkgeyByZXR1cm4gbV9pc0VkaXRhYmxlOyB9CisgICAgYm9vbCBpc0VkaXRh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0VkaXRhYmxlOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXN1bWVBbmltYXRpbmdJbWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZDY2ZjkxYTg1MWI4
N2I2ZWY0ZGU0ZGVmMjhiODc2NjlkYmIwNTVlZS4uYWQ0MTFiODA2Mjk4YTRiODVlODc4NWJiZjQ3
NWZmMmQ5M2NmMTdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE4OSw2ICsxODksMTAgQEAgdm9pZCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBlbmNvZGVyIDw8IGFwcEhpZ2hsaWdodHNWaXNp
YmxlOwogI2VuZGlmCisKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICBlbmNvZGVyIDw8IHJlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7CisjZW5kaWYKIH0KIAogc3Rk
OjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjA4LDYgKzYxMiwxMSBA
QCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
I2VuZGlmCiAKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMucmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcikpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZW5kaWYKKwogICAgIHJldHVybiBwYXJhbWV0
ZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKaW5kZXggOTY4MjQ4ZDQzMmY2NDUxZTBkMmMyOWY3YTM0MGIwNjc0MTcyOWY3MC4u
OThkZjQ2Y2ZhNGEyMTRkNzgxMDE3NDNiYjNlOGVhMDA4M2Y0MzM4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjY0LDcgKzI2
NCwxMCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQogICAgIFdlYkNvcmU6OkhpZ2hsaWdodFZpc2liaWxpdHkgYXBwSGlnaGxp
Z2h0c1Zpc2libGUgeyBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5OjpIaWRkZW4gfTsKICNl
bmRpZgotICAgIAorCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgYm9vbCByZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA1YzM3NTQxNzk0Yjc5N2Q3ZjUzMTBjYzM3NGRmMDVmMGU5NmMwMDljLi5lMmIy
NDM3YTFiYWE3MDQ1MjVmNTRiYmI5NjJiNDY3ZTM0ODRiMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgzNDYsNiArODM0NiwxMCBAQCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nl
c3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMuYXBwSGlnaGxpZ2h0c1Zpc2libGUgPSBhcHBI
aWdobGlnaHRzVmlzaWJpbGl0eSgpID8gSGlnaGxpZ2h0VmlzaWJpbGl0eTo6VmlzaWJsZSA6IEhp
Z2hsaWdodFZpc2liaWxpdHk6OkhpZGRlbjsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9CQVIp
CisgICAgcGFyYW1ldGVycy5yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5h
Z2VyID0gbV9jb25maWd1cmF0aW9uLT5yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJv
bHNNYW5hZ2VyKCk7CisjZW5kaWYKKwogICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDUyNmYyMTA3
ZjJjYzYwODZlZTEzMWI4MDU2Mzc2Y2ZiYTQ2OWI4ZDUuLmZhODZhYWE1NDA4YjhkZDkzM2ViZjhk
ZDhiMmVlZDM0MmFkMGNmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC01MTUsNiArNTE1LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
ICAgICwgbV9wYWdlU2Nyb2xsZWRIeXN0ZXJlc2lzKFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0
ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIHBh
Z2VTdG9wcGVkU2Nyb2xsaW5nKCk7IH0sIHBhZ2VTY3JvbGxIeXN0ZXJlc2lzRHVyYXRpb24pCiAg
ICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9kYWwocGFyYW1ldGVycy5j
YW5SdW5Nb2RhbCkKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICAsIG1fcmVxdWlyZXNVc2VyQWN0
aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcihwYXJhbWV0ZXJzLnJlcXVpcmVzVXNlckFjdGlv
bkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIpCisjZW5kaWYKICNpZiBFTkFCTEUoTUVUQV9WSUVX
UE9SVCkKICAgICAsIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGUocGFyYW1ldGVycy5pZ25vcmVz
Vmlld3BvcnRTY2FsZUxpbWl0cykKICNlbmRpZgpAQCAtMTIyOCw3ICsxMjMxLDcgQEAgRWRpdG9y
U3RhdGUgV2ViUGFnZTo6ZWRpdG9yU3RhdGUoU2hvdWxkUGVyZm9ybUxheW91dCBzaG91bGRQZXJm
b3JtTGF5b3V0KSBjb25zdAogICAgIHJlc3VsdC5pZGVudGlmaWVyID0gbV9sYXN0RWRpdG9yU3Rh
dGVJZGVudGlmaWVyLmluY3JlbWVudCgpOwogICAgIHJlc3VsdC5zZWxlY3Rpb25Jc05vbmUgPSBz
ZWxlY3Rpb24uaXNOb25lKCk7CiAgICAgcmVzdWx0LnNlbGVjdGlvbklzUmFuZ2UgPSBzZWxlY3Rp
b24uaXNSYW5nZSgpOwotICAgIHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA9IHNlbGVjdGlvbi5p
c0NvbnRlbnRFZGl0YWJsZSgpOworICAgIHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA9IHNlbGVj
dGlvbi5oYXNFZGl0YWJsZVN0eWxlKCk7CiAgICAgcmVzdWx0LmlzQ29udGVudFJpY2hseUVkaXRh
YmxlID0gc2VsZWN0aW9uLmlzQ29udGVudFJpY2hseUVkaXRhYmxlKCk7CiAgICAgcmVzdWx0Lmlz
SW5QYXNzd29yZEZpZWxkID0gc2VsZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7CiAgICAgcmVz
dWx0Lmhhc0NvbXBvc2l0aW9uID0gZWRpdG9yLmhhc0NvbXBvc2l0aW9uKCk7CkBAIC0xMjQzLDcg
KzEyNDYsMTQgQEAgRWRpdG9yU3RhdGUgV2ViUGFnZTo6ZWRpdG9yU3RhdGUoU2hvdWxkUGVyZm9y
bUxheW91dCBzaG91bGRQZXJmb3JtTGF5b3V0KSBjb25zdAogICAgICAgICByZXN1bHQuc2VsZWN0
aW9uSXNSYW5nZUluc2lkZUltYWdlT3ZlcmxheSA9IHNlbGVjdGlvblJhbmdlICYmIEhUTUxFbGVt
ZW50Ojppc0luc2lkZUltYWdlT3ZlcmxheSgqc2VsZWN0aW9uUmFuZ2UpOwogICAgIH0KIAotICAg
IGlmIChzaG91bGRQZXJmb3JtTGF5b3V0ID09IFNob3VsZFBlcmZvcm1MYXlvdXQ6OlllcyB8fCBw
bGF0Zm9ybU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3RhdGUoZnJhbWUpKQorICAgIG1fbGFzdEVkaXRv
clN0YXRlV2FzQ29udGVudEVkaXRhYmxlID0gcmVzdWx0LmlzQ29udGVudEVkaXRhYmxlID8gRWRp
dG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6WWVzIDogRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0
YWJsZTo6Tm87CisKKyAgICBpZiAoc2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0TGF5b3V0RGF0YUZv
ckVkaXRvclN0YXRlKCkpIHsKKyAgICAgICAgZ2V0UGxhdGZvcm1FZGl0b3JTdGF0ZShmcmFtZSwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBpZiAoc2hvdWxk
UGVyZm9ybUxheW91dCA9PSBTaG91bGRQZXJmb3JtTGF5b3V0OjpZZXMgfHwgcmVxdWlyZXNQb3N0
TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlKGZyYW1lKSkKICAgICAgICAgZG9jdW1lbnQtPnVwZGF0
ZUxheW91dCgpOyAvLyBNYXkgY2F1c2UgZG9jdW1lbnQgZGVzdHJ1Y3Rpb24KIAogICAgIGlmIChh
dXRvKiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOyBmcmFtZVZpZXcgJiYgIWZyYW1lVmll
dy0+bmVlZHNMYXlvdXQoKSkgewpAQCAtMTI1OCwxMCArMTI2OCw2IEBAIEVkaXRvclN0YXRlIFdl
YlBhZ2U6OmVkaXRvclN0YXRlKFNob3VsZFBlcmZvcm1MYXlvdXQgc2hvdWxkUGVyZm9ybUxheW91
dCkgY29uc3QKICAgICAgICAgICAgIHBvc3RMYXlvdXREYXRhLmZvbnRBdHRyaWJ1dGVzID0gZWRp
dG9yLmZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydCgpOwogICAgIH0KIAotICAgIGdldFBs
YXRmb3JtRWRpdG9yU3RhdGUoZnJhbWUsIHJlc3VsdCk7Ci0KLSAgICBtX2xhc3RFZGl0b3JTdGF0
ZVdhc0NvbnRlbnRFZGl0YWJsZSA9IHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA/IEVkaXRvclN0
YXRlSXNDb250ZW50RWRpdGFibGU6OlllcyA6IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6
Ok5vOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTMxMiw4ICsxMzE4LDExIEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlDaGFu
Z2VkKCkKICAgICBpZiAobV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50RWRpdGFibGUgPT0gRWRp
dG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6VW5zZXQpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmIChoYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpKS0+Zm9j
dXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSBlZGl0
b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkgPyBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpZZXMg
OiBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpObzsKKyAgICBFZGl0b3JTdGF0ZUlzQ29u
dGVudEVkaXRhYmxlIGVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGUgPSBmcmFtZS0+c2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCkuaGFzRWRpdGFibGVTdHlsZSgpID8gRWRpdG9yU3RhdGVJc0NvbnRl
bnRFZGl0YWJsZTo6WWVzIDogRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6Tm87CiAgICAg
aWYgKG1fbGFzdEVkaXRvclN0YXRlV2FzQ29udGVudEVkaXRhYmxlICE9IGVkaXRvclN0YXRlSXND
b250ZW50RWRpdGFibGUpCiAgICAgICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7
CiB9CkBAIC0zNTQ3LDggKzM1NTYsOCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFN0YXJ0UGFnZVRyYW5z
aXRpb24oKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgaGFzUHJldmlvdXNseUZvY3Vz
ZWREdWVUb1VzZXJJbnRlcmFjdGlvbiA9IG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2Vy
SW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uOwotI2VuZGlmCiAgICAgbV9oYXNFdmVyRm9j
dXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24gPSBmYWxz
ZTsKKyNlbmRpZgogICAgIG1fbGFzdEVkaXRvclN0YXRlV2FzQ29udGVudEVkaXRhYmxlID0gRWRp
dG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6VW5zZXQ7CiAKICNpZiBQTEFURk9STShNQUMpCkBA
IC01OTY0LDcgKzU5NzMsOCBAQCB2b2lkIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbk9yT3Zl
cmZsb3dTY3JvbGxQb3NpdGlvbigpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBoYXNQ
cmV2aW91c2x5Rm9jdXNlZER1ZVRvVXNlckludGVyYWN0aW9uID0gbV9oYXNFdmVyRm9jdXNlZEVs
ZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb247Ci0gICAgbV9oYXNF
dmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24g
fD0gbV91c2VySXNJbnRlcmFjdGluZzsKKyAgICBpZiAobV91c2VySXNJbnRlcmFjdGluZyAmJiBt
X2ZvY3VzZWRFbGVtZW50KQorICAgICAgICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNl
ckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiA9IHRydWU7CiAKICAgICBpZiAoIWhhc1By
ZXZpb3VzbHlGb2N1c2VkRHVlVG9Vc2VySW50ZXJhY3Rpb24gJiYgbV9oYXNFdmVyRm9jdXNlZEVs
ZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24pIHsKICNpZiBIQVZF
KFRPVUNIX0JBUikKQEAgLTY1MTAsMTAgKzY1MjAsMTAgQEAgdm9pZCBXZWJQYWdlOjpzZW5kRWRp
dG9yU3RhdGVVcGRhdGUoKQogICAgIC8vIElmIHRoYXQgaXMgdGhlIGNhc2UsIGp1c3Qgc2VuZCB3
aGF0IHdlIGhhdmUgKGkuZS4gZG9uJ3QgaW5jbHVkZSBwb3N0LWxheW91dCBkYXRhKSBhbmQgd2Fp
dCB1bnRpbCB0aGUKICAgICAvLyBuZXh0IGxheWVyIHRyZWUgY29tbWl0IHRvIGNvbXB1dGUgYW5k
IHNlbmQgdGhlIGNvbXBsZXRlIEVkaXRvclN0YXRlIG92ZXIuCiAgICAgYXV0byBzdGF0ZSA9IGVk
aXRvclN0YXRlKCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFZGl0b3JTdGF0
ZUNoYW5nZWQoc3RhdGUpKTsKLQotICAgIGlmIChzdGF0ZS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0
YSkKKyAgICBpZiAoc3RhdGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEgJiYgIXNob3VsZEF2b2lk
Q29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpKQogICAgICAgICBzY2hlZHVs
ZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpFZGl0b3JTdGF0ZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpKTsKIH0KIAogdm9pZCBXZWJQ
YWdlOjpzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWVjMjgxN2QzNjk3YzM2YTNhMjFhYzYxNjJl
ODdmMDljMWI4NmI4Mi4uNDc2Zjg1N2UwNjY3MDFjYjU0MGUyOGIwNTE3YWZmZGE2NjQwYTI0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQ5Niw3
ICsxNDk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtUmVpbml0aWFsaXplKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybURldGFjaCgpOwogICAgIHZvaWQgZ2V0UGxhdGZvcm1FZGl0b3JTdGF0
ZShXZWJDb3JlOjpGcmFtZSYsIEVkaXRvclN0YXRlJikgY29uc3Q7Ci0gICAgYm9vbCBwbGF0Zm9y
bU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3RhdGUoY29uc3QgV2ViQ29yZTo6RnJhbWUmKSBjb25zdDsK
KyAgICBib29sIHJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShjb25zdCBXZWJD
b3JlOjpGcmFtZSYpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1XaWxsUGVyZm9ybUVkaXRpbmdD
b21tYW5kKCk7CiAgICAgdm9pZCBzZW5kRWRpdG9yU3RhdGVVcGRhdGUoKTsKICAgICB2b2lkIGdl
dFBsYXRmb3JtRWRpdG9yU3RhdGVDb21tb24oY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBFZGl0b3JT
dGF0ZSYpIGNvbnN0OwpAQCAtMTkyMCw2ICsxOTIwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNv
bnN1bWVOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgVmVjdG9yPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4mKTsKIAogICAgIGJvb2wgaGFzUGVuZGluZ0VkaXRvclN0YXRl
VXBkYXRlKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRBdm9pZENvbXB1dGluZ1Bvc3RMYXlvdXRE
YXRhRm9yRWRpdG9yU3RhdGUoKSBjb25zdDsKIAogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKIApAQCAtMjE2NSw5ICsyMTY2LDEwIEBAIHByaXZhdGU6CiAgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHM7CiAKICAgICBib29sIG1fdXNlcklzSW50ZXJhY3RpbmcgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRy
YW5zaXRpb24geyBmYWxzZSB9OwogCiAjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgYm9vbCBtX2hh
c0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlv
biB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250
cm9sc01hbmFnZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVz
c2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNOZXZl
clJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIgeyBmYWxzZSB9OwogI2VuZGlmCkBAIC0yMzgwLDgg
KzIzODIsMTIgQEAgcHJpdmF0ZToKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogaW5saW5l
IHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1XaWxsUGVyZm9ybUVkaXRpbmdDb21tYW5kKCkgeyB9Ci1p
bmxpbmUgYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3RhdGUoY29u
c3QgV2ViQ29yZTo6RnJhbWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQoraW5saW5lIGJvb2wg
V2ViUGFnZTo6cmVxdWlyZXNQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlKGNvbnN0IFdlYkNv
cmU6OkZyYW1lJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIGlubGluZSB2b2lkIFdlYlBhZ2U6
OnByZXBhcmVUb1J1bk1vZGFsSmF2YVNjcmlwdERpYWxvZygpIHsgfQogI2VuZGlmCiAKKyNpZiAh
UExBVEZPUk0oTUFDKQoraW5saW5lIGJvb2wgV2ViUGFnZTo6c2hvdWxkQXZvaWRDb21wdXRpbmdQ
b3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYjM3N2Q2NDRhYWZjNTI2NGYz
MDQ2YmQxODI1MDM2OWI2NjgwMGViMS4uN2JhYjQ5Mjc1ZTJmY2U3NzI4MjBjZjExNWZiOTJlZDg1
MmJiMzgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTI1MCw3ICsyNTAsNyBAQCBib29sIFdlYlBhZ2U6OmlzVHJhbnNw
YXJlbnRPckZ1bGx5Q2xpcHBlZChjb25zdCBFbGVtZW50JiBlbGVtZW50KSBjb25zdAogICAgIHJl
dHVybiByZW5kZXJlci0+aGFzTm9uRW1wdHlWaXNpYmxlUmVjdFJlc3BlY3RpbmdQYXJlbnRGcmFt
ZXMoKTsKIH0KIAotYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybU5lZWRzTGF5b3V0Rm9yRWRpdG9yU3Rh
dGUoY29uc3QgRnJhbWUmIGZyYW1lKSBjb25zdAorYm9vbCBXZWJQYWdlOjpyZXF1aXJlc1Bvc3RM
YXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoY29uc3QgRnJhbWUmIGZyYW1lKSBjb25zdAogewogICAg
IC8vIElmIHdlIGhhdmUgYSBjb21wb3NpdGlvbiBvciBhcmUgdXNpbmcgYSBoYXJkd2FyZSBrZXli
b2FyZCB0aGVuIHdlIG5lZWQgdG8gc2VuZCB0aGUgZnVsbAogICAgIC8vIGVkaXRvciBzbyB0aGF0
IHRoZSBVSVByb2Nlc3MgY2FuIHVwZGF0ZSBVSSwgaW5jbHVkaW5nIHRoZSBwb3NpdGlvbiBvZiB0
aGUgY2FyZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCmluZGV4IDA5NmZiMjEyODE2NGM5MWJlNjllNTA5MGJlNmVlZTc3MWFlNTll
ZmIuLmM1ZWFkOTRkOTE5OWVhZDVkOTRmMTUxYTk3ZTkxOTI1NTZlMjJkZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0x
MDg0LDYgKzEwODQsMjAgQEAgdm9pZCBXZWJQYWdlOjpkaWRFbmRNYWduaWZpY2F0aW9uR2VzdHVy
ZSgpCiAjZW5kaWYKIH0KIAorYm9vbCBXZWJQYWdlOjpzaG91bGRBdm9pZENvbXB1dGluZ1Bvc3RM
YXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoKSBjb25zdAoreworICAgIGlmIChtX25lZWRzRm9udEF0
dHJpYnV0ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9yZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAobV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNp
bmNlUGFnZVRyYW5zaXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0
cnVlOworfQorCiAjaWYgSEFWRShBUFBfQUNDRU5UX0NPTE9SUykKIAogdm9pZCBXZWJQYWdlOjpz
ZXRBY2NlbnRDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438144</attachid>
            <date>2021-09-14 08:37:58 -0700</date>
            <delta_ts>2021-09-14 13:36:18 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-230204-20210914083757.patch</filename>
            <type>text/plain</type>
            <size>17318</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMzA5OGIzNWM5NjI1
YzI1ZDcwYTNkMWZhODc0NDc1MTY3YjQxNS4uYTY2MmIzZTFlMzU2MzgwMWRmZmRhMDFiMmY5NjEz
MzQ0YTk2MTUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQXZv
aWQgY29tcHV0aW5nIHBvc3QtbGF5b3V0IEVkaXRvclN0YXRlIGRhdGEgdW5sZXNzIG5lY2Vzc2Fy
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMjA0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzA3ODcxMz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjppc0VkaXRhYmxlIGNvbnN0KTogTWFyayB0aGlzIGdldHRlciBgY29uc3RgLgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6aXNFZGl0YWJsZSk6IERlbGV0ZWQuCisKIDIwMjEtMDktMTMgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSAt
dG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uOiBtZW51IGl0ZW0gdmFsaWRhdGlvbiBz
aG91bGRuJ3QgcmVxdWlyZSBwb3N0LWxheW91dCBlZGl0b3Igc3RhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzk0
MDdhMDY2MDgwMDA5NzYwMDEwMzQ2Y2Y2MTk4ODViNGMzZDU5OS4uNzc5NTJkNzFjZmFhNzM4NzJl
ZTViNDEwYTE5NTViNzUzYzM3YTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAyMS0w
OS0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIEF2b2lkIGNvbXB1dGluZyBwb3N0LWxheW91dCBFZGl0b3JTdGF0ZSBkYXRhIHVubGVz
cyBuZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDIwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMwNzg3MTM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGNvZGVwYXRo
IG9uIG1hY09TIHRoYXQgYWxsb3dzIHVzIHRvIGVudGlyZWx5IGF2b2lkIHBvc3QtbGF5b3V0IEVk
aXRvclN0YXRlIGNvbXB1dGF0aW9uIGluIHRoZSBjYXNlCisgICAgICAgIHdoZXJlIGl0J3Mgbm90
IG5lZWRlZCBmb3IgYW55dGhpbmc7IGluIHBhcnRpY3VsYXIsIHVubGVzcyB0aGUgdGV4dCB0b3Vj
aCBiYXIgbWF5IGJlIHByZXNlbnRlZCBvciB0aGUgVUkgZGVsZWdhdGUKKyAgICAgICAgaW1wbGVt
ZW50cyB0aGUgYC13ZWJWaWV3OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOmAgbWV0aG9kLCB0aGUg
cG9zdC1sYXlvdXQgcG9ydGlvbiBvZiBFZGl0b3JTdGF0ZSBpcyBub3QgbmVlZGVkCisgICAgICAg
IGF0IGFsbC4KKworICAgICAgICBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIFBsdW1iIGEgYml0IGlu
ZGljYXRpbmcgd2hldGhlciB1c2VyIGludGVyYWN0aW9uIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRv
IHNob3cgdGhlIHRleHQgdG91Y2ggYmFyLiBTZWUKKyAgICAgICAgYFdlYlBhZ2U6OnNob3VsZEF2
b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZWAgYmVsb3cgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjplZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUVk
aXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCk6CisKKyAgICAgICAgV2hl
biBjb21wdXRpbmcgYEVkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlYCwgdXNlIFZpc2libGVT
ZWxlY3Rpb24ncyBgaGFzRWRpdGFibGVTdHlsZWAgbWV0aG9kIGluc3RlYWQgb2YKKyAgICAgICAg
YGlzQ29udGVudEVkaXRhYmxlYC4gVW5saWtlIHRoZSBsYXR0ZXIsIHRoZSBmb3JtZXIgZG9lcyBu
b3QgdHJpZ2dlciBzdHlsZSByZXNvbHV0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRpZFN0YXJ0UGFnZVRyYW5zaXRpb24pOgorCisgICAgICAgIE1ha2UgYSBzbGlnaHQgYWRqdXN0
bWVudCB0byBvbmx5IHNldCB0aGUgYG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50
ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uYCBiaXQgaWYKKyAgICAgICAgdGhlIHVzZXIgaXMg
YWN0dWFsbHkgaW50ZXJhY3Rpbmcgd2l0aCB0ZXh0IGZvcm0gY29udHJvbCBvciBlZGl0YWJsZSBl
bGVtZW50LiBUaGlzIGFsbG93cyB1cyB0byBzdGlsbCBhdm9pZAorICAgICAgICBjb21wdXRpbmcg
cG9zdC1sYXlvdXQgZWRpdG9yIHN0YXRlIGRhdGEgaW4gY2FzZXMgd2hlcmUgdGhlIHVzZXIgaGFz
IGNsaWNrZWQgb24gbm9uLWVkaXRhYmxlIGVsZW1lbnRzIG9uIHRoZQorICAgICAgICBwYWdlLCBz
dWNoIHRoYXQgdGV4dCBlZGl0aW5nIGNvbnRyb2xzIGluIHRoZSB0b3VjaCBiYXIgYXJlIHN0aWxs
IG5vdCBiZWluZyBzaG93bi4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDaGFuZ2VT
ZWxlY3Rpb25Pck92ZXJmbG93U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzZW5kRWRpdG9yU3RhdGVVcGRhdGUpOgorCisgICAgICAgIERvbid0IGJvdGhlciBzY2hl
ZHVsaW5nIGFub3RoZXIgcG9zdC1sYXlvdXQgRWRpdG9yU3RhdGUgaW4gdGhlIGNhc2Ugd2hlcmUg
cG9zdC1sYXlvdXQgZGF0YSBpcyBtaXNzaW5nLCBidXQgd2UncmUKKyAgICAgICAgYXZvaWRpbmcg
cG9zdC1sYXlvdXQgZGF0YSBjb21wdXRhdGlvbiBhbHRvZ2V0aGVyIGR1ZSB0byBgc2hvdWxkQXZv
aWRDb21wdXRpbmdQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlYAorICAgICAgICByZXR1cm5p
bmcgYHRydWVgLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWlyZXNQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0
YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQXZvaWRDb21wdXRp
bmdQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cGxhdGZvcm1OZWVkc0xheW91dEZvckVkaXRvclN0YXRlIGNvbnN0KTogRGVsZXRl
ZC4KKworICAgICAgICBSZW5hbWUgdGhpcyB0byBgcmVxdWlyZXNQb3N0TGF5b3V0RGF0YUZvckVk
aXRvclN0YXRlYCwgdG8gYXZvaWQgc29tZSBjb25mdXNpb24gd2l0aCB0aGUgbmV3IG1ldGhvZCwK
KyAgICAgICAgYHNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0
ZWAuIFRoZSBmb3JtZXIgaXMgYSB3YXkgZm9yIHBsYXRmb3JtcyB0byBpbmRpY2F0ZSB0aGF0IHBv
c3QtCisgICAgICAgIGxheW91dCBkYXRhICptdXN0KiBiZSBpbmNsdWRlZCwgZXZlbiBpZiBsYXlv
dXQgaXMgbm90IHVwIHRvIGRhdGUgeWV0IHVwb24gY29tcHV0aW5nIHRoZSBFZGl0b3JTdGF0ZS4g
VGhlIGxhdHRlcgorICAgICAgICBpcyBhIHdheSBmb3IgcGxhdGZvcm1zIHRvIGluZGljYXRlIHRo
YXQgd2UgY2FuIGNvbXBsZXRlbHkgYXZvaWQgYWxsIHBvc3QtbGF5b3V0IGVkaXRvciBzdGF0ZSBj
b21wdXRhdGlvbiwKKyAgICAgICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBsYXlvdXQg
aXMgdXAgdG8gZGF0ZS4KKworICAgICAgICBCeSBkZWZhdWx0LCBpZiBib3RoIG9mIHRoZSBhYm92
ZSBtZXRob2RzIHJldHVybiBgZmFsc2VgLCB3ZSBjb21wdXRlIGFuZCBpbmNsdWRlIHBvc3QtbGF5
b3V0IGRhdGEgb25seSBpZiBsYXlvdXQKKyAgICAgICAgaXMgdXAtdG8tZGF0ZSB3aGVuIGNvbXB1
dGluZyB0aGUgRWRpdG9yU3RhdGUsIGFuZCBzY2hlZHVsZSBhIHN1YnNlcXVlbnQgImZ1bGwiIEVk
aXRvclN0YXRlIHVwZGF0ZSBhZnRlciB0aGUKKyAgICAgICAgbmV4dCByZW5kZXJpbmcgdXBkYXRl
IGluIHRoZSBjYXNlIHdoZXJlIGxheW91dCB3YXMgKm5vdCogdXAtdG8tZGF0ZSBhbHJlYWR5IChp
bmRpY2F0ZWQgYnkgdGhlIEVkaXRvclN0YXRlJ3MKKyAgICAgICAgYGlzTWlzc2luZ1Bvc3RMYXlv
dXREYXRhYCBmbGFnKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWlyZXNQb3N0TGF5b3V0RGF0
YUZvckVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZv
cm1OZWVkc0xheW91dEZvckVkaXRvclN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBj
b25zdCk6CisKKyAgICAgICAgT25seSByZXR1cm4gYHRydWVgIGhlcmUgaWYgdGhlIHVzZXIgaW50
ZXJhY3Rpb24gcmVxdWlyZW1lbnRzIGZvciBzaG93aW5nIHRleHQgZWRpdGluZyBjb250cm9scyBv
biB0aGUgdG91Y2ggYmFyCisgICAgICAgIGhhdmUgbm90IGJlZW4gbWV0LCBhbmQgdGhlIFVJIGRl
bGVnYXRlIG1ldGhvZCBmb3Igb2JzZXJ2aW5nIGZvbnQgYXR0cmlidXRlcyBpcyBhbHNvIG5vdCBp
bXBsZW1lbnRlZCBieSB0aGUKKyAgICAgICAgY2xpZW50LgorCiAyMDIxLTA5LTEzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIC1bV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRy
b2xzTWFuYWdlcjpdIHRvIHVzZSBBUEk6OlBhZ2VDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IGM2OWY3YWQyOWMzMGQ1MTE2NTYxYTMzMWM1NzE3MjEyYzA3MmMzMTMuLjRmOWNkY2ExYmY5
YzM5NjZjM2E2NmJmNmY1MmIwODUwNGY1OGM2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02MjgsNyAr
NjI4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4TnVtYmVyT2ZGcmFtZXMg
PSAxMDAwOwogCiAgICAgdm9pZCBzZXRFZGl0YWJsZShib29sIGlzRWRpdGFibGUpIHsgbV9pc0Vk
aXRhYmxlID0gaXNFZGl0YWJsZTsgfQotICAgIGJvb2wgaXNFZGl0YWJsZSgpIHsgcmV0dXJuIG1f
aXNFZGl0YWJsZTsgfQorICAgIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNF
ZGl0YWJsZTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxp
dHlTdGF0ZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQW5pbWF0aW5n
SW1hZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCmluZGV4IGQ2NmY5MWE4NTFiODdiNmVmNGRlNGRlZjI4Yjg3NjY5ZGJiMDU1
ZWUuLmFkNDExYjgwNjI5OGE0Yjg1ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0x
ODksNiArMTg5LDEwIEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAg
ICAgZW5jb2RlciA8PCBhcHBIaWdobGlnaHRzVmlzaWJsZTsKICNlbmRpZgorCisjaWYgSEFWRShU
T1VDSF9CQVIpCisgICAgZW5jb2RlciA8PCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29u
dHJvbHNNYW5hZ2VyOworI2VuZGlmCiB9CiAKIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKQEAgLTYwOCw2ICs2MTIsMTEgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9C
QVIpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnJlcXVpcmVzVXNlckFjdGlv
bkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworI2VuZGlmCisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDk2ODI0OGQ0MzJm
NjQ1MWUwZDJjMjlmN2EzNDBiMDY3NDE3MjlmNzAuLjk4ZGY0NmNmYTRhMjE0ZDc4MTAxNzQzYmIz
ZThlYTAwODNmNDMzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI2NCw3ICsyNjQsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMgewogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBXZWJDb3Jl
OjpIaWdobGlnaHRWaXNpYmlsaXR5IGFwcEhpZ2hsaWdodHNWaXNpYmxlIHsgV2ViQ29yZTo6SGln
aGxpZ2h0VmlzaWJpbGl0eTo6SGlkZGVuIH07CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoVE9V
Q0hfQkFSKQorICAgIGJvb2wgcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFu
YWdlciB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNWMzNzU0MTc5NGI3OTdk
N2Y1MzEwY2MzNzRkZjA1ZjBlOTZjMDA5Yy4uZTJiMjQzN2ExYmFhNzA0NTI1ZjU0YmJiOTYyYjQ2
N2UzNDg0YjAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC04MzQ2LDYgKzgzNDYsMTAgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJv
eHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0
ZXJzLmFwcEhpZ2hsaWdodHNWaXNpYmxlID0gYXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IEhp
Z2hsaWdodFZpc2liaWxpdHk6OlZpc2libGUgOiBIaWdobGlnaHRWaXNpYmlsaXR5OjpIaWRkZW47
CiAjZW5kaWYKIAorI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIHBhcmFtZXRlcnMucmVxdWlyZXNV
c2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciA9IG1fY29uZmlndXJhdGlvbi0+cmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcigpOworI2VuZGlmCisKICAg
ICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA1MjZmMjEwN2YyY2M2MDg2ZWUxMzFiODA1NjM3NmNmYmE0
NjliOGQ1Li4zOWViY2Y2MzlhMzdkMzgxYTAyZmNmMWI0NmVhYzBhZTIyM2JkYjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTE1LDYgKzUx
NSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAsIG1fcGFnZVNjcm9sbGVkSHlzdGVy
ZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBB
TDo6SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGluZygpOyB9LCBw
YWdlU2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAg
ICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpCisjaWYgSEFWRShUT1VD
SF9CQVIpCisgICAgLCBtX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFn
ZXIocGFyYW1ldGVycy5yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
KQorI2VuZGlmCiAjaWYgRU5BQkxFKE1FVEFfVklFV1BPUlQpCiAgICAgLCBtX2ZvcmNlQWx3YXlz
VXNlclNjYWxhYmxlKHBhcmFtZXRlcnMuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMpCiAjZW5k
aWYKQEAgLTEyMjgsNyArMTIzMSw3IEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRl
KFNob3VsZFBlcmZvcm1MYXlvdXQgc2hvdWxkUGVyZm9ybUxheW91dCkgY29uc3QKICAgICByZXN1
bHQuaWRlbnRpZmllciA9IG1fbGFzdEVkaXRvclN0YXRlSWRlbnRpZmllci5pbmNyZW1lbnQoKTsK
ICAgICByZXN1bHQuc2VsZWN0aW9uSXNOb25lID0gc2VsZWN0aW9uLmlzTm9uZSgpOwogICAgIHJl
c3VsdC5zZWxlY3Rpb25Jc1JhbmdlID0gc2VsZWN0aW9uLmlzUmFuZ2UoKTsKLSAgICByZXN1bHQu
aXNDb250ZW50RWRpdGFibGUgPSBzZWxlY3Rpb24uaXNDb250ZW50RWRpdGFibGUoKTsKKyAgICBy
ZXN1bHQuaXNDb250ZW50RWRpdGFibGUgPSBzZWxlY3Rpb24uaGFzRWRpdGFibGVTdHlsZSgpOwog
ICAgIHJlc3VsdC5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSA9IHNlbGVjdGlvbi5pc0NvbnRlbnRS
aWNobHlFZGl0YWJsZSgpOwogICAgIHJlc3VsdC5pc0luUGFzc3dvcmRGaWVsZCA9IHNlbGVjdGlv
bi5pc0luUGFzc3dvcmRGaWVsZCgpOwogICAgIHJlc3VsdC5oYXNDb21wb3NpdGlvbiA9IGVkaXRv
ci5oYXNDb21wb3NpdGlvbigpOwpAQCAtMTI0Myw3ICsxMjQ2LDE0IEBAIEVkaXRvclN0YXRlIFdl
YlBhZ2U6OmVkaXRvclN0YXRlKFNob3VsZFBlcmZvcm1MYXlvdXQgc2hvdWxkUGVyZm9ybUxheW91
dCkgY29uc3QKICAgICAgICAgcmVzdWx0LnNlbGVjdGlvbklzUmFuZ2VJbnNpZGVJbWFnZU92ZXJs
YXkgPSBzZWxlY3Rpb25SYW5nZSAmJiBIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFnZU92ZXJsYXko
KnNlbGVjdGlvblJhbmdlKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkUGVyZm9ybUxheW91dCA9
PSBTaG91bGRQZXJmb3JtTGF5b3V0OjpZZXMgfHwgcGxhdGZvcm1OZWVkc0xheW91dEZvckVkaXRv
clN0YXRlKGZyYW1lKSkKKyAgICBtX2xhc3RFZGl0b3JTdGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSA9
IHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA/IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6
OlllcyA6IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6Ok5vOworCisgICAgaWYgKHNob3Vs
ZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpKSB7CisgICAgICAg
IGdldFBsYXRmb3JtRWRpdG9yU3RhdGUoZnJhbWUsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorCisgICAgaWYgKHNob3VsZFBlcmZvcm1MYXlvdXQgPT0gU2hvdWxkUGVy
Zm9ybUxheW91dDo6WWVzIHx8IHJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShm
cmFtZSkpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsgLy8gTWF5IGNhdXNlIGRv
Y3VtZW50IGRlc3RydWN0aW9uCiAKICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0gZG9jdW1lbnQt
PnZpZXcoKTsgZnJhbWVWaWV3ICYmICFmcmFtZVZpZXctPm5lZWRzTGF5b3V0KCkpIHsKQEAgLTEy
NjAsOCArMTI3MCw2IEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRlKFNob3VsZFBl
cmZvcm1MYXlvdXQgc2hvdWxkUGVyZm9ybUxheW91dCkgY29uc3QKIAogICAgIGdldFBsYXRmb3Jt
RWRpdG9yU3RhdGUoZnJhbWUsIHJlc3VsdCk7CiAKLSAgICBtX2xhc3RFZGl0b3JTdGF0ZVdhc0Nv
bnRlbnRFZGl0YWJsZSA9IHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSA/IEVkaXRvclN0YXRlSXND
b250ZW50RWRpdGFibGU6OlllcyA6IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6Ok5vOwot
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTMxMiw5ICsxMzIwLDEyIEBAIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlRWRpdG9yU3RhdGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlDaGFuZ2VkKCkK
ICAgICBpZiAobV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50RWRpdGFibGUgPT0gRWRpdG9yU3Rh
dGVJc0NvbnRlbnRFZGl0YWJsZTo6VW5zZXQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICho
YXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVm
IGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpKS0+Zm9jdXNlZE9y
TWFpbkZyYW1lKCk7Ci0gICAgRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSBlZGl0b3JTdGF0
ZUlzQ29udGVudEVkaXRhYmxlID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzQ29u
dGVudEVkaXRhYmxlKCkgPyBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpZZXMgOiBFZGl0
b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpObzsKLSAgICBpZiAobV9sYXN0RWRpdG9yU3RhdGVX
YXNDb250ZW50RWRpdGFibGUgIT0gZWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSkKKyAgICBh
dXRvIGlzRWRpdGFibGUgPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaGFzRWRpdGFi
bGVTdHlsZSgpID8gRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6WWVzIDogRWRpdG9yU3Rh
dGVJc0NvbnRlbnRFZGl0YWJsZTo6Tm87CisgICAgaWYgKG1fbGFzdEVkaXRvclN0YXRlV2FzQ29u
dGVudEVkaXRhYmxlICE9IGlzRWRpdGFibGUpCiAgICAgICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0
YXRlVXBkYXRlKCk7CiB9CiAKQEAgLTM1NDcsOCArMzU1OCw4IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
U3RhcnRQYWdlVHJhbnNpdGlvbigpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBoYXNQ
cmV2aW91c2x5Rm9jdXNlZER1ZVRvVXNlckludGVyYWN0aW9uID0gbV9oYXNFdmVyRm9jdXNlZEVs
ZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb247Ci0jZW5kaWYKICAg
ICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJh
bnNpdGlvbiA9IGZhbHNlOworI2VuZGlmCiAgICAgbV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50
RWRpdGFibGUgPSBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpVbnNldDsKIAogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTU5NjQsNyArNTk3NSw4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hhbmdl
U2VsZWN0aW9uT3JPdmVyZmxvd1Njcm9sbFBvc2l0aW9uKCkKIAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBib29sIGhhc1ByZXZpb3VzbHlGb2N1c2VkRHVlVG9Vc2VySW50ZXJhY3Rpb24gPSBtX2hh
c0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlv
bjsKLSAgICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQ
YWdlVHJhbnNpdGlvbiB8PSBtX3VzZXJJc0ludGVyYWN0aW5nOworICAgIGlmIChtX3VzZXJJc0lu
dGVyYWN0aW5nICYmIG1fZm9jdXNlZEVsZW1lbnQpCisgICAgICAgIG1faGFzRXZlckZvY3VzZWRF
bGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uID0gdHJ1ZTsKIAog
ICAgIGlmICghaGFzUHJldmlvdXNseUZvY3VzZWREdWVUb1VzZXJJbnRlcmFjdGlvbiAmJiBtX2hh
c0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlv
bikgewogI2lmIEhBVkUoVE9VQ0hfQkFSKQpAQCAtNjUxMSw4ICs2NTIzLDcgQEAgdm9pZCBXZWJQ
YWdlOjpzZW5kRWRpdG9yU3RhdGVVcGRhdGUoKQogICAgIC8vIG5leHQgbGF5ZXIgdHJlZSBjb21t
aXQgdG8gY29tcHV0ZSBhbmQgc2VuZCB0aGUgY29tcGxldGUgRWRpdG9yU3RhdGUgb3Zlci4KICAg
ICBhdXRvIHN0YXRlID0gZWRpdG9yU3RhdGUoKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkVkaXRvclN0YXRlQ2hhbmdlZChzdGF0ZSkpOwotCi0gICAgaWYgKHN0YXRlLmlzTWlz
c2luZ1Bvc3RMYXlvdXREYXRhKQorICAgIGlmIChzdGF0ZS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0
YSAmJiAhc2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRlKCkp
CiAgICAgICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWMyODE3ZDM2OTdjMzZh
M2EyMWFjNjE2MmU4N2YwOWMxYjg2YjgyLi40NzZmODU3ZTA2NjcwMWNiNTQwZTI4YjA1MTdhZmZk
YTY2NDBhMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1SZWluaXRp
YWxpemUoKTsKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAgICAgdm9pZCBnZXRQbGF0Zm9y
bUVkaXRvclN0YXRlKFdlYkNvcmU6OkZyYW1lJiwgRWRpdG9yU3RhdGUmKSBjb25zdDsKLSAgICBi
b29sIHBsYXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZShjb25zdCBXZWJDb3JlOjpGcmFt
ZSYpIGNvbnN0OworICAgIGJvb2wgcmVxdWlyZXNQb3N0TGF5b3V0RGF0YUZvckVkaXRvclN0YXRl
KGNvbnN0IFdlYkNvcmU6OkZyYW1lJikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVdpbGxQZXJm
b3JtRWRpdGluZ0NvbW1hbmQoKTsKICAgICB2b2lkIHNlbmRFZGl0b3JTdGF0ZVVwZGF0ZSgpOwog
ICAgIHZvaWQgZ2V0UGxhdGZvcm1FZGl0b3JTdGF0ZUNvbW1vbihjb25zdCBXZWJDb3JlOjpGcmFt
ZSYsIEVkaXRvclN0YXRlJikgY29uc3Q7CkBAIC0xOTIwLDYgKzE5MjAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBW
ZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYpOwogCiAgICAgYm9vbCBoYXNQZW5kaW5n
RWRpdG9yU3RhdGVVcGRhdGUoKSBjb25zdDsKKyAgICBib29sIHNob3VsZEF2b2lkQ29tcHV0aW5n
UG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpIGNvbnN0OwogCiAgICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCkBAIC0yMTY1LDkgKzIxNjYsMTAgQEAgcHJpdmF0
ZToKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IG1fdmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0czsKIAogICAgIGJvb2wgbV91c2VySXNJbnRlcmFjdGluZyB7IGZhbHNl
IH07Ci0gICAgYm9vbCBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9u
U2luY2VQYWdlVHJhbnNpdGlvbiB7IGZhbHNlIH07CiAKICNpZiBIQVZFKFRPVUNIX0JBUikKKyAg
ICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBh
Z2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcmVxdWlyZXNVc2VyQWN0aW9uRm9y
RWRpdGluZ0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzVG91Y2hCYXJV
cGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhciB7IGZhbHNlIH07CiAjZW5kaWYK
QEAgLTIzODAsOCArMjM4MiwxMiBAQCBwcml2YXRlOgogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCiBpbmxpbmUgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybVdpbGxQZXJmb3JtRWRpdGluZ0NvbW1h
bmQoKSB7IH0KLWlubGluZSBib29sIFdlYlBhZ2U6OnBsYXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0
b3JTdGF0ZShjb25zdCBXZWJDb3JlOjpGcmFtZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Citp
bmxpbmUgYm9vbCBXZWJQYWdlOjpyZXF1aXJlc1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUo
Y29uc3QgV2ViQ29yZTo6RnJhbWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogaW5saW5lIHZv
aWQgV2ViUGFnZTo6cHJlcGFyZVRvUnVuTW9kYWxKYXZhU2NyaXB0RGlhbG9nKCkgeyB9CiAjZW5k
aWYKIAorI2lmICFQTEFURk9STShNQUMpCitpbmxpbmUgYm9vbCBXZWJQYWdlOjpzaG91bGRBdm9p
ZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBiMzc3ZDY0
NGFhZmM1MjY0ZjMwNDZiZDE4MjUwMzY5YjY2ODAwZWIxLi43YmFiNDkyNzVlMmZjZTc3MjgyMGNm
MTE1ZmI5MmVkODUyYmIzODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjUwLDcgKzI1MCw3IEBAIGJvb2wgV2ViUGFn
ZTo6aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0CiAgICAgcmV0dXJuIHJlbmRlcmVyLT5oYXNOb25FbXB0eVZpc2libGVSZWN0UmVzcGVjdGlu
Z1BhcmVudEZyYW1lcygpOwogfQogCi1ib29sIFdlYlBhZ2U6OnBsYXRmb3JtTmVlZHNMYXlvdXRG
b3JFZGl0b3JTdGF0ZShjb25zdCBGcmFtZSYgZnJhbWUpIGNvbnN0Citib29sIFdlYlBhZ2U6OnJl
cXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShjb25zdCBGcmFtZSYgZnJhbWUpIGNv
bnN0CiB7CiAgICAgLy8gSWYgd2UgaGF2ZSBhIGNvbXBvc2l0aW9uIG9yIGFyZSB1c2luZyBhIGhh
cmR3YXJlIGtleWJvYXJkIHRoZW4gd2UgbmVlZCB0byBzZW5kIHRoZSBmdWxsCiAgICAgLy8gZWRp
dG9yIHNvIHRoYXQgdGhlIFVJUHJvY2VzcyBjYW4gdXBkYXRlIFVJLCBpbmNsdWRpbmcgdGhlIHBv
c2l0aW9uIG9mIHRoZSBjYXJldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggMDk2ZmIyMTI4MTY0YzkxYmU2OWU1MDkwYmU2
ZWVlNzcxYWU1OWVmYi4uYzVlYWQ5NGQ5MTk5ZWFkNWQ5NGYxNTFhOTdlOTE5MjU1NmUyMmRmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0KQEAgLTEwODQsNiArMTA4NCwyMCBAQCB2b2lkIFdlYlBhZ2U6OmRpZEVuZE1hZ25pZmlj
YXRpb25HZXN0dXJlKCkKICNlbmRpZgogfQogCitib29sIFdlYlBhZ2U6OnNob3VsZEF2b2lkQ29t
cHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1f
bmVlZHNGb250QXR0cmlidXRlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFt
X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlcklu
dGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBIQVZFKEFQUF9BQ0NFTlRfQ09MT1JTKQogCiB2b2lk
IFdlYlBhZ2U6OnNldEFjY2VudENvbG9yKFdlYkNvcmU6OkNvbG9yIGNvbG9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438162</attachid>
            <date>2021-09-14 13:36:19 -0700</date>
            <delta_ts>2021-09-14 15:43:06 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-230204-20210914133618.patch</filename>
            <type>text/plain</type>
            <size>18642</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uNjYzM2Y1MjMwMTcxZmJmNDgxZWVkYzc4NmRhM2E4
NWUwYWQ2MmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gQXZv
aWQgY29tcHV0aW5nIHBvc3QtbGF5b3V0IEVkaXRvclN0YXRlIGRhdGEgdW5sZXNzIG5lY2Vzc2Fy
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMjA0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzA3ODcxMz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgU2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6aXNFZGl0YWJsZSBjb25zdCk6IE1hcmsgdGhpcyBnZXR0ZXIgYGNvbnN0YC4KKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OmlzRWRpdGFibGUpOiBEZWxldGVkLgorCiAyMDIxLTA5LTE0ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIElubGluZURp
c3BsYXlDb250ZW50QnVpbGRlciBzaG91bGQgbm90IG9wZXJhdGUgb24gdGhlIGdsb2JhbCBpbmxp
bmUgcnVuIGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWJhNzI5OTUzZDNkZTJjNjg4NzkxNzI0MTBhMzQ4OWM1
ZGIzZGRhNy4uM2Q3ZWM1N2I1YTk4YWVhOWU0MGQ5YmViNzVkZTliOWFjYTI3NWI1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3NSBAQAorMjAyMS0wOS0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEF2b2lkIGNvbXB1dGluZyBwb3N0LWxh
eW91dCBFZGl0b3JTdGF0ZSBkYXRhIHVubGVzcyBuZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDIwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODMwNzg3MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisg
ICAgICAgIEFkZCBhIG5ldyBjb2RlcGF0aCBvbiBtYWNPUyB0aGF0IGFsbG93cyB1cyB0byBlbnRp
cmVseSBhdm9pZCBwb3N0LWxheW91dCBFZGl0b3JTdGF0ZSBjb21wdXRhdGlvbiBpbiB0aGUgY2Fz
ZQorICAgICAgICB3aGVyZSBpdCdzIG5vdCBuZWVkZWQgZm9yIGFueXRoaW5nOyBpbiBwYXJ0aWN1
bGFyLCB1bmxlc3MgdGhlIHRleHQgdG91Y2ggYmFyIG1heSBiZSBwcmVzZW50ZWQgb3IgdGhlIFVJ
IGRlbGVnYXRlCisgICAgICAgIGltcGxlbWVudHMgdGhlIGAtd2ViVmlldzpkaWRDaGFuZ2VGb250
QXR0cmlidXRlczpgIG1ldGhvZCwgdGhlIHBvc3QtbGF5b3V0IHBvcnRpb24gb2YgRWRpdG9yU3Rh
dGUgaXMgbm90IG5lZWRlZAorICAgICAgICBhdCBhbGwuCisKKyAgICAgICAgU2VlIGJlbG93IGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KworICAgICAgICBQbHVtYiBhIGJpdCBpbmRpY2F0aW5nIHdoZXRoZXIgdXNlciBpbnRlcmFjdGlv
biBpcyByZXF1aXJlZCBpbiBvcmRlciB0byBzaG93IHRoZSB0ZXh0IHRvdWNoIGJhci4gU2VlCisg
ICAgICAgIGBXZWJQYWdlOjpzaG91bGRBdm9pZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRp
dG9yU3RhdGVgIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZWRpdG9yU3RhdGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZFZGl0YWJpbGl0
eUNoYW5nZWQpOgorCisgICAgICAgIFdoZW4gY29tcHV0aW5nIGBFZGl0b3JTdGF0ZS5pc0NvbnRl
bnRFZGl0YWJsZWAsIHVzZSBWaXNpYmxlU2VsZWN0aW9uJ3MgYGhhc0VkaXRhYmxlU3R5bGVgIG1l
dGhvZCBpbnN0ZWFkIG9mCisgICAgICAgIGBpc0NvbnRlbnRFZGl0YWJsZWAuIFVubGlrZSB0aGUg
bGF0dGVyLCB0aGUgZm9ybWVyIGRvZXMgbm90IHRyaWdnZXIgc3R5bGUgcmVzb2x1dGlvbi4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0aW9uKToKKworICAg
ICAgICBNYWtlIGEgc2xpZ2h0IGFkanVzdG1lbnQgdG8gb25seSBzZXQgdGhlIGBtX2hhc0V2ZXJG
b2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbmAgYml0
IGlmCisgICAgICAgIHRoZSB1c2VyIGlzIGFjdHVhbGx5IGludGVyYWN0aW5nIHdpdGggdGV4dCBm
b3JtIGNvbnRyb2wgb3IgZWRpdGFibGUgZWxlbWVudC4gVGhpcyBhbGxvd3MgdXMgdG8gc3RpbGwg
YXZvaWQKKyAgICAgICAgY29tcHV0aW5nIHBvc3QtbGF5b3V0IGVkaXRvciBzdGF0ZSBkYXRhIGlu
IGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBjbGlja2VkIG9uIG5vbi1lZGl0YWJsZSBlbGVtZW50
cyBvbiB0aGUKKyAgICAgICAgcGFnZSwgc3VjaCB0aGF0IHRleHQgZWRpdGluZyBjb250cm9scyBp
biB0aGUgdG91Y2ggYmFyIGFyZSBzdGlsbCBub3QgYmVpbmcgc2hvd24uCisKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uT3JPdmVyZmxvd1Njcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZEVkaXRvclN0YXRlVXBkYXRlKToKKwor
ICAgICAgICBEb24ndCBib3RoZXIgc2NoZWR1bGluZyBhbm90aGVyIHBvc3QtbGF5b3V0IEVkaXRv
clN0YXRlIGluIHRoZSBjYXNlIHdoZXJlIHBvc3QtbGF5b3V0IGRhdGEgaXMgbWlzc2luZywgYnV0
IHdlJ3JlCisgICAgICAgIGF2b2lkaW5nIHBvc3QtbGF5b3V0IGRhdGEgY29tcHV0YXRpb24gYWx0
b2dldGhlciBkdWUgdG8gYHNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0
b3JTdGF0ZWAKKyAgICAgICAgcmV0dXJuaW5nIGB0cnVlYC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVpcmVz
UG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtTmVlZHNMYXlvdXRGb3JF
ZGl0b3JTdGF0ZSBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVuYW1lIHRoaXMgdG8gYHJl
cXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZWAsIHRvIGF2b2lkIHNvbWUgY29uZnVz
aW9uIHdpdGggdGhlIG5ldyBtZXRob2QsCisgICAgICAgIGBzaG91bGRBdm9pZENvbXB1dGluZ1Bv
c3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGVgLiBUaGUgZm9ybWVyIGlzIGEgd2F5IGZvciBwbGF0
Zm9ybXMgdG8gaW5kaWNhdGUgdGhhdCBwb3N0LQorICAgICAgICBsYXlvdXQgZGF0YSAqbXVzdCog
YmUgaW5jbHVkZWQsIGV2ZW4gaWYgbGF5b3V0IGlzIG5vdCB1cCB0byBkYXRlIHlldCB1cG9uIGNv
bXB1dGluZyB0aGUgRWRpdG9yU3RhdGUuIFRoZSBsYXR0ZXIKKyAgICAgICAgaXMgYSB3YXkgZm9y
IHBsYXRmb3JtcyB0byBpbmRpY2F0ZSB0aGF0IHdlIGNhbiBjb21wbGV0ZWx5IGF2b2lkIGFsbCBw
b3N0LWxheW91dCBlZGl0b3Igc3RhdGUgY29tcHV0YXRpb24sCisgICAgICAgIHJlZ2FyZGxlc3Mg
b2Ygd2hldGhlciBvciBub3QgbGF5b3V0IGlzIHVwIHRvIGRhdGUuCisKKyAgICAgICAgQnkgZGVm
YXVsdCwgaWYgYm90aCBvZiB0aGUgYWJvdmUgbWV0aG9kcyByZXR1cm4gYGZhbHNlYCwgd2UgY29t
cHV0ZSBhbmQgaW5jbHVkZSBwb3N0LWxheW91dCBkYXRhIG9ubHkgaWYgbGF5b3V0CisgICAgICAg
IGlzIHVwLXRvLWRhdGUgd2hlbiBjb21wdXRpbmcgdGhlIEVkaXRvclN0YXRlLCBhbmQgc2NoZWR1
bGUgYSBzdWJzZXF1ZW50ICJmdWxsIiBFZGl0b3JTdGF0ZSB1cGRhdGUgYWZ0ZXIgdGhlCisgICAg
ICAgIG5leHQgcmVuZGVyaW5nIHVwZGF0ZSBpbiB0aGUgY2FzZSB3aGVyZSBsYXlvdXQgd2FzICpu
b3QqIHVwLXRvLWRhdGUgYWxyZWFkeSAoaW5kaWNhdGVkIGJ5IHRoZSBFZGl0b3JTdGF0ZSdzCisg
ICAgICAgIGBpc01pc3NpbmdQb3N0TGF5b3V0RGF0YWAgZmxhZykuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtTmVlZHNMYXlvdXRGb3JFZGl0b3JTdGF0ZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaG91bGRBdm9pZENvbXB1dGluZ1Bvc3RM
YXlvdXREYXRhRm9yRWRpdG9yU3RhdGUgY29uc3QpOgorCisgICAgICAgIE9ubHkgcmV0dXJuIGB0
cnVlYCBoZXJlIGlmIHRoZSB1c2VyIGludGVyYWN0aW9uIHJlcXVpcmVtZW50cyBmb3Igc2hvd2lu
ZyB0ZXh0IGVkaXRpbmcgY29udHJvbHMgb24gdGhlIHRvdWNoIGJhcgorICAgICAgICBoYXZlIG5v
dCBiZWVuIG1ldCwgYW5kIHRoZSBVSSBkZWxlZ2F0ZSBtZXRob2QgZm9yIG9ic2VydmluZyBmb250
IGF0dHJpYnV0ZXMgaXMgYWxzbyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlCisgICAgICAgIGNsaWVu
dC4KKwogMjAyMS0wOS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjc0OTI5KTogW0Nvb3JkaW5hdGVkR3JhcGhpY3Nd
IERyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljczo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25p
dG9yIGlzIG5vIGxvbmdlciB1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGM2OWY3YWQyOWMzMGQ1MTE2
NTYxYTMzMWM1NzE3MjEyYzA3MmMzMTMuLjRmOWNkY2ExYmY5YzM5NjZjM2E2NmJmNmY1MmIwODUw
NGY1OGM2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02MjgsNyArNjI4LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCBpbnQgbWF4TnVtYmVyT2ZGcmFtZXMgPSAxMDAwOwogCiAgICAgdm9pZCBz
ZXRFZGl0YWJsZShib29sIGlzRWRpdGFibGUpIHsgbV9pc0VkaXRhYmxlID0gaXNFZGl0YWJsZTsg
fQotICAgIGJvb2wgaXNFZGl0YWJsZSgpIHsgcmV0dXJuIG1faXNFZGl0YWJsZTsgfQorICAgIGJv
b2wgaXNFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNFZGl0YWJsZTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGQ2
NmY5MWE4NTFiODdiNmVmNGRlNGRlZjI4Yjg3NjY5ZGJiMDU1ZWUuLmFkNDExYjgwNjI5OGE0Yjg1
ZTg3ODViYmY0NzVmZjJkOTNjZjE3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xODksNiArMTg5LDEwIEBAIHZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiAgICAgZW5jb2RlciA8PCBhcHBIaWdo
bGlnaHRzVmlzaWJsZTsKICNlbmRpZgorCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgZW5jb2Rl
ciA8PCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOworI2VuZGlm
CiB9CiAKIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTYwOCw2
ICs2MTIsMTEgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLnJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXIpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisKICAgICByZXR1
cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDk2ODI0OGQ0MzJmNjQ1MWUwZDJjMjlmN2EzNDBiMDY3
NDE3MjlmNzAuLjk4ZGY0NmNmYTRhMjE0ZDc4MTAxNzQzYmIzZThlYTAwODNmNDMzODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTI2NCw3ICsyNjQsMTAgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogI2lm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKICAgICBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5
IGFwcEhpZ2hsaWdodHNWaXNpYmxlIHsgV2ViQ29yZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eTo6SGlk
ZGVuIH07CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIGJvb2wgcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNWMzNzU0MTc5NGI3OTdkN2Y1MzEwY2MzNzRkZjA1ZjBlOTZj
MDA5Yy4uZTJiMjQzN2ExYmFhNzA0NTI1ZjU0YmJiOTYyYjQ2N2UzNDg0YjAwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MzQ2LDYgKzgzNDYsMTAgQEAg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVy
cyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLmFwcEhpZ2hsaWdodHNWaXNp
YmxlID0gYXBwSGlnaGxpZ2h0c1Zpc2liaWxpdHkoKSA/IEhpZ2hsaWdodFZpc2liaWxpdHk6OlZp
c2libGUgOiBIaWdobGlnaHRWaXNpYmlsaXR5OjpIaWRkZW47CiAjZW5kaWYKIAorI2lmIEhBVkUo
VE9VQ0hfQkFSKQorICAgIHBhcmFtZXRlcnMucmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0Nv
bnRyb2xzTWFuYWdlciA9IG1fY29uZmlndXJhdGlvbi0+cmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlcigpOworI2VuZGlmCisKICAgICByZXR1cm4gcGFyYW1ldGVyczsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBlNDU0Zjk2Mzc2Y2RkYTkyYmRiMzNmZmRlZDdjZTBhZmNkYzQ0YmJiLi4yZmNjMDkwMTdmNjJi
ZWE1YTFlZmVlZjQ0OWE4ZmZjMGY2ZDYxMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTE1LDYgKzUxNSw5IEBAIFdlYlBhZ2U6OldlYlBh
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICAgICAsIG1fcGFnZVNjcm9sbGVkSHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0
ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpT
dG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGluZygpOyB9LCBwYWdlU2Nyb2xsSHlzdGVyZXNpc0R1
cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVy
cy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgLCBtX2NhblJ1bk1vZGFsKHBh
cmFtZXRlcnMuY2FuUnVuTW9kYWwpCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgLCBtX3JlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIocGFyYW1ldGVycy5yZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyKQorI2VuZGlmCiAjaWYgRU5BQkxF
KE1FVEFfVklFV1BPUlQpCiAgICAgLCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKHBhcmFtZXRl
cnMuaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMpCiAjZW5kaWYKQEAgLTEyMjgsNyArMTIzMSw3
IEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRlKFNob3VsZFBlcmZvcm1MYXlvdXQg
c2hvdWxkUGVyZm9ybUxheW91dCkgY29uc3QKICAgICByZXN1bHQuaWRlbnRpZmllciA9IG1fbGFz
dEVkaXRvclN0YXRlSWRlbnRpZmllci5pbmNyZW1lbnQoKTsKICAgICByZXN1bHQuc2VsZWN0aW9u
SXNOb25lID0gc2VsZWN0aW9uLmlzTm9uZSgpOwogICAgIHJlc3VsdC5zZWxlY3Rpb25Jc1Jhbmdl
ID0gc2VsZWN0aW9uLmlzUmFuZ2UoKTsKLSAgICByZXN1bHQuaXNDb250ZW50RWRpdGFibGUgPSBz
ZWxlY3Rpb24uaXNDb250ZW50RWRpdGFibGUoKTsKKyAgICByZXN1bHQuaXNDb250ZW50RWRpdGFi
bGUgPSBzZWxlY3Rpb24uaGFzRWRpdGFibGVTdHlsZSgpOwogICAgIHJlc3VsdC5pc0NvbnRlbnRS
aWNobHlFZGl0YWJsZSA9IHNlbGVjdGlvbi5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpOwogICAg
IHJlc3VsdC5pc0luUGFzc3dvcmRGaWVsZCA9IHNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgp
OwogICAgIHJlc3VsdC5oYXNDb21wb3NpdGlvbiA9IGVkaXRvci5oYXNDb21wb3NpdGlvbigpOwpA
QCAtMTI0Myw3ICsxMjQ2LDE0IEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRlKFNo
b3VsZFBlcmZvcm1MYXlvdXQgc2hvdWxkUGVyZm9ybUxheW91dCkgY29uc3QKICAgICAgICAgcmVz
dWx0LnNlbGVjdGlvbklzUmFuZ2VJbnNpZGVJbWFnZU92ZXJsYXkgPSBzZWxlY3Rpb25SYW5nZSAm
JiBIVE1MRWxlbWVudDo6aXNJbnNpZGVJbWFnZU92ZXJsYXkoKnNlbGVjdGlvblJhbmdlKTsKICAg
ICB9CiAKLSAgICBpZiAoc2hvdWxkUGVyZm9ybUxheW91dCA9PSBTaG91bGRQZXJmb3JtTGF5b3V0
OjpZZXMgfHwgcGxhdGZvcm1OZWVkc0xheW91dEZvckVkaXRvclN0YXRlKGZyYW1lKSkKKyAgICBt
X2xhc3RFZGl0b3JTdGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSA9IHJlc3VsdC5pc0NvbnRlbnRFZGl0
YWJsZSA/IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6OlllcyA6IEVkaXRvclN0YXRlSXND
b250ZW50RWRpdGFibGU6Ok5vOworCisgICAgaWYgKHNob3VsZEF2b2lkQ29tcHV0aW5nUG9zdExh
eW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpKSB7CisgICAgICAgIGdldFBsYXRmb3JtRWRpdG9yU3Rh
dGUoZnJhbWUsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAg
aWYgKHNob3VsZFBlcmZvcm1MYXlvdXQgPT0gU2hvdWxkUGVyZm9ybUxheW91dDo6WWVzIHx8IHJl
cXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShmcmFtZSkpCiAgICAgICAgIGRvY3Vt
ZW50LT51cGRhdGVMYXlvdXQoKTsgLy8gTWF5IGNhdXNlIGRvY3VtZW50IGRlc3RydWN0aW9uCiAK
ICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsgZnJhbWVWaWV3ICYm
ICFmcmFtZVZpZXctPm5lZWRzTGF5b3V0KCkpIHsKQEAgLTEyNjAsOCArMTI3MCw2IEBAIEVkaXRv
clN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRlKFNob3VsZFBlcmZvcm1MYXlvdXQgc2hvdWxkUGVy
Zm9ybUxheW91dCkgY29uc3QKIAogICAgIGdldFBsYXRmb3JtRWRpdG9yU3RhdGUoZnJhbWUsIHJl
c3VsdCk7CiAKLSAgICBtX2xhc3RFZGl0b3JTdGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSA9IHJlc3Vs
dC5pc0NvbnRlbnRFZGl0YWJsZSA/IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6OlllcyA6
IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6Ok5vOwotCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApAQCAtMTMxMiw5ICsxMzIwLDEyIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlRWRpdG9yU3Rh
dGVBZnRlckxheW91dElmRWRpdGFiaWxpdHlDaGFuZ2VkKCkKICAgICBpZiAobV9sYXN0RWRpdG9y
U3RhdGVXYXNDb250ZW50RWRpdGFibGUgPT0gRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6
VW5zZXQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChoYXNQZW5kaW5nRWRpdG9yU3RhdGVV
cGRhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZiht
X3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgRWRp
dG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSBlZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlID0g
ZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzQ29udGVudEVkaXRhYmxlKCkgPyBFZGl0
b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpZZXMgOiBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRh
YmxlOjpObzsKLSAgICBpZiAobV9sYXN0RWRpdG9yU3RhdGVXYXNDb250ZW50RWRpdGFibGUgIT0g
ZWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSkKKyAgICBhdXRvIGlzRWRpdGFibGUgPSBmcmFt
ZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaGFzRWRpdGFibGVTdHlsZSgpID8gRWRpdG9yU3Rh
dGVJc0NvbnRlbnRFZGl0YWJsZTo6WWVzIDogRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZTo6
Tm87CisgICAgaWYgKG1fbGFzdEVkaXRvclN0YXRlV2FzQ29udGVudEVkaXRhYmxlICE9IGlzRWRp
dGFibGUpCiAgICAgICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiB9CiAKQEAg
LTM1NDUsMTAgKzM1NTYsMTAgQEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0aW9u
KCkKIHsKICAgICBmcmVlemVMYXllclRyZWUoTGF5ZXJUcmVlRnJlZXplUmVhc29uOjpQYWdlVHJh
bnNpdGlvbik7CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAg
Ym9vbCBoYXNQcmV2aW91c2x5Rm9jdXNlZER1ZVRvVXNlckludGVyYWN0aW9uID0gbV9oYXNFdmVy
Rm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb247Ci0j
ZW5kaWYKICAgICBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2lu
Y2VQYWdlVHJhbnNpdGlvbiA9IGZhbHNlOworI2VuZGlmCiAgICAgbV9sYXN0RWRpdG9yU3RhdGVX
YXNDb250ZW50RWRpdGFibGUgPSBFZGl0b3JTdGF0ZUlzQ29udGVudEVkaXRhYmxlOjpVbnNldDsK
IAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTU5NjIsMTIgKzU5NzMsMTIgQEAgdm9pZCBXZWJQYWdl
OjpkaWRDaGFuZ2VTZWxlY3Rpb25Pck92ZXJmbG93U2Nyb2xsUG9zaXRpb24oKQogICAgIGlmICht
X2lzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHkpCiAgICAgICAgIHJl
dHVybjsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBIQVZFKFRPVUNIX0JBUikKICAgICBib29s
IGhhc1ByZXZpb3VzbHlGb2N1c2VkRHVlVG9Vc2VySW50ZXJhY3Rpb24gPSBtX2hhc0V2ZXJGb2N1
c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbjsKLSAgICBt
X2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNp
dGlvbiB8PSBtX3VzZXJJc0ludGVyYWN0aW5nOworICAgIGlmIChtX3VzZXJJc0ludGVyYWN0aW5n
ICYmIG1fZm9jdXNlZEVsZW1lbnQpCisgICAgICAgIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVl
VG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uID0gdHJ1ZTsKIAogICAgIGlmICgh
aGFzUHJldmlvdXNseUZvY3VzZWREdWVUb1VzZXJJbnRlcmFjdGlvbiAmJiBtX2hhc0V2ZXJGb2N1
c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbikgewotI2lm
IEhBVkUoVE9VQ0hfQkFSKQogICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnF1aXJrcygp
LmlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoKSkgewog
ICAgICAgICAgICAgbV9pc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVuQ29udGVudEVk
aXRhYmxlID0gdHJ1ZTsKICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZShtX2lz
VG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUpKTsKQEAgLTU5
NzcsNyArNTk4OCw2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uT3JPdmVyZmxv
d1Njcm9sbFBvc2l0aW9uKCkKICAgICAgICAgICAgIG1faXNOZXZlclJpY2hseUVkaXRhYmxlRm9y
VG91Y2hCYXIgPSB0cnVlOwogICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihtX2lzTmV2ZXJSaWNobHlFZGl0
YWJsZUZvclRvdWNoQmFyKSk7CiAgICAgICAgIH0KLSNlbmRpZgogCiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SGFzSGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50
ZXJhY3Rpb24obV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNl
UGFnZVRyYW5zaXRpb24pKTsKICAgICB9CkBAIC01OTkxLDcgKzYwMDEsNyBAQCB2b2lkIFdlYlBh
Z2U6OmRpZENoYW5nZVNlbGVjdGlvbk9yT3ZlcmZsb3dTY3JvbGxQb3NpdGlvbigpCiAgICAgICAg
IGRpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYK
KyNlbmRpZiAvLyBIQVZFKFRPVUNIX0JBUikKIAogICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRl
VXBkYXRlKCk7CiB9CkBAIC02NTExLDggKzY1MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRFZGl0
b3JTdGF0ZVVwZGF0ZSgpCiAgICAgLy8gbmV4dCBsYXllciB0cmVlIGNvbW1pdCB0byBjb21wdXRl
IGFuZCBzZW5kIHRoZSBjb21wbGV0ZSBFZGl0b3JTdGF0ZSBvdmVyLgogICAgIGF1dG8gc3RhdGUg
PSBlZGl0b3JTdGF0ZSgpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RWRpdG9y
U3RhdGVDaGFuZ2VkKHN0YXRlKSk7Ci0KLSAgICBpZiAoc3RhdGUuaXNNaXNzaW5nUG9zdExheW91
dERhdGEpCisgICAgaWYgKHN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhICYmICFzaG91bGRB
dm9pZENvbXB1dGluZ1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoKSkKICAgICAgICAgc2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDFlYzI4MTdkMzY5N2MzNmEzYTIxYWM2MTYyZTg3
ZjA5YzFiODZiODIuLjQ3NmY4NTdlMDY2NzAxY2I1NDBlMjhiMDUxN2FmZmRhNjY0MGEyNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0OTYsNyAr
MTQ5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybVJlaW5pdGlhbGl6ZSgpOwogICAg
IHZvaWQgcGxhdGZvcm1EZXRhY2goKTsKICAgICB2b2lkIGdldFBsYXRmb3JtRWRpdG9yU3RhdGUo
V2ViQ29yZTo6RnJhbWUmLCBFZGl0b3JTdGF0ZSYpIGNvbnN0OwotICAgIGJvb2wgcGxhdGZvcm1O
ZWVkc0xheW91dEZvckVkaXRvclN0YXRlKGNvbnN0IFdlYkNvcmU6OkZyYW1lJikgY29uc3Q7Cisg
ICAgYm9vbCByZXF1aXJlc1Bvc3RMYXlvdXREYXRhRm9yRWRpdG9yU3RhdGUoY29uc3QgV2ViQ29y
ZTo6RnJhbWUmKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtV2lsbFBlcmZvcm1FZGl0aW5nQ29t
bWFuZCgpOwogICAgIHZvaWQgc2VuZEVkaXRvclN0YXRlVXBkYXRlKCk7CiAgICAgdm9pZCBnZXRQ
bGF0Zm9ybUVkaXRvclN0YXRlQ29tbW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgRWRpdG9yU3Rh
dGUmKSBjb25zdDsKQEAgLTE5MjAsNiArMTkyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25z
dW1lTmV0d29ya0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+Jik7CiAKICAgICBib29sIGhhc1BlbmRpbmdFZGl0b3JTdGF0ZVVw
ZGF0ZSgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0TGF5b3V0RGF0
YUZvckVkaXRvclN0YXRlKCkgY29uc3Q7CiAKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiAKQEAgLTIxNjUsOSArMjE2NiwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzOwogCiAgICAgYm9vbCBtX3VzZXJJc0ludGVyYWN0aW5nIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFu
c2l0aW9uIHsgZmFsc2UgfTsKIAogI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIGJvb2wgbV9oYXNF
dmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24g
eyBmYWxzZSB9OworICAgIGJvb2wgbV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJv
bHNNYW5hZ2VyIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNUb3VjaEJhclVwZGF0ZVN1cHJlc3Nl
ZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTmV2ZXJS
aWNobHlFZGl0YWJsZUZvclRvdWNoQmFyIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtMjM4MCw4ICsy
MzgyLDEyIEBAIHByaXZhdGU6CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGlubGluZSB2
b2lkIFdlYlBhZ2U6OnBsYXRmb3JtV2lsbFBlcmZvcm1FZGl0aW5nQ29tbWFuZCgpIHsgfQotaW5s
aW5lIGJvb2wgV2ViUGFnZTo6cGxhdGZvcm1OZWVkc0xheW91dEZvckVkaXRvclN0YXRlKGNvbnN0
IFdlYkNvcmU6OkZyYW1lJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KK2lubGluZSBib29sIFdl
YlBhZ2U6OnJlcXVpcmVzUG9zdExheW91dERhdGFGb3JFZGl0b3JTdGF0ZShjb25zdCBXZWJDb3Jl
OjpGcmFtZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBpbmxpbmUgdm9pZCBXZWJQYWdlOjpw
cmVwYXJlVG9SdW5Nb2RhbEphdmFTY3JpcHREaWFsb2coKSB7IH0KICNlbmRpZgogCisjaWYgIVBM
QVRGT1JNKE1BQykKK2lubGluZSBib29sIFdlYlBhZ2U6OnNob3VsZEF2b2lkQ29tcHV0aW5nUG9z
dExheW91dERhdGFGb3JFZGl0b3JTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGIzNzdkNjQ0YWFmYzUyNjRmMzA0
NmJkMTgyNTAzNjliNjY4MDBlYjEuLjdiYWI0OTI3NWUyZmNlNzcyODIwY2YxMTVmYjkyZWQ4NTJi
YjM4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0yNTAsNyArMjUwLDcgQEAgYm9vbCBXZWJQYWdlOjppc1RyYW5zcGFy
ZW50T3JGdWxseUNsaXBwZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3QKICAgICByZXR1
cm4gcmVuZGVyZXItPmhhc05vbkVtcHR5VmlzaWJsZVJlY3RSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCk7CiB9CiAKLWJvb2wgV2ViUGFnZTo6cGxhdGZvcm1OZWVkc0xheW91dEZvckVkaXRvclN0YXRl
KGNvbnN0IEZyYW1lJiBmcmFtZSkgY29uc3QKK2Jvb2wgV2ViUGFnZTo6cmVxdWlyZXNQb3N0TGF5
b3V0RGF0YUZvckVkaXRvclN0YXRlKGNvbnN0IEZyYW1lJiBmcmFtZSkgY29uc3QKIHsKICAgICAv
LyBJZiB3ZSBoYXZlIGEgY29tcG9zaXRpb24gb3IgYXJlIHVzaW5nIGEgaGFyZHdhcmUga2V5Ym9h
cmQgdGhlbiB3ZSBuZWVkIHRvIHNlbmQgdGhlIGZ1bGwKICAgICAvLyBlZGl0b3Igc28gdGhhdCB0
aGUgVUlQcm9jZXNzIGNhbiB1cGRhdGUgVUksIGluY2x1ZGluZyB0aGUgcG9zaXRpb24gb2YgdGhl
IGNhcmV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQppbmRleCAwOTZmYjIxMjgxNjRjOTFiZTY5ZTUwOTBiZTZlZWU3NzFhZTU5ZWZi
Li4xNzUxZjY5NGEwZmUxNzI3MWYxNTk1NDExZGQwNWFkNWYyMTc3NWQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMTA4
NCw2ICsxMDg0LDIxIEBAIHZvaWQgV2ViUGFnZTo6ZGlkRW5kTWFnbmlmaWNhdGlvbkdlc3R1cmUo
KQogI2VuZGlmCiB9CiAKK2Jvb2wgV2ViUGFnZTo6c2hvdWxkQXZvaWRDb21wdXRpbmdQb3N0TGF5
b3V0RGF0YUZvckVkaXRvclN0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAobV9uZWVkc0ZvbnRBdHRy
aWJ1dGVzKSB7CisgICAgICAgIC8vIEZvbnQgYXR0cmlidXRlIGluZm9ybWF0aW9uIGlzIHByb3Bh
Z2F0ZWQgdG8gdGhlIFVJIHByb2Nlc3MgdGhyb3VnaCBwb3N0LWxheW91dCBkYXRhIG9uIEVkaXRv
clN0YXRlLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFtX3JlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgfHwgbV9oYXNFdmVyRm9jdXNl
ZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNpbmNlUGFnZVRyYW5zaXRpb24pIHsKKyAgICAg
ICAgLy8gVGV4dCBlZGl0aW5nIGNvbnRyb2xzIG9uIHRoZSB0b3VjaCBiYXIgZGVwZW5kIG9uIGhh
dmluZyBwb3N0LWxheW91dCBlZGl0b3Igc3RhdGUgZGF0YS4KKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgSEFWRShBUFBfQUNDRU5UX0NP
TE9SUykKIAogdm9pZCBXZWJQYWdlOjpzZXRBY2NlbnRDb2xvcihXZWJDb3JlOjpDb2xvciBjb2xv
cikK
</data>

          </attachment>
      

    </bug>

</bugzilla>