<?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>40903</bug_id>
          
          <creation_ts>2010-06-21 00:53:08 -0700</creation_ts>
          <short_desc>[Qt] QScriptValue should have API for accessing object properties</short_desc>
          <delta_ts>2010-07-06 07:20:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40613</dependson>
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Hansen">kent.hansen</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>240618</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-06-21 00:53:08 -0700</bug_when>
    <thetext>See http://doc.trolltech.com/4.6/qscriptvalue.html#property and http://doc.trolltech.com/4.6/qscriptvalue.html#setProperty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241099</commentid>
    <comment_count>1</comment_count>
      <attachid>59336</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-06-21 22:05:27 -0700</bug_when>
    <thetext>Created attachment 59336
Partial patch v1

This implements just the ResolvePrototype case for property(), still need to dig the C API for a way to get the own property only. However, as is, it&apos;s already useful to enhance our tests of other features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241186</commentid>
    <comment_count>2</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-22 01:43:17 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=59336) [details]
&gt; Partial patch v1
&gt; 
&gt; This implements just the ResolvePrototype case for property(), still need to dig the C API for a way to get the own property only. However, as is, it&apos;s already useful to enhance our tests of other features.

Looks good to me :-).

Next time we should be more in sync as I have a patch for this bug (it contains setProperty too). I will rebase mine after yours will be applied. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243706</commentid>
    <comment_count>3</comment_count>
      <attachid>59336</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 08:20:10 -0700</bug_when>
    <thetext>Comment on attachment 59336
Partial patch v1

Clearing flags on attachment: 59336

Committed r62007: &lt;http://trac.webkit.org/changeset/62007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243707</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-28 08:20:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243770</commentid>
    <comment_count>5</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-06-28 10:44:32 -0700</bug_when>
    <thetext>Thanks, folks. But we probably should keep this bugs open so Jędrzej can land the other patch. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246924</commentid>
    <comment_count>6</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-06 00:48:28 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Thanks, folks. But we probably should keep this bugs open so Jędrzej can land the other patch. :-)
yes, it would be nice ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246925</commentid>
    <comment_count>7</comment_count>
      <attachid>60600</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-06 00:53:02 -0700</bug_when>
    <thetext>Created attachment 60600
Fix v2

I added setProperty() and a few additional flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246938</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-07-06 01:26:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=60600) [details]
&gt; Fix v2
&gt; 
&gt; I added setProperty() and a few additional flags

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247056</commentid>
    <comment_count>9</comment_count>
      <attachid>60600</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-06 06:37:48 -0700</bug_when>
    <thetext>Comment on attachment 60600
Fix v2

Great testing as always.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247059</commentid>
    <comment_count>10</comment_count>
      <attachid>60600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-06 06:55:45 -0700</bug_when>
    <thetext>Comment on attachment 60600
Fix v2

Clearing flags on attachment: 60600

Committed r62547: &lt;http://trac.webkit.org/changeset/62547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247060</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-06 06:55:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247068</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-06 07:20:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62547 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59336</attachid>
            <date>2010-06-21 22:05:27 -0700</date>
            <delta_ts>2010-07-06 00:53:02 -0700</delta_ts>
            <desc>Partial patch v1</desc>
            <filename>0001-Partial-implementation-of-QScriptValue-property.patch</filename>
            <type>text/plain</type>
            <size>8515</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSAyODUzMDQ5OTY0ZDkwMjZkZTcxY2ZlYjg0MmQwZTc1Mzc5ZGE2ZTA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAxMCAwMTo0Nzo1MSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgUVNjcmlwdFZh
bHVlOjpwcm9wZXJ0eSgpCgpbUXRdIFFTY3JpcHRWYWx1ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIGFj
Y2Vzc2luZyBvYmplY3QgcHJvcGVydGllcwpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDA5MDMKCk1ha2UgcG9zc2libGUgdG8gYWNjZXNzIHByb3BlcnRpZXMgaW5zaWRl
IFFTY3JpcHRWYWx1ZXMuIFdoaWxlIHRoaXMKc3RpbGwgZG9lc24ndCBzdXBwb3J0IHRoZSBSZXNv
bHZlTG9jYWwgcGFyYW1ldGVyLCBpdCBpcyBhbHJlYWR5IHVzZWZ1bApmb3IgdGVzdGluZyB0aGUg
QVBJLgoKVGhlIHRlc3RzIGZyb20gdXBzdHJlYW0gUXRTY3JpcHQgd2VyZW4ndCBpbXBvcnRlZCBz
aW5jZSBtb3N0IG9mIHRoZW0KZGVwZW5kIG9uIHRoZSBzZXRQcm9wZXJ0eSgpIGZ1bmN0aW9uIGFz
IHdlbGwuIEEgc2ltcGxlIHRlc3Qgd2FzIGNyZWF0ZWQuCi0tLQogSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrKysrKysrKwogSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAgICAgICAgICAgICAgfCAgIDM4ICsr
KysrKysrKysrKysrKysrKysrCiBKYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgg
ICAgICAgICAgICAgICB8ICAgMTIgKysrKysrLQogSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3Jp
cHR2YWx1ZV9wLmggICAgICAgICAgICAgfCAgIDMyICsrKysrKysrKysrKysrKysKIC4uLi9xdC90
ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAgICAgIHwgICAxMyArKysrKysr
CiAuLi4vcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaCAgICAgICB8ICAg
IDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKaW5kZXggNGEyYjViMi4uODUyYTIwZCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEwLTA2LTIxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9s
aXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW1F0XSBRU2NyaXB0VmFsdWUgc2hvdWxkIGhhdmUgQVBJIGZvciBhY2Nl
c3Npbmcgb2JqZWN0IHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwOTAzCisKKyAgICAgICAgTWFrZSBwb3NzaWJsZSB0byBhY2Nlc3Mg
cHJvcGVydGllcyBpbnNpZGUgUVNjcmlwdFZhbHVlcy4gV2hpbGUgdGhpcworICAgICAgICBzdGls
bCBkb2Vzbid0IHN1cHBvcnQgdGhlIFJlc29sdmVMb2NhbCBwYXJhbWV0ZXIsIGl0IGlzIGFscmVh
ZHkgdXNlZnVsCisgICAgICAgIGZvciB0ZXN0aW5nIHRoZSBBUEkuCisKKyAgICAgICAgVGhlIHRl
c3RzIGZyb20gdXBzdHJlYW0gUXRTY3JpcHQgd2VyZW4ndCBpbXBvcnRlZCBzaW5jZSBtb3N0IG9m
IHRoZW0KKyAgICAgICAgZGVwZW5kIG9uIHRoZSBzZXRQcm9wZXJ0eSgpIGZ1bmN0aW9uIGFzIHdl
bGwuIEEgc2ltcGxlIHRlc3Qgd2FzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlw
dHZhbHVlLmNwcDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZTo6cHJvcGVydHkpOgorICAgICAgICAq
IHF0L2FwaS9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZTo6KToKKyAgICAg
ICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZh
dGU6OnByb3BlcnR5KToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZS5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpwcm9wZXJ0eVNpbXBsZSk6
CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaDoKKwog
MjAxMC0wNi0yMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
LmNwcAppbmRleCAyMmZmOGJlLi45ZjVkYjVjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dHZhbHVlLmNwcApAQCAtNTk5LDMgKzU5OSw0MSBAQCBib29sIFFTY3JpcHRWYWx1ZTo6aW5zdGFu
Y2VPZihjb25zdCBRU2NyaXB0VmFsdWUmIG90aGVyKSBjb25zdAogewogICAgIHJldHVybiBkX3B0
ci0+aW5zdGFuY2VPZihRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQob3RoZXIpKTsKIH0KKworLyoh
CisgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgUVNjcmlwdFZhbHVlJ3MgcHJvcGVydHkgd2l0
aCB0aGUgZ2l2ZW4gXGEgbmFtZSwKKyAgdXNpbmcgdGhlIGdpdmVuIFxhIG1vZGUgdG8gcmVzb2x2
ZSB0aGUgcHJvcGVydHkuCisKKyAgSWYgbm8gc3VjaCBwcm9wZXJ0eSBleGlzdHMsIGFuIGludmFs
aWQgUVNjcmlwdFZhbHVlIGlzIHJldHVybmVkLgorCisgIElmIHRoZSBwcm9wZXJ0eSBpcyBpbXBs
ZW1lbnRlZCB1c2luZyBhIGdldHRlciBmdW5jdGlvbiAoaS5lLiBoYXMgdGhlCisgIFByb3BlcnR5
R2V0dGVyIGZsYWcgc2V0KSwgY2FsbGluZyBwcm9wZXJ0eSgpIGhhcyBzaWRlLWVmZmVjdHMgb24g
dGhlCisgIHNjcmlwdCBlbmdpbmUsIHNpbmNlIHRoZSBnZXR0ZXIgZnVuY3Rpb24gd2lsbCBiZSBj
YWxsZWQgKHBvc3NpYmx5CisgIHJlc3VsdGluZyBpbiBhbiB1bmNhdWdodCBzY3JpcHQgZXhjZXB0
aW9uKS4gSWYgYW4gZXhjZXB0aW9uCisgIG9jY3VycmVkLCBwcm9wZXJ0eSgpIHJldHVybnMgdGhl
IHZhbHVlIHRoYXQgd2FzIHRocm93biAodHlwaWNhbGx5CisgIGFuIFxje0Vycm9yfSBvYmplY3Qp
LgorCisgIFxzYSBzZXRQcm9wZXJ0eSgpLCBwcm9wZXJ0eUZsYWdzKCksIFFTY3JpcHRWYWx1ZUl0
ZXJhdG9yCisqLworUVNjcmlwdFZhbHVlIFFTY3JpcHRWYWx1ZTo6cHJvcGVydHkoY29uc3QgUVN0
cmluZyYgbmFtZSwgY29uc3QgUmVzb2x2ZUZsYWdzJiBtb2RlKSBjb25zdAoreworICAgIHJldHVy
biBRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQoZF9wdHItPnByb3BlcnR5KG5hbWUsIG1vZGUpKTsK
K30KKworLyohCisgIFxvdmVybG9hZAorCisgIFJldHVybnMgdGhlIHByb3BlcnR5IGF0IHRoZSBn
aXZlbiBcYSBhcnJheUluZGV4LCB1c2luZyB0aGUgZ2l2ZW4gXGEKKyAgbW9kZSB0byByZXNvbHZl
IHRoZSBwcm9wZXJ0eS4KKworICBUaGlzIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjb252ZW5p
ZW5jZSBhbmQgcGVyZm9ybWFuY2Ugd2hlbgorICB3b3JraW5nIHdpdGggYXJyYXkgb2JqZWN0cy4K
KworICBJZiB0aGlzIFFTY3JpcHRWYWx1ZSBpcyBub3QgYW4gQXJyYXkgb2JqZWN0LCB0aGlzIGZ1
bmN0aW9uIGJlaGF2ZXMKKyAgYXMgaWYgcHJvcGVydHkoKSB3YXMgY2FsbGVkIHdpdGggdGhlIHN0
cmluZyByZXByZXNlbnRhdGlvbiBvZiBcYQorICBhcnJheUluZGV4LgorKi8KK1FTY3JpcHRWYWx1
ZSBRU2NyaXB0VmFsdWU6OnByb3BlcnR5KHF1aW50MzIgYXJyYXlJbmRleCwgY29uc3QgUmVzb2x2
ZUZsYWdzJiBtb2RlKSBjb25zdAoreworICAgIHJldHVybiBRU2NyaXB0VmFsdWVQcml2YXRlOjpn
ZXQoZF9wdHItPnByb3BlcnR5KGFycmF5SW5kZXgsIG1vZGUpKTsKK30KZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2Fw
aS9xc2NyaXB0dmFsdWUuaAppbmRleCA2YzQyNDI5Li5iNzM0ZTQwIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQv
YXBpL3FzY3JpcHR2YWx1ZS5oCkBAIC0zMiw3ICszMiwxNCBAQCB0eXBlZGVmIFFMaXN0PFFTY3Jp
cHRWYWx1ZT4gUVNjcmlwdFZhbHVlTGlzdDsKIHR5cGVkZWYgZG91YmxlIHFzcmVhbDsKIAogY2xh
c3MgUVNjcmlwdFZhbHVlIHsKLXB1YmxpYzogICAgCitwdWJsaWM6CisgICAgZW51bSBSZXNvbHZl
RmxhZyB7CisgICAgICAgIFJlc29sdmVMb2NhbCAgICAgPSAweDAwLAorICAgICAgICBSZXNvbHZl
UHJvdG90eXBlID0gMHgwMQorICAgIH07CisKKyAgICBRX0RFQ0xBUkVfRkxBR1MoUmVzb2x2ZUZs
YWdzLCBSZXNvbHZlRmxhZykKKwogICAgIGVudW0gU3BlY2lhbFZhbHVlIHsKICAgICAgICAgTnVs
bFZhbHVlLAogICAgICAgICBVbmRlZmluZWRWYWx1ZQpAQCAtNjMsNiArNzAsOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzdHJpY3RseUVxdWFscyhjb25zdCBRU2NyaXB0VmFsdWUmIG90aGVyKSBjb25z
dDsKICAgICBib29sIGluc3RhbmNlT2YoY29uc3QgUVNjcmlwdFZhbHVlJiBvdGhlcikgY29uc3Q7
CiAKKyAgICBRU2NyaXB0VmFsdWUgcHJvcGVydHkoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3Qg
UmVzb2x2ZUZsYWdzJiBtb2RlID0gUmVzb2x2ZVByb3RvdHlwZSkgY29uc3Q7CisgICAgUVNjcmlw
dFZhbHVlIHByb3BlcnR5KHF1aW50MzIgYXJyYXlJbmRleCwgY29uc3QgUmVzb2x2ZUZsYWdzJiBt
b2RlID0gUmVzb2x2ZVByb3RvdHlwZSkgY29uc3Q7CisKICAgICBRU2NyaXB0RW5naW5lKiBlbmdp
bmUoKSBjb25zdDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCAxYmI4YTc3Li41OGI3ZjY3IDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtMTE2LDYgKzExNiw5IEBAIHB1YmxpYzoKICAg
ICBpbmxpbmUgYm9vbCBpbnN0YW5jZU9mKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKTsKICAg
ICBpbmxpbmUgYm9vbCBhc3NpZ25FbmdpbmUoUVNjcmlwdEVuZ2luZVByaXZhdGUqIGVuZ2luZSk7
CiAKKyAgICBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogcHJvcGVydHkoY29uc3QgUVN0cmlu
ZyYgbmFtZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpSZXNvbHZlRmxhZ3MmIG1vZGUpOworICAgIGlu
bGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBwcm9wZXJ0eShxdWludDMyIGFycmF5SW5kZXgsIGNv
bnN0IFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUZsYWdzJiBtb2RlKTsKKwogICAgIGlubGluZSBRU2Ny
aXB0VmFsdWVQcml2YXRlKiBjYWxsKGNvbnN0IFFTY3JpcHRWYWx1ZVByaXZhdGUqICwgY29uc3Qg
UVNjcmlwdFZhbHVlTGlzdCYgYXJncyk7CiAKICAgICBpbmxpbmUgb3BlcmF0b3IgSlNWYWx1ZVJl
ZigpIGNvbnN0OwpAQCAtNzE3LDYgKzcyMCwzNSBAQCBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6
OmFzc2lnbkVuZ2luZShRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKQogICAgIHJldHVybiB0
cnVlOwogfQogCitpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6cHJvcGVydHkoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpSZXNv
bHZlRmxhZ3MmIG1vZGUpCit7CisgICAgaWYgKCFpc09iamVjdCgpKQorICAgICAgICByZXR1cm4g
bmV3IFFTY3JpcHRWYWx1ZVByaXZhdGU7CisKKyAgICBpZiAobW9kZSAmIFFTY3JpcHRWYWx1ZTo6
UmVzb2x2ZUxvY2FsKSB7CisgICAgICAgIHFXYXJuaW5nKCJRU2NyaXB0VmFsdWU6OnByb3BlcnR5
KCk6IFJlc29sdmVMb2NhbCBub3Qgc3VwcG9ydGVkIHlldC4iKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBRU2NyaXB0VmFsdWVQcml2YXRlOworICAgIH0KKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBuYW1lUmVmKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhuYW1lKSk7Cisg
ICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogcmVzdWx0ID0gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUo
bV9lbmdpbmUuY29uc3REYXRhKCksIEpTT2JqZWN0R2V0UHJvcGVydHkoKm1fZW5naW5lLCAqdGhp
cywgbmFtZVJlZi5nZXQoKSwgLyogZXhjZXB0aW9uICovIDApKTsKKworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2lubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRl
Ojpwcm9wZXJ0eShxdWludDMyIGFycmF5SW5kZXgsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6UmVzb2x2
ZUZsYWdzJiBtb2RlKQoreworICAgIGlmICghaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIG5l
dyBRU2NyaXB0VmFsdWVQcml2YXRlOworCisgICAgaWYgKG1vZGUgJiBRU2NyaXB0VmFsdWU6OlJl
c29sdmVMb2NhbCkgeworICAgICAgICBxV2FybmluZygiUVNjcmlwdFZhbHVlOjpwcm9wZXJ0eSgp
OiBSZXNvbHZlTG9jYWwgbm90IHN1cHBvcnRlZCB5ZXQuIik7CisgICAgICAgIHJldHVybiBuZXcg
UVNjcmlwdFZhbHVlUHJpdmF0ZTsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1
ZVByaXZhdGUobV9lbmdpbmUuY29uc3REYXRhKCksIEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4
KCptX2VuZ2luZSwgKnRoaXMsIGFycmF5SW5kZXgsIC8qIGV4Y2VwdGlvbiAqLyAwKSk7Cit9CisK
IFFTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmNhbGwoY29uc3QgUVNj
cmlwdFZhbHVlUHJpdmF0ZSosIGNvbnN0IFFTY3JpcHRWYWx1ZUxpc3QmIGFyZ3MpCiB7CiAgICAg
c3dpdGNoIChtX3N0YXRlKSB7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9x
c2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0
cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKaW5kZXggOTA3MzBjMy4uMjQ5OGQ3
ZCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9x
c2NyaXB0dmFsdWUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1
ZS90c3RfcXNjcmlwdHZhbHVlLmNwcApAQCAtNTQwLDQgKzU0MCwxNyBAQCB2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OnRvT2JqZWN0U2ltcGxlKCkKICAgICB9CiB9CiAKK3ZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6cHJvcGVydHlTaW1wbGUoKQoreworICAgIFFTY3JpcHRFbmdpbmUgZW5nOworCisgICAg
UVNjcmlwdFZhbHVlIHNpbXBsZU9iamVjdChlbmcuZXZhbHVhdGUoIm5ldyBPYmplY3QoeyB0ZXN0
OiAxLCBvdGhlcjogMiB9KSIpKTsKKyAgICBRQ09NUEFSRShzaW1wbGVPYmplY3QucHJvcGVydHko
InRlc3QiKS50b1VJbnQzMigpLCBxdWludDMyKDEpKTsKKyAgICBRQ09NUEFSRShzaW1wbGVPYmpl
Y3QucHJvcGVydHkoIm90aGVyIikudG9VSW50MzIoKSwgcXVpbnQzMigyKSk7CisKKyAgICBRU2Ny
aXB0VmFsdWUgc2ltcGxlQXJyYXkoZW5nLmV2YWx1YXRlKCJuZXcgQXJyYXkoNywgOCwgOSkiKSk7
CisgICAgUUNPTVBBUkUoc2ltcGxlQXJyYXkucHJvcGVydHkoImxlbmd0aCIpLnRvVUludDMyKCks
IHF1aW50MzIoMykpOworICAgIFFDT01QQVJFKHNpbXBsZUFycmF5LnByb3BlcnR5KDIpLnRvVUlu
dDMyKCksIHF1aW50MzIoOSkpOworfQorCiBRVEVTVF9NQUlOKHRzdF9RU2NyaXB0VmFsdWUpCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2Ny
aXB0dmFsdWUuaAppbmRleCAwNTY1YjZmLi45ZWY3OTMxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKQEAgLTUw
LDYgKzUwLDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNhbGwoKTsKICAgICB2b2lkIGN0
b3IoKTsKICAgICB2b2lkIHRvT2JqZWN0U2ltcGxlKCk7CisgICAgdm9pZCBwcm9wZXJ0eVNpbXBs
ZSgpOwogCiAgICAgLy8gR2VuZXJhdGVkIHRlc3QgZnVuY3Rpb25zLgogICAgIHZvaWQgaXNCb29s
X2RhdGEoKTsKLS0gCjEuNy4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60600</attachid>
            <date>2010-07-06 00:53:02 -0700</date>
            <delta_ts>2010-07-06 06:55:45 -0700</delta_ts>
            <desc>Fix v2</desc>
            <filename>property.diff</filename>
            <type>text/plain</type>
            <size>65788</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCA4ZjJkNDIzLi45NGY5OGI0IDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTAtMDctMDUgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgUVNjcmlwdFZhbHVlIHByb3BlcnRpZXMgYWNjZXNz
