<?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>123039</bug_id>
          
          <creation_ts>2013-10-18 14:50:00 -0700</creation_ts>
          <short_desc>Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB</short_desc>
          <delta_ts>2013-10-18 16:22:44 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>123027</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941338</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-18 14:50:00 -0700</bug_when>
    <thetext>Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB

This is another incremental step towards https://bugs.webkit.org/show_bug.cgi?id=123027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941341</commentid>
    <comment_count>1</comment_count>
      <attachid>214603</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-18 14:54:07 -0700</bug_when>
    <thetext>Created attachment 214603
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941347</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-18 15:03:11 -0700</bug_when>
    <thetext>WHOOPS, didn&apos;t include my WK2 changes.  New patch on its way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941356</commentid>
    <comment_count>3</comment_count>
      <attachid>214603</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-18 15:22:22 -0700</bug_when>
    <thetext>Comment on attachment 214603
Patch v1 

Attachment 214603 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6498007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941361</commentid>
    <comment_count>4</comment_count>
      <attachid>214603</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-18 15:37:11 -0700</bug_when>
    <thetext>Comment on attachment 214603
Patch v1 

Attachment 214603 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/6508009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941362</commentid>
    <comment_count>5</comment_count>
      <attachid>214610</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-18 15:41:47 -0700</bug_when>
    <thetext>Created attachment 214610
Patch v2 - Now with the WK2 changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941377</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-18 16:22:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157651</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214603</attachid>
            <date>2013-10-18 14:54:07 -0700</date>
            <delta_ts>2013-10-18 15:41:47 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>29539</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTU1YmMxLi5iMTEzMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMg
QEAKIDIwMTMtMTAtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIEdldCByaWQgb2YgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCIGFuZCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCIGluIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMwMzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgY29uY2VwdHMg
dG8gdGhlIGludGVyZmFjZXMgdG8gbWFrZSB0aGlzIHdvcms6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UpOgorCisgICAgICAgIEFkYXB0IHRvIHVzaW5nIEludGVyZmFjZSBwdHLigJlz
IGluc3RlYWQgb2YgTGV2ZWxEQiBwdHLigJlzOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQjo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6
OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCOjpzZXRJbmRleGVzUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kTGV2ZWxEQjo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpkZWxldGVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjp0cmFuc2FjdGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJv
cnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0
cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0
b3J5QmFja2VuZExldmVsREIuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIu
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmFib3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmNvbW1pdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmg6CisK
KzIwMTMtMTAtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1vdmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kIG9wZXJhdGlvbnMgdG8gdGhlIElEQlRyYW5zYWN0
aW9uQmFja2VuZCBpdHNlbGYuLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzMDI4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDIzYjdj
MjEuLmFhMWM0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTYsNiArNTYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFi
YXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKaW5k
ZXggMTY4NTMxMC4uYmQzYTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgK
QEAgLTM1LDggKzM1LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQmFj
a2luZ1N0b3JlOyAvLyBGSVhNRTogSURCQmFja2luZ1N0b3JlIGlzIGFjdHVhbGx5IGEgTGV2ZWxE
QiB0eXBlIGRvZXNuJ3QgYmVsb25nIGluIHRoZSBjcm9zcy1wbGF0Zm9ybSBkaXJlY3RvcnkuCiBj
bGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKK2NsYXNzIElE
QkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlSYW5nZTsKIApAQCAt
NDcsNyArNDksMTMgQEAgc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiBjbGFzcyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KLSAgICAKKworICAgIHZpcnR1YWwgSW5kZXhlZERC
OjpUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBj
b21taXQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBhYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CisKICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbihjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZURlbGV0ZU9i
amVjdFN0b3JlT3BlcmF0aW9uKGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVmVyc2lvbkNoYW5nZU9wZXJhdGlvbihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSURCRGF0YWJh
c2VNZXRhZGF0YSYpID0gMDsKQEAgLTYwLDYgKzY4LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb3VudE9wZXJhdGlvbihpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZURlbGV0ZVJhbmdlT3BlcmF0aW9u
KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNsZWFyT3Bl
cmF0aW9uKGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9
IDA7CisKKyAgICAvLyBGSVhNRTogSURCQmFja2luZ1N0b3JlIGlzIGFjdHVhbGx5IGEgTGV2ZWxE
QiB0eXBlLCBidXQgcHJvYmFibHkgZG9lc24ndCB3YXJyYW50IGFic3RyYWN0aW9uLgorICAgIC8v
IFRoaXMgaXMgdG8ga2VlcCB0aGUgYnVpbGQgd29ya2luZyB1bnRpbCB0aGlzIHJlcXVpcmVtZW50
IGNhbiBiZSByZW1vdmVkLgorICAgIHZpcnR1YWwgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlv
biogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSA9IDA7CisKKyAgICBpbnQ2NF90IGlkKCkgY29u
c3QgeyByZXR1cm4gbV9pZDsgfQorCitwcm90ZWN0ZWQ6CisgICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKGludDY0X3QgaWQpCisgICAgICAgIDogbV9pZChpZCkKKyAgICB7CisgICAg
fQorCitwcml2YXRlOgorICAgIGludDY0X3QgbV9pZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCmluZGV4IDVj
ZTg3ZDQuLjI4NTcyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
LmNwcApAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURC
RmFjdG9yeUJhY2tlbmRMZXZlbERCKiBmYWN0b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50
aWZpZXIpCitQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IElEQkRhdGFiYXNl
QmFja2VuZExldmVsREI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9y
ZSogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBT
dHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI+IGJhY2tlbmQgPSBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
QihuYW1lLCBkYXRhYmFzZSwgZmFjdG9yeSwgdW5pcXVlSWRlbnRpZmllcikpOwogICAgIGlmICgh
YmFja2VuZC0+b3BlbkludGVybmFsKCkpCkBAIC01MCw3ICs1MCw3IEBAIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRl
KGNvbnN0IFN0CiAgICAgcmV0dXJuIGJhY2tlbmQucmVsZWFzZSgpOwogfQogCi1JREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYg
bmFtZSwgSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIElEQkZhY3RvcnlCYWNrZW5kTGV2
ZWxEQiogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQorSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQjo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcm
IG5hbWUsIElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZSogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQogICAgIDog
bV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICwgbV9tZXRhZGF0YShuYW1lLCBJbnZh
bGlkSWQsIDAsIEludmFsaWRJZCkKICAgICAsIG1faWRlbnRpZmllcih1bmlxdWVJZGVudGlmaWVy
KQpAQCAtMTI2LDcgKzEyNiw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJEYXRh
YmFzZUJhY2tlbmRMZXZlbERCOjpiYWNraW5nU3RvcmUoKSBjb25zdAogdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQ
YXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEks
ICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZSIpOwotICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYg
KCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTE0MSw3
ICsxNDEsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZU9iamVjdFN0
b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdAogdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNlQmFj
a2VuZExldmVsREI6OmRlbGV0ZU9iamVjdFN0b3JlIik7Ci0gICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25J
ZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiA9IG1f
dHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhl
ZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2UpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90CiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0
ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZUluZGV4Iik7Ci0gICAgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJh
bnNhY3Rpb25JZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2Fj
dGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5z
YWN0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkg
PT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2UpOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlSW5kZXgoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI6OmRlbGV0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpkZWxldGVJbmRleCIpOwotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQp
OworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYgogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpnZXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIGJvb2wga2V5T25seSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmdldCIpOwotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQp
OworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cHV0KGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFs
dWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywg
Y29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKIHsKICAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnB1dCIpOwotICAgIElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0
aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24g
PSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlv
bikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6c2V0SW5k
ZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNz
UmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKIHsKICAgICBMT0coU3Rv
cmFnZUFQSSwgIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyIpOwotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAg
aWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlv
bi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTI4
Niw3ICsyODYsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4ZXNS
ZWFkeShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QsCiB7CiAgICAgTE9HKFN0b3JhZ2VB
UEksICJJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVzUmVhZHkiKTsKIAot
ICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2Fj
dGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAg
ICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogCkBAIC0yOTYsNyArMjk2LDcg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVzUmVhZHkoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90LAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
OjpvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRl
eGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUg
dGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpvcGVuQ3Vyc29yIik7Ci0g
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0
aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAg
ICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKQEAgLTMwNiw3ICszMDYsNyBA
QCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6Om9wZW5DdXJzb3IoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
Ojpjb3VudChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRh
dGFiYXNlQmFja2VuZExldmVsREI6OmNvdW50Iik7Ci0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7
CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiA9IG1fdHJh
bnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTMxOCw3ICszMTgsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI6OmNvdW50KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZShpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZSIp
OwotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFu
c2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7
CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFu
c2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0z
MjksNyArMzI5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5n
ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWMKIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQjo6Y2xlYXIoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjbGVhciIpOwotICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYg
KCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+
bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0zMzcsMTggKzMz
NywxNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNsZWFyKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZQogICAgIHRyYW5zYWN0aW9uLT5zY2hlZHVs
ZUNsZWFyT3BlcmF0aW9uKG9iamVjdFN0b3JlSWQsIGNhbGxiYWNrcyk7CiB9CiAKLXZvaWQgSURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gcHJwVHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFi
YXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uU3RhcnRlZChJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQogewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOwogICAgIGlmICh0cmFu
c2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7
CiAgICAgICAgIEFTU0VSVCghbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKTsKICAg
ICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247CiAg
ICAgfQogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uRmlu
aXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBwcnBUcmFuc2Fj
dGlvbikKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hl
ZChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHJhd1RyYW5zYWN0aW9uKQogewotICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IHBycFRy
YW5zYWN0aW9uOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRy
YW5zYWN0aW9uID0gcmF3VHJhbnNhY3Rpb247CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25zLmNv
bnRhaW5zKHRyYW5zYWN0aW9uLT5pZCgpKSk7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25zLmdl
dCh0cmFuc2FjdGlvbi0+aWQoKSkgPT0gdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIG1fdHJhbnNh
Y3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CkBAIC0zNTgsOSArMzU3LDkgQEAgdm9p
ZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0cmFuc2FjdGlvbkZpbmlzaGVkKFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWMKICAgICB9CiB9CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBwcnBUcmFuc2FjdGlvbikKK3ZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiByYXdUcmFuc2FjdGlvbikKIHsKLSAgICBSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24gPSBwcnBUcmFuc2FjdGlv
bjsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlv
biA9IHJhd1RyYW5zYWN0aW9uOwogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4
ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7CiAgICAgICAgIC8vIElmIHRoaXMgd2Fz
IGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAg
ICAgIC8vIGhhbGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0Nh
bGxzLgpAQCAtMzczLDkgKzM3Miw5IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoUGFzc1JlZlB0cjxJREJUCiAgICAgfQog
fQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uRmluaXNoZWRB
bmRDb21wbGV0ZUZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4g
cHJwVHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0
aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZpcmVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogcmF3VHJhbnNhY3Rpb24pCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+IHRyYW5zYWN0aW9uID0gcHJwVHJhbnNhY3Rpb247CisgICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24gPSByYXdUcmFuc2FjdGlvbjsKICAg
ICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lv
bkNoYW5nZSkKICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOwogfQpAQCAtNTI2LDcgKzUy
NSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cnVuSW50VmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsCiAKICAgICBWZWN0b3I8aW50NjRfdD4gb2Jq
ZWN0U3RvcmVJZHM7CiAgICAgY3JlYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZCwgZGF0YWJh
c2VDYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lv
bkNoYW5nZSk7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5z
YWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogCiAgICAgdHJhbnNhY3Rpb24tPnNjaGVkdWxlVmVyc2lv
bkNoYW5nZU9wZXJhdGlvbih0cmFuc2FjdGlvbklkLCByZXF1ZXN0ZWRWZXJzaW9uLCBjYWxsYmFj
a3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCBtX21ldGFkYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFi
YXNlQmFja2VuZExldmVsREIuaAppbmRleCBmZDk3ZmI5Li42ZDdjM2U0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaApAQCAtMzksMTMgKzM5LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlOwogY2xhc3MgSURCRGF0YWJhc2U7
Ci1jbGFzcyBJREJGYWN0b3J5QmFja2VuZExldmVsREI7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOworY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CitjbGFzcyBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yTGV2ZWxEQjsKIAogY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiA6IHB1Ymxp
YyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5h
bWUsIElEQkJhY2tpbmdTdG9yZSogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQios
IGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURC
QmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25z
dCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQmFj
a2VuZExldmVsREIoKTsKIAogICAgIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5n
U3RvcmUoKSBjb25zdDsKQEAgLTc1LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQpOwogCiAgICAgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxl
dmVsREIqIHRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuZ2V0KCk7IH0KLSAgICB2b2lkIHRyYW5zYWN0aW9uU3RhcnRlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+KTsKLSAgICB2b2lkIHRyYW5zYWN0
aW9uRmluaXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPik7Ci0g
ICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+KTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNo
ZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4p
OworICAgIHZvaWQgdHJhbnNhY3Rpb25TdGFydGVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSopOworICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZChJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqKTsKKyAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZp
cmVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOworICAgIHZvaWQgdHJhbnNhY3Rp
b25GaW5pc2hlZEFuZEFib3J0RmlyZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBi
b29sIGtleU9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKQEAgLTkzLDcgKzkz
LDcgQEAgcHVibGljOgogICAgIGNsYXNzIFZlcnNpb25DaGFuZ2VBYm9ydE9wZXJhdGlvbjsKIAog
cHJpdmF0ZToKLSAgICBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYgbmFt
ZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCKiwg
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKKyAgICBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIp
OwogCiAgICAgYm9vbCBvcGVuSW50ZXJuYWwoKTsKICAgICB2b2lkIHJ1bkludFZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgcmVxdWVzdGVk
VmVyc2lvbik7CkBAIC0xMDgsMTIgKzEwOCwxMiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1f
aWRlbnRpZmllcjsKICAgICAvLyBUaGlzIG1pZ2h0IG5vdCBuZWVkIHRvIGJlIGEgUmVmUHRyIHNp
bmNlIHRoZSBmYWN0b3J5J3MgbGlmZXRpbWUgaXMgdGhhdCBvZiB0aGUgcGFnZSBncm91cCwgYnV0
IGl0J3MgYmV0dGVyIHRvIGJlIGNvbnNlcnZpdGl2ZSB0aGFuIHNvcnJ5LgotICAgIFJlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZExldmVsREI+IG1fZmFjdG9yeTsKKyAgICBSZWZQdHI8SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U+IG1fZmFjdG9yeTsKIAogICAgIE93blB0cjxJREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yTGV2ZWxEQj4gbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yOwotICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb247CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9y
dW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPGlu
dDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqPiBUcmFuc2FjdGlvbk1hcDsKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8aW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
Kj4gVHJhbnNhY3Rpb25NYXA7CiAgICAgVHJhbnNhY3Rpb25NYXAgbV90cmFuc2FjdGlvbnM7CiAK
ICAgICBjbGFzcyBQZW5kaW5nT3BlbkNhbGwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRM
ZXZlbERCLmgKaW5kZXggYWZkOTEwZi4uZDgyMGY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlC
YWNrZW5kTGV2ZWxEQi5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJGYWN0b3J5QmFja2VuZExldmVsREIoKTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbnMgZnJvbSB3
ZWFrIHBvaW50ZXJzLgotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQo
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
SURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgT1ZFUlJJ
REUgRklOQUw7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRMZXZlbERCLmNwcAppbmRleCBjMDA1NTJlLi43NTM1MTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
Ym9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5
QWxsb3dlZChJREJCYWNraW5nU3RvcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZSog
YmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBr
ZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZl
Y3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cywg
VmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9y
TWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQorYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0
X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmUs
IFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzLCBWZWN0b3I8T3duUHRyPEluZGV4
V3JpdGVyPj4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBs
ZXRlZCkKIHsKICAgICBBU1NFUlQoaW5kZXhJZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkp
OwogICAgIGNvbXBsZXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuaAppbmRleCBkMDliNmU3Li5jNmIzNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExl
dmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2Ug
SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQiB7CiAgICAgICAgIElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZTo6SW5kZXhLZXlzIG1faW5kZXhLZXlzOwogICAgIH07CiAKLSAgICBib29sIG1h
a2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiwg
SURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9y
ZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2Vu
ZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRl
eFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29t
cGxldGVkKSBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgYm9vbCBtYWtlSW5kZXhXcml0ZXJzKFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgSURCQmFja2luZ1N0b3Jl
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBpbmRl
eFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5fVU5V
U0VEX1JFVFVSTjsKIAogICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5lcmF0ZUtleShQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKICAgICBi
b29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4sIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqLCBib29sIGNoZWNrQ3VycmVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcAppbmRleCA0
ODc1YWE1Li5lNWRiZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQi5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjcmVhdGUoSUQKIH0K
IAogSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQihJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBpZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+
JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2UpCi0gICAgOiBtX2lkKGlkKQorICAgIDogSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKGlkKQogICAgICwgbV9vYmplY3RTdG9yZUlkcyhv
YmplY3RTdG9yZUlkcykKICAgICAsIG1fbW9kZShtb2RlKQogICAgICwgbV9zdGF0ZShVbnVzZWQp
CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjph
Ym9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogICAgIG1fZGF0YWJhc2Ut
PnRyYW5zYWN0aW9uRmluaXNoZWQodGhpcyk7CiAKICAgICBpZiAobV9jYWxsYmFja3MpCi0gICAg
ICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KG1faWQsIGVycm9yKTsKKyAgICAgICAgbV9jYWxsYmFj
a3MtPm9uQWJvcnQoaWQoKSwgZXJyb3IpOwogCiAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rpb25G
aW5pc2hlZEFuZEFib3J0RmlyZWQodGhpcyk7CiAKQEAgLTIyMiwxMCArMjIyLDEwIEBAIHZvaWQg
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y29tbWl0KCkKICAgICBtX2RhdGFiYXNlLT50
cmFuc2FjdGlvbkZpbmlzaGVkKHRoaXMpOwogCiAgICAgaWYgKGNvbW1pdHRlZCkgewotICAgICAg
ICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZShtX2lkKTsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9u
Q29tcGxldGUoaWQoKSk7CiAgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRB
bmRDb21wbGV0ZUZpcmVkKHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY2FsbGJhY2tz
LT5vbkFib3J0KG1faWQsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6VW5rbm93bkVycm9yLCAiSW50ZXJuYWwgZXJyb3IgY29tbWl0dGluZyB0cmFuc2FjdGlv
bi4iKSk7CisgICAgICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KGlkKCksIElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiSW50ZXJuYWwg
ZXJyb3IgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4iKSk7CiAgICAgICAgIG1fZGF0YWJhc2UtPnRy
YW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKHRoaXMpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaAppbmRleCBjZDJjMDc1Li43NjVhOWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaApAQCAtNDks
OCArNDksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQj4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCKik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQigpOwogCi0g
ICAgdmlydHVhbCB2b2lkIGFib3J0KCk7Ci0gICAgdm9pZCBjb21taXQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pIE9WRVJSSURFIEZJTkFMOwogCiAgICAgY2xhc3MgT3BlcmF0aW9uIHsKICAg
ICBwdWJsaWM6CkBAIC01OCw5ICs1OSw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHBlcmZvcm0oKSA9IDA7CiAgICAgfTsKIAotICAgIHZvaWQgYWJvcnQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik7CiAgICAgdm9pZCBydW4oKTsKLSAgICBJbmRleGVkREI6OlRyYW5zYWN0
aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CisgICAgdmlydHVhbCBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gbV9tb2RlOyB9CiAgICAgY29uc3QgSGFzaFNldDxpbnQ2NF90PiYgc2NvcGUoKSBjb25zdCB7
IHJldHVybiBtX29iamVjdFN0b3JlSWRzOyB9CiAgICAgdm9pZCBzY2hlZHVsZVRhc2soUGFzc093
blB0cjxPcGVyYXRpb24+IHRhc2ssIFBhc3NPd25QdHI8T3BlcmF0aW9uPiBhYm9ydFRhc2sgPSBu
dWxscHRyKSB7IHNjaGVkdWxlVGFzayhJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1h
bFRhc2ssIHRhc2ssIGFib3J0VGFzayk7IH0KICAgICB2b2lkIHNjaGVkdWxlVGFzayhJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlLCBQYXNzT3duUHRyPE9wZXJhdGlvbj4sIFBh
c3NPd25QdHI8T3BlcmF0aW9uPiBhYm9ydFRhc2sgPSBudWxscHRyKTsKQEAgLTY4LDggKzY4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3Rlck9wZW5DdXJzb3IoSURCQ3Vyc29yQmFja2Vu
ZExldmVsREIqKTsKICAgICB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgpIHsgbV9wZW5kaW5nUHJl
ZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdm9pZCBkaWRDb21wbGV0ZVByZWVtcHRpdmVFdmVudCgp
IHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cy0tOyBBU1NFUlQobV9wZW5kaW5nUHJlZW1wdGl2
ZUV2ZW50cyA+PSAwKTsgfQotICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIGJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCkgeyByZXR1cm4gJm1fdHJhbnNhY3Rpb247IH0KLSAgICBpbnQ2
NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZpcnR1YWwgSURCQmFja2luZ1N0
b3JlOjpUcmFuc2FjdGlvbiogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSBPVkVSUklERSBGSU5B
TCB7IHJldHVybiAmbV90cmFuc2FjdGlvbjsgfQogCiAgICAgSURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQiogZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKQEAg
LTEwNCw3ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFza1RpbWVyRmlyZWQoVGltZXI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4qKTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNv
cnMoKTsKIAotICAgIGNvbnN0IGludDY0X3QgbV9pZDsKICAgICBjb25zdCBIYXNoU2V0PGludDY0
X3Q+IG1fb2JqZWN0U3RvcmVJZHM7CiAgICAgY29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1v
ZGUgbV9tb2RlOwogCg==
</data>
<flag name="commit-queue"
          id="237173"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214610</attachid>
            <date>2013-10-18 15:41:47 -0700</date>
            <delta_ts>2013-10-18 15:52:04 -0700</delta_ts>
            <desc>Patch v2 - Now with the WK2 changes</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32733</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTU1YmMxLi5iMTEzMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMg
QEAKIDIwMTMtMTAtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIEdldCByaWQgb2YgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCIGFuZCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCIGluIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMwMzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBmZXcgY29uY2VwdHMg
dG8gdGhlIGludGVyZmFjZXMgdG8gbWFrZSB0aGlzIHdvcms6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UpOgorCisgICAgICAgIEFkYXB0IHRvIHVzaW5nIEludGVyZmFjZSBwdHLigJlz
IGluc3RlYWQgb2YgTGV2ZWxEQiBwdHLigJlzOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQjo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6
OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCOjpzZXRJbmRleGVzUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kTGV2ZWxEQjo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpkZWxldGVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjp0cmFuc2FjdGlvblN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJv
cnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0
cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0
b3J5QmFja2VuZExldmVsREIuaDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIu
aDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRMZXZlbERCOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmFib3J0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI6OmNvbW1pdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmg6CisK
KzIwMTMtMTAtMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1vdmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kIG9wZXJhdGlvbnMgdG8gdGhlIElEQlRyYW5zYWN0
aW9uQmFja2VuZCBpdHNlbGYuLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIzMDI4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDIzYjdj
MjEuLmFhMWM0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTYsNiArNTYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFi
YXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKaW5k
ZXggMTY4NTMxMC4uYmQzYTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgK
QEAgLTM1LDggKzM1LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCQmFj
a2luZ1N0b3JlOyAvLyBGSVhNRTogSURCQmFja2luZ1N0b3JlIGlzIGFjdHVhbGx5IGEgTGV2ZWxE
QiB0eXBlIGRvZXNuJ3QgYmVsb25nIGluIHRoZSBjcm9zcy1wbGF0Zm9ybSBkaXJlY3RvcnkuCiBj
bGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKK2NsYXNzIElE
QkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlSYW5nZTsKIApAQCAt
NDcsNyArNDksMTMgQEAgc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiBjbGFzcyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KLSAgICAKKworICAgIHZpcnR1YWwgSW5kZXhlZERC
OjpUcmFuc2FjdGlvbk1vZGUgbW9kZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBj
b21taXQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBhYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CisKICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbihjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZURlbGV0ZU9i
amVjdFN0b3JlT3BlcmF0aW9uKGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVmVyc2lvbkNoYW5nZU9wZXJhdGlvbihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgSURCRGF0YWJh
c2VNZXRhZGF0YSYpID0gMDsKQEAgLTYwLDYgKzY4LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb3VudE9wZXJhdGlvbihpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZURlbGV0ZVJhbmdlT3BlcmF0aW9u
KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNsZWFyT3Bl
cmF0aW9uKGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9
IDA7CisKKyAgICAvLyBGSVhNRTogSURCQmFja2luZ1N0b3JlIGlzIGFjdHVhbGx5IGEgTGV2ZWxE
QiB0eXBlLCBidXQgcHJvYmFibHkgZG9lc24ndCB3YXJyYW50IGFic3RyYWN0aW9uLgorICAgIC8v
IFRoaXMgaXMgdG8ga2VlcCB0aGUgYnVpbGQgd29ya2luZyB1bnRpbCB0aGlzIHJlcXVpcmVtZW50
IGNhbiBiZSByZW1vdmVkLgorICAgIHZpcnR1YWwgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlv
biogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSA9IDA7CisKKyAgICBpbnQ2NF90IGlkKCkgY29u
c3QgeyByZXR1cm4gbV9pZDsgfQorCitwcm90ZWN0ZWQ6CisgICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKGludDY0X3QgaWQpCisgICAgICAgIDogbV9pZChpZCkKKyAgICB7CisgICAg
fQorCitwcml2YXRlOgorICAgIGludDY0X3QgbV9pZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwCmluZGV4IDVj
ZTg3ZDQuLjI4NTcyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
LmNwcApAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURC
RmFjdG9yeUJhY2tlbmRMZXZlbERCKiBmYWN0b3J5LCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50
aWZpZXIpCitQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IElEQkRhdGFiYXNl
QmFja2VuZExldmVsREI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQkJhY2tpbmdTdG9y
ZSogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBmYWN0b3J5LCBjb25zdCBT
dHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI+IGJhY2tlbmQgPSBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxE
QihuYW1lLCBkYXRhYmFzZSwgZmFjdG9yeSwgdW5pcXVlSWRlbnRpZmllcikpOwogICAgIGlmICgh
YmFja2VuZC0+b3BlbkludGVybmFsKCkpCkBAIC01MCw3ICs1MCw3IEBAIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRl
KGNvbnN0IFN0CiAgICAgcmV0dXJuIGJhY2tlbmQucmVsZWFzZSgpOwogfQogCi1JREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYg
bmFtZSwgSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIElEQkZhY3RvcnlCYWNrZW5kTGV2
ZWxEQiogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQorSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQjo6SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQihjb25zdCBTdHJpbmcm
IG5hbWUsIElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZSogZmFjdG9yeSwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKQogICAgIDog
bV9iYWNraW5nU3RvcmUoYmFja2luZ1N0b3JlKQogICAgICwgbV9tZXRhZGF0YShuYW1lLCBJbnZh
bGlkSWQsIDAsIEludmFsaWRJZCkKICAgICAsIG1faWRlbnRpZmllcih1bmlxdWVJZGVudGlmaWVy
KQpAQCAtMTI2LDcgKzEyNiw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJEYXRh
YmFzZUJhY2tlbmRMZXZlbERCOjpiYWNraW5nU3RvcmUoKSBjb25zdAogdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQ
YXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEks
ICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjcmVhdGVPYmplY3RTdG9yZSIpOwotICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYg
KCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTE0MSw3
ICsxNDEsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZU9iamVjdFN0
b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdAogdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRhdGFiYXNlQmFj
a2VuZExldmVsREI6OmRlbGV0ZU9iamVjdFN0b3JlIik7Ci0gICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25J
ZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiA9IG1f
dHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhl
ZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2UpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90CiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0
ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSkKIHsKICAgICBMT0coU3RvcmFnZUFQSSwg
IklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNyZWF0ZUluZGV4Iik7Ci0gICAgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJh
bnNhY3Rpb25JZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2Fj
dGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5z
YWN0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5tb2RlKCkg
PT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvblZlcnNpb25DaGFuZ2UpOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6Y3JlYXRlSW5kZXgoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVs
REI6OmRlbGV0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFz
ZUJhY2tlbmRMZXZlbERCOjpkZWxldGVJbmRleCIpOwotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQp
OworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYgogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpnZXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIGJvb2wga2V5T25seSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklE
QkRhdGFiYXNlQmFja2VuZExldmVsREI6OmdldCIpOwotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQp
OworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRMZXZlbERCOjpnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cHV0KGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFs
dWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywg
Y29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKIHsKICAgICBMT0coU3RvcmFnZUFQ
SSwgIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnB1dCIpOwotICAgIElEQlRyYW5zYWN0aW9u
QmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0
aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24g
PSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYgKCF0cmFuc2FjdGlv
bikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+bW9kZSgpICE9IElu
ZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6c2V0SW5k
ZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNz
UmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKIHsKICAgICBMT0coU3Rv
cmFnZUFQSSwgIklEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4S2V5cyIpOwotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAg
aWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlv
bi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKTsKQEAgLTI4
Niw3ICsyODYsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnNldEluZGV4ZXNS
ZWFkeShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QsCiB7CiAgICAgTE9HKFN0b3JhZ2VB
UEksICJJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVzUmVhZHkiKTsKIAot
ICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2Fj
dGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAg
ICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogCkBAIC0yOTYsNyArMjk2LDcg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpzZXRJbmRleGVzUmVhZHkoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90LAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
OjpvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJbmRl
eGVkREI6OkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUg
dGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpvcGVuQ3Vyc29yIik7Ci0g
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0
aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAg
ICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKQEAgLTMwNiw3ICszMDYsNyBA
QCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6Om9wZW5DdXJzb3IoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
Ojpjb3VudChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIklEQkRh
dGFiYXNlQmFja2VuZExldmVsREI6OmNvdW50Iik7Ci0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7
CisgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiA9IG1fdHJh
bnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTMxOCw3ICszMTgsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREI6OmNvdW50KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZShpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5nZSIp
OwotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFu
c2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7
CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFu
c2FjdGlvbi0+bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0z
MjksNyArMzI5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpkZWxldGVSYW5n
ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWMKIHZvaWQgSURCRGF0YWJhc2VC
YWNrZW5kTGV2ZWxEQjo6Y2xlYXIoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjpjbGVhciIpOwotICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHRyYW5zYWN0aW9uSWQpOworICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAgICAgaWYg
KCF0cmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi0+
bW9kZSgpICE9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25SZWFkT25seSk7CkBAIC0zMzcsMTggKzMz
NywxNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OmNsZWFyKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZQogICAgIHRyYW5zYWN0aW9uLT5zY2hlZHVs
ZUNsZWFyT3BlcmF0aW9uKG9iamVjdFN0b3JlSWQsIGNhbGxiYWNrcyk7CiB9CiAKLXZvaWQgSURC
RGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25TdGFydGVkKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gcHJwVHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFi
YXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uU3RhcnRlZChJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQogewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOwogICAgIGlmICh0cmFu
c2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7
CiAgICAgICAgIEFTU0VSVCghbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKTsKICAg
ICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247CiAg
ICAgfQogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uRmlu
aXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBwcnBUcmFuc2Fj
dGlvbikKK3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hl
ZChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHJhd1RyYW5zYWN0aW9uKQogewotICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiB0cmFuc2FjdGlvbiA9IHBycFRy
YW5zYWN0aW9uOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRy
YW5zYWN0aW9uID0gcmF3VHJhbnNhY3Rpb247CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25zLmNv
bnRhaW5zKHRyYW5zYWN0aW9uLT5pZCgpKSk7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25zLmdl
dCh0cmFuc2FjdGlvbi0+aWQoKSkgPT0gdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIG1fdHJhbnNh
Y3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CkBAIC0zNTgsOSArMzU3LDkgQEAgdm9p
ZCBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCOjp0cmFuc2FjdGlvbkZpbmlzaGVkKFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWMKICAgICB9CiB9CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
TGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBwcnBUcmFuc2FjdGlvbikKK3ZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kTGV2ZWxEQjo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiByYXdUcmFuc2FjdGlvbikKIHsKLSAgICBSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24gPSBwcnBUcmFuc2FjdGlv
bjsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlv
biA9IHJhd1RyYW5zYWN0aW9uOwogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4
ZWREQjo6VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlKSB7CiAgICAgICAgIC8vIElmIHRoaXMgd2Fz
IGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAg
ICAgIC8vIGhhbGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0Nh
bGxzLgpAQCAtMzczLDkgKzM3Miw5IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6
dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQoUGFzc1JlZlB0cjxJREJUCiAgICAgfQog
fQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0aW9uRmluaXNoZWRB
bmRDb21wbGV0ZUZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4g
cHJwVHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZExldmVsREI6OnRyYW5zYWN0
aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZpcmVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogcmF3VHJhbnNhY3Rpb24pCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREI+IHRyYW5zYWN0aW9uID0gcHJwVHJhbnNhY3Rpb247CisgICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24gPSByYXdUcmFuc2FjdGlvbjsKICAg
ICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lv
bkNoYW5nZSkKICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOwogfQpAQCAtNTI2LDcgKzUy
NSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQjo6cnVuSW50VmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsCiAKICAgICBWZWN0b3I8aW50NjRfdD4gb2Jq
ZWN0U3RvcmVJZHM7CiAgICAgY3JlYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZCwgZGF0YWJh
c2VDYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uVmVyc2lv
bkNoYW5nZSk7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+IHRyYW5z
YWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOworICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlv
bnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogCiAgICAgdHJhbnNhY3Rpb24tPnNjaGVkdWxlVmVyc2lv
bkNoYW5nZU9wZXJhdGlvbih0cmFuc2FjdGlvbklkLCByZXF1ZXN0ZWRWZXJzaW9uLCBjYWxsYmFj
a3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCBtX21ldGFkYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFi
YXNlQmFja2VuZExldmVsREIuaAppbmRleCBmZDk3ZmI5Li42ZDdjM2U0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRi
L0lEQkRhdGFiYXNlQmFja2VuZExldmVsREIuaApAQCAtMzksMTMgKzM5LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlOwogY2xhc3MgSURCRGF0YWJhc2U7
Ci1jbGFzcyBJREJGYWN0b3J5QmFja2VuZExldmVsREI7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCOworY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7CitjbGFzcyBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yTGV2ZWxEQjsKIAogY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQiA6IHB1Ymxp
YyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZExldmVsREI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5h
bWUsIElEQkJhY2tpbmdTdG9yZSogZGF0YWJhc2UsIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQios
IGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURC
QmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25z
dCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQmFj
a2VuZExldmVsREIoKTsKIAogICAgIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5n
U3RvcmUoKSBjb25zdDsKQEAgLTc1LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUluZGV4KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQpOwogCiAgICAgSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxl
dmVsREIqIHRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuZ2V0KCk7IH0KLSAgICB2b2lkIHRyYW5zYWN0aW9uU3RhcnRlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+KTsKLSAgICB2b2lkIHRyYW5zYWN0
aW9uRmluaXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPik7Ci0g
ICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREI+KTsKLSAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNo
ZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4p
OworICAgIHZvaWQgdHJhbnNhY3Rpb25TdGFydGVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSopOworICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZChJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqKTsKKyAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZp
cmVkKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOworICAgIHZvaWQgdHJhbnNhY3Rp
b25GaW5pc2hlZEFuZEFib3J0RmlyZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBi
b29sIGtleU9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKQEAgLTkzLDcgKzkz
LDcgQEAgcHVibGljOgogICAgIGNsYXNzIFZlcnNpb25DaGFuZ2VBYm9ydE9wZXJhdGlvbjsKIAog
cHJpdmF0ZToKLSAgICBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCKGNvbnN0IFN0cmluZyYgbmFt
ZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCKiwg
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKKyAgICBJREJEYXRhYmFzZUJhY2tlbmRM
ZXZlbERCKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIp
OwogCiAgICAgYm9vbCBvcGVuSW50ZXJuYWwoKTsKICAgICB2b2lkIHJ1bkludFZlcnNpb25DaGFu
Z2VUcmFuc2FjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgcmVxdWVzdGVk
VmVyc2lvbik7CkBAIC0xMDgsMTIgKzEwOCwxMiBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1f
aWRlbnRpZmllcjsKICAgICAvLyBUaGlzIG1pZ2h0IG5vdCBuZWVkIHRvIGJlIGEgUmVmUHRyIHNp
bmNlIHRoZSBmYWN0b3J5J3MgbGlmZXRpbWUgaXMgdGhhdCBvZiB0aGUgcGFnZSBncm91cCwgYnV0
IGl0J3MgYmV0dGVyIHRvIGJlIGNvbnNlcnZpdGl2ZSB0aGFuIHNvcnJ5LgotICAgIFJlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZExldmVsREI+IG1fZmFjdG9yeTsKKyAgICBSZWZQdHI8SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U+IG1fZmFjdG9yeTsKIAogICAgIE93blB0cjxJREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yTGV2ZWxEQj4gbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yOwotICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb247CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9y
dW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uOwogCi0gICAgdHlwZWRlZiBIYXNoTWFwPGlu
dDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIqPiBUcmFuc2FjdGlvbk1hcDsKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8aW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
Kj4gVHJhbnNhY3Rpb25NYXA7CiAgICAgVHJhbnNhY3Rpb25NYXAgbV90cmFuc2FjdGlvbnM7CiAK
ICAgICBjbGFzcyBQZW5kaW5nT3BlbkNhbGwgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRM
ZXZlbERCLmgKaW5kZXggYWZkOTEwZi4uZDgyMGY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlC
YWNrZW5kTGV2ZWxEQi5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJGYWN0b3J5QmFja2VuZExldmVsREIoKTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbnMgZnJvbSB3
ZWFrIHBvaW50ZXJzLgotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQo
Y29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
SURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgT1ZFUlJJ
REUgRklOQUw7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRMZXZlbERCLmNwcAppbmRleCBjMDA1NTJlLi43NTM1MTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
Ym9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5
QWxsb3dlZChJREJCYWNraW5nU3RvcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJP
YmplY3RTdG9yZUJhY2tlbmRMZXZlbERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4gdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZSog
YmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBr
ZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZl
Y3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cywg
VmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9y
TWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQorYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRMZXZl
bERCOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiB0cmFuc2FjdGlvbiwgSURCQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUsIGludDY0
X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmUs
IFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzLCBWZWN0b3I8T3duUHRyPEluZGV4
V3JpdGVyPj4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBs
ZXRlZCkKIHsKICAgICBBU1NFUlQoaW5kZXhJZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkp
OwogICAgIGNvbXBsZXRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZExldmVsREIuaAppbmRleCBkMDliNmU3Li5jNmIzNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExl
dmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2Ug
SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQiB7CiAgICAgICAgIElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZTo6SW5kZXhLZXlzIG1faW5kZXhLZXlzOwogICAgIH07CiAKLSAgICBib29sIG1h
a2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCPiwg
SURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9y
ZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2Vu
ZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRl
eFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29t
cGxldGVkKSBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgYm9vbCBtYWtlSW5kZXhXcml0ZXJzKFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgSURCQmFja2luZ1N0b3Jl
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4+KiBpbmRl
eFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5fVU5V
U0VEX1JFVFVSTjsKIAogICAgIFBhc3NSZWZQdHI8SURCS2V5PiBnZW5lcmF0ZUtleShQYXNzUmVm
UHRyPElEQkJhY2tpbmdTdG9yZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKICAgICBi
b29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4sIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqLCBib29sIGNoZWNrQ3VycmVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmNwcAppbmRleCA0
ODc1YWE1Li5lNWRiZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
TGV2ZWxEQi5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRMZXZlbERCPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjpjcmVhdGUoSUQKIH0K
IAogSURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2
ZWxEQihJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBpZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBIYXNoU2V0PGludDY0X3Q+
JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQiogZGF0YWJhc2UpCi0gICAgOiBtX2lkKGlkKQorICAgIDogSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKGlkKQogICAgICwgbV9vYmplY3RTdG9yZUlkcyhv
YmplY3RTdG9yZUlkcykKICAgICAsIG1fbW9kZShtb2RlKQogICAgICwgbV9zdGF0ZShVbnVzZWQp
CkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCOjph
Ym9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogICAgIG1fZGF0YWJhc2Ut
PnRyYW5zYWN0aW9uRmluaXNoZWQodGhpcyk7CiAKICAgICBpZiAobV9jYWxsYmFja3MpCi0gICAg
ICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KG1faWQsIGVycm9yKTsKKyAgICAgICAgbV9jYWxsYmFj
a3MtPm9uQWJvcnQoaWQoKSwgZXJyb3IpOwogCiAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rpb25G
aW5pc2hlZEFuZEFib3J0RmlyZWQodGhpcyk7CiAKQEAgLTIyMiwxMCArMjIyLDEwIEBAIHZvaWQg
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQjo6Y29tbWl0KCkKICAgICBtX2RhdGFiYXNlLT50
cmFuc2FjdGlvbkZpbmlzaGVkKHRoaXMpOwogCiAgICAgaWYgKGNvbW1pdHRlZCkgewotICAgICAg
ICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZShtX2lkKTsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9u
Q29tcGxldGUoaWQoKSk7CiAgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRB
bmRDb21wbGV0ZUZpcmVkKHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY2FsbGJhY2tz
LT5vbkFib3J0KG1faWQsIElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6VW5rbm93bkVycm9yLCAiSW50ZXJuYWwgZXJyb3IgY29tbWl0dGluZyB0cmFuc2FjdGlv
bi4iKSk7CisgICAgICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KGlkKCksIElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiSW50ZXJuYWwg
ZXJyb3IgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4iKSk7CiAgICAgICAgIG1fZGF0YWJhc2UtPnRy
YW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKHRoaXMpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaAppbmRleCBjZDJjMDc1Li43NjVhOWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZExldmVsREIuaApAQCAtNDks
OCArNDksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQj4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRMZXZl
bERCKik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQigpOwogCi0g
ICAgdmlydHVhbCB2b2lkIGFib3J0KCk7Ci0gICAgdm9pZCBjb21taXQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pIE9WRVJSSURFIEZJTkFMOwogCiAgICAgY2xhc3MgT3BlcmF0aW9uIHsKICAg
ICBwdWJsaWM6CkBAIC01OCw5ICs1OSw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHBlcmZvcm0oKSA9IDA7CiAgICAgfTsKIAotICAgIHZvaWQgYWJvcnQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik7CiAgICAgdm9pZCBydW4oKTsKLSAgICBJbmRleGVkREI6OlRyYW5zYWN0
aW9uTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CisgICAgdmlydHVhbCBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gbV9tb2RlOyB9CiAgICAgY29uc3QgSGFzaFNldDxpbnQ2NF90PiYgc2NvcGUoKSBjb25zdCB7
IHJldHVybiBtX29iamVjdFN0b3JlSWRzOyB9CiAgICAgdm9pZCBzY2hlZHVsZVRhc2soUGFzc093
blB0cjxPcGVyYXRpb24+IHRhc2ssIFBhc3NPd25QdHI8T3BlcmF0aW9uPiBhYm9ydFRhc2sgPSBu
dWxscHRyKSB7IHNjaGVkdWxlVGFzayhJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1h
bFRhc2ssIHRhc2ssIGFib3J0VGFzayk7IH0KICAgICB2b2lkIHNjaGVkdWxlVGFzayhJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlLCBQYXNzT3duUHRyPE9wZXJhdGlvbj4sIFBh
c3NPd25QdHI8T3BlcmF0aW9uPiBhYm9ydFRhc2sgPSBudWxscHRyKTsKQEAgLTY4LDggKzY4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3Rlck9wZW5DdXJzb3IoSURCQ3Vyc29yQmFja2Vu
ZExldmVsREIqKTsKICAgICB2b2lkIGFkZFByZWVtcHRpdmVFdmVudCgpIHsgbV9wZW5kaW5nUHJl
ZW1wdGl2ZUV2ZW50cysrOyB9CiAgICAgdm9pZCBkaWRDb21wbGV0ZVByZWVtcHRpdmVFdmVudCgp
IHsgbV9wZW5kaW5nUHJlZW1wdGl2ZUV2ZW50cy0tOyBBU1NFUlQobV9wZW5kaW5nUHJlZW1wdGl2
ZUV2ZW50cyA+PSAwKTsgfQotICAgIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIGJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uKCkgeyByZXR1cm4gJm1fdHJhbnNhY3Rpb247IH0KLSAgICBpbnQ2
NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZpcnR1YWwgSURCQmFja2luZ1N0
b3JlOjpUcmFuc2FjdGlvbiogYmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSBPVkVSUklERSBGSU5B
TCB7IHJldHVybiAmbV90cmFuc2FjdGlvbjsgfQogCiAgICAgSURCRGF0YWJhc2VCYWNrZW5kTGV2
ZWxEQiogZGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CiAKQEAg
LTEwNCw3ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFza1RpbWVyRmlyZWQoVGltZXI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQj4qKTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNv
cnMoKTsKIAotICAgIGNvbnN0IGludDY0X3QgbV9pZDsKICAgICBjb25zdCBIYXNoU2V0PGludDY0
X3Q+IG1fb2JqZWN0U3RvcmVJZHM7CiAgICAgY29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1v
ZGUgbV9tb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzJmMGY2Mi4uYzRjYmU0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEzLTEwLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQiBhbmQg
SURCVHJhbnNhY3Rpb25CYWNrZW5kTGV2ZWxEQiBpbiBJREJEYXRhYmFzZUJhY2tlbmRMZXZlbERC
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6cmVtb3ZlSURCRGF0YWJhc2VCYWNr
ZW5kKTogU3R1YiBvdXQgdGhpcyBuZXcgaW50ZXJmYWNlIG1ldGhvZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaDoKKwogMjAx
My0xMC0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBzb21lIFdpbmRvd3Mgc3BlY2lmaWMgY29kZSBmcm9tIFdlYktpdDIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJG
YWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmluZGV4IDEyMDRjMjguLjU0ZjYzZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcApAQCAtOTQsNiAr
OTQsMTEgQEAgdm9pZCBXZWJJREJGYWN0b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3MKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCit2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpyZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQo
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAppbmRleCA1Mzk5MGMyLi4xYjJlZGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCRmFjdG9yeUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaApAQCAtMzksOSArMzksMTEg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUJhY2tlbmQoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwotICAgIHZpcnR1
YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJh
c2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQg
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNl
KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgT1ZFUlJJREUgRklOQUw7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5p
cXVlSWRlbnRpZmllcikgT1ZFUlJJREUgRklOQUw7CiAKIHByaXZhdGU6CiAgICAgV2ViSURCRmFj
dG9yeUJhY2tlbmQoKTsK
</data>
<flag name="review"
          id="237174"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>