<?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>192743</bug_id>
          
          <creation_ts>2018-12-15 13:30:20 -0800</creation_ts>
          <short_desc>Use warning-ignoring macros more consistently and simply</short_desc>
          <delta_ts>2018-12-17 15:29:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>guijemont</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488305</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 13:30:20 -0800</bug_when>
    <thetext>Use warning-ignoring macros more consistently and simply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488306</commentid>
    <comment_count>1</comment_count>
      <attachid>357405</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 13:45:13 -0800</bug_when>
    <thetext>Created attachment 357405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488323</commentid>
    <comment_count>2</comment_count>
      <attachid>357405</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-12-15 16:04:17 -0800</bug_when>
    <thetext>Comment on attachment 357405
Patch

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

r=me

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h:35
&gt; +    explicit WebAlternativeTextClient(WebView *);

Remove space between &quot;WebView&quot; and &quot;*&quot;.

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h:54
&gt; +    WebView *m_webView;

Shouldn&apos;t this be &quot;WebView* m_webView;&quot;?  Why move the placement of the space?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488324</commentid>
    <comment_count>3</comment_count>
      <attachid>357405</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 16:05:50 -0800</bug_when>
    <thetext>Comment on attachment 357405
Patch

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

&gt;&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h:35
&gt;&gt; +    explicit WebAlternativeTextClient(WebView *);
&gt; 
&gt; Remove space between &quot;WebView&quot; and &quot;*&quot;.

In this case, WebView is an Objective-C class name. Our coding style document says that we should format it this way.

&gt;&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h:54
&gt;&gt; +    WebView *m_webView;
&gt; 
&gt; Shouldn&apos;t this be &quot;WebView* m_webView;&quot;?  Why move the placement of the space?

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488328</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 16:16:29 -0800</bug_when>
    <thetext>Hmm, strangely the WebKit coding style guidelines on the website no longer say this. The now say “in non-C++ code” instead of having the rule depend on the type of the pointed-to object. I like the new guideline better, but I don’t remember the WebKit project discussion about making this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488329</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 16:21:00 -0800</bug_when>
    <thetext>I’ll make the changes you suggested, Mark. Not important either way, and I choose to interpret the wording in the latest draft of the document as a new guideline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488330</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 16:21:31 -0800</bug_when>
    <thetext>Committed r239255: &lt;https://trac.webkit.org/changeset/239255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488331</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-15 16:28:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/46757455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488587</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-12-17 14:00:15 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Hmm, strangely the WebKit coding style guidelines on the website no longer
&gt; say this. The now say “in non-C++ code” instead of having the rule depend on
&gt; the type of the pointed-to object. I like the new guideline better, but I
&gt; don’t remember the WebKit project discussion about making this change.

Looks like the language in guidelines never changed. The rule for pointers was added in almost the current form in r12863 13 years ago. The only change is that references are no longer mentioned for non-C++ code.

But it is also my memory that we always interpreted this as object type difference, not as file type difference. Given that .m files can become .mm ones, having a fle type difference doesn&apos;t make a lot of sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488629</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-12-17 15:29:39 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #8)
&gt; But it is also my memory that we always interpreted this as object type
&gt; difference, not as file type difference. Given that .m files can become .mm
&gt; ones, having a fle type difference doesn&apos;t make a lot of sense.

FWIW it definitely makes sense for C vs. C++ types. E.g. we always write e.g. WebKitWebView* in WebKit C++ code rather than WebKitWebView * as we do in the public headers. Style checker would rightly throw a fit otherwise.

.m vs. .mm may be an entirely different matter and the desirable behavior there might be different, of course.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357405</attachid>
            <date>2018-12-15 13:45:13 -0800</date>
            <delta_ts>2018-12-15 16:04:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192743-20181215134512.patch</filename>
            <type>text/plain</type>
            <size>36321</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NzA0NjNmNDZlM2NlZDg2M2Y3NTM5M2MyYjI0MDBlYjFlYTU5ODUwLi41YmUwN2RlOWI3YmEzY2Jk
