<?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>124129</bug_id>
          
          <creation_ts>2013-11-10 13:16:49 -0800</creation_ts>
          <short_desc>Implement Set iterators</short_desc>
          <delta_ts>2013-11-11 12:07:41 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949173</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-10 13:16:49 -0800</bug_when>
    <thetext>Implement Set iterators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949174</commentid>
    <comment_count>1</comment_count>
      <attachid>216536</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-10 13:24:14 -0800</bug_when>
    <thetext>Created attachment 216536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949177</commentid>
    <comment_count>2</comment_count>
      <attachid>216536</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-10 14:25:07 -0800</bug_when>
    <thetext>Comment on attachment 216536
Patch

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

&gt; Source/JavaScriptCore/runtime/JSSetIterator.h:73
&gt; +private:
&gt; +
&gt; +    static const unsigned StructureFlags = Base::StructureFlags | OverridesVisitChildren;

Unnecessary new line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949178</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-10 14:26:15 -0800</bug_when>
    <thetext>Committed r159031: &lt;http://trac.webkit.org/changeset/159031&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949397</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-11-11 12:07:41 -0800</bug_when>
    <thetext>This broke a test:
http://build.webkit.org/results/Apple%20Mavericks%20Release%20WK1%20(Tests)/r159060%20(744)/results.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216536</attachid>
            <date>2013-11-10 13:24:14 -0800</date>
            <delta_ts>2013-11-10 14:25:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124129-20131110132411.patch</filename>
            <type>text/plain</type>
            <size>59323</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDI5OGQ4NzIyZTM2MGJmZDQ4YTViYTY5YzUzMTdmZTg4NDMwMjY3Li4yMmE4ODE0YWI2MjczOTU3
