<?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>112724</bug_id>
          
          <creation_ts>2013-03-19 11:35:56 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] Add parsing for grid-auto-{row|column}</short_desc>
          <delta_ts>2013-03-19 16:14:55 -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>Layout and Rendering</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103333</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>858527</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-19 11:35:56 -0700</bug_when>
    <thetext>As a first step to handle default grid items&apos; sizing, we need to parse the new properties. Per the specification:

grid-auto-row := &lt;track-size&gt; (it still uses the old name &lt;track-minmax&gt; in the spec but it&apos;s because it was forgotten in the renamings)

This change requires us to tweak our implementation so that we can share code with grid-{rows|columns}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858651</commentid>
    <comment_count>1</comment_count>
      <attachid>193903</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-19 13:02:33 -0700</bug_when>
    <thetext>Created attachment 193903
Proposed implementation, including a tiny refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858689</commentid>
    <comment_count>2</comment_count>
      <attachid>193903</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-19 13:33:21 -0700</bug_when>
    <thetext>Comment on attachment 193903
Proposed implementation, including a tiny refactoring.

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858847</commentid>
    <comment_count>3</comment_count>
      <attachid>193903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 16:14:51 -0700</bug_when>
    <thetext>Comment on attachment 193903
Proposed implementation, including a tiny refactoring.

Clearing flags on attachment: 193903

Committed r146274: &lt;http://trac.webkit.org/changeset/146274&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858848</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 16:14:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193903</attachid>
            <date>2013-03-19 13:02:33 -0700</date>
            <delta_ts>2013-03-19 16:14:51 -0700</delta_ts>
            <desc>Proposed implementation, including a tiny refactoring.</desc>
            <filename>bug-112724-20130319125824.patch</filename>
            <type>text/plain</type>
            <size>29959</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ0NzgwYTQyOTkxMWUw
