<?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>170056</bug_id>
          
          <creation_ts>2017-03-24 09:48:27 -0700</creation_ts>
          <short_desc>[MediaStream] &quot;ideal&quot; constraints passed to getUserMedia should affect fitness score</short_desc>
          <delta_ts>2017-03-24 16:27:21 -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>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1290833</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-24 09:48:27 -0700</bug_when>
    <thetext>&quot;ideal&quot; constraints passed to getUserMedia should affect fitness score</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290924</commentid>
    <comment_count>1</comment_count>
      <attachid>305313</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-24 12:22:08 -0700</bug_when>
    <thetext>Created attachment 305313
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290926</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-24 12:23:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/31247451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290979</commentid>
    <comment_count>3</comment_count>
      <attachid>305320</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-24 13:44:41 -0700</bug_when>
    <thetext>Created attachment 305320
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291016</commentid>
    <comment_count>4</comment_count>
      <attachid>305320</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-24 15:28:54 -0700</bug_when>
    <thetext>Comment on attachment 305320
Proposed patch.

LGTM!
Make sure to test LayoutTests/webrtc to check whether some tests break or not before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291020</commentid>
    <comment_count>5</comment_count>
      <attachid>305320</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-24 15:45:18 -0700</bug_when>
    <thetext>Comment on attachment 305320
Proposed patch.

This doesn&apos;t break any webrtc-specific tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291054</commentid>
    <comment_count>6</comment_count>
      <attachid>305320</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-24 16:27:18 -0700</bug_when>
    <thetext>Comment on attachment 305320
Proposed patch.

Clearing flags on attachment: 305320

Committed r214385: &lt;http://trac.webkit.org/changeset/214385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291055</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-24 16:27:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305313</attachid>
            <date>2017-03-24 12:22:08 -0700</date>
            <delta_ts>2017-03-24 13:44:41 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>gum_constraints_patch_5.txt</filename>
            <type>text/plain</type>
            <size>36306</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE3LTAzLTI0ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ImlkZWFsIiBjb25zdHJhaW50cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhIHNob3VsZCBhZmZlY3Qg
