<?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>149102</bug_id>
          
          <creation_ts>2015-09-13 01:26:14 -0700</creation_ts>
          <short_desc>Implement the arithmetic instructions for floats in WebAssembly</short_desc>
          <delta_ts>2015-09-14 11:30:25 -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>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125461</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-13 01:26:14 -0700</bug_when>
    <thetext>Implement the arithmetic instructions for floats (float32) in WebAssembly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125554</commentid>
    <comment_count>1</comment_count>
      <attachid>261106</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-14 00:10:32 -0700</bug_when>
    <thetext>Created attachment 261106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125555</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 00:13:31 -0700</bug_when>
    <thetext>Attachment 261106 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:844:  JIT_OPERATION is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125612</commentid>
    <comment_count>3</comment_count>
      <attachid>261106</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-14 10:42:04 -0700</bug_when>
    <thetext>Comment on attachment 261106
Patch

These conversions are pretty expensive. Why not just do the math as float?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125689</commentid>
    <comment_count>4</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-14 11:19:56 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #3)
&gt; Comment on attachment 261106 [details]
&gt; Patch
&gt; 
&gt; These conversions are pretty expensive. Why not just do the math as float?

Our macro assembler currently doesn&apos;t have any float arithmetic instructions. I could add them for x86, x86-64, and ARM. But I am not sure how to add and test them on MIPS and SH4. Is it OK if I just add them for x86, x86-64, and ARM and do something like

#if CPU(X86) || CPU(X86_64)
    m_assembler.addsd_rr(...);
#elif CPU(ARM) || CPU(ARM64) 
    m_assembler....(...);
#else
    convertFloatToDouble(FPRInfo::fpRegT0, FPRInfo::fpRegT0);
    addDouble(FPRInfo::fpRegT1, FPRInfo::fpRegT0);
    convertDoubleToFloat(FPRInfo::fpRegT0, FPRInfo::fpRegT0);
#endif

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125691</commentid>
    <comment_count>5</comment_count>
      <attachid>261106</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 11:30:21 -0700</bug_when>
    <thetext>Comment on attachment 261106
Patch

Clearing flags on attachment: 261106

Committed r189744: &lt;http://trac.webkit.org/changeset/189744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125692</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 11:30:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261106</attachid>
            <date>2015-09-14 00:10:32 -0700</date>
            <delta_ts>2015-09-14 11:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149102-20150914001041.patch</filename>
            <type>text/plain</type>
            <size>16450</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjJkYzg1M2EzNzY2OWQ3ZmQ5ZDNmYjMyY2QwOWNjNGZlMmM4NzZjLi44OTUwYWJlYTg5MjkwMDA3