ODhiZjk0Y2ExNzlmNWI1OTZlZDZhY2JhNy4uYTQ0NmI3ZDE3OGUyNDM1OTMwNzJmOTVjYjkxOGNi
MGVhZmZkMjgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAzLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFkZCBwYXJzaW5nIGZvciBncmlkLWF1dG8te3Jvd3xjb2x1bW59CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI3MjQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBh
IGZpcnN0IHN0ZXAgdG93YXJkcyBoYW5kbGluZyBncmlkLWF1dG8te3Jvd3xjb2x1bW59LgorICAg
ICAgICBGb3Igbm93LCBvbmx5IHRoZSBwYXJzaW5nLCBzdG9yaW5nIGFuZCBnZXRDb21wdXRlZFN0
eWxlIGJpdHMgYXJlIGltcGxlbWVudGVkLgorICAgICAgICBJbiBvcmRlciB0byBkbyBzbyB3aXRo
b3V0IGR1cGxpY2F0aW5nIGNvZGUsIHRoZSBmdW5jdGlvbnMgaGFuZGxpbmcgPHRyYWNrLXNpemU+
CisgICAgICAgIChuYW1lZCA8dHJhY2stbWlubWF4PiBpbiB0aGUgY29kZSBiYXNlZCBvbiBhIHBy
ZXZpb3VzIHZlcnNpb24gb2YgdGhlIGdyYW1tYXIpCisgICAgICAgIGhhdmUgYmVlbiB0d2Vha2Vk
IHRvIGJlIGNhbGxlZCBpbiBhIHN0YW5kYWxvbmUgZmFzaGlvbi4gVGhlIGNvZGUgd2FzIGFsc28K
KyAgICAgICAgdXBkYXRlZCB0byBtYXRjaCB0aGUgZ3JhbW1hciBtb3JlIGNsb3NlbHk6CisgICAg
ICAgIC0gPHRyYWNrLW1pbm1heD4gaXMgbm93IDx0cmFjay1zaXplPi4KKyAgICAgICAgLSA8dHJh
Y2stZ3JvdXA+IHdhcyByZW5tb3ZlZCwgZm9sZGVkIGludG8gPHRyYWNrLWxpc3Q+LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1jb2x1bW5zLXJvd3MtZ2V0
LXNldC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrU2l6ZSk6CisgICAgICAgIFJl
bmFtZWQgZnJvbSB2YWx1ZUZvckdyaWRUcmFja01pbk1heC4KKworICAgICAgICAoV2ViQ29yZTo6
dmFsdWVGb3JHcmlkVHJhY2tMaXN0KToKKyAgICAgICAgRm9sZGVkIHZhbHVlRm9yR3JpZFRyYWNr
R3JvdXAgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIEFkZGVk
IHRoZSBwYXJzaW5nIGZvciBncmlkLWF1dG8te3Jvd3N8Y29sdW1uc30uCisKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKToKKyAgICAgICAgUmVuYW1lZCBm
cm9tIHBhcnNlR3JpZFRyYWNrTWluTWF4LiBDaGFuZ2VkIHRvIHJldHVybiB0aGUgcGFyc2VkIHZh
bHVlIChvciAwIGluIGNhc2Ugb2YKKyAgICAgICAgZXJyb3IpLiBUaGlzIGVuYWJsZXMgdXMgdG8g
cmV1c2UgaXQgaW4gcGFyc2VWYWx1ZS4gTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gbm93IG1vdmVz
CisgICAgICAgIHRoZSBwYXJzZXIgdmFsdWUgbGlzdCBpbnN0ZWFkIG9mIHRoZSBjYWxsZXIuCisK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0KToKKyAgICAg
ICAgVXBkYXRlZCBhZnRlciBwYXJzZUdyaWRUcmFja1NpemUgY2hhbmdlcyBhbmQgcGFyc2VHcmlk
VHJhY2tHcm91cCByZW1vdmFsLgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOiBVcGRhdGVk
IHRoZSBuYW1lcy4KKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICBBZGRlZCB0aGUgMiBuZXcgbm9uLWluaGVyaXRl
ZCBwcm9wZXJ0aWVzLgorCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlR3JpZFRyYWNrU2l6ZSk6CisgICAgICAgIFJlbmFtZWQgZnJvbSBj
cmVhdGVHcmlkVHJhY2tNaW5NYXguIEFsc28gc2ltcGxpZmllZCB0byBlbnN1cmUgY29kZSByZXVz
ZSAoYXBwbHlQcm9wZXJ0eSBoYW5kcworICAgICAgICBkb3duIGEgQ1NTVmFsdWUpIGFuZCBjb25z
aXN0ZW5jeSAodGhlIHN0YXRlIHdhc24ndCBjb25zaXN0ZW50bHkgdGhlIGxhc3QgYXJndW1lbnQp
LgorCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkVHJhY2tMaXN0KToKKyAgICAgICAgRm9s
ZGVkIGNyZWF0ZUdyaWRUcmFja0dyb3VwIGludG8gdGhpcyBmdW5jdGlvbi4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIEFkZGVkIHRo
ZSBjb2RlIGZvciB0aGUgbmV3IHByb3BlcnRpZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVHcmlkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIEFkZGVkIHRoZSBzdG9y
YWdlIGFuZCBib2lsZXItcGxhdGUgY29kZSBmb3IgdGhlIG5ldyBwcm9wZXJ0aWVzLgorCiAyMDEz
LTAzLTE5ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5k
ZXhlZERCOiBVc2UgaW50ZWdlciBwbHVtYmluZyBmb3IgZGVsZXRlRGF0YWJhc2Ugb25WZXJzaW9u
Q2hhbmdlIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IDg4MTM1ZDE3NTI2YjEzNWQyMjBjYmYxOTk2ZjY2ZGU4OGMx
MGRmZjQuLjU5YjkzMGRkZGM1MjMyN2M0Yjc3ZGJmYzI2NWZiZmYxZmUyMjRmNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBA
IC0yODYsNyArMjg2LDkgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9w
ZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlXZWJraXRGb250S2VybmluZywKICAgICBDU1NQ
cm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmcsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRGb250VmFy
aWFudExpZ2F0dXJlcywKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1ucywKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdywKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEdy
aWRBdXRvUm93cywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zLAogICAgIENTU1By
b3BlcnR5V2Via2l0R3JpZFJvd3MsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRHcmlkU3RhcnQsCkBA
IC0xMDM5LDcgKzEwNDEsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JH
cmlkVHJhY2tCcmVhZHRoKGNvbnN0IExlbmd0aCYgdHJhY2tCcmVhZHRoLAogICAgIHJldHVybiB6
b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHRyYWNrQnJlYWR0aCwgc3R5bGUpOwogfQog
Ci1zdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tNaW5NYXgoY29u
c3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIFJl
bmRlclZpZXcqIHJlbmRlclZpZXcpCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVG
b3JHcmlkVHJhY2tTaXplKGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KQogewogICAgIHN3aXRjaCAo
dHJhY2tTaXplLnR5cGUoKSkgewogICAgIGNhc2UgTGVuZ3RoVHJhY2tTaXppbmc6CkBAIC0xMDU0
LDIxICsxMDU2LDE2IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRU
cmFja01pbk1heChjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0dyb3VwKGNv
bnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXplcywgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlLCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KQotewotICAgIFJlZlB0cjxDU1NWYWx1ZUxp
c3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB0cmFja1NpemVzLnNpemUoKTsgKytpKQotICAgICAgICBsaXN0
LT5hcHBlbmQodmFsdWVGb3JHcmlkVHJhY2tNaW5NYXgodHJhY2tTaXplc1tpXSwgc3R5bGUsIHJl
bmRlclZpZXcpKTsKLSAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7Ci19Ci0KIHN0YXRpYyBQYXNz
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoY29uc3QgVmVjdG9yPEdyaWRU
cmFja1NpemU+JiB0cmFja1NpemVzLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclZp
ZXcgKnJlbmRlclZpZXcpCiB7CiAgICAgLy8gSGFuZGxlIHRoZSAnbm9uZScgY2FzZSBoZXJlLgog
ICAgIGlmICghdHJhY2tTaXplcy5zaXplKCkpCiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKIAotICAgIHJldHVybiB2YWx1
ZUZvckdyaWRUcmFja0dyb3VwKHRyYWNrU2l6ZXMsIHN0eWxlLCByZW5kZXJWaWV3KTsKKyAgICBS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFy
YXRlZCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHJhY2tTaXplcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgbGlzdC0+YXBwZW5kKHZhbHVlRm9yR3JpZFRyYWNrU2l6ZSh0cmFja1NpemVz
W2ldLCBzdHlsZSwgcmVuZGVyVmlldykpOworICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0K
IAogc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFBvc2l0aW9uKGNvbnN0
IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0xOTMyLDggKzE5MjksMTIgQEAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1Zh
bHVlKENTU1Byb3BlcnQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBsaXN0LnJl
bGVhc2UoKTsKICAgICAgICAgfQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1
dG9Db2x1bW5zOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrU2l6ZShzdHls
ZS0+Z3JpZEF1dG9Db2x1bW5zKCksIHN0eWxlLmdldCgpLCBtX25vZGUtPmRvY3VtZW50KCktPnJl
bmRlclZpZXcoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXV0b0Zsb3c6
CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmdy
aWRBdXRvRmxvdygpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvUm93
czoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFja1NpemUoc3R5bGUtPmdyaWRB
dXRvUm93cygpLCBzdHlsZS5nZXQoKSwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6CiAgICAgICAgICAg
ICByZXR1cm4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KHN0eWxlLT5ncmlkQ29sdW1ucygpLCBzdHls
ZS5nZXQoKSwgbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4
IDEwMjM1MzkwMzJmZDYxMTYxNDY2YjA5YjcxMTUyNTIxYmI4ZTBkODYuLjBhYWQyNTUwMDkzMDdh
YzI4NzkyYTFlMDM5NWY1ZDAzZjI1MDE3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBA
IC0yNjEwLDYgKzI2MTAsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1uczoKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9Sb3dzOgorICAgICAgICBpZiAoIWNzc0dyaWRMYXlv
dXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHBhcnNlZFZh
bHVlID0gcGFyc2VHcmlkVHJhY2tTaXplKCk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRH
cmlkUm93czoKICAgICAgICAgaWYgKCFjc3NHcmlkTGF5b3V0RW5hYmxlZCgpKQpAQCAtNDczNSw1
MiArNDc0Miw0NSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0KENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKIAogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+
IHZhbHVlcyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKICAgICB3aGls
ZSAobV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkgewotICAgICAgICBpZiAoIXBhcnNlR3JpZFRyYWNr
R3JvdXAodmFsdWVzLmdldCgpKSkKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBw
cmltaXRpdmVWYWx1ZSA9IHBhcnNlR3JpZFRyYWNrU2l6ZSgpOworICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIG1fdmFsdWVM
aXN0LT5uZXh0KCk7CisgICAgICAgIHZhbHVlcy0+YXBwZW5kKHByaW1pdGl2ZVZhbHVlLnJlbGVh
c2UoKSk7CiAgICAgfQogICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWVzLnJlbGVhc2UoKSwg
aW1wb3J0YW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNl
R3JpZFRyYWNrR3JvdXAoQ1NTVmFsdWVMaXN0KiB2YWx1ZXMpCi17Ci0gICAgcmV0dXJuIHBhcnNl
R3JpZFRyYWNrTWluTWF4KHZhbHVlcyk7Ci19Ci0KLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRU
cmFja01pbk1heChDU1NWYWx1ZUxpc3QqIHZhbHVlcykKK1Bhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKCkKIHsKICAgICBDU1NQYXJzZXJW
YWx1ZSogY3VycmVudFZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKLSAgICBpZiAoY3Vy
cmVudFZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8pIHsKLSAgICAgICAgdmFsdWVzLT5hcHBlbmQo
Y3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0bykpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKworICAg
IGlmIChjdXJyZW50VmFsdWUtPmlkID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogCiAgICAg
aWYgKGN1cnJlbnRWYWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24gJiYgZXF1
YWxJZ25vcmluZ0Nhc2UoY3VycmVudFZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgIm1pbm1heCgiKSkg
ewogICAgICAgICAvLyBUaGUgc3BlYyBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZ3JhbW1hcjogbWlu
bWF4KCA8dHJhY2stYnJlYWR0aD4gLCA8dHJhY2stYnJlYWR0aD4gKQogICAgICAgICBDU1NQYXJz
ZXJWYWx1ZUxpc3QqIGFyZ3VtZW50cyA9IGN1cnJlbnRWYWx1ZS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0
KCk7CiAgICAgICAgIGlmICghYXJndW1lbnRzIHx8IGFyZ3VtZW50cy0+c2l6ZSgpICE9IDMgfHwg
IWlzQ29tbWEoYXJndW1lbnRzLT52YWx1ZUF0KDEpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gbWluVHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aChhcmd1bWVudHMtPnZhbHVl
QXQoMCkpOwogICAgICAgICBpZiAoIW1pblRyYWNrQnJlYWR0aCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbWF4VHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aChhcmd1bWVudHMt
PnZhbHVlQXQoMikpOwogICAgICAgICBpZiAoIW1heFRyYWNrQnJlYWR0aCkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIHZhbHVlcy0+
YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZVZhbHVlUGFpcihtaW5UcmFja0JyZWFkdGgsIG1heFRyYWNr
QnJlYWR0aCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVBy
aW1pdGl2ZVZhbHVlUGFpcihtaW5UcmFja0JyZWFkdGgsIG1heFRyYWNrQnJlYWR0aCk7CiAgICAg
fQogCi0gICAgaWYgKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHRyYWNrQnJlYWR0aCA9
IHBhcnNlR3JpZEJyZWFkdGgoY3VycmVudFZhbHVlKSkgewotICAgICAgICB2YWx1ZXMtPmFwcGVu
ZCh0cmFja0JyZWFkdGgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgaWYgKFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHRyYWNrQnJlYWR0aCA9IHBhcnNlR3JpZEJyZWFk
dGgoY3VycmVudFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHRyYWNrQnJlYWR0aDsKIAotICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gMDsKIH0KIAogUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZhbHVlKiBjdXJyZW50
VmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggODQzMDM4MTBiOTliMDllNDlkMDkxMTE3
ODA2YmE5NzI1OWI5YTk4Zi4uYzM4ZTdmOTNmNjUzYTY4ZWIzZDRlNjgxYjhlZTY0N2FjMDdhZTVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTU4LDggKzE1OCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNzc0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBwYXJzZUdyaWRJ
dGVtUG9zaXRpb25TaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwogICAg
IGJvb2wgcGFyc2VHcmlkVHJhY2tMaXN0KENTU1Byb3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50KTsK
LSAgICBib29sIHBhcnNlR3JpZFRyYWNrR3JvdXAoQ1NTVmFsdWVMaXN0Kik7Ci0gICAgYm9vbCBw
YXJzZUdyaWRUcmFja01pbk1heChDU1NWYWx1ZUxpc3QqKTsKKyAgICBQYXNzUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBwYXJzZUdyaWRUcmFja1NpemUoKTsKICAgICBQYXNzUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZhbHVlKik7CiAKICAgICBi
b29sIHBhcnNlRGFzaGJvYXJkUmVnaW9ucyhDU1NQcm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRleCBjNzBhNmY0NTY4YWVmNzM2NzIyNmQ0
ZDE1MzkzODdlMmEzYjBiNDNlLi4yYmJiZDExYWUyOWVjMzNhZWI5M2Y1NGJlZDgwYzU1ZDFlYjQ3
NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU4Myw3ICs1ODMsOSBAQCBi
b29sIENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0SnVzdGlmeUNvbnRlbnQ6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE9yZGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250
U2l6ZURlbHRhOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXV0b0NvbHVtbnM6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdzoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZEF1dG9Sb3dzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29s
dW1uczoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEdyaWRTdGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KaW5kZXggMzRmMjdhMDkwYWU3MjdkNmE4ZTYwMTdhY2VmYjgzMDIxNTZiZGRhMC4uODVhYWNk
OWJiZjE2NTcyNWNhOGU3YWRmODNlYTMxYzIxOWU3YjAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KQEAgLTI5Miw2ICsyOTIsOCBAQCB6LWluZGV4CiAtd2Via2l0LWZs
ZXgtd3JhcAogLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQKIC13ZWJraXQtZm9udC1zaXplLWRlbHRh
Cistd2Via2l0LWdyaWQtYXV0by1jb2x1bW5zCistd2Via2l0LWdyaWQtYXV0by1yb3dzCiAtd2Vi
a2l0LWdyaWQtY29sdW1ucwogLXdlYmtpdC1ncmlkLXJvd3MKIC13ZWJraXQtZ3JpZC1zdGFydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDAyMDhjNmM5MWNiMjE0NjNmZDIz
MTkyOTVkMWFjYWMwZGMyYTRkZDYuLjRkZTM3NjI3NGZiYmU3OTkzMGNkM2I2NjAzYmZiZDUzNWI5
ZWRhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTIwOTIsOCArMjA5
MiwxMiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tCcmVhZHRoKENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSwgY29uc3QgU3R5bAogICAgIHJldHVybiB0cnVlOwogfQogCi1z
dGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tNaW5NYXgoQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1p
dGl2ZVZhbHVlLCBjb25zdCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUsIEdyaWRUcmFja1Np
emUmIHRyYWNrU2l6ZSkKK3N0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja1NpemUoQ1NTVmFsdWUq
IHZhbHVlLCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUsIGNvbnN0IFN0eWxlUmVzb2x2ZXI6OlN0
YXRlJiBzdGF0ZSkKIHsKKyAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwogICAgIFBhaXIqIG1p
bk1heFRyYWNrQnJlYWR0aCA9IHByaW1pdGl2ZVZhbHVlLT5nZXRQYWlyVmFsdWUoKTsKICAgICBp
ZiAoIW1pbk1heFRyYWNrQnJlYWR0aCkgewogICAgICAgICBMZW5ndGggd29ya2luZ0xlbmd0aDsK
QEAgLTIxMTMsMTggKzIxMTcsMjEgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTWluTWF4
KENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSwgY29uc3QgU3R5bGUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrR3JvdXAoQ1NTVmFsdWUq
IHZhbHVlLCBjb25zdCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUsIFZlY3RvcjxHcmlkVHJh
Y2tTaXplPiYgdHJhY2tTaXplcykKK3N0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0xpc3QoQ1NT
VmFsdWUqIHZhbHVlLCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6ZXMsIGNvbnN0IFN0
eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSkKIHsKKyAgICAvLyBIYW5kbGUgJ25vbmUnLgorICAg
IGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CisgICAgICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOworICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVOb25lOworICAgIH0KKwogICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGZvciAoQ1NTVmFsdWVMaXN0SXRlcmF0b3IgaSA9IHZhbHVl
OyBpLmhhc01vcmUoKTsgaS5hZHZhbmNlKCkpIHsKICAgICAgICAgQ1NTVmFsdWUqIGN1cnJWYWx1
ZSA9IGkudmFsdWUoKTsKLSAgICAgICAgaWYgKCFjdXJyVmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgICAgICBHcmlkVHJhY2tTaXplIHRy
YWNrU2l6ZTsKLSAgICAgICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tNaW5NYXgoc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPihjdXJyVmFsdWUpLCBzdGF0ZSwgdHJhY2tTaXplKSkKKyAgICAg
ICAgaWYgKCFjcmVhdGVHcmlkVHJhY2tTaXplKGN1cnJWYWx1ZSwgdHJhY2tTaXplLCBzdGF0ZSkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgdHJhY2tTaXplcy5hcHBlbmQo
dHJhY2tTaXplKTsKQEAgLTIxMzIsMTcgKzIxMzksNiBAQCBzdGF0aWMgYm9vbCBjcmVhdGVHcmlk
VHJhY2tHcm91cChDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IFN0eWxlUmVzb2x2ZXI6OlN0YXRlJiBz
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0
KENTU1ZhbHVlKiB2YWx1ZSwgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0cmFja1NpemVzLCBjb25z
dCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUpCi17Ci0gICAgLy8gSGFuZGxlICdub25lJy4K
LSAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewotICAgICAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+
KHZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENT
U1ZhbHVlTm9uZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gY3JlYXRlR3JpZFRyYWNrR3JvdXAodmFs
dWUsIHN0YXRlLCB0cmFja1NpemVzKTsKLX0KLQogCiBzdGF0aWMgYm9vbCBjcmVhdGVHcmlkUG9z
aXRpb24oQ1NTVmFsdWUqIHZhbHVlLCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uKQogewpAQCAtMjg4
OCw2ICsyODg0LDIwIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9Db2x1bW5zOiB7CisgICAgICAg
IEdyaWRUcmFja1NpemUgdHJhY2tTaXplOworICAgICAgICBpZiAoIWNyZWF0ZUdyaWRUcmFja1Np
emUodmFsdWUsIHRyYWNrU2l6ZSwgc3RhdGUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBzdGF0ZS5zdHlsZSgpLT5zZXRHcmlkQXV0b0NvbHVtbnModHJhY2tTaXplKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9Sb3dzOiB7
CisgICAgICAgIEdyaWRUcmFja1NpemUgdHJhY2tTaXplOworICAgICAgICBpZiAoIWNyZWF0ZUdy
aWRUcmFja1NpemUodmFsdWUsIHRyYWNrU2l6ZSwgc3RhdGUpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRHcmlkQXV0b1Jvd3ModHJhY2tTaXplKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVt
bnM6IHsKICAgICAgICAgVmVjdG9yPEdyaWRUcmFja1NpemU+IHRyYWNrU2l6ZXM7CiAgICAgICAg
IGlmICghY3JlYXRlR3JpZFRyYWNrTGlzdCh2YWx1ZSwgdHJhY2tTaXplcywgc3RhdGUpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBkNGVlMmNi
NzAxMjA0N2IzNzI1N2U2NzUwMzdhMWFkMDk1ODk4YTcwLi5mNGM5Njk5ZDk2YTRkMzY2NWM4NDgx
YmRiZTYwZTVmODg1MzY1M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaApAQCAtNzc3LDYgKzc3Nyw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0
b3I8R3JpZFRyYWNrU2l6ZT4mIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQ29sdW1uczsgfQogICAgIGNvbnN0IFZlY3RvcjxH
cmlkVHJhY2tTaXplPiYgZ3JpZFJvd3MoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9CiAgICAgR3JpZEF1dG9GbG93IGdyaWRBdXRvRmxv
dygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZEF1
dG9GbG93OyB9CisgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgZ3JpZEF1dG9Db2x1bW5zKCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQXV0b0NvbHVt
bnM7IH0KKyAgICBjb25zdCBHcmlkVHJhY2tTaXplJiBncmlkQXV0b1Jvd3MoKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRBdXRvUm93czsgfQogCiAg
ICAgY29uc3QgR3JpZFBvc2l0aW9uJiBncmlkSXRlbVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZFN0YXJ0OyB9CiAgICAgY29uc3Qg
R3JpZFBvc2l0aW9uJiBncmlkSXRlbUVuZCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2dyaWRJdGVtLT5tX2dyaWRFbmQ7IH0KQEAgLTEyODcsNiArMTI4OSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEZsZXhEaXJlY3Rpb24oRUZsZXhEaXJlY3Rpb24gZGlyZWN0aW9u
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmxleGlibGVCb3gs
IG1fZmxleERpcmVjdGlvbiwgZGlyZWN0aW9uKTsgfQogICAgIHZvaWQgc2V0RmxleFdyYXAoRUZs
ZXhXcmFwIHcpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4
aWJsZUJveCwgbV9mbGV4V3JhcCwgdyk7IH0KICAgICB2b2lkIHNldEp1c3RpZnlDb250ZW50KEVK
dXN0aWZ5Q29udGVudCBwKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fanVzdGlm
eUNvbnRlbnQsIHApOyB9CisgICAgdm9pZCBzZXRHcmlkQXV0b0NvbHVtbnMoY29uc3QgR3JpZFRy
YWNrU2l6ZSYgbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZ3JpZCwgbV9ncmlkQXV0b0NvbHVtbnMsIGxlbmd0aCk7IH0KKyAgICB2b2lkIHNldEdyaWRB
dXRvUm93cyhjb25zdCBHcmlkVHJhY2tTaXplJiBsZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvUm93cywgbGVuZ3RoKTsgfQog
ICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiBsZW5n
dGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9n
cmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRSb3dzKGNvbnN0IFZlY3Rv
cjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CiAgICAgdm9pZCBzZXRH
cmlkQXV0b0Zsb3coR3JpZEF1dG9GbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVk
RGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvRmxvdywgZmxvdyk7IH0KQEAgLTE3MDgs
NiArMTcxMiw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBHcmlkQXV0b0Zsb3cgaW5pdGlhbEdy
aWRBdXRvRmxvdygpIHsgcmV0dXJuIEF1dG9GbG93Tm9uZTsgfQogCisgICAgc3RhdGljIEdyaWRU
cmFja1NpemUgaW5pdGlhbEdyaWRBdXRvQ29sdW1ucygpIHsgcmV0dXJuIEdyaWRUcmFja1NpemUo
QXV0byk7IH0KKyAgICBzdGF0aWMgR3JpZFRyYWNrU2l6ZSBpbml0aWFsR3JpZEF1dG9Sb3dzKCkg
eyByZXR1cm4gR3JpZFRyYWNrU2l6ZShBdXRvKTsgfQorCiAgICAgLy8gJ2F1dG8nIGlzIHRoZSBk
ZWZhdWx0LgogICAgIHN0YXRpYyBHcmlkUG9zaXRpb24gaW5pdGlhbEdyaWRQb3NpdGlvbigpIHsg
cmV0dXJuIEdyaWRQb3NpdGlvbigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcAppbmRleCA5YTgxMGRlZTg4MjNiNjAzZTY1YTI3ZGJh
NTZjNWM2YTVkZjczNTA1Li45Y2ZmZWFiY2YxZjg3NWY2NWI3YWI3MjkyZGIyNTZiM2E1MTk1OTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEu
Y3BwCkBAIC0zNCw2ICszNCw4IEBAIFN0eWxlR3JpZERhdGE6OlN0eWxlR3JpZERhdGEoKQogICAg
IDogbV9ncmlkQ29sdW1ucyhSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRDb2x1bW5zKCkpCiAgICAg
LCBtX2dyaWRSb3dzKFJlbmRlclN0eWxlOjppbml0aWFsR3JpZFJvd3MoKSkKICAgICAsIG1fZ3Jp
ZEF1dG9GbG93KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEF1dG9GbG93KCkpCisgICAgLCBtX2dy
aWRBdXRvUm93cyhSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUm93cygpKQorICAgICwgbV9n
cmlkQXV0b0NvbHVtbnMoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b0NvbHVtbnMoKSkKIHsK
IH0KIApAQCAtNDIsNiArNDQsOCBAQCBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKGNvbnN0
IFN0eWxlR3JpZERhdGEmIG8pCiAgICAgLCBtX2dyaWRDb2x1bW5zKG8ubV9ncmlkQ29sdW1ucykK
ICAgICAsIG1fZ3JpZFJvd3Moby5tX2dyaWRSb3dzKQogICAgICwgbV9ncmlkQXV0b0Zsb3coby5t
X2dyaWRBdXRvRmxvdykKKyAgICAsIG1fZ3JpZEF1dG9Sb3dzKG8ubV9ncmlkQXV0b1Jvd3MpCisg
ICAgLCBtX2dyaWRBdXRvQ29sdW1ucyhvLm1fZ3JpZEF1dG9Db2x1bW5zKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAppbmRleCAxYjI1
ZjIwNWFlYjk3YTMzM2M4MWFjMWE1YWE2ODFlMTIzMTM4ZGQ4Li5mNjg0OTgyMGM0ODVmMjBjZTBl
YTZlMGVjYjJjYzdkNTMyZTI0ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUdyaWREYXRhLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlR3JpZERhdGEmIG8pIGNvbnN0CiAgICAgewotICAgICAg
ICByZXR1cm4gbV9ncmlkQ29sdW1ucyA9PSBvLm1fZ3JpZENvbHVtbnMgJiYgbV9ncmlkUm93cyA9
PSBvLm1fZ3JpZFJvd3MgJiYgbV9ncmlkQXV0b0Zsb3cgPT0gby5tX2dyaWRBdXRvRmxvdzsKKyAg
ICAgICAgcmV0dXJuIG1fZ3JpZENvbHVtbnMgPT0gby5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJv
d3MgPT0gby5tX2dyaWRSb3dzICYmIG1fZ3JpZEF1dG9GbG93ID09IG8ubV9ncmlkQXV0b0Zsb3cg
JiYgbV9ncmlkQXV0b1Jvd3MgPT0gby5tX2dyaWRBdXRvUm93cyAmJiBtX2dyaWRBdXRvQ29sdW1u
cyA9PSBvLm1fZ3JpZEF1dG9Db2x1bW5zOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTdHlsZUdyaWREYXRhJiBvKSBjb25zdApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAK
ICAgICBHcmlkQXV0b0Zsb3cgbV9ncmlkQXV0b0Zsb3c7CiAKKyAgICBHcmlkVHJhY2tTaXplIG1f
Z3JpZEF1dG9Sb3dzOworICAgIEdyaWRUcmFja1NpemUgbV9ncmlkQXV0b0NvbHVtbnM7CisKIHBy
aXZhdGU6CiAgICAgU3R5bGVHcmlkRGF0YSgpOwogICAgIFN0eWxlR3JpZERhdGEoY29uc3QgU3R5
bGVHcmlkRGF0YSYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkNDg4N2IxYTZkMjhhM2NlMGY1YTg1ZTUzZWU3ODRmODAy
NTA1NjcuLmZiOWYwZTgyOGI4OTJmZjg0NWRiNWFiZTM1ZTM3ZjAwNTQ5MTA3NmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMy0wMy0xOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBBZGQgcGFyc2luZyBmb3Ig
Z3JpZC1hdXRvLXtyb3d8Y29sdW1ufQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEyNzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tY29sdW1ucy1y
b3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWF1dG8tY29sdW1ucy1yb3dzLWdldC1zZXQuaHRtbDogQWRkZWQuCisKIDIw
MTMtMDMtMTkgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgSG92ZXIgZWZmZWN0cyBmcm9tIGEgR2VzdHVyZVRhcERvd24gYXJlIGRpc21pc3NlZCBi
eSBhIEdlc3R1cmVUYXAgb24gdGhlIGhvdmVyIGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1jb2x1bW5zLXJvd3MtZ2V0LXNldC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8t
Y29sdW1ucy1yb3dzLWdldC1zZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzYjJiZWJlZDkw
NzJjZjQ1NjZiMzc3Njc1M2FiMWI1NDlmNjk3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tY29sdW1ucy1yb3dzLWdldC1zZXQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDAgQEAKK1Rlc3QgdGhhdCBzZXR0aW5nIGFuZCBnZXR0
aW5nIGdyaWQtYXV0by1jb2x1bW5zIGFuZCBncmlkLWF1dG8tcm93cyB3b3JrcyBhcyBleHBlY3Rl
ZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBnZXR0aW5nIC13ZWJraXQt
Z3JpZC1hdXRvLWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC1hdXRvLXJvd3Mgc2V0IHRocm91Z2gg
Q1NTCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GaXhlZEZpeGVkLCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIGlzICczMHB4JworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGdyaWRBdXRvRml4ZWRGaXhlZCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnMnKSBpcyAnNTBweCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShncmlkQXV0b01pbk1heCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRv
LXJvd3MnKSBpcyAnbWlubWF4KDEwJSwgMTVweCknCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3Jp
ZEF1dG9NaW5NYXgsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1jb2x1
bW5zJykgaXMgJ21pbm1heCgzMCUsIDEwMHB4KScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlk
QXV0b01pbk1heENvbnRlbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0
by1yb3dzJykgaXMgJy13ZWJraXQtbWluLWNvbnRlbnQnCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
Z3JpZEF1dG9NaW5NYXhDb250ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWF1dG8tY29sdW1ucycpIGlzICctd2Via2l0LW1heC1jb250ZW50JworCitUZXN0IHRoZSBpbml0
aWFsIHZhbHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnMnKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1
dG8tcm93cycpIGlzICdhdXRvJworCitUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgLXdlYmtpdC1n
cmlkLWF1dG8tY29sdW1ucyBhbmQgLXdlYmtpdC1ncmlkLWF1dG8tcm93cyB0aHJvdWdoIEpTCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1hdXRvLWNvbHVtbnMnKSBpcyAnMTgwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLXJvd3MnKSBp
cyAnNjYwcHgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnMnKSBpcyAnbWlubWF4KC13ZWJraXQtbWlu
LWNvbnRlbnQsIDQ4cHgpJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1yb3dzJykgaXMgJ21pbm1heCg4MHB4LCAt
d2Via2l0LW1pbi1jb250ZW50KScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIGlzICdtaW5tYXgo
LXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCknCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRv
LXJvd3MnKSBpcyAnbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRl
bnQpJworCitUZXN0IHNldHRpbmcgZ3JpZC1hdXRvLWNvbHVtbnMgYW5kIGdyaWQtYXV0by1yb3dz
IHRvIGJhZCBtaW5tYXggdmFsdWUgdGhyb3VnaCBKUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1jb2x1bW5zJykg
aXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLXJvd3MnKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8t
Y29sdW1ucycpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1yb3dzJykgaXMgJ2F1dG8nCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1hdXRvLWNvbHVtbnMnKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIGlzICdh
dXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtYXV0by1jb2x1bW5zJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLXJv
d3MnKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIGlzICdhdXRvJworUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtYXV0by1yb3dzJykgaXMgJ2F1dG8nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1hdXRvLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tY29sdW1ucy1yb3dzLWdldC1zZXQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YmUxYTc1NTFlNGRjYmEwZTkwMjFiOGZkM2IwYjM2NzI1Zjg0YTlmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1h
dXRvLWNvbHVtbnMtcm93cy1nZXQtc2V0Lmh0bWwKQEAgLTAsMCArMSwxMjQgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQ
cmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8
bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5bGU+
CisuZ3JpZEF1dG9GaXhlZEZpeGVkIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1yb3dzOiAzMHB4
OworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnM6IDUwcHg7Cit9CisKKy5ncmlkQXV0b01p
bk1heCB7CisgICAgLXdlYmtpdC1ncmlkLWF1dG8tcm93czogbWlubWF4KDEwJSwgMTVweCk7Cisg
ICAgLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1uczogbWlubWF4KDMwJSwgMTAwcHgpOworfQorCisu
Z3JpZEF1dG9NaW5NYXhDb250ZW50IHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1yb3dzOiAtd2Vi
a2l0LW1pbi1jb250ZW50OworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnM6IC13ZWJraXQt
bWF4LWNvbnRlbnQ7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9Imdy
aWQgZ3JpZEF1dG9GaXhlZEZpeGVkIiBpZD0iZ3JpZEF1dG9GaXhlZEZpeGVkIj48L2Rpdj4KKzxk
aXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9NaW5NYXgiIGlkPSJncmlkQXV0b01pbk1heCI+PC9kaXY+
Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvTWluTWF4Q29udGVudCIgaWQ9ImdyaWRBdXRvTWlu
TWF4Q29udGVudCI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBzZXR0
aW5nIGFuZCBnZXR0aW5nIGdyaWQtYXV0by1jb2x1bW5zIGFuZCBncmlkLWF1dG8tcm93cyB3b3Jr
cyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0aW5nIC13ZWJraXQtZ3JpZC1hdXRv
LWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC1hdXRvLXJvd3Mgc2V0IHRocm91Z2ggQ1NTIik7Cit2
YXIgZ3JpZEF1dG9GaXhlZEZpeGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRBdXRv
Rml4ZWRGaXhlZCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GaXhlZEZp
eGVkLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIiwgIicz
MHB4JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GaXhlZEZpeGVkLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIiwgIic1MHB4
JyIpOworCit2YXIgZ3JpZEF1dG9NaW5NYXggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3Jp
ZEF1dG9NaW5NYXgiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvTWluTWF4
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIiwgIidtaW5t
YXgoMTAlLCAxNXB4KSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvTWlu
TWF4LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIiwg
IidtaW5tYXgoMzAlLCAxMDBweCknIik7CisKK3ZhciBncmlkQXV0b01pbk1heENvbnRlbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9NaW5NYXhDb250ZW50Iik7CitzaG91bGRC
ZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b01pbk1heENvbnRlbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1yb3dzJykiLCAiJy13ZWJraXQtbWluLWNvbnRlbnQn
Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b01pbk1heENvbnRlbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1jb2x1bW5zJykiLCAiJy13ZWJr
aXQtbWF4LWNvbnRlbnQnIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoZSBpbml0aWFs
IHZhbHVlIik7Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK3Nob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1j
b2x1bW5zJykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIiwgIidhdXRv
JyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIC13ZWJr
aXQtZ3JpZC1hdXRvLWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC1hdXRvLXJvd3MgdGhyb3VnaCBK
UyIpOworZWxlbWVudC5zdHlsZS5mb250ID0gIjEwcHggQWhlbSI7CitlbGVtZW50LnN0eWxlLndl
YmtpdEdyaWRBdXRvQ29sdW1ucyA9ICIxOGVtIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1
dG9Sb3dzID0gIjY2ZW0iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWNvbHVtbnMnKSIsICInMTgwcHgn
Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIiwgIic2NjBweCciKTsKKworZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9Db2x1bW5zID0gIm1pbm1h
eCgtd2Via2l0LW1pbi1jb250ZW50LCA4dmgpIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1
dG9Sb3dzID0gIm1pbm1heCgxMHZ3LCAtd2Via2l0LW1pbi1jb250ZW50KSI7CitzaG91bGRCZSgi
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tY29sdW1ucycpIiwgIidtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgNDhweCkn
Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tcm93cycpIiwgIidtaW5tYXgoODBweCwgLXdlYmtpdC1t
aW4tY29udGVudCknIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndl
YmtpdEdyaWRBdXRvQ29sdW1ucyA9ICJtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtp
dC1tYXgtY29udGVudCkiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQXV0b1Jvd3MgPSAibWlu
bWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIjsKK3Nob3VsZEJl
KCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtYXV0by1jb2x1bW5zJykiLCAiJ21pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Vi
a2l0LW1heC1jb250ZW50KSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1yb3dzJykiLCAiJ21pbm1h
eCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSciKTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3Qgc2V0dGluZyBncmlkLWF1dG8tY29sdW1ucyBhbmQgZ3JpZC1hdXRv
LXJvd3MgdG8gYmFkIG1pbm1heCB2YWx1ZSB0aHJvdWdoIEpTIik7CitlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1l
bnQpOworLy8gTm8gY29tbWEuCitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRBdXRvQ29sdW1ucyA9
ICJtaW5tYXgoMTBweCAyMHB4KSI7CisvLyBPbmx5IDEgYXJndW1lbnQgcHJvdmlkZWQuCitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRBdXRvUm93cyA9ICJtaW5tYXgoMTBweCkiOworc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1hdXRvLWNvbHVtbnMnKSIsICInYXV0byciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1yb3dz
JykiLCAiJ2F1dG8nIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisvLyBOZXN0ZWQgbWlubWF4
LgorZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQXV0b0NvbHVtbnMgPSAibWlubWF4KG1pbm1heCgx
MHB4LCAyMHB4KSwgMjBweCkiOworLy8gT25seSAyIGFyZ3VtZW50cyBhcmUgYWxsb3dlZC4KK2Vs
ZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9Sb3dzID0gIm1pbm1heCgxMHB4LCAyMHB4LCAzMHB4
KSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIiwgIidhdXRvJyIpOworc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1hdXRvLXJvd3MnKSIsICInYXV0byciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKy8v
IE5vIGJyZWFkdGggdmFsdWUuCitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRBdXRvQ29sdW1ucyA9
ICJtaW5tYXgoKSI7CisvLyBObyBjb21tYS4KK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9S
b3dzID0gIm1pbm1heCgzMHB4IDMwJSAzMGVtKSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1u
cycpIiwgIidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLXJvd3MnKSIsICInYXV0byciKTsK
KworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKy8vIEF1dG8gaXMgbm90IGFsbG93ZWQgaW5zaWRlIG1p
bm1heC4KK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9Db2x1bW5zID0gIm1pbm1heChhdXRv
LCA4dmgpIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9Sb3dzID0gIm1pbm1heCgxMHZ3
LCBhdXRvKSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29sdW1ucycpIiwgIidhdXRvJyIpOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1hdXRvLXJvd3MnKSIsICInYXV0byciKTsKKworZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50
KTsKKy8vIE5vbmUgaXMgbm90IGFsbG93ZWQgZm9yIGdyaWQtYXV0by17cm93c3xjb2x1bW5zfS4K
K2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9Db2x1bW5zID0gIm5vbmUiOworZWxlbWVudC5z
dHlsZS53ZWJraXRHcmlkQXV0b1Jvd3MgPSAibm9uZSI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tY29s
dW1ucycpIiwgIidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLXJvd3MnKSIsICInYXV0byci
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>