Zml0bmVzcyBzY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5jbHVkZSB0aGUgZml0bmVzcyBzY29yZSBjYWxjdWxhdGVkIGZvciBpZGVhbCBjb25z
dHJhaW50cyBpbiB0aGUgY2FsY3VsYXRpb24gb2YgYSBjYXB0dXJlCisgICAgICAgIG92ZXJhbGwg
ZGV2aWNlIGZpdG5lc3Mgc2NvcmUuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3Rpbmcg
dGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ29uc3RyYWludDo6Zml0bmVz
c0Rpc3RhbmNlKTogRHJpdmUtYnkgZml4OiByZXR1cm4gZWFybHkgaWYgaWRlYWwgaXMgZW1wdHks
CisgICAgICAgIG5vdCBleGFjdC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKTogUmV0dXJuIGZpdG5lc3MgZGlzdGFuY2Uu
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyk6
IEluY2x1ZGUgdGhlIGZpdG5lc3MgZGlzdGFuY2Ugb2Ygc3VwcG9ydGVkCisgICAgICAgIGlkZWFs
IGNvbnN0cmFpbnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3Vw
cG9ydHNDb25zdHJhaW50KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOiBTb3J0IGNh
bmRpZGF0ZSBzb3VyY2VzCisgICAgICAgIGJ5IHRoZWlyIGZpdG5lc3Mgc2NvcmUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVz
KTogRWFjaCB2aWRlbyBzb3VyY2Ugc2hvdWxkIHN1cHBvcnQKKyAgICAgICAgb25lIGZhY2luZyBt
b2RlLCBub3QgYm90aC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpnZW5lcmF0ZUZyYW1lKTogTWFrZSB0aGUgZW52aXJvbm1lbnQgZmFjaW5nIGNhbWVyYSBmaWxs
CisgICAgICAgIHRoZSBiYWNrZ3JvdW5kIHdpdGggZ3JheSBzbyB3ZSBjYW4gbW9yZSBlYXNpbHkg
ZGV0ZWN0IGl0IGluIHRlc3RzLgorCiAyMDE3LTAzLTIxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTb3VwXSAiT25seSBmcm9tIHdlYnNpdGVz
IEkgdmlzaXQiIGNvb2tpZSBwb2xpY3kgaXMgYnJva2VuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmNwcAko
cmV2aXNpb24gMjE0MjQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFDb25zdHJhaW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgZG91
YmxlIFN0cmluZ0NvbnN0cmFpbnQ6OmZpdG5lc3NEaXN0YW5jZQogICAgICAgICByZXR1cm4gc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogCiAgICAgLy8gMy4gSWYgbm8g
aWRlYWwgdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGUgZml0bmVzcyBkaXN0YW5jZSBpcyAwLgotICAg
IGlmIChtX2V4YWN0LmlzRW1wdHkoKSkKKyAgICBpZiAobV9pZGVhbC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgLy8gNS4gRm9yIGFsbCBzdHJpbmcgYW5kIGVudW0gbm9uLXJl
cXVpcmVkIGNvbnN0cmFpbnRzIChkZXZpY2VJZCwgZ3JvdXBJZCwgZmFjaW5nTW9kZSwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCShyZXZpc2lvbiAyMTQyNDkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTc2LDcg
KzE3Niw3IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydHNTaXplQW4KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c1NpemVB
bmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxJbnRDb25zdHJhaW50PiB3aWR0aENvbnN0cmFpbnQs
IHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4gaGVpZ2h0Q29uc3RyYWludCwgc3RkOjpvcHRp
b25hbDxEb3VibGVDb25zdHJhaW50PiBmcmFtZVJhdGVDb25zdHJhaW50LCBTdHJpbmcmIGJhZENv
bnN0cmFpbnQpCitib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzU2l6ZUFuZEZyYW1l
UmF0ZShzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IHdpZHRoQ29uc3RyYWludCwgc3RkOjpv
cHRpb25hbDxJbnRDb25zdHJhaW50PiBoZWlnaHRDb25zdHJhaW50LCBzdGQ6Om9wdGlvbmFsPERv
dWJsZUNvbnN0cmFpbnQ+IGZyYW1lUmF0ZUNvbnN0cmFpbnQsIFN0cmluZyYgYmFkQ29uc3RyYWlu
dCwgZG91YmxlJiBkaXN0YW5jZSkKIHsKICAgICBpZiAoIXdpZHRoQ29uc3RyYWludCAmJiAhaGVp
Z2h0Q29uc3RyYWludCAmJiAhZnJhbWVSYXRlQ29uc3RyYWludCkKICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC0xODQsNDAgKzE4NCw0OCBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBv
cnRzU2l6ZUFuCiAgICAgQVNTRVJUKHRoaXMtPmNhcGFiaWxpdGllcygpKTsKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMgPSAqdGhpcy0+Y2FwYWJpbGl0
aWVzKCk7CiAKKyAgICBkaXN0YW5jZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKTsKKwogICAgIHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aDsKICAgICBpZiAod2lkdGhD
b25zdHJhaW50ICYmIGNhcGFiaWxpdGllcy5zdXBwb3J0c1dpZHRoKCkpIHsKLSAgICAgICAgaWYg
KHN0ZDo6aXNpbmYoZml0bmVzc0Rpc3RhbmNlKCp3aWR0aENvbnN0cmFpbnQpKSkgeworICAgICAg
ICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gZml0bmVzc0Rpc3RhbmNlKCp3aWR0aENvbnN0
cmFpbnQpOworICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAg
ICAgICAgICAgICBiYWRDb25zdHJhaW50ID0gd2lkdGhDb25zdHJhaW50LT5uYW1lKCk7CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICBkaXN0YW5jZSA9IHN0
ZDo6bWluKGRpc3RhbmNlLCBjb25zdHJhaW50RGlzdGFuY2UpOwogICAgICAgICBhdXRvIHJhbmdl
ID0gY2FwYWJpbGl0aWVzLndpZHRoKCk7CiAgICAgICAgIHdpZHRoID0gd2lkdGhDb25zdHJhaW50
LT52YWx1ZUZvckNhcGFiaWxpdHlSYW5nZShzaXplKCkud2lkdGgoKSwgcmFuZ2UucmFuZ2VNaW4o
KS5hc0ludCwgcmFuZ2UucmFuZ2VNYXgoKS5hc0ludCk7CiAgICAgfQogCiAgICAgc3RkOjpvcHRp
b25hbDxpbnQ+IGhlaWdodDsKICAgICBpZiAoaGVpZ2h0Q29uc3RyYWludCAmJiBjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNIZWlnaHQoKSkgewotICAgICAgICBpZiAoc3RkOjppc2luZihmaXRuZXNzRGlz
dGFuY2UoKmhlaWdodENvbnN0cmFpbnQpKSkgeworICAgICAgICBkb3VibGUgY29uc3RyYWludERp
c3RhbmNlID0gZml0bmVzc0Rpc3RhbmNlKCpoZWlnaHRDb25zdHJhaW50KTsKKyAgICAgICAgaWYg
KHN0ZDo6aXNpbmYoY29uc3RyYWludERpc3RhbmNlKSkgewogICAgICAgICAgICAgYmFkQ29uc3Ry
YWludCA9IGhlaWdodENvbnN0cmFpbnQtPm5hbWUoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogCisgICAgICAgIGRpc3RhbmNlID0gc3RkOjptaW4oZGlzdGFuY2UsIGNv
bnN0cmFpbnREaXN0YW5jZSk7CiAgICAgICAgIGF1dG8gcmFuZ2UgPSBjYXBhYmlsaXRpZXMuaGVp
Z2h0KCk7CiAgICAgICAgIGhlaWdodCA9IGhlaWdodENvbnN0cmFpbnQtPnZhbHVlRm9yQ2FwYWJp
bGl0eVJhbmdlKHNpemUoKS5oZWlnaHQoKSwgcmFuZ2UucmFuZ2VNaW4oKS5hc0ludCwgcmFuZ2Uu
cmFuZ2VNYXgoKS5hc0ludCk7CiAgICAgfQogCiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGZy
YW1lUmF0ZTsKICAgICBpZiAoZnJhbWVSYXRlQ29uc3RyYWludCAmJiBjYXBhYmlsaXRpZXMuc3Vw
cG9ydHNGcmFtZVJhdGUoKSkgewotICAgICAgICBpZiAoc3RkOjppc2luZihmaXRuZXNzRGlzdGFu
Y2UoKmZyYW1lUmF0ZUNvbnN0cmFpbnQpKSkgeworICAgICAgICBkb3VibGUgY29uc3RyYWludERp
c3RhbmNlID0gZml0bmVzc0Rpc3RhbmNlKCpmcmFtZVJhdGVDb25zdHJhaW50KTsKKyAgICAgICAg
aWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERpc3RhbmNlKSkgewogICAgICAgICAgICAgYmFkQ29u
c3RyYWludCA9IGZyYW1lUmF0ZUNvbnN0cmFpbnQtPm5hbWUoKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogCisgICAgICAgIGRpc3RhbmNlID0gc3RkOjptaW4oZGlzdGFu
Y2UsIGNvbnN0cmFpbnREaXN0YW5jZSk7CiAgICAgICAgIGF1dG8gcmFuZ2UgPSBjYXBhYmlsaXRp
ZXMuZnJhbWVSYXRlKCk7CiAgICAgICAgIGZyYW1lUmF0ZSA9IGZyYW1lUmF0ZUNvbnN0cmFpbnQt
PnZhbHVlRm9yQ2FwYWJpbGl0eVJhbmdlKHRoaXMtPmZyYW1lUmF0ZSgpLCByYW5nZS5yYW5nZU1p
bigpLmFzRG91YmxlLCByYW5nZS5yYW5nZU1heCgpLmFzRG91YmxlKTsKICAgICB9CiAKLSAgICAv
LyBFYWNoIG9mIHRoZSB2YWx1ZXMgaXMgc3VwcG9ydGVkIGluZGl2aWR1YWxseSwgc2VlIGlmIHRo
ZXkgYWxsIGNhbiBiZSBhcHBsaWVkIGF0IHRoZSBzYW1lIHRpbWUuCisgICAgLy8gRWFjaCBvZiB0
aGUgbm9uLW51bGwgdmFsdWVzIGlzIHN1cHBvcnRlZCBpbmRpdmlkdWFsbHksIHNlZSBpZiB0aGV5
IGFsbCBjYW4gYmUgYXBwbGllZCBhdCB0aGUgc2FtZSB0aW1lLgogICAgIGlmICghc3VwcG9ydHNT
aXplQW5kRnJhbWVSYXRlKFdURk1vdmUod2lkdGgpLCBXVEZNb3ZlKGhlaWdodCksIFdURk1vdmUo
ZnJhbWVSYXRlKSkpIHsKICAgICAgICAgaWYgKHdpZHRoQ29uc3RyYWludCkKICAgICAgICAgICAg
IGJhZENvbnN0cmFpbnQgPSB3aWR0aENvbnN0cmFpbnQtPm5hbWUoKTsKQEAgLTQ5NSw2ICs1MDMs
OCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5Q29uc3RyYWluCiAKIGJvb2wgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMsIEZsYXR0ZW5lZENvbnN0cmFpbnQmIGNhbmRpZGF0ZXMsIFN0cmluZyYgZmFp
bGVkQ29uc3RyYWludCkKIHsKKyAgICBtX2ZpdG5lc3NTY29yZSA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKwogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9t
ZWRpYWNhcHR1cmUtbWFpbi8jZGZuLXNlbGVjdHNldHRpbmdzCiAgICAgLy8KICAgICAvLyAxLiBF
YWNoIGNvbnN0cmFpbnQgc3BlY2lmaWVzIG9uZSBvciBtb3JlIHZhbHVlcyAob3IgYSByYW5nZSBv
ZiB2YWx1ZXMpIGZvciBpdHMgcHJvcGVydHkuCkBAIC01MTcsMjAgKzUyNywyNiBAQCBib29sIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzCiAgICAgZmFpbGVkQ29uc3RyYWludCA9
IGVtcHR5U3RyaW5nKCk7CiAKICAgICAvLyBDaGVjayB3aWR0aCwgaGVpZ2h0LCBhbmQgZnJhbWUg
cmF0ZSBzZXBhcmF0ZWx5LCBiZWNhdXNlIHdoaWxlIHRoZXkgbWF5IGJlIHN1cHBvcnRlZCBpbmRp
dmlkdWFsbHkgdGhlIGNvbWJpbmF0aW9uIG1heSBub3QgYmUgc3VwcG9ydGVkLgotICAgIGlmICgh
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRz
KCkud2lkdGgoKSwgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMoKS5oZWlnaHQoKSwg
Y29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMoKS5mcmFtZVJhdGUoKSwgZmFpbGVkQ29u
c3RyYWludCkpCisgICAgZG91YmxlIGRpc3RhbmNlID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpOworICAgIGlmICghc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKGNvbnN0
cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCkud2lkdGgoKSwgY29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMoKS5oZWlnaHQoKSwgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMoKS5mcmFtZVJhdGUoKSwgZmFpbGVkQ29uc3RyYWludCwgbV9maXRuZXNzU2NvcmUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50
cygpLmZpbHRlcihbJl0oY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KSB7CisgICAg
ICAgIGlmICghc3VwcG9ydHNDb25zdHJhaW50KGNvbnN0cmFpbnQpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgICAgIGlmIChjb25zdHJhaW50LmNvbnN0cmFpbnRUeXBlKCkgPT0g
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGggfHwgY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgp
ID09IE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCB8fCBjb25zdHJhaW50LmNvbnN0cmFpbnRU
eXBlKCkgPT0gTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKSB7CiAgICAgICAgICAgICBj
YW5kaWRhdGVzLnNldChjb25zdHJhaW50KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChzdGQ6OmlzaW5mKGZpdG5lc3NEaXN0YW5jZShjb25zdHJh
aW50KSkpIHsKKyAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGZpdG5lc3NEaXN0
YW5jZShjb25zdHJhaW50KTsKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERpc3Rh
bmNlKSkgewogICAgICAgICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAorICAgICAgICBkaXN0YW5j
ZSA9IHN0ZDo6bWluKGRpc3RhbmNlLCBjb25zdHJhaW50RGlzdGFuY2UpOwogICAgICAgICBjYW5k
aWRhdGVzLnNldChjb25zdHJhaW50KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0pOwpA
QCAtNTM4LDYgKzU1NCw4IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGlu
Z3MKICAgICBpZiAoIWZhaWxlZENvbnN0cmFpbnQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBtX2ZpdG5lc3NTY29yZSA9IGRpc3RhbmNlOworCiAgICAgLy8gNC4gSWYg
Y2FuZGlkYXRlcyBpcyBlbXB0eSwgcmV0dXJuIHVuZGVmaW5lZCBhcyB0aGUgcmVzdWx0IG9mIHRo
ZSBTZWxlY3RTZXR0aW5ncygpIGFsZ29yaXRobS4KICAgICBpZiAoY2FuZGlkYXRlcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNTQ4LDIxICs1NjYsMTkgQEAgYm9vbCBSZWFs
dGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwogICAgIC8vIDUuMSBjb21wdXRlIHRoZSBm
aXRuZXNzIGRpc3RhbmNlIGJldHdlZW4gaXQgYW5kIGVhY2ggc2V0dGluZ3MgZGljdGlvbmFyeSBp
biBjYW5kaWRhdGVzLCB0cmVhdGluZyBiYXJlCiAgICAgLy8gICAgIHZhbHVlcyBvZiBwcm9wZXJ0
aWVzIGFzIGV4YWN0LgogICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcD4+IHN1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIG1fZml0bmVzc1Njb3Jl
ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOwogCiAgICAgZm9yIChj
b25zdCBhdXRvJiBhZHZhbmNlZENvbnN0cmFpbnQgOiBjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0
cmFpbnRzKCkpIHsKICAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IDA7CiAgICAg
ICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CiAKICAgICAgICAgYWR2YW5jZWRDb25zdHJhaW50
LmZvckVhY2goWyZdKGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29uc3RyYWludCkgewotICAgICAg
ICAgICAgZG91YmxlIGRpc3RhbmNlID0gZml0bmVzc0Rpc3RhbmNlKGNvbnN0cmFpbnQpOworICAg
ICAgICAgICAgZGlzdGFuY2UgPSBmaXRuZXNzRGlzdGFuY2UoY29uc3RyYWludCk7CiAgICAgICAg
ICAgICBjb25zdHJhaW50RGlzdGFuY2UgKz0gZGlzdGFuY2U7CiAgICAgICAgICAgICBpZiAoIXN0
ZDo6aXNpbmYoZGlzdGFuY2UpKQogICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IHRydWU7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIGlmIChjb25zdHJhaW50RGlzdGFuY2UgPCBtX2ZpdG5lc3NT
Y29yZSkKLSAgICAgICAgICAgIG1fZml0bmVzc1Njb3JlID0gY29uc3RyYWludERpc3RhbmNlOwor
ICAgICAgICBtX2ZpdG5lc3NTY29yZSA9IHN0ZDo6bWluKG1fZml0bmVzc1Njb3JlLCBjb25zdHJh
aW50RGlzdGFuY2UpOwogCiAgICAgICAgIC8vIDUuMiBJZiB0aGUgZml0bmVzcyBkaXN0YW5jZSBp
cyBmaW5pdGUgZm9yIG9uZSBvciBtb3JlIHNldHRpbmdzIGRpY3Rpb25hcmllcyBpbiBjYW5kaWRh
dGVzLCBrZWVwIHRob3NlCiAgICAgICAgIC8vICAgICBzZXR0aW5ncyBkaWN0aW9uYXJpZXMgaW4g
Y2FuZGlkYXRlcywgZGlzY2FyZGluZyBvdGhlcnMuCkBAIC01NzMsOSArNTg5LDkgQEAgYm9vbCBS
ZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwogCiAgICAgLy8gNi4gU2VsZWN0IG9u
ZSBzZXR0aW5ncyBkaWN0aW9uYXJ5IGZyb20gY2FuZGlkYXRlcywgYW5kIHJldHVybiBpdCBhcyB0
aGUgcmVzdWx0IG9mIHRoZSBTZWxlY3RTZXR0aW5ncygpIGFsZ29yaXRobS4KICAgICAvLyAgICBU
aGUgVUEgc2hvdWxkIHVzZSB0aGUgb25lIHdpdGggdGhlIHNtYWxsZXN0IGZpdG5lc3MgZGlzdGFu
Y2UsIGFzIGNhbGN1bGF0ZWQgaW4gc3RlcCAzLgotICAgIGlmICghc3RkOjppc2luZihtX2ZpdG5l
c3NTY29yZSkpIHsKKyAgICBpZiAoIXN1cHBvcnRlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkgewog
ICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3Qg
c3RkOjpwYWlyPGRvdWJsZSwgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiBwYWlyKSAtPiBi
b29sIHsKLSAgICAgICAgICAgIHJldHVybiBwYWlyLmZpcnN0ID4gbV9maXRuZXNzU2NvcmU7Cisg
ICAgICAgICAgICByZXR1cm4gc3RkOjppc2luZihwYWlyLmZpcnN0KSB8fCBwYWlyLmZpcnN0ID4g
bV9maXRuZXNzU2NvcmU7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGlmICghc3VwcG9ydGVkQ29u
c3RyYWludHMuaXNFbXB0eSgpKSB7CkBAIC01ODMsMTIgKzU5OSw4MyBAQCBib29sIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzCiAgICAgICAgICAgICBhZHZhbmNlZENvbnN0cmFp
bnQuZm9yRWFjaChbJl0oY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KSB7CiAgICAg
ICAgICAgICAgICAgY2FuZGlkYXRlcy5tZXJnZShjb25zdHJhaW50KTsKICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICBtX2ZpdG5lc3NTY29yZSA9IHN0ZDo6bWluKG1fZml0bmVzc1Njb3Jl
LCBzdXBwb3J0ZWRDb25zdHJhaW50c1swXS5maXJzdCk7CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c0Nv
bnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50JiBjb25zdHJhaW50KSBjb25zdAoreworICAg
IEFTU0VSVCh0aGlzLT5jYXBhYmlsaXRpZXMoKSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzID0gKnRoaXMtPmNhcGFiaWxpdGllcygpOworCisgICAg
c3dpdGNoIChjb25zdHJhaW50LmNvbnN0cmFpbnRUeXBlKCkpIHsKKyAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OldpZHRoOgorICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc0ludCgpKTsK
KyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5zdXBwb3J0c1dpZHRoKCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQ6CisgICAgICAgIEFT
U0VSVChjb25zdHJhaW50LmlzSW50KCkpOworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1
cHBvcnRzSGVpZ2h0KCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGcmFtZVJhdGU6CisgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzRG91YmxlKCkp
OworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzRnJhbWVSYXRlKCk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbzoK
KyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNEb3VibGUoKSk7CisgICAgICAgIHJldHVybiBj
YXBhYmlsaXRpZXMuc3VwcG9ydHNBc3BlY3RSYXRpbygpOworICAgICAgICBicmVhazsKKworICAg
IGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lOgorICAgICAgICBBU1NFUlQoY29uc3Ry
YWludC5pc0RvdWJsZSgpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5zdXBwb3J0c1Zv
bHVtZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
U2FtcGxlUmF0ZToKKyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNJbnQoKSk7CisgICAgICAg
IHJldHVybiBjYXBhYmlsaXRpZXMuc3VwcG9ydHNTYW1wbGVSYXRlKCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplOgorICAgICAgICBB
U1NFUlQoY29uc3RyYWludC5pc0ludCgpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5z
dXBwb3J0c1NhbXBsZVNpemUoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkZhY2luZ01vZGU6CisgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3Ry
aW5nKCkpOworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzRmFjaW5nTW9kZSgp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0Nh
bmNlbGxhdGlvbjoKKyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNCb29sZWFuKCkpOworICAg
ICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQ6Cisg
ICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gY2Fw
YWJpbGl0aWVzLnN1cHBvcnRzRGV2aWNlSWQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6CisgICAgICAgIEFTU0VSVChjb25zdHJhaW50
LmlzU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzRGV2aWNl
SWQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlVu
a25vd246CisgICAgICAgIC8vIFVua25vd24gKG9yIHVuc3VwcG9ydGVkKSBjb25zdHJhaW50cyBz
aG91bGQgYmUgaWdub3JlZC4KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVy
biBmYWxzZTsKK30KKwogYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzdXBwb3J0c0NvbnN0cmFp
bnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KQogewogICAgIEFTU0VSVChjb25zdHJhaW50cy5pc1ZhbGlkKCkpOwpAQCAtNjM1
LDYgKzcyMiw5IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXBwbHlDb25zdHJhaW4KICAg
ICAgICAgICAgIGZyYW1lUmF0ZSA9IGRvd25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KCpjb25zdHJh
aW50KS52YWx1ZUZvckNhcGFiaWxpdHlSYW5nZSh0aGlzLT5mcmFtZVJhdGUoKSwgcmFuZ2UucmFu
Z2VNaW4oKS5hc0RvdWJsZSwgcmFuZ2UucmFuZ2VNYXgoKS5hc0RvdWJsZSk7CiAgICAgICAgIH0K
ICAgICB9CisKKyAgICAvLyBGSVhNRTogYXBwbHlTaXplQW5kRnJhbWVSYXRlIHNob3VsZCB0YWtl
IE1lZGlhQ29uc3RyYWludCogaW5zdGVhZCBvZiBzdGQ6Om9wdGlvbmFsPD4gc28gaXQgY2FuIHNl
ZSBpZiBhIGNvbnN0cmFpbnQgaXMgYW4gZXhhY3QsIG1pbiwgbWF4LAorICAgIC8vIG9yIGlkZWFs
LCBhbmQgY2hvb3NlIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBwcm9wZXJ0aWVzIHdpdGggbm9uLWRp
c2NyZWV0IGNhcGFiaWxpdGllcyB3aGVuIG5lY2Vzc2FyeS4KICAgICBpZiAod2lkdGggfHwgaGVp
Z2h0IHx8IGZyYW1lUmF0ZSkKICAgICAgICAgYXBwbHlTaXplQW5kRnJhbWVSYXRlKFdURk1vdmUo
d2lkdGgpLCBXVEZNb3ZlKGhlaWdodCksIFdURk1vdmUoZnJhbWVSYXRlKSk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlLmgJKHJldmlzaW9uIDIxNDI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTE2LDYg
KzExNiw3IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYpOwogCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzQ29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYs
IFN0cmluZyYpOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnN0cmFpbnQoY29uc3QgTWVk
aWFDb25zdHJhaW50JikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0dGluZ3NEaWRDaGFu
Z2UoKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgRmxhdHRlbmVkQ29uc3Ry
YWludCYsIFN0cmluZyYpOwogICAgIHZpcnR1YWwgZG91YmxlIGZpdG5lc3NEaXN0YW5jZShjb25z
dCBNZWRpYUNvbnN0cmFpbnQmKTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJh
bWVSYXRlKHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8
SW50Q29uc3RyYWludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPERvdWJsZUNvbnN0cmFpbnQ+LCBT
dHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8SW50Q29uc3RyYWludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWlu
dD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPERvdWJsZUNvbnN0cmFpbnQ+LCBTdHJpbmcmLCBkb3Vi
bGUmIGZpdG5lc3NEaXN0YW5jZSk7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2l6ZUFuZEZy
YW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWln
aHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5Q29uc3Ry
YWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDb25z
dHJhaW50cyhjb25zdCBGbGF0dGVuZWRDb25zdHJhaW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmNwcAkocmV2aXNpb24gMjE0MjQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcyLDMyICs3Miw1NiBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2
YWxpCiAgICAgVmVjdG9yPFN0cmluZz4gdmlkZW9Tb3VyY2VJZHM7CiAgICAgU3RyaW5nIGludmFs
aWRDb25zdHJhaW50OwogCisgICAgc3RydWN0IERldmljZUluZm8geworICAgICAgICB1bnNpZ25l
ZCBmaXRuZXNzU2NvcmU7CisgICAgICAgIFN0cmluZyBpZDsKKyAgICB9OworCisgICAgc3RydWN0
IHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IERldmljZUluZm8mIGEsIGNvbnN0IERl
dmljZUluZm8mIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhLmZpdG5lc3NTY29y
ZSA8IGIuZml0bmVzc1Njb3JlOworICAgICAgICB9CisgICAgfSBzb3J0QmFzZWRPbkZpdG5lc3NT
Y29yZTsKKwogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewotICAgICAgICBh
dXRvJiBkZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpOwot
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZXMuc2l6ZSgpOyBpKyspIHsKLSAg
ICAgICAgICAgIGF1dG8mIGRldmljZSA9IGRldmljZXNbaV07CisgICAgICAgIFZlY3RvcjxEZXZp
Y2VJbmZvPiBkZXZpY2VJbmZvOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb0RldmljZXMoKSkgewogICAgICAgICAgICAgYXV0
byBhdWRpb1NvdXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxh
YmVsKCksIG51bGxwdHIpOwotICAgICAgICAgICAgaWYgKCFhdWRpb1NvdXJjZS0+c3VwcG9ydHND
b25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoaW52YWxpZEhhbmRsZXIpCi0gICAgICAgICAgICAgICAgICAgIGludmFs
aWRIYW5kbGVyKGludmFsaWRDb25zdHJhaW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdWRpb1NvdXJjZUlkcy5hcHBlbmQoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpKTsKKyAgICAgICAgICAgIGlmIChhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25z
dHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAg
ICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe2F1ZGlvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGV2aWNlSW5m
by5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlmIChpbnZhbGlkSGFuZGxlcikKKyAgICAgICAg
ICAgICAgICBpbnZhbGlkSGFuZGxlcihpbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBhdWRpb1NvdXJjZUlkcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGRldmljZUluZm8uc2l6ZSgpKTsKKyAgICAgICAgc3RkOjpzb3J0KGRldmljZUlu
Zm8uYmVnaW4oKSwgZGV2aWNlSW5mby5lbmQoKSwgc29ydEJhc2VkT25GaXRuZXNzU2NvcmUpOwor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGluZm8gOiBkZXZpY2VJbmZvKQorICAgICAgICAgICAg
YXVkaW9Tb3VyY2VJZHMudW5jaGVja2VkQXBwZW5kKGluZm8uaWQpOwogICAgIH0KIAogICAgIGlm
ICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewotICAgICAgICBhdXRvJiBkZXZpY2VzID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNlcygpOwotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGRldmljZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIGF1dG8m
IGRldmljZSA9IGRldmljZXNbaV07CisgICAgICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBkZXZpY2VJ
bmZvOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjp2aWRlb0RldmljZXMoKSkgewogICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIp
OwotICAgICAgICAgICAgaWYgKCF2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRl
b0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aW52YWxpZEhhbmRsZXIpCi0gICAgICAgICAgICAgICAgICAgIGludmFsaWRIYW5kbGVyKGludmFs
aWRDb25zdHJhaW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB2aWRlb1NvdXJjZUlkcy5hcHBlbmQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpKTsK
KyAgICAgICAgICAgIGlmICh2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0Nv
bnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAgICAgICAgZGV2aWNlSW5m
by5hcHBlbmQoe3ZpZGVvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpfSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIGlmIChpbnZhbGlkSGFuZGxlcikKKyAgICAgICAgICAgICAgICBpbnZhbGlk
SGFuZGxlcihpbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KKworICAgICAgICB2aWRlb1NvdXJjZUlkcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRldmlj
ZUluZm8uc2l6ZSgpKTsKKyAgICAgICAgc3RkOjpzb3J0KGRldmljZUluZm8uYmVnaW4oKSwgZGV2
aWNlSW5mby5lbmQoKSwgc29ydEJhc2VkT25GaXRuZXNzU2NvcmUpOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGluZm8gOiBkZXZpY2VJbmZvKQorICAgICAgICAgICAgdmlkZW9Tb3VyY2VJZHMu
dW5jaGVja2VkQXBwZW5kKGluZm8uaWQpOwogICAgIH0KIAogICAgIHZhbGlkSGFuZGxlcihXVEZN
b3ZlKGF1ZGlvU291cmNlSWRzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZUlkcykpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAJKHJldmlzaW9uIDIxNDI0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzMyw4ICsx
MzMsMTAgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6dXBkYXRlU2V0dAogCiB2b2lk
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsKLSAgICBjYXBhYmlsaXRp
ZXMuYWRkRmFjaW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlVzZXIpOwotICAg
IGNhcGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
RW52aXJvbm1lbnQpOworICAgIGlmICghZGV2aWNlSW5kZXgoKSkKKyAgICAgICAgY2FwYWJpbGl0
aWVzLmFkZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpVc2VyKTsKKyAg
ICBlbHNlCisgICAgICAgIGNhcGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5nczo6RW52aXJvbm1lbnQpOwogICAgIGNhcGFiaWxpdGllcy5zZXRXaWR0aChD
YXBhYmlsaXR5VmFsdWVPclJhbmdlKDMyMCwgMTkyMCkpOwogICAgIGNhcGFiaWxpdGllcy5zZXRI
ZWlnaHQoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgyNDAsIDEwODApKTsKICAgICBjYXBhYmlsaXRp
ZXMuc2V0RnJhbWVSYXRlKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMTUuMCwgNjAuMCkpOwpAQCAt
MzQ4LDcgKzM1MCw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnIK
IAogICAgIEludFNpemUgc2l6ZSA9IHRoaXMtPnNpemUoKTsKICAgICBGbG9hdFJlY3QgZnJhbWVS
ZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSk7Ci0gICAgY29udGV4dC5maWxsUmVjdChGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBzaXplKSwgQ29sb3I6OmJsYWNrKTsKKyAgICBjb250ZXh0LmZpbGxSZWN0
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUpLCAhZGV2aWNlSW5kZXgoKSA/IENvbG9yOjpi
bGFjayA6IENvbG9yOjpkYXJrR3JheSk7CiAKICAgICBpZiAoIW1fbXV0ZWQgJiYgbV9lbmFibGVk
KSB7CiAgICAgICAgIGRyYXdUZXh0KGNvbnRleHQpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
MjE0MzYyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
ICsxLDEzIEBACisyMDE3LTAzLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gImlkZWFsIiBjb25zdHJhaW50cyBwYXNzZWQg
dG8gZ2V0VXNlck1lZGlhIHNob3VsZCBhZmZlY3QgZml0bmVzcyBzY29yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMDU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSk6IFdoZW4KKyAgICAgICAgc2hvcnQtY2lyY3VpdGluZyB0aGUgdXNlciBw
cm9tcHQgYmVjYXVzZSB0aGUgcGFnZSBpcyBhbHJlYWR5IGF1dGhvcml6ZWQsIHJldHVybiB0aGUg
Zmlyc3QKKyAgICAgICAgYXVkaW8gYW5kL29yIHZpZGVvIGRldmljZSBiZWNhdXNlIHNvIHRoZSBw
YWdlIGdldHMgdGhlIG9uZSB3aXRoIHRoZSBiZXN0IGZpdG5lc3MgZGlzdGFuY2UuCisKID09IFJv
bGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDE3LTAzLTIzID09CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDIxNDI0OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI0MiwyNCArMjQyLDI0IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICAgICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlk
ZW50aWZpZXIodG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpLT5zZWN1cml0eU9yaWdp
bigpKTsKICAgICAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdCh1c2VyTWVkaWFJRCwg
ZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgYXVkaW9EZXZpY2VVSURzLCB2aWRlb0RldmljZVVJRHMpOwog
Ci0gICAgICAgIFN0cmluZyBhdXRob3JpemVkQXVkaW9EZXZpY2U7Ci0gICAgICAgIFN0cmluZyBh
dXRob3JpemVkVmlkZW9EZXZpY2U7CisgICAgICAgIGJvb2wgYXV0aG9yaXplZEZvckF1ZGlvID0g
ZmFsc2U7CisgICAgICAgIGJvb2wgYXV0aG9yaXplZEZvclZpZGVvID0gZmFsc2U7CiAgICAgICAg
IGF1dG8mIGZhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdChyZXF1ZXN0KTsKICAgICAgICAgZm9y
IChhdXRvIGRldmljZVVJRCA6IGF1ZGlvRGV2aWNlVUlEcykgewogICAgICAgICAgICAgaWYgKGZh
bWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkpIHsKLSAg
ICAgICAgICAgICAgICBhdXRob3JpemVkQXVkaW9EZXZpY2UgPSBkZXZpY2VVSUQ7CisgICAgICAg
ICAgICAgICAgYXV0aG9yaXplZEZvckF1ZGlvID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBmb3IgKGF1dG8gZGV2aWNlVUlE
IDogdmlkZW9EZXZpY2VVSURzKSB7CiAgICAgICAgICAgICBpZiAoZmFtZVN0YXRlLmhhc1Blcm1p
c3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlEKSkgewotICAgICAgICAgICAgICAgIGF1
dGhvcml6ZWRWaWRlb0RldmljZSA9IGRldmljZVVJRDsKKyAgICAgICAgICAgICAgICBhdXRob3Jp
emVkRm9yVmlkZW8gPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGF1ZGlvRGV2aWNlVUlEcy5pc0VtcHR5KCkgPT0g
YXV0aG9yaXplZEF1ZGlvRGV2aWNlLmlzRW1wdHkoKSAmJiB2aWRlb0RldmljZVVJRHMuaXNFbXB0
eSgpID09IGF1dGhvcml6ZWRWaWRlb0RldmljZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVz
ZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1dGhvcml6ZWRBdWRpb0Rldmlj
ZSwgYXV0aG9yaXplZFZpZGVvRGV2aWNlKTsKKyAgICAgICAgaWYgKGF1dGhvcml6ZWRGb3JBdWRp
byA9PSAhYXVkaW9EZXZpY2VVSURzLmlzRW1wdHkoKSAmJiBhdXRob3JpemVkRm9yVmlkZW8gPT0g
IXZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vz
c1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1dGhvcml6ZWRGb3JBdWRpbyA/IGF1ZGlvRGV2aWNl
VUlEc1swXSA6IGVtcHR5U3RyaW5nKCksIGF1dGhvcml6ZWRGb3JWaWRlbyA/IHZpZGVvRGV2aWNl
VUlEc1swXSA6IGVtcHR5U3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDI0OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAzLTI0ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gImlkZWFs
IiBjb25zdHJhaW50cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhIHNob3VsZCBhZmZlY3QgZml0bmVz
cyBzY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtZGlzcGxheXMtYnVm
ZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LXZpZGVvLWVsZW1lbnQtZGlzcGxheXMtYnVmZmVyLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldENhcGFiaWxpdGllcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1h
ZHZhbmNlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3RyYWlu
dHMtdmlkZW8tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vYXBwbHkt
Y29uc3RyYWludHMtdmlkZW8uaHRtbDoKKwogMjAxNy0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsrIGdhcmRl
bmluZy4gUmViYXNlbGluZSBmYXN0L3RleHQvaHlwaGVuYXRlLWxpbWl0LWxpbmVzLmh0bWwuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1l
bnQtZGlzcGxheXMtYnVmZmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtZGlzcGxheXMtYnVm
ZmVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0MjQ5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LWRpc3BsYXlzLWJ1ZmZlci1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsMTUgKzMsMjkgQEAgVGVzdHMgdGhhdCB0aGUg
c3RyZWFtIGRpc3BsYXlzIGNhcHR1cmVkIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
KworID09PSBjaGVja2luZyBwaXhlbHMgZnJvbSBmcm9udCBjYW1lcmEgPT09CiBQQVNTIG1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEgZ2VuZXJhdGVkIGEgc3RyZWFtIHN1Y2Nlc3NmdWxseS4KLXZp
ZGVvLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU3RyZWFtKQotdmlkZW8u
cGxheSgpCit2aWRlb3NbMF0uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFT
dHJlYW0pCit2aWRlb3NbMF0ucGxheSgpCitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIp
IGlzIHRydWUKK2NvbnRleHQuZHJhd0ltYWdlKHZpZGVvc1swXSwgMCwgMCwgNjgwLCAzNjApCitQ
QVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4ZWxCbGFj
ayhidWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZh
bHNlCitQQVNTIGlzUGl4ZWxCbGFjayhidWZmZXIpIGlzIHRydWUKIAotID09PSBjaGVja2luZyBw
aXhlbHMgPT09CisgPT09IGNoZWNraW5nIHBpeGVscyBmcm9tIGJhY2sgY2FtZXJhID09PQorUEFT
UyBtZWRpYURldmljZXMuZ2V0VXNlck1lZGlhIGdlbmVyYXRlZCBhIHN0cmVhbSBzdWNjZXNzZnVs
bHkuCit2aWRlb3NbMV0uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTdHJl
YW0pCit2aWRlb3NbMV0ucGxheSgpCiBQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlz
IHRydWUKK2NvbnRleHQuZHJhd0ltYWdlKHZpZGVvc1sxXSwgMCwgMCwgNjgwLCAzNjApCiBQQVNT
IGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZhbHNlCiBQQVNTIGlzUGl4ZWxCbGFjayhi
dWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZhbHNl
CitQQVNTIGlzUGl4ZWxHcmF5KGJ1ZmZlcikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi0gCisgIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LWRpc3BsYXlzLWJ1ZmZlci5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tdmlkZW8tZWxlbWVudC1kaXNwbGF5cy1idWZmZXIuaHRtbAkocmV2aXNpb24gMjE0MjQ5KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50
LWRpc3BsYXlzLWJ1ZmZlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEzIEBACiA8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHZpZGVv
IGNvbnRyb2xzIHdpZHRoPSI2ODAiIGhlaWdodD0iMzYwIj48L3ZpZGVvPgorPHZpZGVvIGNvbnRy
b2xzIHdpZHRoPSI2ODAiIGhlaWdodD0iMzYwIj48L3ZpZGVvPgogPGNhbnZhcyB3aWR0aD0iNjgw
IiBoZWlnaHQ9IjM2MCI+PC9jYW52YXM+CiA8c2NyaXB0PgogICAgIGxldCBtZWRpYVN0cmVhbTsK
LSAgICBsZXQgdmlkZW87Ci0gICAgCisgICAgbGV0IHZpZGVvczsKICAgICBsZXQgYnVmZmVyOwor
ICAgIGxldCBjdXJyZW50VGVzdCA9IDA7CiAgICAgCiAgICAgZnVuY3Rpb24gaXNQaXhlbFRyYW5z
cGFyZW50KHBpeGVsKQogICAgIHsKQEAgLTI1LDQ0ICsyNiw3OCBAQAogICAgICAgICByZXR1cm4g
cGl4ZWxbMF0gPT09IDAgJiYgcGl4ZWxbMV0gPT09IDAgJiYgcGl4ZWxbMl0gPT09IDAgJiYgcGl4
ZWxbM10gPT09IDI1NTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB2ZXJpZnlGcmFtZXNCZWluZ0Rp
c3BsYXllZCgpCisgICAgZnVuY3Rpb24gaXNQaXhlbEdyYXkocGl4ZWwpCiAgICAgewotICAgICAg
ICBsZXQgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7Ci0gICAgICAg
IGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIHJldHVybiBw
aXhlbFswXSA9PT0gMTI4ICYmIHBpeGVsWzFdID09PSAxMjggJiYgcGl4ZWxbMl0gPT09IDEyOCAm
JiBwaXhlbFszXSA9PT0gMjU1OworICAgIH0KIAotICAgICAgICBkZWJ1ZygnPGJyPiA9PT0gY2hl
Y2tpbmcgcGl4ZWxzID09PScpOworICAgIGZ1bmN0aW9uIHZlcmlmeUZyYW1lc0JlaW5nRGlzcGxh
eWVkKCkKKyAgICB7CisgICAgICAgIHZpZGVvc1tjdXJyZW50VGVzdF0ucmVtb3ZlRXZlbnRMaXN0
ZW5lcigncGxheWluZycsIHZlcmlmeUZyYW1lc0JlaW5nRGlzcGxheWVkLCBmYWxzZSkKIAorICAg
ICAgICBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdjYW52YXMnKTsKKyAgICAgICAg
Y29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgICAgICAKICAgICAgICAgY29u
dGV4dC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLQogICAg
ICAgICBsZXQgeCA9IGNhbnZhcy53aWR0aCAqIC4wMzU7CiAgICAgICAgIGxldCB5ID0gY2FudmFz
LmhlaWdodCAqIDAuNiArIDIgKyB4OwotICAgICAgICAKICAgICAgICAgYnVmZmVyID0gY29udGV4
dC5nZXRJbWFnZURhdGEoeCwgeSwgMSwgMSkuZGF0YTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCdp
c1BpeGVsVHJhbnNwYXJlbnQoYnVmZmVyKScpOwogICAgICAgICAKLSAgICAgICAgY29udGV4dC5k
cmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAg
ICAgIAorICAgICAgICBldmFsQW5kTG9nKGBjb250ZXh0LmRyYXdJbWFnZSh2aWRlb3NbJHtjdXJy
ZW50VGVzdH1dLCAwLCAwLCAke2NhbnZhcy53aWR0aH0sICR7Y2FudmFzLmhlaWdodH0pYCk7CiAg
ICAgICAgIGJ1ZmZlciA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgsIHksIDEsIDEpLmRhdGE7CiAg
ICAgICAgIHNob3VsZEJlRmFsc2UoJ2lzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpJyk7CiAgICAg
ICAgIHNob3VsZEJlRmFsc2UoJ2lzUGl4ZWxCbGFjayhidWZmZXIpJyk7CiAKLSAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgIHggPSBjYW52YXMud2lkdGggKiAuMDU7CisgICAgICAgIHkg
PSBjYW52YXMuaGVpZ2h0ICogLjA1OworICAgICAgICBidWZmZXIgPSBjb250ZXh0LmdldEltYWdl
RGF0YSh4LCB5LCAxLCAxKS5kYXRhOworICAgICAgICBzaG91bGRCZUZhbHNlKCdpc1BpeGVsVHJh
bnNwYXJlbnQoYnVmZmVyKScpOworICAgICAgICBpZiAoIWN1cnJlbnRUZXN0KQorICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCdpc1BpeGVsQmxhY2soYnVmZmVyKScpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ2lzUGl4ZWxHcmF5KGJ1ZmZlciknKTsKKworICAgICAg
ICBpZiAoY3VycmVudFRlc3QgPj0gMSkgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZpZGVvc1tj
dXJyZW50VGVzdF0ucGF1c2UoKTsKKyAgICAgICAgKytjdXJyZW50VGVzdDsKKyAgICAgICAgcmVx
dWVzdE5leHRTdHJlYW0oKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXR1cFZpZGVvRWxlbWVu
dChzdHJlYW0pCisgICAgeworICAgICAgICBtZWRpYVN0cmVhbSA9IHN0cmVhbTsKKyAgICAgICAg
dGVzdFBhc3NlZCgnbWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBnZW5lcmF0ZWQgYSBzdHJlYW0g
c3VjY2Vzc2Z1bGx5LicpOworICAgICAgICBldmFsQW5kTG9nKGB2aWRlb3NbJHtjdXJyZW50VGVz
dH1dLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU3RyZWFtKWApOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIGNhbnBsYXkoKQogICAgIHsKLSAgICAgICAgZXZhbEFuZExvZygn
dmlkZW8ucGxheSgpJyk7CisgICAgICAgIHZpZGVvc1tjdXJyZW50VGVzdF0ucmVtb3ZlRXZlbnRM
aXN0ZW5lcignY2FucGxheScsIGNhbnBsYXksIGZhbHNlKQorICAgICAgICBldmFsQW5kTG9nKGB2
aWRlb3NbJHtjdXJyZW50VGVzdH1dLnBsYXkoKWApOwogICAgIH0KLQorICAgIAorICAgIGZ1bmN0
aW9uIHJlcXVlc3ROZXh0U3RyZWFtKCkKKyAgICB7CisgICAgICAgIGRlYnVnKGA8YnI+ID09PSBj
aGVja2luZyBwaXhlbHMgZnJvbSAkeyFjdXJyZW50VGVzdCA/ICJmcm9udCIgOiAiYmFjayJ9IGNh
bWVyYSA9PT1gKTsKKyAgICAgICAgbGV0IGNvbnN0cmFpbnRzID0ge3ZpZGVvIDogIWN1cnJlbnRU
ZXN0ID8gdHJ1ZSA6IHtmYWNpbmdNb2RlOiAiZW52aXJvbm1lbnQifX07CisgICAgICAgIGdldFVz
ZXJNZWRpYSgiYWxsb3ciLCBjb25zdHJhaW50cywgc2V0dXBWaWRlb0VsZW1lbnQpOworICAgIH0K
KyAgICAKICAgICBmdW5jdGlvbiBzdGFydCgpCiAgICAgewogICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCB0aGUgc3RyZWFtIGRpc3BsYXlzIGNhcHR1cmVkIGJ1ZmZlcnMgdG8gdGhlIHZp
ZGVvIGVsZW1lbnQuIik7CiAKLSAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCd2aWRlbycpOwotICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5JywgY2Fu
cGxheSwgZmFsc2UpOwotICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5nJywg
dmVyaWZ5RnJhbWVzQmVpbmdEaXNwbGF5ZWQsIGZhbHNlKTsKLQotICAgICAgICBnZXRVc2VyTWVk
aWEoImFsbG93Iiwge3ZpZGVvOnRydWV9LCBzZXR1cFZpZGVvRWxlbWVudFdpdGhTdHJlYW0pOwor
ICAgICAgICB2aWRlb3MgPSBBcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCd2aWRlbycpKTsKKyAgICAgICAgdmlkZW9zLmZvckVhY2goKHZpZGVvKSA9PiB7CisgICAgICAg
ICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5JywgY2FucGxheSwgZmFsc2UpOwor
ICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigncGxheWluZycsIHZlcmlmeUZyYW1l
c0JlaW5nRGlzcGxheWVkLCBmYWxzZSk7CisgICAgICAgIH0pOworICAgICAgICByZXF1ZXN0TmV4
dFN0cmVhbSgpOwogICAgIH0KIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRDYXBh
YmlsaXRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRDYXBhYmlsaXRpZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyMTQyNDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Niw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogdmlk
ZW8gdHJhY2sgY2FwYWJpbGl0aWVzOgogICBjYXBhYmlsaXRpZXMuYXNwZWN0UmF0aW8gPSB7IG1h
eDogMS43NzgsIG1pbjogMS4zMzMgfQogICBjYXBhYmlsaXRpZXMuZGV2aWNlSWQgPSA8VVVJRD4K
LSAgY2FwYWJpbGl0aWVzLmZhY2luZ01vZGUgPSBbIHVzZXIsIGVudmlyb25tZW50IF0KKyAgY2Fw
YWJpbGl0aWVzLmZhY2luZ01vZGUgPSBbIHVzZXIgXQogICBjYXBhYmlsaXRpZXMuZnJhbWVSYXRl
ID0geyBtYXg6IDYwLCBtaW46IDE1IH0KICAgY2FwYWJpbGl0aWVzLmhlaWdodCA9IHsgbWF4OiAx
MDgwLCBtaW46IDI0MCB9CiAgIGNhcGFiaWxpdGllcy53aWR0aCA9IHsgbWF4OiAxOTIwLCBtaW46
IDMyMCB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFp
bnRzLWFkdmFuY2VkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjE0MjQ5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25z
dHJhaW50cy1hZHZhbmNlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5
LDggQEAgUEFTUyBzZXR0aW5nc1snaGVpZ2h0J10gaXMgMzYwCiAqKiBDb25zdHJhaW50OiB7ImFk
dmFuY2VkIjpbeyJmYWNpbmdNb2RlIjoibGVmdCJ9LHsiZmFjaW5nTW9kZSI6InJpZ2h0In0seyJm
YWNpbmdNb2RlIjoiZW52aXJvbm1lbnQifSx7ImZhY2luZ01vZGUiOiJ1c2VyIn1dfSAtIG5vIHJl
cXVpcmVkIGNvbnN0cmFpbnRzLCBhZHZhbmNlZCBjb25zdHJhaW50cyBhcmUgaWdub3JlZC4KIFBB
U1Mgc2V0dGluZ3NbJ2ZhY2luZ01vZGUnXSBpcyAidXNlciIKIAotKiogQ29uc3RyYWludDogeyJ3
aWR0aCI6eyJtaW4iOjY0MH0sImFkdmFuY2VkIjpbeyJmYWNpbmdNb2RlIjoibGVmdCJ9LHsiZmFj
aW5nTW9kZSI6InJpZ2h0In0seyJmYWNpbmdNb2RlIjoiZW52aXJvbm1lbnQifSx7ImZhY2luZ01v
ZGUiOiJ1c2VyIn1dfSAtIGZpcnN0IHR3byBhZHZhbmNlZCBmYWNpbmdNb2RlcyBhcmUgbm90IHN1
cHBvcnRlZCwgdGhpcmQgaXMgdXNlZC4KLVBBU1Mgc2V0dGluZ3NbJ2ZhY2luZ01vZGUnXSBpcyAi
ZW52aXJvbm1lbnQiCisqKiBDb25zdHJhaW50OiB7IndpZHRoIjp7Im1pbiI6NjQwfSwiYWR2YW5j
ZWQiOlt7ImZhY2luZ01vZGUiOiJsZWZ0In0seyJmYWNpbmdNb2RlIjoicmlnaHQifSx7ImZhY2lu
Z01vZGUiOiJ1c2VyIn1dfSAtIGZpcnN0IHR3byBhZHZhbmNlZCBmYWNpbmdNb2RlcyBhcmUgbm90
IHN1cHBvcnRlZCwgdGhpcmQgaXMgdXNlZC4KK1BBU1Mgc2V0dGluZ3NbJ2ZhY2luZ01vZGUnXSBp
cyAidXNlciIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJh
aW50cy1hZHZhbmNlZC5odG1sCShyZXZpc2lvbiAyMTQyNDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDExICs4NiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWR2YW5jZWQ6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IGZhY2luZ01vZGU6ICJsZWZ0IiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgZmFjaW5nTW9kZTogInJpZ2h0IiB9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgZmFjaW5nTW9kZTogImVudmlyb25tZW50IiB9LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZmFjaW5nTW9kZTogInVzZXIiIH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB7IGZhY2luZ01v
ZGU6ICJlbnZpcm9ubWVudCIgfSwgCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB7IGZh
Y2luZ01vZGU6ICJ1c2VyIiB9LCAKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgXTsK
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12
aWRlby1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDI0
OSkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3RyYWludHMtdmlk
ZW8tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NywxOCArNTcsMTggQEAgUEFTUyBz
ZXR0aW5nc1snd2lkdGgnXSBpcyAzMjAKIFBBU1Mgc2V0dGluZ3NbJ2hlaWdodCddIGlzIDI0MAog
UEFTUyBzZXR0aW5nc1snZnJhbWVSYXRlJ10gaXMgMTUKIAotKiogQ29uc3RyYWludDogeyJmYWNp
bmdNb2RlIjoiZW52aXJvbm1lbnQifSAtIHNldCBmYWNpbmcgbW9kZSwgd2lkdGggYW5kIGhlaWdo
dCBzaG91bGQgcmVtYWluIHVuY2hhbmdlZAorKiogQ29uc3RyYWludDogeyJmcmFtZVJhdGUiOjIw
fSAtIHNldCBmcmFtZSByYXRlLCB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCByZW1haW4gdW5jaGFu
Z2VkCiBQQVNTIHNldHRpbmdzWyd3aWR0aCddIGlzIDMyMAogUEFTUyBzZXR0aW5nc1snaGVpZ2h0
J10gaXMgMjQwCi1QQVNTIHNldHRpbmdzWydmYWNpbmdNb2RlJ10gaXMgImVudmlyb25tZW50Igor
UEFTUyBzZXR0aW5nc1snZnJhbWVSYXRlJ10gaXMgMjAKIAotKiogQ29uc3RyYWludDogeyJmYWNp
bmdNb2RlIjoiVVNFUiIsImhlaWdodCI6NDAwfSAtIGlsbGVnYWwgZmFjaW5nIG1vZGUgdmFsdWUg
c2hvdWxkIGJlIGlnbm9yZWQsIGhlaWdodCBzaG91bGQgY2hhbmdlLgotUEFTUyBzZXR0aW5nc1sn
ZmFjaW5nTW9kZSddIGlzICJlbnZpcm9ubWVudCIKKyoqIENvbnN0cmFpbnQ6IHsiZmFjaW5nTW9k
ZSI6ImVudmlyb25tZW50IiwiaGVpZ2h0Ijo0MDB9IC0gaWxsZWdhbCBmYWNpbmcgbW9kZSB2YWx1
ZSBzaG91bGQgYmUgaWdub3JlZCwgaGVpZ2h0IHNob3VsZCBjaGFuZ2UuCitQQVNTIHNldHRpbmdz
WydmYWNpbmdNb2RlJ10gaXMgInVzZXIiCiBQQVNTIHNldHRpbmdzWyd3aWR0aCddIGlzIDMyMAog
UEFTUyBzZXR0aW5nc1snaGVpZ2h0J10gaXMgNDAwCiAKLSoqIENvbnN0cmFpbnQ6IHsiRkFDSU5H
TU9ERSI6InVzZXIiLCJmcmFtZVJhdGUiOjMwfSAtIHVua25vd24gY29uc3RyYWludCBzaG91bGQg
YmUgaWdub3JlZCwgZnJhbWUgcmF0ZSBzaG91bGQgY2hhbmdlLgotUEFTUyBzZXR0aW5nc1snZmFj
aW5nTW9kZSddIGlzICJlbnZpcm9ubWVudCIKKyoqIENvbnN0cmFpbnQ6IHsiV0lUREgiOjQwMCwi
ZnJhbWVSYXRlIjozMH0gLSB1bmtub3duIGNvbnN0cmFpbnQgc2hvdWxkIGJlIGlnbm9yZWQsIGZy
YW1lIHJhdGUgc2hvdWxkIGNoYW5nZS4KK1BBU1Mgc2V0dGluZ3NbJ3dpZHRoJ10gaXMgMzIwCiBQ
QVNTIHNldHRpbmdzWydmcmFtZVJhdGUnXSBpcyAzMAogCiAqKiBDb25zdHJhaW50OiB7ImFzcGVj
dFJhdGlvIjoiMS4zMzMzIn0gLSBhc3BlY3QgcmF0aW8gc2hvdWxkIGNoYW5nZSB3aWR0aCBhbmQg
aGVpZ2h0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJh
aW50cy12aWRlby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vYXBwbHktY29uc3RyYWludHMtdmlkZW8uaHRtbAkocmV2aXNpb24gMjE0MjQ5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02MCwxOSArNjAsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWQ6IHsgd2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDAsIGZyYW1lUmF0ZTogMTUgfSwKICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZTogInNldCBmYWNpbmcgbW9kZSwgd2lkdGggYW5kIGhlaWdodCBzaG91bGQgcmVtYWluIHVu
Y2hhbmdlZCIsCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQ6IHsgZmFjaW5nTW9kZTog
ImVudmlyb25tZW50IiB9LCAKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHsgd2lkdGg6
IDMyMCwgaGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZTogInNldCBmcmFtZSByYXRlLCB3aWR0aCBhbmQgaGVpZ2h0IHNo
b3VsZCByZW1haW4gdW5jaGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludDog
eyBmcmFtZVJhdGU6IDIwIH0sIAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyB3aWR0
aDogMzIwLCBoZWlnaHQ6IDI0MCwgZnJhbWVSYXRlOiAyMCB9LAogICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAiaWxsZWdh
bCBmYWNpbmcgbW9kZSB2YWx1ZSBzaG91bGQgYmUgaWdub3JlZCwgaGVpZ2h0IHNob3VsZCBjaGFu
Z2UuIiwKLSAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludDogeyBmYWNpbmdNb2RlOiAiVVNF
UiIsIGhlaWdodDogNDAwIH0sIAotICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyBmYWNp
bmdNb2RlOiAiZW52aXJvbm1lbnQiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDQwMCB9LAorICAgICAg
ICAgICAgICAgICAgICBjb25zdHJhaW50OiB7IGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCIsIGhl
aWdodDogNDAwIH0sIAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyBmYWNpbmdNb2Rl
OiAidXNlciIsIHdpZHRoOiAzMjAsIGhlaWdodDogNDAwIH0sCiAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJ1bmtub3du
IGNvbnN0cmFpbnQgc2hvdWxkIGJlIGlnbm9yZWQsIGZyYW1lIHJhdGUgc2hvdWxkIGNoYW5nZS4i
LAotICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50OiB7IEZBQ0lOR01PREU6ICJ1c2VyIiwg
ZnJhbWVSYXRlOiAzMCB9LCAKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHsgZmFjaW5n
TW9kZTogImVudmlyb25tZW50IiwgZnJhbWVSYXRlOiAzMCB9LAorICAgICAgICAgICAgICAgICAg
ICBjb25zdHJhaW50OiB7IFdJVERIOiA0MDAsIGZyYW1lUmF0ZTogMzAgfSwgCisgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkOiB7IHdpZHRoOiAzMjAsIGZyYW1lUmF0ZTogMzAgfSwKICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZTogImFzcGVjdCByYXRpbyBzaG91bGQgY2hhbmdlIHdpZHRoIGFuZCBoZWlnaHQuIiwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305320</attachid>
            <date>2017-03-24 13:44:41 -0700</date>
            <delta_ts>2017-03-24 16:27:18 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>gum_constraints_patch_7.txt</filename>
            <type>text/plain</type>
            <size>36120</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE3LTAzLTI0ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ImlkZWFsIiBjb25zdHJhaW50cyBwYXNzZWQgdG8gZ2V0VXNlck1lZGlhIHNob3VsZCBhZmZlY3Qg
