<?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>207666</bug_id>
          
          <creation_ts>2020-02-12 14:42:12 -0800</creation_ts>
          <short_desc>CSSValuePool&apos;s constant CSS values should not be allocated dynamically (and same for Vectors)</short_desc>
          <delta_ts>2020-02-12 17:11:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204520</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1618231</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 14:42:12 -0800</bug_when>
    <thetext>This causes memory regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618233</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 14:43:35 -0800</bug_when>
    <thetext>Let&apos;s introduce static CSSValues which can be shared by multiple threads, the concept is the same to StaticStringImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618235</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 14:44:54 -0800</bug_when>
    <thetext>Further aggressive thing is like, encoding some of CSSValues into a pointer and using it as a value. But for now, let&apos;s just start fixing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618284</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-12 16:09:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/59405553&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618290</commentid>
    <comment_count>4</comment_count>
      <attachid>390583</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 16:20:17 -0800</bug_when>
    <thetext>Created attachment 390583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618307</commentid>
    <comment_count>5</comment_count>
      <attachid>390588</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 16:34:57 -0800</bug_when>
    <thetext>Created attachment 390588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618314</commentid>
    <comment_count>6</comment_count>
      <attachid>390583</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-12 16:48:55 -0800</bug_when>
    <thetext>Comment on attachment 390583
Patch

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

&gt; Source/WebCore/css/CSSValue.h:68
&gt; +        // Custoized deref() to ensure operator delete is called on

/Custoized/Customized/

&gt; Source/WebCore/css/CSSValuePool.h:51
&gt; +    friend class WTF::LazyNeverDestroyed&lt;StaticCSSValuePool&gt;;

The WTF qualifier here is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618316</commentid>
    <comment_count>7</comment_count>
      <attachid>390588</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-12 16:50:39 -0800</bug_when>
    <thetext>Comment on attachment 390588
Patch

r=me with fixes for previously posted comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618320</commentid>
    <comment_count>8</comment_count>
      <attachid>390588</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 17:06:32 -0800</bug_when>
    <thetext>Comment on attachment 390588
Patch

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618324</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-12 17:11:15 -0800</bug_when>
    <thetext>Committed r256494: &lt;https://trac.webkit.org/changeset/256494&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390583</attachid>
            <date>2020-02-12 16:20:17 -0800</date>
            <delta_ts>2020-02-12 16:34:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207666-20200212162016.patch</filename>
            <type>text/plain</type>
            <size>20033</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI1OWQwMmVhOGFmYTg2
