<?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>182028</bug_id>
          
          <creation_ts>2018-01-23 17:17:53 -0800</creation_ts>
          <short_desc>Remove pre-Sierra-OS-specific code in WTF and JavaScriptCore</short_desc>
          <delta_ts>2018-01-24 12:48:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1392369</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 17:17:53 -0800</bug_when>
    <thetext>Remove pre-Sierra-OS-specific code in WTF and JavaScriptCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392370</commentid>
    <comment_count>1</comment_count>
      <attachid>332103</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 17:18:17 -0800</bug_when>
    <thetext>Created attachment 332103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392385</commentid>
    <comment_count>2</comment_count>
      <attachid>332109</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 17:46:37 -0800</bug_when>
    <thetext>Created attachment 332109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392395</commentid>
    <comment_count>3</comment_count>
      <attachid>332109</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-23 18:11:11 -0800</bug_when>
    <thetext>Comment on attachment 332109
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392673</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-24 12:45:24 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/227467/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392679</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-24 12:48:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/36835633&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332103</attachid>
            <date>2018-01-23 17:18:17 -0800</date>
            <delta_ts>2018-01-23 17:46:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182028-20180123171817.patch</filename>
            <type>text/plain</type>
            <size>25358</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI3NDY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmVtb3ZlIHByZS1TaWVycmEtT1Mtc3BlY2lmaWMgY29kZSBpbiBXVEYgYW5k