ZDM5ZjM4ODU2Y2UyODA4NWJjOTk1MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIHdhcm5pbmctaWdub3JpbmcgbWFjcm9zIG1vcmUgY29uc2lzdGVudGx5IGFu
ZCBzaW1wbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Mjc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOiBVc2UgSUdOT1JFX1dBUk5JTkdTX0JFR0lO
L0VORCBpbnN0ZWFkIG9mCisgICAgICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTi9FTkQu
IE90aGVyIGNhbGxzaXRlcyBhcmUgdXNpbmcgdGhlIG5vbi1jbGFuZy1zcGVjaWZpYworICAgICAg
ICBvbmUgZm9yIHRoaXMgd2FybmluZywgImltcGxpY2l0LWZhbGx0aHJvdWdoIiwgYW5kIGl0IHNl
ZW1zIHRoZXJlIGlzIG5vIHNwZWNpYWwKKyAgICAgICAgbmVlZCB0byB1c2UgdGhlIGNsYW5nLXNw
ZWNpZmljIG9uZSBoZXJlLgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6IERpdHRvLCBi
dXQgaGVyZSBpdCdzICJtaXNzaW5nLW5vcmV0dXJuIi4iCisgICAgICAgICogdG9vbHMvQ29kZVBy
b2ZpbGluZy5jcHA6IERpdHRvLgorCiAyMDE4LTEyLTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBMaXRlcmFsUGFyc2VyIGhhcyBhIGJ1bmNoIG9mIHVzZXMgb2Yg
U3RyaW5nOjpmb3JtYXQgd2l0aCB1bnRydXN0ZWQgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5NmJkYjkwODc3MWJlZjA0
NjE1NGE4MjAzM2E0ZDg0YTNiNmQ5Mzk1Li4wZjlhOTg1NTQ0OGNjMWY5NzBiODVlNjIzNzhmYjU2
OGVmNmM2Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEyLTE1ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugd2FybmluZy1pZ25vcmluZyBtYWNyb3Mg
bW9yZSBjb25zaXN0ZW50bHkgYW5kIHNpbXBseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5oOiBVc2UgSUdOT1JFX1dBUk5J
TkdTX0JFR0lOIHJhdGhlciB0aGFuCisgICAgICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJ
TiBzaW5jZSB3ZSBkb24ndCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgZm9yCisgICAgICAgIG5vbi1j
bGFuZyBjb21waWxlcnMsIGluIHBhcnQgc2luY2UgdGhlIGNvZGUgaXMgYWxyZWFkeSBpbnNpZGUK
KyAgICAgICAgI2lmIENPTVBJTEVSKENMQU5HKSwgYnV0IGFsc28gYmVjYXVzZSBpdCB3b3VsZCBi
ZSBoYXJtbGVzcyB0byBpZ25vcmUgdGhpcworICAgICAgICB3YXJuaW5nIG9uIG5vbi1jbGFuZzsg
d2Ugc2hvdWxkIGFsbW9zdCBuZXZlciB1c2UgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOLgor
CiAyMDE4LTEyLTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBW
ZXJpZnkgc2l6ZSBpcyB2YWxpZCBpbiBVU0VfU1lTVEVNX01BTExPQyB2ZXJzaW9uIG9mIHRyeUFs
bG9jYXRlWmVyb2VkVmlydHVhbFBhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzZjM1YTA1YWZhNjE2M2Iy
ZWE0ZGUxMWRhZGUyMjdiMWZkNmE1MC4uYWYxMGRiN2YyMmQ0NWNhOWM4MWY0YTlmZWY4NzZhNzA4
MWE4ODFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTEyLTE1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugd2FybmluZy1pZ25vcmluZyBt
YWNyb3MgbW9yZSBjb25zaXN0ZW50bHkgYW5kIHNpbXBseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3Qu
bW06IFVzZSBJR05PUkVfV0FSTklOR1NfQkVHSU4gcmF0aGVyIHRoYW4KKyAgICAgICAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0JFR0lOIGhlcmUuIFRoZXJlIGlzIG5vIG5lZWQgdG8gY29tcGlsZSBP
YmplY3RpdmUtQysrCisgICAgICAgIGZpbGVzIGxpa2UgdGhpcyBvbmUgd2l0aCBub24tY2xhbmcg
Y29tcGlsZXJzLCBhbmQgbm8gbmVlZCB0byB3b3JyeSBhYm91dAorICAgICAgICB0aGVtIHdoZW4g
Y2hvb3NpbmcgdGhlIG1hY3JvLgorCisgICAgICAgICogY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FN
YWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHVibGljS2V5Q29tcG9uZW50cyk6IFVzZSBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTi9FTkQuCisKKyAgICAgICAgKiBjc3Mv
bWFrZXByb3AucGw6IFVzZSBJR05PUkVfV0FSTklOR1NfQkVHSU4vRU5ELCBvYnZpYXRpbmcgdGhl
IG5lZWQgZm9yCisgICAgICAgIHRoZSAidW5rbm93bi1wcmFnbWFzIiB0cmljaywgd2hpY2ggdGhl
IG1hY3JvIHNob3VsZCB0YWtlIGNhcmUgb2YuCisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZjogRGl0dG8uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vz
c2lvbjo6dXBkYXRlKTogVXNlIElHTk9SRV9XQVJOSU5HU19CRUdJTi9FTkQKKyAgICAgICAgKHNl
ZSByYXRpb25hbGUgYWJvdmUgZm9yIE9iamVjdGl2ZS1DKyspLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcyk6IFVzZQorICAgICAgICBBTExP
V19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOL0VORC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcyk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbTogVXNlIElHTk9SRV9XQVJOSU5HU19CRUdJ
Ti9FTkQKKyAgICAgICAgKHNlZSByYXRpb25hbGUgYWJvdmUgZm9yIE9iamVjdGl2ZS1DKyspLgor
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoLVtXZWJBVlBsYXllclZpZXdDb250cm9sbGVyIHNldFdlYktpdE92ZXJyaWRl
Um91dGVTaGFyaW5nUG9saWN5OnJvdXRpbmdDb250ZXh0VUlEOl0pOgorICAgICAgICBVc2UgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTi9FTkQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW06IFVzZSBJR05PUkVfV0FSTklOR1Nf
QkVHSU4vRU5ECisgICAgICAgIChzZWUgcmF0aW9uYWxlIGFib3ZlIGZvciBPYmplY3RpdmUtQysr
KS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8gY29uc3QpOiBVc2UKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4vRU5ELgorCiAyMDE4LTEyLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJUQ1J0cFNlbmRlci5zZXRQYXJhbWV0ZXJzIHRvIGFj
dGl2YXRlIHNwZWNpZmljIGVuY29kaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggNTNlNTAwODlm
YzUyMTJkZGJkMWFiYjJhOTYxMzI5MDg4NmJjZTRkMC4uOTUxZmYzMTI1ZGQyODE2ZDgxYzg2OTI4
YWRiYjkyNTMyZjYyNjVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTgtMTItMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSB3
YXJuaW5nLWlnbm9yaW5nIG1hY3JvcyBtb3JlIGNvbnNpc3RlbnRseSBhbmQgc2ltcGx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY29j
b2EvQVZLaXRTUEkuaDogVXNlIElHTk9SRV9XQVJOSU5HU19CRUdJTiBpbnN0ZWFkIG9mCisgICAg
ICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTjsgdGhlcmUgaXMgbm8gc3BlY2lhbCBuZWVk
IHRvIGFjY29tb2RhdGUKKyAgICAgICAgbm9uLWNsYW5nIGNvbXBpbGVycyBoZXJlLgorCiAyMDE4
LTEyLTExICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgZmVhdHVyZSBmbGFnIGZvciBDU1MgVHlwZWQgT00KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZTg4OGQ4YjBiMjM5M2M4ZjY0OTNiMTU4YmNlYTg0ZjViNTYxOTM1My4uYzkwYTAzOGUwMGVhNWVj
Mzk3NWNmNGQ5MzZlYTk3OTBmYzkyZGM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
OC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHdh
cm5pbmctaWdub3JpbmcgbWFjcm9zIG1vcmUgY29uc2lzdGVudGx5IGFuZCBzaW1wbHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0RyYXdpbmdWaWV3Lm1tOgorICAgICAgICAoLVtXS0RyYXdpbmdWaWV3IGluaXRXaXRoRW1i
ZWRkZWRWaWV3SUQ6d2ViUGFnZVByb3h5Ol0pOgorICAgICAgICBVc2UgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4vRU5ELgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9FVk9yZ2FuaXphdGlvbk5hbWVdKTogRGl0dG8uCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENs
aWVudC5oOiBVc2UKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOL0VORCBpbnN0ZWFkIG9m
IElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTi9FTkQKKyAgICAgICAgYmVjYXVzZSB0aGVyZSBp
cyBubyBuZWVkIHRvIGFjY29tb2RhdGUgbm9uLWNsYW5nIGNvbXBpbGVycyBoZXJlLgorICAgICAg
ICBBbHNvIHVzZSAjcHJhZ21hIG9uY2UsIGFkZCBhIG1pc3NpbmcgImV4cGxpY2l0IiwgYW5kIGZp
eCBjb25kaXRpb25hbHMuCisKIDIwMTgtMTItMTQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBidWlsZCB3aXRoIHJlY2Vu
dCBTREtzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDM1NzAyNTk4NjE0MzhkZmFm
NTQwODgyYzI2M2M5OTQ1YjEwOTllYTYuLmZiNWUyODU0NTgzZGRkMjEyM2FmMzZlZWFiNGFjY2Fm
ZDk1YWFjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNl
IHdhcm5pbmctaWdub3JpbmcgbWFjcm9zIG1vcmUgY29uc2lzdGVudGx5IGFuZCBzaW1wbHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRE9NL0RPTS5t
bTogVXNlIElHTk9SRV9XQVJOSU5HU19CRUdJTi9FTkQgaW5zdGVhZCBvZgorICAgICAgICBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4gc2luY2UgdGhlcmUgaXMgbm8gbmVlZCB0byBhY2NvbW9k
YXRlIG5vbi1jbGFuZworICAgICAgICBjb21waWxlcnMgaW4gT2JqZWN0aXZlLUMrKyBjb2RlLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6IFVz
ZSBJR05PUkVfV0FSTklOR1NfQkVHSU4vRU5ECisgICAgICAgIGluc3RlYWQgb2YgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0JFR0lOL0VORCBiZWNhdXNlIHRoZXJlIGlzIG5vIG5lZWQgdG8KKyAgICAg
ICAgYWNjb21vZGF0ZSBub24tY2xhbmcgY29tcGlsZXJzIGhlcmUuIEFsc28gdXNlICNwcmFnbWEg
b25jZSwgYWRkIGEgbWlzc2luZworICAgICAgICAiZXhwbGljaXQiIGFuZCBmaXggY29uZGl0aW9u
YWxzLgorCiAyMDE4LTEyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIE1ha2UgVGV4dElucHV0Q29udHJvbGxlci5sZWdhY3lBdHRyaWJ1dGVkU3RyaW5nIHRh
a2UgRE9NIG5vZGVzIGFuZCBvZmZzZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA2ZjVhODdjMGUwMzI3YjBhNzkyYzVkYjVh
MjNlZTZlZGExNGM2OTU2Li4xOGFlN2Q4MWJhOTJhZTFkYmQ0Yzg1MmViMDg0Zjk3NzhmNjZkMGZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTg3Niw3ICs4NzYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChO
b2RlKiBub2RlKQogCiAvLyBDbGFuZyBzaG91bGQgYWxsb3cgdW5yZWFjaGFibGUgW1tjbGFuZzo6
ZmFsbHRocm91Z2hdXSBpbiB0ZW1wbGF0ZSBmdW5jdGlvbnMgaWYgYW55IHRlbXBsYXRlIGV4cGFu
c2lvbiB1c2VzIGl0CiAvLyBodHRwOi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
MTkKLUlHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigiaW1wbGljaXQtZmFsbHRocm91Z2giKQor
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiB0ZW1wbGF0ZTxi
b29sIHN0cmljdD4KIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50
ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7CkBAIC0xMDA3LDcg
KzEwMDcsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVy
bmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAgICByZXR1cm4gSW52YWxp
ZEdQUlJlZzsKICAgICB9CiB9Ci1JR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECitJR05PUkVfV0FS
TklOR1NfRU5ECiAKIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMyKEVk
Z2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0KQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBmYTlhN2VkNDJhYWYxYWUzODNlYTU1YTQzYjFh
Y2ZjYTdiNWI2MGM3Li41OGYxOGU0NzU5NGU3Njg0NDkzNDc5ZWQzYjIxMjEzODIyOTFmYzkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtNzQsNyArNzQs
NyBAQCB2b2lkIGluaXRpYWxpemUoKQogI2VuZGlmIC8vIEVOQUJMRShDX0xPT1ApCiB9CiAKLUlH
Tk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2luZy1ub3JldHVybiIpCitJR05PUkVfV0FS
TklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQogdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0
aW9ucyhWTSYgdm0pCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTE4NCw2ICsxODQsNiBA
QCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICAgICAgU1RBVElDX0FT
U0VSVChBcml0aFByb2ZpbGU6Om9ic2VydmVkQmluYXJ5SW50TnVtYmVyKCkucmhzT2JzZXJ2ZWRU
eXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KLUlHTk9SRV9DTEFOR19XQVJOSU5HU19F
TkQKK0lHTk9SRV9XQVJOSU5HU19FTkQKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAKaW5kZXggZTQ0
ZGMzNDNiZTdhMzg2ZTM1ZWM1ZTA5ZWFhYmRlYWE2NzdkNDNjMy4uOTRlYmU4ZTJjYTdlMTg5Zjhm
NmQ4ZDVmNjRkOTBmOWQwNjFjOTdkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9Db2RlUHJvZmlsaW5nLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2xhdGlsZSBDb2RlUHJvZmls
ZSogQ29kZVByb2ZpbGluZzo6c19wcm9maWxlU3RhY2sgPSAwOwogQ29kZVByb2ZpbGluZzo6TW9k
ZSBDb2RlUHJvZmlsaW5nOjpzX21vZGUgPSBDb2RlUHJvZmlsaW5nOjpEaXNhYmxlZDsKIFdURjo6
TWV0YUFsbG9jYXRvclRyYWNrZXIqIENvZGVQcm9maWxpbmc6OnNfdHJhY2tlciA9IDA7CiAKLUlH
Tk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2luZy1ub3JldHVybiIpCitJR05PUkVfV0FS
TklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQogCiAjaWYgSEFWRShNQUNISU5FX0NPTlRF
WFQpCiAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gc3RhcnQgJiBzdG9wIHRoZSB0aW1lci4KQEAgLTYw
LDcgKzYwLDcgQEAgc3RhdGljIHZvaWQgc2V0UHJvZmlsZVRpbWVyKHVuc2lnbmVkIHVzZWMpCiB9
CiAjZW5kaWYKIAotSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAorSUdOT1JFX1dBUk5JTkdTX0VO
RAogCiAjaWYgSEFWRShNQUNISU5FX0NPTlRFWFQpCiBzdGF0aWMgdm9pZCBwcm9maWxpbmdUaW1l
cihpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCBmMTkzOTk2
ZjAwMmY0MWZkNmFhMzhjNWJhMmUxNDdjZjUwYzhkY2U4Li42NTBlNzY1NDFlNmU1ZGQ1YTA4MmYw
ZGE5OWQ1NGEyZjE5Nzk4M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCkBAIC02MTAsMTQgKzYxMCwxNCBA
QCBpbmxpbmUgdm9pZCBjb21waWxlckZlbmNlRm9yQ3Jhc2goKQogI2lmIENPTVBJTEVSKENMQU5H
KQogLy8gVGhpcyB3b3VsZCBiZSBhIG1hY3JvIGV4Y2VwdCB0aGF0IGl0cyB1c2Ugb2YgI3ByYWdt
YSB3b3JrcyBiZXN0IGFyb3VuZAogLy8gYSBmdW5jdGlvbi4gSGVuY2UgaXQgdXNlcyBtYWNybyBu
YW1pbmcgY29udmVudGlvbi4KLUlHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2luZy1u
b3JldHVybiIpCitJR05PUkVfV0FSTklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQogc3Rh
dGljIGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpCiB7CiAgICAgLy8gVGhp
cyAqTVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBp
dCdzIGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAgICAvLyBnb2luZy4KICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAor
SUdOT1JFX1dBUk5JTkdTX0VORAogI2Vsc2UKICNkZWZpbmUgVU5SRUFDSEFCTEVfRk9SX1BMQVRG
T1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCA1OGM0YzU2NDBjNGE0MjE1MGU4
ODNlZDkyNzJiNWRmM2QyMzFkOWNhLi40MjZlMDFkODU5MmRlYWE2MmNmMmExZTQ5YzRiOWU5NTZl
ZDRlZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktp
dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgK
QEAgLTM4LDkgKzM4LDkgQEAKICNlbmRpZgogCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckNvbnRy
b2xsZXIuaD4KLUlHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigib2JqYy1wcm9wZXJ0eS1uby1h
dHRyaWJ1dGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJvYmpjLXByb3BlcnR5LW5vLWF0dHJp
YnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckxheWVyVmlldy5oPgotSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAorSUdOT1JFX1dBUk5JTkdTX0VORAogI2ltcG9ydCA8QVZLaXQvQVZQbGF5
ZXJWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdD
b250cm9sbGVyX1dlYktpdE9ubHkuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDE4ZDAxM2NlZmYyODEyYmI5NTliYzk0ZjVjYmNjMzE5
MzQyNGU1NDEuLjg0MzRjZDRkNjVmMGY2Y2Y3NzgwOWFjODc5ZTY3Zjc1YmEyNGEwM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTcwMiwx
MiArNzAyLDEyIEBAIC0gKGlkKWF1dG9yZWxlYXNlCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLUlH
Tk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigib2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIikKK0lH
Tk9SRV9XQVJOSU5HU19CRUdJTigib2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIikKIC0gKHZvaWQp
ZGVhbGxvYwogewogICAgIHJldHVybjsKIH0KLUlHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKK0lH
Tk9SRV9XQVJOSU5HU19FTkQKIAogKyAoV2ViVW5kZWZpbmVkICopdW5kZWZpbmVkCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHAKaW5kZXggMTQyZjQz
OTkyYjkxODk2MDdlNzZhYzUwODkxMmYwOTJiMTRhZjAxNi4uZTM2ZmE3NmQyZTgzZDJmYWY5NTk1
ZGZmYjdkZDZhNDRiMWI4OTU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9LZXlSU0FNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvS2V5UlNBTWFjLmNwcApAQCAtNjIsMTAgKzYyLDkgQEAgc3RhdGljIENDQ3J5cHRvclN0YXR1
cyBnZXRQdWJsaWNLZXlDb21wb25lbnRzKENDUlNBQ3J5cHRvclJlZiByc2FLZXksIFZlY3Rvcjx1
aW4KIHsKICAgICBBU1NFUlQoQ0NSU0FHZXRLZXlUeXBlKHJzYUtleSkgPT0gY2NSU0FLZXlQdWJs
aWMgfHwgQ0NSU0FHZXRLZXlUeXBlKHJzYUtleSkgPT0gY2NSU0FLZXlQcml2YXRlKTsKICAgICBi
b29sIGtleUlzUHVibGljID0gQ0NSU0FHZXRLZXlUeXBlKHJzYUtleSkgPT0gY2NSU0FLZXlQdWJs
aWM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ1JTQUNyeXB0b3JSZWYgcHVibGljS2V5ID0g
a2V5SXNQdWJsaWMgPyByc2FLZXkgOiBDQ1JTQUNyeXB0b3JHZXRQdWJsaWNLZXlGcm9tUHJpdmF0
ZUtleShyc2FLZXkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgbW9kdWx1cy5yZXNpemUoMTYzODQpOwog
ICAgIHNpemVfdCBtb2R1bHVzTGVuZ3RoID0gbW9kdWx1cy5zaXplKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXBy
b3AucGwKaW5kZXggYzA1OTQ0Y2RhYWFlNmRiZGM3Nzc4MTQ4NjdhMDU1NDQxY2Y2YzY1NC4uZTRj
YjQ3NThiZWE4MWZlMWIwOTAyZGQyZmU5MWUyMDM1NjE0MmYwNiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJv
cC5wbApAQCAtMjQ4LDExICsyNDgsNyBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAotI2lmIGRlZmlu
ZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkIFwiLVd1bmtub3duLXByYWdtYXNcIgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoXCIKLSNlbmRpZgor
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKFwiaW1wbGljaXQtZmFsbHRocm91Z2hcIikKIAogLy8gT2xk
ZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4K
ICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTQyMSw5ICs0MTcsNyBAQCBwcmludCBHUEVSRiA8PCAiRU9G
IjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19FTkQK
IEVPRgogCiBjbG9zZSBHUEVSRjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtl
dmFsdWVzLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXggNmZjNjg0
YzM0ODI5N2U2MGMxNzU5Y2ZjMWQzMTFjZDhkYjA1YmQ1Mi4uZDFlODA5MGQ4MWQ2ZThjMWM2ZmQ4
ODcyZjBkMTZiMjc4ZTZjMjIxNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2
YWx1ZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAgLTc4LDEx
ICs3OCw3IEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgXCItV3Vua25vd24tcHJhZ21hc1wiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCBcIi1XaW1wbGljaXQtZmFsbHRocm91Z2hcIgotI2VuZGlmCitJR05PUkVfV0FSTklOR1Nf
QkVHSU4oXCJpbXBsaWNpdC1mYWxsdGhyb3VnaFwiKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBn
cGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3Rl
cgpAQCAtMTU1LDkgKzE1MSw3IEBAIFN0cmluZyBnZXRWYWx1ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJ
RCBpZCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18p
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19F
TkQKIEVPRgogY2xvc2UgR1BFUkY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbG9yRGF0YS5ncGVyZiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5n
cGVyZgppbmRleCAwYWMyOGQzYmE5YzJmMjcxZWUxOTc2NTcxNTFiNTgyODY3ZmVjNDNkLi41YWY3
OWMyMTgzMjU0MWI4MzViM2ExYWY5YmRiZDM2MDNmNDA3NDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmCkBAIC0yLDExICsyLDcgQEAKICNpbmNsdWRlICJIYXNoVG9v
bHMuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCitJR05PUkVfV0FSTklOR1NfQkVHSU4o
ImltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlr
ZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTE4
NCw2ICsxODAsNCBAQCBjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmluZENvbG9yKGNvbnN0IGNo
YXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
aWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYKK0lHTk9SRV9XQVJOSU5HU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IGUwMGY5NGRiNzc3MDY4YjM5ZDE1NTg1
MDg2ZDFkOTMwZWU5ZWVhOGYuLjk5Mjk0MzE1ZDg2MjQxYjE2OGYyOGFhNzJlZGRlMGQ5N2NmNGE3
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFt
U2Vzc2lvbi5tbQpAQCAtMTk4LDExICsxOTgsMTEgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1T
ZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQK
IAogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjZXJ0aWZpY2F0ZURhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm1fY2VydGlmaWNhdGUtPmRhdGEoKSBsZW5ndGg6
bV9jZXJ0aWZpY2F0ZS0+bGVuZ3RoKCldKTsKIAotICAgICAgICBJR05PUkVfQ0xBTkdfV0FSTklO
R1NfQkVHSU4oIm9iamMtbGl0ZXJhbC1jb252ZXJzaW9uIikKKyAgICAgICAgSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIpCiAgICAgICAgIFN0cmluZyBzdG9y
YWdlUGF0aCA9IHRoaXMtPnN0b3JhZ2VQYXRoKCk7CiAgICAgICAgIGlmICghc3RvcmFnZVBhdGgu
aXNFbXB0eSgpICYmIFtnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IocmVtb3ZlUGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czp3aXRoQXBwSWRl
bnRpZmllcjpzdG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgICAgICBbZ2V0QVZTdHJl
YW1TZXNzaW9uQ2xhc3MoKSByZW1vdmVQZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzOkBbbV9l
eHBpcmVkU2Vzc2lvbi5nZXQoKV0gd2l0aEFwcElkZW50aWZpZXI6Y2VydGlmaWNhdGVEYXRhLmdl
dCgpIHN0b3JhZ2VEaXJlY3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQ
YXRoXV07Ci0gICAgICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdTX0VORAogICAgICAgICBtX2V4cGlyZWRTZXNzaW9uID0gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZWVlMzVl
MTRhOTM4NGY1ZjMzNWVhMTk1MjQwMmY2MDBmY2VmOWVmMC4uZDA1Nzg1Y2FlMzYxNmRmZmJlOTkz
OWUwM2RhNTE5M2M2OTE0OTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zMjcyLDkg
KzMyNzIsOCBAQCBzdGQ6Om9wdGlvbmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dgogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFn
bWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgorCiAg
ICAgYXV0byBtZXRyaWNzID0gW21fdmlkZW9MYXllciB2aWRlb1BlcmZvcm1hbmNlTWV0cmljc107
CiAgICAgaWYgKCFtZXRyaWNzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMzI5
MCw3ICszMjg5LDggQEAgc3RkOjpvcHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnYKICAgICAgICAgW21ldHJpY3Mg
dG90YWxGcmFtZURlbGF5XSwKICAgICAgICAgZGlzcGxheUNvbXBvc2l0ZWRGcmFtZXMsCiAgICAg
fTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKworICAgIEFMTE9XX05FV19BUElfV0lU
SE9VVF9HVUFSRFNfRU5ECiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IGQ3NzMyM2RmM2U4M2M4OWY4MmEwMTZiNjliMmM5Y2RhMjQwYTMyZDUuLjJiNTBjMWEwYjQ2
YzI5OGRmOGE1ZTg1ODBmZTU2ZDgwNjdhNjM3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTY1NywxMiArNjU3LDEwIEBAIHN0ZDo6b3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxp
dHlNZXRyaWNzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICB1aW50MzJfdCBkaXNwbGF5Q29tcG9zaXRlZEZy
YW1lcyA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1df
TkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIGlmIChbbWV0cmljcyByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG51bWJlck9mRGlzcGxheUNvbXBvc2l0ZWRWaWRlb0ZyYW1lcyld
KQogICAgICAgICBkaXNwbGF5Q29tcG9zaXRlZEZyYW1lcyA9IFttZXRyaWNzIG51bWJlck9mRGlz
cGxheUNvbXBvc2l0ZWRWaWRlb0ZyYW1lc107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIAogICAgIHJldHVybiBWaWRl
b1BsYXliYWNrUXVhbGl0eU1ldHJpY3MgewogICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
W21ldHJpY3MgdG90YWxOdW1iZXJPZlZpZGVvRnJhbWVzXSksCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQppbmRleCBmMmVmZmE0YzA2YWIxMjJiM2JhNTFlYWZi
MGI0NjBjMTk3N2Q0ODJkLi4yMGIwZDkyMWRiNDUyZGVlNTM4MmU2MjE2YjRiZTU0YzdlNWM0ZGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAgLTUy
LDcgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L1NvZnRMaW5raW5nLmg+CiAKLUlHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibnVsbGFiaWxp
dHktY29tcGxldGVuZXNzIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigibnVsbGFiaWxpdHktY29t
cGxldGVuZXNzIikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFT
UyhVSUtpdCwgVUlGb250KQpAQCAtNjIsNyArNjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJR3Jh
cGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQogU09GVF9M
SU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJ
bWFnZSAqLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VD
b250ZXh0LCB2b2lkLCAodm9pZCksICgpKQogCi1JR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECitJ
R05PUkVfV0FSTklOR1NfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tCmluZGV4IDRkYzg4MzJhY2IyY2FiMjJjMTZhNzQ3ZjZiNGY4YTIzMjc3MjRhYjQu
Ljk2MzNiM2NmMTlkMDlhNTI4OTA1M2RkMzdlMWQ5MjE3MDFmM2ZiNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KQEAgLTU4MywxMiArNTgzLDEwIEBAIC0gKEJPT0wpcGxheWVyVmlld0NvbnRy
b2xsZXJTaG91bGRIYW5kbGVEb25lQnV0dG9uVGFwOihBVlBsYXllclZpZXdDb250cm9sbGVyICop
CiAKIC0gKHZvaWQpc2V0V2ViS2l0T3ZlcnJpZGVSb3V0ZVNoYXJpbmdQb2xpY3k6KE5TVUludGVn
ZXIpcm91dGVTaGFyaW5nUG9saWN5IHJvdXRpbmdDb250ZXh0VUlEOihOU1N0cmluZyAqKXJvdXRp
bmdDb250ZXh0VUlECiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAg
QUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIGlmIChbX2F2UGxheWVyVmll
d0NvbnRyb2xsZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRXZWJLaXRPdmVycmlk
ZVJvdXRlU2hhcmluZ1BvbGljeTpyb3V0aW5nQ29udGV4dFVJRDopXSkKICAgICAgICAgW19hdlBs
YXllclZpZXdDb250cm9sbGVyIHNldFdlYktpdE92ZXJyaWRlUm91dGVTaGFyaW5nUG9saWN5OnJv
dXRlU2hhcmluZ1BvbGljeSByb3V0aW5nQ29udGV4dFVJRDpyb3V0aW5nQ29udGV4dFVJRF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dV
QVJEU19FTkQKIH0KIAogLSAodm9pZCllbnRlckZ1bGxTY3JlZW5BbmltYXRlZDooQk9PTClhbmlt
YXRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICog
X19udWxsYWJsZSBlcnJvcikpY29tcGxldGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQppbmRl
eCBhYzA4ZDFmYmRmMTEyYzY1ODg1YjljZDg5NWYyZWZlMTExNzNiYjYzLi4wNDQ2ZWY2NjE3YWI4
ODYzZWQ5OWQ2ZjBhMGZlODE2NzNlYzVmM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCkBAIC0zNCw3
ICszNCw4IEBACiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCi1JR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm51bGxhYmlsaXR5
LWNvbXBsZXRlbmVzcyIpCitJR05PUkVfV0FSTklOR1NfQkVHSU4oIm51bGxhYmlsaXR5LWNvbXBs
ZXRlbmVzcyIpCisKIFNPRlRfTElOS19GUkFNRVdPUksoQVZLaXQpCiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChB
VktpdCwgQVZUb3VjaEJhck1lZGlhU2VsZWN0aW9uT3B0aW9uKQpAQCAtMzQzLDkgKzM0NCw4IEBA
IC0gKHZvaWQpdG9nZ2xlUGljdHVyZUluUGljdHVyZQogICAgICAgICBfcGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCgpLT50b2dnbGVQaWN0dXJlSW5QaWN0
dXJlKCk7CiB9CiAKLUlHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKK0lHTk9SRV9XQVJOSU5HU19F
TkQKIAogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICYmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNv
dXJjZVJlc3BvbnNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQppbmRleCA4ZmU1MDViMjg5NDdjZmRlMGYyNzYz
NTBmNjY5ZDkyM2MxZDYyYWMyLi5mNmUyNDJiZDFkNDUxYjI2ZjczZDFlZjc3ZDQ5MmE2NWM5NjE3
MjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVzcG9uc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQpAQCAtOTcsMTAgKzk3LDkgQEAgQ2Vy
dGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkg
Y29uc3QKIAogICAgIGlmICh0cnVzdFJlc3VsdFR5cGUgPT0ga1NlY1RydXN0UmVzdWx0SW52YWxp
ZCkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBkZXByZWNhdGVkIDxyZGFyOi8vcHJvYmxl
bS80NTg5NDI4OD4uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIHJlc3VsdCA9IFNl
Y1RydXN0RXZhbHVhdGUodHJ1c3QsICZ0cnVzdFJlc3VsdFR5cGUpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBlcnJTZWNTdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tE
cmF3aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RyYXdpbmdWaWV3
Lm1tCmluZGV4IDUyMmQ5NWVlYzIxZTIwODk1YjA3OTRjNjk2NzhjNmQ0MmRkODNhYzUuLjg4NWZk
OTc4NTY0ODZiZWY2YmM5YTY4NGVjZTdmNTc4ZTc0YmE3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RyYXdpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0RyYXdpbmdWaWV3Lm1tCkBAIC02MCwxMCArNjAsMTAgQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRW1iZWRkZWRWaWV3SUQ6KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OkVtYmVkZGVkVmlld0lEKWUKICAgICBbX3BlbmNpbFZpZXcgc2V0RmluZ2VyRHJhd2luZ0VuYWJs
ZWQ6Tk9dOwogICAgIFtfcGVuY2lsVmlldyBzZXRVc2VySW50ZXJhY3Rpb25FbmFibGVkOllFU107
CiAgICAgW19wZW5jaWxWaWV3IHNldE9wYXF1ZTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIFtfcGVuY2lsVmlldyBzZXREcmF3aW5nRGVsZWdhdGU6c2VsZl07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9wZW5jaWxWaWV3LmdldCgpXTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVu
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXggOTM5YjVkMzU2MGZkZmNk
NDVjMzdlMDQxNjg2N2VjN2E5N2QwZjQzZi4uYWFiZTI4NGFiZGY1MTY2MjJkZDMwZTBhNDkxMDE5
NDVkY2I1MjI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxz
Y3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
SU9TLm1tCkBAIC05MDcsMTAgKzkwNyw5IEBAIC0gKE5TU3RyaW5nICopX0VWT3JnYW5pemF0aW9u
TmFtZQogICAgICAgICBTZWNUcnVzdFJlc3VsdFR5cGUgcmVzdWx0ID0ga1NlY1RydXN0UmVzdWx0
UHJvY2VlZDsKIAogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBkZXByZWNhdGVkIDxyZGFyOi8v
cHJvYmxlbS80NTg5NDI4OD4uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE9TU3Rh
dHVzIGVyciA9IFNlY1RydXN0RXZhbHVhdGUodHJ1c3QsICZyZXN1bHQpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgICAgICBpZiAoZXJyID09IG5vRXJyKQogICAgICAgICAgICAgaW5mb0RpY3Rpb25h
cnkgPSBbKF9fYnJpZGdlIE5TRGljdGlvbmFyeSAqKVNlY1RydXN0Q29weUluZm8odHJ1c3QpIGF1
dG9yZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRleCAwNzc1
ZTM1ZTk2YjE3ODg2NDI1YzdhMzM1ODBhZTYyMzE5NjIxYjc2Li5hMmYwNDI4YzdjZTg3Y2UwZWM3
NTRhOTUxNTJjNzgyNDFiMTA4MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVu
dC5oCkBAIC0yMyw5ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLQotI2lmbmRlZiBX
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnRfaAotI2RlZmluZSBXZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnRfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENs
aWVudC5oPgogCkBAIC0zNSw3ICszMyw3IEBAIGNsYXNzIFdlYlBhZ2U7CiAKIGNsYXNzIFdlYkFs
dGVybmF0aXZlVGV4dENsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDbGll
bnQgewogcHVibGljOgotICAgIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudChXZWJQYWdlICopOwor
ICAgIGV4cGxpY2l0IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudChXZWJQYWdlKik7CiAgICAgdmly
dHVhbCB+V2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KCk7CiAgICAgdm9pZCBwYWdlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQpAQCAtNDksMTYgKzQ3
LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50
NjRfdCBkaWN0YXRpb25Db250ZXh0KSBvdmVycmlkZTsKICAgICBWZWN0b3I8U3RyaW5nPiBkaWN0
YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKKwogcHJpdmF0ZToKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIElHTk9SRV9D
TEFOR19XQVJOSU5HU19CRUdJTigidW51c2VkLXByaXZhdGUtZmllbGQiKQorI2lmICEoVVNFKEFV
VE9DT1JSRUNUSU9OX1BBTkVMKSB8fCBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykpCisgICAg
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKLSAg
ICBXZWJQYWdlICptX3BhZ2U7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECisgICAgV2ViUGFnZSogbV9wYWdlOworI2lmICEoVVNFKEFVVE9D
T1JSRUNUSU9OX1BBTkVMKSB8fCBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykpCisgICAgSUdO
T1JFX1dBUk5JTkdTX0VORAogI2VuZGlmCiB9OwogCiB9Ci0KLSNlbmRpZiAvLyBXZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggNTVmOGE3
OTExNDhmNDcyOWI4NGRhNDk0OGMyNzQ5Y2YzYTgzYzNlNi4uZjg3ZTYxNTMzNzEyZjhlZWQ3MGNl
ZWI5ZTM4NjM1ZTNhYThmNGFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0y
NDQsNyArMjQ0LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViQ29yZUlu
dGVybmFsKQogCi1JR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm9iamMtcHJvdG9jb2wtbWV0
aG9kLWltcGxlbWVudGF0aW9uIikKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigib2JqYy1wcm90b2Nv
bC1tZXRob2QtaW1wbGVtZW50YXRpb24iKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7
CkBAIC0yNTgsNyArMjU4LDcgQEAgLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogICAgIHJldHVy
biBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCBbJUBdOiAlcD4iLCBbW3NlbGYgY2xh
c3NdIGRlc2NyaXB0aW9uXSwgW3NlbGYgbm9kZU5hbWVdLCBfaW50ZXJuYWxdOwogfQogCi1JR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklOR1NfRU5ECiAKIC0gKEJpbmRpbmdz
OjpSb290T2JqZWN0Kilfcm9vdE9iamVjdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQuaAppbmRleCA1ZmU1NGUyZjc0NWU3NDg0MDhhNTYyZTc2Mjc1ZTRkNTU0NzFjOWY4Li4zMjA2
MzAyYWY2N2NlYTgxMzc2YjYyNjMyYTNjOWFhNjFkNTNiZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaApAQCAtMjMsOSArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0KLSNpZm5kZWYgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50X2gKLSNkZWZpbmUgV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaW1wb3J0ICJDb3JyZWN0aW9uUGFu
ZWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+CkBAIC0zNCw3
ICszMiw3IEBACiAKIGNsYXNzIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpBbHRlcm5hdGl2ZVRleHRDbGllbnQgewogcHVibGljOgotICAgIFdlYkFsdGVybmF0aXZl
VGV4dENsaWVudChXZWJWaWV3ICopOworICAgIGV4cGxpY2l0IFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudChXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgfldlYkFsdGVybmF0aXZlVGV4dENsaWVudCgp
OwogICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogI2lmIFVTRShBVVRPQ09SUkVD
VElPTl9QQU5FTCkKQEAgLTQ4LDE3ICs0NiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVE
aWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgb3ZlcnJpZGU7
CiAgICAgVmVjdG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3Rh
dGlvbkNvbnRleHQpIG92ZXJyaWRlOwogI2VuZGlmCisKIHByaXZhdGU6Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLUlHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigidW51c2VkLXByaXZhdGUt
ZmllbGQiKQorI2lmICEoVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKSB8fCBVU0UoRElDVEFUSU9O
X0FMVEVSTkFUSVZFUykpCisgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnVzZWQtcHJpdmF0
ZS1maWVsZCIpCiAjZW5kaWYKLSAgICBXZWJWaWV3KiBtX3dlYlZpZXc7Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLUlHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKKyAgICBXZWJWaWV3ICptX3dl
YlZpZXc7CisjaWYgIShVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpIHx8IFVTRShESUNUQVRJT05f
QUxURVJOQVRJVkVTKSkKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAjZW5kaWYKKwogI2lmIFVT
RShBVVRPQ09SUkVDVElPTl9QQU5FTCkKICAgICBDb3JyZWN0aW9uUGFuZWwgbV9jb3JyZWN0aW9u
UGFuZWw7CiAjZW5kaWYKIH07Ci0KLSNlbmRpZiAvLyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnRf
aApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEy
YTI5OWY0YjczMDVlNDA5OTZmYzY0ZmRmNjgwYTBkYWQzZjliZGUuLjRmZTFmMTA4OTYxY2UyYzk3
Yjk5NzliNzAxOTYxZTg0NmNlZjZmOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHdhcm5pbmctaWdub3JpbmcgbWFj
cm9zIG1vcmUgY29uc2lzdGVudGx5IGFuZCBzaW1wbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1
Z0luL21haW4uY3BwOgorICAgICAgICAoaGFuZGxlRXZlbnRDYXJib24pOiBVc2UgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4vRU5ELgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXh0SW5wdXRDb250cm9sbGVyTWFjLm06CisgICAgICAgICgtW1RleHRJbnB1dENvbnRy
b2xsZXIgaW50ZXJwcmV0S2V5RXZlbnRzOndpdGhTZW5kZXI6XSk6IFVzZQorICAgICAgICBJR05P
UkVfV0FSTklOR1NfQkVHSU4vRU5ELgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW06CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNl
Rm9yY2VDbGljayk6IFVzZQorICAgICAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19CRUdJ
Ti9FTkQuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91
c2VGb3JjZUNsaWNrKTogRGl0dG8uCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlRm9yY2VEb3duKTogRGl0dG8uCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlRm9yY2VVcCk6IERpdHRvLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3Vz
ZUZvcmNlQ2hhbmdlZCk6IERpdHRvLgorCiAyMDE4LTEyLTE0ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHN0eWxlIGNoZWNrZXIgcnVsZSBmb3Ig
WGNvZGUgdmVyc2lvbiBtYWNyb3MgdXNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKaW5kZXggNGNkMWE2MjgwNTUzODE4OWU0MzUzZmE1MmQy
YjBiNTg1MjkyMjExOC4uOGQ4MmM0OTgxZjZlYTNkNWNlOGE2NzU5MWJmMmI1YmMyNmVmMGFmNSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4u
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNw
cApAQCAtNDcxLDE0ICs0NzEsOSBAQCBzdGF0aWMgaW50MTZfdCBoYW5kbGVFdmVudENhcmJvbihO
UFAgaW5zdGFuY2UsIFBsdWdpbk9iamVjdCogb2JqLCBFdmVudFJlY29yZCogZQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgbW91c2VEb3duOgogICAgICAgICAgICAgaWYgKG9iai0+
ZXZlbnRMb2dnaW5nKSB7Ci0jaWYgX19jbGFuZ19fCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0jZW5kaWYKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgIEdsb2JhbFRvTG9jYWwoJnB0KTsKLSNpZiBf
X2NsYW5nX18KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAg
IHBsdWdpbkxvZyhpbnN0YW5jZSwgIm1vdXNlRG93biBhdCAoJWQsICVkKSIsIHB0LmgsIHB0LnYp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG9iai0+ZXZhbHVhdGVTY3JpcHRPbk1v
dXNlRG93bk9yS2V5RG93biAmJiBvYmotPm1vdXNlRG93bkZvckV2YWx1YXRlU2NyaXB0KQpAQCAt
NDg2LDE0ICs0ODEsOSBAQCBzdGF0aWMgaW50MTZfdCBoYW5kbGVFdmVudENhcmJvbihOUFAgaW5z
dGFuY2UsIFBsdWdpbk9iamVjdCogb2JqLCBFdmVudFJlY29yZCogZQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgbW91c2VVcDoKICAgICAgICAgICAgIGlmIChvYmotPmV2ZW50TG9n
Z2luZykgewotI2lmIF9fY2xhbmdfXwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotI2VuZGlmCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgICAgICAgICBHbG9iYWxUb0xvY2FsKCZwdCk7Ci0jaWYgX19jbGFuZ19f
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICAgICAgICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgICAgICBwbHVnaW5M
b2coaW5zdGFuY2UsICJtb3VzZVVwIGF0ICglZCwgJWQpIiwgcHQuaCwgcHQudik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyTWFjLm0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVGV4dElucHV0Q29udHJvbGxlck1hYy5tCmluZGV4IDIyN2M5NjM3ZWFiMWE3ZTc5MDhjMWI4
YjY3MzJmOTk0NWExZjNjYTUuLmIxYjBkYjIzNmFlYmI0YzA0MDIxMzgwNjhmNzQxZGJiNTE2MjA5
OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9s
bGVyTWFjLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xs
ZXJNYWMubQpAQCAtNTQxLDEwICs1NDEsOSBAQCAtIChCT09MKWludGVycHJldEtleUV2ZW50czoo
TlNBcnJheSAqKWV2ZW50QXJyYXkgd2l0aFNlbmRlcjooV2ViSFRNTFZpZXcgKilzZW5kZQogICAg
IAogICAgIGlkIHJlc3VsdCA9IFtpbnB1dE1ldGhvZEhhbmRsZXIgY2FsbFdlYlNjcmlwdE1ldGhv
ZDpAImNhbGwiIHdpdGhBcmd1bWVudHM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czppbnB1dE1l
dGhvZEhhbmRsZXIsIGV2ZW50UGFyYW0sIG5pbF1dOwogICAgIGlmICghW3Jlc3VsdCByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJvb2xWYWx1ZSldIHx8ICFbcmVzdWx0IGJvb2xWYWx1ZV0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmRlY2xhcmVkLXNlbGVjdG9yIgorICAgICAgICBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInVuZGVjbGFyZWQtc2VsZWN0b3IiKQogICAgICAgICBbc2VuZGVyIGRvQ29tbWFu
ZEJ5U2VsZWN0b3I6QHNlbGVjdG9yKG5vb3A6KV07IC8vIEFwcEtpdCBzZW5kcyBub29wOiBpZiB0
aGUgaW1lIGRvZXMgbm90IGhhbmRsZSBhbiBldmVudAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgfQogCiAgICAgaW5wdXRNZXRo
b2RWaWV3ID0gbmlsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZl
bnRTZW5kZXJQcm94eS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVy
UHJveHkubW0KaW5kZXggOTY0M2Q1MmMzYzBjMTBhNGFiMmM2ZmRjZTM0OWE1Y2Y4Nzg5NTA3Yy4u
Mzk4NWUxNDkzYTBhZDIzMDY5MWYxNDUxNGRhOTY4ZDcyYzI4NTNlZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCkBAIC00MTcsMTEgKzQxNywx
MCBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygpCiAgICAgW05TQXBw
IHNlbmRFdmVudDptb3VzZVVwXTsKIAogICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50Om5pbF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xbm9ubnVsbCIKICAgICAvLyBXS1ZpZXcgY2FjaGVzIHRoZSBtb3N0IHJlY2Vu
dCBwcmVzc3VyZSBldmVudCwgc28gc2VuZCBpdCBhIG5pbCBldmVudCB0byBjbGVhciB0aGUgY2Fj
aGUuCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4KICAgICBbdGFyZ2V0Vmll
dyBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudDpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0VORAogfQogCiB2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkKQEAgLTQ1MywxMSAr
NDUyLDEwIEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNl
Q2xpY2soKQogICAgIFtOU0FwcCBzZW5kRXZlbnQ6bW91c2VVcF07CiAKICAgICBbTlNBcHAgX3Nl
dEN1cnJlbnRFdmVudDpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCiAgICAgLy8gV0tWaWV3IGNh
Y2hlcyB0aGUgbW9zdCByZWNlbnQgcHJlc3N1cmUgZXZlbnQsIHNvIHNlbmQgaXQgYSBuaWwgZXZl
bnQgdG8gY2xlYXIgdGhlIGNhY2hlLgorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JF
R0lOCiAgICAgW3RhcmdldFZpZXcgcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQ6bmlsXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19F
TkQKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlRG93bigpCkBAIC00Nzks
MTEgKzQ3NywxMCBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VEb3duKCkKICAg
ICBbZm9yY2VNb3VzZURvd24gX3Bvc3REZWxheWVkXTsKIAogICAgIFtOU0FwcCBfc2V0Q3VycmVu
dEV2ZW50Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKICAgICAvLyBXS1ZpZXcgY2FjaGVzIHRo
ZSBtb3N0IHJlY2VudCBwcmVzc3VyZSBldmVudCwgc28gc2VuZCBpdCBhIG5pbCBldmVudCB0byBj
bGVhciB0aGUgY2FjaGUuCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4KICAg
ICBbdGFyZ2V0VmlldyBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudDpuaWxdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0VORAogfQog
CiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VVcCgpCkBAIC01MDMsMTIgKzUwMCwx
MCBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VVcCgpCiAgICAgQVNTRVJUKHRh
cmdldFZpZXcpOwogCiAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKLQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV25vbm51bGwiCi0vLyBXS1ZpZXcgY2FjaGVzIHRoZSBtb3N0IHJlY2VudCBwcmVzc3VyZSBl
dmVudCwgc28gc2VuZCBpdCBhIG5pbCBldmVudCB0byBjbGVhciB0aGUgY2FjaGUuCisgICAgLy8g
V0tWaWV3IGNhY2hlcyB0aGUgbW9zdCByZWNlbnQgcHJlc3N1cmUgZXZlbnQsIHNvIHNlbmQgaXQg
YSBuaWwgZXZlbnQgdG8gY2xlYXIgdGhlIGNhY2hlLgorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dB
Uk5JTkdTX0JFR0lOCiAgICAgW3RhcmdldFZpZXcgcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQ6bmls
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfTlVMTF9DSEVDS19X
QVJOSU5HU19FTkQKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlQ2hhbmdl
ZChmbG9hdCBmb3JjZSkKQEAgLTUyNSwxMSArNTIwLDEwIEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bW91c2VGb3JjZUNoYW5nZWQoZmxvYXQgZm9yY2UpCiAgICAgW05TQXBwIHNlbmRFdmVudDpi
ZWdpblByZXNzdXJlLmdldCgpXTsKICAgICBbTlNBcHAgc2VuZEV2ZW50OnByZXNzdXJlQ2hhbmdl
ZEV2ZW50LmdldCgpXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCiAgICAgLy8gV0tWaWV3IGNhY2hl
cyB0aGUgbW9zdCByZWNlbnQgcHJlc3N1cmUgZXZlbnQsIHNvIHNlbmQgaXQgYSBuaWwgZXZlbnQg
dG8gY2xlYXIgdGhlIGNhY2hlLgorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JFR0lO
CiAgICAgW3RhcmdldFZpZXcgcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQ6bmlsXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19FTkQK
IH0KICNlbHNlCiAK
</data>
<flag name="review"
          id="374304"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>