MjkyYjU0NmI5YjUxZGExMjAxMThkZTgyYi4uOTQ1ZWE0NGU5MDg4Y2JkMDQzZWVkNDQ1ZmY2YmY3
MzUzMWJhYjRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTAyLTEyICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTVmFsdWVQb29sJ3Mg
Y29uc3RhbnQgQ1NTIHZhbHVlcyBzaG91bGQgbm90IGJlIGFsbG9jYXRlZCBkeW5hbWljYWxseSAo
YW5kIHNhbWUgZm9yIFZlY3RvcnMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDc2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICByMjUyNzg1IGNoYW5nZXMgY29udGVudHMgKENTU1ZhbHVlcyBhbmQgVmVj
dG9ycykgb2YgQ1NTVmFsdWVQb29sIGZyb20gc3RhdGljIG9uZXMgdG8KKyAgICAgICAgZHluYW1p
Y2FsbHkgYWxsb2NhdGVkIG9uZXMuIFRoaXMgd2FzIGRvbmUgc2luY2Ugd2Ugd291bGQgbGlrZSB0
byB1c2Ugc3RhdGljIENTU1ZhbHVlcworICAgICAgICBldmVuIGluIHRoZSBvdGhlciB0aHJlYWRz
ICh3b3JrZXJzIGV0Yy4pIGZvciBPZmZzY3JlZW5DYW52YXMgZmVhdHVyZS4KKworICAgICAgICBC
dXQgdGhpcyBjYXVzZXMgbWVtb3J5IHJlZ3Jlc3Npb24gaW4gTWVtYnVzdGVyIHNpbmNlIHdlIGFs
bG9jYXRlcyBtYW55IENTU1ZhbHVlcyBhbmQKKyAgICAgICAgbGFyZ2UgVmVjdG9ycywgYW5kIHRo
ZXkgYXJlIGtlcHQgcGVyc2lzdGVudGx5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBk
eW5hbWljIGFsbG9jYXRpb24gcGFydCBvZiByMjUyNzg1IHRvIHJlY292ZXIgbWVtb3J5IHJlZ3Jl
c3Npb24uCisgICAgICAgIFRoZSBrZXkgb2YgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBTdGF0
aWMgQ1NTVmFsdWUgZmVhdHVyZS4gV2hlbiBpbmNyZW1lbnRpbmcgLyBkZWNyZW1lbnRpbmcKKyAg
ICAgICAgbV9yZWZDb3VudCBvZiBDU1NWYWx1ZSwgd2UgYWRkIC8gc3VidHJhY3QgYnkgMHgyLiBB
bmQgd2UgcHV0IDB4MSBhcyBhIHN0YXRpYy1mbGFnLiBTbywgZXZlbiBpZgorICAgICAgICB0aGlz
IENTU1ZhbHVlIGlzIHVzZWQgYnkgbXVsdGlwbGUgdGhyZWFkcywgd2UgbmV2ZXIgc2VlIHRoYXQg
Q1NTVmFsdWUgZ2V0cyAwIG1fcmVmQ291bnQgaWYKKyAgICAgICAgaXQgaXMgbWFya2VkIGFzIHN0
YXRpYyAoaGF2aW5nIDB4MSkuIFRoaXMgaXMgdGhlIHNhbWUgZGVzaWduIHRvIG91ciBzdGF0aWMg
U3RyaW5nSW1wbC4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBj
c3MvQ1NTSW5oZXJpdGVkVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW5pdGlhbFZhbHVlLmg6
CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1JldmVydFZhbHVlLmg6CisgICAg
ICAgICogY3NzL0NTU1Vuc2V0VmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpyZWYgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWU6Omhhc09uZVJlZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6
cmVmQ291bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Omhhc0F0TGVhc3RP
bmVSZWYgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlcmVmKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjptYWtlU3RhdGljKToKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVQb29sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY0NTU1ZhbHVlUG9vbDo6U3RhdGlj
Q1NTVmFsdWVQb29sKToKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY0NTU1ZhbHVlUG9vbDo6aW5p
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OkNTU1ZhbHVlUG9vbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUNvbG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VmFsdWVQb29sOjpjcmVhdGVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVJbmhlcml0ZWRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlRXhwbGljaXRJbml0aWFs
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVVbnNldFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlUmV2ZXJ0VmFsdWUpOgor
CiAyMDIwLTAyLTEyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2hyaW5rIENhY2hlZFJlc291cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW5oZXJpdGVkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1
ZS5oCmluZGV4IGZhMWJkZDk1ZTViODgxYTgxNDMxMzdlYjIyODQ1MmIyMGFjMTExY2QuLmI1MmI5
MTU0YWEyMjhkNTEwOWViYjQwMGYyZTk5ZGRkZWVmZGQ0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbmhlcml0ZWRWYWx1ZS5oCkBAIC0yNiwxNiArMjYsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NJbmhlcml0ZWRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NJbmhlcml0ZWRWYWx1ZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDU1NJbmhlcml0ZWRWYWx1ZSgpKTsgfQotCiAgICAgU3RyaW5nIGN1
c3RvbUNTU1RleHQoKSBjb25zdDsKIAogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0luaGVyaXRl
ZFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIENTU0luaGVy
aXRlZFZhbHVlKCkKKyAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZh
bHVlPjsKKyAgICBDU1NJbmhlcml0ZWRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykKICAgICAgICAg
OiBDU1NWYWx1ZShJbmhlcml0ZWRDbGFzcykKICAgICB7CisgICAgICAgIG1ha2VTdGF0aWMoKTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmgKaW5kZXggNGYyYzlj
ZjcxYTMzYWJjY2YxMzgzYTA2OWY0ZTQ1ODE3ZDMwMWMxOS4uOTRmYjc2ZjI1MWYyNDRmMTUxY2E3
MjgxMjJiYzEyYTQ0YTliYTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aXRpYWxWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaApA
QCAtMjYsMTUgKzI2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NJbml0aWFs
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
Q1NTSW5pdGlhbFZhbHVlPiBjcmVhdGVFeHBsaWNpdCgpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDU1NJbml0aWFsVmFsdWUoLyogaW1wbGljaXQgKi8gZmFsc2UpKTsKLSAg
ICB9Ci0gICAgc3RhdGljIFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUltcGxpY2l0KCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0luaXRpYWxWYWx1ZSgvKiBpbXBs
aWNpdCAqLyB0cnVlKSk7Ci0gICAgfQotCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25z
dDsKIAogICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbXBsaWNpdDsg
fQpAQCAtNDMsMTAgKzM0LDExIEBAIGNsYXNzIENTU0luaXRpYWxWYWx1ZSBmaW5hbCA6IHB1Ymxp
YyBDU1NWYWx1ZSB7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxD
U1NJbml0aWFsVmFsdWU+OwotICAgIENTU0luaXRpYWxWYWx1ZShib29sIGltcGxpY2l0KQorICAg
IENTU0luaXRpYWxWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgYm9vbCBpbXBsaWNpdCkKICAgICAg
ICAgOiBDU1NWYWx1ZShJbml0aWFsQ2xhc3MpCiAgICAgICAgICwgbV9pc0ltcGxpY2l0KGltcGxp
Y2l0KQogICAgIHsKKyAgICAgICAgbWFrZVN0YXRpYygpOwogICAgIH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDg1Y2Y3NzgyNzM1NjU5
MTY2N2NlYzU3ODI5N2FjZGY0YTBjYTRiZmUuLmY5NWFjYzQ5ZTFhZGMxZjlmMGRjZjJjZDczOTdl
MjRiYWZhNWI0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApA
QCAtMzA2LDYgKzMwNiwyNCBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
Y29uc3QgTGVuZ3RoU2l6ZSYgbGVuZ3RoU2l6ZSwgY29uc3QgUmVuZGVyUwogICAgIGluaXQobGVu
Z3RoU2l6ZSwgc3R5bGUpOwogfQogCitDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoU3RhdGljQ1NTVmFsdWVUYWcsIENTU1ZhbHVlSUQgdmFsdWVJRCkKKyAgICA6IENTU1ByaW1p
dGl2ZVZhbHVlKHZhbHVlSUQpCit7CisgICAgbWFrZVN0YXRpYygpOworfQorCitDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIGNvbnN0IENvbG9y
JiBjb2xvcikKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKGNvbG9yKQoreworICAgIG1ha2VTdGF0
aWMoKTsKK30KKworQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NT
U1ZhbHVlVGFnLCBkb3VibGUgbnVtLCBDU1NVbml0VHlwZSB0eXBlKQorICAgIDogQ1NTUHJpbWl0
aXZlVmFsdWUobnVtLCB0eXBlKQoreworICAgIG1ha2VTdGF0aWMoKTsKK30KKwogdm9pZCBDU1NQ
cmltaXRpdmVWYWx1ZTo6aW5pdChjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBzd2l0Y2gg
KGxlbmd0aC50eXBlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5k
ZXggNDc0NmFjOGQwN2ZjZDNlNDZiNjZjODgwZTk5YWYxZjIyZTA1NTRjMS4uMGYzYmZjMDcyYmQz
MzBmYmM2MGUxZDczYWZhZmI2YjRjYTlkYmNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKQEAgLTIxOCw2ICsyMTgsMTAgQEAgY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWUg
ZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IFN0
cmluZyYsIENTU1VuaXRUeXBlKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShkb3VibGUsIENTU1Vu
aXRUeXBlKTsKIAorICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBDU1NW
YWx1ZUlEKTsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgY29uc3Qg
Q29sb3ImKTsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgZG91Ymxl
LCBDU1NVbml0VHlwZSk7CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NQcmltaXRpdmVW
YWx1ZShUKTsgLy8gRGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NQcmltaXRpdmVWYWx1ZShSZWZQdHI8VD4mJik7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NTUHJpbWl0aXZlVmFsdWUoUmVmPFQ+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaAppbmRleCBhMTI2Y2JiYmUyMjc4YjllNTA3MGE4NmJkMzU5
MDJiMzY4ODk0YmU3Li4xNzViMjRkNzIzN2Q3ZWZhNmUzMzUyYWY2YzM1ODQ3NTM2M2YxYzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaApAQCAtMzEsMTYgKzMxLDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUmV2ZXJ0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NT
VmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUmV2ZXJ0VmFsdWUoKSk7IH0KLQogICAgIFN0cmlu
ZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NSZXZl
cnRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBDU1NSZXZl
cnRWYWx1ZSgpCisgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NSZXZlcnRWYWx1ZT47
CisgICAgQ1NTUmV2ZXJ0VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCiAgICAgICAgIDogQ1NTVmFs
dWUoUmV2ZXJ0Q2xhc3MpCiAgICAgeworICAgICAgICBtYWtlU3RhdGljKCk7CiAgICAgfQogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmgKaW5kZXggNTMzMDUxOGZlNDllMmY2ZmFiYTY5
M2I5YmIwYmI5OTU3YTRlNjExZS4uYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZjMzky
ZDZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCkBAIC0zMSwxNiArMzEsMTYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NVbnNldFZhbHVlIGZpbmFsIDogcHVibGlj
IENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU1Vuc2V0VmFsdWU+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVW5zZXRWYWx1ZSgpKTsgfQotCiAgICAgU3Ry
aW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKIAogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1Vu
c2V0VmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6Ci0gICAgQ1NTVW5z
ZXRWYWx1ZSgpCisgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NVbnNldFZhbHVlPjsK
KyAgICBDU1NVbnNldFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnKQogICAgICAgICA6IENTU1ZhbHVl
KFVuc2V0Q2xhc3MpCiAgICAgeworICAgICAgICBtYWtlU3RhdGljKCk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaAppbmRleCA5NDI4YTk1MGZkMTlkMzg0ODIzZDhiNGQwYjRhNGMxOWJi
ZDg0ZDc1Li5hMzBiOWNlMDk5NWU1YzJkZmJjMjJiZTMwMzBmMTQ2NzY1OWZlMjBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaApAQCAtMzksNyArMzksOCBAQCBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7
CiBlbnVtIENTU1Byb3BlcnR5SUQgOiB1aW50MTZfdDsKIAogREVDTEFSRV9BTExPQ0FUT1JfV0lU
SF9IRUFQX0lERU5USUZJRVIoQ1NTVmFsdWUpOwotY2xhc3MgQ1NTVmFsdWUgOiBwdWJsaWMgUmVm
Q291bnRlZDxDU1NWYWx1ZT4geworY2xhc3MgQ1NTVmFsdWUgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKENTU1ZhbHVlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBf
SURFTlRJRklFUihDU1NWYWx1ZSk7CiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKQEAgLTUyLDEy
ICs1MywyNiBAQCBjbGFzcyBDU1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVlPiB7
CiAgICAgICAgIENTU19SRVZFUlQgPSA2CiAgICAgfTsKIAotICAgIC8vIE92ZXJyaWRlIFJlZkNv
dW50ZWQncyBkZXJlZigpIHRvIGVuc3VyZSBvcGVyYXRvciBkZWxldGUgaXMgY2FsbGVkIG9uCi0g
ICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1YmNsYXNzIHR5cGUuCisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCByZWZDb3VudEZsYWdJc1N0YXRpYyA9IDB4MTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHJlZkNvdW50SW5jcmVtZW50ID0gMHgyOyAvLyBUaGlzIGFsbG93cyB1cyB0
byByZWYgLyBkZXJlZiB3aXRob3V0IGRpc3R1cmJpbmcgdGhlIHN0YXRpYyBDU1NWYWx1ZSBmbGFn
LgorICAgIHZvaWQgcmVmKCkgY29uc3QKKyAgICB7CisgICAgICAgIG1fcmVmQ291bnQgKz0gcmVm
Q291bnRJbmNyZW1lbnQ7CisgICAgfQorICAgIGJvb2wgaGFzT25lUmVmKCkgY29uc3QgeyByZXR1
cm4gbV9yZWZDb3VudCA9PSByZWZDb3VudEluY3JlbWVudDsgfQorICAgIHVuc2lnbmVkIHJlZkNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9yZWZDb3VudCAvIHJlZkNvdW50SW5jcmVtZW50OyB9Cisg
ICAgYm9vbCBoYXNBdExlYXN0T25lUmVmKCkgY29uc3QgeyByZXR1cm4gbV9yZWZDb3VudDsgfQor
CiAgICAgdm9pZCBkZXJlZigpCiAgICAgewotICAgICAgICBpZiAoZGVyZWZCYXNlKCkpCisgICAg
ICAgIC8vIEN1c3RvaXplZCBkZXJlZigpIHRvIGVuc3VyZSBvcGVyYXRvciBkZWxldGUgaXMgY2Fs
bGVkIG9uCisgICAgICAgIC8vIHRoZSBhcHByb3ByaWF0ZSBzdWJjbGFzcyB0eXBlLgorICAgICAg
ICB1bnNpZ25lZCB0ZW1wUmVmQ291bnQgPSBtX3JlZkNvdW50IC0gcmVmQ291bnRJbmNyZW1lbnQ7
CisgICAgICAgIGlmICghdGVtcFJlZkNvdW50KSB7CiAgICAgICAgICAgICBkZXN0cm95KCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZWZDb3VudCA9IHRlbXBS
ZWZDb3VudDsKICAgICB9CiAKICAgICBUeXBlIGNzc1ZhbHVlVHlwZSgpIGNvbnN0OwpAQCAtMjE0
LDYgKzIyOSw3IEBAIGNsYXNzIENTU1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTVmFsdWU+
IHsKICAgICAgICAgQ29tbWFTZXBhcmF0b3IsCiAgICAgICAgIFNsYXNoU2VwYXJhdG9yCiAgICAg
fTsKKyAgICBlbnVtIFN0YXRpY0NTU1ZhbHVlVGFnIHsgU3RhdGljQ1NTVmFsdWUgfTsKIAogcHJv
dGVjdGVkOgogICAgIENsYXNzVHlwZSBjbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxDbGFzc1R5cGU+KG1fY2xhc3NUeXBlKTsgfQpAQCAtMjI3LDYgKzI0MywxMSBAQCBjbGFz
cyBDU1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVlPiB7CiAgICAgewogICAgIH0K
IAorICAgIHZvaWQgbWFrZVN0YXRpYygpCisgICAgeworICAgICAgICBtX3JlZkNvdW50IHw9IHJl
ZkNvdW50RmxhZ0lzU3RhdGljOworICAgIH0KKwogICAgIC8vIE5PVEU6IFRoaXMgY2xhc3MgaXMg
bm9uLXZpcnR1YWwgZm9yIG1lbW9yeSBhbmQgcGVyZm9ybWFuY2UgcmVhc29ucy4KICAgICAvLyBE
b24ndCBnbyBtYWtpbmcgaXQgdmlydHVhbCBhZ2FpbiB1bmxlc3MgeW91IGtub3cgZXhhY3RseSB3
aGF0IHlvdSdyZSBkb2luZyEKIApAQCAtMjM1LDEwICsyNTYsMTAgQEAgY2xhc3MgQ1NTVmFsdWUg
OiBwdWJsaWMgUmVmQ291bnRlZDxDU1NWYWx1ZT4gewogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRlc3Ryb3koKTsKIAorICAgIG11dGFibGUgdW5zaWduZWQgbV9yZWZDb3VudCB7
IHJlZkNvdW50SW5jcmVtZW50IH07CiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhlIGJpdHMgaW4gdGhp
cyBzZWN0aW9uIGFyZSBvbmx5IHVzZWQgYnkgc3BlY2lmaWMgc3ViY2xhc3NlcyBidXQga2VwdCBo
ZXJlCiAgICAgLy8gdG8gbWF4aW1pemUgc3RydWN0IHBhY2tpbmcuCi0KICAgICAvLyBDU1NQcmlt
aXRpdmVWYWx1ZSBiaXRzOgogICAgIHVuc2lnbmVkIG1fcHJpbWl0aXZlVW5pdFR5cGUgOiA3OyAv
LyBDU1NVbml0VHlwZQogICAgIG11dGFibGUgdW5zaWduZWQgbV9oYXNDYWNoZWRDU1NUZXh0IDog
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5kZXggNTE3MjBmNWFkNzkxNWExNDll
YjU5NGQzNDFiYzE3ZDFiNGVlMDlhOC4uYzIxODNiNDFkMzdmYWNjNmQ4Zjc1MTJlNjU5MjFiNzkw
ZjZjODFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKQEAgLTM0LDQxICszNCw1
NCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU1ZhbHVlUG9vbCYgQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKQorTGF6eU5ldmVyRGVzdHJveWVkPFN0YXRpY0NTU1ZhbHVlUG9vbD4gc3Rh
dGljQ1NTVmFsdWVQb29sOworCitTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVlUG9v
bCgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q1NTVmFsdWVQb29sPiBwb29sOwotICAgIHJldHVybiBwb29sOworICAgIG1faW5oZXJp
dGVkVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7CisgICAgbV9pbXBs
aWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCB0cnVl
KTsKKyAgICBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGlj
Q1NTVmFsdWUsIGZhbHNlKTsKKyAgICBtX3Vuc2V0VmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpT
dGF0aWNDU1NWYWx1ZSk7CisgICAgbV9yZXZlcnRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0
YXRpY0NTU1ZhbHVlKTsKKworICAgIG1fdHJhbnNwYXJlbnRDb2xvci5jb25zdHJ1Y3QoQ1NTVmFs
dWU6OlN0YXRpY0NTU1ZhbHVlLCBDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBtX3do
aXRlQ29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3IoQ29sb3I6
OndoaXRlKSk7CisgICAgbV9ibGFja0NvbG9yLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NT
VmFsdWUsIENvbG9yKENvbG9yOjpibGFjaykpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gZmly
c3RDU1NWYWx1ZUtleXdvcmQ7IGkgPD0gbGFzdENTU1ZhbHVlS2V5d29yZDsgKytpKQorICAgICAg
ICBtX2lkZW50aWZpZXJWYWx1ZXNbaV0uY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1
ZSwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVJRD4oaSkpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IChtYXhpbXVtQ2FjaGVhYmxlSW50ZWdlclZhbHVlICsgMSk7ICsraSkgeworICAgICAg
ICBtX3BpeGVsVmFsdWVzW2ldLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIGks
IENTU1VuaXRUeXBlOjpDU1NfUFgpOworICAgICAgICBtX3BlcmNlbnRWYWx1ZXNbaV0uY29uc3Ry
dWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgaSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5U
QUdFKTsKKyAgICAgICAgbV9udW1iZXJWYWx1ZXNbaV0uY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0
aWNDU1NWYWx1ZSwgaSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpOworICAgIH0KK30KKwordm9p
ZCBTdGF0aWNDU1NWYWx1ZVBvb2w6OmluaXQoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlS2V5OworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdKCkgeworICAgICAgICBz
dGF0aWNDU1NWYWx1ZVBvb2wuY29uc3RydWN0KCk7CisgICAgfSk7CiB9CiAKIENTU1ZhbHVlUG9v
bDo6Q1NTVmFsdWVQb29sKCkKLSAgICA6IG1faW5oZXJpdGVkVmFsdWUoQ1NTSW5oZXJpdGVkVmFs
dWU6OmNyZWF0ZSgpKQotICAgICwgbV9pbXBsaWNpdEluaXRpYWxWYWx1ZShDU1NJbml0aWFsVmFs
dWU6OmNyZWF0ZUltcGxpY2l0KCkpCi0gICAgLCBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlKENTU0lu
aXRpYWxWYWx1ZTo6Y3JlYXRlRXhwbGljaXQoKSkKLSAgICAsIG1fdW5zZXRWYWx1ZShDU1NVbnNl
dFZhbHVlOjpjcmVhdGUoKSkKLSAgICAsIG1fcmV2ZXJ0VmFsdWUoQ1NTUmV2ZXJ0VmFsdWU6OmNy
ZWF0ZSgpKQotICAgICwgbV90cmFuc3BhcmVudENvbG9yKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUoQ29sb3IoQ29sb3I6OnRyYW5zcGFyZW50KSkpCi0gICAgLCBtX3doaXRlQ29sb3IoQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZShDb2xvcihDb2xvcjo6d2hpdGUpKSkKLSAgICAsIG1fYmxhY2tD
b2xvcihDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKENvbG9yKENvbG9yOjpibGFjaykpKQogewot
ICAgIG1faWRlbnRpZmllclZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bUNTU1ZhbHVl
S2V5d29yZHMpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DU1NWYWx1ZUtleXdv
cmRzOyArK2kpCi0gICAgICAgIG1faWRlbnRpZmllclZhbHVlcy51bmNoZWNrZWRBcHBlbmQoQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihpKSkpOworICAg
IFN0YXRpY0NTU1ZhbHVlUG9vbDo6aW5pdCgpOworfQogCi0gICAgbV9waXhlbFZhbHVlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUgKyAxKTsKLSAg
ICBtX3BlcmNlbnRWYWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtYXhpbXVtQ2FjaGVhYmxl
SW50ZWdlclZhbHVlICsgMSk7Ci0gICAgbV9udW1iZXJWYWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShtYXhpbXVtQ2FjaGVhYmxlSW50ZWdlclZhbHVlICsgMSk7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IChtYXhpbXVtQ2FjaGVhYmxlSW50ZWdlclZhbHVlICsgMSk7ICsraSkgewot
ICAgICAgICBtX3BpeGVsVmFsdWVzLnVuY2hlY2tlZEFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKGksIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKLSAgICAgICAgbV9wZXJjZW50VmFsdWVz
LnVuY2hlY2tlZEFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGksIENTU1VuaXRUeXBl
OjpDU1NfUEVSQ0VOVEFHRSkpOwotICAgICAgICBtX251bWJlclZhbHVlcy51bmNoZWNrZWRBcHBl
bmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShpLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikp
OwotICAgIH0KK0NTU1ZhbHVlUG9vbCYgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1Zh
bHVlUG9vbD4gcG9vbDsKKyAgICByZXR1cm4gcG9vbDsKIH0KIAogUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlkZW50
KQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlkZW50ID49IGZpcnN0Q1NTVmFsdWVLZXl3b3JkICYm
IGlkZW50IDw9IGxhc3RDU1NWYWx1ZUtleXdvcmQpOwotICAgIHJldHVybiBtX2lkZW50aWZpZXJW
YWx1ZXNbaWRlbnRdLmdldCgpOworICAgIHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faWRl
bnRpZmllclZhbHVlc1tpZGVudF0uZ2V0KCk7CiB9CiAKIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4g
Q1NTVmFsdWVQb29sOjpjcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudCkK
QEAgLTgwLDEyICs5MywxMiBAQCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9vbDo6
Y3JlYXRlQ29sb3JWYWx1ZShjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgLy8gVGhlc2UgYXJl
IHRoZSBlbXB0eSBhbmQgZGVsZXRlZCB2YWx1ZXMgb2YgdGhlIGhhc2ggdGFibGUuCiAgICAgaWYg
KGNvbG9yID09IENvbG9yOjp0cmFuc3BhcmVudCkKLSAgICAgICAgcmV0dXJuIG1fdHJhbnNwYXJl
bnRDb2xvci5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV90cmFu
c3BhcmVudENvbG9yLmdldCgpOwogICAgIGlmIChjb2xvciA9PSBDb2xvcjo6d2hpdGUpCi0gICAg
ICAgIHJldHVybiBtX3doaXRlQ29sb3IuZ2V0KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNDU1NW
YWx1ZVBvb2wtPm1fd2hpdGVDb2xvci5nZXQoKTsKICAgICAvLyBKdXN0IGJlY2F1c2UgaXQgaXMg
Y29tbW9uLgogICAgIGlmIChjb2xvciA9PSBDb2xvcjo6YmxhY2spCi0gICAgICAgIHJldHVybiBt
X2JsYWNrQ29sb3IuZ2V0KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1f
YmxhY2tDb2xvci5nZXQoKTsKIAogICAgIC8vIFJlbW92ZSBvbmUgZW50cnkgYXQgcmFuZG9tIGlm
IHRoZSBjYWNoZSBncm93cyB0b28gbGFyZ2UuCiAgICAgLy8gRklYTUU6IFVzZSBUaW55TFJVQ2Fj
aGUgaW5zdGVhZD8KQEAgLTEwMiw3ICsxMTUsNyBAQCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENT
U1ZhbHVlUG9vbDo6Y3JlYXRlVmFsdWUoZG91YmxlIHZhbHVlLCBDU1NVbml0VHlwZSB0eXBlKQog
ewogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKHZhbHVlKSk7CiAKLSAgICBpZiAodmFsdWUgPCAw
IHx8IHZhbHVlID4gbWF4aW11bUNhY2hlYWJsZUludGVnZXJWYWx1ZSkKKyAgICBpZiAodmFsdWUg
PCAwIHx8IHZhbHVlID4gU3RhdGljQ1NTVmFsdWVQb29sOjptYXhpbXVtQ2FjaGVhYmxlSW50ZWdl
clZhbHVlKQogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
dHlwZSk7CiAKICAgICBpbnQgaW50VmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlKTsKQEAg
LTExMSwxMSArMTI0LDExIEBAIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTVmFsdWVQb29sOjpj
cmVhdGVWYWx1ZShkb3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHR5cGUpCiAKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6Ci0gICAgICAgIHJldHVybiBt
X3BpeGVsVmFsdWVzW2ludFZhbHVlXS5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY0NTU1Zh
bHVlUG9vbC0+bV9waXhlbFZhbHVlc1tpbnRWYWx1ZV0uZ2V0KCk7CiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1BFUkNFTlRBR0U6Ci0gICAgICAgIHJldHVybiBtX3BlcmNlbnRWYWx1ZXNbaW50
VmFsdWVdLmdldCgpOworICAgICAgICByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3BlcmNl
bnRWYWx1ZXNbaW50VmFsdWVdLmdldCgpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1C
RVI6Ci0gICAgICAgIHJldHVybiBtX251bWJlclZhbHVlc1tpbnRWYWx1ZV0uZ2V0KCk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fbnVtYmVyVmFsdWVzW2ludFZhbHVlXS5n
ZXQoKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgdHlwZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCmluZGV4
IDI5OGM4MjU0YzE2ZjBhNWMzNmUzMDE3ZDUzZTg3YTk2ZjYzYjE1ZGIuLmNjZTU5ZTRhZTBiYWZj
YzA0YWM1ZGFmMWFlNWFiMWU0Y2RjZjZkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmgK
QEAgLTM3LDE1ICszNyw0NCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nSGFzaC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1ZhbHVlTGlzdDsKK2NsYXNzIENTU1ZhbHVl
UG9vbDsKIAogZW51bSBjbGFzcyBGcm9tU3lzdGVtRm9udElEIHsgTm8sIFllcyB9OwogCitjbGFz
cyBTdGF0aWNDU1NWYWx1ZVBvb2wgeworICAgIGZyaWVuZCBjbGFzcyBDU1NWYWx1ZVBvb2w7Cisg
ICAgZnJpZW5kIGNsYXNzIFdURjo6TGF6eU5ldmVyRGVzdHJveWVkPFN0YXRpY0NTU1ZhbHVlUG9v
bD47CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgaW5pdCgpOworCitwcml2YXRlOgorICAgIFN0
YXRpY0NTU1ZhbHVlUG9vbCgpOworCisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRl
ZFZhbHVlPiBtX2luaGVyaXRlZFZhbHVlOworICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0
aWFsVmFsdWU+IG1faW1wbGljaXRJbml0aWFsVmFsdWU7CisgICAgTGF6eU5ldmVyRGVzdHJveWVk
PENTU0luaXRpYWxWYWx1ZT4gbV9leHBsaWNpdEluaXRpYWxWYWx1ZTsKKyAgICBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT4gbV91bnNldFZhbHVlOworICAgIExhenlOZXZlckRlc3Ry
b3llZDxDU1NSZXZlcnRWYWx1ZT4gbV9yZXZlcnRWYWx1ZTsKKworICAgIExhenlOZXZlckRlc3Ry
b3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3BhcmVudENvbG9yOworICAgIExhenlOZXZl
ckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93aGl0ZUNvbG9yOworICAgIExhenlOZXZl
ckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9ibGFja0NvbG9yOworCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbnQgbWF4aW11bUNhY2hlYWJsZUludGVnZXJWYWx1ZSA9IDI1NTsKKworICAg
IExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9waXhlbFZhbHVlc1ttYXhp
bXVtQ2FjaGVhYmxlSW50ZWdlclZhbHVlICsgMV07CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENT
U1ByaW1pdGl2ZVZhbHVlPiBtX3BlcmNlbnRWYWx1ZXNbbWF4aW11bUNhY2hlYWJsZUludGVnZXJW
YWx1ZSArIDFdOworICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9u
dW1iZXJWYWx1ZXNbbWF4aW11bUNhY2hlYWJsZUludGVnZXJWYWx1ZSArIDFdOworICAgIExhenlO
ZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9pZGVudGlmaWVyVmFsdWVzW251bUNT
U1ZhbHVlS2V5d29yZHNdOworfTsKKworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIExhenlOZXZlckRl
c3Ryb3llZDxTdGF0aWNDU1NWYWx1ZVBvb2w+IHN0YXRpY0NTU1ZhbHVlUG9vbDsKKwogY2xhc3Mg
Q1NTVmFsdWVQb29sIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAg
LTU1LDExICs4NCwxMSBAQCBjbGFzcyBDU1NWYWx1ZVBvb2wgewogCiAgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gY3JlYXRlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVm
PENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVGb250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwg
RnJvbVN5c3RlbUZvbnRJRCA9IEZyb21TeXN0ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5o
ZXJpdGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRlZFZhbHVlKCkgeyByZXR1cm4gbV9pbmhlcml0ZWRW
YWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKCkgeyByZXR1cm4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAg
IFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4gbV9leHBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZhbHVl
PiBjcmVhdGVVbnNldFZhbHVlKCkgeyByZXR1cm4gbV91bnNldFZhbHVlLmdldCgpOyB9Ci0gICAg
UmVmPENTU1JldmVydFZhbHVlPiBjcmVhdGVSZXZlcnRWYWx1ZSgpIHsgcmV0dXJuIG1fcmV2ZXJ0
VmFsdWUuZ2V0KCk7IH0KKyAgICBSZWY8Q1NTSW5oZXJpdGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRl
ZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2luaGVyaXRlZFZhbHVlLmdl
dCgpOyB9CisgICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFs
dWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGljaXRJbml0aWFsVmFsdWUu
Z2V0KCk7IH0KKyAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBjcmVhdGVFeHBsaWNpdEluaXRpYWxW
YWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9leHBsaWNpdEluaXRpYWxWYWx1
ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NVbnNldFZhbHVlPiBjcmVhdGVVbnNldFZhbHVlKCkgeyBy
ZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vuc2V0VmFsdWUuZ2V0KCk7IH0KKyAgICBSZWY8
Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFs
dWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVl
PiBjcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8
Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NQcm9wZXJ0eUlEIGlk
ZW50aWZpZXIpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlQ29sb3JWYWx1ZShj
b25zdCBDb2xvciYpOwpAQCAtODIsMjMgKzExMSw2IEBAIGNsYXNzIENTU1ZhbHVlUG9vbCB7CiAg
ICAgRm9udEZhbWlseVZhbHVlQ2FjaGUgbV9mb250RmFtaWx5VmFsdWVDYWNoZTsKIAogICAgIGZy
aWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPENTU1ZhbHVlUG9vbD47Ci0KLSAgICBSZWY8
Q1NTSW5oZXJpdGVkVmFsdWU+IG1faW5oZXJpdGVkVmFsdWU7Ci0gICAgUmVmPENTU0luaXRpYWxW
YWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKLSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBt
X2V4cGxpY2l0SW5pdGlhbFZhbHVlOwotICAgIFJlZjxDU1NVbnNldFZhbHVlPiBtX3Vuc2V0VmFs
dWU7Ci0gICAgUmVmPENTU1JldmVydFZhbHVlPiBtX3JldmVydFZhbHVlOwotCi0gICAgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBtX3RyYW5zcGFyZW50Q29sb3I7Ci0gICAgUmVmPENTU1ByaW1pdGl2
ZVZhbHVlPiBtX3doaXRlQ29sb3I7Ci0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2JsYWNr
Q29sb3I7Ci0KLSAgICBzdGF0aWMgY29uc3QgaW50IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFs
dWUgPSAyNTU7Ci0KLSAgICBWZWN0b3I8UmVmPENTU1ByaW1pdGl2ZVZhbHVlPj4gbV9waXhlbFZh
bHVlczsKLSAgICBWZWN0b3I8UmVmPENTU1ByaW1pdGl2ZVZhbHVlPj4gbV9wZXJjZW50VmFsdWVz
OwotICAgIFZlY3RvcjxSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+PiBtX251bWJlclZhbHVlczsKLSAg
ICBWZWN0b3I8UmVmPENTU1ByaW1pdGl2ZVZhbHVlPj4gbV9pZGVudGlmaWVyVmFsdWVzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390588</attachid>
            <date>2020-02-12 16:34:57 -0800</date>
            <delta_ts>2020-02-12 16:50:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207666-20200212163456.patch</filename>
            <type>text/plain</type>
            <size>20509</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI1OWQwMmVhOGFmYTg2