IEphdmFTY3JpcHRDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODIwMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9y
WFBDQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yWFBD
Q29ubmVjdGlvbjo6aGFuZGxlRXZlbnQpOgorCiAyMDE4LTAxLTIzICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHByZWNpc2UgaW5kZXggbWFza2luZyBmb3Ig
RlRMIEdldEJ5QXJndW1lbnRCeVZhbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90
ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMjI3NDU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29u
bmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAg
ZGlzcGF0Y2hfcXVldWVfdCBtX3F1ZXVlOwogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAgYm9v
bCBtX2Nsb3NlZCB7IGZhbHNlIH07Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGJv
b2wgbV92YWxpZGF0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCShyZXZpc2lvbiAyMjc0
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3
IEBAIGV4dGVybiAiQyIgewogfQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkKKyNpZiBQTEFURk9STShNQUMp
CiBzdGF0aWMgYm9vbCBhdWRpdFRva2VuSGFzRW50aXRsZW1lbnQoYXVkaXRfdG9rZW5fdCB0b2tl
biwgTlNTdHJpbmcgKmVudGl0bGVtZW50KQogewogICAgIGF1dG8gdGFzayA9IGFkb3B0Q0YoU2Vj
VGFza0NyZWF0ZVdpdGhBdWRpdFRva2VuKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRva2VuKSk7CkBA
IC0xNjksNyArMTY5LDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5k
bAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGlmICghbV92YWxpZGF0ZWQpIHsKICAgICAgICAgYXVkaXRfdG9rZW5fdCB0b2tlbjsKICAg
ICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKG1fY29ubmVjdGlvbiwgJnRva2Vu
KTsKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMjc0NTkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHByZS1TaWVycmEt
T1Mtc3BlY2lmaWMgY29kZSBpbiBXVEYgYW5kIEphdmFTY3JpcHRDb3JlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwMjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAg
ICAgICAqIHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oOgorICAgICAg
ICAqIHd0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW06CisgICAgICAgIChX
VEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmdsZXRvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OmNhbGxPbk1haW5UaHJlYWQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjpjYW5jZWxD
YWxsT25NYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TWFpblRocmVhZEZ1bmN0
aW9uVHJhY2tlcjo6YWRkRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYWluVGhy
ZWFkRnVuY3Rpb25UcmFja2VyOjpyZW1vdmVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6cmVtb3ZlRnVuY3Rpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChX
VEY6OmNhbmNlbENhbGxPbk1haW5UaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9zcGkv
Y29jb2EvU2VjdXJpdHlTUEkuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg6
CisgICAgICAgICogd3RmL3RleHQvaWN1L1RleHRCcmVha0l0ZXJhdG9ySUNVLmg6CisgICAgICAg
IChXVEY6OlRleHRCcmVha0l0ZXJhdG9ySUNVOjpUZXh0QnJlYWtJdGVyYXRvcklDVSk6CisgICAg
ICAgIChXVEY6OmNhcmV0UnVsZXMpOiBEZWxldGVkLgorCiAyMDE4LTAxLTIzICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCB1c2UgYSBzcGVjdWxh
dGlvbiBmZW5jZSBvbiBWTSBlbnRyeS9leGl0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDIy
NzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3
NSw3ICs2NzUsNyBAQAogCiAjZW5kaWYgLyogT1MoREFSV0lOKSAqLwogCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApIHx8IFBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktf
U1RPUkFHRV9QQVJUSVRJT05JTkcgMQogI2VuZGlmCiAKQEAgLTEyMjYsMTQgKzEyMjYsMTQgQEAK
ICNlbmRpZgogCiAvKiBGSVhNRTogRW5hYmxlIFVTRV9PU19MT0cgd2hlbiBidWlsZGluZyB3aXRo
IHRoZSBwdWJsaWMgaU9TIDEwIFNESyBvbmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMjc3NTgz
NDM+LiAqLwotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1MpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspKQogI2RlZmluZSBVU0VfT1NfTE9HIDEKICNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogI2RlZmluZSBVU0VfT1NfU1RBVEUgMQogI2VuZGlmCiAjZW5kaWYKIAotI2lmIChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
KSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIEhBVkVfU0VD
X1RSVVNUX1NFUklBTElaQVRJT04gMQogI2VuZGlmCiAKQEAgLTEyNjEsNyArMTI2MSw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgVVNFX01F
RElBUkVNT1RFIDEKICNlbmRpZgogCkBAIC0xMjcwLDE0ICsxMjcwLDE0IEBACiAjcHJhZ21hIHN0
cmljdF9nc19jaGVjayhvbikKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMjAxICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMjAwCisjaWYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBIQVZFX1RP
VUNIX0JBUiAxCiAjZGVmaW5lIEhBVkVfQURWQU5DRURfU1BFTExfQ0hFQ0tJTkcgMQogCiAjaWYg
ZGVmaW5lZChfX0xQNjRfXykKICNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSIDEKICNlbmRpZgotI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMCAqLworI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KIAogI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1JUQykKICNkZWZpbmUgVVNFX0xJQldFQlJUQyAx
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEw
MiArMzIsNiBAQAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogI2VuZGlmCiAKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEyMDAKLQotc3RhdGljIGNvbnN0IE5TQWxl
cnRTdHlsZSBOU0FsZXJ0U3R5bGVDcml0aWNhbCA9IE5TQ3JpdGljYWxBbGVydFN0eWxlOwotc3Rh
dGljIGNvbnN0IE5TQWxlcnRTdHlsZSBOU0FsZXJ0U3R5bGVJbmZvcm1hdGlvbmFsID0gTlNJbmZv
cm1hdGlvbmFsQWxlcnRTdHlsZTsKLXN0YXRpYyBjb25zdCBOU0FsZXJ0U3R5bGUgTlNBbGVydFN0
eWxlV2FybmluZyA9IE5TV2FybmluZ0FsZXJ0U3R5bGU7Ci0KLXN0YXRpYyBjb25zdCBOU0JlemVs
U3R5bGUgTlNCZXplbFN0eWxlU2hhZG93bGVzc1NxdWFyZSA9IE5TU2hhZG93bGVzc1NxdWFyZUJl
emVsU3R5bGU7Ci1zdGF0aWMgY29uc3QgTlNCZXplbFN0eWxlIE5TQmV6ZWxTdHlsZVJvdW5kZWQg
PSBOU1JvdW5kZWRCZXplbFN0eWxlOwotc3RhdGljIGNvbnN0IE5TQmV6ZWxTdHlsZSBOU0JlemVs
U3R5bGVSb3VuZGVkRGlzY2xvc3VyZSA9IE5TUm91bmRlZERpc2Nsb3N1cmVCZXplbFN0eWxlOwot
Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeUxpZ2h0ID0g
TlNNb21lbnRhcnlMaWdodEJ1dHRvbjsKLXN0YXRpYyBjb25zdCBOU0J1dHRvblR5cGUgTlNCdXR0
b25UeXBlUHVzaE9uUHVzaE9mZiA9IE5TUHVzaE9uUHVzaE9mZkJ1dHRvbjsKLXN0YXRpYyBjb25z
dCBOU0J1dHRvblR5cGUgTlNCdXR0b25UeXBlVG9nZ2xlID0gTlNUb2dnbGVCdXR0b247Ci1zdGF0
aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZVN3aXRjaCA9IE5TU3dpdGNoQnV0dG9u
Owotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlwZSBOU0J1dHRvblR5cGVSYWRpbyA9IE5TUmFkaW9C
dXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeUNo
YW5nZSA9IE5TTW9tZW50YXJ5Q2hhbmdlQnV0dG9uOwotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlw
ZSBOU0J1dHRvblR5cGVPbk9mZiA9IE5TT25PZmZCdXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0
b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeVB1c2hJbiA9IE5TTW9tZW50YXJ5UHVzaEluQnV0
dG9uOwotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlwZSBOU0J1dHRvblR5cGVBY2NlbGVyYXRvciA9
IE5TQWNjZWxlcmF0b3JCdXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9u
VHlwZU11bHRpTGV2ZWxBY2NlbGVyYXRvciA9IE5TTXVsdGlMZXZlbEFjY2VsZXJhdG9yQnV0dG9u
OwotCi1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSA9IE5TQ29tcG9zaXRlQ29weTsKLXN0YXRpYyBjb25zdCBOU0NvbXBvc2l0aW5n
T3BlcmF0aW9uIE5TQ29tcG9zaXRpbmdPcGVyYXRpb25EZXN0aW5hdGlvbkluID0gTlNDb21wb3Np
dGVEZXN0aW5hdGlvbkluOwotc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlND
b21wb3NpdGluZ09wZXJhdGlvbkRlc3RpbmF0aW9uT3V0ID0gIE5TQ29tcG9zaXRlRGVzdGluYXRp
b25PdXQ7Ci1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5n
T3BlcmF0aW9uRGVzdGluYXRpb25PdmVyID0gTlNDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI7Ci1z
dGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlQXRvcCA9IE5TQ29tcG9zaXRlU291cmNlQXRvcDsKLXN0YXRpYyBjb25zdCBOU0NvbXBv
c2l0aW5nT3BlcmF0aW9uIE5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VJbiA9IE5TQ29tcG9z
aXRlU291cmNlSW47Ci1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBv
c2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciA9IE5TQ29tcG9zaXRlU291cmNlT3ZlcjsKLQotc3Rh
dGljIGNvbnN0IE5TQ29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKLXN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFs
bCA9IE5TU21hbGxDb250cm9sU2l6ZTsKLXN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29u
dHJvbFNpemVNaW5pID0gTlNNaW5pQ29udHJvbFNpemU7Ci0KLXN0YXRpYyBjb25zdCBOU1NsaWRl
clR5cGUgTlNTbGlkZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7Ci1zdGF0aWMgY29uc3Qg
TlNTbGlkZXJUeXBlIE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKLQot
c3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7
Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0Zs
YWdzQ2hhbmdlZE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tLZXlE
b3duID0gTlNLZXlEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFz
a0tleVVwID0gTlNLZXlVcE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1h
c2tMZWZ0TW91c2VEb3duID0gTlNMZWZ0TW91c2VEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2
ZW50TWFzayBOU0V2ZW50TWFza0xlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWRN
YXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAgPSBO
U0xlZnRNb3VzZVVwTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFza090
aGVyTW91c2VEb3duID0gTlNPdGhlck1vdXNlRG93bk1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVu
dE1hc2sgTlNFdmVudE1hc2tPdGhlck1vdXNlVXAgPSBOU090aGVyTW91c2VVcE1hc2s7Ci1zdGF0
aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tQZXJpb2RpYyA9IE5TUGVyaW9kaWNNYXNr
Owotc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrUmlnaHRNb3VzZURvd24gPSBO
U1JpZ2h0TW91c2VEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFz
a1JpZ2h0TW91c2VVcCA9IE5TUmlnaHRNb3VzZVVwTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50
TWFzayBOU0V2ZW50TWFza01vdXNlTW92ZWQgPSBOU01vdXNlTW92ZWRNYXNrOwotc3RhdGljIGNv
bnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrU2Nyb2xsV2hlZWwgPSBOU1Njcm9sbFdoZWVsTWFz
azsKLQotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZs
YWdPcHRpb24gPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSBOU0NvbnRyb2xLZXlNYXNrOwot
c3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZsYWdDYXBz
TG9jayA9IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1vZGlmaWVy
RmxhZ3MgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgPSAgTlNDb21tYW5kS2V5TWFzazsKLXN0
YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNl
SW5kZXBlbmRlbnRGbGFnc01hc2sgPSAgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NN
YXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZs
YWdGdW5jdGlvbiA9IE5TRnVuY3Rpb25LZXlNYXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2Rp
ZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2V5
TWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJG
bGFnU2hpZnQgPSBOU1NoaWZ0S2V5TWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJG
bGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7Ci0KLXN0YXRpYyBj
b25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGlj
YXRpb25EZWZpbmVkOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3ND
aGFuZ2VkID0gTlNGbGFnc0NoYW5nZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVu
dFR5cGVLZXlEb3duID0gTlNLZXlEb3duOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZl
bnRUeXBlS2V5VXAgPSBOU0tleVVwOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biA9IE5TTGVmdE1vdXNlRG93bjsKLXN0YXRpYyBjb25zdCBOU0V2ZW50
VHlwZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7Ci1z
dGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1v
dXNlVXA7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQg
PSBOU01vdXNlRW50ZXJlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkID0gTlNNb3VzZUV4aXRlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2
ZW50VHlwZU1vdXNlTW92ZWQgPSBOU01vdXNlTW92ZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247Ci1zdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJN
b3VzZURyYWdnZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXAgPSBOU090aGVyTW91c2VVcDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50
VHlwZVBlcmlvZGljID0gTlNQZXJpb2RpYzsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duID0gTlNSaWdodE1vdXNlRG93bjsKLXN0YXRpYyBjb25zdCBO
U0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkID0gTlNSaWdodE1vdXNlRHJh
Z2dlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCA9
IE5TUmlnaHRNb3VzZVVwOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlU2Ny
b2xsV2hlZWwgPSBOU1Njcm9sbFdoZWVsOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZl
bnRUeXBlU3lzdGVtRGVmaW5lZCA9IE5TU3lzdGVtRGVmaW5lZDsKLQotdHlwZWRlZiBOU1VJbnRl
Z2VyIE5TV2luZG93U3R5bGVNYXNrOwotc3RhdGljIGNvbnN0IE5TV2luZG93U3R5bGVNYXNrIE5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyA9IE5TQm9yZGVybGVzc1dpbmRvd01hc2s7Ci1zdGF0
aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSA9IE5T
Q2xvc2FibGVXaW5kb3dNYXNrOwotc3RhdGljIGNvbnN0IE5TV2luZG93U3R5bGVNYXNrIE5TV2lu
ZG93U3R5bGVNYXNrRnVsbFNjcmVlbiA9IE5TRnVsbFNjcmVlbldpbmRvd01hc2s7Ci1zdGF0aWMg
Y29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRW
aWV3ID0gTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzazsKLXN0YXRpYyBjb25zdCBOU1dp
bmRvd1N0eWxlTWFzayBOU1dpbmRvd1N0eWxlTWFza0hVRFdpbmRvdyA9IE5TSFVEV2luZG93TWFz
azsKLXN0YXRpYyBjb25zdCBOU1dpbmRvd1N0eWxlTWFzayBOU1dpbmRvd1N0eWxlTWFza01pbmlh
dHVyaXphYmxlID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2s7Ci1zdGF0aWMgY29uc3QgTlNX
aW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tOb25hY3RpdmF0aW5nUGFuZWwgPSBOU05v
bmFjdGl2YXRpbmdQYW5lbE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUgPSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci1zdGF0aWMg
Y29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tUZXh0dXJlZEJhY2tncm91
bmQgPSBOU1RleHR1cmVkQmFja2dyb3VuZFdpbmRvd01hc2s7Ci1zdGF0aWMgY29uc3QgTlNXaW5k
b3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgPSBOU1RpdGxlZFdpbmRvd01hc2s7
Ci1zdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tVdGlsaXR5
V2luZG93ID0gTlNVdGlsaXR5V2luZG93TWFzazsKLQotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA8IDEwMTIwMAotCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEIDwgMTAxMzAwCiAKIHR5cGVkZWYgTlNJbnRlZ2VyIE5TQ29udHJvbFN0YXRlVmFsdWU7
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNl
ZEJ5U2FmYXJpLm1tCShyZXZpc2lvbiAyMjc0NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9tYWMvRGVw
cmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDk3ICsz
OCw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0
KTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQodm9pZCAo
KmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpOwotCi1jbGFzcyBNYWluVGhyZWFkRnVu
Y3Rpb25UcmFja2VyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgTWFpblRocmVhZEZ1bmN0aW9uVHJh
Y2tlciYgc2luZ2xldG9uKCkKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlRmxhZzsKLQotICAgICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1haW5UaHJlYWRG
dW5jdGlvblRyYWNrZXI+IHRyYWNrZXI7Ci0KLSAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFsmXSB7Ci0gICAgICAgICAgICB0cmFja2VyLmNvbnN0cnVjdCgpOwotICAgICAgICB9KTsK
LQotICAgICAgICByZXR1cm4gdHJhY2tlcjsKLSAgICB9Ci0KLSAgICB2b2lkIGNhbGxPbk1haW5U
aHJlYWQodm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi0gICAgewotICAg
ICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gYWRkRnVuY3Rpb24oZnVuY3Rpb24sIGNvbnRleHQp
OwotCi0gICAgICAgIFdURjo6Y2FsbE9uTWFpblRocmVhZChbdGhpcywgZnVuY3Rpb24sIGNvbnRl
eHQsIGlkZW50aWZpZXJdIHsKLSAgICAgICAgICAgIGlmICghcmVtb3ZlSWRlbnRpZmllcihmdW5j
dGlvbiwgY29udGV4dCwgaWRlbnRpZmllcikpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgICAgICBmdW5jdGlvbihjb250ZXh0KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
dm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lk
KiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgcmVtb3ZlRnVuY3Rpb25zKGZ1bmN0aW9uLCBjb250
ZXh0KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdWludDY0X3QgYWRkRnVuY3Rpb24odm9pZCAo
KmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKLSAgICAgICAgdWludDY0X3QgaWRlbnRpZmllciA9ICsr
bV9jdXJyZW50SWRlbnRpZmllcjsKLQotICAgICAgICBhdXRvJiBzZXQgPSBtX2Z1bmN0aW9ucy5h
ZGQoeyBmdW5jdGlvbiwgY29udGV4dCB9LCBIYXNoU2V0PHVpbnQ2NF90PiB7IH0pLml0ZXJhdG9y
LT52YWx1ZTsKLSAgICAgICAgc2V0LmFkZChpZGVudGlmaWVyKTsKLQotICAgICAgICByZXR1cm4g
aWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIHJlbW92ZUlkZW50aWZpZXIodm9pZCAoKmZ1
bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQsIHVpbnQ2NF90IGlkZW50aWZpZXIpCi0gICAg
ewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKLQotICAgICAgICBhdXRv
IGl0ID0gbV9mdW5jdGlvbnMuZmluZCh7IGZ1bmN0aW9uLCBjb250ZXh0IH0pOwotICAgICAgICBp
ZiAoaXQgPT0gbV9mdW5jdGlvbnMuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICAgICAgYXV0byYgc2V0ID0gaXQtPnZhbHVlOwotICAgICAgICBpZiAoIXNldC5yZW1vdmUo
aWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHNl
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2Z1bmN0aW9ucy5yZW1vdmUoaXQpOwotCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHZvaWQgcmVtb3ZlRnVuY3Rpb25zKHZvaWQg
KCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgTG9ja0hv
bGRlciBsb2NrSG9sZGVyKG1fbG9jayk7Ci0KLSAgICAgICAgbV9mdW5jdGlvbnMucmVtb3ZlKHsg
ZnVuY3Rpb24sIGNvbnRleHQgfSk7Ci0gICAgfQotCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgdWlu
dDY0X3QgbV9jdXJyZW50SWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjx2b2lkICgq
KSh2b2lkKiksIHZvaWQqPiwgSGFzaFNldDx1aW50NjRfdD4+IG1fZnVuY3Rpb25zOwotfTsKLQot
dm9pZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250
ZXh0KQotewotICAgIE1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmdsZXRvbigpLmNhbGxP
bk1haW5UaHJlYWQoZnVuY3Rpb24sIGNvbnRleHQpOwotfQotCi12b2lkIGNhbmNlbENhbGxPbk1h
aW5UaHJlYWQodm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi17Ci0gICAg
QVNTRVJUKGZ1bmN0aW9uKTsKLQotICAgIE1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmds
ZXRvbigpLmNhbmNlbENhbGxPbk1haW5UaHJlYWQoZnVuY3Rpb24sIGNvbnRleHQpOwotfQotI2Vu
ZGlmCi0KICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPCAxMDE0MDAKIHN0cnVjdCBMb2NrQmFzZSB7CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dU
Ri93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9X
VEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxMiAr
NjYsOSBAQCBTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihDCiBTZWNUYXNr
UmVmIFNlY1Rhc2tDcmVhdGVGcm9tU2VsZihDRkFsbG9jYXRvclJlZik7CiBDRlR5cGVSZWYgU2Vj
VGFza0NvcHlWYWx1ZUZvckVudGl0bGVtZW50KFNlY1Rhc2tSZWYsIENGU3RyaW5nUmVmIGVudGl0
bGVtZW50LCBDRkVycm9yUmVmICopOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAotQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlT
aWduaW5nSWRlbnRpZmllcihTZWNUYXNrUmVmLCBDRkVycm9yUmVmICopOwotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjQXNuMVR5cGVzLmg+CitDRlN0
cmluZ1JlZiBTZWNUYXNrQ29weVNpZ25pbmdJZGVudGlmaWVyKFNlY1Rhc2tSZWYsIENGRXJyb3JS
ZWYgKik7CiBleHRlcm4gY29uc3QgU2VjQXNuMVRlbXBsYXRlIGtTZWNBc24xQWxnb3JpdGhtSURU
ZW1wbGF0ZVtdOwogZXh0ZXJuIGNvbnN0IFNlY0FzbjFUZW1wbGF0ZSBrU2VjQXNuMVN1YmplY3RQ
dWJsaWNLZXlJbmZvVGVtcGxhdGVbXTsKICNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvc3Bp
L2Rhcndpbi9keWxkU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9keWxkU1BJLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksNiBAQAogCiAjaW5jbHVk
ZSA8bWFjaC1vL2R5bGRfcHJpdi5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwCi0jZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTIgMHgwMDBBMEMwMAotI2VuZGlmCi0KICNpZm5kZWYgRFlMRF9JT1NfVkVSU0lPTl8x
MV8wCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05fMTFfMCAweDAwMEIwMDAwCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1RleHRCcmVha0l0ZXJhdG9ySUNVLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9pY3UvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuaAko
cmV2aXNpb24gMjI3NDU5KQorKysgU291cmNlL1dURi93dGYvdGV4dC9pY3UvVGV4dEJyZWFrSXRl
cmF0b3JJQ1UuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTIyICsyNCwxMyBAQAogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0
aW4xLmg+CiAKLSNkZWZpbmUgVVNFX0lDVV9DQVJFVF9JVEVSQVRPUiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAotI2lmIFVTRV9JQ1VfQ0FSRVRfSVRFUkFUT1IKLXN0YXRpYyBTdHJpbmcgY2FyZXRS
dWxlcygpCi17Ci0gICAgc3RhdGljIFN0YXRpY1N0cmluZ0ltcGwgY2FyZXRSdWxlU3RyaW5nKAot
ICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVy
YXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAgICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2pl
Y3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRy
Lz4uCi0gICAgICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBv
bmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdv
cnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0g
ICAgICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjYXJldCBmcm9tIG1vdmlu
ZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgICAgIC8vICogQWRk
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY2FyZXQgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNp
Z25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAg
ICAgICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjYXJldCBmcm9tIG1vdmluZyBi
ZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgICAg
IC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgICAg
ICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
Ci0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAg
XFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIK
LSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIK
LSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIK
LSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIK
LSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsi
Ci0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1d
OyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1
MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVu
ViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAg
ICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZp
cmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFD
RDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1
LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAg
ICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRP
cmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmly
YW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAv
LyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIg
Ly8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtc
XHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
TWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1v
amkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8g
WmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVt
b2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQx
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFG
NDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAw
MDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRF
IFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUy
NzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAw
MDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxc
VTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2
IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9y
TW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAw
MDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxc
VTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDc4
IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFG
NDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAw
MDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4
IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFG
NTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAw
MDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7
IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIkRW1v
amlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlm
aWVycwotICAgICAgICAiISFjaGFpbjsiCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0gICAgICAg
ICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8
ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAg
IigkTFZUIHwgJFQpICRUOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAg
ICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRF
eHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAg
ICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndh
cmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndh
cmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4g
ZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRF
bW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJs
eSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAg
ICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8
ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAg
ICAgIiRUICgkTFZUIHwgJFQpOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5k
KiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFn
YXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJl
bmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8g
R3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIg
Ly8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkw
OyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRU
ZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAk
S2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxW
ICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlG
b3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAg
ICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFr
IGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9y
KSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAg
ICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9q
aUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7
IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAg
KTsKLSAgICByZXR1cm4gY2FyZXRSdWxlU3RyaW5nOwotfQotI2VuZGlmCi0KIGNsYXNzIFRleHRC
cmVha0l0ZXJhdG9ySUNVIHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIE1vZGUgewogICAgICAg
ICBMaW5lLAogICAgICAgICBDaGFyYWN0ZXIsCi0jaWYgVVNFX0lDVV9DQVJFVF9JVEVSQVRPUgot
ICAgICAgICBDYXJldCwKLSNlbmRpZgogICAgIH07CiAKICAgICB2b2lkIHNldDhCaXRUZXh0KGNv
bnN0IExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKQEAgLTE3MCwxMSArNjEsNiBAQCBw
dWJsaWM6CiAgICAgICAgIGNhc2UgTW9kZTo6Q2hhcmFjdGVyOgogICAgICAgICAgICAgdHlwZSA9
IFVCUktfQ0hBUkFDVEVSOwogICAgICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFX0lDVV9DQVJFVF9J
VEVSQVRPUgotICAgICAgICBjYXNlIE1vZGU6OkNhcmV0OgotICAgICAgICAgICAgdHlwZSA9IFVC
UktfQ0hBUkFDVEVSOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdHlwZSA9
IFVCUktfQ0hBUkFDVEVSOwpAQCAtMTg4LDE1ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHdlYWsgLyBub3JtYWwgLyBzdHJpY3QgbGluZSBicmVha2luZy4KICAg
ICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0jaWYgVVNFX0lDVV9DQVJF
VF9JVEVSQVRPUgotICAgICAgICBpZiAobW9kZSA9PSBNb2RlOjpDYXJldCkgewotICAgICAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY2FyZXRSdWxlcyA9IFdURjo6Y2FyZXRS
dWxlcygpOwotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZ1ZpZXc6OlVw
Y29udmVydGVkQ2hhcmFjdGVycz4gdXBjb252ZXJ0ZWRSdWxlcyA9IFN0cmluZ1ZpZXcoY2FyZXRS
dWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgICAgICAgICBVUGFyc2VFcnJvciBw
YXJzZUVycm9yOwotICAgICAgICAgICAgbV9pdGVyYXRvciA9IHVicmtfb3BlblJ1bGVzKHVwY29u
dmVydGVkUnVsZXMuZ2V0KCksIGNhcmV0UnVsZXMuZ2V0KCkubGVuZ3RoKCksIHRleHQsIHRleHRM
ZW5ndGgsICZwYXJzZUVycm9yLCAmc3RhdHVzKTsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAg
ICAgICAgICAgIG1faXRlcmF0b3IgPSB1YnJrX29wZW4odHlwZSwgbG9jYWxlLCB0ZXh0LCB0ZXh0
TGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgbV9pdGVyYXRvciA9IHVicmtfb3Blbih0eXBlLCBs
b2NhbGUsIHRleHQsIHRleHRMZW5ndGgsICZzdGF0dXMpOwogICAgICAgICBBU1NFUlQoVV9TVUND
RVNTKHN0YXR1cykpOwogCiAgICAgICAgIGlmIChyZXF1aXJlc1NldDhCaXRUZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332109</attachid>
            <date>2018-01-23 17:46:37 -0800</date>
            <delta_ts>2018-01-23 18:11:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182028-20180123174637.patch</filename>
            <type>text/plain</type>
            <size>26269</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI3NDY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmVtb3ZlIHByZS1TaWVycmEtT1Mtc3BlY2lmaWMgY29kZSBpbiBXVEYgYW5k
