<?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>161778</bug_id>
          
          <creation_ts>2016-09-08 17:36:48 -0700</creation_ts>
          <short_desc>WASM should support if-then-else</short_desc>
          <delta_ts>2016-09-09 14:32:58 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159775</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227961</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-09-08 17:36:48 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228203</commentid>
    <comment_count>1</comment_count>
      <attachid>288413</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-09-09 10:41:00 -0700</bug_when>
    <thetext>Created attachment 288413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228318</commentid>
    <comment_count>2</comment_count>
      <attachid>288413</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-09-09 13:30:46 -0700</bug_when>
    <thetext>Comment on attachment 288413
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228347</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-09-09 14:32:58 -0700</bug_when>
    <thetext>Committed r205769: &lt;http://trac.webkit.org/changeset/205769&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288413</attachid>
            <date>2016-09-09 10:41:00 -0700</date>
            <delta_ts>2016-09-09 13:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161778-20160909103831.patch</filename>
            <type>text/plain</type>
            <size>30302</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzQ1N2UyMWNlODU1MGFhNTBhZGEyZjliZjgwZTdkOTE4NTVmYzVjLi5jNzYyOTc1MmQ2Y2RkNmU1
NmU1N2U2MTE0ZjQ2OWUzNGYyMWYwMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxNi0wOS0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBXQVNNIHNob3VsZCBzdXBwb3J0IGlmLXRoZW4tZWxzZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBzb21lIG1ham9yIGNoYW5nZXMgdG8gdGhlIHdheSB0aGF0IHRoZSBXQVNNCisgICAgICAgIGZ1
bmN0aW9uIHBhcnNlciB3b3Jrcy4gRmlyc3QsIHRoZSBjb250cm9sIHN0YWNrIGhhcyBiZWVuIG1v
dmVkCisgICAgICAgIGZyb20gdGhlIHBhcnNlcidzIGNvbnRleHQgdG8gdGhlIHBhcnNlciBpdHNl
bGYuIFRoaXMgc2ltcGxpZmllcworICAgICAgICB0aGUgd2F5IHRoYXQgdGhlIHBhcnNlciB3b3Jr
cyBhbmQgYWxsb3dzIHVzIHRvIG1ha2UgdGhlIGRlY29kZXIKKyAgICAgICAgaXRlcmF0aXZlIHJh
dGhlciB0aGFuIHJlY3Vyc2l2ZS4gU2luY2UgdGhlIGNvbnRyb2wgc3RhY2sgaGFzIGJlZW4KKyAg
ICAgICAgbW92ZWQgdG8gdGhlIHBhcnNlciwgYW55IGNvbnRleHQgb3BlcmF0aW9uIHRoYXQgcmVm
ZXJzIHRvIHNvbWUKKyAgICAgICAgYmxvY2sgbm93IHJlY2VpdmVzIHRoYXQgYmxvY2sgYnkgcmVm
ZXJlbmNlLgorCisgICAgICAgIEZvciBhbnkgaWYgYmxvY2ssIHJlZ2FyZGxlc3Mgb2Ygd2hldGhl
ciBvciBub3QgaXQgaXMgYW4KKyAgICAgICAgaWYtdGhlbi1lbHNlIG9yIG5vdCwgd2Ugd2lsbCBh
bGxvY2F0ZSBib3RoIHRoZSBlbnRpcmUgY29udHJvbCBmbG93CisgICAgICAgIGRpYW1vbmQuIFRo
aXMgaXMgbm90IGEgbWFqb3IgaXNzdWUgaW4gdGhlIGlmLXRoZW4gY2FzZSBzaW5jZSBCMworICAg
ICAgICB3aWxsIGltbWVkaWF0ZWx5IGNsZWFudXAgdGhlc2UgYmxvY2tzLiBJbiBvcmRlciB0byBz
dXBwb3J0CisgICAgICAgIGlmLXRoZW4gYW5kIGlmLXRoZW4tZWxzZSB3ZSBuZWVkZWQgdG8gYmUg
YWJsZSB0byBkaXN0aW5ndWlzaCB3aGF0CisgICAgICAgIHRoZSB0eXBlIG9mIHRoZSB0b3AgYmxv
Y2sgb24gdGhlIGNvbnRyb2wgc3RhY2sgaXMuIFRoaXMgd2lsbCBiZQorICAgICAgICBuZWNlc3Nh
cnkgd2hlbiB2YWxpZGF0aW5nIHRoZSBlbHNlIG9wY29kZSBpbiB0aGUgZnV0dXJlLgorCisgICAg
ICAgIEN1cnJlbnRseSwgaWYgYmxvY2tzIGRvbid0IGhhbmRsZSBwYXNzZWQgYW5kIHJldHVybmVk
IHN0YWNrIHZhbHVlcworICAgICAgICBjb3JyZWN0bHkuIEkgcGxhbiB0byBmaXggdGhpcyB3aGVu
IEkgYWRkIHN1cHBvcnQgZm9yIHRoZSBibG9jaworICAgICAgICBzaWduYXR1cmVzLiBTZWU6IGh0
dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9kZXNpZ24vcHVsbC83NjUKKworICAgICAgICAq
IHRlc3RXQVNNLmNwcDoKKyAgICAgICAgKHJ1bldBU01UZXN0cyk6CisgICAgICAgICogd2FzbS9X
QVNNQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChkdW1wUHJvY2VkdXJlKToKKyAgICAgICAg
KEpTQzo6V0FTTTo6cGFyc2VBbmRDb21waWxlKToKKyAgICAgICAgKiB3YXNtL1dBU01CM0lSR2Vu
ZXJhdG9yLmg6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAg
KEpTQzo6V0FTTTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlQmxvY2spOgorICAgICAg
ICAoSlNDOjpXQVNNOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToK
KyAgICAgICAgKEpTQzo6V0FTTTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlVW5yZWFj
aGFibGVFeHByZXNzaW9uKToKKyAgICAgICAgKiB3YXNtL1dBU01PcHMuaDoKKwogMjAxNi0wOS0w
MyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgV0FTTSBMb29wcyBhbmQgQnJhbmNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0V0FTTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFdB
U00uY3BwCmluZGV4IDI2NDIzMWU5OTgzMTBmZmQwMDZjMjZmOTk1MTYyMzNlMjc0NjQzOGEuLmNh
NDA4OTYwYWJmOWQ2MTdhMjQwZWY4MDBlNWEzNThlZmQyODUwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0V0FTTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RXQVNNLmNwcApAQCAtMjQxLDYgKzI0MSwxMzggQEAgaW5saW5lIEpTVmFsdWUgYm94KHVp
bnQ2NF90IHZhbHVlKQogc3RhdGljIHZvaWQgcnVuV0FTTVRlc3RzKCkKIHsKICAgICB7CisgICAg
ICAgIC8vIEdlbmVyYXRlZCBmcm9tOgorICAgICAgICAvLyAgICAobW9kdWxlCisgICAgICAgIC8v
ICAgICAoZnVuYyAiZHVtYi1lcSIgKHBhcmFtICR4IGkzMikgKHBhcmFtICR5IGkzMikgKHJlc3Vs
dCBpMzIpCisgICAgICAgIC8vICAgICAgKGlmIChpMzIuZXEgKGdldF9sb2NhbCAkeCkgKGdldF9s
b2NhbCAkeSkpCisgICAgICAgIC8vICAgICAgICh0aGVuIChiciAwKSkKKyAgICAgICAgLy8gICAg
ICAgKGVsc2UgKHJldHVybiAoaTMyLmNvbnN0IDEpKSkpCisgICAgICAgIC8vICAgICAgKHJldHVy
biAoaTMyLmNvbnN0IDApKQorICAgICAgICAvLyAgICAgICkKKyAgICAgICAgLy8gICAgICkKKyAg
ICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvciA9IHsKKyAgICAgICAgICAgIDB4MDAsIDB4NjEs
IDB4NzMsIDB4NmQsIDB4MGMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4NzksIDB4
NzAsIDB4NjUsIDB4ODcsIDB4ODAsIDB4ODAsCisgICAgICAgICAgICAweDAwLCAweDAxLCAweDQw
LCAweDAyLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDA4LCAweDY2LCAweDc1LCAweDZlLCAw
eDYzLCAweDc0LCAweDY5LCAweDZmLAorICAgICAgICAgICAgMHg2ZSwgMHg4MiwgMHg4MCwgMHg4
MCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwNiwgMHg2NSwgMHg3OCwgMHg3MCwgMHg2ZiwgMHg3Miwg
MHg3NCwgMHg5MSwgMHg4MCwKKyAgICAgICAgICAgIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4
MGUsIDB4NjQsIDB4NzUsIDB4NmQsIDB4NjIsIDB4MmQsIDB4NmMsIDB4NjUsIDB4NzMsIDB4NzMs
IDB4MmQsIDB4NzQsCisgICAgICAgICAgICAweDY4LCAweDYxLCAweDZlLCAweDA0LCAweDYzLCAw
eDZmLCAweDY0LCAweDY1LCAweDk3LCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDkyLCAweDgw
LCAweDgwLAorICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgxNCwgMHgwMCwgMHgxNCwgMHgwMSwg
MHg0ZCwgMHgwMywgMHgxMCwgMHgwMCwgMHgwOSwgMHgwMSwgMHgwNCwgMHgxMCwgMHgwMSwgMHgw
OSwKKyAgICAgICAgICAgIDB4MDEsIDB4MGYsIDB4MGYKKyAgICAgICAgfTsKKworICAgICAgICBQ
bGFuIHBsYW4oKnZtLCB2ZWN0b3IpOworICAgICAgICBpZiAocGxhbi5yZXN1bHQuc2l6ZSgpICE9
IDEgfHwgIXBsYW4ucmVzdWx0WzBdKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBm
YWlsZWQgdG8gY29tcGlsZSBjb3JyZWN0bHkuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAg
ICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCisgICAgICAgIENI
RUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMCksIGJveCgxKSB9KSwg
MSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3go
MSksIGJveCgwKSB9KSwgMSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJl
c3VsdFswXSwgeyBib3goMiksIGJveCgxKSB9KSwgMSk7CisgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMSksIGJveCgyKSB9KSwgMSk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMiksIGJveCgyKSB9
KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBi
b3goMSksIGJveCgxKSB9KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFu
LnJlc3VsdFswXSwgeyBib3goMiksIGJveCg2KSB9KSwgMSk7CisgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMTAwKSwgYm94KDYpIH0pLCAxKTsKKyAg
ICB9CisKKyAgICB7CisgICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOgorICAgICAgICAvLyAgICAo
bW9kdWxlCisgICAgICAgIC8vICAgICAoZnVuYyAiZHVtYi1sZXNzLXRoYW4iIChwYXJhbSAkeCBp
MzIpIChwYXJhbSAkeSBpMzIpIChyZXN1bHQgaTMyKQorICAgICAgICAvLyAgICAgIChsb29wCisg
ICAgICAgIC8vICAgICAgIChpZiAoaTMyLmVxIChnZXRfbG9jYWwgJHgpIChnZXRfbG9jYWwgJHkp
KQorICAgICAgICAvLyAgICAgICAgKHRoZW4gKHJldHVybiAoaTMyLmNvbnN0IDApKSkKKyAgICAg
ICAgLy8gICAgICAgIChlbHNlIChpZiAoaTMyLmVxIChnZXRfbG9jYWwgJHgpIChpMzIuY29uc3Qg
MCkpCisgICAgICAgIC8vICAgICAgICAgICAgICAgKHJldHVybiAoaTMyLmNvbnN0IDEpKSkpKQor
ICAgICAgICAvLyAgICAgICAoc2V0X2xvY2FsICR4IChpMzIuc3ViIChnZXRfbG9jYWwgJHgpIChp
MzIuY29uc3QgMSkpKQorICAgICAgICAvLyAgICAgICAoYnIgMCkKKyAgICAgICAgLy8gICAgICAg
KQorICAgICAgICAvLyAgICAgICkKKyAgICAgICAgLy8gICAgICkKKyAgICAgICAgVmVjdG9yPHVp
bnQ4X3Q+IHZlY3RvciA9IHsKKyAgICAgICAgICAgIDB4MDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4
MGMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsIDB4ODcs
IDB4ODAsIDB4ODAsCisgICAgICAgICAgICAweDAwLCAweDAxLCAweDQwLCAweDAyLCAweDAxLCAw
eDAxLCAweDAxLCAweDAxLCAweDA4LCAweDY2LCAweDc1LCAweDZlLCAweDYzLCAweDc0LCAweDY5
LCAweDZmLAorICAgICAgICAgICAgMHg2ZSwgMHg4MiwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwg
MHgwMCwgMHgwNiwgMHg2NSwgMHg3OCwgMHg3MCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHg5MSwgMHg4
MCwKKyAgICAgICAgICAgIDB4ODAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MGUsIDB4NjQsIDB4NzUs
IDB4NmQsIDB4NjIsIDB4MmQsIDB4NmMsIDB4NjUsIDB4NzMsIDB4NzMsIDB4MmQsIDB4NzQsCisg
ICAgICAgICAgICAweDY4LCAweDYxLCAweDZlLCAweDA0LCAweDYzLCAweDZmLCAweDY0LCAweDY1
LCAweGFhLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweGE1LCAweDgwLCAweDgwLAorICAgICAg
ICAgICAgMHgwMCwgMHgwMCwgMHgwMiwgMHgxNCwgMHgwMCwgMHgxNCwgMHgwMSwgMHg0ZCwgMHgw
MywgMHgxMCwgMHgwMCwgMHgwOSwgMHgwMSwgMHgwNCwgMHgxNCwgMHgwMCwKKyAgICAgICAgICAg
IDB4MTAsIDB4MDAsIDB4NGQsIDB4MDMsIDB4MTAsIDB4MDEsIDB4MDksIDB4MDEsIDB4MGYsIDB4
MGYsIDB4MTQsIDB4MDAsIDB4MTAsIDB4MDEsIDB4NDEsIDB4MTUsCisgICAgICAgICAgICAweDAw
LCAweDA2LCAweDAwLCAweDAwLCAweDBmLCAweDBmCisgICAgICAgIH07CisKKyAgICAgICAgUGxh
biBwbGFuKCp2bSwgdmVjdG9yKTsKKyAgICAgICAgaWYgKHBsYW4ucmVzdWx0LnNpemUoKSAhPSAx
IHx8ICFwbGFuLnJlc3VsdFswXSkgeworICAgICAgICAgICAgZGF0YUxvZ0xuKCJNb2R1bGUgZmFp
bGVkIHRvIGNvbXBpbGUgY29ycmVjdGx5LiIpOworICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgorICAgICAgICBDSEVD
S19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94KDApLCBib3goMSkgfSksIDEp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94KDEp
LCBib3goMCkgfSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1
bHRbMF0sIHsgYm94KDIpLCBib3goMSkgfSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94KDEpLCBib3goMikgfSksIDEpOworICAgICAgICBD
SEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94KDIpLCBib3goMikgfSks
IDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94
KDEpLCBib3goMSkgfSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5y
ZXN1bHRbMF0sIHsgYm94KDIpLCBib3goNikgfSksIDEpOworICAgICAgICBDSEVDS19FUShpbnZv
a2U8aW50PigqcGxhbi5yZXN1bHRbMF0sIHsgYm94KDEwMCksIGJveCg2KSB9KSwgMCk7CisgICAg
fQorCisgICAgeworICAgICAgICAvLyBHZW5lcmF0ZWQgZnJvbToKKyAgICAgICAgLy8gICAgKG1v
ZHVsZQorICAgICAgICAvLyAgICAgKGZ1bmMgImR1bWItbGVzcy10aGFuIiAocGFyYW0gJHggaTMy
KSAocGFyYW0gJHkgaTMyKSAocmVzdWx0IGkzMikKKyAgICAgICAgLy8gICAgICAobG9vcAorICAg
ICAgICAvLyAgICAgICAoYmxvY2sKKyAgICAgICAgLy8gICAgICAgIChibG9jaworICAgICAgICAv
LyAgICAgICAgIChicl9pZiAwIChpMzIuZXEgKGdldF9sb2NhbCAkeCkgKGkzMi5jb25zdCAwKSkp
CisgICAgICAgIC8vICAgICAgICAgKGJyIDEpCisgICAgICAgIC8vICAgICAgICAgKQorICAgICAg
ICAvLyAgICAgICAgKHJldHVybiAoaTMyLmNvbnN0IDEpKQorICAgICAgICAvLyAgICAgICAgKQor
ICAgICAgICAvLyAgICAgICAoYmxvY2sKKyAgICAgICAgLy8gICAgICAgIChibG9jaworICAgICAg
ICAvLyAgICAgICAgIChicl9pZiAwIChpMzIuZXEgKGdldF9sb2NhbCAkeCkgKGdldF9sb2NhbCAk
eSkpKQorICAgICAgICAvLyAgICAgICAgIChiciAxKQorICAgICAgICAvLyAgICAgICAgICkKKyAg
ICAgICAgLy8gICAgICAgIChyZXR1cm4gKGkzMi5jb25zdCAwKSkKKyAgICAgICAgLy8gICAgICAg
ICkKKyAgICAgICAgLy8gICAgICAgKHNldF9sb2NhbCAkeCAoaTMyLnN1YiAoZ2V0X2xvY2FsICR4
KSAoaTMyLmNvbnN0IDEpKSkKKyAgICAgICAgLy8gICAgICAgKGJyIDApCisgICAgICAgIC8vICAg
ICAgICkKKyAgICAgICAgLy8gICAgICApCisgICAgICAgIC8vICAgICApCisgICAgICAgIFZlY3Rv
cjx1aW50OF90PiB2ZWN0b3IgPSB7CisgICAgICAgICAgICAweDAwLCAweDYxLCAweDczLCAweDZk
LCAweDBjLCAweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LCAw
eDg3LCAweDgwLCAweDgwLAorICAgICAgICAgICAgMHgwMCwgMHgwMSwgMHg0MCwgMHgwMiwgMHgw
MSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwOCwgMHg2NiwgMHg3NSwgMHg2ZSwgMHg2MywgMHg3NCwg
MHg2OSwgMHg2ZiwKKyAgICAgICAgICAgIDB4NmUsIDB4ODIsIDB4ODAsIDB4ODAsIDB4MDAsIDB4
MDEsIDB4MDAsIDB4MDYsIDB4NjUsIDB4NzgsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NzQsIDB4OTEs
IDB4ODAsCisgICAgICAgICAgICAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDBlLCAweDY0LCAw
eDc1LCAweDZkLCAweDYyLCAweDJkLCAweDZjLCAweDY1LCAweDczLCAweDczLCAweDJkLCAweDc0
LAorICAgICAgICAgICAgMHg2OCwgMHg2MSwgMHg2ZSwgMHgwNCwgMHg2MywgMHg2ZiwgMHg2NCwg
MHg2NSwgMHhiOSwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhiNCwgMHg4MCwgMHg4MCwKKyAg
ICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MTQsIDB4MDAsIDB4MTQs
IDB4MDEsIDB4NGQsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MDEsCisgICAgICAg
ICAgICAweDBmLCAweDEwLCAweDAwLCAweDA5LCAweDAxLCAweDBmLCAweDAxLCAweDAxLCAweDE0
LCAweDAwLCAweDEwLCAweDAwLCAweDRkLCAweDA3LCAweDAwLCAweDAwLAorICAgICAgICAgICAg
MHgwNiwgMHgwMCwgMHgwMSwgMHgwZiwgMHgxMCwgMHgwMSwgMHgwOSwgMHgwMSwgMHgwZiwgMHgx
NCwgMHgwMCwgMHgxMCwgMHgwMSwgMHg0MSwgMHgxNSwgMHgwMCwKKyAgICAgICAgICAgIDB4MDYs
IDB4MDAsIDB4MDAsIDB4MGYsIDB4MGYKKyAgICAgICAgfTsKKworICAgICAgICBQbGFuIHBsYW4o
KnZtLCB2ZWN0b3IpOworICAgICAgICBpZiAocGxhbi5yZXN1bHQuc2l6ZSgpICE9IDEgfHwgIXBs
YW4ucmVzdWx0WzBdKSB7CisgICAgICAgICAgICBkYXRhTG9nTG4oIk1vZHVsZSBmYWlsZWQgdG8g
Y29tcGlsZSBjb3JyZWN0bHkuIik7CisgICAgICAgICAgICBDUkFTSCgpOworICAgICAgICB9CisK
KyAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCisgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMCksIGJveCgxKSB9KSwgMSk7CisgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMSksIGJveCgw
KSB9KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwg
eyBib3goMiksIGJveCgxKSB9KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpw
bGFuLnJlc3VsdFswXSwgeyBib3goMSksIGJveCgyKSB9KSwgMSk7CisgICAgICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMiksIGJveCgyKSB9KSwgMCk7Cisg
ICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMSksIGJv
eCgxKSB9KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdFsw
XSwgeyBib3goMiksIGJveCg2KSB9KSwgMSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+
KCpwbGFuLnJlc3VsdFswXSwgeyBib3goMTAwKSwgYm94KDYpIH0pLCAwKTsKKyAgICB9CisKKyAg
ICB7CiAgICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOiAobW9kdWxlIChmdW5jICJyZXR1cm4taTMy
IiAocmVzdWx0IGkzMikgKHJldHVybiAoaTMyLmNvbnN0IDUpKSkgKQogICAgICAgICBWZWN0b3I8
dWludDhfdD4gdmVjdG9yID0gewogICAgICAgICAgICAgMHgwMCwgMHg2MSwgMHg3MywgMHg2ZCwg
MHgwYywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwgMHg4
NSwgMHg4MCwgMHg4MCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01CM0lS
R2VuZXJhdG9yLmNwcAppbmRleCBiNjVmNGFmNzVjMjM5Yjk1MzRhY2ZjMWViZTRhNGRjYjNmNTcx
ZjFhLi5mYjBhZjFiOTk0ZTQyNWJmMzNlODcwNzM5NWE0ZjA5MjIyNjVmMmRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNQjNJUkdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUIzSVJHZW5lcmF0b3IuY3BwCkBAIC0zOSw2
ICszOSwxMiBAQAogI2luY2x1ZGUgIldBU01GdW5jdGlvblBhcnNlci5oIgogI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgogCit2b2lkIGR1bXBQcm9jZWR1cmUodm9pZCogcHRyKQoreworICAgIEpT
Qzo6QjM6OlByb2NlZHVyZSogcHJvYyA9IHN0YXRpY19jYXN0PEpTQzo6QjM6OlByb2NlZHVyZSo+
KHB0cik7CisgICAgcHJvYy0+ZHVtcChXVEY6OmRhdGFGaWxlKCkpOworfQorCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFdBU00gewogCiBuYW1lc3BhY2UgewpAQCAtNzEsNyArNzcsMTIgQEAg
Y2xhc3MgQjNJUkdlbmVyYXRvciB7CiBwcml2YXRlOgogICAgIGNsYXNzIExhenlCbG9jayB7CiAg
ICAgcHVibGljOgotICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gISFt
X2Jsb2NrOyB9CisgICAgICAgIExhenlCbG9jayhCYXNpY0Jsb2NrKiBibG9jaykKKyAgICAgICAg
ICAgIDogbV9ibG9jayhibG9jaykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZXhw
bGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhbV9ibG9jazsgfQogCiAgICAg
ICAgIEJhc2ljQmxvY2sqIGdldChQcm9jZWR1cmUmIHByb2MpCiAgICAgICAgIHsKQEAgLTkyLDQx
ICsxMDMsNjMgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNCbG9jayogbV9ibG9jayB7IG51bGxw
dHIgfTsKICAgICB9OwogCitwdWJsaWM6CiAgICAgc3RydWN0IENvbnRyb2xEYXRhIHsKLSAgICAg
ICAgQ29udHJvbERhdGEoT3B0aW9uYWw8VmVjdG9yPFZhcmlhYmxlKj4+JiYgc3RhY2ssIEJhc2lj
QmxvY2sqIGxvb3BUYXJnZXQgPSBudWxscHRyKQotICAgICAgICAgICAgOiBsb29wVGFyZ2V0KGxv
b3BUYXJnZXQpCisgICAgICAgIENvbnRyb2xEYXRhKE9wdGlvbmFsPFZlY3RvcjxWYXJpYWJsZSo+
PiYmIHN0YWNrLCBCYXNpY0Jsb2NrKiBzcGVjaWFsID0gbnVsbHB0ciwgQmFzaWNCbG9jayogY29u
dGludWF0aW9uID0gbnVsbHB0cikKKyAgICAgICAgICAgIDogY29udGludWF0aW9uKGNvbnRpbnVh
dGlvbikKKyAgICAgICAgICAgICwgc3BlY2lhbChzcGVjaWFsKQogICAgICAgICAgICAgLCBzdGFj
ayhzdGFjaykKICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIG91dC5wcmludCgiQ29u
dGludWF0aW9uOiAiLCBjb250aW51YXRpb24sICIsIFRhcmdldDogIik7Ci0gICAgICAgICAgICBp
ZiAobG9vcFRhcmdldCkKLSAgICAgICAgICAgICAgICBvdXQucHJpbnQoKmxvb3BUYXJnZXQpOwor
ICAgICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBl
OjpJZjoKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIklmOiAgICAiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpCbG9jazoKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnQoIkJsb2NrOiAiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQmxvY2tUeXBlOjpMb29wOgorICAgICAgICAgICAgICAgIG91dC5wcmlu
dCgiTG9vcDogICIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgb3V0LnByaW50KCJDb250aW51YXRpb246ICIsIGNvbnRpbnVhdGlvbiwgIiwgU3Bl
Y2lhbDogIik7CisgICAgICAgICAgICBpZiAoc3BlY2lhbCkKKyAgICAgICAgICAgICAgICBvdXQu
cHJpbnQoKnNwZWNpYWwpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dC5w
cmludChjb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIG91dC5wcmludCgiTm9uZSIpOwor
ICAgICAgICB9CisKKyAgICAgICAgQmxvY2tUeXBlIHR5cGUoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIXNwZWNpYWwpCisgICAgICAgICAgICAgICAgcmV0dXJuIEJsb2NrVHlw
ZTo6QmxvY2s7CisgICAgICAgICAgICBpZiAoY29udGludWF0aW9uKQorICAgICAgICAgICAgICAg
IHJldHVybiBCbG9ja1R5cGU6OklmOworICAgICAgICAgICAgcmV0dXJuIEJsb2NrVHlwZTo6TG9v
cDsKICAgICAgICAgfQogCiAgICAgICAgIEJhc2ljQmxvY2sqIHRhcmdldEJsb2NrRm9yQnJhbmNo
KFByb2NlZHVyZSYgcHJvYykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKGxvb3BUYXJnZXQp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxvb3BUYXJnZXQ7CisgICAgICAgICAgICBpZiAoc3Bl
Y2lhbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3BlY2lhbDsKICAgICAgICAgICAgIHJldHVy
biBjb250aW51YXRpb24uZ2V0KHByb2MpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBpc0xv
b3AoKSB7IHJldHVybiAhIWxvb3BUYXJnZXQ7IH0KLQorICAgIHByaXZhdGU6CisgICAgICAgIGZy
aWVuZCBjbGFzcyBCM0lSR2VuZXJhdG9yOwogICAgICAgICAvLyBXZSB1c2UgYSBMYXp5QmxvY2sg
Zm9yIHRoZSBjb250aW51YXRpb24gc2luY2UgQjM6OnZhbGlkYXRlIGRvZXMgbm90IGxpa2Ugb3Jw
aGFuZWQgYmxvY2tzLiBOb3RlLAogICAgICAgICAvLyBpdCdzIHBvc3NpYmxlIHRvIGNyZWF0ZSBh
biBvcnBoYW5lZCBibG9jayBieSBkb2luZyBzb21ldGhpbmcgbGlrZSAoYmxvY2sgKHJldHVybiAo
Li4uKSkpLiBJbgogICAgICAgICAvLyB0aGF0IGV4YW1wbGUsIGlmIHdlIGVhZ2VybHkgYWxsb2Nh
dGUgYSBCYXNpY0Jsb2NrIGZvciB0aGUgY29udGludWF0aW9uIGl0IHdpbGwgbmV2ZXIgYmUgcmVh
Y2hhYmxlLgogICAgICAgICBMYXp5QmxvY2sgY29udGludWF0aW9uOwotICAgICAgICBCYXNpY0Js
b2NrKiBsb29wVGFyZ2V0OworICAgICAgICBCYXNpY0Jsb2NrKiBzcGVjaWFsOwogICAgICAgICBP
cHRpb25hbDxWZWN0b3I8VmFyaWFibGUqPj4gc3RhY2s7CiAgICAgfTsKIAotcHVibGljOgogICAg
IHR5cGVkZWYgVmFsdWUqIEV4cHJlc3Npb25UeXBlOworICAgIHR5cGVkZWYgQ29udHJvbERhdGEg
Q29udHJvbFR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBFeHByZXNzaW9uVHlwZSBlbXB0eUV4
cHJlc3Npb24gPSBudWxscHRyOwogCiAgICAgQjNJUkdlbmVyYXRvcihQcm9jZWR1cmUmKTsKQEAg
LTE0MSwyOSArMTc0LDI2IEBAIHB1YmxpYzoKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBi
aW5hcnlPcChCaW5hcnlPcFR5cGUsIEV4cHJlc3Npb25UeXBlIGxlZnQsIEV4cHJlc3Npb25UeXBl
IHJpZ2h0LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiB1bmFyeU9wKFVuYXJ5T3BUeXBlLCBFeHByZXNzaW9uVHlwZSBhcmcsIEV4cHJlc3Npb25U
eXBlJiByZXN1bHQpOwogCi0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQmxvY2soKTsK
LSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRMb29wKCk7Ci0gICAgYm9vbCBXQVJOX1VO
VVNFRF9SRVRVUk4gZW5kQmxvY2soVmVjdG9yPEV4cHJlc3Npb25UeXBlLCAxPiYgZXhwcmVzc2lv
blN0YWNrKTsKKyAgICBDb250cm9sRGF0YSBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQmxvY2soKTsK
KyAgICBDb250cm9sRGF0YSBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkTG9vcCgpOworICAgIENvbnRy
b2xEYXRhIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRJZihFeHByZXNzaW9uVHlwZSBjb25kaXRpb24p
OworICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEVsc2UoQ29udHJvbERhdGEmKTsKIAog
ICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZFJldHVybihjb25zdCBWZWN0b3I8RXhwcmVz
c2lvblR5cGUsIDE+JiByZXR1cm5WYWx1ZXMpOwotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJO
IGFkZEJyYW5jaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZlY3RvcjxFeHByZXNz
aW9uVHlwZSwgMT4mIHJldHVyblZhbHVlcywgdWludDMyX3QgdGFyZ2V0KTsKKyAgICBib29sIFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBj
b25kaXRpb24sIGNvbnN0IFZlY3RvcjxFeHByZXNzaW9uVHlwZSwgMT4mIHJldHVyblZhbHVlcyk7
CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gZW5kQmxvY2soQ29udHJvbERhdGEmLCBWZWN0
b3I8RXhwcmVzc2lvblR5cGUsIDE+JiBleHByZXNzaW9uU3RhY2spOwogCi0gICAgdm9pZCBkdW1w
R3JhcGhBbmRDb250cm9sU3RhY2soKTsKKyAgICBib29sIGlzQ29udGludWF0aW9uUmVhY2hhYmxl
KENvbnRyb2xEYXRhJik7CisKKyAgICB2b2lkIGR1bXAoY29uc3QgVmVjdG9yPENvbnRyb2xUeXBl
PiYgY29udHJvbFN0YWNrLCBjb25zdCBWZWN0b3I8RXhwcmVzc2lvblR5cGUsIDE+JiBleHByZXNz
aW9uU3RhY2spOwogCiBwcml2YXRlOgotICAgIENvbnRyb2xEYXRhJiBjb250cm9sRGF0YUZvckxl
dmVsKHVuc2lnbmVkKTsKICAgICB2b2lkIHVuaWZ5KFZhcmlhYmxlKiB0YXJnZXQsIGNvbnN0IEV4
cHJlc3Npb25UeXBlIHNvdXJjZSk7CiAgICAgVmVjdG9yPFZhcmlhYmxlKj4gaW5pdGlhbGl6ZUlu
Y29tbWluZ1R5cGVzKEJhc2ljQmxvY2sqLCBjb25zdCBWZWN0b3I8RXhwcmVzc2lvblR5cGUsIDE+
Jik7CiAgICAgdm9pZCB1bmlmeVZhbHVlc1dpdGhCbG9jayhjb25zdCBWZWN0b3I8RXhwcmVzc2lv
blR5cGUsIDE+JiByZXN1bHRTdGFjaywgT3B0aW9uYWw8VmVjdG9yPFZhcmlhYmxlKj4+JiBzdGFj
aywgQmFzaWNCbG9jayogdGFyZ2V0KTsKIAotcHVibGljOgotICAgIHVuc2lnbmVkIHVucmVhY2hh
YmxlIHsgMCB9OwotCi1wcml2YXRlOgogICAgIFByb2NlZHVyZSYgbV9wcm9jOwogICAgIEJhc2lj
QmxvY2sqIG1fY3VycmVudEJsb2NrOwotICAgIC8vIFRoaXMgaXMgYSBwYWlyIG9mIHRoZSBjb250
aW51YXRpb24gYW5kIHRoZSB0eXBlcyBleHBlY3RlZCBvbiB0aGUgc3RhY2sgZm9yIHRoYXQgY29u
dGludWF0aW9uLgotICAgIFZlY3RvcjxDb250cm9sRGF0YT4gbV9jb250cm9sU3RhY2s7CiAgICAg
VmVjdG9yPFZhcmlhYmxlKj4gbV9sb2NhbHM7CiB9OwogCkBAIC0yMzUsMTA5ICsyNjUsNTkgQEAg
QjNJUkdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgQjNJUkdlbmVyYXRvcjo6YWRkQ29uc3RhbnQo
VHlwZSB0eXBlLCB1aW50NjRfdCB2YWwKICAgICB9CiB9CiAKLWJvb2wgQjNJUkdlbmVyYXRvcjo6
YWRkQmxvY2soKQorQjNJUkdlbmVyYXRvcjo6Q29udHJvbERhdGEgQjNJUkdlbmVyYXRvcjo6YWRk
QmxvY2soKQogewotICAgIGlmICh1bnJlYWNoYWJsZSkgewotICAgICAgICB1bnJlYWNoYWJsZSsr
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSkgewotICAg
ICAgICBkYXRhTG9nTG4oIkFkZGluZyBibG9jayIpOwotICAgICAgICBkdW1wR3JhcGhBbmRDb250
cm9sU3RhY2soKTsKLSAgICB9Ci0gICAgbV9jb250cm9sU3RhY2suYXBwZW5kKENvbnRyb2xEYXRh
KE51bGxvcHQpKTsKLQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBDb250cm9sRGF0YShO
dWxsb3B0KTsKIH0KIAotYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRMb29wKCkKK0IzSVJHZW5lcmF0
b3I6OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZExvb3AoKQogewotICAgIGlmICh1bnJl
YWNoYWJsZSkgewotICAgICAgICB1bnJlYWNoYWJsZSsrOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBkYXRhTG9nTG4oIkFkZGluZyBs
b29wIik7Ci0gICAgICAgIGR1bXBHcmFwaEFuZENvbnRyb2xTdGFjaygpOwotICAgIH0KICAgICBC
YXNpY0Jsb2NrKiBib2R5ID0gbV9wcm9jLmFkZEJsb2NrKCk7CiAgICAgbV9jdXJyZW50QmxvY2st
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEp1bXAsIE9yaWdpbigpLCBib2R5KTsKICAg
ICBib2R5LT5hZGRQcmVkZWNlc3NvcihtX2N1cnJlbnRCbG9jayk7CiAgICAgbV9jdXJyZW50Qmxv
Y2sgPSBib2R5OwotICAgIG1fY29udHJvbFN0YWNrLmFwcGVuZChDb250cm9sRGF0YShWZWN0b3I8
VmFyaWFibGUqPigpLCBib2R5KSk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIENvbnRy
b2xEYXRhKFZlY3RvcjxWYXJpYWJsZSo+KCksIGJvZHkpOwogfQogCi1ib29sIEIzSVJHZW5lcmF0
b3I6OmVuZEJsb2NrKFZlY3RvcjxFeHByZXNzaW9uVHlwZSwgMT4mIGV4cHJlc3Npb25TdGFjaykK
K0IzSVJHZW5lcmF0b3I6OkNvbnRyb2xEYXRhIEIzSVJHZW5lcmF0b3I6OmFkZElmKEV4cHJlc3Np
b25UeXBlIGNvbmRpdGlvbikKIHsKLSAgICBpZiAodW5yZWFjaGFibGUgPiAxKSB7Ci0gICAgICAg
IHVucmVhY2hhYmxlLS07Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICAvLyBGSVhN
RTogVGhpcyBuZWVkcyB0byBkbyBzb21lIGtpbmQgb2Ygc3RhY2sgcGFzc2luZy4KIAotICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgIGRhdGFMb2dMbigiRmFsbGluZyBvdXQgb2YgYmxvY2siKTsK
LSAgICAgICAgZHVtcEdyYXBoQW5kQ29udHJvbFN0YWNrKCk7Ci0gICAgfQotICAgIC8vIFRoaXMg
bWVhbnMgdGhhdCB3ZSBhcmUgZXhpdGluZyB0aGUgZnVuY3Rpb24uCi0gICAgaWYgKCFtX2NvbnRy
b2xTdGFjay5zaXplKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHJlcXVpcmUg
dGhlIHN0YWNrIGlzIGVtcHR5PyBJdCdzIG5vdCBjbGVhciBmcm9tIHRoZSBjdXJyZW50IHNwZWMu
Ci0gICAgICAgIHJldHVybiAhZXhwcmVzc2lvblN0YWNrLnNpemUoKTsKLSAgICB9CisgICAgQmFz
aWNCbG9jayogdGFrZW4gPSBtX3Byb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBub3RU
YWtlbiA9IG1fcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9
IG1fcHJvYy5hZGRCbG9jaygpOwogCi0gICAgQ29udHJvbERhdGEgZGF0YSA9IG1fY29udHJvbFN0
YWNrLnRha2VMYXN0KCk7Ci0gICAgaWYgKHVucmVhY2hhYmxlKSB7Ci0gICAgICAgIC8vIElmIG5v
dGhpbmcgdGFyZ2V0cyB0aGUgY29udGludWF0aW9uIG9mIHRoZSBjdXJyZW50IGJsb2NrIHRoZW4g
d2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUKLSAgICAgICAgLy8gYW4gb3JwaGFuZWQgQmFzaWNCbG9j
ayBzaW5jZSBpdCBjYW4ndCBiZSByZWFjaGVkIGJ5IGZhbGx0aHJvdWdoLgotICAgICAgICBpZiAo
ZGF0YS5jb250aW51YXRpb24pIHsKLSAgICAgICAgICAgIG1fY3VycmVudEJsb2NrID0gZGF0YS5j
b250aW51YXRpb24uZ2V0KG1fcHJvYyk7Ci0gICAgICAgICAgICB1bnJlYWNoYWJsZS0tOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEIzOjpCcmFuY2gsIE9yaWdpbigpLCBjb25kaXRpb24p
OworICAgIG1fY3VycmVudEJsb2NrLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayh0YWtl
biksIEZyZXF1ZW50ZWRCbG9jayhub3RUYWtlbikpOworICAgIHRha2VuLT5hZGRQcmVkZWNlc3Nv
cihtX2N1cnJlbnRCbG9jayk7CisgICAgbm90VGFrZW4tPmFkZFByZWRlY2Vzc29yKG1fY3VycmVu
dEJsb2NrKTsKIAotICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IGRhdGEuY29udGludWF0
aW9uLmdldChtX3Byb2MpOwotICAgIHVuaWZ5VmFsdWVzV2l0aEJsb2NrKGV4cHJlc3Npb25TdGFj
aywgZGF0YS5zdGFjaywgY29udGludWF0aW9uKTsKLSAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKG1fcHJvYywgSnVtcCwgT3JpZ2luKCksIGNvbnRpbnVhdGlvbik7Ci0g
ICAgY29udGludWF0aW9uLT5hZGRQcmVkZWNlc3NvcihtX2N1cnJlbnRCbG9jayk7Ci0gICAgbV9j
dXJyZW50QmxvY2sgPSBjb250aW51YXRpb247CisgICAgbV9jdXJyZW50QmxvY2sgPSB0YWtlbjsK
KyAgICByZXR1cm4gQ29udHJvbERhdGEoTnVsbG9wdCwgbm90VGFrZW4sIGNvbnRpbnVhdGlvbik7
Cit9CisKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6YWRkRWxzZShDb250cm9sRGF0YSYgZGF0YSkKK3sK
KyAgICBBU1NFUlQoZGF0YS5jb250aW51YXRpb24pOworICAgIG1fY3VycmVudEJsb2NrID0gZGF0
YS5zcGVjaWFsOworICAgIC8vIENsZWFyIHRoZSBzcGVjaWFsIHBvaW50ZXIgc28gdGhhdCB3aGVu
IHdlIHBhcnNlIHRoZSBlbmQgd2UgZG9uJ3QgdGhpbmsgdGhhdCB0aGlzIGJsb2NrIGlzIGFuIGlm
IGJsb2NrLgorICAgIGRhdGEuc3BlY2lhbCA9IG51bGxwdHI7CisgICAgQVNTRVJUKGRhdGEudHlw
ZSgpID09IEJsb2NrVHlwZTo6QmxvY2spOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEIz
SVJHZW5lcmF0b3I6OmFkZFJldHVybihjb25zdCBWZWN0b3I8RXhwcmVzc2lvblR5cGUsIDE+JiBy
ZXR1cm5WYWx1ZXMpCiB7Ci0gICAgaWYgKHVucmVhY2hhYmxlKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIGRhdGFMb2dMbigiQWRkaW5nIHJldHVy
biIpOwotICAgICAgICBkdW1wR3JhcGhBbmRDb250cm9sU3RhY2soKTsKLSAgICB9Ci0KICAgICBB
U1NFUlQocmV0dXJuVmFsdWVzLnNpemUoKSA8PSAxKTsKICAgICBpZiAocmV0dXJuVmFsdWVzLnNp
emUoKSkKICAgICAgICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3By
b2MsIEIzOjpSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZXNbMF0pOwogICAgIGVsc2UKICAg
ICAgICAgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpS
ZXR1cm4sIE9yaWdpbigpKTsKLSAgICB1bnJlYWNoYWJsZSA9IDE7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgQjNJUkdlbmVyYXRvcjo6YWRkQnJhbmNoKEV4cHJlc3Npb25UeXBlIGNvbmRp
dGlvbiwgY29uc3QgVmVjdG9yPEV4cHJlc3Npb25UeXBlLCAxPiYgcmV0dXJuVmFsdWVzLCB1aW50
MzJfdCBsZXZlbCkKK2Jvb2wgQjNJUkdlbmVyYXRvcjo6YWRkQnJhbmNoKENvbnRyb2xEYXRhJiBk
YXRhLCBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZlY3RvcjxFeHByZXNzaW9uVHlw
ZSwgMT4mIHJldHVyblZhbHVlcykKIHsKLSAgICBpZiAodW5yZWFjaGFibGUpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgQVNTRVJUKGxldmVsIDwgbV9jb250cm9sU3RhY2suc2l6ZSgpKTsK
LSAgICBDb250cm9sRGF0YSYgZGF0YSA9IGNvbnRyb2xEYXRhRm9yTGV2ZWwobGV2ZWwpOwotICAg
IGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIGRhdGFMb2dMbigiQWRkaW5nIEJyYW5jaCBmcm9tOiAi
LCAgKm1fY3VycmVudEJsb2NrLCAiIHRhcmdldGluZzogIiwgbGV2ZWwsICIgd2l0aCBkYXRhOiAi
LCBkYXRhKTsKLSAgICAgICAgZHVtcEdyYXBoQW5kQ29udHJvbFN0YWNrKCk7Ci0gICAgfQotCi0K
ICAgICBCYXNpY0Jsb2NrKiB0YXJnZXQgPSBkYXRhLnRhcmdldEJsb2NrRm9yQnJhbmNoKG1fcHJv
Yyk7CiAgICAgdW5pZnlWYWx1ZXNXaXRoQmxvY2socmV0dXJuVmFsdWVzLCBkYXRhLnN0YWNrLCB0
YXJnZXQpOwogICAgIGlmIChjb25kaXRpb24pIHsKQEAgLTM1MCw3ICszMzAsNDMgQEAgYm9vbCBC
M0lSR2VuZXJhdG9yOjphZGRCcmFuY2goRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBjb25zdCBW
ZWN0b3I8RXhwcmVzc2lvblQKICAgICB9IGVsc2UgewogICAgICAgICBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YXJnZXQpKTsKICAgICAgICAgdGFyZ2V0LT5hZGRQcmVkZWNlc3NvcihtX2N1cnJlbnRC
bG9jayk7Ci0gICAgICAgIHVucmVhY2hhYmxlID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBCM0lSR2VuZXJhdG9yOjplbmRCbG9jayhDb250cm9sRGF0YSYgZGF0YSwg
VmVjdG9yPEV4cHJlc3Npb25UeXBlLCAxPiYgZXhwcmVzc2lvblN0YWNrKQoreworICAgIGlmICgh
ZGF0YS5jb250aW51YXRpb24pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgQmFzaWNCbG9j
ayogY29udGludWF0aW9uID0gZGF0YS5jb250aW51YXRpb24uZ2V0KG1fcHJvYyk7CisgICAgaWYg
KGRhdGEudHlwZSgpID09IEJsb2NrVHlwZTo6SWYpIHsKKyAgICAgICAgQVNTRVJUKCFkYXRhLnNw
ZWNpYWwtPnNpemUoKSAmJiAhZGF0YS5zcGVjaWFsLT5zdWNjZXNzb3JzKCkuc2l6ZSgpKTsKKyAg
ICAgICAgLy8gU2luY2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgZWxzZSBibG9jayB3ZSBuZWVkIHRvIHBv
aW50IHRoZSBub3RUYWtlbiBicmFuY2ggdG8gdGhlIGNvbnRpbnVhdGlvbi4KKyAgICAgICAgZGF0
YS5zcGVjaWFsLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBKdW1wLCBPcmlnaW4oKSk7
CisgICAgICAgIGRhdGEuc3BlY2lhbC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY29u
dGludWF0aW9uKSk7CisgICAgICAgIGNvbnRpbnVhdGlvbi0+YWRkUHJlZGVjZXNzb3IoZGF0YS5z
cGVjaWFsKTsKKyAgICB9CisKKyAgICB1bmlmeVZhbHVlc1dpdGhCbG9jayhleHByZXNzaW9uU3Rh
Y2ssIGRhdGEuc3RhY2ssIGNvbnRpbnVhdGlvbik7CisgICAgbV9jdXJyZW50QmxvY2stPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEp1bXAsIE9yaWdpbigpLCBjb250aW51YXRpb24pOwor
ICAgIGNvbnRpbnVhdGlvbi0+YWRkUHJlZGVjZXNzb3IobV9jdXJyZW50QmxvY2spOworICAgIG1f
Y3VycmVudEJsb2NrID0gY29udGludWF0aW9uOworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IEIzSVJHZW5lcmF0b3I6OmlzQ29udGludWF0aW9uUmVhY2hhYmxlKENvbnRyb2xEYXRhJiBkYXRh
KQoreworICAgIC8vIElmIG5vdGhpbmcgdGFyZ2V0cyB0aGUgY29udGludWF0aW9uIG9mIHRoZSBj
dXJyZW50IGJsb2NrIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUKKyAgICAvLyBhbiBvcnBo
YW5lZCBCYXNpY0Jsb2NrIHNpbmNlIGl0IGNhbid0IGJlIHJlYWNoZWQgYnkgZmFsbHRocm91Z2gu
CisgICAgaWYgKCFkYXRhLmNvbnRpbnVhdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9jdXJyZW50QmxvY2sgPSBkYXRhLmNvbnRpbnVhdGlvbi5nZXQobV9wcm9jKTsKKyAgICBp
ZiAoZGF0YS50eXBlKCkgPT0gQmxvY2tUeXBlOjpJZikgeworICAgICAgICBkYXRhLnNwZWNpYWwt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEp1bXAsIE9yaWdpbigpLCBtX2N1cnJlbnRC
bG9jayk7CisgICAgICAgIG1fY3VycmVudEJsb2NrLT5hZGRQcmVkZWNlc3NvcihkYXRhLnNwZWNp
YWwpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMzg3LDIwICs0MDMsMTggQEAgdm9p
ZCBCM0lSR2VuZXJhdG9yOjp1bmlmeVZhbHVlc1dpdGhCbG9jayhjb25zdCBWZWN0b3I8RXhwcmVz
c2lvblR5cGUsIDE+JiByZXN1bHQKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdFN0
YWNrLnNpemUoKTsgKytpKQogICAgICAgICB1bmlmeShzdGFjay52YWx1ZSgpW2ldLCByZXN1bHRT
dGFja1tpXSk7CiB9Ci0gICAgCi1CM0lSR2VuZXJhdG9yOjpDb250cm9sRGF0YSYgQjNJUkdlbmVy
YXRvcjo6Y29udHJvbERhdGFGb3JMZXZlbCh1bnNpZ25lZCBsZXZlbCkKLXsKLSAgICByZXR1cm4g
bV9jb250cm9sU3RhY2tbbV9jb250cm9sU3RhY2suc2l6ZSgpIC0gMSAtIGxldmVsXTsKLX0KIAot
dm9pZCBCM0lSR2VuZXJhdG9yOjpkdW1wR3JhcGhBbmRDb250cm9sU3RhY2soKQordm9pZCBCM0lS
R2VuZXJhdG9yOjpkdW1wKGNvbnN0IFZlY3RvcjxDb250cm9sVHlwZT4mIGNvbnRyb2xTdGFjaywg
Y29uc3QgVmVjdG9yPEV4cHJlc3Npb25UeXBlLCAxPiYgZXhwcmVzc2lvblN0YWNrKQogewogICAg
IGRhdGFMb2dMbigiUHJvY2Vzc2luZyBHcmFwaDoiKTsKICAgICBkYXRhTG9nKG1fcHJvYyk7CiAg
ICAgZGF0YUxvZ0xuKCJXaXRoIGN1cnJlbnQgYmxvY2s6IiwgKm1fY3VycmVudEJsb2NrKTsKLSAg
ICBkYXRhTG9nTG4oIldpdGggQ29udHJvbCBTdGFjazoiKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9jb250cm9sU3RhY2suc2l6ZSgpOyArK2kpCi0gICAgICAgIGRhdGFMb2dMbigi
WyIsIGksICJdICIsIG1fY29udHJvbFN0YWNrW2ldKTsKKyAgICBkYXRhTG9nTG4oIkNvbnRyb2wg
c3RhY2s6Iik7CisgICAgZm9yIChjb25zdCBDb250cm9sVHlwZSYgZGF0YSA6IGNvbnRyb2xTdGFj
aykKKyAgICAgICAgZGF0YUxvZ0xuKCIgICIsIGRhdGEpOworICAgIGRhdGFMb2dMbigiRXhwcmVz
c2lvblN0YWNrOiIpOworICAgIGZvciAoY29uc3QgRXhwcmVzc2lvblR5cGUmIGV4cHJlc3Npb24g
OiBleHByZXNzaW9uU3RhY2spCisgICAgICAgIGRhdGFMb2dMbigiICAiLCAqZXhwcmVzc2lvbik7
CiAgICAgZGF0YUxvZ0xuKCJcbiIpOwogfQogCkBAIC00MTQsNiArNDI4LDcgQEAgc3RkOjp1bmlx
dWVfcHRyPENvbXBpbGF0aW9uPiBwYXJzZUFuZENvbXBpbGUoVk0mIHZtLCBWZWN0b3I8dWludDhf
dD4mIHNvdXJjZSwgRnUKICAgICBpZiAoIXBhcnNlci5wYXJzZSgpKQogICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCisgICAgcHJvY2VkdXJlLnJlc2V0UmVhY2hhYmlsaXR5
KCk7CiAgICAgdmFsaWRhdGUocHJvY2VkdXJlLCAiQWZ0ZXIgcGFyc2luZzpcbiIpOwogCiAgICAg
Zml4U1NBKHByb2NlZHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNQjNJUkdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUIz
SVJHZW5lcmF0b3IuaAppbmRleCBiMGM3MWY5NGRmZTM4YTk0ZjNkMDdmNTRkNjQ2OWZmMGYwY2Fi
OGQ3Li45NTE5NmRiZTU3N2RhYWZhYmE5NzhhNTYwNGM5MDZjZDY1NWJmYzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNQjNJUkdlbmVyYXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01CM0lSR2VuZXJhdG9yLmgKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgIldBU01Gb3JtYXQuaCIKIAorZXh0ZXJu
ICJDIiB2b2lkIGR1bXBQcm9jZWR1cmUodm9pZCopOworCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIFdBU00gewogCiBzdGQ6OnVuaXF1ZV9wdHI8QjM6OkNvbXBpbGF0aW9uPiBwYXJzZUFuZENv
bXBpbGUoVk0mLCBWZWN0b3I8dWludDhfdD4mLCBGdW5jdGlvbkluZm9ybWF0aW9uLCB1bnNpZ25l
ZCBvcHRMZXZlbCA9IDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVu
Y3Rpb25QYXJzZXIuaAppbmRleCBlNzIwZjY2NzM0OGJjNzdiMTM0YWUyY2Y3ZjU5ZmU2MGM1YjY1
YzdlLi44ZjYzZmNlZGE0OTAxZjQwNGJkMmVmNmI4NDk0MjZmNDVhYTc2Mjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaApAQCAtMzIsMTAg
KzMyLDE3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV0FTTSB7CiAKK2VudW0gY2xh
c3MgQmxvY2tUeXBlIHsKKyAgICBJZiwKKyAgICBCbG9jaywKKyAgICBMb29wCit9OworCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBDb250ZXh0PgogY2xhc3MgRnVuY3Rpb25QYXJzZXIgOiBwdWJsaWMgUGFy
c2VyIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIHR5cGVuYW1lIENvbnRleHQ6OkV4cHJlc3Npb25U
eXBlIEV4cHJlc3Npb25UeXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgQ29udGV4dDo6Q29udHJv
bFR5cGUgQ29udHJvbFR5cGU7CiAKICAgICBGdW5jdGlvblBhcnNlcihDb250ZXh0JiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBzb3VyY2VCdWZmZXIsIGNvbnN0IEZ1bmN0aW9uSW5mb3JtYXRpb24m
KTsKIApAQCAtNDYsMTIgKzUzLDEzIEBAIHByaXZhdGU6CiAKICAgICBib29sIFdBUk5fVU5VU0VE
X1JFVFVSTiBwYXJzZUJsb2NrKCk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VF
eHByZXNzaW9uKE9wVHlwZSk7CisgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VVbnJl
YWNoYWJsZUV4cHJlc3Npb24oT3BUeXBlKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiB1
bmlmeUNvbnRyb2woVmVjdG9yPEV4cHJlc3Npb25UeXBlPiYsIHVuc2lnbmVkIGxldmVsKTsKIAot
ICAgIE9wdGlvbmFsPFZlY3RvcjxFeHByZXNzaW9uVHlwZT4+JiBzdGFja0ZvckNvbnRyb2xMZXZl
bCh1bnNpZ25lZCBsZXZlbCk7Ci0KICAgICBDb250ZXh0JiBtX2NvbnRleHQ7CiAgICAgVmVjdG9y
PEV4cHJlc3Npb25UeXBlLCAxPiBtX2V4cHJlc3Npb25TdGFjazsKKyAgICBWZWN0b3I8Q29udHJv
bFR5cGU+IG1fY29udHJvbFN0YWNrOworICAgIHVuc2lnbmVkIG1fdW5yZWFjaGFibGVCbG9ja3Mg
eyAwIH07CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250ZXh0PgpAQCAtOTIsMjcgKzEwMCwz
NyBAQCBib29sIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUJsb2NrKCkKICAgICAgICAg
aWYgKCFwYXJzZVVJbnQ3KG9wKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAg
ICBpZiAoIXBhcnNlRXhwcmVzc2lvbihzdGF0aWNfY2FzdDxPcFR5cGU+KG9wKSkpIHsKKyAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIGRhdGFMb2dMbigicHJvY2Vzc2luZyBvcCAo
IiwgbV91bnJlYWNoYWJsZUJsb2NrcywgIik6ICIsICBSYXdQb2ludGVyKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KG9wKSkpOworICAgICAgICAgICAgbV9jb250ZXh0LmR1bXAobV9jb250cm9sU3Rh
Y2ssIG1fZXhwcmVzc2lvblN0YWNrKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcCA9PSBP
cFR5cGU6OkVuZCAmJiAhbV9jb250cm9sU3RhY2suc2l6ZSgpKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgaWYgKG1fdW5yZWFjaGFibGVCbG9ja3MpIHsKKyAgICAgICAgICAgIGlmICgh
cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24oc3RhdGljX2Nhc3Q8T3BUeXBlPihvcCkpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dM
bigiZmFpbGVkIHRvIHByb2Nlc3MgdW5yZWFjaGFibGUgb3A6Iiwgb3ApOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICghcGFy
c2VFeHByZXNzaW9uKHN0YXRpY19jYXN0PE9wVHlwZT4ob3ApKSkgewogICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQgdG8gcHJvY2VzcyBv
cDoiLCBvcCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAob3AgPT0gT3BUeXBlOjpFbmQpCi0gICAgICAgICAgICBicmVhazsKICAgICB9CiAKKyAg
ICAvLyBJJ20gbm90IHN1cmUgaWYgd2Ugc2hvdWxkIGNoZWNrIHRoZSBleHByZXNzaW9uIHN0YWNr
IGhlcmUuLi4KICAgICByZXR1cm4gdHJ1ZTsKIH0KKyNkZWZpbmUgQ1JFQVRFX0NBU0UobmFtZSwg
aWQsIGIzb3ApIGNhc2UgbmFtZToKIAogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGV4dD4KIGJvb2wg
RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiB7Ci0g
ICAgaWYgKG1fY29udGV4dC51bnJlYWNoYWJsZSAmJiAhaXNDb250cm9sT3Aob3ApKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQogICAgIHN3aXRjaCAob3ApIHsKLSNkZWZpbmUgQ1JFQVRFX0NBU0Uo
bmFtZSwgaWQsIGIzb3ApIGNhc2UgbmFtZToKICAgICBGT1JfRUFDSF9XQVNNX0JJTkFSWV9PUChD
UkVBVEVfQ0FTRSkgewogICAgICAgICBFeHByZXNzaW9uVHlwZSByaWdodCA9IG1fZXhwcmVzc2lv
blN0YWNrLnRha2VMYXN0KCk7CiAgICAgICAgIEV4cHJlc3Npb25UeXBlIGxlZnQgPSBtX2V4cHJl
c3Npb25TdGFjay50YWtlTGFzdCgpOwpAQCAtMTMxLDcgKzE0OSw2IEBAIGJvb2wgRnVuY3Rpb25Q
YXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAgICAgIG1fZXhw
cmVzc2lvblN0YWNrLmFwcGVuZChyZXN1bHQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0jdW5kZWYgQ1JFQVRFX0NBU0UKIAogICAgIGNhc2UgT3BUeXBlOjpJMzJDb25zdDogewogICAg
ICAgICB1aW50MzJfdCBjb25zdGFudDsKQEAgLTE2MiwxNSArMTc5LDIzIEBAIGJvb2wgRnVuY3Rp
b25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAgfQogCiAg
ICAgY2FzZSBPcFR5cGU6OkJsb2NrOiB7Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmFkZEJsb2Nr
KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiBwYXJzZUJsb2Nr
KCk7CisgICAgICAgIG1fY29udHJvbFN0YWNrLmFwcGVuZChtX2NvbnRleHQuYWRkQmxvY2soKSk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGNhc2UgT3BUeXBlOjpMb29wOiB7
Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmFkZExvb3AoKSkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgcmV0dXJuIHBhcnNlQmxvY2soKTsKKyAgICAgICAgbV9jb250cm9sU3Rh
Y2suYXBwZW5kKG1fY29udGV4dC5hZGRMb29wKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBjYXNlIE9wVHlwZTo6SWY6IHsKKyAgICAgICAgRXhwcmVzc2lvblR5cGUgY29u
ZGl0aW9uID0gbV9leHByZXNzaW9uU3RhY2sudGFrZUxhc3QoKTsKKyAgICAgICAgbV9jb250cm9s
U3RhY2suYXBwZW5kKG1fY29udGV4dC5hZGRJZihjb25kaXRpb24pKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgY2FzZSBPcFR5cGU6OkVsc2U6IHsKKyAgICAgICAgcmV0dXJu
IG1fY29udGV4dC5hZGRFbHNlKG1fY29udHJvbFN0YWNrLmxhc3QoKSk7CiAgICAgfQogCiAgICAg
Y2FzZSBPcFR5cGU6OkJyYW5jaDoKQEAgLTE4NiwxMyArMjExLDE4IEBAIGJvb2wgRnVuY3Rpb25Q
YXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAgICAgIEV4cHJl
c3Npb25UeXBlIGNvbmRpdGlvbiA9IENvbnRleHQ6OmVtcHR5RXhwcmVzc2lvbjsKICAgICAgICAg
aWYgKG9wID09IE9wVHlwZTo6QnJhbmNoSWYpCiAgICAgICAgICAgICBjb25kaXRpb24gPSBtX2V4
cHJlc3Npb25TdGFjay50YWtlTGFzdCgpOwotCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
dW5yZWFjaGFibGVCbG9ja3MgPSAxOwogCiAgICAgICAgIFZlY3RvcjxFeHByZXNzaW9uVHlwZSwg
MT4gdmFsdWVzKGFyaXR5KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gYXJpdHk7IGk7IGkt
LSkKICAgICAgICAgICAgIHZhbHVlc1tpLTFdID0gbV9leHByZXNzaW9uU3RhY2sudGFrZUxhc3Qo
KTsKIAotICAgICAgICByZXR1cm4gbV9jb250ZXh0LmFkZEJyYW5jaChjb25kaXRpb24sIHZhbHVl
cywgdGFyZ2V0KTsKKyAgICAgICAgaWYgKHRhcmdldCA+PSBtX2NvbnRyb2xTdGFjay5zaXplKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENvbnRyb2xUeXBlJiBkYXRhID0g
bV9jb250cm9sU3RhY2tbbV9jb250cm9sU3RhY2suc2l6ZSgpIC0gMSAtIHRhcmdldF07CisKKyAg
ICAgICAgcmV0dXJuIG1fY29udGV4dC5hZGRCcmFuY2goZGF0YSwgY29uZGl0aW9uLCB2YWx1ZXMp
OwogICAgIH0KIAogICAgIGNhc2UgT3BUeXBlOjpSZXR1cm46IHsKQEAgLTIwMywxMSArMjMzLDE0
IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUg
b3ApCiAgICAgICAgIGlmIChyZXR1cm5Db3VudCkKICAgICAgICAgICAgIHJldHVyblZhbHVlcy5h
cHBlbmQobV9leHByZXNzaW9uU3RhY2sudGFrZUxhc3QoKSk7CiAKKyAgICAgICAgbV91bnJlYWNo
YWJsZUJsb2NrcyA9IDE7CiAgICAgICAgIHJldHVybiBtX2NvbnRleHQuYWRkUmV0dXJuKHJldHVy
blZhbHVlcyk7CiAgICAgfQogCi0gICAgY2FzZSBPcFR5cGU6OkVuZDoKLSAgICAgICAgcmV0dXJu
IG1fY29udGV4dC5lbmRCbG9jayhtX2V4cHJlc3Npb25TdGFjayk7CisgICAgY2FzZSBPcFR5cGU6
OkVuZDogeworICAgICAgICBDb250cm9sVHlwZSBkYXRhID0gbV9jb250cm9sU3RhY2sudGFrZUxh
c3QoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC5lbmRCbG9jayhkYXRhLCBtX2V4cHJlc3Np
b25TdGFjayk7CisgICAgfQogCiAgICAgfQogCkBAIC0yMTUsNiArMjQ4LDY0IEBAIGJvb2wgRnVu
Y3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb250ZXh0PgorYm9vbCBGdW5jdGlv
blBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24oT3BUeXBlIG9wKQor
eworICAgIEFTU0VSVChtX3VucmVhY2hhYmxlQmxvY2tzKTsKKyAgICBzd2l0Y2ggKG9wKSB7Cisg
ICAgY2FzZSBPcFR5cGU6OkVsc2U6IHsKKyAgICAgICAgaWYgKG1fdW5yZWFjaGFibGVCbG9ja3Mg
PiAxKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgQ29udHJvbFR5cGUmIGRh
dGEgPSBtX2NvbnRyb2xTdGFjay5sYXN0KCk7CisgICAgICAgIEFTU0VSVChkYXRhLnR5cGUoKSA9
PSBCbG9ja1R5cGU6OklmKTsKKyAgICAgICAgbV91bnJlYWNoYWJsZUJsb2NrcyA9IDA7CisgICAg
ICAgIHJldHVybiBtX2NvbnRleHQuYWRkRWxzZShkYXRhKTsKKyAgICB9CisKKyAgICBjYXNlIE9w
VHlwZTo6RW5kOiB7CisgICAgICAgIGlmIChtX3VucmVhY2hhYmxlQmxvY2tzID09IDEpIHsKKyAg
ICAgICAgICAgIENvbnRyb2xUeXBlIGRhdGEgPSBtX2NvbnRyb2xTdGFjay50YWtlTGFzdCgpOwor
ICAgICAgICAgICAgaWYgKCFtX2NvbnRleHQuaXNDb250aW51YXRpb25SZWFjaGFibGUoZGF0YSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbV91bnJl
YWNoYWJsZUJsb2Nrcy0tOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBjYXNl
IE9wVHlwZTo6TG9vcDoKKyAgICBjYXNlIE9wVHlwZTo6SWY6CisgICAgY2FzZSBPcFR5cGU6OkJs
b2NrOiB7CisgICAgICAgIG1fdW5yZWFjaGFibGVCbG9ja3MrKzsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgLy8gdHdvIGltbWVkaWF0ZSBjYXNlcworICAgIGNhc2UgT3BUeXBl
OjpCcmFuY2g6CisgICAgY2FzZSBPcFR5cGU6OkJyYW5jaElmOiB7CisgICAgICAgIHVpbnQzMl90
IHVudXNlZDsKKyAgICAgICAgaWYgKCFwYXJzZVZhclVJbnQzMih1bnVzZWQpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gcGFyc2VWYXJVSW50MzIodW51c2VkKTsK
KyAgICB9CisKKyAgICAvLyBvbmUgaW1tZWRpYXRlIGNhc2VzCisgICAgY2FzZSBPcFR5cGU6OlJl
dHVybjoKKyAgICBjYXNlIE9wVHlwZTo6STMyQ29uc3Q6CisgICAgY2FzZSBPcFR5cGU6OlNldExv
Y2FsOgorICAgIGNhc2UgT3BUeXBlOjpHZXRMb2NhbDogeworICAgICAgICB1aW50MzJfdCB1bnVz
ZWQ7CisgICAgICAgIHJldHVybiBwYXJzZVZhclVJbnQzMih1bnVzZWQpOworICAgIH0KKworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
I3VuZGVmIENSRUFURV9DQVNFCisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXQVNNCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNT3BzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmgK
aW5kZXggMTU1MjFjZjc4NjYxNjdjMjIyYjFkMTg3MmRmNzFkYmM0OWE3NTE4Zi4uMzBhZWNlNTk5
ODQ2YmFjODliZjkzZmVmZDQ5ZmQyNTc5YzFiNmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTU9wcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01PcHMuaApAQCAtMzcsNiArMzcsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdB
U00gewogI2RlZmluZSBGT1JfRUFDSF9XQVNNX0NPTlRST0xfRkxPV19PUChtYWNybykgXAogICAg
IG1hY3JvKEJsb2NrLCAweDAxLCBOQSkgXAogICAgIG1hY3JvKExvb3AsIDB4MDIsIE5BKSBcCisg
ICAgbWFjcm8oSWYsIDB4MDMsIE5BKSBcCisgICAgbWFjcm8oRWxzZSwgMHgwNCwgTkEpIFwKICAg
ICBtYWNybyhCcmFuY2gsIDB4MDYsIE5BKSBcCiAgICAgbWFjcm8oQnJhbmNoSWYsIDB4MDcsIE5B
KSBcCiAgICAgbWFjcm8oUmV0dXJuLCAweDA5LCBOQSkgXAo=
</data>
<flag name="review"
          id="311765"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>