MjkyYjU0NmI5YjUxZGExMjAxMThkZTgyYi4uZWQ4Njg2MDZjZjQ3NTZhM2QxNDUzYWVhNDVkNzcx
NWU2ZjU5NjI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAyLTEyICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTVmFsdWVQb29sJ3Mg
Y29uc3RhbnQgQ1NTIHZhbHVlcyBzaG91bGQgbm90IGJlIGFsbG9jYXRlZCBkeW5hbWljYWxseSAo
YW5kIHNhbWUgZm9yIFZlY3RvcnMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDc2NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICByMjUyNzg1IGNoYW5nZXMgY29udGVudHMgKENTU1ZhbHVlcyBhbmQgVmVj
dG9ycykgb2YgQ1NTVmFsdWVQb29sIGZyb20gc3RhdGljIG9uZXMgdG8KKyAgICAgICAgZHluYW1p
Y2FsbHkgYWxsb2NhdGVkIG9uZXMuIFRoaXMgd2FzIGRvbmUgc2luY2Ugd2Ugd291bGQgbGlrZSB0
byB1c2Ugc3RhdGljIENTU1ZhbHVlcworICAgICAgICBldmVuIGluIHRoZSBvdGhlciB0aHJlYWRz
ICh3b3JrZXJzIGV0Yy4pIGZvciBPZmZzY3JlZW5DYW52YXMgZmVhdHVyZS4KKworICAgICAgICBC
dXQgdGhpcyBjYXVzZXMgbWVtb3J5IHJlZ3Jlc3Npb24gaW4gTWVtYnVzdGVyIHNpbmNlIHdlIGFs
bG9jYXRlcyBtYW55IENTU1ZhbHVlcyBhbmQKKyAgICAgICAgbGFyZ2UgVmVjdG9ycywgYW5kIHRo
ZXkgYXJlIGtlcHQgcGVyc2lzdGVudGx5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBk
eW5hbWljIGFsbG9jYXRpb24gcGFydCBvZiByMjUyNzg1IHRvIHJlY292ZXIgbWVtb3J5IHJlZ3Jl
c3Npb24uCisgICAgICAgIFRoZSBrZXkgb2YgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBTdGF0
aWMgQ1NTVmFsdWUgZmVhdHVyZS4gV2hlbiBpbmNyZW1lbnRpbmcgLyBkZWNyZW1lbnRpbmcKKyAg
ICAgICAgbV9yZWZDb3VudCBvZiBDU1NWYWx1ZSwgd2UgYWRkIC8gc3VidHJhY3QgYnkgMHgyLiBB
bmQgd2UgcHV0IDB4MSBhcyBhIHN0YXRpYy1mbGFnLiBTbywgZXZlbiBpZgorICAgICAgICB0aGlz
IENTU1ZhbHVlIGlzIHVzZWQgYnkgbXVsdGlwbGUgdGhyZWFkcywgd2UgbmV2ZXIgc2VlIHRoYXQg
Q1NTVmFsdWUgZ2V0cyAwIG1fcmVmQ291bnQgaWYKKyAgICAgICAgaXQgaXMgbWFya2VkIGFzIHN0
YXRpYyAoaGF2aW5nIDB4MSkuIFRoaXMgaXMgdGhlIHNhbWUgZGVzaWduIHRvIG91ciBzdGF0aWMg
U3RyaW5nSW1wbC4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBj
c3MvQ1NTSW5oZXJpdGVkVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTSW5pdGlhbFZhbHVlLmg6
CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1JldmVydFZhbHVlLmg6CisgICAg
ICAgICogY3NzL0NTU1Vuc2V0VmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgor
ICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnJl
ZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aGFzT25lUmVmIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpyZWZDb3VudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6aGFzQXRMZWFzdE9uZVJlZiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZTo6ZGVyZWYpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Om1ha2VT
dGF0aWMpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0aWNDU1NWYWx1ZVBvb2wpOgorICAgICAgICAoV2Vi
Q29yZTo6U3RhdGljQ1NTVmFsdWVQb29sOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlUG9vbDo6Q1NTVmFsdWVQb29sKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSWRlbnRp
ZmllclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlQ29sb3JW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZVZhbHVlKToKKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVQb29sLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBv
b2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9v
bDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVQb29sOjpjcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NWYWx1ZVBvb2w6OmNyZWF0ZVVuc2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVQb29sOjpjcmVhdGVSZXZlcnRWYWx1ZSk6CisKIDIwMjAtMDItMTIgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBTaHJpbmsgQ2FjaGVkUmVzb3VyY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKaW5kZXggZmExYmRkOTVlNWI4ODFhODE0
MzEzN2ViMjI4NDUyYjIwYWMxMTFjZC4uYjUyYjkxNTRhYTIyOGQ1MTA5ZWJiNDAwZjJlOTlkZGRl
ZWZkZDQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKQEAgLTI2LDE2
ICsyNiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU0luaGVyaXRlZFZhbHVl
IGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENTU0lu
aGVyaXRlZFZhbHVlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU0luaGVyaXRl
ZFZhbHVlKCkpOyB9Ci0KICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwogCiAgICAg
Ym9vbCBlcXVhbHMoY29uc3QgQ1NTSW5oZXJpdGVkVmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKIHByaXZhdGU6Ci0gICAgQ1NTSW5oZXJpdGVkVmFsdWUoKQorICAgIGZyaWVuZCBMYXp5
TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5oZXJpdGVkVmFsdWU+OworICAgIENTU0luaGVyaXRlZFZhbHVl
KFN0YXRpY0NTU1ZhbHVlVGFnKQogICAgICAgICA6IENTU1ZhbHVlKEluaGVyaXRlZENsYXNzKQog
ICAgIHsKKyAgICAgICAgbWFrZVN0YXRpYygpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbml0aWFsVmFsdWUuaAppbmRleCA0ZjJjOWNmNzFhMzNhYmNjZjEzODNhMDY5ZjRlNDU4MTdk
MzAxYzE5Li45NGZiNzZmMjUxZjI0NGYxNTFjYTcyODEyMmJjMTJhNDRhOWJhN2EyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oCkBAIC0yNiwxNSArMjYsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENTU0luaXRpYWxWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1
ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUV4cGxp
Y2l0KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0luaXRpYWxWYWx1
ZSgvKiBpbXBsaWNpdCAqLyBmYWxzZSkpOwotICAgIH0KLSAgICBzdGF0aWMgUmVmPENTU0luaXRp
YWxWYWx1ZT4gY3JlYXRlSW1wbGljaXQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTSW5pdGlhbFZhbHVlKC8qIGltcGxpY2l0ICovIHRydWUpKTsKLSAgICB9Ci0KICAg
ICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwogCiAgICAgYm9vbCBpc0ltcGxpY2l0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0ltcGxpY2l0OyB9CkBAIC00MywxMCArMzQsMTEgQEAgY2xhc3Mg
Q1NTSW5pdGlhbFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKIAogcHJpdmF0ZToKICAg
ICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT47Ci0gICAgQ1NTSW5p
dGlhbFZhbHVlKGJvb2wgaW1wbGljaXQpCisgICAgQ1NTSW5pdGlhbFZhbHVlKFN0YXRpY0NTU1Zh
bHVlVGFnLCBib29sIGltcGxpY2l0KQogICAgICAgICA6IENTU1ZhbHVlKEluaXRpYWxDbGFzcykK
ICAgICAgICAgLCBtX2lzSW1wbGljaXQoaW1wbGljaXQpCiAgICAgeworICAgICAgICBtYWtlU3Rh
dGljKCk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKaW5kZXggODVjZjc3ODI3MzU2NTkxNjY3Y2VjNTc4Mjk3YWNkZjRhMGNhNGJmZS4u
Zjk1YWNjNDllMWFkYzFmOWYwZGNmMmNkNzM5N2UyNGJhZmE1YjQzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0zMDYsNiArMzA2LDI0IEBAIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBMZW5ndGhTaXplJiBsZW5ndGhTaXpl
LCBjb25zdCBSZW5kZXJTCiAgICAgaW5pdChsZW5ndGhTaXplLCBzdHlsZSk7CiB9CiAKK0NTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgQ1NTVmFs
dWVJRCB2YWx1ZUlEKQorICAgIDogQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWVJRCkKK3sKKyAgICBt
YWtlU3RhdGljKCk7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShT
dGF0aWNDU1NWYWx1ZVRhZywgY29uc3QgQ29sb3ImIGNvbG9yKQorICAgIDogQ1NTUHJpbWl0aXZl
VmFsdWUoY29sb3IpCit7CisgICAgbWFrZVN0YXRpYygpOworfQorCitDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIGRvdWJsZSBudW0sIENTU1Vu
aXRUeXBlIHR5cGUpCisgICAgOiBDU1NQcmltaXRpdmVWYWx1ZShudW0sIHR5cGUpCit7CisgICAg
bWFrZVN0YXRpYygpOworfQorCiB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KGNvbnN0IExl
bmd0aCYgbGVuZ3RoKQogewogICAgIHN3aXRjaCAobGVuZ3RoLnR5cGUoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCA0NzQ2YWM4ZDA3ZmNkM2U0NmI2NmM4ODBl
OTlhZjFmMjJlMDU1NGMxLi4wZjNiZmMwNzJiZDMzMGZiYzYwZTFkNzNhZmFmYjZiNGNhOWRiY2E5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMjE4LDYgKzIxOCwx
MCBAQCBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiAg
ICAgQ1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgU3RyaW5nJiwgQ1NTVW5pdFR5cGUpOwogICAgIENT
U1ByaW1pdGl2ZVZhbHVlKGRvdWJsZSwgQ1NTVW5pdFR5cGUpOwogCisgICAgQ1NTUHJpbWl0aXZl
VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIENTU1ZhbHVlSUQpOworICAgIENTU1ByaW1pdGl2ZVZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBjb25zdCBDb2xvciYpOworICAgIENTU1ByaW1pdGl2ZVZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBkb3VibGUsIENTU1VuaXRUeXBlKTsKKwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IENTU1ByaW1pdGl2ZVZhbHVlKFQpOyAvLyBEZWZpbmVkIGluIENTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IENTU1ByaW1p
dGl2ZVZhbHVlKFJlZlB0cjxUPiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NQcmlt
aXRpdmVWYWx1ZShSZWY8VD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oCmluZGV4
IGExMjZjYmJiZTIyNzhiOWU1MDcwYTg2YmQzNTkwMmIzNjg4OTRiZTcuLjE3NWIyNGQ3MjM3ZDdl
ZmE2ZTMzNTJhZjZjMzU4NDc1MzYzZjFjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NSZXZlcnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1
ZS5oCkBAIC0zMSwxNiArMzEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NS
ZXZlcnRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxDU1NSZXZlcnRWYWx1ZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NS
ZXZlcnRWYWx1ZSgpKTsgfQotCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKIAog
ICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCiBwcml2YXRlOgotICAgIENTU1JldmVydFZhbHVlKCkKKyAgICBmcmllbmQgTGF6eU5l
dmVyRGVzdHJveWVkPENTU1JldmVydFZhbHVlPjsKKyAgICBDU1NSZXZlcnRWYWx1ZShTdGF0aWND
U1NWYWx1ZVRhZykKICAgICAgICAgOiBDU1NWYWx1ZShSZXZlcnRDbGFzcykKICAgICB7CisgICAg
ICAgIG1ha2VTdGF0aWMoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUu
aAppbmRleCA1MzMwNTE4ZmU0OWUyZjZmYWJhNjkzYjliYjBiYjk5NTdhNGU2MTFlLi5iNjUyNWM4
ZGEyMGQ1OTllYzJkNDM0ZTQ3ZWQ0ODlkNmMzOTJkNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNl
dFZhbHVlLmgKQEAgLTMxLDE2ICszMSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENTU1Vuc2V0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8Q1NTVW5zZXRWYWx1ZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NVbnNldFZhbHVlKCkpOyB9Ci0KICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0Owog
CiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTVW5zZXRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAogcHJpdmF0ZToKLSAgICBDU1NVbnNldFZhbHVlKCkKKyAgICBmcmllbmQgTGF6eU5l
dmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OworICAgIENTU1Vuc2V0VmFsdWUoU3RhdGljQ1NT
VmFsdWVUYWcpCiAgICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFzcykKICAgICB7CisgICAgICAg
IG1ha2VTdGF0aWMoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCA2
ZmE2NjBhOWVhNzAzMDJmODdkYTIyNzgxODcxMjg4YjU0YjJiYTlmLi40YjlmMDFhMmVjOTA5YjYy
OWE0MTg2Nzk1ZWViZmExYmMzOTdhYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTc0
LDcgKzc0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgU2FtZVNpemVBc0NT
U1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U2FtZVNpemVBc0NTU1ZhbHVlPiB7CitzdHJ1Y3Qg
U2FtZVNpemVBc0NTU1ZhbHVlIHsKKyAgICB1aW50MzJfdCByZWZDb3VudDsKICAgICB1aW50MzJf
dCBiaXRmaWVsZHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDk0MjhhOTUwZmQxOWQz
ODQ4MjNkOGI0ZDBiNGE0YzE5YmJkODRkNzUuLmEzMGI5Y2UwOTk1ZTVjMmRmYmMyMmJlMzAzMGYx
NDY3NjU5ZmUyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0zOSw3ICszOSw4IEBAIGNsYXNz
IFN0eWxlU2hlZXRDb250ZW50czsKIGVudW0gQ1NTUHJvcGVydHlJRCA6IHVpbnQxNl90OwogCiBE
RUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7Ci1jbGFzcyBD
U1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVlPiB7CitjbGFzcyBDU1NWYWx1ZSB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTVmFsdWUpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKENTU1ZhbHVlKTsKIHB1YmxpYzoKICAgICBl
bnVtIFR5cGUgewpAQCAtNTIsMTIgKzUzLDI2IEBAIGNsYXNzIENTU1ZhbHVlIDogcHVibGljIFJl
ZkNvdW50ZWQ8Q1NTVmFsdWU+IHsKICAgICAgICAgQ1NTX1JFVkVSVCA9IDYKICAgICB9OwogCi0g
ICAgLy8gT3ZlcnJpZGUgUmVmQ291bnRlZCdzIGRlcmVmKCkgdG8gZW5zdXJlIG9wZXJhdG9yIGRl
bGV0ZSBpcyBjYWxsZWQgb24KLSAgICAvLyB0aGUgYXBwcm9wcmlhdGUgc3ViY2xhc3MgdHlwZS4K
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHJlZkNvdW50RmxhZ0lzU3RhdGljID0gMHgx
OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgcmVmQ291bnRJbmNyZW1lbnQgPSAweDI7
IC8vIFRoaXMgYWxsb3dzIHVzIHRvIHJlZiAvIGRlcmVmIHdpdGhvdXQgZGlzdHVyYmluZyB0aGUg
c3RhdGljIENTU1ZhbHVlIGZsYWcuCisgICAgdm9pZCByZWYoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgbV9yZWZDb3VudCArPSByZWZDb3VudEluY3JlbWVudDsKKyAgICB9CisgICAgYm9vbCBoYXNP
bmVSZWYoKSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50ID09IHJlZkNvdW50SW5jcmVtZW50OyB9
CisgICAgdW5zaWduZWQgcmVmQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50IC8gcmVm
Q291bnRJbmNyZW1lbnQ7IH0KKyAgICBib29sIGhhc0F0TGVhc3RPbmVSZWYoKSBjb25zdCB7IHJl
dHVybiBtX3JlZkNvdW50OyB9CisKICAgICB2b2lkIGRlcmVmKCkKICAgICB7Ci0gICAgICAgIGlm
IChkZXJlZkJhc2UoKSkKKyAgICAgICAgLy8gQ3VzdG9pemVkIGRlcmVmKCkgdG8gZW5zdXJlIG9w
ZXJhdG9yIGRlbGV0ZSBpcyBjYWxsZWQgb24KKyAgICAgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1
YmNsYXNzIHR5cGUuCisgICAgICAgIHVuc2lnbmVkIHRlbXBSZWZDb3VudCA9IG1fcmVmQ291bnQg
LSByZWZDb3VudEluY3JlbWVudDsKKyAgICAgICAgaWYgKCF0ZW1wUmVmQ291bnQpIHsKICAgICAg
ICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBtX3JlZkNvdW50ID0gdGVtcFJlZkNvdW50OwogICAgIH0KIAogICAgIFR5cGUgY3NzVmFsdWVU
eXBlKCkgY29uc3Q7CkBAIC0yMTQsNiArMjI5LDcgQEAgY2xhc3MgQ1NTVmFsdWUgOiBwdWJsaWMg
UmVmQ291bnRlZDxDU1NWYWx1ZT4gewogICAgICAgICBDb21tYVNlcGFyYXRvciwKICAgICAgICAg
U2xhc2hTZXBhcmF0b3IKICAgICB9OworICAgIGVudW0gU3RhdGljQ1NTVmFsdWVUYWcgeyBTdGF0
aWNDU1NWYWx1ZSB9OwogCiBwcm90ZWN0ZWQ6CiAgICAgQ2xhc3NUeXBlIGNsYXNzVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENsYXNzVHlwZT4obV9jbGFzc1R5cGUpOyB9CkBAIC0y
MjcsNiArMjQzLDExIEBAIGNsYXNzIENTU1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTVmFs
dWU+IHsKICAgICB7CiAgICAgfQogCisgICAgdm9pZCBtYWtlU3RhdGljKCkKKyAgICB7CisgICAg
ICAgIG1fcmVmQ291bnQgfD0gcmVmQ291bnRGbGFnSXNTdGF0aWM7CisgICAgfQorCiAgICAgLy8g
Tk9URTogVGhpcyBjbGFzcyBpcyBub24tdmlydHVhbCBmb3IgbWVtb3J5IGFuZCBwZXJmb3JtYW5j
ZSByZWFzb25zLgogICAgIC8vIERvbid0IGdvIG1ha2luZyBpdCB2aXJ0dWFsIGFnYWluIHVubGVz
cyB5b3Uga25vdyBleGFjdGx5IHdoYXQgeW91J3JlIGRvaW5nIQogCkBAIC0yMzUsMTAgKzI1Niwx
MCBAQCBjbGFzcyBDU1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVlPiB7CiBwcml2
YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveSgpOwogCisgICAgbXV0YWJsZSB1
bnNpZ25lZCBtX3JlZkNvdW50IHsgcmVmQ291bnRJbmNyZW1lbnQgfTsKIHByb3RlY3RlZDoKICAg
ICAvLyBUaGUgYml0cyBpbiB0aGlzIHNlY3Rpb24gYXJlIG9ubHkgdXNlZCBieSBzcGVjaWZpYyBz
dWJjbGFzc2VzIGJ1dCBrZXB0IGhlcmUKICAgICAvLyB0byBtYXhpbWl6ZSBzdHJ1Y3QgcGFja2lu
Zy4KLQogICAgIC8vIENTU1ByaW1pdGl2ZVZhbHVlIGJpdHM6CiAgICAgdW5zaWduZWQgbV9wcmlt
aXRpdmVVbml0VHlwZSA6IDc7IC8vIENTU1VuaXRUeXBlCiAgICAgbXV0YWJsZSB1bnNpZ25lZCBt
X2hhc0NhY2hlZENTU1RleHQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAppbmRl
eCA1MTcyMGY1YWQ3OTE1YTE0OWViNTk0ZDM0MWJjMTdkMWI0ZWUwOWE4Li5jMjE4M2I0MWQzN2Zh
Y2M2ZDhmNzUxMmU2NTkyMWI3OTBmNmM4MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29s
LmNwcApAQCAtMzQsNDEgKzM0LDU0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ1NTVmFs
dWVQb29sJiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpCitMYXp5TmV2ZXJEZXN0cm95ZWQ8U3Rh
dGljQ1NTVmFsdWVQb29sPiBzdGF0aWNDU1NWYWx1ZVBvb2w7CisKK1N0YXRpY0NTU1ZhbHVlUG9v
bDo6U3RhdGljQ1NTVmFsdWVQb29sKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NWYWx1ZVBvb2w+IHBvb2w7Ci0gICAgcmV0dXJu
IHBvb2w7CisgICAgbV9pbmhlcml0ZWRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NT
U1ZhbHVlKTsKKyAgICBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6
U3RhdGljQ1NTVmFsdWUsIHRydWUpOworICAgIG1fZXhwbGljaXRJbml0aWFsVmFsdWUuY29uc3Ry
dWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgZmFsc2UpOworICAgIG1fdW5zZXRWYWx1ZS5j
b25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKKyAgICBtX3JldmVydFZhbHVlLmNv
bnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOworCisgICAgbV90cmFuc3BhcmVudENv
bG9yLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENvbG9yKENvbG9yOjp0cmFu
c3BhcmVudCkpOworICAgIG1fd2hpdGVDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NT
U1ZhbHVlLCBDb2xvcihDb2xvcjo6d2hpdGUpKTsKKyAgICBtX2JsYWNrQ29sb3IuY29uc3RydWN0
KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3IoQ29sb3I6OmJsYWNrKSk7CisKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBmaXJzdENTU1ZhbHVlS2V5d29yZDsgaSA8PSBsYXN0Q1NTVmFsdWVL
ZXl3b3JkOyArK2kpCisgICAgICAgIG1faWRlbnRpZmllclZhbHVlc1tpXS5jb25zdHJ1Y3QoQ1NT
VmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlEPihpKSk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUg
KyAxKTsgKytpKSB7CisgICAgICAgIG1fcGl4ZWxWYWx1ZXNbaV0uY29uc3RydWN0KENTU1ZhbHVl
OjpTdGF0aWNDU1NWYWx1ZSwgaSwgQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgICAgIG1fcGVy
Y2VudFZhbHVlc1tpXS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBpLCBDU1NV
bml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UpOworICAgICAgICBtX251bWJlclZhbHVlc1tpXS5jb25z
dHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBpLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJF
Uik7CisgICAgfQorfQorCit2b2lkIFN0YXRpY0NTU1ZhbHVlUG9vbDo6aW5pdCgpCit7CisgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUtl
eSwgW10oKSB7CisgICAgICAgIHN0YXRpY0NTU1ZhbHVlUG9vbC5jb25zdHJ1Y3QoKTsKKyAgICB9
KTsKIH0KIAogQ1NTVmFsdWVQb29sOjpDU1NWYWx1ZVBvb2woKQotICAgIDogbV9pbmhlcml0ZWRW
YWx1ZShDU1NJbmhlcml0ZWRWYWx1ZTo6Y3JlYXRlKCkpCi0gICAgLCBtX2ltcGxpY2l0SW5pdGlh
bFZhbHVlKENTU0luaXRpYWxWYWx1ZTo6Y3JlYXRlSW1wbGljaXQoKSkKLSAgICAsIG1fZXhwbGlj
aXRJbml0aWFsVmFsdWUoQ1NTSW5pdGlhbFZhbHVlOjpjcmVhdGVFeHBsaWNpdCgpKQotICAgICwg
bV91bnNldFZhbHVlKENTU1Vuc2V0VmFsdWU6OmNyZWF0ZSgpKQotICAgICwgbV9yZXZlcnRWYWx1
ZShDU1NSZXZlcnRWYWx1ZTo6Y3JlYXRlKCkpCi0gICAgLCBtX3RyYW5zcGFyZW50Q29sb3IoQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpKSkKLSAgICAs
IG1fd2hpdGVDb2xvcihDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKENvbG9yKENvbG9yOjp3aGl0
ZSkpKQotICAgICwgbV9ibGFja0NvbG9yKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoQ29sb3Io
Q29sb3I6OmJsYWNrKSkpCiB7Ci0gICAgbV9pZGVudGlmaWVyVmFsdWVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkobnVtQ1NTVmFsdWVLZXl3b3Jkcyk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG51bUNTU1ZhbHVlS2V5d29yZHM7ICsraSkKLSAgICAgICAgbV9pZGVudGlmaWVyVmFsdWVz
LnVuY2hlY2tlZEFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PENT
U1ZhbHVlSUQ+KGkpKSk7CisgICAgU3RhdGljQ1NTVmFsdWVQb29sOjppbml0KCk7Cit9CiAKLSAg
ICBtX3BpeGVsVmFsdWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobWF4aW11bUNhY2hlYWJsZUlu
dGVnZXJWYWx1ZSArIDEpOwotICAgIG1fcGVyY2VudFZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUgKyAxKTsKLSAgICBtX251bWJlclZhbHVl
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUgKyAx
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKG1heGltdW1DYWNoZWFibGVJbnRlZ2Vy
VmFsdWUgKyAxKTsgKytpKSB7Ci0gICAgICAgIG1fcGl4ZWxWYWx1ZXMudW5jaGVja2VkQXBwZW5k
KENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoaSwgQ1NTVW5pdFR5cGU6OkNTU19QWCkpOwotICAg
ICAgICBtX3BlcmNlbnRWYWx1ZXMudW5jaGVja2VkQXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoaSwgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFKSk7Ci0gICAgICAgIG1fbnVtYmVy
VmFsdWVzLnVuY2hlY2tlZEFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGksIENTU1Vu
aXRUeXBlOjpDU1NfTlVNQkVSKSk7Ci0gICAgfQorQ1NTVmFsdWVQb29sJiBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Q1NTVmFsdWVQb29sPiBwb29sOworICAgIHJldHVybiBwb29sOwogfQog
CiBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9vbDo6Y3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlSUQgaWRlbnQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaWRlbnQgPj0gZmly
c3RDU1NWYWx1ZUtleXdvcmQgJiYgaWRlbnQgPD0gbGFzdENTU1ZhbHVlS2V5d29yZCk7Ci0gICAg
cmV0dXJuIG1faWRlbnRpZmllclZhbHVlc1tpZGVudF0uZ2V0KCk7CisgICAgcmV0dXJuIHN0YXRp
Y0NTU1ZhbHVlUG9vbC0+bV9pZGVudGlmaWVyVmFsdWVzW2lkZW50XS5nZXQoKTsKIH0KIAogUmVm
PENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NQcm9wZXJ0eUlEIGlkZW50KQpAQCAtODAsMTIgKzkzLDEyIEBAIFJlZjxDU1NQcmltaXRpdmVW
YWx1ZT4gQ1NTVmFsdWVQb29sOjpjcmVhdGVDb2xvclZhbHVlKGNvbnN0IENvbG9yJiBjb2xvcikK
IHsKICAgICAvLyBUaGVzZSBhcmUgdGhlIGVtcHR5IGFuZCBkZWxldGVkIHZhbHVlcyBvZiB0aGUg
aGFzaCB0YWJsZS4KICAgICBpZiAoY29sb3IgPT0gQ29sb3I6OnRyYW5zcGFyZW50KQotICAgICAg
ICByZXR1cm4gbV90cmFuc3BhcmVudENvbG9yLmdldCgpOworICAgICAgICByZXR1cm4gc3RhdGlj
Q1NTVmFsdWVQb29sLT5tX3RyYW5zcGFyZW50Q29sb3IuZ2V0KCk7CiAgICAgaWYgKGNvbG9yID09
IENvbG9yOjp3aGl0ZSkKLSAgICAgICAgcmV0dXJuIG1fd2hpdGVDb2xvci5nZXQoKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV93aGl0ZUNvbG9yLmdldCgpOwogICAgIC8v
IEp1c3QgYmVjYXVzZSBpdCBpcyBjb21tb24uCiAgICAgaWYgKGNvbG9yID09IENvbG9yOjpibGFj
aykKLSAgICAgICAgcmV0dXJuIG1fYmxhY2tDb2xvci5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY0NTU1ZhbHVlUG9vbC0+bV9ibGFja0NvbG9yLmdldCgpOwogCiAgICAgLy8gUmVtb3ZlIG9u
ZSBlbnRyeSBhdCByYW5kb20gaWYgdGhlIGNhY2hlIGdyb3dzIHRvbyBsYXJnZS4KICAgICAvLyBG
SVhNRTogVXNlIFRpbnlMUlVDYWNoZSBpbnN0ZWFkPwpAQCAtMTAyLDcgKzExNSw3IEBAIFJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gQ1NTVmFsdWVQb29sOjpjcmVhdGVWYWx1ZShkb3VibGUgdmFsdWUs
IENTU1VuaXRUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKHN0ZDo6aXNmaW5pdGUodmFsdWUpKTsK
IAotICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiBtYXhpbXVtQ2FjaGVhYmxlSW50ZWdlclZh
bHVlKQorICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiBTdGF0aWNDU1NWYWx1ZVBvb2w6Om1h
eGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUpCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCB0eXBlKTsKIAogICAgIGludCBpbnRWYWx1ZSA9IHN0YXRpY19j
YXN0PGludD4odmFsdWUpOwpAQCAtMTExLDExICsxMjQsMTEgQEAgUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiBDU1NWYWx1ZVBvb2w6OmNyZWF0ZVZhbHVlKGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUg
dHlwZSkKIAogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
WDoKLSAgICAgICAgcmV0dXJuIG1fcGl4ZWxWYWx1ZXNbaW50VmFsdWVdLmdldCgpOworICAgICAg
ICByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3BpeGVsVmFsdWVzW2ludFZhbHVlXS5nZXQo
KTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRToKLSAgICAgICAgcmV0dXJu
IG1fcGVyY2VudFZhbHVlc1tpbnRWYWx1ZV0uZ2V0KCk7CisgICAgICAgIHJldHVybiBzdGF0aWND
U1NWYWx1ZVBvb2wtPm1fcGVyY2VudFZhbHVlc1tpbnRWYWx1ZV0uZ2V0KCk7CiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKLSAgICAgICAgcmV0dXJuIG1fbnVtYmVyVmFsdWVzW2lu
dFZhbHVlXS5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9udW1i
ZXJWYWx1ZXNbaW50VmFsdWVdLmdldCgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCB0eXBlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVQb29sLmgKaW5kZXggMjk4YzgyNTRjMTZmMGE1YzM2ZTMwMTdkNTNlODdhOTZmNjNi
MTVkYi4uY2NlNTllNGFlMGJhZmNjMDRhYzVkYWYxYWU1YWIxZTRjZGNmNmRkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZVBvb2wuaApAQCAtMzcsMTUgKzM3LDQ0IEBACiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTVmFsdWVM
aXN0OworY2xhc3MgQ1NTVmFsdWVQb29sOwogCiBlbnVtIGNsYXNzIEZyb21TeXN0ZW1Gb250SUQg
eyBObywgWWVzIH07CiAKK2NsYXNzIFN0YXRpY0NTU1ZhbHVlUG9vbCB7CisgICAgZnJpZW5kIGNs
YXNzIENTU1ZhbHVlUG9vbDsKKyAgICBmcmllbmQgY2xhc3MgV1RGOjpMYXp5TmV2ZXJEZXN0cm95
ZWQ8U3RhdGljQ1NTVmFsdWVQb29sPjsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0KCk7
CisKK3ByaXZhdGU6CisgICAgU3RhdGljQ1NTVmFsdWVQb29sKCk7CisKKyAgICBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8Q1NTSW5oZXJpdGVkVmFsdWU+IG1faW5oZXJpdGVkVmFsdWU7CisgICAgTGF6eU5l
dmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKKyAg
ICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPiBtX2V4cGxpY2l0SW5pdGlhbFZh
bHVlOworICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NVbnNldFZhbHVlPiBtX3Vuc2V0VmFsdWU7
CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1JldmVydFZhbHVlPiBtX3JldmVydFZhbHVlOwor
CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3RyYW5zcGFyZW50
Q29sb3I7CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3doaXRl
Q29sb3I7CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2JsYWNr
Q29sb3I7CisKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBtYXhpbXVtQ2FjaGVhYmxlSW50ZWdl
clZhbHVlID0gMjU1OworCisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVl
PiBtX3BpeGVsVmFsdWVzW21heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWUgKyAxXTsKKyAgICBM
YXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcGVyY2VudFZhbHVlc1ttYXhp
bXVtQ2FjaGVhYmxlSW50ZWdlclZhbHVlICsgMV07CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENT
U1ByaW1pdGl2ZVZhbHVlPiBtX251bWJlclZhbHVlc1ttYXhpbXVtQ2FjaGVhYmxlSW50ZWdlclZh
bHVlICsgMV07CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2lk
ZW50aWZpZXJWYWx1ZXNbbnVtQ1NTVmFsdWVLZXl3b3Jkc107Cit9OworCitXRUJDT1JFX0VYUE9S
VCBleHRlcm4gTGF6eU5ldmVyRGVzdHJveWVkPFN0YXRpY0NTU1ZhbHVlUG9vbD4gc3RhdGljQ1NT
VmFsdWVQb29sOworCiBjbGFzcyBDU1NWYWx1ZVBvb2wgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgpAQCAtNTUsMTEgKzg0LDExIEBAIGNsYXNzIENTU1ZhbHVlUG9vbCB7
CiAKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjcmVhdGVGb250RmFjZVZhbHVlKGNvbnN0IEF0
b21TdHJpbmcmKTsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUZvbnRGYW1pbHlW
YWx1ZShjb25zdCBTdHJpbmcmLCBGcm9tU3lzdGVtRm9udElEID0gRnJvbVN5c3RlbUZvbnRJRDo6
Tm8pOwotICAgIFJlZjxDU1NJbmhlcml0ZWRWYWx1ZT4gY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSB7
IHJldHVybiBtX2luaGVyaXRlZFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1
ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBtX2ltcGxpY2l0SW5pdGlh
bFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlRXhwbGljaXRJ
bml0aWFsVmFsdWUoKSB7IHJldHVybiBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmdldCgpOyB9Ci0g
ICAgUmVmPENTU1Vuc2V0VmFsdWU+IGNyZWF0ZVVuc2V0VmFsdWUoKSB7IHJldHVybiBtX3Vuc2V0
VmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVl
KCkgeyByZXR1cm4gbV9yZXZlcnRWYWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NJbmhlcml0ZWRW
YWx1ZT4gY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wt
Pm1faW5oZXJpdGVkVmFsdWUuZ2V0KCk7IH0KKyAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBjcmVh
dGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9p
bXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NJbml0aWFsVmFsdWU+IGNy
ZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5t
X2V4cGxpY2l0SW5pdGlhbFZhbHVlLmdldCgpOyB9CisgICAgUmVmPENTU1Vuc2V0VmFsdWU+IGNy
ZWF0ZVVuc2V0VmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fdW5zZXRWYWx1
ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NSZXZlcnRWYWx1ZT4gY3JlYXRlUmV2ZXJ0VmFsdWUoKSB7
IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fcmV2ZXJ0VmFsdWUuZ2V0KCk7IH0KICAgICBS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlk
ZW50aWZpZXIpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1Byb3BlcnR5SUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVl
PiBjcmVhdGVDb2xvclZhbHVlKGNvbnN0IENvbG9yJik7CkBAIC04MiwyMyArMTExLDYgQEAgY2xh
c3MgQ1NTVmFsdWVQb29sIHsKICAgICBGb250RmFtaWx5VmFsdWVDYWNoZSBtX2ZvbnRGYW1pbHlW
YWx1ZUNhY2hlOwogCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8Q1NTVmFs
dWVQb29sPjsKLQotICAgIFJlZjxDU1NJbmhlcml0ZWRWYWx1ZT4gbV9pbmhlcml0ZWRWYWx1ZTsK
LSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlOwotICAgIFJl
ZjxDU1NJbml0aWFsVmFsdWU+IG1fZXhwbGljaXRJbml0aWFsVmFsdWU7Ci0gICAgUmVmPENTU1Vu
c2V0VmFsdWU+IG1fdW5zZXRWYWx1ZTsKLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IG1fcmV2ZXJ0
VmFsdWU7Ci0KLSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdHJhbnNwYXJlbnRDb2xvcjsK
LSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fd2hpdGVDb2xvcjsKLSAgICBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+IG1fYmxhY2tDb2xvcjsKLQotICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11
bUNhY2hlYWJsZUludGVnZXJWYWx1ZSA9IDI1NTsKLQotICAgIFZlY3RvcjxSZWY8Q1NTUHJpbWl0
aXZlVmFsdWU+PiBtX3BpeGVsVmFsdWVzOwotICAgIFZlY3RvcjxSZWY8Q1NTUHJpbWl0aXZlVmFs
dWU+PiBtX3BlcmNlbnRWYWx1ZXM7Ci0gICAgVmVjdG9yPFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4+
IG1fbnVtYmVyVmFsdWVzOwotICAgIFZlY3RvcjxSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+PiBtX2lk
ZW50aWZpZXJWYWx1ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="406202"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>