Zml0bmVzcyBzY29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5jbHVkZSB0aGUgZml0bmVzcyBzY29yZSBjYWxjdWxhdGVkIGZvciBpZGVhbCBjb25z
dHJhaW50cyBpbiB0aGUgY2FsY3VsYXRpb24gb2YgYSBjYXB0dXJlCisgICAgICAgIG92ZXJhbGwg
ZGV2aWNlIGZpdG5lc3Mgc2NvcmUuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3Rpbmcg
dGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29u
c3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ29uc3RyYWludDo6Zml0bmVz
c0Rpc3RhbmNlKTogRHJpdmUtYnkgZml4OiByZXR1cm4gZWFybHkgaWYgaWRlYWwgaXMgZW1wdHks
CisgICAgICAgIG5vdCBleGFjdC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKTogUmV0dXJuIGZpdG5lc3MgZGlzdGFuY2Uu
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyk6
IEluY2x1ZGUgdGhlIGZpdG5lc3MgZGlzdGFuY2Ugb2Ygc3VwcG9ydGVkCisgICAgICAgIGlkZWFs
IGNvbnN0cmFpbnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3Vw
cG9ydHNDb25zdHJhaW50KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOiBTb3J0IGNh
bmRpZGF0ZSBzb3VyY2VzCisgICAgICAgIGJ5IHRoZWlyIGZpdG5lc3Mgc2NvcmUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVz
KTogRWFjaCB2aWRlbyBzb3VyY2Ugc2hvdWxkIHN1cHBvcnQKKyAgICAgICAgb25lIGZhY2luZyBt
b2RlLCBub3QgYm90aC4KKwogMjAxNy0wMy0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHFwU3VtIGluIFdlYlJUQyBzdGF0cwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFDb25zdHJhaW50cy5jcHAJKHJldmlzaW9uIDIxNDM2OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02OCw3ICs2OCw3IEBAIGRvdWJsZSBTdHJpbmdDb25zdHJhaW50OjpmaXRuZXNzRGlzdGFu
Y2UKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KTsKIAogICAgIC8vIDMuIElmIG5vIGlkZWFsIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlIGZpdG5l
c3MgZGlzdGFuY2UgaXMgMC4KLSAgICBpZiAobV9leGFjdC5pc0VtcHR5KCkpCisgICAgaWYgKG1f
aWRlYWwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIDUuIEZvciBhbGwg
c3RyaW5nIGFuZCBlbnVtIG5vbi1yZXF1aXJlZCBjb25zdHJhaW50cyAoZGV2aWNlSWQsIGdyb3Vw
SWQsIGZhY2luZ01vZGUsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkocmV2aXNpb24gMjE0
MzY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OnN1cHBvcnRzU2l6ZUFuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8SW50Q29uc3Ry
YWludD4gd2lkdGhDb25zdHJhaW50LCBzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IGhlaWdo
dENvbnN0cmFpbnQsIHN0ZDo6b3B0aW9uYWw8RG91YmxlQ29uc3RyYWludD4gZnJhbWVSYXRlQ29u
c3RyYWludCwgU3RyaW5nJiBiYWRDb25zdHJhaW50KQorYm9vbCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxJbnRDb25zdHJhaW50PiB3
aWR0aENvbnN0cmFpbnQsIHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4gaGVpZ2h0Q29uc3Ry
YWludCwgc3RkOjpvcHRpb25hbDxEb3VibGVDb25zdHJhaW50PiBmcmFtZVJhdGVDb25zdHJhaW50
LCBTdHJpbmcmIGJhZENvbnN0cmFpbnQsIGRvdWJsZSYgZGlzdGFuY2UpCiB7CiAgICAgaWYgKCF3
aWR0aENvbnN0cmFpbnQgJiYgIWhlaWdodENvbnN0cmFpbnQgJiYgIWZyYW1lUmF0ZUNvbnN0cmFp
bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTg0LDQwICsxODQsNDggQEAgYm9vbCBSZWFs
dGltZU1lZGlhU291cmNlOjpzdXBwb3J0c1NpemVBbgogICAgIEFTU0VSVCh0aGlzLT5jYXBhYmls
aXRpZXMoKSk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0
aWVzID0gKnRoaXMtPmNhcGFiaWxpdGllcygpOwogCisgICAgZGlzdGFuY2UgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisKICAgICBzdGQ6Om9wdGlvbmFsPGludD4g
d2lkdGg7CiAgICAgaWYgKHdpZHRoQ29uc3RyYWludCAmJiBjYXBhYmlsaXRpZXMuc3VwcG9ydHNX
aWR0aCgpKSB7Ci0gICAgICAgIGlmIChzdGQ6OmlzaW5mKGZpdG5lc3NEaXN0YW5jZSgqd2lkdGhD
b25zdHJhaW50KSkpIHsKKyAgICAgICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGZpdG5l
c3NEaXN0YW5jZSgqd2lkdGhDb25zdHJhaW50KTsKKyAgICAgICAgaWYgKHN0ZDo6aXNpbmYoY29u
c3RyYWludERpc3RhbmNlKSkgewogICAgICAgICAgICAgYmFkQ29uc3RyYWludCA9IHdpZHRoQ29u
c3RyYWludC0+bmFtZSgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAK
KyAgICAgICAgZGlzdGFuY2UgPSBzdGQ6Om1pbihkaXN0YW5jZSwgY29uc3RyYWludERpc3RhbmNl
KTsKICAgICAgICAgYXV0byByYW5nZSA9IGNhcGFiaWxpdGllcy53aWR0aCgpOwogICAgICAgICB3
aWR0aCA9IHdpZHRoQ29uc3RyYWludC0+dmFsdWVGb3JDYXBhYmlsaXR5UmFuZ2Uoc2l6ZSgpLndp
ZHRoKCksIHJhbmdlLnJhbmdlTWluKCkuYXNJbnQsIHJhbmdlLnJhbmdlTWF4KCkuYXNJbnQpOwog
ICAgIH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQ7CiAgICAgaWYgKGhlaWdodENv
bnN0cmFpbnQgJiYgY2FwYWJpbGl0aWVzLnN1cHBvcnRzSGVpZ2h0KCkpIHsKLSAgICAgICAgaWYg
KHN0ZDo6aXNpbmYoZml0bmVzc0Rpc3RhbmNlKCpoZWlnaHRDb25zdHJhaW50KSkpIHsKKyAgICAg
ICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGZpdG5lc3NEaXN0YW5jZSgqaGVpZ2h0Q29u
c3RyYWludCk7CisgICAgICAgIGlmIChzdGQ6OmlzaW5mKGNvbnN0cmFpbnREaXN0YW5jZSkpIHsK
ICAgICAgICAgICAgIGJhZENvbnN0cmFpbnQgPSBoZWlnaHRDb25zdHJhaW50LT5uYW1lKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICBkaXN0YW5jZSA9
IHN0ZDo6bWluKGRpc3RhbmNlLCBjb25zdHJhaW50RGlzdGFuY2UpOwogICAgICAgICBhdXRvIHJh
bmdlID0gY2FwYWJpbGl0aWVzLmhlaWdodCgpOwogICAgICAgICBoZWlnaHQgPSBoZWlnaHRDb25z
dHJhaW50LT52YWx1ZUZvckNhcGFiaWxpdHlSYW5nZShzaXplKCkuaGVpZ2h0KCksIHJhbmdlLnJh
bmdlTWluKCkuYXNJbnQsIHJhbmdlLnJhbmdlTWF4KCkuYXNJbnQpOwogICAgIH0KIAogICAgIHN0
ZDo6b3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGU7CiAgICAgaWYgKGZyYW1lUmF0ZUNvbnN0cmFp
bnQgJiYgY2FwYWJpbGl0aWVzLnN1cHBvcnRzRnJhbWVSYXRlKCkpIHsKLSAgICAgICAgaWYgKHN0
ZDo6aXNpbmYoZml0bmVzc0Rpc3RhbmNlKCpmcmFtZVJhdGVDb25zdHJhaW50KSkpIHsKKyAgICAg
ICAgZG91YmxlIGNvbnN0cmFpbnREaXN0YW5jZSA9IGZpdG5lc3NEaXN0YW5jZSgqZnJhbWVSYXRl
Q29uc3RyYWludCk7CisgICAgICAgIGlmIChzdGQ6OmlzaW5mKGNvbnN0cmFpbnREaXN0YW5jZSkp
IHsKICAgICAgICAgICAgIGJhZENvbnN0cmFpbnQgPSBmcmFtZVJhdGVDb25zdHJhaW50LT5uYW1l
KCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAorICAgICAgICBkaXN0
YW5jZSA9IHN0ZDo6bWluKGRpc3RhbmNlLCBjb25zdHJhaW50RGlzdGFuY2UpOwogICAgICAgICBh
dXRvIHJhbmdlID0gY2FwYWJpbGl0aWVzLmZyYW1lUmF0ZSgpOwogICAgICAgICBmcmFtZVJhdGUg
PSBmcmFtZVJhdGVDb25zdHJhaW50LT52YWx1ZUZvckNhcGFiaWxpdHlSYW5nZSh0aGlzLT5mcmFt
ZVJhdGUoKSwgcmFuZ2UucmFuZ2VNaW4oKS5hc0RvdWJsZSwgcmFuZ2UucmFuZ2VNYXgoKS5hc0Rv
dWJsZSk7CiAgICAgfQogCi0gICAgLy8gRWFjaCBvZiB0aGUgdmFsdWVzIGlzIHN1cHBvcnRlZCBp
bmRpdmlkdWFsbHksIHNlZSBpZiB0aGV5IGFsbCBjYW4gYmUgYXBwbGllZCBhdCB0aGUgc2FtZSB0
aW1lLgorICAgIC8vIEVhY2ggb2YgdGhlIG5vbi1udWxsIHZhbHVlcyBpcyBzdXBwb3J0ZWQgaW5k
aXZpZHVhbGx5LCBzZWUgaWYgdGhleSBhbGwgY2FuIGJlIGFwcGxpZWQgYXQgdGhlIHNhbWUgdGlt
ZS4KICAgICBpZiAoIXN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShXVEZNb3ZlKHdpZHRoKSwgV1RG
TW92ZShoZWlnaHQpLCBXVEZNb3ZlKGZyYW1lUmF0ZSkpKSB7CiAgICAgICAgIGlmICh3aWR0aENv
bnN0cmFpbnQpCiAgICAgICAgICAgICBiYWRDb25zdHJhaW50ID0gd2lkdGhDb25zdHJhaW50LT5u
YW1lKCk7CkBAIC00OTUsNiArNTAzLDggQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphcHBs
eUNvbnN0cmFpbgogCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzKGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBGbGF0dGVuZWRDb25zdHJhaW50JiBj
YW5kaWRhdGVzLCBTdHJpbmcmIGZhaWxlZENvbnN0cmFpbnQpCiB7CisgICAgbV9maXRuZXNzU2Nv
cmUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisKICAgICAvLyBo
dHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2Rmbi1zZWxlY3RzZXR0aW5n
cwogICAgIC8vCiAgICAgLy8gMS4gRWFjaCBjb25zdHJhaW50IHNwZWNpZmllcyBvbmUgb3IgbW9y
ZSB2YWx1ZXMgKG9yIGEgcmFuZ2Ugb2YgdmFsdWVzKSBmb3IgaXRzIHByb3BlcnR5LgpAQCAtNTE3
LDIwICs1MjcsMjYgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwog
ICAgIGZhaWxlZENvbnN0cmFpbnQgPSBlbXB0eVN0cmluZygpOwogCiAgICAgLy8gQ2hlY2sgd2lk
dGgsIGhlaWdodCwgYW5kIGZyYW1lIHJhdGUgc2VwYXJhdGVseSwgYmVjYXVzZSB3aGlsZSB0aGV5
IG1heSBiZSBzdXBwb3J0ZWQgaW5kaXZpZHVhbGx5IHRoZSBjb21iaW5hdGlvbiBtYXkgbm90IGJl
IHN1cHBvcnRlZC4KLSAgICBpZiAoIXN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShjb25zdHJhaW50
cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLndpZHRoKCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNv
bnN0cmFpbnRzKCkuaGVpZ2h0KCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCku
ZnJhbWVSYXRlKCksIGZhaWxlZENvbnN0cmFpbnQpKQorICAgIGRvdWJsZSBkaXN0YW5jZSA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgICBpZiAoIXN1cHBvcnRz
U2l6ZUFuZEZyYW1lUmF0ZShjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cygpLndpZHRo
KCksIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCkuaGVpZ2h0KCksIGNvbnN0cmFp
bnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKCkuZnJhbWVSYXRlKCksIGZhaWxlZENvbnN0cmFpbnQs
IG1fZml0bmVzc1Njb3JlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3RyYWlu
dHMubWFuZGF0b3J5Q29uc3RyYWludHMoKS5maWx0ZXIoWyZdKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgeworICAgICAgICBpZiAoIXN1cHBvcnRzQ29uc3RyYWludChjb25zdHJh
aW50KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoY29uc3RyYWlu
dC5jb25zdHJhaW50VHlwZSgpID09IE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoIHx8IGNvbnN0
cmFpbnQuY29uc3RyYWludFR5cGUoKSA9PSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQgfHwg
Y29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpID09IE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1l
UmF0ZSkgewogICAgICAgICAgICAgY2FuZGlkYXRlcy5zZXQoY29uc3RyYWludCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc3RkOjppc2luZihm
aXRuZXNzRGlzdGFuY2UoY29uc3RyYWludCkpKSB7CisgICAgICAgIGRvdWJsZSBjb25zdHJhaW50
RGlzdGFuY2UgPSBmaXRuZXNzRGlzdGFuY2UoY29uc3RyYWludCk7CisgICAgICAgIGlmIChzdGQ6
OmlzaW5mKGNvbnN0cmFpbnREaXN0YW5jZSkpIHsKICAgICAgICAgICAgIGZhaWxlZENvbnN0cmFp
bnQgPSBjb25zdHJhaW50Lm5hbWUoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAKKyAgICAgICAgZGlzdGFuY2UgPSBzdGQ6Om1pbihkaXN0YW5jZSwgY29uc3RyYWludERp
c3RhbmNlKTsKICAgICAgICAgY2FuZGlkYXRlcy5zZXQoY29uc3RyYWludCk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9KTsKQEAgLTUzOCw2ICs1NTQsOCBAQCBib29sIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzCiAgICAgaWYgKCFmYWlsZWRDb25zdHJhaW50LmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgbV9maXRuZXNzU2NvcmUgPSBkaXN0
YW5jZTsKKwogICAgIC8vIDQuIElmIGNhbmRpZGF0ZXMgaXMgZW1wdHksIHJldHVybiB1bmRlZmlu
ZWQgYXMgdGhlIHJlc3VsdCBvZiB0aGUgU2VsZWN0U2V0dGluZ3MoKSBhbGdvcml0aG0uCiAgICAg
aWYgKGNhbmRpZGF0ZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU0OCwy
MSArNTY2LDE5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MKICAg
ICAvLyA1LjEgY29tcHV0ZSB0aGUgZml0bmVzcyBkaXN0YW5jZSBiZXR3ZWVuIGl0IGFuZCBlYWNo
IHNldHRpbmdzIGRpY3Rpb25hcnkgaW4gY2FuZGlkYXRlcywgdHJlYXRpbmcgYmFyZQogICAgIC8v
ICAgICB2YWx1ZXMgb2YgcHJvcGVydGllcyBhcyBleGFjdC4KICAgICBWZWN0b3I8c3RkOjpwYWly
PGRvdWJsZSwgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+PiBzdXBwb3J0ZWRDb25zdHJhaW50
czsKLSAgICBtX2ZpdG5lc3NTY29yZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgYWR2YW5jZWRDb25zdHJhaW50IDogY29u
c3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cygpKSB7CiAgICAgICAgIGRvdWJsZSBjb25zdHJh
aW50RGlzdGFuY2UgPSAwOwogICAgICAgICBib29sIHN1cHBvcnRlZCA9IGZhbHNlOwogCiAgICAg
ICAgIGFkdmFuY2VkQ29uc3RyYWludC5mb3JFYWNoKFsmXShjb25zdCBNZWRpYUNvbnN0cmFpbnQm
IGNvbnN0cmFpbnQpIHsKLSAgICAgICAgICAgIGRvdWJsZSBkaXN0YW5jZSA9IGZpdG5lc3NEaXN0
YW5jZShjb25zdHJhaW50KTsKKyAgICAgICAgICAgIGRpc3RhbmNlID0gZml0bmVzc0Rpc3RhbmNl
KGNvbnN0cmFpbnQpOwogICAgICAgICAgICAgY29uc3RyYWludERpc3RhbmNlICs9IGRpc3RhbmNl
OwogICAgICAgICAgICAgaWYgKCFzdGQ6OmlzaW5mKGRpc3RhbmNlKSkKICAgICAgICAgICAgICAg
ICBzdXBwb3J0ZWQgPSB0cnVlOwogICAgICAgICB9KTsKIAotICAgICAgICBpZiAoY29uc3RyYWlu
dERpc3RhbmNlIDwgbV9maXRuZXNzU2NvcmUpCi0gICAgICAgICAgICBtX2ZpdG5lc3NTY29yZSA9
IGNvbnN0cmFpbnREaXN0YW5jZTsKKyAgICAgICAgbV9maXRuZXNzU2NvcmUgPSBzdGQ6Om1pbiht
X2ZpdG5lc3NTY29yZSwgY29uc3RyYWludERpc3RhbmNlKTsKIAogICAgICAgICAvLyA1LjIgSWYg
dGhlIGZpdG5lc3MgZGlzdGFuY2UgaXMgZmluaXRlIGZvciBvbmUgb3IgbW9yZSBzZXR0aW5ncyBk
aWN0aW9uYXJpZXMgaW4gY2FuZGlkYXRlcywga2VlcCB0aG9zZQogICAgICAgICAvLyAgICAgc2V0
dGluZ3MgZGljdGlvbmFyaWVzIGluIGNhbmRpZGF0ZXMsIGRpc2NhcmRpbmcgb3RoZXJzLgpAQCAt
NTczLDkgKzU4OSw5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2VsZWN0U2V0dGluZ3MK
IAogICAgIC8vIDYuIFNlbGVjdCBvbmUgc2V0dGluZ3MgZGljdGlvbmFyeSBmcm9tIGNhbmRpZGF0
ZXMsIGFuZCByZXR1cm4gaXQgYXMgdGhlIHJlc3VsdCBvZiB0aGUgU2VsZWN0U2V0dGluZ3MoKSBh
bGdvcml0aG0uCiAgICAgLy8gICAgVGhlIFVBIHNob3VsZCB1c2UgdGhlIG9uZSB3aXRoIHRoZSBz
bWFsbGVzdCBmaXRuZXNzIGRpc3RhbmNlLCBhcyBjYWxjdWxhdGVkIGluIHN0ZXAgMy4KLSAgICBp
ZiAoIXN0ZDo6aXNpbmYobV9maXRuZXNzU2NvcmUpKSB7CisgICAgaWYgKCFzdXBwb3J0ZWRDb25z
dHJhaW50cy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9ydGVkQ29uc3RyYWludHMucmVtb3Zl
QWxsTWF0Y2hpbmcoWyZdKGNvbnN0IHN0ZDo6cGFpcjxkb3VibGUsIE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwPiYgcGFpcikgLT4gYm9vbCB7Ci0gICAgICAgICAgICByZXR1cm4gcGFpci5maXJz
dCA+IG1fZml0bmVzc1Njb3JlOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6aXNpbmYocGFpci5m
aXJzdCkgfHwgcGFpci5maXJzdCA+IG1fZml0bmVzc1Njb3JlOwogICAgICAgICB9KTsKIAogICAg
ICAgICBpZiAoIXN1cHBvcnRlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkgewpAQCAtNTgzLDEyICs1
OTksODMgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncwogICAgICAg
ICAgICAgYWR2YW5jZWRDb25zdHJhaW50LmZvckVhY2goWyZdKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgewogICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMubWVyZ2UoY29uc3Ry
YWludCk7CiAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgbV9maXRuZXNzU2NvcmUgPSBz
dGQ6Om1pbihtX2ZpdG5lc3NTY29yZSwgc3VwcG9ydGVkQ29uc3RyYWludHNbMF0uZmlyc3QpOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3VwcG9ydHNDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludCYgY29u
c3RyYWludCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGhpcy0+Y2FwYWJpbGl0aWVzKCkpOworICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcyA9ICp0aGlzLT5j
YXBhYmlsaXRpZXMoKTsKKworICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgp
KSB7CisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDoKKyAgICAgICAgQVNTRVJU
KGNvbnN0cmFpbnQuaXNJbnQoKSk7CisgICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXMuc3VwcG9y
dHNXaWR0aCgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6SGVpZ2h0OgorICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc0ludCgpKTsKKyAgICAgICAg
cmV0dXJuIGNhcGFiaWxpdGllcy5zdXBwb3J0c0hlaWdodCgpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlOgorICAgICAgICBBU1NFUlQo
Y29uc3RyYWludC5pc0RvdWJsZSgpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5zdXBw
b3J0c0ZyYW1lUmF0ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJh
aW50VHlwZTo6QXNwZWN0UmF0aW86CisgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzRG91Ymxl
KCkpOworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzQXNwZWN0UmF0aW8oKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToK
KyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNEb3VibGUoKSk7CisgICAgICAgIHJldHVybiBj
YXBhYmlsaXRpZXMuc3VwcG9ydHNWb2x1bWUoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGU6CisgICAgICAgIEFTU0VSVChjb25zdHJh
aW50LmlzSW50KCkpOworICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzLnN1cHBvcnRzU2FtcGxl
UmF0ZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6
U2FtcGxlU2l6ZToKKyAgICAgICAgQVNTRVJUKGNvbnN0cmFpbnQuaXNJbnQoKSk7CisgICAgICAg
IHJldHVybiBjYXBhYmlsaXRpZXMuc3VwcG9ydHNTYW1wbGVTaXplKCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlOgorICAgICAgICBB
U1NFUlQoY29uc3RyYWludC5pc1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGll
cy5zdXBwb3J0c0ZhY2luZ01vZGUoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lZGlh
Q29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb246CisgICAgICAgIEFTU0VSVChjb25zdHJh
aW50LmlzQm9vbGVhbigpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5zdXBwb3J0c0Vj
aG9DYW5jZWxsYXRpb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkRldmljZUlkOgorICAgICAgICBBU1NFUlQoY29uc3RyYWludC5pc1N0cmluZygp
KTsKKyAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkOgorICAg
ICAgICBBU1NFUlQoY29uc3RyYWludC5pc1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGNhcGFi
aWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpVbmtub3duOgorICAgICAgICAvLyBVbmtub3duIChvciB1bnN1
cHBvcnRlZCkgY29uc3RyYWludHMgc2hvdWxkIGJlIGlnbm9yZWQuCisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3VwcG9ydHNDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKIHsKICAgICBBU1NFUlQoY29uc3RyYWlu
dHMuaXNWYWxpZCgpKTsKQEAgLTYzNSw2ICs3MjIsOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OmFwcGx5Q29uc3RyYWluCiAgICAgICAgICAgICBmcmFtZVJhdGUgPSBkb3duY2FzdDxEb3Vi
bGVDb25zdHJhaW50PigqY29uc3RyYWludCkudmFsdWVGb3JDYXBhYmlsaXR5UmFuZ2UodGhpcy0+
ZnJhbWVSYXRlKCksIHJhbmdlLnJhbmdlTWluKCkuYXNEb3VibGUsIHJhbmdlLnJhbmdlTWF4KCku
YXNEb3VibGUpOwogICAgICAgICB9CiAgICAgfQorCisgICAgLy8gRklYTUU6IGFwcGx5U2l6ZUFu
ZEZyYW1lUmF0ZSBzaG91bGQgdGFrZSBNZWRpYUNvbnN0cmFpbnQqIGluc3RlYWQgb2Ygc3RkOjpv
cHRpb25hbDw+IHNvIGl0IGNhbiBzZWUgaWYgYSBjb25zdHJhaW50IGlzIGFuIGV4YWN0LCBtaW4s
IG1heCwKKyAgICAvLyBvciBpZGVhbCwgYW5kIGNob29zZSB0aGUgY29ycmVjdCB2YWx1ZSBmb3Ig
cHJvcGVydGllcyB3aXRoIG5vbi1kaXNjcmVldCBjYXBhYmlsaXRpZXMgd2hlbiBuZWNlc3Nhcnku
CiAgICAgaWYgKHdpZHRoIHx8IGhlaWdodCB8fCBmcmFtZVJhdGUpCiAgICAgICAgIGFwcGx5U2l6
ZUFuZEZyYW1lUmF0ZShXVEZNb3ZlKHdpZHRoKSwgV1RGTW92ZShoZWlnaHQpLCBXVEZNb3ZlKGZy
YW1lUmF0ZSkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCShyZXZpc2lvbiAyMTQzNjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTExNiw2ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnN0cmFpbnRzKGNv
bnN0IE1lZGlhQ29uc3RyYWludHMmLCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludCYpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKCk7CiAKQEAgLTE5Miw3ICsxOTMsNyBAQCBwcm90ZWN0
ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25zdHJh
aW50cyYsIEZsYXR0ZW5lZENvbnN0cmFpbnQmLCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGRvdWJs
ZSBmaXRuZXNzRGlzdGFuY2UoY29uc3QgTWVkaWFDb25zdHJhaW50Jik7Ci0gICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+
IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IGhlaWdodCwgc3RkOjpvcHRpb25h
bDxEb3VibGVDb25zdHJhaW50PiwgU3RyaW5nJik7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IHdpZHRoLCBzdGQ6
Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+IGhlaWdodCwgc3RkOjpvcHRpb25hbDxEb3VibGVDb25z
dHJhaW50PiwgU3RyaW5nJiwgZG91YmxlJiBmaXRuZXNzRGlzdGFuY2UpOwogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
dGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pOwogICAgIHZp
cnR1YWwgdm9pZCBhcHBseUNvbnN0cmFpbnQoY29uc3QgTWVkaWFDb25zdHJhaW50Jik7CiAgICAg
dmlydHVhbCB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgRmxhdHRlbmVkQ29uc3RyYWludCYp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHJldmlzaW9uIDIxNDM2OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MiwzMiArNzIsNTYgQEAgdm9pZCBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFsaQogICAgIFZlY3RvcjxTdHJpbmc+IHZpZGVvU291cmNl
SWRzOwogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKIAorICAgIHN0cnVjdCBEZXZpY2VJ
bmZvIHsKKyAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3JlOworICAgICAgICBTdHJpbmcgaWQ7
CisgICAgfTsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBE
ZXZpY2VJbmZvJiBhLCBjb25zdCBEZXZpY2VJbmZvJiBiKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYS5maXRuZXNzU2NvcmUgPCBiLmZpdG5lc3NTY29yZTsKKyAgICAgICAgfQorICAg
IH0gc29ydEJhc2VkT25GaXRuZXNzU2NvcmU7CisKICAgICBpZiAoYXVkaW9Db25zdHJhaW50cy5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgYXV0byYgZGV2aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlhU291
cmNlOjphdWRpb0RldmljZXMoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZp
Y2VzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBhdXRvJiBkZXZpY2UgPSBkZXZpY2VzW2ld
OworICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2Vz
KCkpIHsKICAgICAgICAgICAgIGF1dG8gYXVkaW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmICgh
YXVkaW9Tb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGludmFsaWRIYW5kbGVyKQotICAg
ICAgICAgICAgICAgICAgICBpbnZhbGlkSGFuZGxlcihpbnZhbGlkQ29uc3RyYWludCk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VJZHMuYXBwZW5kKGRldmljZS5wZXJzaXN0ZW50SWQoKSk7CisgICAgICAgICAgICBpZiAoYXVk
aW9Tb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENv
bnN0cmFpbnQpKQorICAgICAgICAgICAgICAgIGRldmljZUluZm8uYXBwZW5kKHthdWRpb1NvdXJj
ZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGRldmljZUluZm8uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoaW52
YWxpZEhhbmRsZXIpCisgICAgICAgICAgICAgICAgaW52YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0
cmFpbnQpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgYXVkaW9T
b3VyY2VJZHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkZXZpY2VJbmZvLnNpemUoKSk7CisgICAg
ICAgIHN0ZDo6c29ydChkZXZpY2VJbmZvLmJlZ2luKCksIGRldmljZUluZm8uZW5kKCksIHNvcnRC
YXNlZE9uRml0bmVzc1Njb3JlKTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpbmZvIDogZGV2
aWNlSW5mbykKKyAgICAgICAgICAgIGF1ZGlvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChpbmZv
LmlkKTsKICAgICB9CiAKICAgICBpZiAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkpIHsKLSAg
ICAgICAgYXV0byYgZGV2aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0Rldmlj
ZXMoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VzLnNpemUoKTsgaSsr
KSB7Ci0gICAgICAgICAgICBhdXRvJiBkZXZpY2UgPSBkZXZpY2VzW2ldOworICAgICAgICBWZWN0
b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZp
Y2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsKICAgICAgICAg
ICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRl
dmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmICghdmlkZW9Tb3VyY2UtPnN1
cHBvcnRzQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGludmFsaWRIYW5kbGVyKQotICAgICAgICAgICAgICAgICAg
ICBpbnZhbGlkSGFuZGxlcihpbnZhbGlkQ29uc3RyYWludCk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmlkZW9Tb3VyY2VJZHMuYXBwZW5kKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSk7CisgICAgICAgICAgICBpZiAodmlkZW9Tb3VyY2UtPnN1cHBv
cnRzQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQorICAg
ICAgICAgICAgICAgIGRldmljZUluZm8uYXBwZW5kKHt2aWRlb1NvdXJjZS0+Zml0bmVzc1Njb3Jl
KCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRl
dmljZUluZm8uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoaW52YWxpZEhhbmRsZXIpCisg
ICAgICAgICAgICAgICAgaW52YWxpZEhhbmRsZXIoaW52YWxpZENvbnN0cmFpbnQpOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgdmlkZW9Tb3VyY2VJZHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShkZXZpY2VJbmZvLnNpemUoKSk7CisgICAgICAgIHN0ZDo6c29ydChk
ZXZpY2VJbmZvLmJlZ2luKCksIGRldmljZUluZm8uZW5kKCksIHNvcnRCYXNlZE9uRml0bmVzc1Nj
b3JlKTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpbmZvIDogZGV2aWNlSW5mbykKKyAgICAg
ICAgICAgIHZpZGVvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChpbmZvLmlkKTsKICAgICB9CiAK
ICAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9T
b3VyY2VJZHMpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCShyZXZpc2lvbiAyMTQzNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMzMsOCArMTMzLDEwIEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnVwZGF0ZVNldHQKIAogdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6aW5pdGlhbGl6
ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMpCiB7Ci0gICAgY2FwYWJpbGl0aWVzLmFkZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjpVc2VyKTsKLSAgICBjYXBhYmlsaXRpZXMuYWRkRmFjaW5nTW9kZShSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OkVudmlyb25tZW50KTsKKyAgICBpZiAoIWRldmljZUluZGV4
KCkpCisgICAgICAgIGNhcGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5nczo6VXNlcik7CisgICAgZWxzZQorICAgICAgICBjYXBhYmlsaXRpZXMuYWRkRmFj
aW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkVudmlyb25tZW50KTsKICAgICBj
YXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgzMjAsIDE5MjApKTsK
ICAgICBjYXBhYmlsaXRpZXMuc2V0SGVpZ2h0KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMjQwLCAx
MDgwKSk7CiAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJh
bmdlKDE1LjAsIDYwLjApKTsKQEAgLTM0OCw3ICszNTAsNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpnZW5lcmF0ZUZyCiAKICAgICBJbnRTaXplIHNpemUgPSB0aGlzLT5zaXplKCk7
CiAgICAgRmxvYXRSZWN0IGZyYW1lUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwotICAgIGNvbnRl
eHQuZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSksIGZhY2luZ01vZGUoKSA9
PSAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpVc2VyID8gQ29sb3I6OmJsYWNrIDogQ29s
b3I6OmdyYXkpOworICAgIGNvbnRleHQuZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwg
c2l6ZSksICFkZXZpY2VJbmRleCgpID8gQ29sb3I6OmJsYWNrIDogQ29sb3I6OmRhcmtHcmF5KTsK
IAogICAgIGlmICghbV9tdXRlZCAmJiBtX2VuYWJsZWQpIHsKICAgICAgICAgZHJhd1RleHQoY29u
dGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTQzNjgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEgKzEsMTMgQEAKKzIwMTctMDMtMjQgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3Ry
ZWFtXSAiaWRlYWwiIGNvbnN0cmFpbnRzIHBhc3NlZCB0byBnZXRVc2VyTWVkaWEgc2hvdWxkIGFm
ZmVjdCBmaXRuZXNzIHNjb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzAwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKTogV2hlbgorICAg
ICAgICBzaG9ydC1jaXJjdWl0aW5nIHRoZSB1c2VyIHByb21wdCBiZWNhdXNlIHRoZSBwYWdlIGlz
IGFscmVhZHkgYXV0aG9yaXplZCwgcmV0dXJuIHRoZSBmaXJzdAorICAgICAgICBhdWRpbyBhbmQv
b3IgdmlkZW8gZGV2aWNlIGJlY2F1c2Ugc28gdGhlIHBhZ2UgZ2V0cyB0aGUgb25lIHdpdGggdGhl
IGJlc3QgZml0bmVzcyBkaXN0YW5jZS4KKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIw
MTctMDMtMjMgPT0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAko
cmV2aXNpb24gMjE0MzY4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDI0
ICsyNDIsMjQgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAg
ICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcih0b3BMZXZlbERvY3VtZW50
T3JpZ2luSWRlbnRpZmllciktPnNlY3VyaXR5T3JpZ2luKCkpOwogICAgICAgICBhdXRvIHJlcXVl
c3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIsIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBhdWRp
b0RldmljZVVJRHMsIHZpZGVvRGV2aWNlVUlEcyk7CiAKLSAgICAgICAgU3RyaW5nIGF1dGhvcml6
ZWRBdWRpb0RldmljZTsKLSAgICAgICAgU3RyaW5nIGF1dGhvcml6ZWRWaWRlb0RldmljZTsKKyAg
ICAgICAgYm9vbCBhdXRob3JpemVkRm9yQXVkaW8gPSBmYWxzZTsKKyAgICAgICAgYm9vbCBhdXRo
b3JpemVkRm9yVmlkZW8gPSBmYWxzZTsKICAgICAgICAgYXV0byYgZmFtZVN0YXRlID0gc3RhdGVG
b3JSZXF1ZXN0KHJlcXVlc3QpOwogICAgICAgICBmb3IgKGF1dG8gZGV2aWNlVUlEIDogYXVkaW9E
ZXZpY2VVSURzKSB7CiAgICAgICAgICAgICBpZiAoZmFtZVN0YXRlLmhhc1Blcm1pc3Npb25Ub1Vz
ZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlEKSkgewotICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRB
dWRpb0RldmljZSA9IGRldmljZVVJRDsKKyAgICAgICAgICAgICAgICBhdXRob3JpemVkRm9yQXVk
aW8gPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGZvciAoYXV0byBkZXZpY2VVSUQgOiB2aWRlb0RldmljZVVJRHMpIHsKICAg
ICAgICAgICAgIGlmIChmYW1lU3RhdGUuaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShk
ZXZpY2VVSUQpKSB7Ci0gICAgICAgICAgICAgICAgYXV0aG9yaXplZFZpZGVvRGV2aWNlID0gZGV2
aWNlVUlEOworICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRGb3JWaWRlbyA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoYXVkaW9EZXZpY2VVSURzLmlzRW1wdHkoKSA9PSBhdXRob3JpemVkQXVkaW9EZXZpY2UuaXNF
bXB0eSgpICYmIHZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkgPT0gYXV0aG9yaXplZFZpZGVvRGV2
aWNlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1
c2VyTWVkaWFJRCwgYXV0aG9yaXplZEF1ZGlvRGV2aWNlLCBhdXRob3JpemVkVmlkZW9EZXZpY2Up
OworICAgICAgICBpZiAoYXV0aG9yaXplZEZvckF1ZGlvID09ICFhdWRpb0RldmljZVVJRHMuaXNF
bXB0eSgpICYmIGF1dGhvcml6ZWRGb3JWaWRlbyA9PSAhdmlkZW9EZXZpY2VVSURzLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwg
YXV0aG9yaXplZEZvckF1ZGlvID8gYXVkaW9EZXZpY2VVSURzWzBdIDogZW1wdHlTdHJpbmcoKSwg
YXV0aG9yaXplZEZvclZpZGVvID8gdmlkZW9EZXZpY2VVSURzWzBdIDogZW1wdHlTdHJpbmcoKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0
MzY4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTctMDMtMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSAiaWRlYWwiIGNvbnN0cmFpbnRzIHBhc3NlZCB0byBn
ZXRVc2VyTWVkaWEgc2hvdWxkIGFmZmVjdCBmaXRuZXNzIHNjb3JlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwNTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0tdmlkZW8tZWxlbWVudC1kaXNwbGF5cy1idWZmZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1kaXNwbGF5cy1i
dWZmZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2st
Z2V0Q2FwYWJpbGl0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWw6CisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby5odG1sOgor
CiAyMDE3LTAzLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgcXBTdW0gaW4gV2ViUlRDIHN0YXRzCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtZGlzcGxheXMtYnVm
ZmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtZGlzcGxheXMtYnVmZmVyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjE0MzY4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS12aWRlby1lbGVtZW50LWRpc3BsYXlzLWJ1ZmZlci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMsMTUgKzMsMjkgQEAgVGVzdHMgdGhhdCB0aGUgc3RyZWFtIGRpc3BsYXlz
IGNhcHR1cmVkIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKKworID09PSBjaGVja2lu
ZyBwaXhlbHMgZnJvbSBmcm9udCBjYW1lcmEgPT09CiBQQVNTIG1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEgZ2VuZXJhdGVkIGEgc3RyZWFtIHN1Y2Nlc3NmdWxseS4KLXZpZGVvLnNyYyA9IHdpbmRv
dy5VUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU3RyZWFtKQotdmlkZW8ucGxheSgpCit2aWRlb3Nb
MF0uc3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTdHJlYW0pCit2aWRlb3Nb
MF0ucGxheSgpCitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIHRydWUKK2NvbnRl
eHQuZHJhd0ltYWdlKHZpZGVvc1swXSwgMCwgMCwgNjgwLCAzNjApCitQQVNTIGlzUGl4ZWxUcmFu
c3BhcmVudChidWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4ZWxCbGFjayhidWZmZXIpIGlzIGZh
bHNlCitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4
ZWxCbGFjayhidWZmZXIpIGlzIHRydWUKIAotID09PSBjaGVja2luZyBwaXhlbHMgPT09CisgPT09
IGNoZWNraW5nIHBpeGVscyBmcm9tIGJhY2sgY2FtZXJhID09PQorUEFTUyBtZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhIGdlbmVyYXRlZCBhIHN0cmVhbSBzdWNjZXNzZnVsbHkuCit2aWRlb3NbMV0u
c3JjID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTdHJlYW0pCit2aWRlb3NbMV0u
cGxheSgpCiBQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIHRydWUKK2NvbnRleHQu
ZHJhd0ltYWdlKHZpZGVvc1sxXSwgMCwgMCwgNjgwLCAzNjApCiBQQVNTIGlzUGl4ZWxUcmFuc3Bh
cmVudChidWZmZXIpIGlzIGZhbHNlCiBQQVNTIGlzUGl4ZWxCbGFjayhidWZmZXIpIGlzIGZhbHNl
CitQQVNTIGlzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpIGlzIGZhbHNlCitQQVNTIGlzUGl4ZWxH
cmF5KGJ1ZmZlcikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCi0gCisgIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LWRpc3BsYXlzLWJ1ZmZlci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVu
dC1kaXNwbGF5cy1idWZmZXIuaHRtbAkocmV2aXNpb24gMjE0MzY4KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LWRpc3BsYXlzLWJ1ZmZl
ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEzIEBACiA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHZpZGVvIGNvbnRyb2xzIHdpZHRo
PSI2ODAiIGhlaWdodD0iMzYwIj48L3ZpZGVvPgorPHZpZGVvIGNvbnRyb2xzIHdpZHRoPSI2ODAi
IGhlaWdodD0iMzYwIj48L3ZpZGVvPgogPGNhbnZhcyB3aWR0aD0iNjgwIiBoZWlnaHQ9IjM2MCI+
PC9jYW52YXM+CiA8c2NyaXB0PgogICAgIGxldCBtZWRpYVN0cmVhbTsKLSAgICBsZXQgdmlkZW87
Ci0gICAgCisgICAgbGV0IHZpZGVvczsKICAgICBsZXQgYnVmZmVyOworICAgIGxldCBjdXJyZW50
VGVzdCA9IDA7CiAgICAgCiAgICAgZnVuY3Rpb24gaXNQaXhlbFRyYW5zcGFyZW50KHBpeGVsKQog
ICAgIHsKQEAgLTI1LDQ0ICsyNiw3OCBAQAogICAgICAgICByZXR1cm4gcGl4ZWxbMF0gPT09IDAg
JiYgcGl4ZWxbMV0gPT09IDAgJiYgcGl4ZWxbMl0gPT09IDAgJiYgcGl4ZWxbM10gPT09IDI1NTsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiB2ZXJpZnlGcmFtZXNCZWluZ0Rpc3BsYXllZCgpCisgICAg
ZnVuY3Rpb24gaXNQaXhlbEdyYXkocGl4ZWwpCiAgICAgewotICAgICAgICBsZXQgY2FudmFzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7Ci0gICAgICAgIGxldCBjb250ZXh0ID0g
Y2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIHJldHVybiBwaXhlbFswXSA9PT0gMTI4
ICYmIHBpeGVsWzFdID09PSAxMjggJiYgcGl4ZWxbMl0gPT09IDEyOCAmJiBwaXhlbFszXSA9PT0g
MjU1OworICAgIH0KIAotICAgICAgICBkZWJ1ZygnPGJyPiA9PT0gY2hlY2tpbmcgcGl4ZWxzID09
PScpOworICAgIGZ1bmN0aW9uIHZlcmlmeUZyYW1lc0JlaW5nRGlzcGxheWVkKCkKKyAgICB7Cisg
ICAgICAgIHZpZGVvc1tjdXJyZW50VGVzdF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGxheWluZycs
IHZlcmlmeUZyYW1lc0JlaW5nRGlzcGxheWVkLCBmYWxzZSkKIAorICAgICAgICBjYW52YXMgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdjYW52YXMnKTsKKyAgICAgICAgY29udGV4dCA9IGNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOworICAgICAgICAKICAgICAgICAgY29udGV4dC5jbGVhclJlY3Qo
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLQogICAgICAgICBsZXQgeCA9IGNh
bnZhcy53aWR0aCAqIC4wMzU7CiAgICAgICAgIGxldCB5ID0gY2FudmFzLmhlaWdodCAqIDAuNiAr
IDIgKyB4OwotICAgICAgICAKICAgICAgICAgYnVmZmVyID0gY29udGV4dC5nZXRJbWFnZURhdGEo
eCwgeSwgMSwgMSkuZGF0YTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCdpc1BpeGVsVHJhbnNwYXJl
bnQoYnVmZmVyKScpOwogICAgICAgICAKLSAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UodmlkZW8s
IDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgICAgIAorICAgICAgICBl
dmFsQW5kTG9nKGBjb250ZXh0LmRyYXdJbWFnZSh2aWRlb3NbJHtjdXJyZW50VGVzdH1dLCAwLCAw
LCAke2NhbnZhcy53aWR0aH0sICR7Y2FudmFzLmhlaWdodH0pYCk7CiAgICAgICAgIGJ1ZmZlciA9
IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgsIHksIDEsIDEpLmRhdGE7CiAgICAgICAgIHNob3VsZEJl
RmFsc2UoJ2lzUGl4ZWxUcmFuc3BhcmVudChidWZmZXIpJyk7CiAgICAgICAgIHNob3VsZEJlRmFs
c2UoJ2lzUGl4ZWxCbGFjayhidWZmZXIpJyk7CiAKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIHggPSBjYW52YXMud2lkdGggKiAuMDU7CisgICAgICAgIHkgPSBjYW52YXMuaGVpZ2h0
ICogLjA1OworICAgICAgICBidWZmZXIgPSBjb250ZXh0LmdldEltYWdlRGF0YSh4LCB5LCAxLCAx
KS5kYXRhOworICAgICAgICBzaG91bGRCZUZhbHNlKCdpc1BpeGVsVHJhbnNwYXJlbnQoYnVmZmVy
KScpOworICAgICAgICBpZiAoIWN1cnJlbnRUZXN0KQorICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCdpc1BpeGVsQmxhY2soYnVmZmVyKScpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ2lzUGl4ZWxHcmF5KGJ1ZmZlciknKTsKKworICAgICAgICBpZiAoY3VycmVudFRl
c3QgPj0gMSkgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZpZGVvc1tjdXJyZW50VGVzdF0ucGF1
c2UoKTsKKyAgICAgICAgKytjdXJyZW50VGVzdDsKKyAgICAgICAgcmVxdWVzdE5leHRTdHJlYW0o
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXR1cFZpZGVvRWxlbWVudChzdHJlYW0pCisgICAg
eworICAgICAgICBtZWRpYVN0cmVhbSA9IHN0cmVhbTsKKyAgICAgICAgdGVzdFBhc3NlZCgnbWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSBnZW5lcmF0ZWQgYSBzdHJlYW0gc3VjY2Vzc2Z1bGx5Licp
OworICAgICAgICBldmFsQW5kTG9nKGB2aWRlb3NbJHtjdXJyZW50VGVzdH1dLnNyYyA9IHdpbmRv
dy5VUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU3RyZWFtKWApOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIGNhbnBsYXkoKQogICAgIHsKLSAgICAgICAgZXZhbEFuZExvZygndmlkZW8ucGxheSgpJyk7
CisgICAgICAgIHZpZGVvc1tjdXJyZW50VGVzdF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2FucGxh
eScsIGNhbnBsYXksIGZhbHNlKQorICAgICAgICBldmFsQW5kTG9nKGB2aWRlb3NbJHtjdXJyZW50
VGVzdH1dLnBsYXkoKWApOwogICAgIH0KLQorICAgIAorICAgIGZ1bmN0aW9uIHJlcXVlc3ROZXh0
U3RyZWFtKCkKKyAgICB7CisgICAgICAgIGRlYnVnKGA8YnI+ID09PSBjaGVja2luZyBwaXhlbHMg
ZnJvbSAkeyFjdXJyZW50VGVzdCA/ICJmcm9udCIgOiAiYmFjayJ9IGNhbWVyYSA9PT1gKTsKKyAg
ICAgICAgbGV0IGNvbnN0cmFpbnRzID0ge3ZpZGVvIDogIWN1cnJlbnRUZXN0ID8gdHJ1ZSA6IHtm
YWNpbmdNb2RlOiAiZW52aXJvbm1lbnQifX07CisgICAgICAgIGdldFVzZXJNZWRpYSgiYWxsb3ci
LCBjb25zdHJhaW50cywgc2V0dXBWaWRlb0VsZW1lbnQpOworICAgIH0KKyAgICAKICAgICBmdW5j
dGlvbiBzdGFydCgpCiAgICAgewogICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUg
c3RyZWFtIGRpc3BsYXlzIGNhcHR1cmVkIGJ1ZmZlcnMgdG8gdGhlIHZpZGVvIGVsZW1lbnQuIik7
CiAKLSAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpOwotICAg
ICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdjYW5wbGF5JywgY2FucGxheSwgZmFsc2UpOwot
ICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdwbGF5aW5nJywgdmVyaWZ5RnJhbWVzQmVp
bmdEaXNwbGF5ZWQsIGZhbHNlKTsKLQotICAgICAgICBnZXRVc2VyTWVkaWEoImFsbG93Iiwge3Zp
ZGVvOnRydWV9LCBzZXR1cFZpZGVvRWxlbWVudFdpdGhTdHJlYW0pOworICAgICAgICB2aWRlb3Mg
PSBBcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpKTsKKyAg
ICAgICAgdmlkZW9zLmZvckVhY2goKHZpZGVvKSA9PiB7CisgICAgICAgICAgICB2aWRlby5hZGRF
dmVudExpc3RlbmVyKCdjYW5wbGF5JywgY2FucGxheSwgZmFsc2UpOworICAgICAgICAgICAgdmlk
ZW8uYWRkRXZlbnRMaXN0ZW5lcigncGxheWluZycsIHZlcmlmeUZyYW1lc0JlaW5nRGlzcGxheWVk
LCBmYWxzZSk7CisgICAgICAgIH0pOworICAgICAgICByZXF1ZXN0TmV4dFN0cmVhbSgpOwogICAg
IH0KIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRDYXBhYmlsaXRpZXMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay1nZXRDYXBhYmlsaXRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQzNjgp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2Fw
YWJpbGl0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogdmlkZW8gdHJhY2sgY2FwYWJp
bGl0aWVzOgogICBjYXBhYmlsaXRpZXMuYXNwZWN0UmF0aW8gPSB7IG1heDogMS43NzgsIG1pbjog
MS4zMzMgfQogICBjYXBhYmlsaXRpZXMuZGV2aWNlSWQgPSA8VVVJRD4KLSAgY2FwYWJpbGl0aWVz
LmZhY2luZ01vZGUgPSBbIHVzZXIsIGVudmlyb25tZW50IF0KKyAgY2FwYWJpbGl0aWVzLmZhY2lu
Z01vZGUgPSBbIHVzZXIgXQogICBjYXBhYmlsaXRpZXMuZnJhbWVSYXRlID0geyBtYXg6IDYwLCBt
aW46IDE1IH0KICAgY2FwYWJpbGl0aWVzLmhlaWdodCA9IHsgbWF4OiAxMDgwLCBtaW46IDI0MCB9
CiAgIGNhcGFiaWxpdGllcy53aWR0aCA9IHsgbWF4OiAxOTIwLCBtaW46IDMyMCB9CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Fw
cGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0MzY4KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNl
ZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDggQEAgUEFTUyBzZXR0
aW5nc1snaGVpZ2h0J10gaXMgMzYwCiAqKiBDb25zdHJhaW50OiB7ImFkdmFuY2VkIjpbeyJmYWNp
bmdNb2RlIjoibGVmdCJ9LHsiZmFjaW5nTW9kZSI6InJpZ2h0In0seyJmYWNpbmdNb2RlIjoiZW52
aXJvbm1lbnQifSx7ImZhY2luZ01vZGUiOiJ1c2VyIn1dfSAtIG5vIHJlcXVpcmVkIGNvbnN0cmFp
bnRzLCBhZHZhbmNlZCBjb25zdHJhaW50cyBhcmUgaWdub3JlZC4KIFBBU1Mgc2V0dGluZ3NbJ2Zh
Y2luZ01vZGUnXSBpcyAidXNlciIKIAotKiogQ29uc3RyYWludDogeyJ3aWR0aCI6eyJtaW4iOjY0
MH0sImFkdmFuY2VkIjpbeyJmYWNpbmdNb2RlIjoibGVmdCJ9LHsiZmFjaW5nTW9kZSI6InJpZ2h0
In0seyJmYWNpbmdNb2RlIjoiZW52aXJvbm1lbnQifSx7ImZhY2luZ01vZGUiOiJ1c2VyIn1dfSAt
IGZpcnN0IHR3byBhZHZhbmNlZCBmYWNpbmdNb2RlcyBhcmUgbm90IHN1cHBvcnRlZCwgdGhpcmQg
aXMgdXNlZC4KLVBBU1Mgc2V0dGluZ3NbJ2ZhY2luZ01vZGUnXSBpcyAiZW52aXJvbm1lbnQiCisq
KiBDb25zdHJhaW50OiB7IndpZHRoIjp7Im1pbiI6NjQwfSwiYWR2YW5jZWQiOlt7ImZhY2luZ01v
ZGUiOiJsZWZ0In0seyJmYWNpbmdNb2RlIjoicmlnaHQifSx7ImZhY2luZ01vZGUiOiJ1c2VyIn1d
fSAtIGZpcnN0IHR3byBhZHZhbmNlZCBmYWNpbmdNb2RlcyBhcmUgbm90IHN1cHBvcnRlZCwgdGhp
cmQgaXMgdXNlZC4KK1BBU1Mgc2V0dGluZ3NbJ2ZhY2luZ01vZGUnXSBpcyAidXNlciIKIAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5o
dG1sCShyZXZpc2lvbiAyMTQzNjgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2Fw
cGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTg2LDExICs4
NiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZWQ6IFsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGZhY2luZ01vZGU6ICJs
ZWZ0IiB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZmFjaW5n
TW9kZTogInJpZ2h0IiB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgZmFjaW5nTW9kZTogImVudmlyb25tZW50IiB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgZmFjaW5nTW9kZTogInVzZXIiIH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB7IGZhY2luZ01vZGU6ICJlbnZpcm9ubWVu
dCIgfSwgCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiB7IGZhY2luZ01vZGU6ICJ1c2Vy
IiB9LCAKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgXTsKIApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25z
dHJhaW50cy12aWRlby1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDM2OCkKKysrIExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3RyYWludHMtdmlkZW8tZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC01NywxOCArNTcsMTggQEAgUEFTUyBzZXR0aW5nc1snd2lkdGgn
XSBpcyAzMjAKIFBBU1Mgc2V0dGluZ3NbJ2hlaWdodCddIGlzIDI0MAogUEFTUyBzZXR0aW5nc1sn
ZnJhbWVSYXRlJ10gaXMgMTUKIAotKiogQ29uc3RyYWludDogeyJmYWNpbmdNb2RlIjoiZW52aXJv
bm1lbnQifSAtIHNldCBmYWNpbmcgbW9kZSwgd2lkdGggYW5kIGhlaWdodCBzaG91bGQgcmVtYWlu
IHVuY2hhbmdlZAorKiogQ29uc3RyYWludDogeyJmcmFtZVJhdGUiOjIwfSAtIHNldCBmcmFtZSBy
YXRlLCB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCByZW1haW4gdW5jaGFuZ2VkCiBQQVNTIHNldHRp
bmdzWyd3aWR0aCddIGlzIDMyMAogUEFTUyBzZXR0aW5nc1snaGVpZ2h0J10gaXMgMjQwCi1QQVNT
IHNldHRpbmdzWydmYWNpbmdNb2RlJ10gaXMgImVudmlyb25tZW50IgorUEFTUyBzZXR0aW5nc1sn
ZnJhbWVSYXRlJ10gaXMgMjAKIAotKiogQ29uc3RyYWludDogeyJmYWNpbmdNb2RlIjoiVVNFUiIs
ImhlaWdodCI6NDAwfSAtIGlsbGVnYWwgZmFjaW5nIG1vZGUgdmFsdWUgc2hvdWxkIGJlIGlnbm9y
ZWQsIGhlaWdodCBzaG91bGQgY2hhbmdlLgotUEFTUyBzZXR0aW5nc1snZmFjaW5nTW9kZSddIGlz
ICJlbnZpcm9ubWVudCIKKyoqIENvbnN0cmFpbnQ6IHsiZmFjaW5nTW9kZSI6ImVudmlyb25tZW50
IiwiaGVpZ2h0Ijo0MDB9IC0gaWxsZWdhbCBmYWNpbmcgbW9kZSB2YWx1ZSBzaG91bGQgYmUgaWdu
b3JlZCwgaGVpZ2h0IHNob3VsZCBjaGFuZ2UuCitQQVNTIHNldHRpbmdzWydmYWNpbmdNb2RlJ10g
aXMgInVzZXIiCiBQQVNTIHNldHRpbmdzWyd3aWR0aCddIGlzIDMyMAogUEFTUyBzZXR0aW5nc1sn
aGVpZ2h0J10gaXMgNDAwCiAKLSoqIENvbnN0cmFpbnQ6IHsiRkFDSU5HTU9ERSI6InVzZXIiLCJm
cmFtZVJhdGUiOjMwfSAtIHVua25vd24gY29uc3RyYWludCBzaG91bGQgYmUgaWdub3JlZCwgZnJh
bWUgcmF0ZSBzaG91bGQgY2hhbmdlLgotUEFTUyBzZXR0aW5nc1snZmFjaW5nTW9kZSddIGlzICJl
bnZpcm9ubWVudCIKKyoqIENvbnN0cmFpbnQ6IHsiV0lUREgiOjQwMCwiZnJhbWVSYXRlIjozMH0g
LSB1bmtub3duIGNvbnN0cmFpbnQgc2hvdWxkIGJlIGlnbm9yZWQsIGZyYW1lIHJhdGUgc2hvdWxk
IGNoYW5nZS4KK1BBU1Mgc2V0dGluZ3NbJ3dpZHRoJ10gaXMgMzIwCiBQQVNTIHNldHRpbmdzWydm
cmFtZVJhdGUnXSBpcyAzMAogCiAqKiBDb25zdHJhaW50OiB7ImFzcGVjdFJhdGlvIjoiMS4zMzMz
In0gLSBhc3BlY3QgcmF0aW8gc2hvdWxkIGNoYW5nZSB3aWR0aCBhbmQgaGVpZ2h0LgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3Ry
YWludHMtdmlkZW8uaHRtbAkocmV2aXNpb24gMjE0MzY4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02MCwxOSArNjAsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHsgd2lkdGg6
IDMyMCwgaGVpZ2h0OiAyNDAsIGZyYW1lUmF0ZTogMTUgfSwKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogInNldCBmYWNp
bmcgbW9kZSwgd2lkdGggYW5kIGhlaWdodCBzaG91bGQgcmVtYWluIHVuY2hhbmdlZCIsCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQ6IHsgZmFjaW5nTW9kZTogImVudmlyb25tZW50IiB9
LCAKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHsgd2lkdGg6IDMyMCwgaGVpZ2h0OiAy
NDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCIgfSwKKyAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZTogInNldCBmcmFtZSByYXRlLCB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCByZW1haW4gdW5j
aGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludDogeyBmcmFtZVJhdGU6IDIw
IH0sIAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyB3aWR0aDogMzIwLCBoZWlnaHQ6
IDI0MCwgZnJhbWVSYXRlOiAyMCB9LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAiaWxsZWdhbCBmYWNpbmcgbW9kZSB2
YWx1ZSBzaG91bGQgYmUgaWdub3JlZCwgaGVpZ2h0IHNob3VsZCBjaGFuZ2UuIiwKLSAgICAgICAg
ICAgICAgICAgICAgY29uc3RyYWludDogeyBmYWNpbmdNb2RlOiAiVVNFUiIsIGhlaWdodDogNDAw
IH0sIAotICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyBmYWNpbmdNb2RlOiAiZW52aXJv
bm1lbnQiLCB3aWR0aDogMzIwLCBoZWlnaHQ6IDQwMCB9LAorICAgICAgICAgICAgICAgICAgICBj
b25zdHJhaW50OiB7IGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCIsIGhlaWdodDogNDAwIH0sIAor
ICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogeyBmYWNpbmdNb2RlOiAidXNlciIsIHdpZHRo
OiAzMjAsIGhlaWdodDogNDAwIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJ1bmtub3duIGNvbnN0cmFpbnQgc2hv
dWxkIGJlIGlnbm9yZWQsIGZyYW1lIHJhdGUgc2hvdWxkIGNoYW5nZS4iLAotICAgICAgICAgICAg
ICAgICAgICBjb25zdHJhaW50OiB7IEZBQ0lOR01PREU6ICJ1c2VyIiwgZnJhbWVSYXRlOiAzMCB9
LCAKLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHsgZmFjaW5nTW9kZTogImVudmlyb25t
ZW50IiwgZnJhbWVSYXRlOiAzMCB9LAorICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50OiB7
IFdJVERIOiA0MDAsIGZyYW1lUmF0ZTogMzAgfSwgCisgICAgICAgICAgICAgICAgICAgIGV4cGVj
dGVkOiB7IHdpZHRoOiAzMjAsIGZyYW1lUmF0ZTogMzAgfSwKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogImFzcGVjdCBy
YXRpbyBzaG91bGQgY2hhbmdlIHdpZHRoIGFuZCBoZWlnaHQuIiwK
</data>

          </attachment>
      

    </bug>

</bugzilla>