IEphdmFTY3JpcHRDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODIwMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9y
WFBDQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yWFBD
Q29ubmVjdGlvbjo6aGFuZGxlRXZlbnQpOgorCiAyMDE4LTAxLTIzICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHByZWNpc2UgaW5kZXggbWFza2luZyBmb3Ig
RlRMIEdldEJ5QXJndW1lbnRCeVZhbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90
ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMjI3NDU5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29u
bmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAg
ZGlzcGF0Y2hfcXVldWVfdCBtX3F1ZXVlOwogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAgYm9v
bCBtX2Nsb3NlZCB7IGZhbHNlIH07Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGJv
b2wgbV92YWxpZGF0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCShyZXZpc2lvbiAyMjc0
NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1v
dGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3
IEBAIGV4dGVybiAiQyIgewogfQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkKKyNpZiBQTEFURk9STShNQUMp
CiBzdGF0aWMgYm9vbCBhdWRpdFRva2VuSGFzRW50aXRsZW1lbnQoYXVkaXRfdG9rZW5fdCB0b2tl
biwgTlNTdHJpbmcgKmVudGl0bGVtZW50KQogewogICAgIGF1dG8gdGFzayA9IGFkb3B0Q0YoU2Vj
VGFza0NyZWF0ZVdpdGhBdWRpdFRva2VuKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRva2VuKSk7CkBA
IC0xNjksNyArMTY5LDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uOjpoYW5k
bAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGlmICghbV92YWxpZGF0ZWQpIHsKICAgICAgICAgYXVkaXRfdG9rZW5fdCB0b2tlbjsKICAg
ICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKG1fY29ubmVjdGlvbiwgJnRva2Vu
KTsKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMjc0NTkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHByZS1TaWVycmEt
T1Mtc3BlY2lmaWMgY29kZSBpbiBXVEYgYW5kIEphdmFTY3JpcHRDb3JlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwMjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAg
ICAgICAqIHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oOgorICAgICAg
ICAqIHd0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW06CisgICAgICAgIChX
VEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmdsZXRvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXVEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OmNhbGxPbk1haW5UaHJlYWQpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjpjYW5jZWxD
YWxsT25NYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6TWFpblRocmVhZEZ1bmN0
aW9uVHJhY2tlcjo6YWRkRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpNYWluVGhy
ZWFkRnVuY3Rpb25UcmFja2VyOjpyZW1vdmVJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6cmVtb3ZlRnVuY3Rpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChX
VEY6OmNhbmNlbENhbGxPbk1haW5UaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9zcGkv
Y29jb2EvU2VjdXJpdHlTUEkuaDoKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg6
CisgICAgICAgICogd3RmL3RleHQvaWN1L1RleHRCcmVha0l0ZXJhdG9ySUNVLmg6CisgICAgICAg
IChXVEY6OlRleHRCcmVha0l0ZXJhdG9ySUNVOjpUZXh0QnJlYWtJdGVyYXRvcklDVSk6CisgICAg
ICAgIChXVEY6OmNhcmV0UnVsZXMpOiBEZWxldGVkLgorCiAyMDE4LTAxLTIzICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCB1c2UgYSBzcGVjdWxh
dGlvbiBmZW5jZSBvbiBWTSBlbnRyeS9leGl0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDIy
NzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3
NSw3ICs2NzUsNyBAQAogCiAjZW5kaWYgLyogT1MoREFSV0lOKSAqLwogCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApIHx8IFBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktf
U1RPUkFHRV9QQVJUSVRJT05JTkcgMQogI2VuZGlmCiAKQEAgLTEyMjYsMTQgKzEyMjYsMTQgQEAK
ICNlbmRpZgogCiAvKiBGSVhNRTogRW5hYmxlIFVTRV9PU19MT0cgd2hlbiBidWlsZGluZyB3aXRo
IHRoZSBwdWJsaWMgaU9TIDEwIFNESyBvbmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMjc3NTgz
NDM+LiAqLwotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKSkKKyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1MpICYmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspKQogI2RlZmluZSBVU0VfT1NfTE9HIDEKICNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogI2RlZmluZSBVU0VfT1NfU1RBVEUgMQogI2VuZGlmCiAjZW5kaWYKIAotI2lmIChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
KSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIEhBVkVfU0VD
X1RSVVNUX1NFUklBTElaQVRJT04gMQogI2VuZGlmCiAKQEAgLTEyNjEsNyArMTI2MSw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgVVNFX01F
RElBUkVNT1RFIDEKICNlbmRpZgogCkBAIC0xMjcwLDE0ICsxMjcwLDE0IEBACiAjcHJhZ21hIHN0
cmljdF9nc19jaGVjayhvbikKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMjAxICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMjAwCisjaWYgUExBVEZPUk0oTUFDKQogI2RlZmluZSBIQVZFX1RP
VUNIX0JBUiAxCiAjZGVmaW5lIEhBVkVfQURWQU5DRURfU1BFTExfQ0hFQ0tJTkcgMQogCiAjaWYg
ZGVmaW5lZChfX0xQNjRfXykKICNkZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19N
QU5BR0VSIDEKICNlbmRpZgotI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTIwMCAqLworI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KIAogI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1JUQykKICNkZWZpbmUgVVNFX0xJQldFQlJUQyAx
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEw
MiArMzIsNiBAQAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogI2VuZGlmCiAKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEyMDAKLQotc3RhdGljIGNvbnN0IE5TQWxl
cnRTdHlsZSBOU0FsZXJ0U3R5bGVDcml0aWNhbCA9IE5TQ3JpdGljYWxBbGVydFN0eWxlOwotc3Rh
dGljIGNvbnN0IE5TQWxlcnRTdHlsZSBOU0FsZXJ0U3R5bGVJbmZvcm1hdGlvbmFsID0gTlNJbmZv
cm1hdGlvbmFsQWxlcnRTdHlsZTsKLXN0YXRpYyBjb25zdCBOU0FsZXJ0U3R5bGUgTlNBbGVydFN0
eWxlV2FybmluZyA9IE5TV2FybmluZ0FsZXJ0U3R5bGU7Ci0KLXN0YXRpYyBjb25zdCBOU0JlemVs
U3R5bGUgTlNCZXplbFN0eWxlU2hhZG93bGVzc1NxdWFyZSA9IE5TU2hhZG93bGVzc1NxdWFyZUJl
emVsU3R5bGU7Ci1zdGF0aWMgY29uc3QgTlNCZXplbFN0eWxlIE5TQmV6ZWxTdHlsZVJvdW5kZWQg
PSBOU1JvdW5kZWRCZXplbFN0eWxlOwotc3RhdGljIGNvbnN0IE5TQmV6ZWxTdHlsZSBOU0JlemVs
U3R5bGVSb3VuZGVkRGlzY2xvc3VyZSA9IE5TUm91bmRlZERpc2Nsb3N1cmVCZXplbFN0eWxlOwot
Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeUxpZ2h0ID0g
TlNNb21lbnRhcnlMaWdodEJ1dHRvbjsKLXN0YXRpYyBjb25zdCBOU0J1dHRvblR5cGUgTlNCdXR0
b25UeXBlUHVzaE9uUHVzaE9mZiA9IE5TUHVzaE9uUHVzaE9mZkJ1dHRvbjsKLXN0YXRpYyBjb25z
dCBOU0J1dHRvblR5cGUgTlNCdXR0b25UeXBlVG9nZ2xlID0gTlNUb2dnbGVCdXR0b247Ci1zdGF0
aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZVN3aXRjaCA9IE5TU3dpdGNoQnV0dG9u
Owotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlwZSBOU0J1dHRvblR5cGVSYWRpbyA9IE5TUmFkaW9C
dXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeUNo
YW5nZSA9IE5TTW9tZW50YXJ5Q2hhbmdlQnV0dG9uOwotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlw
ZSBOU0J1dHRvblR5cGVPbk9mZiA9IE5TT25PZmZCdXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0
b25UeXBlIE5TQnV0dG9uVHlwZU1vbWVudGFyeVB1c2hJbiA9IE5TTW9tZW50YXJ5UHVzaEluQnV0
dG9uOwotc3RhdGljIGNvbnN0IE5TQnV0dG9uVHlwZSBOU0J1dHRvblR5cGVBY2NlbGVyYXRvciA9
IE5TQWNjZWxlcmF0b3JCdXR0b247Ci1zdGF0aWMgY29uc3QgTlNCdXR0b25UeXBlIE5TQnV0dG9u
VHlwZU11bHRpTGV2ZWxBY2NlbGVyYXRvciA9IE5TTXVsdGlMZXZlbEFjY2VsZXJhdG9yQnV0dG9u
OwotCi1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSA9IE5TQ29tcG9zaXRlQ29weTsKLXN0YXRpYyBjb25zdCBOU0NvbXBvc2l0aW5n
T3BlcmF0aW9uIE5TQ29tcG9zaXRpbmdPcGVyYXRpb25EZXN0aW5hdGlvbkluID0gTlNDb21wb3Np
dGVEZXN0aW5hdGlvbkluOwotc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlND
b21wb3NpdGluZ09wZXJhdGlvbkRlc3RpbmF0aW9uT3V0ID0gIE5TQ29tcG9zaXRlRGVzdGluYXRp
b25PdXQ7Ci1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5n
T3BlcmF0aW9uRGVzdGluYXRpb25PdmVyID0gTlNDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI7Ci1z
dGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlQXRvcCA9IE5TQ29tcG9zaXRlU291cmNlQXRvcDsKLXN0YXRpYyBjb25zdCBOU0NvbXBv
c2l0aW5nT3BlcmF0aW9uIE5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VJbiA9IE5TQ29tcG9z
aXRlU291cmNlSW47Ci1zdGF0aWMgY29uc3QgTlNDb21wb3NpdGluZ09wZXJhdGlvbiBOU0NvbXBv
c2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciA9IE5TQ29tcG9zaXRlU291cmNlT3ZlcjsKLQotc3Rh
dGljIGNvbnN0IE5TQ29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKLXN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFs
bCA9IE5TU21hbGxDb250cm9sU2l6ZTsKLXN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29u
dHJvbFNpemVNaW5pID0gTlNNaW5pQ29udHJvbFNpemU7Ci0KLXN0YXRpYyBjb25zdCBOU1NsaWRl
clR5cGUgTlNTbGlkZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7Ci1zdGF0aWMgY29uc3Qg
TlNTbGlkZXJUeXBlIE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKLQot
c3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7
Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0Zs
YWdzQ2hhbmdlZE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tLZXlE
b3duID0gTlNLZXlEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFz
a0tleVVwID0gTlNLZXlVcE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1h
c2tMZWZ0TW91c2VEb3duID0gTlNMZWZ0TW91c2VEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2
ZW50TWFzayBOU0V2ZW50TWFza0xlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWRN
YXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAgPSBO
U0xlZnRNb3VzZVVwTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFza090
aGVyTW91c2VEb3duID0gTlNPdGhlck1vdXNlRG93bk1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVu
dE1hc2sgTlNFdmVudE1hc2tPdGhlck1vdXNlVXAgPSBOU090aGVyTW91c2VVcE1hc2s7Ci1zdGF0
aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tQZXJpb2RpYyA9IE5TUGVyaW9kaWNNYXNr
Owotc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrUmlnaHRNb3VzZURvd24gPSBO
U1JpZ2h0TW91c2VEb3duTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TWFzayBOU0V2ZW50TWFz
a1JpZ2h0TW91c2VVcCA9IE5TUmlnaHRNb3VzZVVwTWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50
TWFzayBOU0V2ZW50TWFza01vdXNlTW92ZWQgPSBOU01vdXNlTW92ZWRNYXNrOwotc3RhdGljIGNv
bnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrU2Nyb2xsV2hlZWwgPSBOU1Njcm9sbFdoZWVsTWFz
azsKLQotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZs
YWdPcHRpb24gPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSBOU0NvbnRyb2xLZXlNYXNrOwot
c3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZsYWdDYXBz
TG9jayA9IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci1zdGF0aWMgY29uc3QgTlNFdmVudE1vZGlmaWVy
RmxhZ3MgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgPSAgTlNDb21tYW5kS2V5TWFzazsKLXN0
YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNl
SW5kZXBlbmRlbnRGbGFnc01hc2sgPSAgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NN
YXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZs
YWdGdW5jdGlvbiA9IE5TRnVuY3Rpb25LZXlNYXNrOwotc3RhdGljIGNvbnN0IE5TRXZlbnRNb2Rp
ZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2V5
TWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJG
bGFnU2hpZnQgPSBOU1NoaWZ0S2V5TWFzazsKLXN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJG
bGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7Ci0KLXN0YXRpYyBj
b25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGlj
YXRpb25EZWZpbmVkOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3ND
aGFuZ2VkID0gTlNGbGFnc0NoYW5nZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVu
dFR5cGVLZXlEb3duID0gTlNLZXlEb3duOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZl
bnRUeXBlS2V5VXAgPSBOU0tleVVwOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biA9IE5TTGVmdE1vdXNlRG93bjsKLXN0YXRpYyBjb25zdCBOU0V2ZW50
VHlwZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7Ci1z
dGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1v
dXNlVXA7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQg
PSBOU01vdXNlRW50ZXJlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkID0gTlNNb3VzZUV4aXRlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2
ZW50VHlwZU1vdXNlTW92ZWQgPSBOU01vdXNlTW92ZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247Ci1zdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJN
b3VzZURyYWdnZWQ7Ci1zdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXAgPSBOU090aGVyTW91c2VVcDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50
VHlwZVBlcmlvZGljID0gTlNQZXJpb2RpYzsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duID0gTlNSaWdodE1vdXNlRG93bjsKLXN0YXRpYyBjb25zdCBO
U0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkID0gTlNSaWdodE1vdXNlRHJh
Z2dlZDsKLXN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCA9
IE5TUmlnaHRNb3VzZVVwOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlU2Ny
b2xsV2hlZWwgPSBOU1Njcm9sbFdoZWVsOwotc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZl
bnRUeXBlU3lzdGVtRGVmaW5lZCA9IE5TU3lzdGVtRGVmaW5lZDsKLQotdHlwZWRlZiBOU1VJbnRl
Z2VyIE5TV2luZG93U3R5bGVNYXNrOwotc3RhdGljIGNvbnN0IE5TV2luZG93U3R5bGVNYXNrIE5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyA9IE5TQm9yZGVybGVzc1dpbmRvd01hc2s7Ci1zdGF0
aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSA9IE5T
Q2xvc2FibGVXaW5kb3dNYXNrOwotc3RhdGljIGNvbnN0IE5TV2luZG93U3R5bGVNYXNrIE5TV2lu
ZG93U3R5bGVNYXNrRnVsbFNjcmVlbiA9IE5TRnVsbFNjcmVlbldpbmRvd01hc2s7Ci1zdGF0aWMg
Y29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRW
aWV3ID0gTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzazsKLXN0YXRpYyBjb25zdCBOU1dp
bmRvd1N0eWxlTWFzayBOU1dpbmRvd1N0eWxlTWFza0hVRFdpbmRvdyA9IE5TSFVEV2luZG93TWFz
azsKLXN0YXRpYyBjb25zdCBOU1dpbmRvd1N0eWxlTWFzayBOU1dpbmRvd1N0eWxlTWFza01pbmlh
dHVyaXphYmxlID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2s7Ci1zdGF0aWMgY29uc3QgTlNX
aW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tOb25hY3RpdmF0aW5nUGFuZWwgPSBOU05v
bmFjdGl2YXRpbmdQYW5lbE1hc2s7Ci1zdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUgPSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci1zdGF0aWMg
Y29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tUZXh0dXJlZEJhY2tncm91
bmQgPSBOU1RleHR1cmVkQmFja2dyb3VuZFdpbmRvd01hc2s7Ci1zdGF0aWMgY29uc3QgTlNXaW5k
b3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgPSBOU1RpdGxlZFdpbmRvd01hc2s7
Ci1zdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tVdGlsaXR5
V2luZG93ID0gTlNVdGlsaXR5V2luZG93TWFzazsKLQotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA8IDEwMTIwMAotCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEIDwgMTAxMzAwCiAKIHR5cGVkZWYgTlNJbnRlZ2VyIE5TQ29udHJvbFN0YXRlVmFsdWU7
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNl
ZEJ5U2FmYXJpLm1tCShyZXZpc2lvbiAyMjc0NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9tYWMvRGVw
cmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDk3ICsz
OCw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0
KTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQodm9pZCAo
KmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpOwotCi1jbGFzcyBNYWluVGhyZWFkRnVu
Y3Rpb25UcmFja2VyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgTWFpblRocmVhZEZ1bmN0aW9uVHJh
Y2tlciYgc2luZ2xldG9uKCkKLSAgICB7Ci0gICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlRmxhZzsKLQotICAgICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1haW5UaHJlYWRG
dW5jdGlvblRyYWNrZXI+IHRyYWNrZXI7Ci0KLSAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFsmXSB7Ci0gICAgICAgICAgICB0cmFja2VyLmNvbnN0cnVjdCgpOwotICAgICAgICB9KTsK
LQotICAgICAgICByZXR1cm4gdHJhY2tlcjsKLSAgICB9Ci0KLSAgICB2b2lkIGNhbGxPbk1haW5U
aHJlYWQodm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi0gICAgewotICAg
ICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gYWRkRnVuY3Rpb24oZnVuY3Rpb24sIGNvbnRleHQp
OwotCi0gICAgICAgIFdURjo6Y2FsbE9uTWFpblRocmVhZChbdGhpcywgZnVuY3Rpb24sIGNvbnRl
eHQsIGlkZW50aWZpZXJdIHsKLSAgICAgICAgICAgIGlmICghcmVtb3ZlSWRlbnRpZmllcihmdW5j
dGlvbiwgY29udGV4dCwgaWRlbnRpZmllcikpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgICAgICBmdW5jdGlvbihjb250ZXh0KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
dm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lk
KiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgcmVtb3ZlRnVuY3Rpb25zKGZ1bmN0aW9uLCBjb250
ZXh0KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdWludDY0X3QgYWRkRnVuY3Rpb24odm9pZCAo
KmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKLSAgICAgICAgdWludDY0X3QgaWRlbnRpZmllciA9ICsr
bV9jdXJyZW50SWRlbnRpZmllcjsKLQotICAgICAgICBhdXRvJiBzZXQgPSBtX2Z1bmN0aW9ucy5h
ZGQoeyBmdW5jdGlvbiwgY29udGV4dCB9LCBIYXNoU2V0PHVpbnQ2NF90PiB7IH0pLml0ZXJhdG9y
LT52YWx1ZTsKLSAgICAgICAgc2V0LmFkZChpZGVudGlmaWVyKTsKLQotICAgICAgICByZXR1cm4g
aWRlbnRpZmllcjsKLSAgICB9Ci0KLSAgICBib29sIHJlbW92ZUlkZW50aWZpZXIodm9pZCAoKmZ1
bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQsIHVpbnQ2NF90IGlkZW50aWZpZXIpCi0gICAg
ewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKLQotICAgICAgICBhdXRv
IGl0ID0gbV9mdW5jdGlvbnMuZmluZCh7IGZ1bmN0aW9uLCBjb250ZXh0IH0pOwotICAgICAgICBp
ZiAoaXQgPT0gbV9mdW5jdGlvbnMuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICAgICAgYXV0byYgc2V0ID0gaXQtPnZhbHVlOwotICAgICAgICBpZiAoIXNldC5yZW1vdmUo
aWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHNl
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtX2Z1bmN0aW9ucy5yZW1vdmUoaXQpOwotCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHZvaWQgcmVtb3ZlRnVuY3Rpb25zKHZvaWQg
KCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgTG9ja0hv
bGRlciBsb2NrSG9sZGVyKG1fbG9jayk7Ci0KLSAgICAgICAgbV9mdW5jdGlvbnMucmVtb3ZlKHsg
ZnVuY3Rpb24sIGNvbnRleHQgfSk7Ci0gICAgfQotCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgdWlu
dDY0X3QgbV9jdXJyZW50SWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjx2b2lkICgq
KSh2b2lkKiksIHZvaWQqPiwgSGFzaFNldDx1aW50NjRfdD4+IG1fZnVuY3Rpb25zOwotfTsKLQot
dm9pZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250
ZXh0KQotewotICAgIE1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmdsZXRvbigpLmNhbGxP
bk1haW5UaHJlYWQoZnVuY3Rpb24sIGNvbnRleHQpOwotfQotCi12b2lkIGNhbmNlbENhbGxPbk1h
aW5UaHJlYWQodm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCi17Ci0gICAg
QVNTRVJUKGZ1bmN0aW9uKTsKLQotICAgIE1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmds
ZXRvbigpLmNhbmNlbENhbGxPbk1haW5UaHJlYWQoZnVuY3Rpb24sIGNvbnRleHQpOwotfQotI2Vu
ZGlmCi0KICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPCAxMDE0MDAKIHN0cnVjdCBMb2NrQmFzZSB7CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dU
Ri93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9X
VEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxMiAr
NjYsOSBAQCBTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihDCiBTZWNUYXNr
UmVmIFNlY1Rhc2tDcmVhdGVGcm9tU2VsZihDRkFsbG9jYXRvclJlZik7CiBDRlR5cGVSZWYgU2Vj
VGFza0NvcHlWYWx1ZUZvckVudGl0bGVtZW50KFNlY1Rhc2tSZWYsIENGU3RyaW5nUmVmIGVudGl0
bGVtZW50LCBDRkVycm9yUmVmICopOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAotQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlT
aWduaW5nSWRlbnRpZmllcihTZWNUYXNrUmVmLCBDRkVycm9yUmVmICopOwotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjQXNuMVR5cGVzLmg+CitDRlN0
cmluZ1JlZiBTZWNUYXNrQ29weVNpZ25pbmdJZGVudGlmaWVyKFNlY1Rhc2tSZWYsIENGRXJyb3JS
ZWYgKik7CiBleHRlcm4gY29uc3QgU2VjQXNuMVRlbXBsYXRlIGtTZWNBc24xQWxnb3JpdGhtSURU
ZW1wbGF0ZVtdOwogZXh0ZXJuIGNvbnN0IFNlY0FzbjFUZW1wbGF0ZSBrU2VjQXNuMVN1YmplY3RQ
dWJsaWNLZXlJbmZvVGVtcGxhdGVbXTsKICNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvc3Bp
L2Rhcndpbi9keWxkU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9keWxkU1BJLmgJKHJldmlzaW9uIDIyNzQ1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksNiBAQAogCiAjaW5jbHVk
ZSA8bWFjaC1vL2R5bGRfcHJpdi5oPgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwCi0jZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTIgMHgwMDBBMEMwMAotI2VuZGlmCi0KICNpZm5kZWYgRFlMRF9JT1NfVkVSU0lPTl8x
MV8wCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05fMTFfMCAweDAwMEIwMDAwCiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvaWN1L1RleHRCcmVha0l0ZXJhdG9ySUNVLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9pY3UvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuaAko
cmV2aXNpb24gMjI3NDU5KQorKysgU291cmNlL1dURi93dGYvdGV4dC9pY3UvVGV4dEJyZWFrSXRl
cmF0b3JJQ1UuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTIyICsyNCwxMyBAQAogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L2ljdS9VVGV4dFByb3ZpZGVyTGF0
aW4xLmg+CiAKLSNkZWZpbmUgVVNFX0lDVV9DQVJFVF9JVEVSQVRPUiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAotI2lmIFVTRV9JQ1VfQ0FSRVRfSVRFUkFUT1IKLXN0YXRpYyBTdHJpbmcgY2FyZXRS
dWxlcygpCi17Ci0gICAgc3RhdGljIFN0YXRpY1N0cmluZ0ltcGwgY2FyZXRSdWxlU3RyaW5nKAot
ICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVy
YXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAgICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2pl
Y3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRy
Lz4uCi0gICAgICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBv
bmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdv
cnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0g
ICAgICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjYXJldCBmcm9tIG1vdmlu
ZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgICAgIC8vICogQWRk
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY2FyZXQgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNp
Z25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAg
ICAgICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjYXJldCBmcm9tIG1vdmluZyBi
ZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgICAg
IC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgICAg
ICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
Ci0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAg
XFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIK
LSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIK
LSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIK
LSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIK
LSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsi
Ci0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1d
OyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1
MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVu
ViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAg
ICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZp
cmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFD
RDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1
LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAg
ICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRP
cmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmly
YW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAv
LyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIg
Ly8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtc
XHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
TWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1v
amkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8g
WmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVt
b2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQx
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFG
NDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAw
MDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRF
IFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUy
NzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAw
MDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxc
VTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2
IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9y
TW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAw
MDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxc
VTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDc4
IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFG
NDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAw
MDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4
IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFG
NTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAw
MDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7
IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIkRW1v
amlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlm
aWVycwotICAgICAgICAiISFjaGFpbjsiCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0gICAgICAg
ICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8
ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAg
IigkTFZUIHwgJFQpICRUOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAg
ICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRF
eHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAg
ICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndh
cmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndh
cmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4g
ZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRF
bW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJs
eSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAg
ICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8
ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAg
ICAgIiRUICgkTFZUIHwgJFQpOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5k
KiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFn
YXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJl
bmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8g
R3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIg
Ly8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkw
OyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRU
ZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAk
S2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxW
ICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlG
b3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAg
ICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFr
IGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9y
KSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAg
ICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9q
aUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7
IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAg
KTsKLSAgICByZXR1cm4gY2FyZXRSdWxlU3RyaW5nOwotfQotI2VuZGlmCi0KIGNsYXNzIFRleHRC
cmVha0l0ZXJhdG9ySUNVIHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIE1vZGUgewogICAgICAg
ICBMaW5lLAogICAgICAgICBDaGFyYWN0ZXIsCi0jaWYgVVNFX0lDVV9DQVJFVF9JVEVSQVRPUgot
ICAgICAgICBDYXJldCwKLSNlbmRpZgogICAgIH07CiAKICAgICB2b2lkIHNldDhCaXRUZXh0KGNv
bnN0IExDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkKQEAgLTE3MCwxMSArNjEsNiBAQCBw
dWJsaWM6CiAgICAgICAgIGNhc2UgTW9kZTo6Q2hhcmFjdGVyOgogICAgICAgICAgICAgdHlwZSA9
IFVCUktfQ0hBUkFDVEVSOwogICAgICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFX0lDVV9DQVJFVF9J
VEVSQVRPUgotICAgICAgICBjYXNlIE1vZGU6OkNhcmV0OgotICAgICAgICAgICAgdHlwZSA9IFVC
UktfQ0hBUkFDVEVSOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgdHlwZSA9
IFVCUktfQ0hBUkFDVEVSOwpAQCAtMTg4LDE1ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHdlYWsgLyBub3JtYWwgLyBzdHJpY3QgbGluZSBicmVha2luZy4KICAg
ICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0jaWYgVVNFX0lDVV9DQVJF
VF9JVEVSQVRPUgotICAgICAgICBpZiAobW9kZSA9PSBNb2RlOjpDYXJldCkgewotICAgICAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gY2FyZXRSdWxlcyA9IFdURjo6Y2FyZXRS
dWxlcygpOwotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZ1ZpZXc6OlVw
Y29udmVydGVkQ2hhcmFjdGVycz4gdXBjb252ZXJ0ZWRSdWxlcyA9IFN0cmluZ1ZpZXcoY2FyZXRS
dWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCk7Ci0gICAgICAgICAgICBVUGFyc2VFcnJvciBw
YXJzZUVycm9yOwotICAgICAgICAgICAgbV9pdGVyYXRvciA9IHVicmtfb3BlblJ1bGVzKHVwY29u
dmVydGVkUnVsZXMuZ2V0KCksIGNhcmV0UnVsZXMuZ2V0KCkubGVuZ3RoKCksIHRleHQsIHRleHRM
ZW5ndGgsICZwYXJzZUVycm9yLCAmc3RhdHVzKTsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAg
ICAgICAgICAgIG1faXRlcmF0b3IgPSB1YnJrX29wZW4odHlwZSwgbG9jYWxlLCB0ZXh0LCB0ZXh0
TGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgbV9pdGVyYXRvciA9IHVicmtfb3Blbih0eXBlLCBs
b2NhbGUsIHRleHQsIHRleHRMZW5ndGgsICZzdGF0dXMpOwogICAgICAgICBBU1NFUlQoVV9TVUND
RVNTKHN0YXR1cykpOwogCiAgICAgICAgIGlmIChyZXF1aXJlc1NldDhCaXRUZXh0KQpJbmRleDog
U291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVTWFjLm1tCShyZXZpc2lvbiAyMjc0NTkpCisrKyBTb3VyY2UvV1RGL3d0Zi90
ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiwxMSArMzIsNyBAQCBzdGF0aWMgVmFyaWFudDxUZXh0QnJlYWtJdGVyYXRvcklDVSwg
VGV4CiAgICAgY2FzZSBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZTo6TGluZToKICAgICAgICAgcmV0
dXJuIFRleHRCcmVha0l0ZXJhdG9ySUNVKHN0cmluZywgVGV4dEJyZWFrSXRlcmF0b3JJQ1U6Ok1v
ZGU6OkxpbmUsIGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBjYXNlIFRleHRC
cmVha0l0ZXJhdG9yOjpNb2RlOjpDYXJldDoKLSNpZiBVU0VfSUNVX0NBUkVUX0lURVJBVE9SCi0g
ICAgICAgIHJldHVybiBUZXh0QnJlYWtJdGVyYXRvcklDVShzdHJpbmcsIFRleHRCcmVha0l0ZXJh
dG9ySUNVOjpNb2RlOjpDYXJldCwgbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotI2Vs
c2UKICAgICAgICAgcmV0dXJuIFRleHRCcmVha0l0ZXJhdG9yQ0Yoc3RyaW5nLCBUZXh0QnJlYWtJ
dGVyYXRvckNGOjpNb2RlOjpDYXJldCk7Ci0jZW5kaWYKICAgICBjYXNlIFRleHRCcmVha0l0ZXJh
dG9yOjpNb2RlOjpEZWxldGU6CiAgICAgICAgIHJldHVybiBUZXh0QnJlYWtJdGVyYXRvckNGKHN0
cmluZywgVGV4dEJyZWFrSXRlcmF0b3JDRjo6TW9kZTo6RGVsZXRlKTsKICAgICB9Cg==
</data>
<flag name="review"
          id="351078"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>