ODI0YWE0MDMwNTk4ZmQ1NjI0NDc0MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxNS0wOS0xNCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25z
IGZvciBmbG9hdHMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTEwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgYXJpdGhtZXRpYyBp
bnN0cnVjdGlvbnMgZm9yIGZsb2F0cyAoZmxvYXQzMikKKyAgICAgICAgaW4gV2ViQXNzZW1ibHkg
YnkgY29udmVydGluZyB0aGUgZmxvYXQgb3BlcmFuZHMgdG8gZG91YmxlcywgcGVyZm9ybWluZwor
ICAgICAgICB0aGUgZXF1aXZhbGVudCBkb3VibGUgaW5zdHJ1Y3Rpb25zLCBhbmQgY29udmVydGlu
ZyB0aGUgcmVzdWx0IGJhY2sgdG8KKyAgICAgICAgZmxvYXQuIFRoZSBhc20uanMgc3BlYyBzYXlz
IHRoYXQgIkFzIHByb3ZlZCBpbiAnV2hlbiBpcyBkb3VibGUgcm91bmRpbmcKKyAgICAgICAgaW5u
b2N1b3VzPycgKEZpZ3Vlcm9hIDE5OTUpLCBib3RoIHRoZSAzMi0gYW5kIDY0LWJpdCB2ZXJzaW9u
cyBvZgorICAgICAgICBzdGFuZGFyZCBhcml0aG1ldGljIG9wZXJhdGlvbnMgcHJvZHVjZSBlcXVp
dmFsZW50IHJlc3VsdHMgd2hlbiBnaXZlbgorICAgICAgICAzMi1iaXQgaW5wdXRzIGFuZCBjb2Vy
Y2VkIHRvIDMyLWJpdCBvdXRwdXRzLiIKKyAgICAgICAgKGh0dHA6Ly9hc21qcy5vcmcvc3BlYy9s
YXRlc3QvI2Zsb2F0aXNoKQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBwYWRzIFdlYkFzc2Vt
Ymx5IGNhbGwgZnJhbWVzIGJ5IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLAorICAgICAg
ICBzbyB0aGF0IHRoZXJlIGlzIG5vIG5lZWQgdG8gYWRqdXN0IHRoZSBzdGFjayBwb2ludGVyIGV2
ZXJ5IHRpbWUgd2UgbWFrZQorICAgICAgICBhIHNsb3cgcGF0aCBjYWxsLgorCisgICAgICAgICog
dGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDMyLmpzOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy93YXNtL2FyaXRobWV0aWMtZmxvYXQzMi53YXNtOgorICAgICAgICAqIHdhc20vV0FT
TUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6
OnN0YXJ0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVp
bGRVbmFyeUYzMik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEJp
bmFyeUYzMik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpjYWxsT3BlcmF0
aW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmNhbGxBbmRVbmJveFJl
c3VsdCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjplbmRGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEJpbmFy
eUkzMik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkYzMik6Cisg
ICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJlc3Npb25GMzIp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lv
bkYzMik6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0
aW9uU3ludGF4Q2hlY2tlcjo6YnVpbGRVbmFyeUYzMik6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvblN5bnRheENoZWNrZXI6OmJ1aWxkQmluYXJ5RjMyKToKKwogMjAxNS0wOS0xMSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE4OTU4NSk6
IHJ1bi1wZXJmLXRlc3RzIFNwZWVkb21ldGVyIGZhaWxzIHdpdGggYSBjb25zb2xlIGVycm9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGht
ZXRpYy1mbG9hdDMyLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNt
LWFyaXRobWV0aWMtZmxvYXQzMi5qcwppbmRleCBjODFjYmZhNjI5MmQ0N2QzMmFlYWI0NzM3ZmE5
Zjc0OTAyOTM5Y2EzLi41MjVlY2E3YjQ3YmRiOGFhNDMxOGQ5MjUzZTM1NWZhMDVlZDFkODExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGht
ZXRpYy1mbG9hdDMyLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
d2FzbS1hcml0aG1ldGljLWZsb2F0MzIuanMKQEAgLTEyLDEzICsxMiw3NSBAQCBmdW5jdGlvbiBh
c21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAogICAgIHZh
ciBmcm91bmQgPSBnbG9iYWwuTWF0aC5mcm91bmQ7CisgICAgdmFyIGFicyA9IGdsb2JhbC5NYXRo
LmFiczsKKyAgICB2YXIgY2VpbCA9IGdsb2JhbC5NYXRoLmNlaWw7CisgICAgdmFyIGZsb29yID0g
Z2xvYmFsLk1hdGguZmxvb3I7CisgICAgdmFyIHNxcnQgPSBnbG9iYWwuTWF0aC5zcXJ0OwogCiAg
ICAgZnVuY3Rpb24gbnVtYmVyKCkgewogICAgICAgICByZXR1cm4gZnJvdW5kKDAuNSk7CiAgICAg
fQogCisgICAgZnVuY3Rpb24gbmVnYXRlKHgpIHsKKyAgICAgICAgeCA9IGZyb3VuZCh4KTsKKyAg
ICAgICAgcmV0dXJuIGZyb3VuZCgteCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWRkKHgsIHkp
IHsKKyAgICAgICAgeCA9IGZyb3VuZCh4KTsKKyAgICAgICAgeSA9IGZyb3VuZCh5KTsKKyAgICAg
ICAgcmV0dXJuIGZyb3VuZCh4ICsgeSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3VidHJhY3Qo
eCwgeSkgeworICAgICAgICB4ID0gZnJvdW5kKHgpOworICAgICAgICB5ID0gZnJvdW5kKHkpOwor
ICAgICAgICByZXR1cm4gZnJvdW5kKHggLSB5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtdWx0
aXBseSh4LCB5KSB7CisgICAgICAgIHggPSBmcm91bmQoeCk7CisgICAgICAgIHkgPSBmcm91bmQo
eSk7CisgICAgICAgIHJldHVybiBmcm91bmQoeCAqIHkpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGRpdmlkZSh4LCB5KSB7CisgICAgICAgIHggPSBmcm91bmQoeCk7CisgICAgICAgIHkgPSBmcm91
bmQoeSk7CisgICAgICAgIHJldHVybiBmcm91bmQoeCAvIHkpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGFic29sdXRlKHgpIHsKKyAgICAgICAgeCA9IGZyb3VuZCh4KTsKKyAgICAgICAgcmV0dXJu
IGZyb3VuZChhYnMoeCkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNlaWxOdW1iZXIoeCkgewor
ICAgICAgICB4ID0gZnJvdW5kKHgpOworICAgICAgICByZXR1cm4gZnJvdW5kKGNlaWwoeCkpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAgICAgICAgeCA9IGZyb3Vu
ZCh4KTsKKyAgICAgICAgcmV0dXJuIGZyb3VuZChmbG9vcih4KSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3F1YXJlUm9vdCh4KSB7CisgICAgICAgIHggPSBmcm91bmQoeCk7CisgICAgICAgIHJl
dHVybiBmcm91bmQoc3FydCh4KSk7CisgICAgfQorCiAgICAgcmV0dXJuIHsKICAgICAgICAgbnVt
YmVyOiBudW1iZXIsCisgICAgICAgIG5lZ2F0ZTogbmVnYXRlLAorICAgICAgICBhZGQ6IGFkZCwK
KyAgICAgICAgc3VidHJhY3Q6IHN1YnRyYWN0LAorICAgICAgICBtdWx0aXBseTogbXVsdGlwbHks
CisgICAgICAgIGRpdmlkZTogZGl2aWRlLAorICAgICAgICBhYnNvbHV0ZTogYWJzb2x1dGUsCisg
ICAgICAgIGNlaWxOdW1iZXI6IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9v
ck51bWJlciwKKyAgICAgICAgc3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKICAgICB9OwogfQogKi8K
QEAgLTI2LDMgKzg4LDE4IEBAIGZ1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwgYnVmZmVy
KSB7CiB2YXIgbW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3YXNtL2FyaXRobWV0aWMtZmxvYXQz
Mi53YXNtIik7CiAKIHNob3VsZEJlKG1vZHVsZS5udW1iZXIoKSwgMC41KTsKK3Nob3VsZEJlKG1v
ZHVsZS5uZWdhdGUoMC4xKSwgLTAuMTAwMDAwMDAxNDkwMTE2MTIpOworc2hvdWxkQmUobW9kdWxl
LmFkZCgwLjEsIDAuNSksIDAuNjAwMDAwMDIzODQxODU3OSk7CitzaG91bGRCZShpc05hTihtb2R1
bGUuYWRkKDAuMSwgTmFOKSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIEluZmlu
aXR5KSwgSW5maW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZChJbmZpbml0eSwgLUlu
ZmluaXR5KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0KDAuMSwgMC41KSwgLTAu
NDAwMDAwMDA1OTYwNDY0NSk7CitzaG91bGRCZShtb2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAw
LjA1MDAwMDAwMDc0NTA1ODA2KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwLjUpLCAw
LjIwMDAwMDAwMjk4MDIzMjI0KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwKSwgSW5m
aW5pdHkpOworc2hvdWxkQmUobW9kdWxlLmRpdmlkZSgwLjEsIC0wKSwgLUluZmluaXR5KTsKK3No
b3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSgtNC4yKSwgNC4xOTk5OTk4MDkyNjUxMzcpOworc2hvdWxk
QmUobW9kdWxlLmFic29sdXRlKDQuMiksIDQuMTk5OTk5ODA5MjY1MTM3KTsKK3Nob3VsZEJlKG1v
ZHVsZS5jZWlsTnVtYmVyKDQuMiksIDUpOworc2hvdWxkQmUobW9kdWxlLmZsb29yTnVtYmVyKDQu
MiksIDQpOworc2hvdWxkQmUobW9kdWxlLnNxdWFyZVJvb3QoMC4wOSksIDAuMzAwMDAwMDExOTIw
OTI4OTYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93
YXNtL2FyaXRobWV0aWMtZmxvYXQzMi53YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy93YXNtL2FyaXRobWV0aWMtZmxvYXQzMi53YXNtCmluZGV4IGEwNDdiYWU2ZTJjZjYy
ZjIxZGVjMzNkNzM5NDNjNDAyODYwZDhhNTIuLjM0OGZjYjdmNjYyM2ViMmVkZmViMTYwNjEyNTM5
OWVhNWJhN2I2ZTQgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxOTYKemNtWFpUU3F7
UD01Qy02eHdyK2hmWVRadWI0U2V0aFB8JVAtUTVLREY5dDk2LTsoLTFTLSg8RTJeWEFoKVBLfCgr
CnozYkN8QTNzX098NmthJmJeOD9qSUI5YGUqdThMaThVRUpqNUhuWXBANlNoTSVUc25ZM1VSYVFU
T2JEb2E8aVc4JQpzS3k5Szk+WitnNjJ6NklOIWlhSGliKT9nQUZPQCQyLVh+e210QH00cWV+Wms/
bGVHYjZVczxkJWVnRlVmCgpsaXRlcmFsIDQzCm1jbVhSPEVZQUpUIX5nPH1qOT8xUFdNRjd1PE9s
S1g4NSMzUmJDWGh3NyNJTUVxWHJORgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNRnVuY3Rpb25Db21waWxlci5oCmluZGV4IGQ4YmY2NTI4NDgyNDZlMzFmM2IxYjhkNGFj
NTczM2NhZWQ3N2M0NDIuLjZlN2I5MjdkNWQyNzU2NDE0ZGNiODU4YjkzYjAyNTkwYWE2OTFlMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBp
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGls
ZXIuaApAQCAtOTYsNyArOTYsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9iZWdpbkxhYmVsID0g
bGFiZWwoKTsKIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1XVEY6OnJvdW5kVXBUb011
bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbV9zdGFja0hlaWdodCkgKiBzaXpl
b2YoU3RhY2tTbG90KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLVdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtX3N0YWNrSGVpZ2h0KSAqIHNpemVvZihTdGFj
a1Nsb3QpIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICBtX3N0YWNrT3ZlcmZsb3cgPSBi
cmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZTdGFja0xpbWl0
KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAKICAgICAgICAgbW92ZShHUFJJbmZvOjpyZWdUMSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMTY1LDggKzE2NSw2IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKCFtX2RpdmlkZUVycm9ySnVtcExpc3QuZW1wdHkoKSkgewogICAgICAgICAgICAgbV9kaXZp
ZGVFcnJvckp1bXBMaXN0LmxpbmsodGhpcyk7CiAKLSAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCkKLSAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMy
KC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
ICAgICAgICAgICAgIHNldHVwQXJndW1lbnRzRXhlY1N0YXRlKCk7CiAgICAgICAgICAgICBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvblRocm93RGl2aWRlRXJyb3IpOwogICAg
ICAgICB9CkBAIC0zODAsNiArMzc4LDM4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFVOVVNF
RDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRVbmFyeUYzMihpbnQsIFdBU01PcEV4cHJlc3Npb25G
MzIgb3ApCisgICAgeworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1w
U3RhY2tUb3AgLSAxKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIHN3aXRjaCAob3ApIHsK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpOZWdhdGU6CisgICAgICAgICAgICBj
b252ZXJ0RmxvYXRUb0RvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QxKTsK
KyAgICAgICAgICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKKyAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAs
IEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkYzMjo6QWJzOgorICAgICAgICAgICAgY29udmVydEZsb2F0VG9Eb3VibGUo
RlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgICAgICBhYnNEb3Vi
bGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBjb252
ZXJ0RG91YmxlVG9GbG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkNlaWw6
CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKGNlaWxmLCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GMzI6OkZsb29yOgorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihmbG9vcmYsIEZQ
UkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U3FydDoKKyAgICAgICAgICAgIGNvbnZl
cnRGbG9hdFRvRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDEpOworICAg
ICAgICAgICAgc3FydERvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsK
KyAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUklu
Zm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBzdG9yZURv
dWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0g
MSkpOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZEJpbmFy
eUkzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMiBvcCkKICAgICB7CiAgICAgICAgIGxv
YWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEdQUkluZm86OnJlZ1Qw
KTsKQEAgLTQxOSw4ICs0NDksNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbW92ZShYODZS
ZWdpc3RlcnM6OmVkeCwgR1BSSW5mbzo6cmVnVDApOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBkbyBhbiBpbmxpbmUgZGl2IG9uIEFSTXY3IGFuZCBB
Uk02NC4KLSAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKLSAg
ICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgICAgIHN3aXRjaCAob3Ap
IHsKICAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U0RpdjoKICAgICAgICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkRpdiwgR1BSSW5mbzo6cmVnVDAsIEdQUklu
Zm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC00MzcsOCArNDY1LDYgQEAgcHVibGljOgog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCkKLSAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDY4LDYgKzQ5NCwzNCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkQmluYXJ5RjMyKGlu
dCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjMyIG9wKQorICAgIHsKKyAgICAgICAgbG9hZERvdWJs
ZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEZQUkluZm86OmZwUmVnVDAp
OworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAx
KSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIGNvbnZlcnRGbG9hdFRvRG91YmxlKEZQUklu
Zm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBjb252ZXJ0RmxvYXRUb0Rv
dWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgc3dpdGNo
IChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkFkZDoKKyAgICAgICAg
ICAgIGFkZERvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OlN1YjoKKyAg
ICAgICAgICAgIHN1YkRvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6Ok11
bDoKKyAgICAgICAgICAgIG11bERvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
MzI6OkRpdjoKKyAgICAgICAgICAgIGRpdkRvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZv
OjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBj
b252ZXJ0RG91YmxlVG9GbG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsK
KyAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6
ZnBSZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAg
cmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwg
aW50LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBv
cmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtNzg3
LDYgKzg0MSwxMiBAQCBwcml2YXRlOgogICAgIH0KICNlbmRpZgogCisgICAgdm9pZCBjYWxsT3Bl
cmF0aW9uKGZsb2F0IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRpb24pKGZsb2F0KSwgRlBSZWdpc3Rl
cklEIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJndW1lbnRz
KHNyYyk7CisgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworICAg
IH0KKwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpvcGVy
YXRpb24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVnIHNyYzIsIEdQUlJl
ZyBkc3QpCiAgICAgewogICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKQEAgLTg1
NSw3ICs5MTUsNyBAQCBwcml2YXRlOgogICAgICAgICBtX2NhbGxDb21waWxhdGlvbkluZm8ubGFz
dCgpLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1Yihs
aW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwogCiAgICAgICAgIGVuZC5saW5rKHRoaXMp
OwotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1XVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbV9zdGFja0hlaWdodCkgKiBzaXplb2YoU3RhY2tT
bG90KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLVdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihz
dGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtX3N0YWNrSGVpZ2h0KSAqIHNpemVvZihTdGFja1Ns
b3QpIC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBjaGVja1N0YWNrUG9pbnRl
ckFsaWdubWVudCgpOwogCiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKaW5kZXggY2U3
MzBkNmE5YzY5NzMwZjk4YWQ0MDBiMDVmYzI5M2ZhOTRjZGM2ZS4uZmNmMmRjM2RkNDQ3YzM5NzI1
NTJlZjViMzNlMDhkMTJkYTk4MjA5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCkBAIC03NTAsNiArNzUwLDE3IEBAIENvbnRleHRF
eHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjMyKENvbnRleHQm
IGNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GMzIo
Y29udGV4dCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6R2V0R2xvYmFsOgog
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlR2V0R2xvYmFsRXhwcmVzc2lvbkYzMihjb250ZXh0KTsK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpOZWdhdGU6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkYzMjo6QWJzOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
MzI6OkNlaWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Rmxvb3I6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U3FydDoKKyAgICAgICAgICAgIHJldHVybiBw
YXJzZVVuYXJ5RXhwcmVzc2lvbkYzMihjb250ZXh0LCBvcCk7CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkYzMjo6QWRkOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OlN1
YjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpNdWw6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkYzMjo6RGl2OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5
RXhwcmVzc2lvbkYzMihjb250ZXh0LCBvcCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkYzMjo6U2V0TG9jYWw6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6U2V0R2xv
YmFsOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkxvYWQ6CkBAIC03NjMsMTUg
Kzc3NCw2IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHBy
ZXNzaW9uRjMyKENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkYzMjo6RnJvbVMzMjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpGcm9tVTMy
OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GMzI6OkZyb21GNjQ6Ci0gICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6TmVnYXRlOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GMzI6OkFkZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpTdWI6Ci0g
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6TXVsOgotICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GMzI6OkRpdjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpB
YnM6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkYzMjo6Q2VpbDoKLSAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjMyOjpGbG9vcjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjMyOjpTcXJ0OgogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGVzZSBpbnN0
cnVjdGlvbnMuCiAgICAgICAgICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5z
dHJ1Y3Rpb24uIik7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC04NDAsNiArODQyLDI0IEBAIENvbnRl
eHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRHbG9iYWxFeHByZXNzaW9u
RjMyKENvbnRleHQmIGNvbnRlCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4
dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkYzMihD
b250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjMyIG9wKQoreworICAgIENvbnRleHRF
eHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb25GMzIoY29udGV4dCk7CisgICAg
UFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRVbmFyeUYzMihleHBy
ZXNzaW9uLCBvcCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJl
c3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUJpbmFyeUV4cHJlc3Npb25GMzIoQ29udGV4
dCYgY29udGV4dCwgV0FTTU9wRXhwcmVzc2lvbkYzMiBvcCkKK3sKKyAgICBDb250ZXh0RXhwcmVz
c2lvbiBsZWZ0ID0gcGFyc2VFeHByZXNzaW9uRjMyKGNvbnRleHQpOworICAgIFBST1BBR0FURV9F
UlJPUigpOworICAgIENvbnRleHRFeHByZXNzaW9uIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uRjMy
KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOworICAgIHJldHVybiBjb250ZXh0LmJ1
aWxkQmluYXJ5RjMyKGxlZnQsIHJpZ2h0LCBvcCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PgogQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Np
b25GNjQoQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBib29sIGhhc0ltbWVkaWF0ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggZGI5
MDVlMjcyMjZjYTQxMmQ5OWMwNzI3MTE0Zjg3NTViZDExZjYxNy4uY2U0M2NiZDlhNjVmM2MwNWFi
OTY1YzRlYjM2MDAwZjI1NzBmMjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTEwMyw2ICsxMDMsOCBAQCBwcml2YXRlOgogICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2Fs
RXhwcmVzc2lvbkYzMihDb250ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxh
dGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNz
aW9uRjMyKENvbnRleHQmKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4
cHJlc3Npb24gcGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjMyKENvbnRleHQmKTsKKyAgICB0ZW1w
bGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Np
b25GMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25GMzIpOworICAgIHRlbXBsYXRlIDxjbGFz
cyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GMzIoQ29u
dGV4dCYsIFdBU01PcEV4cHJlc3Npb25GMzIpOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRl
eHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CiAgICAg
dGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQ29uc3RhbnRQ
b29sSW5kZXhFeHByZXNzaW9uRjY0KENvbnRleHQmLCB1aW50MzJfdCBjb25zdGFudEluZGV4KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRh
eENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRh
eENoZWNrZXIuaAppbmRleCAyZTM4MmFhYjc5Y2Q0MjJjZTk2ZWEyNGJmYjNjZGU4YmI3ZmIyNWYw
Li5kNDU0ZjNlOTVjZTA0ZTAyYmMwODZjMjQ0MGFiZjBkOWQ5MDM0ZDliIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5o
CkBAIC0xMDYsMTIgKzEwNiwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAg
ICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGMzIoaW50LCBXQVNNT3BFeHByZXNzaW9uRjMyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRCaW5h
cnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIpCiAgICAgewogICAgICAgICBtX3Rl
bXBTdGFja1RvcC0tOwogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBi
dWlsZEJpbmFyeUYzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkYzMikKKyAgICB7CisgICAg
ICAgIG1fdGVtcFN0YWNrVG9wLS07CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAg
ICAgaW50IGJ1aWxkUmVsYXRpb25hbEkzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMikK
ICAgICB7CiAgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>