b3JzLgorCisgICAgICAgIFRoZSBwYXRjaCBjb250YWlucyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
UVNjcmlwdFZhbHVlOjpwcm9wZXJ0eSgpIGFuZAorICAgICAgICB0aGUgUVNjcmlwdFZhbHVlOjpz
ZXRQcm9wZXJ0eSgpLiBJdCBpcyBub3QgZnVsbCBmdW5jdGlvbmFsaXR5LCBhcyB0aGVzZQorICAg
ICAgICBtZXRob2QgYXJlIHRvbyBjb21wbGV4IGZvciBvbmUgcGF0Y2gsIGJ1dCBpdCBpcyBlbm91
Z2ggdG8gY292ZXIgYWJvdXQKKyAgICAgICAgOTUlIG9mIHVzZSBjYXNlcy4KKworICAgICAgICBN
aXNzaW5nIGZ1bmN0aW9uYWxpdHk6CisgICAgICAgICAtIEZldyBvZiB0aGUgUHJvcGVydHlGbGFn
cyBhcmUgaWdub3JlZC4KKyAgICAgICAgIC0gT25seSBhIHB1YmxpYyBwYXJ0IG9mIHRoZSBSZXNv
bHZlRmxhZ3MgY2FuIGJlIHVzZWQgKFJlc29sdmVMb2NhbCwKKyAgICAgICAgIFJlc29sdmVQcm90
b3R5cGUpLgorCisgICAgICAgIEEgbG90IG9mIG5ldyB0ZXN0IGNhc2VzIHdlcmUgYWRkZWQuCisK
KyAgICAgICAgW1F0XSBRU2NyaXB0VmFsdWUgc2hvdWxkIGhhdmUgQVBJIGZvciBhY2Nlc3Npbmcg
b2JqZWN0IHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwOTAzCisKKyAgICAgICAgKiBhcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmg6Cisg
ICAgICAgIChRU2NyaXB0Q29udmVydGVyOjp0b1Byb3BlcnR5RmxhZ3MpOgorICAgICAgICAqIGFw
aS9xc2NyaXB0c3RyaW5nX3AuaDoKKyAgICAgICAgKFFTY3JpcHRTdHJpbmdQcml2YXRlOjpvcGVy
YXRvciBKU1N0cmluZ1JlZik6CisgICAgICAgICogYXBpL3FzY3JpcHR2YWx1ZS5jcHA6CisgICAg
ICAgIChRU2NyaXB0VmFsdWU6OnByb3BlcnR5KToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZTo6c2V0
UHJvcGVydHkpOgorICAgICAgICAqIGFwaS9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKFFTY3Jp
cHRWYWx1ZTo6KToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFT
Y3JpcHRWYWx1ZVByaXZhdGU6OmFzc2lnbkVuZ2luZSk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQ
cml2YXRlOjpwcm9wZXJ0eSk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjpoYXNPd25Q
cm9wZXJ0eSk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRQcm9wZXJ0eSk6Cisg
ICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICog
dGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwOgorICAgICAgICAodHN0X1FT
Y3JpcHRWYWx1ZTo6Z2V0UHJvcGVydHlTaW1wbGVfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlw
dFZhbHVlOjpnZXRQcm9wZXJ0eVNpbXBsZSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpz
ZXRQcm9wZXJ0eVNpbXBsZSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpnZXRQcm9wZXJ0
eVJlc29sdmVGbGFnKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OmdldFNldFByb3BlcnR5
KToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OnNldFByb3BlcnR5X2RhdGEpOgorICAgICAg
ICAodHN0X1FTY3JpcHRWYWx1ZTo6c2V0UHJvcGVydHkpOgorICAgICAgICAqIHRlc3RzL3FzY3Jp
cHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmg6CisKIDIwMTAtMDctMDIgIEplZHJ6ZWogTm93YWNr
aSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNv
bnZlcnRlcl9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgK
aW5kZXggY2Q4NmUyMC4uMGM1N2Q5NSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHRjb252ZXJ0ZXJfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0
Y29udmVydGVyX3AuaApAQCAtMjAsNyArMjAsOSBAQAogI2lmbmRlZiBxc2NyaXB0Y29udmVydGVy
X3BfaAogI2RlZmluZSBxc2NyaXB0Y29udmVydGVyX3BfaAogCisjaW5jbHVkZSAicXNjcmlwdHZh
bHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgorI2luY2x1ZGUg
PFF0Q29yZS9xZ2xvYmFsLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FudW1lcmljLmg+CiAjaW5jbHVk
ZSA8UXRDb3JlL3FzdHJpbmcuaD4KICNpbmNsdWRlIDxRdENvcmUvcXZhcmxlbmd0aGFycmF5Lmg+
CkBAIC0xMjcsNiArMTI5LDE4IEBAIHB1YmxpYzoKICAgICAgICAgYnVmLmFwcGVuZCgwKTsKICAg
ICAgICAgcmV0dXJuIFFTdHJpbmc6OmZyb21MYXRpbjEoYnVmLmNvbnN0RGF0YSgpKTsKICAgICB9
CisKKyAgICBzdGF0aWMgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgdG9Qcm9wZXJ0eUZsYWdzKGNvbnN0
IFFGbGFnczxRU2NyaXB0VmFsdWU6OlByb3BlcnR5RmxhZz4mIGZsYWdzKQorICAgIHsKKyAgICAg
ICAgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgYXR0ciA9IDA7CisgICAgICAgIGlmIChmbGFncy50ZXN0
RmxhZyhRU2NyaXB0VmFsdWU6OlJlYWRPbmx5KSkKKyAgICAgICAgICAgIGF0dHIgfD0ga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seTsKKyAgICAgICAgaWYgKGZsYWdzLnRlc3RGbGFnKFFTY3Jp
cHRWYWx1ZTo6VW5kZWxldGFibGUpKQorICAgICAgICAgICAgYXR0ciB8PSBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGU7CisgICAgICAgIGlmIChmbGFncy50ZXN0RmxhZyhRU2NyaXB0VmFs
dWU6OlNraXBJbkVudW1lcmF0aW9uKSkKKyAgICAgICAgICAgIGF0dHIgfD0ga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RW51bTsKKyAgICAgICAgcmV0dXJuIGF0dHI7CisgICAgfQogfTsKIAogI2Vu
ZGlmIC8vIHFzY3JpcHRjb252ZXJ0ZXJfcF9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdHN0cmluZ19wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHN0
cmluZ19wLmgKaW5kZXggZDRmYzg4ZS4uZmU4NGY0ZCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHRzdHJpbmdfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0c3RyaW5nX3AuaApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUg
cXVpbnQ2NCBpZCgpIGNvbnN0OwogCisgICAgaW5saW5lIG9wZXJhdG9yIEpTU3RyaW5nUmVmKCkg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgSlNTdHJpbmdSZWYgbV9zdHJpbmc7CiB9OwpAQCAtMTA5
LDQgKzExMSwxNCBAQCBxdWludDY0IFFTY3JpcHRTdHJpbmdQcml2YXRlOjppZCgpIGNvbnN0CiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8cXVpbnQzMj4obV9zdHJpbmcpOwogfQogCisvKiEK
KyAgICBcaW50ZXJuYWwKKyAgICBUaGlzIG1ldGhvZCBzaG91bGQgYmUgdXNlZCBmb3IgaW52b2tp
bmcgSlNDIGZ1bmN0aW9ucy4KKyAgICBcbm90ZSBUaGlzIG1ldGhvZCBrZWVwcyBvd25lcnNoaXAg
b2YgYW4gaW50ZXJuYWwgSlNTdHJpbmdSZWYuCisqLworUVNjcmlwdFN0cmluZ1ByaXZhdGU6Om9w
ZXJhdG9yIEpTU3RyaW5nUmVmKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHJpbmc7Cit9CisK
ICNlbmRpZiAvLyBxc2NyaXB0c3RyaW5nX3BfaApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cXQvYXBpL3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZh
bHVlLmNwcAppbmRleCBlMzA5ZmI3Li5jMWQwZmQzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNj
cmlwdHZhbHVlLmNwcApAQCAtNjUxLDYgKzY1MSwyMyBAQCBRU2NyaXB0VmFsdWUgUVNjcmlwdFZh
bHVlOjpwcm9wZXJ0eShjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBSZXNvbHZlRmxhZ3MmIG1v
ZAogLyohCiAgIFxvdmVybG9hZAogCisgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgUVNjcmlw
dFZhbHVlJ3MgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4gXGEgbmFtZSwKKyAgdXNpbmcgdGhlIGdp
dmVuIFxhIG1vZGUgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkuCisKKyAgVGhpcyBvdmVybG9hZCBv
ZiBwcm9wZXJ0eSgpIGlzIHVzZWZ1bCB3aGVuIHlvdSBuZWVkIHRvIGxvb2sgdXAgdGhlCisgIHNh
bWUgcHJvcGVydHkgcmVwZWF0ZWRseSwgc2luY2UgdGhlIGxvb2t1cCBjYW4gYmUgcGVyZm9ybWVk
IGZhc3RlcgorICB3aGVuIHRoZSBuYW1lIGlzIHJlcHJlc2VudGVkIGFzIGFuIGludGVybmVkIHN0
cmluZy4KKworICBcc2EgUVNjcmlwdEVuZ2luZTo6dG9TdHJpbmdIYW5kbGUoKSwgc2V0UHJvcGVy
dHkoKQorKi8KK1FTY3JpcHRWYWx1ZSBRU2NyaXB0VmFsdWU6OnByb3BlcnR5KGNvbnN0IFFTY3Jp
cHRTdHJpbmcmIG5hbWUsIGNvbnN0IFJlc29sdmVGbGFncyYgbW9kZSkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT5wcm9wZXJ0eShRU2NyaXB0U3Ry
aW5nUHJpdmF0ZTo6Z2V0KG5hbWUpLmNvbnN0RGF0YSgpLCBtb2RlKSk7Cit9CisKKy8qIQorICBc
b3ZlcmxvYWQKKwogICBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gXGEgYXJyYXlJ
bmRleCwgdXNpbmcgdGhlIGdpdmVuIFxhCiAgIG1vZGUgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHku
CiAKQEAgLTY2NSwzICs2ODIsNjUgQEAgUVNjcmlwdFZhbHVlIFFTY3JpcHRWYWx1ZTo6cHJvcGVy
dHkocXVpbnQzMiBhcnJheUluZGV4LCBjb25zdCBSZXNvbHZlRmxhZ3MmIG1vZGUKIHsKICAgICBy
ZXR1cm4gUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT5wcm9wZXJ0eShhcnJheUluZGV4
LCBtb2RlKSk7CiB9CisKKy8qIQorICBTZXRzIHRoZSB2YWx1ZSBvZiB0aGlzIFFTY3JpcHRWYWx1
ZSdzIHByb3BlcnR5IHdpdGggdGhlIGdpdmVuIFxhIG5hbWUgdG8KKyAgdGhlIGdpdmVuIFxhIHZh
bHVlLgorCisgIElmIHRoaXMgUVNjcmlwdFZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHRoaXMgZnVu
Y3Rpb24gZG9lcyBub3RoaW5nLgorCisgIElmIHRoaXMgUVNjcmlwdFZhbHVlIGRvZXMgbm90IGFs
cmVhZHkgaGF2ZSBhIHByb3BlcnR5IHdpdGggbmFtZSBcYSBuYW1lLAorICBhIG5ldyBwcm9wZXJ0
eSBpcyBjcmVhdGVkOyB0aGUgZ2l2ZW4gXGEgZmxhZ3MgdGhlbiBzcGVjaWZ5IGhvdyB0aGlzCisg
IHByb3BlcnR5IG1heSBiZSBhY2Nlc3NlZCBieSBzY3JpcHQgY29kZS4KKworICBJZiBcYSB2YWx1
ZSBpcyBpbnZhbGlkLCB0aGUgcHJvcGVydHkgaXMgcmVtb3ZlZC4KKworICBJZiB0aGUgcHJvcGVy
dHkgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSBzZXR0ZXIgZnVuY3Rpb24gKGkuZS4gaGFzIHRoZQor
ICBQcm9wZXJ0eVNldHRlciBmbGFnIHNldCksIGNhbGxpbmcgc2V0UHJvcGVydHkoKSBoYXMgc2lk
ZS1lZmZlY3RzIG9uCisgIHRoZSBzY3JpcHQgZW5naW5lLCBzaW5jZSB0aGUgc2V0dGVyIGZ1bmN0
aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlCisgIGdpdmVuIFxhIHZhbHVlIGFzIGFyZ3VtZW50
IChwb3NzaWJseSByZXN1bHRpbmcgaW4gYW4gdW5jYXVnaHQgc2NyaXB0CisgIGV4Y2VwdGlvbiku
CisKKyAgTm90ZSB0aGF0IHlvdSBjYW5ub3Qgc3BlY2lmeSBjdXN0b20gZ2V0dGVyIG9yIHNldHRl
ciBmdW5jdGlvbnMgZm9yCisgIGJ1aWx0LWluIHByb3BlcnRpZXMsIHN1Y2ggYXMgdGhlIFxje2xl
bmd0aH0gcHJvcGVydHkgb2YgQXJyYXkgb2JqZWN0cworICBvciBtZXRhIHByb3BlcnRpZXMgb2Yg
UU9iamVjdCBvYmplY3RzLgorCisgIFxzYSBwcm9wZXJ0eSgpCisqLwordm9pZCBRU2NyaXB0VmFs
dWU6OnNldFByb3BlcnR5KGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTY3JpcHRWYWx1ZSYg
dmFsdWUsIGNvbnN0IFByb3BlcnR5RmxhZ3MmIGZsYWdzKQoreworICAgIGRfcHRyLT5zZXRQcm9w
ZXJ0eShuYW1lLCBRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQodmFsdWUpLCBmbGFncyk7Cit9CisK
Ky8qIQorICBcb3ZlcmxvYWQKKworICBTZXRzIHRoZSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gXGEg
YXJyYXlJbmRleCB0byB0aGUgZ2l2ZW4gXGEgdmFsdWUuCisKKyAgVGhpcyBmdW5jdGlvbiBpcyBw
cm92aWRlZCBmb3IgY29udmVuaWVuY2UgYW5kIHBlcmZvcm1hbmNlIHdoZW4KKyAgd29ya2luZyB3
aXRoIGFycmF5IG9iamVjdHMuCisKKyAgSWYgdGhpcyBRU2NyaXB0VmFsdWUgaXMgbm90IGFuIEFy
cmF5IG9iamVjdCwgdGhpcyBmdW5jdGlvbiBiZWhhdmVzCisgIGFzIGlmIHNldFByb3BlcnR5KCkg
d2FzIGNhbGxlZCB3aXRoIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgXGEKKyAgYXJyYXlJ
bmRleC4KKyovCit2b2lkIFFTY3JpcHRWYWx1ZTo6c2V0UHJvcGVydHkocXVpbnQzMiBhcnJheUlu
ZGV4LCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBQcm9wZXJ0eUZsYWdzJiBmbGFn
cykKK3sKKyAgICBkX3B0ci0+c2V0UHJvcGVydHkoYXJyYXlJbmRleCwgUVNjcmlwdFZhbHVlUHJp
dmF0ZTo6Z2V0KHZhbHVlKSwgZmxhZ3MpOworfQorCisvKiEKKyAgU2V0cyB0aGUgdmFsdWUgb2Yg
dGhpcyBRU2NyaXB0VmFsdWUncyBwcm9wZXJ0eSB3aXRoIHRoZSBnaXZlbiBcYQorICBuYW1lIHRv
IHRoZSBnaXZlbiBcYSB2YWx1ZS4gVGhlIGdpdmVuIFxhIGZsYWdzIHNwZWNpZnkgaG93IHRoaXMK
KyAgcHJvcGVydHkgbWF5IGJlIGFjY2Vzc2VkIGJ5IHNjcmlwdCBjb2RlLgorCisgIFRoaXMgb3Zl
cmxvYWQgb2Ygc2V0UHJvcGVydHkoKSBpcyB1c2VmdWwgd2hlbiB5b3UgbmVlZCB0byBzZXQgdGhl
CisgIHNhbWUgcHJvcGVydHkgcmVwZWF0ZWRseSwgc2luY2UgdGhlIG9wZXJhdGlvbiBjYW4gYmUg
cGVyZm9ybWVkCisgIGZhc3RlciB3aGVuIHRoZSBuYW1lIGlzIHJlcHJlc2VudGVkIGFzIGFuIGlu
dGVybmVkIHN0cmluZy4KKworICBcc2EgUVNjcmlwdEVuZ2luZTo6dG9TdHJpbmdIYW5kbGUoKQor
Ki8KK3ZvaWQgUVNjcmlwdFZhbHVlOjpzZXRQcm9wZXJ0eShjb25zdCBRU2NyaXB0U3RyaW5nJiBu
YW1lLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBQcm9wZXJ0eUZsYWdzJiBmbGFn
cykKK3sKKyAgICBkX3B0ci0+c2V0UHJvcGVydHkoUVNjcmlwdFN0cmluZ1ByaXZhdGU6OmdldChu
YW1lKS5jb25zdERhdGEoKSwgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6Z2V0KHZhbHVlKSwgZmxhZ3Mp
OworfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oIGIv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZS5oCmluZGV4IGM1NWQ0NjEuLmI4NWM4
NDUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWUuaAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlLmgKQEAgLTIwLDYgKzIwLDcgQEAK
ICNpZm5kZWYgcXNjcmlwdHZhbHVlX2gKICNkZWZpbmUgcXNjcmlwdHZhbHVlX2gKIAorI2luY2x1
ZGUgInFzY3JpcHRzdHJpbmcuaCIKICNpbmNsdWRlIDxRdENvcmUvcWxpc3QuaD4KICNpbmNsdWRl
IDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KIApAQCAtMzQsMTIgKzM1LDI1IEBAIHR5cGVkZWYgZG91
YmxlIHFzcmVhbDsKIGNsYXNzIFFTY3JpcHRWYWx1ZSB7CiBwdWJsaWM6CiAgICAgZW51bSBSZXNv
bHZlRmxhZyB7Ci0gICAgICAgIFJlc29sdmVMb2NhbCAgICAgPSAweDAwLAotICAgICAgICBSZXNv
bHZlUHJvdG90eXBlID0gMHgwMQorICAgICAgICBSZXNvbHZlTG9jYWwgICAgICAgID0gMHgwMCwK
KyAgICAgICAgUmVzb2x2ZVByb3RvdHlwZSAgICA9IDB4MDEsCisgICAgICAgIFJlc29sdmVTY29w
ZSAgICAgICAgPSAweDAyLAorICAgICAgICBSZXNvbHZlRnVsbCAgICAgICAgID0gUmVzb2x2ZVBy
b3RvdHlwZSB8IFJlc29sdmVTY29wZQogICAgIH07Ci0KICAgICBRX0RFQ0xBUkVfRkxBR1MoUmVz
b2x2ZUZsYWdzLCBSZXNvbHZlRmxhZykKIAorICAgIGVudW0gUHJvcGVydHlGbGFnIHsKKyAgICAg
ICAgUmVhZE9ubHkgICAgICAgICAgICA9IDB4MDAwMDAwMDEsCisgICAgICAgIFVuZGVsZXRhYmxl
ICAgICAgICAgPSAweDAwMDAwMDAyLAorICAgICAgICBTa2lwSW5FbnVtZXJhdGlvbiAgID0gMHgw
MDAwMDAwNCwKKyAgICAgICAgUHJvcGVydHlHZXR0ZXIgICAgICA9IDB4MDAwMDAwMDgsCisgICAg
ICAgIFByb3BlcnR5U2V0dGVyICAgICAgPSAweDAwMDAwMDEwLAorICAgICAgICBRT2JqZWN0TWVt
YmVyICAgICAgID0gMHgwMDAwMDAyMCwKKyAgICAgICAgS2VlcEV4aXN0aW5nRmxhZ3MgICA9IDB4
MDAwMDA4MDAsCisgICAgICAgIFVzZXJSYW5nZSAgICAgICAgICAgPSAweGZmMDAwMDAwIC8vIFVz
ZXJzIG1heSB1c2UgdGhlc2UgYXMgdGhleSBzZWUgZml0LgorICAgIH07CisgICAgUV9ERUNMQVJF
X0ZMQUdTKFByb3BlcnR5RmxhZ3MsIFByb3BlcnR5RmxhZykKKwogICAgIGVudW0gU3BlY2lhbFZh
bHVlIHsKICAgICAgICAgTnVsbFZhbHVlLAogICAgICAgICBVbmRlZmluZWRWYWx1ZQpAQCAtNzUs
OCArODksMTMgQEAgcHVibGljOgogICAgIGJvb2wgaW5zdGFuY2VPZihjb25zdCBRU2NyaXB0VmFs
dWUmIG90aGVyKSBjb25zdDsKIAogICAgIFFTY3JpcHRWYWx1ZSBwcm9wZXJ0eShjb25zdCBRU3Ry
aW5nJiBuYW1lLCBjb25zdCBSZXNvbHZlRmxhZ3MmIG1vZGUgPSBSZXNvbHZlUHJvdG90eXBlKSBj
b25zdDsKKyAgICBRU2NyaXB0VmFsdWUgcHJvcGVydHkoY29uc3QgUVNjcmlwdFN0cmluZyYgbmFt
ZSwgY29uc3QgUmVzb2x2ZUZsYWdzJiBtb2RlID0gUmVzb2x2ZVByb3RvdHlwZSkgY29uc3Q7CiAg
ICAgUVNjcmlwdFZhbHVlIHByb3BlcnR5KHF1aW50MzIgYXJyYXlJbmRleCwgY29uc3QgUmVzb2x2
ZUZsYWdzJiBtb2RlID0gUmVzb2x2ZVByb3RvdHlwZSkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBy
b3BlcnR5KGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUsIGNv
bnN0IFByb3BlcnR5RmxhZ3MmIGZsYWdzID0gS2VlcEV4aXN0aW5nRmxhZ3MpOworICAgIHZvaWQg
c2V0UHJvcGVydHkocXVpbnQzMiBhcnJheUluZGV4LCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVl
LCBjb25zdCBQcm9wZXJ0eUZsYWdzJiBmbGFncyA9IEtlZXBFeGlzdGluZ0ZsYWdzKTsKKyAgICB2
b2lkIHNldFByb3BlcnR5KGNvbnN0IFFTY3JpcHRTdHJpbmcmIG5hbWUsIGNvbnN0IFFTY3JpcHRW
YWx1ZSYgdmFsdWUsIGNvbnN0IFByb3BlcnR5RmxhZ3MmIGZsYWdzID0gS2VlcEV4aXN0aW5nRmxh
Z3MpOworCiAgICAgUVNjcmlwdEVuZ2luZSogZW5naW5lKCkgY29uc3Q7CiAKICAgICBib29sIGlz
VmFsaWQoKSBjb25zdDsKQEAgLTEwMiw3ICsxMjEsNiBAQCBwdWJsaWM6CiAKICAgICBRU2NyaXB0
VmFsdWUgY2FsbChjb25zdCBRU2NyaXB0VmFsdWUmIHRoaXNPYmplY3QgPSBRU2NyaXB0VmFsdWUo
KSwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU2NyaXB0VmFsdWVMaXN0JiBhcmdzID0g
UVNjcmlwdFZhbHVlTGlzdCgpKTsKLQogcHJpdmF0ZToKICAgICBRU2NyaXB0VmFsdWUodm9pZCop
OwogICAgIFFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWVQcml2YXRlKik7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0
L2FwaS9xc2NyaXB0dmFsdWVfcC5oCmluZGV4IDQ5YmVjOTcuLjkyZjRiMGEgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCisrKyBiL0phdmFTY3JpcHRD
b3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCkBAIC0xMjEsNyArMTIxLDI0IEBAIHB1YmxpYzoK
ICAgICBpbmxpbmUgYm9vbCBhc3NpZ25FbmdpbmUoUVNjcmlwdEVuZ2luZVByaXZhdGUqIGVuZ2lu
ZSk7CiAKICAgICBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogcHJvcGVydHkoY29uc3QgUVN0
cmluZyYgbmFtZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpSZXNvbHZlRmxhZ3MmIG1vZGUpOworICAg
IGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBwcm9wZXJ0eShjb25zdCBRU2NyaXB0U3RyaW5n
UHJpdmF0ZSogbmFtZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpSZXNvbHZlRmxhZ3MmIG1vZGUpOwog
ICAgIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBwcm9wZXJ0eShxdWludDMyIGFycmF5SW5k
ZXgsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUZsYWdzJiBtb2RlKTsKKyAgICBpbmxpbmUg
SlNWYWx1ZVJlZiBwcm9wZXJ0eShxdWludDMyIHByb3BlcnR5LCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOworICAgIGlubGluZSBKU1ZhbHVlUmVmIHByb3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAgIGlubGluZSBib29sIGhhc093blByb3BlcnR5
KHF1aW50MzIgcHJvcGVydHkpOworICAgIGlubGluZSBib29sIGhhc093blByb3BlcnR5KEpTU3Ry
aW5nUmVmIHByb3BlcnR5KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSBR
U2NyaXB0VmFsdWVQcml2YXRlKiBwcm9wZXJ0eShUIG5hbWUsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6
UmVzb2x2ZUZsYWdzJiBtb2RlKTsKKworICAgIGlubGluZSB2b2lkIHNldFByb3BlcnR5KGNvbnN0
IFFTdHJpbmcmIG5hbWUsIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHZhbHVlLCBjb25zdCBRU2NyaXB0
VmFsdWU6OlByb3BlcnR5RmxhZ3MmIGZsYWdzKTsKKyAgICBpbmxpbmUgdm9pZCBzZXRQcm9wZXJ0
eShjb25zdCBRU2NyaXB0U3RyaW5nUHJpdmF0ZSogbmFtZSwgUVNjcmlwdFZhbHVlUHJpdmF0ZSog
dmFsdWUsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6UHJvcGVydHlGbGFncyYgZmxhZ3MpOworICAgIGlu
bGluZSB2b2lkIHNldFByb3BlcnR5KGNvbnN0IHF1aW50MzIgaW5kZXhBcnJheSwgUVNjcmlwdFZh
bHVlUHJpdmF0ZSogdmFsdWUsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6UHJvcGVydHlGbGFncyYgZmxh
Z3MpOworICAgIGlubGluZSB2b2lkIHNldFByb3BlcnR5KHF1aW50MzIgcHJvcGVydHksIEpTVmFs
dWVSZWYgdmFsdWUsIEpTUHJvcGVydHlBdHRyaWJ1dGVzIGZsYWdzLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pOworICAgIGlubGluZSB2b2lkIHNldFByb3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5
LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBmbGFncywgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKKyAgICBpbmxpbmUgdm9pZCBkZWxldGVQcm9wZXJ0eShxdWludDMyIHBy
b3BlcnR5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAgIGlubGluZSB2b2lkIGRlbGV0ZVBy
b3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHZvaWQgc2V0UHJvcGVydHkoVCBuYW1l
LCBRU2NyaXB0VmFsdWVQcml2YXRlKiB2YWx1ZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpQcm9wZXJ0
eUZsYWdzJiBmbGFncyk7CiAKICAgICBpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogY2FsbChj
b25zdCBRU2NyaXB0VmFsdWVQcml2YXRlKiAsIGNvbnN0IFFTY3JpcHRWYWx1ZUxpc3QmIGFyZ3Mp
OwogCkBAIC03NDQsNiArNzYxLDcgQEAgaW5saW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
aW5zdGFuY2VPZihRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikKICovCiBib29sIFFTY3JpcHRW
YWx1ZVByaXZhdGU6OmFzc2lnbkVuZ2luZShRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKQog
eworICAgIFFfQVNTRVJUKGVuZ2luZSk7CiAgICAgSlNWYWx1ZVJlZiB2YWx1ZTsKICAgICBzd2l0
Y2ggKG1fc3RhdGUpIHsKICAgICBjYXNlIENCb29sOgpAQCAtNzc4LDMzICs3OTYsMTg1IEBAIGJv
b2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6YXNzaWduRW5naW5lKFFTY3JpcHRFbmdpbmVQcml2YXRl
KiBlbmdpbmUpCiAKIGlubGluZSBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2
YXRlOjpwcm9wZXJ0eShjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU2NyaXB0VmFsdWU6OlJl
c29sdmVGbGFncyYgbW9kZSkKIHsKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcHJvcGVy
dHlOYW1lKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhuYW1lKSk7CisgICAgcmV0
dXJuIHByb3BlcnR5PEpTU3RyaW5nUmVmPihwcm9wZXJ0eU5hbWUuZ2V0KCksIG1vZGUpOworfQor
CitpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6cHJvcGVy
dHkoY29uc3QgUVNjcmlwdFN0cmluZ1ByaXZhdGUqIG5hbWUsIGNvbnN0IFFTY3JpcHRWYWx1ZTo6
UmVzb2x2ZUZsYWdzJiBtb2RlKQoreworICAgIHJldHVybiBwcm9wZXJ0eTxKU1N0cmluZ1JlZj4o
Km5hbWUsIG1vZGUpOworfQorCitpbmxpbmUgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6cHJvcGVydHkocXVpbnQzMiBhcnJheUluZGV4LCBjb25zdCBRU2NyaXB0VmFs
dWU6OlJlc29sdmVGbGFncyYgbW9kZSkKK3sKKyAgICByZXR1cm4gcHJvcGVydHk8cXVpbnQzMj4o
YXJyYXlJbmRleCwgbW9kZSk7Cit9CisKKy8qIQorICAgIFxpbnRlcm5hbAorICAgIFRoaXMgbWV0
aG9kIHdhcyBjcmVhdGVkIHRvIHVuaWZ5IGFjY2VzcyB0byB0aGUgSlNPYmplY3RHZXRQcm9wZXJ0
eUF0SW5kZXggYW5kIHRoZSBKU09iamVjdEdldFByb3BlcnR5LgorKi8KK2lubGluZSBKU1ZhbHVl
UmVmIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnByb3BlcnR5KHF1aW50MzIgcHJvcGVydHksIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5k
ZXgoKm1fZW5naW5lLCAqdGhpcywgcHJvcGVydHksIGV4Y2VwdGlvbik7Cit9CisKKy8qIQorICAg
IFxpbnRlcm5hbAorICAgIFRoaXMgbWV0aG9kIHdhcyBjcmVhdGVkIHRvIHVuaWZ5IGFjY2VzcyB0
byB0aGUgSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXggYW5kIHRoZSBKU09iamVjdEdldFByb3Bl
cnR5LgorKi8KK2lubGluZSBKU1ZhbHVlUmVmIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnByb3BlcnR5
KEpTU3RyaW5nUmVmIHByb3BlcnR5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0
dXJuIEpTT2JqZWN0R2V0UHJvcGVydHkoKm1fZW5naW5lLCAqdGhpcywgcHJvcGVydHksIGV4Y2Vw
dGlvbik7Cit9CisKKy8qIQorICAgIFxpbnRlcm5hbAorICAgIFRoaXMgbWV0aG9kIHdhcyBjcmVh
dGVkIHRvIHVuaWZ5IGFjY2Nlc3MgdG8gaGFzT3duUHJvcGVydHksIHNhbWUgZnVuY3Rpb24gZm9y
IGFuIGFycmF5IGluZGV4CisgICAgYW5kIGEgcHJvcGVydHkgbmFtZSBhY2Nlc3MuCisqLworaW5s
aW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aGFzT3duUHJvcGVydHkocXVpbnQzMiBwcm9w
ZXJ0eSkKK3sKKyAgICBRX0FTU0VSVChpc09iamVjdCgpKTsKKyAgICAvLyBGSVhNRSBpdCBjb3Vs
ZCBiZSBmYXN0ZXIsIGJ1dCBKU0MgQyBBUEkgZG9lc24ndCBleHBvc2UgbmVlZGVkIGZ1bmN0aW9u
YWxpdHkuCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHByb3BlcnR5TmFtZShBZG9wdCwg
UVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoUVN0cmluZzo6bnVtYmVyKHByb3BlcnR5KSkpOwor
ICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUuZ2V0KCkpOworfQorCisvKiEK
KyAgICBcaW50ZXJuYWwKKyAgICBUaGlzIG1ldGhvZCB3YXMgY3JlYXRlZCB0byB1bmlmeSBhY2Nj
ZXNzIHRvIGhhc093blByb3BlcnR5LCBzYW1lIGZ1bmN0aW9uIGZvciBhbiBhcnJheSBpbmRleAor
ICAgIGFuZCBhIHByb3BlcnR5IG5hbWUgYWNjZXNzLgorKi8KK2lubGluZSBib29sIFFTY3JpcHRW
YWx1ZVByaXZhdGU6Omhhc093blByb3BlcnR5KEpTU3RyaW5nUmVmIHByb3BlcnR5KQoreworICAg
IFFfQVNTRVJUKGlzT2JqZWN0KCkpOworICAgIC8vIEZJWE1FIGl0IGNvdWxkIGJlIGZhc3Rlciwg
YnV0IEpTQyBDIEFQSSBkb2Vzbid0IGV4cG9zZSBuZWVkZWQgZnVuY3Rpb25hbGl0eS4KKyAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gaGFzT3duUHJvcGVydHlOYW1lKEFkb3B0LCBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaGFzT3duUHJvcGVydHkiKSk7CisgICAgSlNWYWx1ZVJl
ZiBleGNlcHRpb24gPSAwOworICAgIEpTVmFsdWVSZWYgaGFzT3duUHJvcGVydHkgPSBKU09iamVj
dEdldFByb3BlcnR5KCptX2VuZ2luZSwgKnRoaXMsIGhhc093blByb3BlcnR5TmFtZS5nZXQoKSwg
JmV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZVJlZiBwcm9wZXJ0eU5hbWVbXSA9IHsgSlNWYWx1ZU1h
a2VTdHJpbmcoKm1fZW5naW5lLCBwcm9wZXJ0eSkgfTsKKyAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oKm1fZW5naW5lLCBjb25zdF9jYXN0PEpTT2JqZWN0UmVm
PihoYXNPd25Qcm9wZXJ0eSksICp0aGlzLCAxLCBwcm9wZXJ0eU5hbWUsICZleGNlcHRpb24pOwor
ICAgIHJldHVybiBleGNlcHRpb24gPyBmYWxzZSA6IEpTVmFsdWVUb0Jvb2xlYW4oKm1fZW5naW5l
LCByZXN1bHQpOworfQorCisvKiEKKyAgICBcaW50ZXJuYWwKKyAgICBUaGlzIGZ1bmN0aW9uIGdl
dHMgcHJvcGVydHkgb2YgYW4gb2JqZWN0LgorICAgIFxhcmcgcHJvcGVydHlOYW1lIGNvdWxkIGJl
IHR5cGUgb2YgcXVpbnQzMiAoYW4gYXJyYXkgaW5kZXgpIG9yIEpTU3RyaW5nUmVmIChhIHByb3Bl
cnR5IG5hbWUpLgorKi8KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgUVNjcmlwdFZhbHVl
UHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6cHJvcGVydHkoVCBwcm9wZXJ0eU5hbWUsIGNv
bnN0IFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUZsYWdzJiBtb2RlKQorewogICAgIGlmICghaXNPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOworICAgICAgICBy
ZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUoKTsKKworICAgIGlmICgobW9kZSA9PSBRU2Ny
aXB0VmFsdWU6OlJlc29sdmVMb2NhbCkgJiYgKCFoYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUp
KSkKKyAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKCk7CisKKyAgICBKU1Zh
bHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNWYWx1ZVJlZiB2YWx1ZSA9IHByb3BlcnR5KHBy
b3BlcnR5TmFtZSwgJmV4Y2VwdGlvbik7CiAKLSAgICBpZiAobW9kZSAmIFFTY3JpcHRWYWx1ZTo6
UmVzb2x2ZUxvY2FsKSB7Ci0gICAgICAgIHFXYXJuaW5nKCJRU2NyaXB0VmFsdWU6OnByb3BlcnR5
KCk6IFJlc29sdmVMb2NhbCBub3Qgc3VwcG9ydGVkIHlldC4iKTsKKyAgICBpZiAoZXhjZXB0aW9u
KSB7CisgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uLCBRU2NyaXB0RW5n
aW5lUHJpdmF0ZTo6Tm90TnVsbEV4Y2VwdGlvbik7CisgICAgICAgIHJldHVybiBuZXcgUVNjcmlw
dFZhbHVlUHJpdmF0ZShlbmdpbmUoKSwgZXhjZXB0aW9uKTsKKyAgICB9CisgICAgaWYgKEpTVmFs
dWVJc1VuZGVmaW5lZCgqbV9lbmdpbmUsIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIG5ldyBRU2Ny
aXB0VmFsdWVQcml2YXRlOworICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZShlbmdp
bmUoKSwgdmFsdWUpOworfQorCitpbmxpbmUgdm9pZCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRQ
cm9wZXJ0eShjb25zdCBRU3RyaW5nJiBuYW1lLCBRU2NyaXB0VmFsdWVQcml2YXRlKiB2YWx1ZSwg
Y29uc3QgUVNjcmlwdFZhbHVlOjpQcm9wZXJ0eUZsYWdzJiBmbGFncykKK3sKKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gcHJvcGVydHlOYW1lKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0
b1N0cmluZyhuYW1lKSk7CisgICAgc2V0UHJvcGVydHk8SlNTdHJpbmdSZWY+KHByb3BlcnR5TmFt
ZS5nZXQoKSwgdmFsdWUsIGZsYWdzKTsKK30KKworaW5saW5lIHZvaWQgUVNjcmlwdFZhbHVlUHJp
dmF0ZTo6c2V0UHJvcGVydHkocXVpbnQzMiBhcnJheUluZGV4LCBRU2NyaXB0VmFsdWVQcml2YXRl
KiB2YWx1ZSwgY29uc3QgUVNjcmlwdFZhbHVlOjpQcm9wZXJ0eUZsYWdzJiBmbGFncykKK3sKKyAg
ICBzZXRQcm9wZXJ0eTxxdWludDMyPihhcnJheUluZGV4LCB2YWx1ZSwgZmxhZ3MpOworfQorCitp
bmxpbmUgdm9pZCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRQcm9wZXJ0eShjb25zdCBRU2NyaXB0
U3RyaW5nUHJpdmF0ZSogbmFtZSwgUVNjcmlwdFZhbHVlUHJpdmF0ZSogdmFsdWUsIGNvbnN0IFFT
Y3JpcHRWYWx1ZTo6UHJvcGVydHlGbGFncyYgZmxhZ3MpCit7CisgICAgc2V0UHJvcGVydHk8SlNT
dHJpbmdSZWY+KCpuYW1lLCB2YWx1ZSwgZmxhZ3MpOworfQorCisvKiEKKyAgICBcaW50ZXJuYWwK
KyAgICBUaGlzIG1ldGhvZCB3YXMgY3JlYXRlZCB0byB1bmlmeSBhY2Nlc3MgdG8gdGhlIEpTT2Jq
ZWN0U2V0UHJvcGVydHlBdEluZGV4IGFuZCB0aGUgSlNPYmplY3RTZXRQcm9wZXJ0eS4KKyovCitp
bmxpbmUgdm9pZCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRQcm9wZXJ0eShxdWludDMyIHByb3Bl
cnR5LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBmbGFncywgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFFfQVNTRVJUKGlzT2JqZWN0KCkpOworICAgIGlmIChm
bGFncykgeworICAgICAgICAvLyBGSVhNRSBUaGlzIGNvdWxkIGJlIGJldHRlciwgYnV0IEpTQyBD
IEFQSSBkb2Vzbid0IGV4cG9zZSBuZWVkZWQgZnVuY3Rpb25hbGl0eS4gSXQgaXMKKyAgICAgICAg
Ly8gbm90IHBvc3NpYmxlIHRvIGNyZWF0ZSAvIG1vZGlmeSBhIHByb3BlcnR5IGF0dHJpYnV0ZSB2
aWEgYW4gYXJyYXkgaW5kZXguCisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9w
ZXJ0eU5hbWUoQWRvcHQsIFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3RyaW5nKFFTdHJpbmc6Om51bWJl
cihwcm9wZXJ0eSkpKTsKKyAgICAgICAgSlNPYmplY3RTZXRQcm9wZXJ0eSgqbV9lbmdpbmUsICp0
aGlzLCBwcm9wZXJ0eU5hbWUuZ2V0KCksIHZhbHVlLCBmbGFncywgZXhjZXB0aW9uKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleCgqbV9lbmdp
bmUsICp0aGlzLCBwcm9wZXJ0eSwgdmFsdWUsIGV4Y2VwdGlvbik7Cit9CisKKy8qIQorICAgIFxp
bnRlcm5hbAorICAgIFRoaXMgbWV0aG9kIHdhcyBjcmVhdGVkIHRvIHVuaWZ5IGFjY2VzcyB0byB0
aGUgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXggYW5kIHRoZSBKU09iamVjdFNldFByb3BlcnR5
LgorKi8KK2lubGluZSB2b2lkIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnNldFByb3BlcnR5KEpTU3Ry
aW5nUmVmIHByb3BlcnR5LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBm
bGFncywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFFfQVNTRVJUKGlzT2JqZWN0KCkp
OworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoKm1fZW5naW5lLCAqdGhpcywgcHJvcGVydHksIHZh
bHVlLCBmbGFncywgZXhjZXB0aW9uKTsKK30KIAotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBuYW1lUmVmKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhuYW1lKSk7Ci0gICAg
UVNjcmlwdFZhbHVlUHJpdmF0ZSogcmVzdWx0ID0gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUobV9l
bmdpbmUuY29uc3REYXRhKCksIEpTT2JqZWN0R2V0UHJvcGVydHkoKm1fZW5naW5lLCAqdGhpcywg
bmFtZVJlZi5nZXQoKSwgLyogZXhjZXB0aW9uICovIDApKTsKKy8qIQorICAgIFxpbnRlcm5hbAor
ICAgIFRoaXMgbWV0aG9kIHdhcyBjcmVhdGVkIHRvIHVuaWZ5IGFjY2VzcyB0byB0aGUgSlNPYmpl
Y3REZWxldGVQcm9wZXJ0eSBhbmQgYSB0ZW9yZXRpY2FsIEpTT2JqZWN0RGVsZXRlUHJvcGVydHlB
dEluZGV4CisgICAgd2hpY2ggZG9lc24ndCBleGlzdCBub3cuCisqLworaW5saW5lIHZvaWQgUVNj
cmlwdFZhbHVlUHJpdmF0ZTo6ZGVsZXRlUHJvcGVydHkocXVpbnQzMiBwcm9wZXJ0eSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQoreworICAgIC8vIEZJWE1FIEl0IGNvdWxkIGJlIGZhc3Rlciwgd2Ug
bmVlZCBhIEpTQyBDIEFQSSBmb3IgZGVsZXRpbmcgYXJyYXkgaW5kZXggcHJvcGVydGllcy4KKyAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcHJvcGVydHlOYW1lKEFkb3B0LCBRU2NyaXB0Q29u
dmVydGVyOjp0b1N0cmluZyhRU3RyaW5nOjpudW1iZXIocHJvcGVydHkpKSk7CisgICAgSlNPYmpl
Y3REZWxldGVQcm9wZXJ0eSgqbV9lbmdpbmUsICp0aGlzLCBwcm9wZXJ0eU5hbWUuZ2V0KCksIGV4
Y2VwdGlvbik7Cit9CiAKLSAgICByZXR1cm4gcmVzdWx0OworLyohCisgICAgXGludGVybmFsCisg
ICAgVGhpcyBtZXRob2Qgd2FzIGNyZWF0ZWQgdG8gdW5pZnkgYWNjZXNzIHRvIHRoZSBKU09iamVj
dERlbGV0ZVByb3BlcnR5IGFuZCBhIHRlb3JldGljYWwgSlNPYmplY3REZWxldGVQcm9wZXJ0eUF0
SW5kZXguCisqLworaW5saW5lIHZvaWQgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6ZGVsZXRlUHJvcGVy
dHkoSlNTdHJpbmdSZWYgcHJvcGVydHksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBR
X0FTU0VSVChpc09iamVjdCgpKTsKKyAgICBKU09iamVjdERlbGV0ZVByb3BlcnR5KCptX2VuZ2lu
ZSwgKnRoaXMsIHByb3BlcnR5LCBleGNlcHRpb24pOwogfQogCi1pbmxpbmUgUVNjcmlwdFZhbHVl
UHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6cHJvcGVydHkocXVpbnQzMiBhcnJheUluZGV4
LCBjb25zdCBRU2NyaXB0VmFsdWU6OlJlc29sdmVGbGFncyYgbW9kZSkKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+CitpbmxpbmUgdm9pZCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRQcm9wZXJ0eShUIG5h
bWUsIFFTY3JpcHRWYWx1ZVByaXZhdGUqIHZhbHVlLCBjb25zdCBRU2NyaXB0VmFsdWU6OlByb3Bl
cnR5RmxhZ3MmIGZsYWdzKQogewogICAgIGlmICghaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJu
IG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOworICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobW9k
ZSAmIFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUxvY2FsKSB7Ci0gICAgICAgIHFXYXJuaW5nKCJRU2Ny
aXB0VmFsdWU6OnByb3BlcnR5KCk6IFJlc29sdmVMb2NhbCBub3Qgc3VwcG9ydGVkIHlldC4iKTsK
LSAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlOworICAgIGlmICghdmFsdWUt
PmlzSlNCYXNlZCgpKQorICAgICAgICB2YWx1ZS0+YXNzaWduRW5naW5lKGVuZ2luZSgpKTsKKwor
ICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBpZiAoIXZhbHVlLT5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgLy8gUmVtb3ZlIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgZGVsZXRlUHJvcGVy
dHkobmFtZSwgJmV4Y2VwdGlvbik7CisgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhj
ZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobV9lbmdpbmUgIT0gdmFs
dWUtPm1fZW5naW5lKSB7CisgICAgICAgIHFXYXJuaW5nKCJRU2NyaXB0VmFsdWU6OnNldFByb3Bl
cnR5KCkgZmFpbGVkOiBjYW5ub3Qgc2V0IHZhbHVlIGNyZWF0ZWQgaW4gYSBkaWZmZXJlbnQgZW5n
aW5lIik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXR1cm4gbmV3IFFTY3JpcHRW
YWx1ZVByaXZhdGUobV9lbmdpbmUuY29uc3REYXRhKCksIEpTT2JqZWN0R2V0UHJvcGVydHlBdElu
ZGV4KCptX2VuZ2luZSwgKnRoaXMsIGFycmF5SW5kZXgsIC8qIGV4Y2VwdGlvbiAqLyAwKSk7Cisg
ICAgc2V0UHJvcGVydHkobmFtZSwgKnZhbHVlLCBRU2NyaXB0Q29udmVydGVyOjp0b1Byb3BlcnR5
RmxhZ3MoZmxhZ3MpLCAmZXhjZXB0aW9uKTsKKyAgICBtX2VuZ2luZS0+c2V0RXhjZXB0aW9uKGV4
Y2VwdGlvbik7CiB9CiAKKwogUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6Y2FsbChjb25zdCBRU2NyaXB0VmFsdWVQcml2YXRlKiwgY29uc3QgUVNjcmlwdFZhbHVlTGlz
dCYgYXJncykKIHsKICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcCBiL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcAppbmRl
eCAyYTJhNmIxLi4xMjg2MjNjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9x
c2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQv
dGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCkBAIC0yNzQsNiArMjc0LDM5
MiBAQCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmN0b3IoKQogICAgIFFWRVJJRlkoUVNjcmlwdFZh
bHVlKDAsIFFTdHJpbmcoImNpYW8iKSkuaXNTdHJpbmcoKSk7CiB9CiAKK3ZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6Z2V0UHJvcGVydHlTaW1wbGVfZGF0YSgpCit7CisgICAgUVRlc3Q6OmFkZENvbHVt
bjxRU3RyaW5nPigiY29kZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oInByb3Bl
cnR5TmFtZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImRlc2MiKTsKKyAgICBR
VGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJpc0FycmF5SW5kZXgiKTsKKworICAgIFFUZXN0OjpuZXdS
b3coIm5ldyBBcnJheSgpIikKKyAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgibmV3
IEFycmF5KCkiKQorICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJsZW5ndGgiKQor
ICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCIwIikKKyAgICAgICAgICAgIDw8IGZh
bHNlOworICAgIFFUZXN0OjpuZXdSb3coIm5ldyBPYmplY3QoKS5sZW5ndGgiKQorICAgICAgICAg
ICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJuZXcgT2JqZWN0KCkiKQorICAgICAgICAgICAgPDwg
UVN0cmluZzo6ZnJvbUFzY2lpKCJsZW5ndGgiKQorICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJv
bUFzY2lpKCIiKSAvLyBVbmRlZmluZWQgaXMgYW4gaW52YWxpZCBwcm9wZXJ0eS4KKyAgICAgICAg
ICAgIDw8IGZhbHNlOworICAgIFFUZXN0OjpuZXdSb3coIm5ldyBPYmplY3QoKS50b1N0cmluZyIp
CisgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoIm5ldyBPYmplY3QoKSIpCisgICAg
ICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoInRvU3RyaW5nIikKKyAgICAgICAgICAgIDw8
IFFTdHJpbmc6OmZyb21Bc2NpaSgiZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgW25hdGl2ZSBj
b2RlXVxufSIpCisgICAgICAgICAgICA8PCBmYWxzZTsKKyAgICBRVGVzdDo6bmV3Um93KCJbMSwy
LDMsNF0iKQorICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJbMSwyLDMsJ3MnLDRd
IikKKyAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiMiIpCisgICAgICAgICAgICA8
PCBRU3RyaW5nOjpmcm9tQXNjaWkoIjMiKQorICAgICAgICAgICAgPDwgdHJ1ZTsKKyAgICBRVGVz
dDo6bmV3Um93KCJbMSwzLCdhJywnYiddIikKKyAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21B
c2NpaSgiWzEsMywnYScsJ2InXSIpCisgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWko
IjMiKQorICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJiIikKKyAgICAgICAgICAg
IDw8IHRydWU7CisgICAgUVRlc3Q6Om5ld1JvdygiWzQsNV0iKQorICAgICAgICAgICAgPDwgUVN0
cmluZzo6ZnJvbUFzY2lpKCJbNCw1XSIpCisgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNj
aWkoIjEyMyIpCisgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoIiIpIC8vIFVuZGVm
aW5lZCBpcyBhbiBpbnZhbGlkIHByb3BlcnR5LgorICAgICAgICAgICAgPDwgdHJ1ZTsKKyAgICBR
VGVzdDo6bmV3Um93KCJbMSwzLDRdIikKKyAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2Np
aSgiWzEsMyw0XSIpCisgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoImFiYyIpCisg
ICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoIiIpIC8vIFVuZGVmaW5lZCBpcyBhbiBp
bnZhbGlkIHByb3BlcnR5LgorICAgICAgICAgICAgPDwgdHJ1ZTsKK30KKwordm9pZCB0c3RfUVNj
cmlwdFZhbHVlOjpnZXRQcm9wZXJ0eVNpbXBsZSgpCit7CisgICAgUUZFVENIKFFTdHJpbmcsIGNv
ZGUpOworICAgIFFGRVRDSChRU3RyaW5nLCBwcm9wZXJ0eU5hbWUpOworICAgIFFGRVRDSChRU3Ry
aW5nLCBkZXNjKTsKKworICAgIFFTY3JpcHRFbmdpbmUgZW5naW5lOworICAgIFFTY3JpcHRWYWx1
ZSBvYmplY3QgPSBlbmdpbmUuZXZhbHVhdGUoY29kZSk7CisgICAgUVZFUklGWShvYmplY3QuaXNW
YWxpZCgpKTsKKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSBwcm9wZXJ0eSA9IG9iamVjdC5w
cm9wZXJ0eShwcm9wZXJ0eU5hbWUpOworICAgICAgICBRQ09NUEFSRShwcm9wZXJ0eS50b1N0cmlu
ZygpLCBkZXNjKTsKKyAgICB9CisgICAgeworICAgICAgICBRU2NyaXB0U3RyaW5nIG5hbWUgPSBl
bmdpbmUudG9TdHJpbmdIYW5kbGUocHJvcGVydHlOYW1lKTsKKyAgICAgICAgUVNjcmlwdFZhbHVl
IHByb3BlcnR5ID0gb2JqZWN0LnByb3BlcnR5KG5hbWUpOworICAgICAgICBRQ09NUEFSRShwcm9w
ZXJ0eS50b1N0cmluZygpLCBkZXNjKTsKKyAgICB9CisgICAgeworICAgICAgICBib29sIG9rOwor
ICAgICAgICBxdWludDMyIGlkeCA9IGVuZ2luZS50b1N0cmluZ0hhbmRsZShwcm9wZXJ0eU5hbWUp
LnRvQXJyYXlJbmRleCgmb2spOworICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgIFFTY3Jp
cHRWYWx1ZSBwcm9wZXJ0eSA9IG9iamVjdC5wcm9wZXJ0eShpZHgpOworICAgICAgICAgICAgUUNP
TVBBUkUocHJvcGVydHkudG9TdHJpbmcoKSwgZGVzYyk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6c2V0UHJvcGVydHlTaW1wbGUoKQoreworICAgIFFTY3Jp
cHRFbmdpbmUgZW5naW5lOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIGludmFsaWQ7Cisg
ICAgICAgIFFTY3JpcHRWYWx1ZSBwcm9wZXJ0eSgxMjM0KTsKKworICAgICAgICBpbnZhbGlkLnNl
dFByb3BlcnR5KCJhYWEiLCBwcm9wZXJ0eSk7CisgICAgICAgIGludmFsaWQuc2V0UHJvcGVydHko
MTMsIHByb3BlcnR5KTsKKyAgICAgICAgaW52YWxpZC5zZXRQcm9wZXJ0eShlbmdpbmUudG9TdHJp
bmdIYW5kbGUoImFhYSIpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgUVZFUklGWSghaW52YWxpZC5w
cm9wZXJ0eSgiYWFhIikuaXNWYWxpZCgpKTsKKyAgICAgICAgUVZFUklGWSghaW52YWxpZC5wcm9w
ZXJ0eSgxMykuaXNWYWxpZCgpKTsKKyAgICAgICAgUVZFUklGWSghaW52YWxpZC5wcm9wZXJ0eShl
bmdpbmUudG9TdHJpbmdIYW5kbGUoImFhYSIpKS5pc1ZhbGlkKCkpOworICAgIH0KKyAgICB7Cisg
ICAgICAgIFFTY3JpcHRWYWx1ZSBvYmplY3QgPSBlbmdpbmUubmV3T2JqZWN0KCk7CisgICAgICAg
IFFTY3JpcHRWYWx1ZSBwcm9wZXJ0eTsKKworICAgICAgICBvYmplY3Quc2V0UHJvcGVydHkoMTMs
IHByb3BlcnR5KTsKKyAgICAgICAgb2JqZWN0LnNldFByb3BlcnR5KCJhYWEiLCBwcm9wZXJ0eSk7
CisgICAgICAgIG9iamVjdC5zZXRQcm9wZXJ0eShlbmdpbmUudG9TdHJpbmdIYW5kbGUoImFhYSIp
LCBwcm9wZXJ0eSk7CisKKyAgICAgICAgUVZFUklGWSghb2JqZWN0LnByb3BlcnR5KDEzKS5pc1Zh
bGlkKCkpOworICAgICAgICBRVkVSSUZZKCFvYmplY3QucHJvcGVydHkoImFhYSIpLmlzVmFsaWQo
KSk7CisgICAgICAgIFFWRVJJRlkoIW9iamVjdC5wcm9wZXJ0eShlbmdpbmUudG9TdHJpbmdIYW5k
bGUoImFhYSIpKS5pc1ZhbGlkKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIC8vIENoZWNrIGlm
IHNldHRpbmcgYW4gaW52YWxpZCBwcm9wZXJ0eSB3b3JrcyBhcyBkZWxldGVQcm9wZXJ0eS4KKyAg
ICAgICAgUVNjcmlwdFZhbHVlIG9iamVjdCA9IGVuZ2luZS5ldmFsdWF0ZSgibyA9IHsxMzogMCwg
J2FhYSc6IDMsICdiYmInOiAxfSIpOworICAgICAgICBRU2NyaXB0VmFsdWUgcHJvcGVydHk7CisK
KyAgICAgICAgUVZFUklGWShvYmplY3QucHJvcGVydHkoMTMpLmlzVmFsaWQoKSk7CisgICAgICAg
IFFWRVJJRlkob2JqZWN0LnByb3BlcnR5KCJhYWEiKS5pc1ZhbGlkKCkpOworICAgICAgICBRVkVS
SUZZKG9iamVjdC5wcm9wZXJ0eShlbmdpbmUudG9TdHJpbmdIYW5kbGUoImFhYSIpKS5pc1ZhbGlk
KCkpOworCisgICAgICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgxMywgcHJvcGVydHkpOworICAgICAg
ICBvYmplY3Quc2V0UHJvcGVydHkoImFhYSIsIHByb3BlcnR5KTsKKyAgICAgICAgb2JqZWN0LnNl
dFByb3BlcnR5KGVuZ2luZS50b1N0cmluZ0hhbmRsZSgiYmJiIiksIHByb3BlcnR5KTsKKworICAg
ICAgICBRVkVSSUZZKCFvYmplY3QucHJvcGVydHkoMTMpLmlzVmFsaWQoKSk7CisgICAgICAgIFFW
RVJJRlkoIW9iamVjdC5wcm9wZXJ0eSgiYWFhIikuaXNWYWxpZCgpKTsKKyAgICAgICAgUVZFUklG
WSghb2JqZWN0LnByb3BlcnR5KGVuZ2luZS50b1N0cmluZ0hhbmRsZSgiYWFhIikpLmlzVmFsaWQo
KSk7CisgICAgfQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIG9iamVjdCA9IGVuZ2luZS5l
dmFsdWF0ZSgibmV3IE9iamVjdCIpOworICAgICAgICBRVkVSSUZZKG9iamVjdC5pc09iamVjdCgp
KTsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHByb3BlcnR5ID0gb2JqZWN0LnByb3BlcnR5KCJmb28i
KTsKKyAgICAgICAgUVZFUklGWSghcHJvcGVydHkuaXNWYWxpZCgpKTsKKyAgICAgICAgcHJvcGVy
dHkgPSBRU2NyaXB0VmFsdWUoMik7CisgICAgICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgiZm9vIiwg
cHJvcGVydHkpOworICAgICAgICBRVkVSSUZZKG9iamVjdC5wcm9wZXJ0eSgiZm9vIikuaXNOdW1i
ZXIoKSk7CisgICAgICAgIFFWRVJJRlkob2JqZWN0LnByb3BlcnR5KCJmb28iKS50b051bWJlcigp
ID09IDIpOworICAgIH0KKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSBvMSA9IGVuZ2luZS5l
dmFsdWF0ZSgibzEgPSBuZXcgT2JqZWN0OyBvMSIpOworICAgICAgICBRU2NyaXB0VmFsdWUgbzIg
PSBlbmdpbmUuZXZhbHVhdGUoIm8yID0gbmV3IE9iamVjdDsgbzIiKTsKKyAgICAgICAgUVZFUklG
WShlbmdpbmUuZXZhbHVhdGUoIm8xLl9fcHJvdG9fXyA9IG8yOyBvMS5fX3Byb3RvX18gPT09IG8y
IikudG9Cb29sKCkpOworICAgICAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgibzIuZm9vID0g
MjI7IG8xLmZvbyA9PSAyMiIpLnRvQm9vbCgpKTsKKyAgICAgICAgUVZFUklGWShvMS5wcm9wZXJ0
eSgiZm9vIikudG9TdHJpbmcoKSA9PSAiMjIiKTsKKyAgICAgICAgbzIuc2V0UHJvcGVydHkoImZv
byIsIFFTY3JpcHRWYWx1ZSgmZW5naW5lLCA0NTYuMCkpOworICAgICAgICBRVkVSSUZZKGVuZ2lu
ZS5ldmFsdWF0ZSgibzEuZm9vID09IDQ1NiIpLnRvQm9vbCgpKTsKKyAgICAgICAgUVZFUklGWShv
MS5wcm9wZXJ0eSgiZm9vIikuaXNOdW1iZXIoKSk7CisgICAgfQorfQorCit2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OmdldFByb3BlcnR5UmVzb2x2ZUZsYWcoKQoreworICAgIFFTY3JpcHRFbmdpbmUg
ZW5naW5lOworICAgIFFTY3JpcHRWYWx1ZSBvYmplY3QxID0gZW5naW5lLmV2YWx1YXRlKCJvMSA9
IG5ldyBPYmplY3QoKTsiKTsKKyAgICBRU2NyaXB0VmFsdWUgb2JqZWN0MiA9IGVuZ2luZS5ldmFs
dWF0ZSgibzIgPSBuZXcgT2JqZWN0KCk7IG8xLl9fcHJvdG9fXyA9IG8yOyBvMiIpOworICAgIFFT
Y3JpcHRWYWx1ZSBudW1iZXIoJmVuZ2luZSwgNDU2LjApOworICAgIFFWRVJJRlkob2JqZWN0MS5p
c09iamVjdCgpKTsKKyAgICBRVkVSSUZZKG9iamVjdDIuaXNPYmplY3QoKSk7CisgICAgUVZFUklG
WShudW1iZXIuaXNOdW1iZXIoKSk7CisKKyAgICBvYmplY3QyLnNldFByb3BlcnR5KCJwcm9wZXJ0
eUluUHJvdG90eXBlIiwgbnVtYmVyKTsKKyAgICBRVkVSSUZZKG9iamVjdDIucHJvcGVydHkoInBy
b3BlcnR5SW5Qcm90b3R5cGUiKS5pc051bWJlcigpKTsKKyAgICAvLyBkZWZhdWx0IGlzIFJlc29s
dmVQcm90b3R5cGUKKyAgICBRQ09NUEFSRShvYmplY3QxLnByb3BlcnR5KCJwcm9wZXJ0eUluUHJv
dG90eXBlIikuc3RyaWN0bHlFcXVhbHMobnVtYmVyKSwgdHJ1ZSk7CisgICAgUUNPTVBBUkUob2Jq
ZWN0MS5wcm9wZXJ0eSgicHJvcGVydHlJblByb3RvdHlwZSIsIFFTY3JpcHRWYWx1ZTo6UmVzb2x2
ZVByb3RvdHlwZSkKKyAgICAgICAgICAgICAuc3RyaWN0bHlFcXVhbHMobnVtYmVyKSwgdHJ1ZSk7
CisgICAgUUNPTVBBUkUob2JqZWN0MS5wcm9wZXJ0eSgicHJvcGVydHlJblByb3RvdHlwZSIsIFFT
Y3JpcHRWYWx1ZTo6UmVzb2x2ZUxvY2FsKS5pc1ZhbGlkKCksIGZhbHNlKTsKK30KKwordm9pZCB0
c3RfUVNjcmlwdFZhbHVlOjpnZXRTZXRQcm9wZXJ0eSgpCit7CisgICAgUVNjcmlwdEVuZ2luZSBl
bmc7CisKKyAgICBRU2NyaXB0VmFsdWUgb2JqZWN0ID0gZW5nLm5ld09iamVjdCgpOworCisgICAg
UVNjcmlwdFZhbHVlIHN0ciA9IFFTY3JpcHRWYWx1ZSgmZW5nLCAiYmFyIik7CisgICAgb2JqZWN0
LnNldFByb3BlcnR5KCJmb28iLCBzdHIpOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgi
Zm9vIikudG9TdHJpbmcoKSwgc3RyLnRvU3RyaW5nKCkpOworCisgICAgUVNjcmlwdFZhbHVlIG51
bSA9IFFTY3JpcHRWYWx1ZSgmZW5nLCAxMjMuMCk7CisgICAgb2JqZWN0LnNldFByb3BlcnR5KCJi
YXoiLCBudW0pOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgiYmF6IikudG9OdW1iZXIo
KSwgbnVtLnRvTnVtYmVyKCkpOworCisgICAgUVNjcmlwdFZhbHVlIHN0cnN0ciA9IFFTY3JpcHRW
YWx1ZSgiYmFyIik7CisgICAgUUNPTVBBUkUoc3Ryc3RyLmVuZ2luZSgpLCAoUVNjcmlwdEVuZ2lu
ZSAqKTApOworICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgiZm9vIiwgc3Ryc3RyKTsKKyAgICBRQ09N
UEFSRShvYmplY3QucHJvcGVydHkoImZvbyIpLnRvU3RyaW5nKCksIHN0cnN0ci50b1N0cmluZygp
KTsKKyAgICBRQ09NUEFSRShzdHJzdHIuZW5naW5lKCksICZlbmcpOyAvLyB0aGUgdmFsdWUgaGFz
IGJlZW4gYm91bmQgdG8gdGhlIGVuZ2luZQorCisgICAgUVNjcmlwdFZhbHVlIG51bW51bSA9IFFT
Y3JpcHRWYWx1ZSgxMjMuMCk7CisgICAgb2JqZWN0LnNldFByb3BlcnR5KCJiYXoiLCBudW1udW0p
OworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgiYmF6IikudG9OdW1iZXIoKSwgbnVtbnVt
LnRvTnVtYmVyKCkpOworCisgICAgUVNjcmlwdFZhbHVlIGludjsKKyAgICBpbnYuc2V0UHJvcGVy
dHkoImZvbyIsIG51bSk7CisgICAgUUNPTVBBUkUoaW52LnByb3BlcnR5KCJmb28iKS5pc1ZhbGlk
KCksIGZhbHNlKTsKKworICAgIFFTY3JpcHRWYWx1ZSBhcnJheSA9IGVuZy5uZXdBcnJheSgpOwor
ICAgIGFycmF5LnNldFByb3BlcnR5KDAsIG51bSk7CisgICAgUUNPTVBBUkUoYXJyYXkucHJvcGVy
dHkoMCkudG9OdW1iZXIoKSwgbnVtLnRvTnVtYmVyKCkpOworICAgIFFDT01QQVJFKGFycmF5LnBy
b3BlcnR5KCIwIikudG9OdW1iZXIoKSwgbnVtLnRvTnVtYmVyKCkpOworICAgIFFDT01QQVJFKGFy
cmF5LnByb3BlcnR5KCJsZW5ndGgiKS50b1VJbnQzMigpLCBxdWludDMyKDEpKTsKKyAgICBhcnJh
eS5zZXRQcm9wZXJ0eSgxLCBzdHIpOworICAgIFFDT01QQVJFKGFycmF5LnByb3BlcnR5KDEpLnRv
U3RyaW5nKCksIHN0ci50b1N0cmluZygpKTsKKyAgICBRQ09NUEFSRShhcnJheS5wcm9wZXJ0eSgi
MSIpLnRvU3RyaW5nKCksIHN0ci50b1N0cmluZygpKTsKKyAgICBRQ09NUEFSRShhcnJheS5wcm9w
ZXJ0eSgibGVuZ3RoIikudG9VSW50MzIoKSwgcXVpbnQzMigyKSk7CisgICAgYXJyYXkuc2V0UHJv
cGVydHkoImxlbmd0aCIsIFFTY3JpcHRWYWx1ZSgmZW5nLCAxKSk7CisgICAgUUNPTVBBUkUoYXJy
YXkucHJvcGVydHkoImxlbmd0aCIpLnRvVUludDMyKCksIHF1aW50MzIoMSkpOworICAgIFFDT01Q
QVJFKGFycmF5LnByb3BlcnR5KDEpLmlzVmFsaWQoKSwgZmFsc2UpOworCisgICAgLy8gdGFzayAx
NjIwNTEgLS0gZGV0ZWN0aW5nIHdoZXRoZXIgdGhlIHByb3BlcnR5IGlzIGFuIGFycmF5IGluZGV4
IG9yIG5vdAorICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKCJhID0gW107IGFbJzAwJ10gPSAxMjM7
IGFbJzAwJ10iKS5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWUoJmVuZywgMTIzKSkpOworICAg
IFFWRVJJRlkoZW5nLmV2YWx1YXRlKCJhLmxlbmd0aCIpLnN0cmljdGx5RXF1YWxzKFFTY3JpcHRW
YWx1ZSgmZW5nLCAwKSkpOworICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKCJhLmhhc093blByb3Bl
cnR5KCcwMCcpIikuc3RyaWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlKCZlbmcsIHRydWUpKSk7Cisg
ICAgUVZFUklGWShlbmcuZXZhbHVhdGUoImEuaGFzT3duUHJvcGVydHkoJzAnKSIpLnN0cmljdGx5
RXF1YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCBmYWxzZSkpKTsKKyAgICBRVkVSSUZZKGVuZy5ldmFs
dWF0ZSgiYVswXSIpLmlzVW5kZWZpbmVkKCkpOworICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKCJh
WzAuNV0gPSA0NTY7IGFbMC41XSIpLnN0cmljdGx5RXF1YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCA0
NTYpKSk7CisgICAgUVZFUklGWShlbmcuZXZhbHVhdGUoImEubGVuZ3RoIikuc3RyaWN0bHlFcXVh
bHMoUVNjcmlwdFZhbHVlKCZlbmcsIDApKSk7CisgICAgUVZFUklGWShlbmcuZXZhbHVhdGUoImEu
aGFzT3duUHJvcGVydHkoJzAuNScpIikuc3RyaWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlKCZlbmcs
IHRydWUpKSk7CisgICAgUVZFUklGWShlbmcuZXZhbHVhdGUoImFbMF0iKS5pc1VuZGVmaW5lZCgp
KTsKKyAgICBRVkVSSUZZKGVuZy5ldmFsdWF0ZSgiYVswXSA9IDc4OTsgYVswXSIpLnN0cmljdGx5
RXF1YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCA3ODkpKSk7CisgICAgUVZFUklGWShlbmcuZXZhbHVh
dGUoImEubGVuZ3RoIikuc3RyaWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlKCZlbmcsIDEpKSk7CisK
KyAgICAvLyB0YXNrIDE4MzA3MiAtLSAweDgwMDAwMDAwMCBpcyBub3QgYW4gYXJyYXkgaW5kZXgK
KyAgICBlbmcuZXZhbHVhdGUoImEgPSBbXTsgYVsweDgwMDAwMDAwMF0gPSAxMjMiKTsKKyAgICBR
VkVSSUZZKGVuZy5ldmFsdWF0ZSgiYS5sZW5ndGgiKS5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFs
dWUoJmVuZywgMCkpKTsKKyAgICBRVkVSSUZZKGVuZy5ldmFsdWF0ZSgiYVswXSIpLmlzVW5kZWZp
bmVkKCkpOworICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKCJhWzB4ODAwMDAwMDAwXSIpLnN0cmlj
dGx5RXF1YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCAxMjMpKSk7CisKKyAgICBRU2NyaXB0RW5naW5l
IG90aGVyRW5naW5lOworICAgIFFTY3JpcHRWYWx1ZSBvdGhlck51bSA9IFFTY3JpcHRWYWx1ZSgm
b3RoZXJFbmdpbmUsIDEyMyk7CisgICAgUVRlc3Q6Omlnbm9yZU1lc3NhZ2UoUXRXYXJuaW5nTXNn
LCAiUVNjcmlwdFZhbHVlOjpzZXRQcm9wZXJ0eSgpIGZhaWxlZDogY2Fubm90IHNldCB2YWx1ZSBj
cmVhdGVkIGluIGEgZGlmZmVyZW50IGVuZ2luZSIpOworICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgi
b29mIiwgb3RoZXJOdW0pOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgib29mIikuaXNW
YWxpZCgpLCBmYWxzZSk7CisKKyAgICAvLyB0ZXN0IFJlc29sdmVNb2RlCisgICAgUVNjcmlwdFZh
bHVlIG9iamVjdDIgPSBlbmcubmV3T2JqZWN0KCk7CisgICAgb2JqZWN0LnNldFByb3RvdHlwZShv
YmplY3QyKTsKKyAgICBRU2NyaXB0VmFsdWUgbnVtMiA9IFFTY3JpcHRWYWx1ZSgmZW5nLCA0NTYu
MCk7CisgICAgb2JqZWN0Mi5zZXRQcm9wZXJ0eSgicHJvcGVydHlJblByb3RvdHlwZSIsIG51bTIp
OworICAgIC8vIGRlZmF1bHQgaXMgUmVzb2x2ZVByb3RvdHlwZQorICAgIFFDT01QQVJFKG9iamVj
dC5wcm9wZXJ0eSgicHJvcGVydHlJblByb3RvdHlwZSIpCisgICAgICAgICAgICAgLnN0cmljdGx5
RXF1YWxzKG51bTIpLCB0cnVlKTsKKyAgICBRQ09NUEFSRShvYmplY3QucHJvcGVydHkoInByb3Bl
cnR5SW5Qcm90b3R5cGUiLCBRU2NyaXB0VmFsdWU6OlJlc29sdmVQcm90b3R5cGUpCisgICAgICAg
ICAgICAgLnN0cmljdGx5RXF1YWxzKG51bTIpLCB0cnVlKTsKKyAgICBRQ09NUEFSRShvYmplY3Qu
cHJvcGVydHkoInByb3BlcnR5SW5Qcm90b3R5cGUiLCBRU2NyaXB0VmFsdWU6OlJlc29sdmVMb2Nh
bCkKKyAgICAgICAgICAgICAuaXNWYWxpZCgpLCBmYWxzZSk7CisgICAgUUVYUEVDVF9GQUlMKCIi
LCAiUVNjcmlwdFZhbHVlOjpSZXNvbHZlU2NvcGUgaXMgbm90IGltcGxlbWVudGVkIiwgQ29udGlu
dWUpOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgicHJvcGVydHlJblByb3RvdHlwZSIs
IFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZVNjb3BlKQorICAgICAgICAgICAgIC5zdHJpY3RseUVxdWFs
cyhudW0yKSwgZmFsc2UpOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgicHJvcGVydHlJ
blByb3RvdHlwZSIsIFFTY3JpcHRWYWx1ZTo6UmVzb2x2ZUZ1bGwpCisgICAgICAgICAgICAgLnN0
cmljdGx5RXF1YWxzKG51bTIpLCB0cnVlKTsKKworICAgIC8vIHRlc3QgcHJvcGVydHkgcmVtb3Zh
bCAoc2V0UHJvcGVydHkoUVNjcmlwdFZhbHVlKCkpKQorICAgIFFTY3JpcHRWYWx1ZSBvYmplY3Qz
ID0gZW5nLm5ld09iamVjdCgpOworICAgIG9iamVjdDMuc2V0UHJvcGVydHkoImZvbyIsIG51bSk7
CisgICAgUUNPTVBBUkUob2JqZWN0My5wcm9wZXJ0eSgiZm9vIikuc3RyaWN0bHlFcXVhbHMobnVt
KSwgdHJ1ZSk7CisgICAgb2JqZWN0My5zZXRQcm9wZXJ0eSgiYmFyIiwgc3RyKTsKKyAgICBRQ09N
UEFSRShvYmplY3QzLnByb3BlcnR5KCJiYXIiKS5zdHJpY3RseUVxdWFscyhzdHIpLCB0cnVlKTsK
KyAgICBvYmplY3QzLnNldFByb3BlcnR5KCJmb28iLCBRU2NyaXB0VmFsdWUoKSk7CisgICAgUUNP
TVBBUkUob2JqZWN0My5wcm9wZXJ0eSgiZm9vIikuaXNWYWxpZCgpLCBmYWxzZSk7CisgICAgUUNP
TVBBUkUob2JqZWN0My5wcm9wZXJ0eSgiYmFyIikuc3RyaWN0bHlFcXVhbHMoc3RyKSwgdHJ1ZSk7
CisgICAgb2JqZWN0My5zZXRQcm9wZXJ0eSgiZm9vIiwgbnVtKTsKKyAgICBRQ09NUEFSRShvYmpl
Y3QzLnByb3BlcnR5KCJmb28iKS5zdHJpY3RseUVxdWFscyhudW0pLCB0cnVlKTsKKyAgICBRQ09N
UEFSRShvYmplY3QzLnByb3BlcnR5KCJiYXIiKS5zdHJpY3RseUVxdWFscyhzdHIpLCB0cnVlKTsK
KyAgICBvYmplY3QzLnNldFByb3BlcnR5KCJiYXIiLCBRU2NyaXB0VmFsdWUoKSk7CisgICAgUUNP
TVBBUkUob2JqZWN0My5wcm9wZXJ0eSgiYmFyIikuaXNWYWxpZCgpLCBmYWxzZSk7CisgICAgUUNP
TVBBUkUob2JqZWN0My5wcm9wZXJ0eSgiZm9vIikuc3RyaWN0bHlFcXVhbHMobnVtKSwgdHJ1ZSk7
CisgICAgb2JqZWN0My5zZXRQcm9wZXJ0eSgiZm9vIiwgUVNjcmlwdFZhbHVlKCkpOworICAgIG9i
amVjdDMuc2V0UHJvcGVydHkoImZvbyIsIFFTY3JpcHRWYWx1ZSgpKTsKKworICAgIGVuZy5nbG9i
YWxPYmplY3QoKS5zZXRQcm9wZXJ0eSgib2JqZWN0MyIsIG9iamVjdDMpOworICAgIFFDT01QQVJF
KGVuZy5ldmFsdWF0ZSgib2JqZWN0My5oYXNPd25Qcm9wZXJ0eSgnZm9vJykiKQorICAgICAgICAg
ICAgIC5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWUoJmVuZywgZmFsc2UpKSwgdHJ1ZSk7Cisg
ICAgb2JqZWN0My5zZXRQcm9wZXJ0eSgiZm9vIiwgbnVtKTsKKyAgICBRQ09NUEFSRShlbmcuZXZh
bHVhdGUoIm9iamVjdDMuaGFzT3duUHJvcGVydHkoJ2ZvbycpIikKKyAgICAgICAgICAgICAuc3Ry
aWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlKCZlbmcsIHRydWUpKSwgdHJ1ZSk7CisgICAgZW5nLmds
b2JhbE9iamVjdCgpLnNldFByb3BlcnR5KCJvYmplY3QzIiwgUVNjcmlwdFZhbHVlKCkpOworICAg
IFFDT01QQVJFKGVuZy5ldmFsdWF0ZSgidGhpcy5oYXNPd25Qcm9wZXJ0eSgnb2JqZWN0MycpIikK
KyAgICAgICAgICAgICAuc3RyaWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlKCZlbmcsIGZhbHNlKSks
IHRydWUpOworCisgICAgZW5nLmdsb2JhbE9iamVjdCgpLnNldFByb3BlcnR5KCJvYmplY3QiLCBv
YmplY3QpOworCisgICAgLy8gUmVhZE9ubHkKKyAgICBvYmplY3Quc2V0UHJvcGVydHkoInJlYWRP
bmx5UHJvcGVydHkiLCBudW0sIFFTY3JpcHRWYWx1ZTo6UmVhZE9ubHkpOworICAgIC8vIFFDT01Q
QVJFKG9iamVjdC5wcm9wZXJ0eUZsYWdzKCJyZWFkT25seVByb3BlcnR5IiksIFFTY3JpcHRWYWx1
ZTo6UmVhZE9ubHkpOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgicmVhZE9ubHlQcm9w
ZXJ0eSIpLnN0cmljdGx5RXF1YWxzKG51bSksIHRydWUpOworICAgIGVuZy5ldmFsdWF0ZSgib2Jq
ZWN0LnJlYWRPbmx5UHJvcGVydHkgPSAhb2JqZWN0LnJlYWRPbmx5UHJvcGVydHkiKTsKKyAgICBR
Q09NUEFSRShvYmplY3QucHJvcGVydHkoInJlYWRPbmx5UHJvcGVydHkiKS5zdHJpY3RseUVxdWFs
cyhudW0pLCB0cnVlKTsKKyAgICAvLyBTaG91bGQgc3RpbGwgYmUgcGFydCBvZiBlbnVtZXJhdGlv
bi4KKyAgICB7CisgICAgICAgIFFTY3JpcHRWYWx1ZSByZXQgPSBlbmcuZXZhbHVhdGUoCisgICAg
ICAgICAgICAiZm91bmQgPSBmYWxzZTsiCisgICAgICAgICAgICAiZm9yICh2YXIgcCBpbiBvYmpl
Y3QpIHsiCisgICAgICAgICAgICAiICBpZiAocCA9PSAncmVhZE9ubHlQcm9wZXJ0eScpIHsiCisg
ICAgICAgICAgICAiICAgIGZvdW5kID0gdHJ1ZTsgYnJlYWs7IgorICAgICAgICAgICAgIiAgfSIK
KyAgICAgICAgICAgICJ9IGZvdW5kIik7CisgICAgICAgIFFDT01QQVJFKHJldC5zdHJpY3RseUVx
dWFscyhRU2NyaXB0VmFsdWUoJmVuZywgdHJ1ZSkpLCB0cnVlKTsKKyAgICB9CisgICAgLy8gc2hv
dWxkIHN0aWxsIGJlIGRlbGV0YWJsZQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9
IGVuZy5ldmFsdWF0ZSgiZGVsZXRlIG9iamVjdC5yZWFkT25seVByb3BlcnR5Iik7CisgICAgICAg
IFFDT01QQVJFKHJldC5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWUoJmVuZywgdHJ1ZSkpLCB0
cnVlKTsKKyAgICAgICAgUUNPTVBBUkUob2JqZWN0LnByb3BlcnR5KCJyZWFkT25seVByb3BlcnR5
IikuaXNWYWxpZCgpLCBmYWxzZSk7CisgICAgfQorCisgICAgLy8gVW5kZWxldGFibGUKKyAgICBv
YmplY3Quc2V0UHJvcGVydHkoInVuZGVsZXRhYmxlUHJvcGVydHkiLCBudW0sIFFTY3JpcHRWYWx1
ZTo6VW5kZWxldGFibGUpOworICAgIC8vIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eUZsYWdzKCJ1
bmRlbGV0YWJsZVByb3BlcnR5IiksIFFTY3JpcHRWYWx1ZTo6VW5kZWxldGFibGUpOworICAgIFFD
T01QQVJFKG9iamVjdC5wcm9wZXJ0eSgidW5kZWxldGFibGVQcm9wZXJ0eSIpLnN0cmljdGx5RXF1
YWxzKG51bSksIHRydWUpOworICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5l
dmFsdWF0ZSgiZGVsZXRlIG9iamVjdC51bmRlbGV0YWJsZVByb3BlcnR5Iik7CisgICAgICAgIFFD
T01QQVJFKHJldC5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWUoJmVuZywgdHJ1ZSkpLCBmYWxz
ZSk7CisgICAgICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgidW5kZWxldGFibGVQcm9wZXJ0
eSIpLnN0cmljdGx5RXF1YWxzKG51bSksIHRydWUpOworICAgIH0KKyAgICAvLyBzaG91bGQgc3Rp
bGwgYmUgd3JpdGFibGUKKyAgICBlbmcuZXZhbHVhdGUoIm9iamVjdC51bmRlbGV0YWJsZVByb3Bl
cnR5ID0gb2JqZWN0LnVuZGVsZXRhYmxlUHJvcGVydHkgKyAxIik7CisgICAgUUNPTVBBUkUob2Jq
ZWN0LnByb3BlcnR5KCJ1bmRlbGV0YWJsZVByb3BlcnR5IikudG9OdW1iZXIoKSwgbnVtLnRvTnVt
YmVyKCkgKyAxKTsKKyAgICAvLyBzaG91bGQgc3RpbGwgYmUgcGFydCBvZiBlbnVtZXJhdGlvbgor
ICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgKKyAgICAgICAg
ICAgICJmb3VuZCA9IGZhbHNlOyIKKyAgICAgICAgICAgICJmb3IgKHZhciBwIGluIG9iamVjdCkg
eyIKKyAgICAgICAgICAgICIgIGlmIChwID09ICd1bmRlbGV0YWJsZVByb3BlcnR5JykgeyIKKyAg
ICAgICAgICAgICIgICAgZm91bmQgPSB0cnVlOyBicmVhazsiCisgICAgICAgICAgICAiICB9Igor
ICAgICAgICAgICAgIn0gZm91bmQiKTsKKyAgICAgICAgUUNPTVBBUkUocmV0LnN0cmljdGx5RXF1
YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCB0cnVlKSksIHRydWUpOworICAgIH0KKyAgICAvLyBzaG91
bGQgc3RpbGwgYmUgZGVsZXRhYmxlIGZyb20gQysrCisgICAgb2JqZWN0LnNldFByb3BlcnR5KCJ1
bmRlbGV0YWJsZVByb3BlcnR5IiwgUVNjcmlwdFZhbHVlKCkpOworICAgIFFFWFBFQ1RfRkFJTCgi
IiwgIldpdGggSlNDLWJhc2VkIGJhY2stZW5kLCB1bmRlbGV0YWJsZSBwcm9wZXJ0aWVzIGNhbid0
IGJlIGRlbGV0ZWQgZnJvbSBDKysiLCBDb250aW51ZSk7CisgICAgUVZFUklGWSghb2JqZWN0LnBy
b3BlcnR5KCJ1bmRlbGV0YWJsZVByb3BlcnR5IikuaXNWYWxpZCgpKTsKKyAgICAvLyBRRVhQRUNU
X0ZBSUwoIiIsICJXaXRoIEpTQy1iYXNlZCBiYWNrLWVuZCwgdW5kZWxldGFibGUgcHJvcGVydGll
cyBjYW4ndCBiZSBkZWxldGVkIGZyb20gQysrIiwgQ29udGludWUpOworICAgIC8vIFFDT01QQVJF
KG9iamVjdC5wcm9wZXJ0eUZsYWdzKCJ1bmRlbGV0YWJsZVByb3BlcnR5IiksIDApOworCisgICAg
Ly8gU2tpcEluRW51bWVyYXRpb24KKyAgICBvYmplY3Quc2V0UHJvcGVydHkoImRvbnRFbnVtUHJv
cGVydHkiLCBudW0sIFFTY3JpcHRWYWx1ZTo6U2tpcEluRW51bWVyYXRpb24pOworICAgIC8vIFFD
T01QQVJFKG9iamVjdC5wcm9wZXJ0eUZsYWdzKCJkb250RW51bVByb3BlcnR5IiksIFFTY3JpcHRW
YWx1ZTo6U2tpcEluRW51bWVyYXRpb24pOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgi
ZG9udEVudW1Qcm9wZXJ0eSIpLnN0cmljdGx5RXF1YWxzKG51bSksIHRydWUpOworICAgIC8vIHNo
b3VsZCBub3QgYmUgcGFydCBvZiBlbnVtZXJhdGlvbgorICAgIHsKKyAgICAgICAgUVNjcmlwdFZh
bHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgKKyAgICAgICAgICAgICJmb3VuZCA9IGZhbHNlOyIKKyAg
ICAgICAgICAgICJmb3IgKHZhciBwIGluIG9iamVjdCkgeyIKKyAgICAgICAgICAgICIgIGlmIChw
ID09ICdkb250RW51bVByb3BlcnR5JykgeyIKKyAgICAgICAgICAgICIgICAgZm91bmQgPSB0cnVl
OyBicmVhazsiCisgICAgICAgICAgICAiICB9IgorICAgICAgICAgICAgIn0gZm91bmQiKTsKKyAg
ICAgICAgUUNPTVBBUkUocmV0LnN0cmljdGx5RXF1YWxzKFFTY3JpcHRWYWx1ZSgmZW5nLCBmYWxz
ZSkpLCB0cnVlKTsKKyAgICB9CisgICAgLy8gc2hvdWxkIHN0aWxsIGJlIHdyaXRhYmxlCisgICAg
ZW5nLmV2YWx1YXRlKCJvYmplY3QuZG9udEVudW1Qcm9wZXJ0eSA9IG9iamVjdC5kb250RW51bVBy
b3BlcnR5ICsgMSIpOworICAgIFFDT01QQVJFKG9iamVjdC5wcm9wZXJ0eSgiZG9udEVudW1Qcm9w
ZXJ0eSIpLnRvTnVtYmVyKCksIG51bS50b051bWJlcigpICsgMSk7CisgICAgLy8gc2hvdWxkIHN0
aWxsIGJlIGRlbGV0YWJsZQorICAgIHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5l
dmFsdWF0ZSgiZGVsZXRlIG9iamVjdC5kb250RW51bVByb3BlcnR5Iik7CisgICAgICAgIFFDT01Q
QVJFKHJldC5zdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWUoJmVuZywgdHJ1ZSkpLCB0cnVlKTsK
KyAgICAgICAgUUNPTVBBUkUob2JqZWN0LnByb3BlcnR5KCJkb250RW51bVByb3BlcnR5IikuaXNW
YWxpZCgpLCBmYWxzZSk7CisgICAgfQorCisgICAgLy8gY2hhbmdlIGZsYWdzCisgICAgb2JqZWN0
LnNldFByb3BlcnR5KCJmbGFnUHJvcGVydHkiLCBzdHIpOworICAgIC8vIFFDT01QQVJFKG9iamVj
dC5wcm9wZXJ0eUZsYWdzKCJmbGFnUHJvcGVydHkiKSwgc3RhdGljX2Nhc3Q8UVNjcmlwdFZhbHVl
OjpQcm9wZXJ0eUZsYWdzPigwKSk7CisKKyAgICBvYmplY3Quc2V0UHJvcGVydHkoImZsYWdQcm9w
ZXJ0eSIsIHN0ciwgUVNjcmlwdFZhbHVlOjpSZWFkT25seSk7CisgICAgLy8gUUNPTVBBUkUob2Jq
ZWN0LnByb3BlcnR5RmxhZ3MoImZsYWdQcm9wZXJ0eSIpLCBRU2NyaXB0VmFsdWU6OlJlYWRPbmx5
KTsKKworICAgIC8vIG9iamVjdC5zZXRQcm9wZXJ0eSgiZmxhZ1Byb3BlcnR5Iiwgc3RyLCBvYmpl
Y3QucHJvcGVydHlGbGFncygiZmxhZ1Byb3BlcnR5IikgfCBRU2NyaXB0VmFsdWU6OlNraXBJbkVu
dW1lcmF0aW9uKTsKKyAgICAvLyBRQ09NUEFSRShvYmplY3QucHJvcGVydHlGbGFncygiZmxhZ1By
b3BlcnR5IiksIFFTY3JpcHRWYWx1ZTo6UmVhZE9ubHkgfCBRU2NyaXB0VmFsdWU6OlNraXBJbkVu
dW1lcmF0aW9uKTsKKworICAgIG9iamVjdC5zZXRQcm9wZXJ0eSgiZmxhZ1Byb3BlcnR5Iiwgc3Ry
LCBRU2NyaXB0VmFsdWU6OktlZXBFeGlzdGluZ0ZsYWdzKTsKKyAgICAvLyBRQ09NUEFSRShvYmpl
Y3QucHJvcGVydHlGbGFncygiZmxhZ1Byb3BlcnR5IiksIFFTY3JpcHRWYWx1ZTo6UmVhZE9ubHkg
fCBRU2NyaXB0VmFsdWU6OlNraXBJbkVudW1lcmF0aW9uKTsKKworICAgIG9iamVjdC5zZXRQcm9w
ZXJ0eSgiZmxhZ1Byb3BlcnR5Iiwgc3RyLCBRU2NyaXB0VmFsdWU6OlVzZXJSYW5nZSk7CisgICAg
Ly8gUUNPTVBBUkUob2JqZWN0LnByb3BlcnR5RmxhZ3MoImZsYWdQcm9wZXJ0eSIpLCBRU2NyaXB0
VmFsdWU6OlVzZXJSYW5nZSk7CisKKyAgICAvLyBmbGFncyBvZiBwcm9wZXJ0eSBpbiB0aGUgcHJv
dG90eXBlCisgICAgeworICAgICAgICBRU2NyaXB0VmFsdWUgb2JqZWN0MiA9IGVuZy5uZXdPYmpl
Y3QoKTsKKyAgICAgICAgb2JqZWN0Mi5zZXRQcm90b3R5cGUob2JqZWN0KTsKKyAgICAgICAgLy8g
UUNPTVBBUkUob2JqZWN0Mi5wcm9wZXJ0eUZsYWdzKCJmbGFnUHJvcGVydHkiLCBRU2NyaXB0VmFs
dWU6OlJlc29sdmVMb2NhbCksIDApOworICAgICAgICAvLyBRQ09NUEFSRShvYmplY3QyLnByb3Bl
cnR5RmxhZ3MoImZsYWdQcm9wZXJ0eSIpLCBRU2NyaXB0VmFsdWU6OlVzZXJSYW5nZSk7CisgICAg
fQorCisgICAgLy8gdXNpbmcgaW50ZXJuZWQgc3RyaW5ncworICAgIFFTY3JpcHRTdHJpbmcgZm9v
ID0gZW5nLnRvU3RyaW5nSGFuZGxlKCJmb28iKTsKKworICAgIG9iamVjdC5zZXRQcm9wZXJ0eShm
b28sIFFTY3JpcHRWYWx1ZSgpKTsKKyAgICBRVkVSSUZZKCFvYmplY3QucHJvcGVydHkoZm9vKS5p
c1ZhbGlkKCkpOworCisgICAgb2JqZWN0LnNldFByb3BlcnR5KGZvbywgbnVtKTsKKyAgICBRVkVS
SUZZKG9iamVjdC5wcm9wZXJ0eShmb28pLnN0cmljdGx5RXF1YWxzKG51bSkpOworICAgIFFWRVJJ
Rlkob2JqZWN0LnByb3BlcnR5KCJmb28iKS5zdHJpY3RseUVxdWFscyhudW0pKTsKKyAgICAvLyBR
VkVSSUZZKG9iamVjdC5wcm9wZXJ0eUZsYWdzKGZvbykgPT0gMCk7Cit9CisKIHZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6dG9TdHJpbmdTaW1wbGVfZGF0YSgpCiB7CiAgICAgUVRlc3Q6OmFkZENvbHVt
bjxRU3RyaW5nPigiY29kZSIpOwpAQCAtNTgwLDE3ICs5NjYsMjU3IEBAIHZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6dG9PYmplY3RTaW1wbGUoKQogICAgIH0KIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZh
bHVlOjpwcm9wZXJ0eVNpbXBsZSgpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnNldFByb3BlcnR5
X2RhdGEoKQogewotICAgIFFTY3JpcHRFbmdpbmUgZW5nOworICAgIFFUZXN0OjphZGRDb2x1bW48
UVNjcmlwdFZhbHVlPigicHJvcGVydHkiKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGludD4oImZs
YWciKTsKKworICAgIFFUZXN0OjpuZXdSb3coImludCArIGtlZXBFeGlzdGluZ0ZsYWdzIikgPDwg
UVNjcmlwdFZhbHVlKDEyMzQ1NikgPDwgc3RhdGljX2Nhc3Q8aW50PihRU2NyaXB0VmFsdWU6Oktl
ZXBFeGlzdGluZ0ZsYWdzKTsKKyAgICBRVGVzdDo6bmV3Um93KCJpbnQgKyB1bmRlbGV0YWJsZSIp
IDw8IFFTY3JpcHRWYWx1ZSgxMjM0NTYpIDw8IHN0YXRpY19jYXN0PGludD4oUVNjcmlwdFZhbHVl
OjpVbmRlbGV0YWJsZSk7CisgICAgUVRlc3Q6Om5ld1JvdygiaW50ICsgcmVhZE9ubHkiKSA8PCBR
U2NyaXB0VmFsdWUoMTIzNDU2KSA8PCBzdGF0aWNfY2FzdDxpbnQ+KFFTY3JpcHRWYWx1ZTo6UmVh
ZE9ubHkpOworICAgIFFUZXN0OjpuZXdSb3coImludCArIHJlYWRPbmx5fHVuZGVsZXRhYmxlIikg
PDwgUVNjcmlwdFZhbHVlKDEyMzQ1NikgPDwgc3RhdGljX2Nhc3Q8aW50PihRU2NyaXB0VmFsdWU6
OlJlYWRPbmx5IHwgUVNjcmlwdFZhbHVlOjpVbmRlbGV0YWJsZSk7CisgICAgUVRlc3Q6Om5ld1Jv
dygiaW50ICsgc2tpcEluRW51bWVyYXRpb24iKSA8PCBRU2NyaXB0VmFsdWUoMTIzNDU2KSA8PCBz
dGF0aWNfY2FzdDxpbnQ+KFFTY3JpcHRWYWx1ZTo6U2tpcEluRW51bWVyYXRpb24pOworICAgIFFU
ZXN0OjpuZXdSb3coImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5IikgPDwgUVNjcmlw
dFZhbHVlKDEyMzQ1NikgPDwgc3RhdGljX2Nhc3Q8aW50PihRU2NyaXB0VmFsdWU6OlNraXBJbkVu
dW1lcmF0aW9uIHwgUVNjcmlwdFZhbHVlOjpSZWFkT25seSk7CisgICAgUVRlc3Q6Om5ld1Jvdygi
aW50ICsgc2tpcEluRW51bWVyYXRpb258dW5kZWxldGFibGUiKSA8PCBRU2NyaXB0VmFsdWUoMTIz
NDU2KSA8PCBzdGF0aWNfY2FzdDxpbnQ+KFFTY3JpcHRWYWx1ZTo6U2tpcEluRW51bWVyYXRpb24g
fCBRU2NyaXB0VmFsdWU6OlVuZGVsZXRhYmxlKTsKKyAgICBRVGVzdDo6bmV3Um93KCJpbnQgKyBz
a2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0YWJsZSIpIDw8IFFTY3JpcHRWYWx1ZSgx
MjM0NTYpIDw8IHN0YXRpY19jYXN0PGludD4oUVNjcmlwdFZhbHVlOjpTa2lwSW5FbnVtZXJhdGlv
biB8IFFTY3JpcHRWYWx1ZTo6UmVhZE9ubHkgfCBRU2NyaXB0VmFsdWU6OlVuZGVsZXRhYmxlKTsK
K30KIAotICAgIFFTY3JpcHRWYWx1ZSBzaW1wbGVPYmplY3QoZW5nLmV2YWx1YXRlKCJuZXcgT2Jq
ZWN0KHsgdGVzdDogMSwgb3RoZXI6IDIgfSkiKSk7Ci0gICAgUUNPTVBBUkUoc2ltcGxlT2JqZWN0
LnByb3BlcnR5KCJ0ZXN0IikudG9VSW50MzIoKSwgcXVpbnQzMigxKSk7Ci0gICAgUUNPTVBBUkUo
c2ltcGxlT2JqZWN0LnByb3BlcnR5KCJvdGhlciIpLnRvVUludDMyKCksIHF1aW50MzIoMikpOwor
dm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpzZXRQcm9wZXJ0eSgpCit7CisgICAgUUZFVENIKFFTY3Jp
cHRWYWx1ZSwgcHJvcGVydHkpOworICAgIFFGRVRDSChpbnQsIGZsYWcpOworICAgIFFTY3JpcHRW
YWx1ZTo6UHJvcGVydHlGbGFncyBmbGFncyA9IHN0YXRpY19jYXN0PFFTY3JpcHRWYWx1ZTo6UHJv
cGVydHlGbGFnPihmbGFnKTsKIAotICAgIFFTY3JpcHRWYWx1ZSBzaW1wbGVBcnJheShlbmcuZXZh
bHVhdGUoIm5ldyBBcnJheSg3LCA4LCA5KSIpKTsKLSAgICBRQ09NUEFSRShzaW1wbGVBcnJheS5w
cm9wZXJ0eSgibGVuZ3RoIikudG9VSW50MzIoKSwgcXVpbnQzMigzKSk7Ci0gICAgUUNPTVBBUkUo
c2ltcGxlQXJyYXkucHJvcGVydHkoMikudG9VSW50MzIoKSwgcXVpbnQzMig5KSk7CisgICAgUVNj
cmlwdEVuZ2luZSBlbmdpbmU7CisgICAgUVNjcmlwdFZhbHVlIG9iamVjdCA9IGVuZ2luZS5ldmFs
dWF0ZSgibyA9IG5ldyBPYmplY3Q7IG8iKTsKKyAgICBRU2NyaXB0VmFsdWUgcHJvdG8gPSBlbmdp
bmUuZXZhbHVhdGUoInAgPSBuZXcgT2JqZWN0OyBvLl9fcHJvdG9fXyA9IHA7IHAiKTsKKyAgICBl
bmdpbmUuZXZhbHVhdGUoIm8uZGVmaW5lZDEgPSAxIik7CisgICAgZW5naW5lLmV2YWx1YXRlKCJv
LmRlZmluZWQyID0gMSIpOworICAgIGVuZ2luZS5ldmFsdWF0ZSgib1s1XSA9IDEiKTsKKyAgICBl
bmdpbmUuZXZhbHVhdGUoInAub3ZlcmxvYWRlZDEgPSAxIik7CisgICAgZW5naW5lLmV2YWx1YXRl
KCJvLm92ZXJsb2FkZWQxID0gMiIpOworICAgIGVuZ2luZS5ldmFsdWF0ZSgicFs2XSA9IDEiKTsK
KyAgICBlbmdpbmUuZXZhbHVhdGUoIm9bNl0gPSAyIik7CisgICAgZW5naW5lLmV2YWx1YXRlKCJw
Lm92ZXJsb2FkZWQyID0gMSIpOworICAgIGVuZ2luZS5ldmFsdWF0ZSgiby5vdmVybG9hZGVkMiA9
IDIiKTsKKyAgICBlbmdpbmUuZXZhbHVhdGUoInAub3ZlcmxvYWRlZDMgPSAxIik7CisgICAgZW5n
aW5lLmV2YWx1YXRlKCJvLm92ZXJsb2FkZWQzID0gMiIpOworICAgIGVuZ2luZS5ldmFsdWF0ZSgi
cFs3XSA9IDEiKTsKKyAgICBlbmdpbmUuZXZhbHVhdGUoIm9bN10gPSAyIik7CisgICAgZW5naW5l
LmV2YWx1YXRlKCJwLm92ZXJsb2FkZWQ0ID0gMSIpOworICAgIGVuZ2luZS5ldmFsdWF0ZSgiby5v
dmVybG9hZGVkNCA9IDIiKTsKKworICAgIC8vIHRyaWVzIHRvIHNldCB1bmRlZmluZWQgcHJvcGVy
dHkgZGlyZWN0bHkgb24gb2JqZWN0LgorICAgIG9iamVjdC5zZXRQcm9wZXJ0eShRU3RyaW5nOjpm
cm9tQXNjaWkoInVuZGVmaW5lZDEiKSwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVSSUZZKGVu
Z2luZS5ldmFsdWF0ZSgiby51bmRlZmluZWQxIikuc3RyaWN0bHlFcXVhbHMocHJvcGVydHkpKTsK
KyAgICBvYmplY3Quc2V0UHJvcGVydHkoZW5naW5lLnRvU3RyaW5nSGFuZGxlKCJ1bmRlZmluZWQy
IiksIHByb3BlcnR5LCBmbGFncyk7CisgICAgUVZFUklGWShvYmplY3QucHJvcGVydHkoInVuZGVm
aW5lZDIiKS5zdHJpY3RseUVxdWFscyhwcm9wZXJ0eSkpOworICAgIG9iamVjdC5zZXRQcm9wZXJ0
eSg0LCBwcm9wZXJ0eSwgZmxhZ3MpOworICAgIFFWRVJJRlkob2JqZWN0LnByb3BlcnR5KDQpLnN0
cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7CisKKyAgICAvLyB0cmllcyB0byBzZXQgZGVmaW5lZCBw
cm9wZXJ0eSBkaXJlY3RseSBvbiBvYmplY3QKKyAgICBvYmplY3Quc2V0UHJvcGVydHkoImRlZmlu
ZWQxIiwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgiby5k
ZWZpbmVkMSIpLnN0cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7CisgICAgb2JqZWN0LnNldFByb3Bl
cnR5KGVuZ2luZS50b1N0cmluZ0hhbmRsZSgiZGVmaW5lZDIiKSwgcHJvcGVydHksIGZsYWdzKTsK
KyAgICBRVkVSSUZZKG9iamVjdC5wcm9wZXJ0eSgiZGVmaW5lZDIiKS5zdHJpY3RseUVxdWFscyhw
cm9wZXJ0eSkpOworICAgIG9iamVjdC5zZXRQcm9wZXJ0eSg1LCBwcm9wZXJ0eSwgZmxhZ3MpOwor
ICAgIFFWRVJJRlkob2JqZWN0LnByb3BlcnR5KDUpLnN0cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7
CisKKyAgICAvLyB0cmllcyB0byBzZXQgb3ZlcmxvYWRlZCBwcm9wZXJ0eSBkaXJlY3RseSBvbiBv
YmplY3QKKyAgICBvYmplY3Quc2V0UHJvcGVydHkoIm92ZXJsb2FkZWQxIiwgcHJvcGVydHksIGZs
YWdzKTsKKyAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgiby5vdmVybG9hZGVkMSIpLnN0cmlj
dGx5RXF1YWxzKHByb3BlcnR5KSk7CisgICAgb2JqZWN0LnNldFByb3BlcnR5KGVuZ2luZS50b1N0
cmluZ0hhbmRsZSgib3ZlcmxvYWRlZDIiKSwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVSSUZZ
KG9iamVjdC5wcm9wZXJ0eSgib3ZlcmxvYWRlZDIiKS5zdHJpY3RseUVxdWFscyhwcm9wZXJ0eSkp
OworICAgIG9iamVjdC5zZXRQcm9wZXJ0eSg2LCBwcm9wZXJ0eSwgZmxhZ3MpOworICAgIFFWRVJJ
Rlkob2JqZWN0LnByb3BlcnR5KDYpLnN0cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7CisKKyAgICAv
LyB0cmllcyB0byBzZXQgb3ZlcmxvYWRlZCBwcm9wZXJ0eSBkaXJlY3RseSBvbiBwcm90b3R5cGUK
KyAgICBwcm90by5zZXRQcm9wZXJ0eSgib3ZlcmxvYWRlZDMiLCBwcm9wZXJ0eSwgZmxhZ3MpOwor
ICAgIFFWRVJJRlkoIWVuZ2luZS5ldmFsdWF0ZSgiby5vdmVybG9hZGVkMyIpLnN0cmljdGx5RXF1
YWxzKHByb3BlcnR5KSk7CisgICAgcHJvdG8uc2V0UHJvcGVydHkoZW5naW5lLnRvU3RyaW5nSGFu
ZGxlKCJvdmVybG9hZGVkNCIpLCBwcm9wZXJ0eSwgZmxhZ3MpOworICAgIFFWRVJJRlkoIW9iamVj
dC5wcm9wZXJ0eSgib3ZlcmxvYWRlZDQiKS5zdHJpY3RseUVxdWFscyhwcm9wZXJ0eSkpOworICAg
IHByb3RvLnNldFByb3BlcnR5KDcsIHByb3BlcnR5LCBmbGFncyk7CisgICAgUVZFUklGWSghb2Jq
ZWN0LnByb3BlcnR5KDcpLnN0cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7CisKKyAgICAvLyB0cmll
cyB0byBzZXQgdW5kZWZpbmVkIHByb3BlcnR5IGRpcmVjdGx5IG9uIHByb3RvdHlwZQorICAgIHBy
b3RvLnNldFByb3BlcnR5KCJ1bmRlZmluZWQzIiwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVS
SUZZKGVuZ2luZS5ldmFsdWF0ZSgiby51bmRlZmluZWQzIikuc3RyaWN0bHlFcXVhbHMocHJvcGVy
dHkpKTsKKyAgICBwcm90by5zZXRQcm9wZXJ0eShlbmdpbmUudG9TdHJpbmdIYW5kbGUoInVuZGVm
aW5lZDQiKSwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVSSUZZKG9iamVjdC5wcm9wZXJ0eSgi
dW5kZWZpbmVkNCIpLnN0cmljdGx5RXF1YWxzKHByb3BlcnR5KSk7CisgICAgcHJvdG8uc2V0UHJv
cGVydHkoOCwgcHJvcGVydHksIGZsYWdzKTsKKyAgICBRVkVSSUZZKG9iamVjdC5wcm9wZXJ0eSg4
KS5zdHJpY3RseUVxdWFscyhwcm9wZXJ0eSkpOworCisgICAgYm9vbCByZWFkT25seSA9IGZsYWdz
ICYgUVNjcmlwdFZhbHVlOjpSZWFkT25seTsKKyAgICBib29sIHNraXBJbkVudW1lcmF0aW9uID0g
ZmxhZ3MgJiBRU2NyaXB0VmFsdWU6OlNraXBJbkVudW1lcmF0aW9uOworICAgIGJvb2wgdW5kZWxl
dGFibGUgPSBmbGFncyAmIFFTY3JpcHRWYWx1ZTo6VW5kZWxldGFibGU7CisKKyAgICBRVkVSSUZZ
KHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobywgJzQnKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImlu
dCArIHJlYWRPbmx5IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0
eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVY
UEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYx
MyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxh
Z3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRp
b258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5
IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQ
RUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwg
IldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3
cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWShyZWFkT25seSA9
PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICc1
Jykud3JpdGFibGUiKS50b0Jvb2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25s
eSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBv
dmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgi
aW50ICsgcmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09i
amVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRp
bnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5
IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92
ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJp
bnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVn
OiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVy
dHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFWRVJJRlkocmVhZE9ubHkgPT0gZW5naW5lLmV2
YWx1YXRlKCIhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnNicpLndyaXRhYmxl
IikudG9Cb29sKCkpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVhZE9ubHkiLCAiV2ViS2l0
IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHBy
b3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHJlYWRP
bmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9w
ZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAg
UUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seSIsICJXZWJLaXQg
YnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJv
cGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcElu
RW51bWVyYXRpb258cmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRo
ZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIs
IENvbnRpbnVlKTsKKyAgICBRVkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwgJzcnKS53cml0YWJsZSIpLnRvQm9vbCgp
KTsKKyAgICBRVkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IocCwgJzgnKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBR
VkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IobywgJ3VuZGVmaW5lZDEnKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBR
VkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IobywgJ3VuZGVmaW5lZDInKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBR
VkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IocCwgJ3VuZGVmaW5lZDMnKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBR
VkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IocCwgJ3VuZGVmaW5lZDQnKS53cml0YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBR
RVhQRUNUX0ZBSUwoImludCArIHJlYWRPbmx5IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNP
YmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250
aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJsZSIsICJX
ZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3Jp
dGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsg
c2tpcEluRW51bWVyYXRpb258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09i
amVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRp
bnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5
fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0
eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZF
UklGWShyZWFkT25seSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKG8sICdkZWZpbmVkMScpLndyaXRhYmxlIikudG9Cb29sKCkpOworICAgIFFFWFBF
Q1RfRkFJTCgiaW50ICsgcmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVj
dFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVl
KTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktp
dCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBw
cm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lw
SW5FbnVtZXJhdGlvbnxyZWFkT25seSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0
U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUp
OworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258cmVhZE9ubHl8dW5k
ZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRv
ZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRVkVSSUZZ
KHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IobywgJ2RlZmluZWQyJykud3JpdGFibGUiKS50b0Jvb2woKSk7CisgICAgUVZFUklGWShl
bmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsICd1bmRl
ZmluZWQxJykud3JpdGFibGUiKS50b0Jvb2woKSk7CisgICAgUVZFUklGWShlbmdpbmUuZXZhbHVh
dGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsICd1bmRlZmluZWQxJykud3Jp
dGFibGUiKS50b0Jvb2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seSIsICJX
ZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3Jp
dGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsg
cmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNl
dFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsK
KyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5IiwgIldl
YktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0
ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBz
a2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYx
MyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxh
Z3MpIiwgQ29udGludWUpOworICAgIFFWRVJJRlkocmVhZE9ubHkgPT0gZW5naW5lLmV2YWx1YXRl
KCIhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCAnb3ZlcmxvYWRlZDMnKS53cml0
YWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHJlYWRPbmx5IiwgIldl
YktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0
ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBy
ZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0
UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOwor
ICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258cmVhZE9ubHkiLCAiV2Vi
S2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRl
IHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNr
aXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEz
IChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFn
cykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWShyZWFkT25seSA9PSBlbmdpbmUuZXZhbHVhdGUo
IiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsICdvdmVybG9hZGVkNCcpLndyaXRh
YmxlIikudG9Cb29sKCkpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVhZE9ubHkiLCAiV2Vi
S2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRl
IHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHJl
YWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQ
cm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7Cisg
ICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seSIsICJXZWJL
aXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUg
cHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tp
cEluRW51bWVyYXRpb258cmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMg
KFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdz
KSIsIENvbnRpbnVlKTsKKyAgICBRVkVSSUZZKHJlYWRPbmx5ID09IGVuZ2luZS5ldmFsdWF0ZSgi
IU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ292ZXJsb2FkZWQxJykud3JpdGFi
bGUiKS50b0Jvb2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seSIsICJXZWJL
aXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUg
cHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVh
ZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFBy
b3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAg
ICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5IiwgIldlYktp
dCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBw
cm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lw
SW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAo
VGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3Mp
IiwgQ29udGludWUpOworICAgIFFWRVJJRlkocmVhZE9ubHkgPT0gZW5naW5lLmV2YWx1YXRlKCIh
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnb3ZlcmxvYWRlZDInKS53cml0YWJs
ZSIpLnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZKCFlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdvdmVybG9hZGVkMycpLndyaXRhYmxlIikudG9Cb29s
KCkpOworICAgIFFWRVJJRlkoIWVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IobywgJ292ZXJsb2FkZWQ0Jykud3JpdGFibGUiKS50b0Jvb2woKSk7CisKKyAg
ICBRVkVSSUZZKHVuZGVsZXRhYmxlID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IobywgJzQnKS5jb25maWd1cmFibGUiKS50b0Jvb2woKSk7CisgICAg
UUVYUEVDVF9GQUlMKCJpbnQgKyB1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhl
IEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwg
Q29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVhZE9ubHl8dW5kZWxldGFibGUi
LCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3Zl
cndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImlu
dCArIHNraXBJbkVudW1lcmF0aW9ufHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChU
aGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncyki
LCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxy
ZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0
UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOwor
ICAgIFFWRVJJRlkodW5kZWxldGFibGUgPT0gZW5naW5lLmV2YWx1YXRlKCIhT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihvLCAnNScpLmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsKKyAg
ICBRRVhQRUNUX0ZBSUwoImludCArIHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChU
aGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncyki
LCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJs
ZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBv
dmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgi
aW50ICsgc2tpcEluRW51bWVyYXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMg
KFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdz
KSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9u
fHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RT
ZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7
CisgICAgUVZFUklGWSh1bmRlbGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICc2JykuY29uZmlndXJhYmxlIikudG9Cb29sKCkpOwor
ICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgdW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMg
KFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdz
KSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHJlYWRPbmx5fHVuZGVsZXRh
YmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0
IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlM
KCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYx
MyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxh
Z3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRp
b258cmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVj
dFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVl
KTsKKyAgICBRVkVSSUZZKHVuZGVsZXRhYmxlID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwgJzcnKS5jb25maWd1cmFibGUiKS50b0Jvb2woKSk7
CisgICAgUVZFUklGWSh1bmRlbGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsICc4JykuY29uZmlndXJhYmxlIikudG9Cb29sKCkpOwor
ICAgIFFWRVJJRlkodW5kZWxldGFibGUgPT0gZW5naW5lLmV2YWx1YXRlKCIhT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihvLCAndW5kZWZpbmVkMScpLmNvbmZpZ3VyYWJsZSIpLnRvQm9v
bCgpKTsKKyAgICBRVkVSSUZZKHVuZGVsZXRhYmxlID09IGVuZ2luZS5ldmFsdWF0ZSgiIU9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ3VuZGVmaW5lZDInKS5jb25maWd1cmFibGUi
KS50b0Jvb2woKSk7CisgICAgUVZFUklGWSh1bmRlbGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUo
IiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsICd1bmRlZmluZWQzJykuY29uZmln
dXJhYmxlIikudG9Cb29sKCkpOworICAgIFFWRVJJRlkodW5kZWxldGFibGUgPT0gZW5naW5lLmV2
YWx1YXRlKCIhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCAndW5kZWZpbmVkNCcp
LmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHVuZGVs
ZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vz
bid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9G
QUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhl
IEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwg
Q29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258dW5k
ZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRv
ZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNU
X0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldl
YktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0
ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWSh1bmRlbGV0YWJsZSA9
PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdk
ZWZpbmVkMScpLmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImlu
dCArIHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9w
ZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAg
UUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0
MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkg
ZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVy
YXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFBy
b3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAg
ICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRh
YmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0
IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWSh1bmRl
bGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKG8sICdkZWZpbmVkMicpLmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNU
X0ZBSUwoImludCArIHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmpl
Y3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51
ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJL
aXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUg
cHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tp
cEluRW51bWVyYXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09i
amVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRp
bnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5
fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0
eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZF
UklGWSh1bmRlbGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKG8sICdvdmVybG9hZGVkMScpLmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsK
KyAgICBRRVhQRUNUX0ZBSUwoImludCArIHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEz
IChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFn
cykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyByZWFkT25seXx1bmRlbGV0
YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24n
dCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJ
TCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2
MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZs
YWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0
aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmpl
Y3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51
ZSk7CisgICAgUVZFUklGWSh1bmRlbGV0YWJsZSA9PSBlbmdpbmUuZXZhbHVhdGUoIiFPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICdvdmVybG9hZGVkMicpLmNvbmZpZ3VyYWJsZSIp
LnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgiT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihwLCAnb3ZlcmxvYWRlZDEnKS5jb25maWd1cmFibGUiKS50b0Jvb2wo
KSk7CisgICAgUVZFUklGWShlbmdpbmUuZXZhbHVhdGUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IocCwgJ292ZXJsb2FkZWQyJykuY29uZmlndXJhYmxlIikudG9Cb29sKCkpOworICAg
IFFWRVJJRlkoZW5naW5lLmV2YWx1YXRlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KG8sICdvdmVybG9hZGVkMycpLmNvbmZpZ3VyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZ
KGVuZ2luZS5ldmFsdWF0ZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnb3Zl
cmxvYWRlZDQnKS5jb25maWd1cmFibGUiKS50b0Jvb2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJp
bnQgKyB1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJv
cGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAg
IFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1Zzog
NDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5
IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1l
cmF0aW9ufHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQ
cm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7Cisg
ICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0
YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24n
dCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFWRVJJRlkodW5k
ZWxldGFibGUgPT0gZW5naW5lLmV2YWx1YXRlKCIhT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihwLCAnb3ZlcmxvYWRlZDMnKS5jb25maWd1cmFibGUiKS50b0Jvb2woKSk7CisgICAgUUVY
UEVDVF9GQUlMKCJpbnQgKyB1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpT
T2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29u
dGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgcmVhZE9ubHl8dW5kZWxldGFibGUiLCAi
V2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3Zlcndy
aXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCAr
IHNraXBJbkVudW1lcmF0aW9ufHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUg
SlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBD
b250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFk
T25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJv
cGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAg
IFFWRVJJRlkodW5kZWxldGFibGUgPT0gZW5naW5lLmV2YWx1YXRlKCIhT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihwLCAnb3ZlcmxvYWRlZDQnKS5jb25maWd1cmFibGUiKS50b0Jvb2wo
KSk7CisKKyAgICBRVkVSSUZZKHNraXBJbkVudW1lcmF0aW9uICE9IGVuZ2luZS5ldmFsdWF0ZSgi
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAnNCcpLmVudW1lcmFibGUiKS50b0Jv
b2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbiIsICJXZWJL
aXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUg
cHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tp
cEluRW51bWVyYXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09i
amVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRp
bnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5
IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92
ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJp
bnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVn
OiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVy
dHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFWRVJJRlkoc2tpcEluRW51bWVyYXRpb24gIT0g
ZW5naW5lLmV2YWx1YXRlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICc1Jyku
ZW51bWVyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVu
dW1lcmF0aW9uIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBk
b2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVD
VF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVn
OiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVy
dHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51
bWVyYXRpb258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFBy
b3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAg
ICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRh
YmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0
IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWShza2lw
SW5FbnVtZXJhdGlvbiAhPSBlbmdpbmUuZXZhbHVhdGUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IobywgJzYnKS5lbnVtZXJhYmxlIikudG9Cb29sKCkpOworICAgIFFFWFBFQ1RfRkFJ
TCgiaW50ICsgc2tpcEluRW51bWVyYXRpb24iLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09i
amVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRp
bnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHVuZGVsZXRh
YmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0
IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlM
KCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seSIsICJXZWJLaXQgYnVnOiA0MDYxMyAo
VGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3Mp
IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258
cmVhZE9ubHl8dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNl
dFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsK
KyAgICBRVkVSSUZZKHNraXBJbkVudW1lcmF0aW9uICE9IGVuZ2luZS5ldmFsdWF0ZSgiT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCAnNycpLmVudW1lcmFibGUiKS50b0Jvb2woKSk7
CisgICAgUVZFUklGWShza2lwSW5FbnVtZXJhdGlvbiAhPSBlbmdpbmUuZXZhbHVhdGUoIk9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwgJzgnKS5lbnVtZXJhYmxlIikudG9Cb29sKCkp
OworICAgIFFWRVJJRlkoc2tpcEluRW51bWVyYXRpb24gIT0gZW5naW5lLmV2YWx1YXRlKCJPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sICd1bmRlZmluZWQxJykuZW51bWVyYWJsZSIp
LnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZKHNraXBJbkVudW1lcmF0aW9uICE9IGVuZ2luZS5ldmFs
dWF0ZSgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCAndW5kZWZpbmVkMicpLmVu
dW1lcmFibGUiKS50b0Jvb2woKSk7CisgICAgUVZFUklGWShza2lwSW5FbnVtZXJhdGlvbiAhPSBl
bmdpbmUuZXZhbHVhdGUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwgJ3VuZGVm
aW5lZDMnKS5lbnVtZXJhYmxlIikudG9Cb29sKCkpOworICAgIFFWRVJJRlkoc2tpcEluRW51bWVy
YXRpb24gIT0gZW5naW5lLmV2YWx1YXRlKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHAsICd1bmRlZmluZWQ0JykuZW51bWVyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZB
SUwoImludCArIHNraXBJbkVudW1lcmF0aW9uIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNP
YmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250
aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0
YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24n
dCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJ
TCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMg
KFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdz
KSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9u
fHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RT
ZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7
CisgICAgUVZFUklGWShza2lwSW5FbnVtZXJhdGlvbiAhPSBlbmdpbmUuZXZhbHVhdGUoIk9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgJ292ZXJsb2FkZWQxJykuZW51bWVyYWJsZSIp
LnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9uIiwg
IldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3
cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQg
KyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhl
IEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwg
Q29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258cmVh
ZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNu
J3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZB
SUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxlIiwgIldlYktp
dCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBw
cm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWShza2lwSW5FbnVtZXJhdGlv
biAhPSBlbmdpbmUuZXZhbHVhdGUoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywg
J292ZXJsb2FkZWQyJykuZW51bWVyYWJsZSIpLnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZKGVuZ2lu
ZS5ldmFsdWF0ZSgicC5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnb3ZlcmxvYWRlZDEnKSIpLnRvQm9v
bCgpKTsKKyAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgicC5wcm9wZXJ0eUlzRW51bWVyYWJs
ZSgnb3ZlcmxvYWRlZDInKSIpLnRvQm9vbCgpKTsKKyAgICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0
ZSgiby5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnb3ZlcmxvYWRlZDMnKSIpLnRvQm9vbCgpKTsKKyAg
ICBRVkVSSUZZKGVuZ2luZS5ldmFsdWF0ZSgiby5wcm9wZXJ0eUlzRW51bWVyYWJsZSgnb3Zlcmxv
YWRlZDQnKSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1l
cmF0aW9uIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vz
bid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9G
QUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0YWJsZSIsICJXZWJLaXQgYnVnOiA0
MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkg
ZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVy
YXRpb258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3Bl
cnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBR
RVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVuZGVsZXRhYmxl
IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92
ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklGWShza2lwSW5F
bnVtZXJhdGlvbiAhPSBlbmdpbmUuZXZhbHVhdGUoInAucHJvcGVydHlJc0VudW1lcmFibGUoJ292
ZXJsb2FkZWQzJykiKS50b0Jvb2woKSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5F
bnVtZXJhdGlvbiIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkg
ZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBF
Q1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258dW5kZWxldGFibGUiLCAiV2ViS2l0IGJ1
ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3Bl
cnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVu
dW1lcmF0aW9ufHJlYWRPbmx5IiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQ
cm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7Cisg
ICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnxyZWFkT25seXx1bmRlbGV0
YWJsZSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24n
dCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFWRVJJRlkoc2tp
cEluRW51bWVyYXRpb24gIT0gZW5naW5lLmV2YWx1YXRlKCJwLnByb3BlcnR5SXNFbnVtZXJhYmxl
KCdvdmVybG9hZGVkNCcpIikudG9Cb29sKCkpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tp
cEluRW51bWVyYXRpb24iLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3Bl
cnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBR
RVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHVuZGVsZXRhYmxlIiwgIldlYktp
dCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBw
cm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJpbnQgKyBza2lw
SW5FbnVtZXJhdGlvbnxyZWFkT25seSIsICJXZWJLaXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0
U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUgcHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUp
OworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tpcEluRW51bWVyYXRpb258cmVhZE9ubHl8dW5k
ZWxldGFibGUiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVjdFNldFByb3BlcnR5IGRv
ZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVlKTsKKyAgICBRVkVSSUZZ
KHNraXBJbkVudW1lcmF0aW9uICE9IGVuZ2luZS5ldmFsdWF0ZSgiby5wcm9wZXJ0eUlzRW51bWVy
YWJsZSgnZGVmaW5lZDEnKSIpLnRvQm9vbCgpKTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNr
aXBJbkVudW1lcmF0aW9uIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9w
ZXJ0eSBkb2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAg
UUVYUEVDVF9GQUlMKCJpbnQgKyBza2lwSW5FbnVtZXJhdGlvbnx1bmRlbGV0YWJsZSIsICJXZWJL
aXQgYnVnOiA0MDYxMyAoVGhlIEpTT2JqZWN0U2V0UHJvcGVydHkgZG9lc24ndCBvdmVyd3JpdGUg
cHJvcGVydHkgZmxhZ3MpIiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiaW50ICsgc2tp
cEluRW51bWVyYXRpb258cmVhZE9ubHkiLCAiV2ViS2l0IGJ1ZzogNDA2MTMgKFRoZSBKU09iamVj
dFNldFByb3BlcnR5IGRvZXNuJ3Qgb3ZlcndyaXRlIHByb3BlcnR5IGZsYWdzKSIsIENvbnRpbnVl
KTsKKyAgICBRRVhQRUNUX0ZBSUwoImludCArIHNraXBJbkVudW1lcmF0aW9ufHJlYWRPbmx5fHVu
ZGVsZXRhYmxlIiwgIldlYktpdCBidWc6IDQwNjEzIChUaGUgSlNPYmplY3RTZXRQcm9wZXJ0eSBk
b2Vzbid0IG92ZXJ3cml0ZSBwcm9wZXJ0eSBmbGFncykiLCBDb250aW51ZSk7CisgICAgUVZFUklG
WShza2lwSW5FbnVtZXJhdGlvbiAhPSBlbmdpbmUuZXZhbHVhdGUoIm8ucHJvcGVydHlJc0VudW1l
cmFibGUoJ2RlZmluZWQyJykiKS50b0Jvb2woKSk7CiB9CiAKIFFURVNUX01BSU4odHN0X1FTY3Jp
cHRWYWx1ZSkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1
ZS90c3RfcXNjcmlwdHZhbHVlLmggYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5oCmluZGV4IGFmNjAwYTYuLjE2MzZhMzQgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgK
KysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFs
dWUuaApAQCAtNTEsNyArNTEsMTMgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNhbGwoKTsK
ICAgICB2b2lkIGN0b3IoKTsKICAgICB2b2lkIHRvT2JqZWN0U2ltcGxlKCk7Ci0gICAgdm9pZCBw
cm9wZXJ0eVNpbXBsZSgpOworICAgIHZvaWQgZ2V0UHJvcGVydHlTaW1wbGVfZGF0YSgpOworICAg
IHZvaWQgZ2V0UHJvcGVydHlTaW1wbGUoKTsKKyAgICB2b2lkIHNldFByb3BlcnR5U2ltcGxlKCk7
CisgICAgdm9pZCBzZXRQcm9wZXJ0eV9kYXRhKCk7CisgICAgdm9pZCBzZXRQcm9wZXJ0eSgpOwor
ICAgIHZvaWQgZ2V0U2V0UHJvcGVydHkoKTsKKyAgICB2b2lkIGdldFByb3BlcnR5UmVzb2x2ZUZs
YWcoKTsKIAogICAgIC8vIEdlbmVyYXRlZCB0ZXN0IGZ1bmN0aW9ucy4KICAgICB2b2lkIGlzQm9v
bF9kYXRhKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>