ODVkMDQ4ZTY0NGJlMjNjMTEwNmJkMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxMy0xMS0xMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBTZXQgaXRlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU2V0IGl0ZXJhdG9yIGNsYXNzZXMgYW5kIGlt
cGxlbWVudGF0aW9ucworCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTZXRJdGVyYXRvci5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpKU1NldEl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChKU0M6OkpTU2V0SXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpKU1Nl
dEl0ZXJhdG9yOjpjcmVhdGVQYWlyKToKKyAgICAgICAgKiBydW50aW1lL0pTU2V0SXRlcmF0b3Iu
aDogQWRkZWQuCisgICAgICAgIChKU0M6OkpTU2V0SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OkpTU2V0SXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpT
U2V0SXRlcmF0b3I6Om5leHQpOgorICAgICAgICAoSlNDOjpKU1NldEl0ZXJhdG9yOjpKU1NldEl0
ZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1NldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5oOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAg
KEpTQzo6U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KEpTQzo6U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoSlNDOjpTZXRJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpTZXRJdGVyYXRvclByb3RvdHlwZUZ1bmNJdGVyYXRvcik6CisgICAgICAgIChKU0M6OlNl
dEl0ZXJhdG9yUHJvdG90eXBlRnVuY05leHQpOgorICAgICAgICAqIHJ1bnRpbWUvU2V0SXRlcmF0
b3JQcm90b3R5cGUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OlNldEl0ZXJhdG9yUHJvdG90eXBl
OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTZXRJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKEpTQzo6U2V0SXRlcmF0b3JQcm90b3R5cGU6OlNldEl0ZXJhdG9y
UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OlNldFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpzZXRQ
cm90b0Z1bmNWYWx1ZXMpOgorICAgICAgICAoSlNDOjpzZXRQcm90b0Z1bmNFbnRyaWVzKToKKyAg
ICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jS2V5cyk6CisKIDIwMTMtMTEtMDkgIE9saXZlciBIdW50
ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgTWFwIEl0ZXJhdG9ycwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDVhMzEyYzE1ODE2OWFjYWJiMDU5N2Y1NjUw
YjQ3ZWY5YjkxZDhmYmQuLjZlMjI4NmZjYWM5ZTQ3NDJkZjRlM2FlMzk4ZDhjMzY5M2ExMWJjZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM1NCw2ICszNTQsNyBAQCBz
ZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNTY29wZS5jcHAKICAgICBy
dW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCiAgICAgcnVudGltZS9KU1NldC5j
cHAKKyAgICBydW50aW1lL0pTU2V0SXRlcmF0b3IuY3BwCiAgICAgcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNTdHJpbmcuY3BwCiAgICAgcnVudGltZS9KU1N0
cmluZ0pvaW5lci5jcHAKQEAgLTQwMCw2ICs0MDEsOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09V
UkNFUwogICAgIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvU2FtcGxp
bmdDb3VudGVyLmNwcAogICAgIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCisgICAgcnVudGlt
ZS9TZXRJdGVyYXRvckNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvU2V0SXRlcmF0b3JQcm90
b3R5cGUuY3BwCiAgICAgcnVudGltZS9TZXRQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9TaW1w
bGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKICAgICBydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmU1MzAxYzEw
NGNmZDRiYjY1MWI4ZTdkMDQyZWJkNGI4MTAxNTk4My4uZjUzYjRjZDJkMGRlYjQ3OGRjZjJlZGQ1
YjJkNDc4OGNlNjJhNWJiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTk1NCw2ICs5NTQsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0Lmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTZXRJdGVyYXRvci5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2V0SXRlcmF0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Q29uc3RydWN0b3JzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlZEFycmF5Q29uc3RydWN0b3JzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVByb3RvdHlwZXMuY3BwIFwKQEAgLTEwNjgsNiArMTA3MCwxMCBAQCBq
YXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ0NvdW50ZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
Q29uc3RydWN0b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25z
dHJ1Y3Rvci5oXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yQ29u
c3RydWN0b3IuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRv
ckNvbnN0cnVjdG9yLmhcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0
b3JQcm90b3R5cGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVy
YXRvclByb3RvdHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90
b3R5cGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRy
b2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IDU5
ZTAxZTBlNjBlYTc3YjUzNjhiODc2YjA1YjNhNWE2ZTJjYjllZWEuLjQ0NDYxMjA3NmQ0NzYwOWNj
OGZkODA2NGVkNTJkN2M5MDgwZGQ4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagpAQCAtNTkyLDYgKzU5Miw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxy
dW50aW1lXEpTU2NvcGUuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU1NldC5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxKU1NldEl0ZXJhdG9yLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEpTU3RyaW5nLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXEpTU3RyaW5nSm9pbmVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEpTU3ltYm9sVGFibGVPYmplY3QuY3BwIiAvPg0KQEAgLTYzNiw2ICs2Mzcs
OCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxSZWdFeHBQcm90b3R5cGUu
Y3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2FtcGxpbmdDb3Vu
dGVyLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFNldENvbnN0
cnVjdG9yLmNwcCIgLz4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFNldEl0
ZXJhdG9yQ29uc3RydWN0b3IuY3BwIiAvPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1
bnRpbWVcU2V0SXRlcmF0b3JQcm90b3R5cGUuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcU2V0UHJvdG90eXBlLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFNtYWxsU3RyaW5ncy5jcHAiIC8+DQpAQCAt
MTE3OCw2ICsxMTgxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNT
Y29wZS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNTZXQuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU2V0
SXRlcmF0b3IuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU3Ry
aW5nLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1N0cmluZ0J1
aWxkZXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU3RyaW5n
Sm9pbmVyLmgiIC8+DQpAQCAtMTI0MCw2ICsxMjQ0LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcUmVqZWN0LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cnVudGltZVxTYW1wbGluZ0NvdW50ZXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxydW50aW1lXFNldENvbnN0cnVjdG9yLmgiIC8+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccnVudGltZVxTZXRJdGVyYXRvckNvbnN0cnVjdG9yLmgiIC8+DQorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxTZXRJdGVyYXRvclByb3RvdHlwZS5oIiAvPg0KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0UHJvdG90eXBlLmgiIC8+DQogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oIiAv
Pg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU21hbGxTdHJpbmdzLmgiIC8+
DQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IGFhNWNhYTY2NTE1NDM1MDlhY2E4Yzk1NmUyNWMxNzQ3M2ZlMDFhZjkuLmU2Y2JmYjI4ZmI5
YWY0MzIxZjU1ZmU2OGFjNWY1NjY0MDkxZDhiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVycworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTU5NCw2ICs1OTQsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1NldC5jcHAiPg0KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPg0KICAgICA8L0NsQ29tcGlsZT4NCisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEpTU2V0SXRlcmF0b3IuY3BwIj4NCisgICAgICA8RmlsdGVyPnJ1bnRp
bWU8L0ZpbHRlcj4NCisgICAgPC9DbENvbXBpbGU+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcCI+DQogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KQEAgLTcxMSw5ICs3MTQsMTgg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0UHJvdG90eXBlLmNwcCI+
DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0SXRlcmF0b3JQcm90b3R5cGUuY3Bw
Ij4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisgICAgPC9DbENvbXBpbGU+DQor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxTZXRJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcCI+DQorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQorICAgIDwvQ2xDb21waWxl
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0Q29uc3RydWN0b3IuY3Bw
Ij4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxTZXRJdGVyYXRvckNvbnN0cnVjdG9y
LmNwcCI+DQorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQorICAgIDwvQ2xDb21waWxl
Pg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU3BhcnNlQXJyYXlWYWx1ZU1h
cC5jcHAiPg0KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KICAgICA8L0NsQ29tcGls
ZT4NCkBAIC0yNjA3LDYgKzI2MTksOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxKU1NldC5oIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1NldEl0ZXJh
dG9yLmgiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0NsSW5jbHVk
ZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsbGludFxMTEludEVudHJ5cG9pbnQuaCI+
DQogICAgICAgPEZpbHRlcj5sbGludDwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCkBAIC0y
NjE5LDEyICsyNjM0LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXFNl
dFByb3RvdHlwZS5oIj4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxTZXRJdGVyYXRv
clByb3RvdHlwZS5oIj4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisgICAgPC9D
bEluY2x1ZGU+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXBQcm90b3R5
cGUuaCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRl
Pg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0Q29uc3RydWN0b3IuaCI+
DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNsdWRlPg0KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5o
Ij4NCisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCisgICAgPC9DbEluY2x1ZGU+DQog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR0Fic3RyYWN0SGVhcC5oIj4NCiAgICAg
ICA8RmlsdGVyPmRmZzwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQwNDI1Y2U1YjU5M2ZkMGZhZDY4ODFkMTAxYjUwNDM4MGRmZTgx
YmQuLjk3NDY0ZWI4ZjAzZjE1NzRkYTRmYzc4ZTQ4ZGQwYmViYzZhMmRhNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NzYsNiArOTc2LDEyIEBACiAJCUE3OEE5NzdGMTc5NzM4
RDUwMDlERjc0NCAvKiBGVExHZW5lcmF0ZWRGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4QTk3N0MxNzk3MzhENTAwOURGNzQ0IC8qIEZU
TEdlbmVyYXRlZEZ1bmN0aW9uLmggKi87IH07CiAJCUE3OEE5NzgwMTc5NzM4RDUwMDlERjc0NCAv
KiBGVExKSVRGaW5hbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc4QTk3N0QxNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5j
cHAgKi87IH07CiAJCUE3OEE5NzgxMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEE5NzdF
MTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCAqLzsgfTsKKwkJQTc5MERENkIx
ODJGNDk5NzAwNTg4ODA3IC8qIFNldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5MERENjUxODJGNDk5NzAwNTg4
ODA3IC8qIFNldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovOyB9OworCQlBNzkwREQ2QzE4MkY0
OTk3MDA1ODg4MDcgLyogU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5MERENjYxODJGNDk5NzAwNTg4ODA3IC8q
IFNldEl0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLzsgfTsKKwkJQTc5MERENkQxODJGNDk5NzAwNTg4
ODA3IC8qIFNldEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTBERDY3MTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVy
YXRvclByb3RvdHlwZS5jcHAgKi87IH07CisJCUE3OTBERDZFMTgyRjQ5OTcwMDU4ODgwNyAvKiBT
ZXRJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc5MERENjgxODJGNDk5NzAwNTg4ODA3IC8qIFNldEl0ZXJhdG9yUHJvdG90
eXBlLmggKi87IH07CisJCUE3OTBERDZGMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTBE
RDY5MTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9yLmNwcCAqLzsgfTsKKwkJQTc5MERE
NzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTBERDZBMTgyRjQ5OTcwMDU4ODgwNyAvKiBK
U1NldEl0ZXJhdG9yLmggKi87IH07CiAJCUE3OTg2RDU3MTdBMEJCMUUwMEE5NUREMCAvKiBERkdF
ZGdlVXNlc1N0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc5ODZENTYxN0EwQkIxRTAwQTk1REQwIC8qIERGR0VkZ2VVc2VzU3RydWN0dXJl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdB
NEFFMDgxNzk3M0IyNjAwNTYxMkIxIC8qIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTRBRTA3MTc5NzNC
MjYwMDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgKi87IH07CiAJCUE3QTRB
RTEwMTc5NzNCNEQwMDU2MTJCMSAvKiBKSVRTdHVic1g4NkNvbW1vbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBNEFFMEMxNzk3M0I0RDAwNTYxMkIx
IC8qIEpJVFN0dWJzWDg2Q29tbW9uLmggKi87IH07CkBAIC0yMjY2LDYgKzIyNzIsMTIgQEAKIAkJ
QTc4QTk3N0MxNzk3MzhENTAwOURGNzQ0IC8qIEZUTEdlbmVyYXRlZEZ1bmN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEdlbmVyYXRlZEZ1bmN0aW9uLmg7IHBhdGgg
PSBmdGwvRlRMR2VuZXJhdGVkRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc4QTk3N0QxNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExKSVRGaW5hbGl6ZXIuY3BwOyBwYXRo
ID0gZnRsL0ZUTEpJVEZpbmFsaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3OEE5NzdFMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMSklURmluYWxpemVyLmg7IHBhdGggPSBmdGwvRlRM
SklURmluYWxpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OTBERDY1MTgy
RjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzkwREQ2NjE4MkY0OTk3MDA1ODg4MDcgLyogU2V0
SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXRJdGVyYXRvckNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3
OTBERDY3MTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXRJdGVyYXRvclByb3RvdHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OTBERDY4MTgyRjQ5OTcwMDU4ODgwNyAv
KiBTZXRJdGVyYXRvclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTZXRJdGVyYXRvclByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
NzkwREQ2OTE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NldEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTc5MERENkExODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTZXRJdGVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk4NkQ1NjE3QTBCQjFFMDBBOTVERDAgLyog
REZHRWRnZVVzZXNTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
REZHRWRnZVVzZXNTdHJ1Y3R1cmUuaDsgcGF0aCA9IGRmZy9ERkdFZGdlVXNlc1N0cnVjdHVyZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzlFNzgxRTE1RUVDQkE4MDA0N0M4NTUg
LyogVW5saW5rZWRDb2RlQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVW5saW5rZWRDb2RlQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzlFNzgxRjE1RUVDQkE4MDA0N0M4NTUgLyogVW5saW5rZWRDb2RlQmxvY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5saW5rZWRDb2RlQmxvY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM2NTYsNiArMzY2OCwxMiBAQAogCQkJCUE3NERFRjhFMTgy
RDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVyYXRvclByb3RvdHlwZS5oICovLAogCQkJCUE3NERFRjhG
MTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmNwcCAqLywKIAkJCQlBNzRERUY5MDE4
MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJdGVyYXRvci5oICovLAorCQkJCUE3OTBERDY1MTgyRjQ5
OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQlBNzkwREQ2
NjE4MkY0OTk3MDA1ODg4MDcgLyogU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUE3
OTBERDY3MTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvclByb3RvdHlwZS5jcHAgKi8sCisJ
CQkJQTc5MERENjgxODJGNDk5NzAwNTg4ODA3IC8qIFNldEl0ZXJhdG9yUHJvdG90eXBlLmggKi8s
CisJCQkJQTc5MERENjkxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuY3BwICovLAor
CQkJCUE3OTBERDZBMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9yLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHJ1bnRpbWU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDQ1
NCw2ICs0NDcyLDcgQEAKIAkJCQkwRkIxNEUxRjE4MTI0QUNFMDA5QjZCNEQgLyogSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Q0M4NUExMEVFNzlBNDcwMDI4
ODY4MiAvKiBKSVRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RDE3RUUyNzQ5
MDBBQkIyMTcgLyogSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc5MERENzAx
ODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjRFNTRFMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25XcmFwcGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3NjZEMzExNUFBODExMjAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyogSklUU3R1YlJv
dXRpbmVTZXQuaCBpbiBIZWFkZXJzICovLApAQCAtNDYyNiw2ICs0NjQ1LDcgQEAKIAkJCQkwRkI1
NDY3QjE0RjVDN0UxMDAyQzI5ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODZDNTY4RTIxMUEyMTNFRTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUJGMzAwMTU2MEYwNkEwMDhFOTIyMiAvKiBOYW1l
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3OTBERDZFMTgyRjQ5OTcwMDU4ODgw
NyAvKiBTZXRJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQkYzMDIx
NTYwRjA2QTAwOEU5MjIyIC8qIE5hbWVJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZF
QkYzMDQxNTYwRjA2QTAwOEU5MjIyIC8qIE5hbWVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMDJFOTExMEUxODM5REIwMDBGOTI5NyAvKiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKQEAgLTQ3MTIsNiArNDczMiw3IEBACiAJCQkJQTcyOTlEQTIxN0QxMjg0
ODAwNUY1RkY5IC8qIFNldFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZBRTY0QUEx
MzVFNUUxQzAwOTYzMDEyIC8qIFNINEFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY3MDUxN0I2QjVBQjAwQTdBRTNGIC8qIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNzkwREQ2QzE4MkY0OTk3MDA1ODg4MDcgLyogU2V0SXRlcmF0b3JD
b25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRCQTc4RjExM0FBQjg4RjAwNUI3QzJD
IC8qIFNsb3RWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjE2MEZFNzE1RjdFOTVFMDA5
NDJERkMgLyogU2xvdFZpc2l0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA5RjJG
MDE3QTBBQzA0MDA1MTJFOTggLyogU2xvd1BhdGhDYWxsLmggaW4gSGVhZGVycyAqLywKQEAgLTUy
MjgsNiArNTI0OSw3IEBACiAJCQkJMTQ3RjM5QkYxMDdFQzM3NjAwNDI3QTQ4IC8qIEFycmF5Q29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdCREFFQzYxN0Y0RUExNDAwRjYxNDBD
IC8qIEFycmF5SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0JE
QUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBNzkwREQ2RjE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ1NDE1RDA3MDU1MDA2QTU5N0MgLyogQXJyYXlQ
cm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMwMTA3RUMzNzYwMDQyN0E0OCAv
KiBBcnJheVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU0MDE3RUE5RjU5
MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTYwOCw2
ICs1NjMwLDcgQEAKIAkJCQlBNzI5OURBNTE3RDEyODU4MDA1RjVGRjkgLyogU2V0Q29uc3RydWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTlEQTExN0QxMjg0ODAwNUY1RkY5IC8qIFNl
dFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FF
M0YgLyogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTc5MERENkQxODJGNDk5NzAwNTg4ODA3IC8qIFNldEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyMjU0OTQzMTVGN0RCQUEwMDY1RTg5OCAvKiBTbG90VmlzaXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwNDAyQzBFNkE3NjQwMDA3ODZFNkEgLyogU21hbGxT
dHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAv
KiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTYzNyw2ICs1NjYwLDcgQEAKIAkJ
CQkwRjJCNjcwQTE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJheVR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGNDI3NEExNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Ni5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGNDI3NDAxNThFQkU4QjAwNENCOUZGIC8qIHVkaXM4Nl9kZWNvZGUuYyBp
biBTb3VyY2VzICovLAorCQkJCUE3OTBERDZCMTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRv
ckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQzMTU4RUJFOTEwMDRD
QjlGRiAvKiB1ZGlzODZfaW5wdXQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzREMTU4RUJG
RTYwMDRDQjlGRiAvKiB1ZGlzODZfaXRhYl9ob2xkZXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
RjQyNzQ1MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWF0dC5jIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aAppbmRleCBjM2M1ZmVlZTg4ZTQwNjlhMGIzMTE1YTJhYzMxMDkwYjhhNjE5NmFhLi5kNGU0ZWQy
MTkxYzU3ZGJlM2Y2YjEwNmVjYzExMzNmMzkwMzk3NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTUxLDYgKzUxLDcgQEAK
ICAgICBtYWNybyhSZWZlcmVuY2VFcnJvcikgXAogICAgIG1hY3JvKFJlZ0V4cCkgXAogICAgIG1h
Y3JvKFNldClcCisgICAgbWFjcm8oU2V0SXRlcmF0b3IpXAogICAgIG1hY3JvKFN0cmluZykgXAog
ICAgIG1hY3JvKFN5bnRheEVycm9yKSBcCiAgICAgbWFjcm8oVHlwZUVycm9yKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNjJk
OTAzY2Y3MWVjY2Y1YTZhMDg4N2YwOGEyMDYyMWIyZWZlZmQyNi4uOWY1NDNiYjgwZWFjOTk4ZjYx
YWMyZjI2MGU2ZGYyMWE5MjBiODFjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNzYsNiArNzYsNyBAQAogI2luY2x1ZGUgIkpT
TmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5oIgogI2luY2x1ZGUgIkpTU2V0Lmgi
CisjaW5jbHVkZSAiSlNTZXRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheUNvbnN0
cnVjdG9ycy5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCIKICNpbmNsdWRl
ICJKU1R5cGVkQXJyYXlzLmgiCkBAIC0xMDUsNiArMTA2LDggQEAKICNpbmNsdWRlICJSZWdFeHBP
YmplY3QuaCIKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJTZXRDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgIlNldEl0ZXJhdG9yQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRl
ICJTZXRJdGVyYXRvclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlNldFByb3RvdHlwZS5oIgogI2lu
Y2x1ZGUgIlN0cmljdEV2YWxBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0
b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CmluZGV4IDEwZmNhYTJmYjg2NzE4M2YxMmUxZTgyOTFlYTg1ZTdiNzhkM2VhOTAuLjE2M2QxOGY1
NmJhNDg3ODU3ZDZjMmM2NjY5MzVlODU4ZDdhODMzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtODYsNiArODYsNyBAQCBzdHJ1Y3Qg
SGFzaFRhYmxlOwogICAgIERFRklORV9TVEFOREFSRF9CVUlMVElOKG1hY3JvLCBBcnJheUl0ZXJh
dG9yLCBhcnJheUl0ZXJhdG9yKSBcCiAgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8s
IEFyZ3VtZW50c0l0ZXJhdG9yLCBhcmd1bWVudHNJdGVyYXRvcikgXAogICAgIERFRklORV9TVEFO
REFSRF9CVUlMVElOKG1hY3JvLCBNYXBJdGVyYXRvciwgbWFwSXRlcmF0b3IpIFwKKyAgICBERUZJ
TkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgU2V0SXRlcmF0b3IsIHNldEl0ZXJhdG9yKSBcCiAK
IAogI2RlZmluZSBERUNMQVJFX1NJTVBMRV9CVUlMVElOX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2Vy
TmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0SXRlcmF0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXRJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFkOGE2
NTEyMTE5NWU0ZmYzZjhlOWIzZDYxYzY0ZGM4ZDRkYmFjMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0SXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1NldEl0ZXJhdG9yLmgiCisKKyNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNs
dWRlICJKU1NldC5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTU2V0SXRlcmF0b3I6OnNfaW5mbyA9IHsgIlNl
dCBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNT
ZXRJdGVyYXRvcikgfTsKKwordm9pZCBKU1NldEl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTU2V0KiBpdGVyYXRlZE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CisgICAgbV9pdGVyYXRlZE9iamVjdERhdGEuc2V0KHZtLCB0aGlzLCBpdGVyYXRlZE9iamVj
dC0+bWFwRGF0YSgpKTsKK30KKwordm9pZCBKU1NldEl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNTZXRJdGVyYXRvciog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1NldEl0ZXJhdG9yKj4oY2VsbCk7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIENPTVBJTEVfQVNTRVJU
KFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPnN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisgICAgICAgIAor
ICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRv
ci5hcHBlbmQoJnRoaXNPYmplY3QtPm1faXRlcmF0ZWRPYmplY3REYXRhKTsKK30KKworSlNWYWx1
ZSBKU1NldEl0ZXJhdG9yOjpjcmVhdGVQYWlyKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVl
IGtleSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwor
ICAgIGFyZ3MuYXBwZW5kKGtleSk7CisgICAgYXJncy5hcHBlbmQodmFsdWUpOworICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsRnJhbWUtPmNhbGxlZSgpLT5nbG9iYWxPYmpl
Y3QoKTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoY2FsbEZyYW1lLCAwLCBnbG9iYWxPYmpl
Y3QsIGFyZ3MpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1NldEl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nl
dEl0ZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGVjZDE5ZTMyMGZlOTAyNDAwYjM1MmVmYzFlOTY2N2Rj
ZjFkNGZlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2V0SXRlcmF0b3IuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEpTU2V0SXRlcmF0b3JfaAorI2RlZmlu
ZSBKU1NldEl0ZXJhdG9yX2gKKworI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNTZXQuaCIKKworI2luY2x1ZGUgIk1hcERhdGEuaCIKKworbmFtZXNwYWNlIEpT
QyB7CitlbnVtIFNldEl0ZXJhdGlvbktpbmQgOiB1aW50MzJfdCB7CisgICAgU2V0SXRlcmF0ZUtl
eSwKKyAgICBTZXRJdGVyYXRlVmFsdWUsCisgICAgU2V0SXRlcmF0ZUtleVZhbHVlLAorfTsKKwor
Y2xhc3MgSlNTZXRJdGVyYXRvciA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CitwdWJs
aWM6CisgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOworCisgICAgREVDTEFS
RV9FWFBPUlRfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OworICAgIH0KKworICAgIHN0YXRpYyBKU1NldEl0ZXJhdG9yKiBjcmVhdGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNTZXQqIGl0ZXJhdGVkT2JqZWN0LCBTZXRJdGVyYXRpb25LaW5k
IGtpbmQpCisgICAgeworICAgICAgICBKU1NldEl0ZXJhdG9yKiBpbnN0YW5jZSA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPEpTU2V0SXRlcmF0b3I+KHZtLmhlYXApKSBKU1NldEl0ZXJhdG9y
KHZtLCBzdHJ1Y3R1cmUsIGl0ZXJhdGVkT2JqZWN0LCBraW5kKTsKKyAgICAgICAgaW5zdGFuY2Ut
PmZpbmlzaENyZWF0aW9uKHZtLCBpdGVyYXRlZE9iamVjdCk7CisgICAgICAgIHJldHVybiBpbnN0
YW5jZTsKKyAgICB9CisKKyAgICBib29sIG5leHQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFs
dWUmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZXJhdG9yLmVuc3VyZVNsb3QoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1fa2luZCA9PSBTZXRJdGVy
YXRlVmFsdWUgfHwgbV9raW5kID09IFNldEl0ZXJhdGVLZXkpCisgICAgICAgICAgICB2YWx1ZSA9
IG1faXRlcmF0b3Iua2V5KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gY3Jl
YXRlUGFpcihjYWxsRnJhbWUsIG1faXRlcmF0b3Iua2V5KCksIG1faXRlcmF0b3Iua2V5KCkpOwor
ICAgICAgICArK21faXRlcmF0b3I7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJp
dmF0ZToKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbjsKKworICAgIEpTU2V0SXRl
cmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTZXQqIGl0ZXJhdGVkT2JqZWN0
LCBTZXRJdGVyYXRpb25LaW5kIGtpbmQpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQor
ICAgICAgICAsIG1faXRlcmF0b3IoaXRlcmF0ZWRPYmplY3QtPm1hcERhdGEoKS0+YmVnaW4oKSkK
KyAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYsIEpTU2V0Kik7CisgICAgSlNWYWx1ZSBjcmVhdGVQYWlyKENhbGxGcmFtZSos
IEpTVmFsdWUsIEpTVmFsdWUpOworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiwgU2xvdFZpc2l0b3ImKTsKKworICAgIFdyaXRlQmFycmllcjxNYXBEYXRhPiBtX2l0ZXJhdGVk
T2JqZWN0RGF0YTsKKyAgICBNYXBEYXRhOjpjb25zdF9pdGVyYXRvciBtX2l0ZXJhdG9yOworICAg
IFNldEl0ZXJhdGlvbktpbmQgbV9raW5kOworfTsKKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQo
SlNTZXRJdGVyYXRvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TZXRJdGVyYXRvckNvbnN0cnVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTZmZjliZWQ5ZmNj
ZjI5YTlhY2U5ZWIzNTk5ODA1MzdjNjNhMzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTAsMCAr
MSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNldEl0ZXJhdG9yQ29uc3RydWN0b3IuaCIK
KworI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDZWxsSW5saW5l
cy5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNTZXRJdGVyYXRv
ci5oIgorI2luY2x1ZGUgIlNldEl0ZXJhdG9yUHJvdG90eXBlLmgiCisKK25hbWVzcGFjZSBKU0Mg
eworCitjb25zdCBDbGFzc0luZm8gU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
U2V0IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShT
ZXRJdGVyYXRvckNvbnN0cnVjdG9yKSB9OworCit2b2lkIFNldEl0ZXJhdG9yQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2V0SXRlcmF0b3JQcm90b3R5cGUqIHByb3RvdHlwZSkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yQ29uc3RydWN0b3IuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZmQ5NTRlZTdiZGI2OGQzN2NlOTljMTFkZTc1MTA4Mjg5M2RiNTJmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1
Y3Rvci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUs
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcl9oCisjZGVmaW5l
IFNldEl0ZXJhdG9yQ29uc3RydWN0b3JfaAorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIFNldEl0ZXJhdG9yUHJvdG90eXBlOworCitjbGFzcyBTZXRJ
dGVyYXRvckNvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgor
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworCisgICAgc3RhdGljIFNldEl0ZXJh
dG9yQ29uc3RydWN0b3IqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTZXRJ
dGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgU2V0SXRlcmF0b3JD
b25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxTZXRJ
dGVyYXRvckNvbnN0cnVjdG9yPih2bS5oZWFwKSkgU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcih2bSwg
c3RydWN0dXJlKTsKKyAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBwcm90
b3R5cGUpOworICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CisgICAgfQorCisgICAgREVDTEFS
RV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgewor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFNldEl0ZXJhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAg
IH0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgU2V0SXRlcmF0b3JQcm90b3R5cGUqKTsK
K307CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKFNldENvbnN0cnVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRJdGVyYXRvclByb3RvdHlwZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmZlNTA4YTBmOWVkZTZiM2IwNTVlOWQ1MWUyZTNkYWM4MjBjNDUwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJh
dG9yUHJvdG90eXBlLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2V0SXRlcmF0b3JQcm90b3R5cGUuaCIKKworI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgi
CisjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTU2V0SXRlcmF0b3IuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBTZXRJdGVyYXRvclByb3RvdHlw
ZTo6c19pbmZvID0geyAiU2V0IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShTZXRJdGVyYXRvclByb3RvdHlwZSkgfTsKKworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgU2V0SXRlcmF0b3JQcm90b3R5cGVGdW5jSXRlcmF0b3IoRXhl
Y1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBTZXRJdGVyYXRv
clByb3RvdHlwZUZ1bmNOZXh0KEV4ZWNTdGF0ZSopOworCisKK3ZvaWQgU2V0SXRlcmF0b3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRz
KGluZm8oKSkpOworICAgIHZtLnByb3RvdHlwZU1hcC5hZGRQcm90b3R5cGUodGhpcyk7CisKKyAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yUHJpdmF0ZU5h
bWUsIFNldEl0ZXJhdG9yUHJvdG90eXBlRnVuY0l0ZXJhdG9yLCBEb250RW51bSwgMCk7CisgICAg
SlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvck5leHRQcml2YXRl
TmFtZSwgU2V0SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dCwgRG9udEVudW0sIDApOworfQorCitF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIFNldEl0ZXJhdG9yUHJvdG90eXBlRnVuY0l0ZXJh
dG9yKENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgU2V0SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sK
KyAgICBKU1ZhbHVlIHJlc3VsdDsKKyAgICBKU1NldEl0ZXJhdG9yKiBpdGVyYXRvciA9IGpzRHlu
YW1pY0Nhc3Q8SlNTZXRJdGVyYXRvcio+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlm
ICghaXRlcmF0b3IpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJy
b3IoY2FsbEZyYW1lLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjYWxsIFNldEl0ZXJhdG9yLm5leHQo
KSBvbiBhIG5vbi1TZXRJdGVyYXRvciBvYmplY3QiKSkpOworCisgICAgaWYgKGl0ZXJhdG9yLT5u
ZXh0KGNhbGxGcmFtZSwgcmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnZtKCkuaXRl
cmF0aW9uVGVybWluYXRvci5nZXQoKSk7Cit9CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRlcmF0b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJi
MzMzMGJhYmVjZTYxODNkZWYwODExOTMzNjQwMzcxOTFiODM1MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBTZXRJdGVyYXRvclByb3RvdHlwZV9oCisjZGVmaW5lIFNldEl0ZXJhdG9y
UHJvdG90eXBlX2gKKworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0Mgewor
CitjbGFzcyBTZXRJdGVyYXRvclByb3RvdHlwZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
K3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRp
YyBTZXRJdGVyYXRvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBTZXRJdGVy
YXRvclByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8U2V0
SXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXApKSBTZXRJdGVyYXRvclByb3RvdHlwZSh2bSwgc3Ry
dWN0dXJlKTsKKyAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKKyAgICB9CisKKyAgICBERUNMQVJFX0lO
Rk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgU2V0SXRlcmF0b3JQcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKK307CisKK30KKwor
I2VuZGlmIC8vICFkZWZpbmVkKFNldEl0ZXJhdG9yUHJvdG90eXBlX2gpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcAppbmRleCAyODA1MjNjZmE5NGM4
NGE1NjAzNDljNjhjZWQ0ZTIyNTllMzU3NmIzLi4xMTgwYTNlMDk0ZDUzZTFkZmRkYWExMGYyYjJk
ZGI5NGFhMjIyMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFBy
b3RvdHlwZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb25JbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIK
KyNpbmNsdWRlICJKU1NldEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTWFwRGF0YS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKQEAgLTQ0LDYgKzQ1LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHNldFByb3RvRnVuY0NsZWFyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jRGVsZXRlKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jRm9yRWFjaChFeGVj
U3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVu
Y0hhcyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByb3RvRnVuY0tleXMoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzZXRQcm90b0Z1bmNWYWx1ZXMoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNFbnRyaWVzKEV4ZWNTdGF0ZSopOworCiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY1NpemUoRXhl
Y1N0YXRlKik7CiAKQEAgLTU4LDYgKzYzLDEwIEBAIHZvaWQgU2V0UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgSlNDX05B
VElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5kZWxldGVLZXl3b3JkLCBzZXRQcm90b0Z1
bmNEZWxldGUsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmZvckVhY2gsIHNldFByb3RvRnVuY0ZvckVhY2gsIERvbnRFbnVtLCAxKTsKICAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmhhcywgc2V0UHJvdG9GdW5j
SGFzLCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5rZXlzLCBzZXRQcm90b0Z1bmNLZXlzLCBEb250RW51bSwgMCk7CisgICAgSlNDX05BVElW
RV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZXMsIHNldFByb3RvRnVuY1ZhbHVlcywg
RG9udEVudW0sIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+
ZW50cmllcywgc2V0UHJvdG9GdW5jRW50cmllcywgRG9udEVudW0sIDApOworICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JQcml2YXRlTmFtZSwgc2V0UHJv
dG9GdW5jS2V5cywgRG9udEVudW0sIDApOwogCiAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9
IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtKTsKICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT5z
aXplLnN0cmluZygpLCBzZXRQcm90b0Z1bmNTaXplKTsKQEAgLTE1MCw1ICsxNTksMjkgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNTaXplKENhbGxGcmFtZSogY2Fs
bEZyYW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZGF0YS0+c2l6ZShjYWxsRnJhbWUp
KSk7CiB9CisgICAgCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY1Zh
bHVlcyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBKU1NldCogdGhpc09iaiA9IGpzRHlu
YW1pY0Nhc3Q8SlNTZXQqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIXRoaXNP
YmopCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoY2FsbEZy
YW1lLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjcmVhdGUgYSBNYXAgdmFsdWUgaXRlcmF0b3IgZm9y
IGEgbm9uLU1hcCBvYmplY3QuIikpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2V0
SXRlcmF0b3I6OmNyZWF0ZShjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+Y2FsbGVlKCktPmds
b2JhbE9iamVjdCgpLT5zZXRJdGVyYXRvclN0cnVjdHVyZSgpLCB0aGlzT2JqLCBTZXRJdGVyYXRl
VmFsdWUpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNF
bnRyaWVzKENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTU2V0KiB0aGlzT2JqID0ganNE
eW5hbWljQ2FzdDxKU1NldCo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghdGhp
c09iaikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihjYWxs
RnJhbWUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGNyZWF0ZSBhIE1hcCBrZXkgaXRlcmF0b3IgZm9y
IGEgbm9uLU1hcCBvYmplY3QuIikpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2V0
SXRlcmF0b3I6OmNyZWF0ZShjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+Y2FsbGVlKCktPmds
b2JhbE9iamVjdCgpLT5zZXRJdGVyYXRvclN0cnVjdHVyZSgpLCB0aGlzT2JqLCBTZXRJdGVyYXRl
S2V5VmFsdWUpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1
bmNLZXlzKENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEpTU2V0KiB0aGlzT2JqID0ganNE
eW5hbWljQ2FzdDxKU1NldCo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghdGhp
c09iaikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihjYWxs
RnJhbWUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGNyZWF0ZSBhIE1hcCBlbnRyeSBpdGVyYXRvciBm
b3IgYSBub24tTWFwIG9iamVjdC4iKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNT
ZXRJdGVyYXRvcjo6Y3JlYXRlKGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5jYWxsZWUoKS0+
Z2xvYmFsT2JqZWN0KCktPnNldEl0ZXJhdG9yU3RydWN0dXJlKCksIHRoaXNPYmosIFNldEl0ZXJh
dGVLZXkpKTsKK30KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ1M2Q5ZDQ4NWQyYjM1NDAzMmExNzliYWRkOGMyZjQ0
YTZkZjNhZTIuLmVjN2I2ODk3MDMzZjVjYTNlMjQ0MjMyZmUyM2FiOTc1Y2RhODMzZWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxMy0xMS0xMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXQgaXRlcmF0b3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxMjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFNldCB0ZXN0cyB0byBtb3JlIHNl
bnNpYmxlIGxvY2F0aW9uIGFuZCBhZGQgaXRlcmF0b3IgdGVzdHMKKworICAgICAgICAqIGpzL2Jh
c2ljLXNldC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9kb20vYmFz
aWMtc2V0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBqcy9iYXNpYy1zZXQuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2pzL2RvbS9iYXNpYy1zZXQuaHRtbC4KKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvYmFzaWMtc2V0LmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanMuCisgICAgICAgIChzZXQgbmV3KToKKyAgICAgICAg
KG90aGVyU3RyaW5nLnN0cmluZ19hcHBlYXJlZF9oZXJlLnNldCBhZGQpOgorICAgICAgICAodHJ5
LnNldCBmb3JFYWNoKToKKyAgICAgICAgKHNldCBmb3JFYWNoKToKKyAgICAgICAgKHNldCBnYyk6
CisKIDIwMTMtMTEtMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgTWFwIEl0ZXJhdG9ycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYmFzaWMtc2V0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNldC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODIxNDkzNGE2MmY2MjkxODRjN2Q2OTZhZjJiZDM3MThlMjcxZGM3OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNldC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOTMgQEAKK1Rlc3RzIGJhc2ljIGNvcnJlY3RuZXNzIG9mIEVTIFNldCBvYmplY3QKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU2V0IGluc3RhbmNlb2YgU2V0IGlz
IGZhbHNlCitQQVNTIFNldC5wcm90b3R5cGUgaW5zdGFuY2VvZiBTZXQgaXMgZmFsc2UKK1BBU1Mg
U2V0KCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQorUEFTUyBuZXcgU2V0KCkgaW5zdGFuY2VvZiBT
ZXQgaXMgdHJ1ZQorUEFTUyBTZXQobnVsbCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQorUEFTUyBT
ZXQodW5kZWZpbmVkKSBpbnN0YW5jZW9mIFNldCBpcyB0cnVlCitQQVNTIFNldCh1bmRlZmluZWQs
IHVuZGVmaW5lZCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQorUEFTUyBTZXQobnVsbCwgdW5kZWZp
bmVkKSBpbnN0YW5jZW9mIFNldCBpcyB0cnVlCitQQVNTIFNldCgxKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBTZXQgZG9lcyBub3QgYWNjZXB0IGFyZ3VtZW50cyB3aGVuIGNhbGxlZCBhcyBh
IGZ1bmN0aW9uLgorUEFTUyBTZXQodHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU2V0
IGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMgd2hlbiBjYWxsZWQgYXMgYSBmdW5jdGlvbi4KK1BB
U1MgU2V0KFtdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZXQgZG9lcyBub3QgYWNjZXB0
IGFyZ3VtZW50cyB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLgorUEFTUyBTZXQoe30pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNldCBkb2VzIG5vdCBhY2NlcHQgYXJndW1lbnRzIHdoZW4g
Y2FsbGVkIGFzIGEgZnVuY3Rpb24uCitQQVNTIFNldCh1bmRlZmluZWQsIG51bGwpIHRocmV3IGV4
Y2VwdGlvbiBSYW5nZUVycm9yOiBJbnZhbGlkIGNvbXBhcmF0b3IgZnVuY3Rpb24uCitQQVNTIFNl
dCh1bmRlZmluZWQsIHt9KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW52YWxpZCBjb21w
YXJhdG9yIGZ1bmN0aW9uLgorMQordW5kZWZpbmVkCit0cnVlCis2CisxCiswCitbb2JqZWN0IE9i
amVjdF0KK1BBU1MgT2JqZWN0Lmhhc093blByb3BlcnR5KHNldCwgJ3NpemUnKSBpcyBmYWxzZQor
UEFTUyBTZXQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCdzaXplJykgaXMgdHJ1ZQorUEFTUyBN
YXAucHJvdG90eXBlLnNpemUgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWFwIG9wZXJhdGlv
biBjYWxsZWQgb24gbm9uLU1hcCBvYmplY3QuCitQQVNTIHNldC5zaXplIGlzIDAKK1BBU1Mgc2V0
LmFkZCgtMCkgaXMgc2V0CitQQVNTIHNldC5hZGQoMCkgaXMgc2V0CitQQVNTIHNldC5hZGQoSW5m
aW5pdHkpIGlzIHNldAorUEFTUyBzZXQuYWRkKC1JbmZpbml0eSkgaXMgc2V0CitQQVNTIHNldC5h
ZGQoTmFOKSBpcyBzZXQKK1BBU1Mgc2V0LmFkZCgnMCcpIGlzIHNldAorUEFTUyBzZXQuYWRkKDAu
MSkgaXMgc2V0CitQQVNTIHNldC5zaXplIGlzIDcKK1BBU1Mgc2V0LmhhcygtMCkgaXMgdHJ1ZQor
UEFTUyBzZXQuaGFzKDApIGlzIHRydWUKK1BBU1Mgc2V0LmhhcyhJbmZpbml0eSkgaXMgdHJ1ZQor
UEFTUyBzZXQuaGFzKC1JbmZpbml0eSkgaXMgdHJ1ZQorUEFTUyBzZXQuaGFzKE5hTikgaXMgdHJ1
ZQorUEFTUyBzZXQuaGFzKCcwJykgaXMgdHJ1ZQorUEFTUyBzZXQuaGFzKDAuMSkgaXMgdHJ1ZQor
UEFTUyBzZXQuZGVsZXRlKC0wKSBpcyB0cnVlCitQQVNTIHNldC5kZWxldGUoMCkgaXMgdHJ1ZQor
UEFTUyBzZXQuZGVsZXRlKEluZmluaXR5KSBpcyB0cnVlCitQQVNTIHNldC5kZWxldGUoLUluZmlu
aXR5KSBpcyB0cnVlCitQQVNTIHNldC5kZWxldGUoTmFOKSBpcyB0cnVlCitQQVNTIHNldC5kZWxl
dGUoJzAnKSBpcyB0cnVlCitQQVNTIHNldC5kZWxldGUoMC4xKSBpcyB0cnVlCitQQVNTIHNldC5k
ZWxldGUoLTApIGlzIGZhbHNlCitQQVNTIHNldC5kZWxldGUoMCkgaXMgZmFsc2UKK1BBU1Mgc2V0
LmRlbGV0ZShJbmZpbml0eSkgaXMgZmFsc2UKK1BBU1Mgc2V0LmRlbGV0ZSgtSW5maW5pdHkpIGlz
IGZhbHNlCitQQVNTIHNldC5kZWxldGUoTmFOKSBpcyBmYWxzZQorUEFTUyBzZXQuZGVsZXRlKCcw
JykgaXMgZmFsc2UKK1BBU1Mgc2V0LmRlbGV0ZSgwLjEpIGlzIGZhbHNlCitQQVNTIHNldC5oYXMo
c2ltcGxlU3RyaW5nKSBpcyB0cnVlCitQQVNTIHNldC5oYXMob3RoZXJTdHJpbmcpIGlzIHRydWUK
K1BBU1Mgc2V0LmNsZWFyKCkgaXMgdW5kZWZpbmVkLgorUEFTUyBzZXQuc2l6ZSBpcyAwCitQQVNT
IHNldC5hZGQoMCkgaXMgc2V0CitQQVNTIHNldC5hZGQoJzAnKSBpcyBzZXQKK1BBU1Mgc2V0LmFk
ZCgxKSBpcyBzZXQKK1BBU1Mgc2V0LmFkZCgnMScpIGlzIHNldAorUEFTUyBzZXQuYWRkKDIpIGlz
IHNldAorUEFTUyBzZXQuYWRkKCcyJykgaXMgc2V0CitQQVNTIHNldC5hZGQoMykgaXMgc2V0CitQ
QVNTIHNldC5hZGQoJzMnKSBpcyBzZXQKK1BBU1Mgc2V0LmFkZCg0KSBpcyBzZXQKK1BBU1Mgc2V0
LmFkZCgnNCcpIGlzIHNldAorUEFTUyBzZXQuYWRkKDUpIGlzIHNldAorUEFTUyBzZXQuYWRkKCc1
JykgaXMgc2V0CitQQVNTIHNldC5hZGQoNikgaXMgc2V0CitQQVNTIHNldC5hZGQoJzYnKSBpcyBz
ZXQKK1BBU1Mgc2V0LnNpemUgaXMgMTQKK2ZvckVhY2ggIzAKK1BBU1MgdGVzdFRoaXMgaXMgdW5k
ZWZpbmVkLgorMAorZm9yRWFjaCAjMQorUEFTUyB0ZXN0VGhpcyBpcyB0aGlzVmFsdWUKKzEKKzAK
KzAKKzEKKzEKKzIKKzIKKzMKKzMKKzQKKzQKKzUKKzUKKzYKKzYKK1BBU1Mgc2V0LmZvckVhY2go
ZGVidWcpIGlzIHVuZGVmaW5lZC4KKzAgOiBudW1iZXIKKzAgOiBzdHJpbmcKKzEgOiBudW1iZXIK
KzEgOiBzdHJpbmcKKzIgOiBudW1iZXIKKzIgOiBzdHJpbmcKKzMgOiBzdHJpbmcKKzQgOiBzdHJp
bmcKKzUgOiBudW1iZXIKKzUgOiBzdHJpbmcKKzYgOiBudW1iZXIKKzYgOiBzdHJpbmcKKzQgOiBu
dW1iZXIKK1BBU1Mgc2V0LmhhcygwKSBpcyB0cnVlCitQQVNTIHNldC5oYXMoIjAiKSBpcyB0cnVl
CitQQVNTIHNldC5oYXMoMSkgaXMgdHJ1ZQorUEFTUyBzZXQuaGFzKCIxIikgaXMgdHJ1ZQorUEFT
UyBzZXQuaGFzKCIzIikgaXMgdHJ1ZQorUEFTUyBzZXQuaGFzKCI0IikgaXMgdHJ1ZQorUEFTUyBz
ZXQuaGFzKDUpIGlzIHRydWUKK1BBU1Mgc2V0LmhhcygiNSIpIGlzIHRydWUKK1BBU1Mgc2V0Lmhh
cyg2KSBpcyB0cnVlCitQQVNTIHNldC5oYXMoIjYiKSBpcyB0cnVlCitQQVNTIHNldC5oYXMoNCkg
aXMgdHJ1ZQorc2V0LkBAaXRlcmF0b3IoKQorUEFTUyBrZXkgaXMgMAorUEFTUyBrZXkgaXMgJzAn
CitQQVNTIGtleSBpcyAxCitQQVNTIGtleSBpcyAnMScKK1BBU1Mga2V5IGlzIDIKK1BBU1Mga2V5
IGlzICcyJworUEFTUyBrZXkgaXMgMworUEFTUyBrZXkgaXMgJzMnCitQQVNTIGtleSBpcyA0CitQ
QVNTIGtleSBpcyAnNCcKK1BBU1MgaSBpcyAxMAorc2V0LmVudHJpZXMoKQorUEFTUyBrZXkgaXMg
MAorUEFTUyB2YWx1ZSBpcyAwCitQQVNTIGtleSBpcyAnMCcKK1BBU1MgdmFsdWUgaXMgJzAnCitQ
QVNTIGtleSBpcyAxCitQQVNTIHZhbHVlIGlzIDEKK1BBU1Mga2V5IGlzICcxJworUEFTUyB2YWx1
ZSBpcyAnMScKK1BBU1Mga2V5IGlzIDIKK1BBU1MgdmFsdWUgaXMgMgorUEFTUyBrZXkgaXMgJzIn
CitQQVNTIHZhbHVlIGlzICcyJworUEFTUyBrZXkgaXMgMworUEFTUyB2YWx1ZSBpcyAzCitQQVNT
IGtleSBpcyAnMycKK1BBU1MgdmFsdWUgaXMgJzMnCitQQVNTIGtleSBpcyA0CitQQVNTIHZhbHVl
IGlzIDQKK1BBU1Mga2V5IGlzICc0JworUEFTUyB2YWx1ZSBpcyAnNCcKK1BBU1MgaSBpcyAxMAor
c2V0LmtleXMoKQorUEFTUyBrZXkgaXMgMAorUEFTUyBrZXkgaXMgJzAnCitQQVNTIGtleSBpcyAx
CitQQVNTIGtleSBpcyAnMScKK1BBU1Mga2V5IGlzIDIKK1BBU1Mga2V5IGlzICcyJworUEFTUyBr
ZXkgaXMgMworUEFTUyBrZXkgaXMgJzMnCitQQVNTIGtleSBpcyA0CitQQVNTIGtleSBpcyAnNCcK
K1BBU1MgaSBpcyAxMAorc2V0LnZhbHVlcygpCitQQVNTIHZhbHVlIGlzIDAKK1BBU1MgdmFsdWUg
aXMgJzAnCitQQVNTIHZhbHVlIGlzIDEKK1BBU1MgdmFsdWUgaXMgJzEnCitQQVNTIHZhbHVlIGlz
IDIKK1BBU1MgdmFsdWUgaXMgJzInCitQQVNTIHZhbHVlIGlzIDMKK1BBU1MgdmFsdWUgaXMgJzMn
CitQQVNTIHZhbHVlIGlzIDQKK1BBU1MgdmFsdWUgaXMgJzQnCitQQVNTIGkgaXMgMTAKK1NldCBt
dXRhdGlvbiB3aXRoIGxpdmUgaXRlcmF0b3IgYW5kIEdDCitQQVNTIGtleSBpcyAxCitQQVNTIGtl
eSBpcyAzCitQQVNTIGtleSBpcyA0CitQQVNTIGtleSBpcyA1CitQQVNTIGtleSBpcyA3CitQQVNT
IGkgaXMgNQorUEFTUyBzZXQuc2l6ZSBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYmFzaWMt
c2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9iYXNpYy1zZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjQy
NmNmNjUzNGExYzIzYzU0OTEzY2NjNmJmZTdkNDk5NWQzNmYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvYmFzaWMtc2V0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLXNldC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
YmFzaWMtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9iYXNpYy1zZXQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTYzOWY1NDkyZTY3YTQ5
ZDA3MjYyOGM2NjMyNzFlNmJjODc0OWYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9iYXNpYy1zZXQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLVRlc3RzIGJhc2ljIGNvcnJlY3RuZXNz
IG9mIEVTIFNldCBvYmplY3QKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mg
U2V0IGluc3RhbmNlb2YgU2V0IGlzIGZhbHNlCi1QQVNTIFNldC5wcm90b3R5cGUgaW5zdGFuY2Vv
ZiBTZXQgaXMgZmFsc2UKLVBBU1MgU2V0KCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQotUEFTUyBu
ZXcgU2V0KCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQotUEFTUyBTZXQobnVsbCkgaW5zdGFuY2Vv
ZiBTZXQgaXMgdHJ1ZQotUEFTUyBTZXQodW5kZWZpbmVkKSBpbnN0YW5jZW9mIFNldCBpcyB0cnVl
Ci1QQVNTIFNldCh1bmRlZmluZWQsIHVuZGVmaW5lZCkgaW5zdGFuY2VvZiBTZXQgaXMgdHJ1ZQot
UEFTUyBTZXQobnVsbCwgdW5kZWZpbmVkKSBpbnN0YW5jZW9mIFNldCBpcyB0cnVlCi1QQVNTIFNl
dCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZXQgZG9lcyBub3QgYWNjZXB0IGFyZ3Vt
ZW50cyB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLgotUEFTUyBTZXQodHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogU2V0IGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMgd2hlbiBjYWxs
ZWQgYXMgYSBmdW5jdGlvbi4KLVBBU1MgU2V0KFtdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBTZXQgZG9lcyBub3QgYWNjZXB0IGFyZ3VtZW50cyB3aGVuIGNhbGxlZCBhcyBhIGZ1bmN0aW9u
LgotUEFTUyBTZXQoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNldCBkb2VzIG5vdCBh
Y2NlcHQgYXJndW1lbnRzIHdoZW4gY2FsbGVkIGFzIGEgZnVuY3Rpb24uCi1QQVNTIFNldCh1bmRl
ZmluZWQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBSYW5nZUVycm9yOiBJbnZhbGlkIGNvbXBhcmF0
b3IgZnVuY3Rpb24uCi1QQVNTIFNldCh1bmRlZmluZWQsIHt9KSB0aHJldyBleGNlcHRpb24gUmFu
Z2VFcnJvcjogSW52YWxpZCBjb21wYXJhdG9yIGZ1bmN0aW9uLgotMQotdW5kZWZpbmVkCi10cnVl
Ci02Ci0xCi0wCi1bb2JqZWN0IE9iamVjdF0KLVBBU1MgT2JqZWN0Lmhhc093blByb3BlcnR5KHNl
dCwgJ3NpemUnKSBpcyBmYWxzZQotUEFTUyBTZXQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCdz
aXplJykgaXMgdHJ1ZQotUEFTUyBNYXAucHJvdG90eXBlLnNpemUgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTWFwIG9wZXJhdGlvbiBjYWxsZWQgb24gbm9uLU1hcCBvYmplY3QuCi1QQVNTIHNl
dC5zaXplIGlzIDAKLVBBU1Mgc2V0LmFkZCgtMCkgaXMgc2V0Ci1QQVNTIHNldC5hZGQoMCkgaXMg
c2V0Ci1QQVNTIHNldC5hZGQoSW5maW5pdHkpIGlzIHNldAotUEFTUyBzZXQuYWRkKC1JbmZpbml0
eSkgaXMgc2V0Ci1QQVNTIHNldC5hZGQoTmFOKSBpcyBzZXQKLVBBU1Mgc2V0LmFkZCgnMCcpIGlz
IHNldAotUEFTUyBzZXQuYWRkKDAuMSkgaXMgc2V0Ci1QQVNTIHNldC5zaXplIGlzIDcKLVBBU1Mg
c2V0LmhhcygtMCkgaXMgdHJ1ZQotUEFTUyBzZXQuaGFzKDApIGlzIHRydWUKLVBBU1Mgc2V0Lmhh
cyhJbmZpbml0eSkgaXMgdHJ1ZQotUEFTUyBzZXQuaGFzKC1JbmZpbml0eSkgaXMgdHJ1ZQotUEFT
UyBzZXQuaGFzKE5hTikgaXMgdHJ1ZQotUEFTUyBzZXQuaGFzKCcwJykgaXMgdHJ1ZQotUEFTUyBz
ZXQuaGFzKDAuMSkgaXMgdHJ1ZQotUEFTUyBzZXQuZGVsZXRlKC0wKSBpcyB0cnVlCi1QQVNTIHNl
dC5kZWxldGUoMCkgaXMgdHJ1ZQotUEFTUyBzZXQuZGVsZXRlKEluZmluaXR5KSBpcyB0cnVlCi1Q
QVNTIHNldC5kZWxldGUoLUluZmluaXR5KSBpcyB0cnVlCi1QQVNTIHNldC5kZWxldGUoTmFOKSBp
cyB0cnVlCi1QQVNTIHNldC5kZWxldGUoJzAnKSBpcyB0cnVlCi1QQVNTIHNldC5kZWxldGUoMC4x
KSBpcyB0cnVlCi1QQVNTIHNldC5kZWxldGUoLTApIGlzIGZhbHNlCi1QQVNTIHNldC5kZWxldGUo
MCkgaXMgZmFsc2UKLVBBU1Mgc2V0LmRlbGV0ZShJbmZpbml0eSkgaXMgZmFsc2UKLVBBU1Mgc2V0
LmRlbGV0ZSgtSW5maW5pdHkpIGlzIGZhbHNlCi1QQVNTIHNldC5kZWxldGUoTmFOKSBpcyBmYWxz
ZQotUEFTUyBzZXQuZGVsZXRlKCcwJykgaXMgZmFsc2UKLVBBU1Mgc2V0LmRlbGV0ZSgwLjEpIGlz
IGZhbHNlCi1QQVNTIHNldC5oYXMoc2ltcGxlU3RyaW5nKSBpcyB0cnVlCi1QQVNTIHNldC5oYXMo
b3RoZXJTdHJpbmcpIGlzIHRydWUKLVBBU1Mgc2V0LmNsZWFyKCkgaXMgdW5kZWZpbmVkLgotUEFT
UyBzZXQuc2l6ZSBpcyAwCi1QQVNTIHNldC5hZGQoMCkgaXMgc2V0Ci1QQVNTIHNldC5hZGQoJzAn
KSBpcyBzZXQKLVBBU1Mgc2V0LmFkZCgxKSBpcyBzZXQKLVBBU1Mgc2V0LmFkZCgnMScpIGlzIHNl
dAotUEFTUyBzZXQuYWRkKDIpIGlzIHNldAotUEFTUyBzZXQuYWRkKCcyJykgaXMgc2V0Ci1QQVNT
IHNldC5hZGQoMykgaXMgc2V0Ci1QQVNTIHNldC5hZGQoJzMnKSBpcyBzZXQKLVBBU1Mgc2V0LmFk
ZCg0KSBpcyBzZXQKLVBBU1Mgc2V0LmFkZCgnNCcpIGlzIHNldAotUEFTUyBzZXQuYWRkKDUpIGlz
IHNldAotUEFTUyBzZXQuYWRkKCc1JykgaXMgc2V0Ci1QQVNTIHNldC5hZGQoNikgaXMgc2V0Ci1Q
QVNTIHNldC5hZGQoJzYnKSBpcyBzZXQKLVBBU1Mgc2V0LnNpemUgaXMgMTQKLWZvckVhY2ggIzAK
LVBBU1MgdGVzdFRoaXMgaXMgdW5kZWZpbmVkLgotMAotZm9yRWFjaCAjMQotUEFTUyB0ZXN0VGhp
cyBpcyB0aGlzVmFsdWUKLTEKLTAKLTAKLTEKLTEKLTIKLTIKLTMKLTMKLTQKLTQKLTUKLTUKLTYK
LTYKLVBBU1Mgc2V0LmZvckVhY2goZGVidWcpIGlzIHVuZGVmaW5lZC4KLTAgOiBudW1iZXIKLTAg
OiBzdHJpbmcKLTEgOiBudW1iZXIKLTEgOiBzdHJpbmcKLTIgOiBudW1iZXIKLTIgOiBzdHJpbmcK
LTMgOiBzdHJpbmcKLTQgOiBzdHJpbmcKLTUgOiBudW1iZXIKLTUgOiBzdHJpbmcKLTYgOiBudW1i
ZXIKLTYgOiBzdHJpbmcKLTQgOiBudW1iZXIKLVBBU1Mgc2V0LmhhcygwKSBpcyB0cnVlCi1QQVNT
IHNldC5oYXMoIjAiKSBpcyB0cnVlCi1QQVNTIHNldC5oYXMoMSkgaXMgdHJ1ZQotUEFTUyBzZXQu
aGFzKCIxIikgaXMgdHJ1ZQotUEFTUyBzZXQuaGFzKCIzIikgaXMgdHJ1ZQotUEFTUyBzZXQuaGFz
KCI0IikgaXMgdHJ1ZQotUEFTUyBzZXQuaGFzKDUpIGlzIHRydWUKLVBBU1Mgc2V0LmhhcygiNSIp
IGlzIHRydWUKLVBBU1Mgc2V0Lmhhcyg2KSBpcyB0cnVlCi1QQVNTIHNldC5oYXMoIjYiKSBpcyB0
cnVlCi1QQVNTIHNldC5oYXMoNCkgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9i
YXNpYy1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9iYXNpYy1zZXQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY0MjZjZjY1MzRhMWMyM2M1NDkxM2NjYzZiZmU3ZDQ5
OTVkMzZmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9kb20vYmFzaWMtc2V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YmFzaWMtc2V0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYmFzaWMtc2V0LmpzIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlkZDFjNDdmNDRmMDQ3MGE1Njc0NzlmM2I4Y2U4YzUzMTc4ZjdmYzcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBA
QAotZGVzY3JpcHRpb24oIlRlc3RzIGJhc2ljIGNvcnJlY3RuZXNzIG9mIEVTIFNldCBvYmplY3Qi
KTsKLQotLy8gQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgaXRlcmF0b3JzLCBzbyB3ZSB0aHJv
dwotLy8gb24gYW55IG5vbi10aHJvd2luZyBwYXJhbWV0ZXJzCi1zaG91bGRCZUZhbHNlKCJTZXQg
aW5zdGFuY2VvZiBTZXQiKTsKLXNob3VsZEJlRmFsc2UoIlNldC5wcm90b3R5cGUgaW5zdGFuY2Vv
ZiBTZXQiKTsKLXNob3VsZEJlVHJ1ZSgiU2V0KCkgaW5zdGFuY2VvZiBTZXQiKTsKLXNob3VsZEJl
VHJ1ZSgibmV3IFNldCgpIGluc3RhbmNlb2YgU2V0Iik7Ci1zaG91bGRCZVRydWUoIlNldChudWxs
KSBpbnN0YW5jZW9mIFNldCIpOwotc2hvdWxkQmVUcnVlKCJTZXQodW5kZWZpbmVkKSBpbnN0YW5j
ZW9mIFNldCIpOwotc2hvdWxkQmVUcnVlKCJTZXQodW5kZWZpbmVkLCB1bmRlZmluZWQpIGluc3Rh
bmNlb2YgU2V0Iik7Ci1zaG91bGRCZVRydWUoIlNldChudWxsLCB1bmRlZmluZWQpIGluc3RhbmNl
b2YgU2V0Iik7Ci0KLXNob3VsZFRocm93KCJTZXQoMSkiKTsKLXNob3VsZFRocm93KCJTZXQodHJ1
ZSkiKTsKLXNob3VsZFRocm93KCJTZXQoW10pIik7Ci1zaG91bGRUaHJvdygiU2V0KHt9KSIpOwot
c2hvdWxkVGhyb3coIlNldCh1bmRlZmluZWQsIG51bGwpIik7Ci1zaG91bGRUaHJvdygiU2V0KHVu
ZGVmaW5lZCwge30pIik7Ci0KLS8vIEJhc2ljIHRlc3QgZm9yIGNvbnN0cnVjdG9yCi12YXIgc2V0
ID0gbmV3IFNldCgxLCB1bmRlZmluZWQsIHRydWUsIDYsIHRydWUsICIxIiwgMCwge30pCi1zZXQu
Zm9yRWFjaChkZWJ1Zyk7Ci0KLXZhciBzZXQgPSBuZXcgU2V0Owotc2hvdWxkQmVGYWxzZSgiT2Jq
ZWN0Lmhhc093blByb3BlcnR5KHNldCwgJ3NpemUnKSIpCi1zaG91bGRCZVRydWUoIlNldC5wcm90
b3R5cGUuaGFzT3duUHJvcGVydHkoJ3NpemUnKSIpCi1zaG91bGRUaHJvdygiTWFwLnByb3RvdHlw
ZS5zaXplIikKLXNob3VsZEJlKCJzZXQuc2l6ZSIsICIwIikKLXNob3VsZEJlKCJzZXQuYWRkKC0w
KSIsICJzZXQiKQotc2hvdWxkQmUoInNldC5hZGQoMCkiLCAic2V0IikKLXNob3VsZEJlKCJzZXQu
YWRkKEluZmluaXR5KSIsICJzZXQiKQotc2hvdWxkQmUoInNldC5hZGQoLUluZmluaXR5KSIsICJz
ZXQiKQotc2hvdWxkQmUoInNldC5hZGQoTmFOKSIsICJzZXQiKQotc2hvdWxkQmUoInNldC5hZGQo
JzAnKSIsICJzZXQiKQotc2hvdWxkQmUoInNldC5hZGQoMC4xKSIsICJzZXQiKQotc2hvdWxkQmUo
InNldC5zaXplIiwgIjciKQotCi1zaG91bGRCZVRydWUoInNldC5oYXMoLTApIikKLXNob3VsZEJl
VHJ1ZSgic2V0LmhhcygwKSIpCi1zaG91bGRCZVRydWUoInNldC5oYXMoSW5maW5pdHkpIikKLXNo
b3VsZEJlVHJ1ZSgic2V0LmhhcygtSW5maW5pdHkpIikKLXNob3VsZEJlVHJ1ZSgic2V0LmhhcyhO
YU4pIikKLXNob3VsZEJlVHJ1ZSgic2V0LmhhcygnMCcpIikKLXNob3VsZEJlVHJ1ZSgic2V0Lmhh
cygwLjEpIikKLQotc2hvdWxkQmVUcnVlKCJzZXQuZGVsZXRlKC0wKSIpCi1zaG91bGRCZVRydWUo
InNldC5kZWxldGUoMCkiKQotc2hvdWxkQmVUcnVlKCJzZXQuZGVsZXRlKEluZmluaXR5KSIpCi1z
aG91bGRCZVRydWUoInNldC5kZWxldGUoLUluZmluaXR5KSIpCi1zaG91bGRCZVRydWUoInNldC5k
ZWxldGUoTmFOKSIpCi1zaG91bGRCZVRydWUoInNldC5kZWxldGUoJzAnKSIpCi1zaG91bGRCZVRy
dWUoInNldC5kZWxldGUoMC4xKSIpCi0KLXNob3VsZEJlRmFsc2UoInNldC5kZWxldGUoLTApIikK
LXNob3VsZEJlRmFsc2UoInNldC5kZWxldGUoMCkiKQotc2hvdWxkQmVGYWxzZSgic2V0LmRlbGV0
ZShJbmZpbml0eSkiKQotc2hvdWxkQmVGYWxzZSgic2V0LmRlbGV0ZSgtSW5maW5pdHkpIikKLXNo
b3VsZEJlRmFsc2UoInNldC5kZWxldGUoTmFOKSIpCi1zaG91bGRCZUZhbHNlKCJzZXQuZGVsZXRl
KCcwJykiKQotc2hvdWxkQmVGYWxzZSgic2V0LmRlbGV0ZSgwLjEpIikKLQotdmFyIHNpbXBsZVN0
cmluZyA9ICJhYWFhYSI7Ci12YXIgb3RoZXJTdHJpbmcgPSAiIjsKLWZvciAodmFyIGkgPSAwOyBp
IDwgNTsgaSsrKQotCW90aGVyU3RyaW5nICs9ICJhIgotc2V0LmFkZChzaW1wbGVTdHJpbmcsIHt9
KTsKLXNob3VsZEJlVHJ1ZSgic2V0LmhhcyhzaW1wbGVTdHJpbmcpIikKLXNob3VsZEJlVHJ1ZSgi
c2V0LmhhcyhvdGhlclN0cmluZykiKTsKLQotCi0KLXNob3VsZEJlVW5kZWZpbmVkKCJzZXQuY2xl
YXIoKSIpOwotc2hvdWxkQmUoInNldC5zaXplIiwgIjAiKQotdmFyIGNvdW50ID0gNzsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgIHNob3VsZEJlKCJzZXQuYWRkKCIgKyBp
ICsgIikiLCAic2V0IikKLSAgICBzaG91bGRCZSgic2V0LmFkZCgnIiArIGkgKyAiJykiLCAic2V0
IikKLX0KLQotc2hvdWxkQmUoInNldC5zaXplIiwgIjE0IikKLQotdmFyIHRoaXNWYWx1ZSA9IDB4
ZjAwCi12YXIgdGVzdFRoaXM7Ci12YXIgY291bnQgPSAwOwotCi10cnkgewotCXNldC5mb3JFYWNo
KGZ1bmN0aW9uKCkgeyAidXNlIHN0cmljdCI7IGRlYnVnKCJmb3JFYWNoICMwIik7IHRlc3RUaGlz
ID0gdGhpczsgc2hvdWxkQmVVbmRlZmluZWQoInRlc3RUaGlzIik7IHRocm93IGNvdW50Kys7ICB9
KQotfSBjYXRjaChlKSB7Ci0gICAgZGVidWcoZSkKLX0KLXRyeSB7Ci0gICAgc2V0LmZvckVhY2go
ZnVuY3Rpb24oKSB7ICJ1c2Ugc3RyaWN0IjsgZGVidWcoImZvckVhY2ggIzEiKTsgdGVzdFRoaXMg
PSB0aGlzOyBzaG91bGRCZSgidGVzdFRoaXMiLCAidGhpc1ZhbHVlIik7IHRocm93IGNvdW50Kys7
ICB9LCB0aGlzVmFsdWUpCi19IGNhdGNoKGUpIHsKLSAgICBkZWJ1ZyhlKQotfQotCi1zaG91bGRC
ZVVuZGVmaW5lZCgnc2V0LmZvckVhY2goZGVidWcpJykKLQotdmFyIGtleXMgPSBbXTsKLXNldC5m
b3JFYWNoKGZ1bmN0aW9uIChrKSB7Ci0JZGVidWcoayArICIgOiAiICsgdHlwZW9mIChrKSkKLQot
CWlmIChrID09IDIpIHsKLQkJc2V0LmRlbGV0ZSgzKQotCQlzZXQuZGVsZXRlKDIpCi0JfSBlbHNl
Ci0Ja2V5cy5wdXNoKGspOwotCWlmIChrID09ICIzIikgewotCQlzZXQuYWRkKCIzIik7Ci0JCXNl
dC5kZWxldGUoNCkKLQkJc2V0LmFkZCg0KQotCX0KLQlnYygpCi19KQotCi1nYygpOwotZm9yICh2
YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7Ci0JdmFyIGV4cGVjdGVkS2V5ID0ga2V5
c1tpXQotCXNob3VsZEJlVHJ1ZSgic2V0LmhhcygiK0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5
KSsiKSIpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Jhc2lj
LXNldC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTE0ZjA1NDdmNjcyY2ViNzI5NjZkMDExNjgxM2U0OWM1OTBkZWRmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9iYXNpYy1zZXQuanMKQEAgLTAs
MCArMSwxOTkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBiYXNpYyBjb3JyZWN0bmVzcyBvZiBFUyBT
ZXQgb2JqZWN0Iik7CisKKy8vIEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IGl0ZXJhdG9ycywg
c28gd2UgdGhyb3cKKy8vIG9uIGFueSBub24tdGhyb3dpbmcgcGFyYW1ldGVycworc2hvdWxkQmVG
YWxzZSgiU2V0IGluc3RhbmNlb2YgU2V0Iik7CitzaG91bGRCZUZhbHNlKCJTZXQucHJvdG90eXBl
IGluc3RhbmNlb2YgU2V0Iik7CitzaG91bGRCZVRydWUoIlNldCgpIGluc3RhbmNlb2YgU2V0Iik7
CitzaG91bGRCZVRydWUoIm5ldyBTZXQoKSBpbnN0YW5jZW9mIFNldCIpOworc2hvdWxkQmVUcnVl
KCJTZXQobnVsbCkgaW5zdGFuY2VvZiBTZXQiKTsKK3Nob3VsZEJlVHJ1ZSgiU2V0KHVuZGVmaW5l
ZCkgaW5zdGFuY2VvZiBTZXQiKTsKK3Nob3VsZEJlVHJ1ZSgiU2V0KHVuZGVmaW5lZCwgdW5kZWZp
bmVkKSBpbnN0YW5jZW9mIFNldCIpOworc2hvdWxkQmVUcnVlKCJTZXQobnVsbCwgdW5kZWZpbmVk
KSBpbnN0YW5jZW9mIFNldCIpOworCitzaG91bGRUaHJvdygiU2V0KDEpIik7CitzaG91bGRUaHJv
dygiU2V0KHRydWUpIik7CitzaG91bGRUaHJvdygiU2V0KFtdKSIpOworc2hvdWxkVGhyb3coIlNl
dCh7fSkiKTsKK3Nob3VsZFRocm93KCJTZXQodW5kZWZpbmVkLCBudWxsKSIpOworc2hvdWxkVGhy
b3coIlNldCh1bmRlZmluZWQsIHt9KSIpOworCisvLyBCYXNpYyB0ZXN0IGZvciBjb25zdHJ1Y3Rv
cgordmFyIHNldCA9IG5ldyBTZXQoMSwgdW5kZWZpbmVkLCB0cnVlLCA2LCB0cnVlLCAiMSIsIDAs
IHt9KQorc2V0LmZvckVhY2goZGVidWcpOworCit2YXIgc2V0ID0gbmV3IFNldDsKK3Nob3VsZEJl
RmFsc2UoIk9iamVjdC5oYXNPd25Qcm9wZXJ0eShzZXQsICdzaXplJykiKQorc2hvdWxkQmVUcnVl
KCJTZXQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCdzaXplJykiKQorc2hvdWxkVGhyb3coIk1h
cC5wcm90b3R5cGUuc2l6ZSIpCitzaG91bGRCZSgic2V0LnNpemUiLCAiMCIpCitzaG91bGRCZSgi
c2V0LmFkZCgtMCkiLCAic2V0IikKK3Nob3VsZEJlKCJzZXQuYWRkKDApIiwgInNldCIpCitzaG91
bGRCZSgic2V0LmFkZChJbmZpbml0eSkiLCAic2V0IikKK3Nob3VsZEJlKCJzZXQuYWRkKC1JbmZp
bml0eSkiLCAic2V0IikKK3Nob3VsZEJlKCJzZXQuYWRkKE5hTikiLCAic2V0IikKK3Nob3VsZEJl
KCJzZXQuYWRkKCcwJykiLCAic2V0IikKK3Nob3VsZEJlKCJzZXQuYWRkKDAuMSkiLCAic2V0IikK
K3Nob3VsZEJlKCJzZXQuc2l6ZSIsICI3IikKKworc2hvdWxkQmVUcnVlKCJzZXQuaGFzKC0wKSIp
CitzaG91bGRCZVRydWUoInNldC5oYXMoMCkiKQorc2hvdWxkQmVUcnVlKCJzZXQuaGFzKEluZmlu
aXR5KSIpCitzaG91bGRCZVRydWUoInNldC5oYXMoLUluZmluaXR5KSIpCitzaG91bGRCZVRydWUo
InNldC5oYXMoTmFOKSIpCitzaG91bGRCZVRydWUoInNldC5oYXMoJzAnKSIpCitzaG91bGRCZVRy
dWUoInNldC5oYXMoMC4xKSIpCisKK3Nob3VsZEJlVHJ1ZSgic2V0LmRlbGV0ZSgtMCkiKQorc2hv
dWxkQmVUcnVlKCJzZXQuZGVsZXRlKDApIikKK3Nob3VsZEJlVHJ1ZSgic2V0LmRlbGV0ZShJbmZp
bml0eSkiKQorc2hvdWxkQmVUcnVlKCJzZXQuZGVsZXRlKC1JbmZpbml0eSkiKQorc2hvdWxkQmVU
cnVlKCJzZXQuZGVsZXRlKE5hTikiKQorc2hvdWxkQmVUcnVlKCJzZXQuZGVsZXRlKCcwJykiKQor
c2hvdWxkQmVUcnVlKCJzZXQuZGVsZXRlKDAuMSkiKQorCitzaG91bGRCZUZhbHNlKCJzZXQuZGVs
ZXRlKC0wKSIpCitzaG91bGRCZUZhbHNlKCJzZXQuZGVsZXRlKDApIikKK3Nob3VsZEJlRmFsc2Uo
InNldC5kZWxldGUoSW5maW5pdHkpIikKK3Nob3VsZEJlRmFsc2UoInNldC5kZWxldGUoLUluZmlu
aXR5KSIpCitzaG91bGRCZUZhbHNlKCJzZXQuZGVsZXRlKE5hTikiKQorc2hvdWxkQmVGYWxzZSgi
c2V0LmRlbGV0ZSgnMCcpIikKK3Nob3VsZEJlRmFsc2UoInNldC5kZWxldGUoMC4xKSIpCisKK3Zh
ciBzaW1wbGVTdHJpbmcgPSAiYWFhYWEiOwordmFyIG90aGVyU3RyaW5nID0gIiI7Citmb3IgKHZh
ciBpID0gMDsgaSA8IDU7IGkrKykKKwlvdGhlclN0cmluZyArPSAiYSIKK3NldC5hZGQoc2ltcGxl
U3RyaW5nLCB7fSk7CitzaG91bGRCZVRydWUoInNldC5oYXMoc2ltcGxlU3RyaW5nKSIpCitzaG91
bGRCZVRydWUoInNldC5oYXMob3RoZXJTdHJpbmcpIik7CisKKworCitzaG91bGRCZVVuZGVmaW5l
ZCgic2V0LmNsZWFyKCkiKTsKK3Nob3VsZEJlKCJzZXQuc2l6ZSIsICIwIikKK3ZhciBjb3VudCA9
IDc7Citmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICBzaG91bGRCZSgic2V0
LmFkZCgiICsgaSArICIpIiwgInNldCIpCisgICAgc2hvdWxkQmUoInNldC5hZGQoJyIgKyBpICsg
IicpIiwgInNldCIpCit9CisKK3Nob3VsZEJlKCJzZXQuc2l6ZSIsICIxNCIpCisKK3ZhciB0aGlz
VmFsdWUgPSAweGYwMAordmFyIHRlc3RUaGlzOwordmFyIGNvdW50ID0gMDsKKwordHJ5IHsKKwlz
ZXQuZm9yRWFjaChmdW5jdGlvbigpIHsgInVzZSBzdHJpY3QiOyBkZWJ1ZygiZm9yRWFjaCAjMCIp
OyB0ZXN0VGhpcyA9IHRoaXM7IHNob3VsZEJlVW5kZWZpbmVkKCJ0ZXN0VGhpcyIpOyB0aHJvdyBj
b3VudCsrOyAgfSkKK30gY2F0Y2goZSkgeworICAgIGRlYnVnKGUpCit9Cit0cnkgeworICAgIHNl
dC5mb3JFYWNoKGZ1bmN0aW9uKCkgeyAidXNlIHN0cmljdCI7IGRlYnVnKCJmb3JFYWNoICMxIik7
IHRlc3RUaGlzID0gdGhpczsgc2hvdWxkQmUoInRlc3RUaGlzIiwgInRoaXNWYWx1ZSIpOyB0aHJv
dyBjb3VudCsrOyAgfSwgdGhpc1ZhbHVlKQorfSBjYXRjaChlKSB7CisgICAgZGVidWcoZSkKK30K
Kworc2hvdWxkQmVVbmRlZmluZWQoJ3NldC5mb3JFYWNoKGRlYnVnKScpCisKK3ZhciBrZXlzID0g
W107CitzZXQuZm9yRWFjaChmdW5jdGlvbiAoaykgeworCWRlYnVnKGsgKyAiIDogIiArIHR5cGVv
ZiAoaykpCisKKwlpZiAoayA9PSAyKSB7CisJCXNldC5kZWxldGUoMykKKwkJc2V0LmRlbGV0ZSgy
KQorCX0gZWxzZQorCWtleXMucHVzaChrKTsKKwlpZiAoayA9PSAiMyIpIHsKKwkJc2V0LmFkZCgi
MyIpOworCQlzZXQuZGVsZXRlKDQpCisJCXNldC5hZGQoNCkKKwl9CisJZ2MoKQorfSkKKworZ2Mo
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworCXZhciBleHBlY3Rl
ZEtleSA9IGtleXNbaV0KKwlzaG91bGRCZVRydWUoInNldC5oYXMoIitKU09OLnN0cmluZ2lmeShl
eHBlY3RlZEtleSkrIikiKTsKK30KKworCisKK3NldCA9IG5ldyBTZXQ7CisKK3ZhciBjb3VudCA9
IDU7Cit2YXIga2V5cyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cisg
ICAgc2V0LmFkZChpKQorICAgIHNldC5hZGQoIiIgKyBpKQorICAgIGtleXMucHVzaCgiIiArIGkp
CisgICAga2V5cy5wdXNoKCInIiArIGkgKyAiJyIpCit9CisKK3ZhciBpID0gMDsKKworZGVidWco
InNldC5AQGl0ZXJhdG9yKCkiKQorZm9yICh2YXIga2V5IG9mIHNldCkgeworICAgIHNob3VsZEJl
KCJrZXkiLCAiIiArIGtleXNbaV0pCisgICAgaSsrOworfQorc2hvdWxkQmUoImkiLCAiIiArIGNv
dW50ICogMikKKworZGVidWcoInNldC5lbnRyaWVzKCkiKQordmFyIGkgPSAwOworZm9yICh2YXIg
W2tleSwgdmFsdWVdIG9mIHNldC5lbnRyaWVzKCkpIHsKKyAgICBzaG91bGRCZSgia2V5IiwgIiIg
KyBrZXlzW2ldKQorICAgIHNob3VsZEJlKCJ2YWx1ZSIsICIiICsga2V5c1tpXSkKKyAgICBpKys7
Cit9CitzaG91bGRCZSgiaSIsICIiICsgY291bnQgKiAyKQorCitkZWJ1Zygic2V0LmtleXMoKSIp
Cit2YXIgaSA9IDA7Citmb3IgKHZhciBrZXkgb2Ygc2V0LmtleXMoKSkgeworICAgIHNob3VsZEJl
KCJrZXkiLCAiIiArIGtleXNbaV0pCisgICAgaSsrOworfQorc2hvdWxkQmUoImkiLCAiIiArIGNv
dW50ICogMikKKwordmFyIGkgPSAwOworZGVidWcoInNldC52YWx1ZXMoKSIpCitmb3IgKHZhciB2
YWx1ZSBvZiBzZXQudmFsdWVzKCkpIHsKKyAgICBzaG91bGRCZSgidmFsdWUiLCAiIiArIGtleXNb
aV0pCisgICAgaSsrOworfQorc2hvdWxkQmUoImkiLCAiIiArIGNvdW50ICogMikKKworZGVidWco
IlNldCBtdXRhdGlvbiB3aXRoIGxpdmUgaXRlcmF0b3IgYW5kIEdDIikKK3NldCA9IG5ldyBTZXQ7
CitzZXQuYWRkKDApCitzZXQuYWRkKDEpCitzZXQuYWRkKDIpCitzZXQuYWRkKDMpCitzZXQuYWRk
KDQpCitzZXQuYWRkKDUpCitzZXQuYWRkKDYpCitzZXQuYWRkKDcpCitzZXQuYWRkKDkpCitzZXQu
YWRkKDE0KQorCit2YXIga2V5cyA9IFsxLDMsNCw1LDddCit2YXIga2V5SXRlcmF0b3IgPSBzZXQu
a2V5cygpOworZ2MoKTsKK3NldC5kZWxldGUoMCkKK2djKCkKK3ZhciBpID0gMDsKK2ZvciAodmFy
IGtleSBvZiBrZXlJdGVyYXRvcikgeworICAgIHNob3VsZEJlKCJrZXkiLCAiIiArIGtleXNbaV0p
CisgICAgaWYgKGtleSA9PSA3KQorICAgICAgICBzZXQuZGVsZXRlKDkpCisgICAgc2V0LmRlbGV0
ZSgxKQorICAgIHNldC5kZWxldGUoa2V5ICogMikKKyAgICBnYygpCisgICAgaSsrCit9CitzaG91
bGRCZSgiaSIsICI1IikKK3Nob3VsZEJlKCJzZXQuc2l6ZSIsICI0Iik7Cg==
</data>
<flag name="review"
          id="239516"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>