<?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>148772</bug_id>
          
          <creation_ts>2015-09-03 19:13:16 -0700</creation_ts>
          <short_desc>Implement the signed division instruction in WebAssembly</short_desc>
          <delta_ts>2015-09-04 15:47:35 -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>
    
    <blocked>148791</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123277</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-03 19:13:16 -0700</bug_when>
    <thetext>Implement the signed division instruction for WebAssembly files generated by pack-asmjs &lt;https://github.com/WebAssembly/polyfill-prototype-1&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123287</commentid>
    <comment_count>1</comment_count>
      <attachid>260553</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-03 19:32:06 -0700</bug_when>
    <thetext>Created attachment 260553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123290</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 19:35:23 -0700</bug_when>
    <thetext>Attachment 260553 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:255:  JIT_OPERATION is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 8 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>1123378</commentid>
    <comment_count>3</comment_count>
      <attachid>260579</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-04 01:30:23 -0700</bug_when>
    <thetext>Created attachment 260579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123379</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-04 01:32:33 -0700</bug_when>
    <thetext>Attachment 260579 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:255:  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>1123604</commentid>
    <comment_count>5</comment_count>
      <attachid>260579</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-04 13:58:05 -0700</bug_when>
    <thetext>Comment on attachment 260579
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123642</commentid>
    <comment_count>6</comment_count>
      <attachid>260623</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-04 14:45:03 -0700</bug_when>
    <thetext>Created attachment 260623
Patch

Update to ToT after this patch &lt;https://bugs.webkit.org/show_bug.cgi?id=148793&gt; landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123644</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-04 14:47:56 -0700</bug_when>
    <thetext>Attachment 260623 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:282:  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>1123656</commentid>
    <comment_count>8</comment_count>
      <attachid>260623</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-04 15:00:57 -0700</bug_when>
    <thetext>Comment on attachment 260623
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123681</commentid>
    <comment_count>9</comment_count>
      <attachid>260623</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-04 15:47:30 -0700</bug_when>
    <thetext>Comment on attachment 260623
Patch

Clearing flags on attachment: 260623

Committed r189396: &lt;http://trac.webkit.org/changeset/189396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123682</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-04 15:47:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260553</attachid>
            <date>2015-09-03 19:32:06 -0700</date>
            <delta_ts>2015-09-04 01:30:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148772-20150903193205.patch</filename>
            <type>text/plain</type>
            <size>14123</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTFmZThjZmRkNzI2OWRhYzQ2MWRiM2ZiMDNmYzAzNDFhNjFlODYzLi4wMDY2OTU2OGI2NTY0NTAw
NWVmYmJmNTNmZWZjNDQ0Y2VjYTRhNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wOS0wMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIHNpZ25lZCBkaXZpc2lvbiBpbnN0cnVj
dGlvbiBpbiBXZWJBc3NlbWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4NzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBzaWduZWQgZGl2aXNpb24gaW5z
dHJ1Y3Rpb24gaW4gV2ViQXNzZW1ibHkKKyAgICAgICAgZm9yIDMyLWJpdCBpbnRlZ2Vycy4gV2Ug
dXNlIHRoZSBJRElWIGluc3RydWN0aW9uIG9uIFg4NiBhbmQgWDg2LTY0IGFuZAorICAgICAgICB1
c2UgYSBDIGZ1bmN0aW9uIG9uIGFsbCBvdGhlciBwbGF0Zm9ybXMuIFdlIHRocm93IGFuIGV4Y2Vw
dGlvbiBpZgorICAgICAgICAtIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJvLCBvcgorICAgICAgICAt
IHRoZSBudW1lcmF0b3IgaXMgLTJeMzEgYW5kIHRoZSBkZW5vbWluYXRvciBpcyAtMS4KKworICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9u
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChK
U0M6OmNyZWF0ZURpdmlkZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLmpzOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMud2FzbToKKyAgICAgICAgKiB3YXNtL1dB
U01GdW5jdGlvbkNvbXBpbGVyLmg6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkRpdik6CisgICAg
ICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjplbmRGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEJpbmFyeUkzMik6CisgICAgICAgIChKU0M6
OldBU01GdW5jdGlvbkNvbXBpbGVyOjphcHBlbmRDYWxsKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1
bmN0aW9uQ29tcGlsZXI6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2spOgorICAgICAgICAo
SlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6
OldBU01GdW5jdGlvbkNvbXBpbGVyOjp0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpX
QVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMik6CisKIDIwMTUtMDktMDMgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBXYXRjaHBvaW50c09uU3Ry
dWN0dXJlU3R1YkluZm8gZG9lc24ndCBuZWVkIHRvIGJlIHJlZmVyZW5jZSBjb3VudGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBkNjZhMjE0NTlh
Y2JjNDI3NjJiMWVjNTA2NjZiMDc5NjRkZDE1ZjVhLi5kNDUwZTIxNDU0N2I1NGE1YjBmNjI0OTFl
MWNmMzc4MGFjYTIyYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKQEAgLTk1LDYgKzk1LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25U
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayoKICAgICB2
bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihj
YWxsZXJGcmFtZSkpOwogfQogCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblRocm93RGl2aWRlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQoreworICAg
IFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIFZNRW50cnlGcmFtZSogdm1FbnRyeUZyYW1lID0g
dm0tPnRvcFZNRW50cnlGcmFtZTsKKyAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gZXhlYy0+
Y2FsbGVyRnJhbWUodm1FbnRyeUZyYW1lKTsKKworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlcldp
dGhSZXN0b3JlIHRyYWNlcih2bSwgdm1FbnRyeUZyYW1lLCBjYWxsZXJGcmFtZSk7CisgICAgRXJy
b3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoKnZtKTsKKyAgICB2bS0+dGhyb3dFeGNlcHRpb24o
Y2FsbGVyRnJhbWUsIGNyZWF0ZURpdmlkZUVycm9yKGNhbGxlckZyYW1lKSk7Cit9CisjZW5kaWYK
KwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggY2NjNTEyNjdlZmYxMDMyNDEzYzYwNmNhZGFi
ODJhMGVlMDI3YjhlZi4uYjU1OWE4M2RhYWM1NjQ0MDA5MWEzZTIzOTMwNmRlNGI4N2IwNzljOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTI0NSw2ICsy
NDUsOSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxs
ZXJGcmFtZShWTSosIEV4ZWNTdGF0ZSopIFdURl9JTgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblZNSGFuZGxlRXhjZXB0aW9uKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIAogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSos
IENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCit2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dEaXZpZGVFcnJvcihFeGVjU3RhdGUqKSBXVEZf
SU5URVJOQUw7CisjZW5kaWYKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJp
dHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRlKiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBX
VEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCmluZGV4IGI3ODU5YmZlM2U4ZWFmZDFlYzY0YWI1ZmJmZWFmMjU3MmFk
MjdjMTcuLjgyNmZlYjIwYjVmNjg0OThhMjIxYTA0MGQwZWJhZDE1YzYwZDAyZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBA
IC03MCw2ICs3MCwxMyBAQCBKU09iamVjdCogY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNT
dGF0ZSogZXhlYykKICAgICByZXR1cm4gY3JlYXRlUmFuZ2VFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIk1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLiIpKTsKIH0KIAorI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKK0pTT2JqZWN0KiBjcmVhdGVEaXZpZGVFcnJvcihFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiRGl2aXNp
b24gYnkgemVybyBvciBkaXZpc2lvbiBvdmVyZmxvdy4iKSk7Cit9CisjZW5kaWYKKwogSlNPYmpl
Y3QqIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCkKIHsKICAgICBpZiAoZXhlYy0+cHJvcGVydHlOYW1lcygpLmlzUHJp
dmF0ZU5hbWUoaWRlbnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmgKaW5kZXggYzZiYTAyZTNmYmIwMzNiMjFmMWQ5M2ExMWVhN2NkOWQz
MGYxOTM5YS4uNzZmYzY4MDAwMjgzOWY4MjlhZjU2Mzc4MTVlNDRiNDMwMGUzN2UzNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAt
NDAsNiArNDAsOSBAQCBKU09iamVjdCogY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlv
bihWTSopOwogSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNl
cHRpb24oRXhjZXB0aW9uKik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlRXJy
b3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgU3RyaW5nJiwgRXJyb3JJbnN0YW5jZTo6U291
cmNlQXBwZW5kZXIpOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN0YWNrT3Zl
cmZsb3dFcnJvcihFeGVjU3RhdGUqKTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCitKU09iamVj
dCogY3JlYXRlRGl2aWRlRXJyb3IoRXhlY1N0YXRlKik7CisjZW5kaWYKIEpTT2JqZWN0KiBjcmVh
dGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsK
IEpTT2JqZWN0KiBjcmVhdGVURFpFcnJvcihFeGVjU3RhdGUqKTsKIEpTT2JqZWN0KiBjcmVhdGVO
b3RBbk9iamVjdEVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy5qcwppbmRleCBiMzdh
M2NjMzA5MTk5ZjJjMTBhMmM2ZWRhNmQyNDY5ODRiYzZjZmYxLi4yMGM5MTFjYWQyZTU3YzEwYzYy
NTZmOTEwZDNmNjBiZWQ3YmM5ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy5qcwpAQCAtNiwxNyArNiw2NCBAQCB3YXNt
LWFyaXRobWV0aWMud2FzbSBpcyBnZW5lcmF0ZWQgYnkgcGFjay1hc21qcyA8aHR0cHM6Ly9naXRo
dWIuY29tL1dlYkFzc2VtYmx5LwogZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZm
ZXIpIHsKICAgICAidXNlIGFzbSI7CiAKLSAgICBmdW5jdGlvbiBtYWluKCkgewotICAgICAgICBy
ZXR1cm4gKDEwICsgNDApIC0gODsKKyAgICBmdW5jdGlvbiBhZGRTdWIoKSB7CisgICAgICAgIHJl
dHVybiAoKDEwICsgNDApIC0gOCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZE92ZXJm
bG93KCkgeworICAgICAgICByZXR1cm4gKDIxNDc0ODM2NDcgKyAxKSB8IDA7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZGl2KCkgeworICAgICAgICByZXR1cm4gKDQyIC8gNSkgfCAwOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGRpdkJ5WmVybygpIHsKKyAgICAgICAgcmV0dXJuICgxIC8gMCkgfCAw
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGRpdk92ZXJmbG93KCkgeworICAgICAgICByZXR1cm4g
KC0yMTQ3NDgzNjQ4IC8gLTEpIHwgMDsKICAgICB9CiAKICAgICByZXR1cm4gewotICAgICAgICBt
YWluOiBtYWluCisgICAgICAgIGFkZFN1YjogYWRkU3ViLAorICAgICAgICBhZGRPdmVyZmxvdzog
YWRkT3ZlcmZsb3csCisgICAgICAgIGRpdjogZGl2LAorICAgICAgICBkaXZCeVplcm86IGRpdkJ5
WmVybywKKyAgICAgICAgZGl2T3ZlcmZsb3c6IGRpdk92ZXJmbG93CiAgICAgfTsKIH0KICovCiAK
IHZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20tYXJpdGhtZXRpYy53YXNtIik7Ci12
YXIgcmVzdWx0ID0gbW9kdWxlLm1haW4oKTsKKwordmFyIHJlc3VsdCA9IG1vZHVsZS5hZGRTdWIo
KTsKIGlmIChyZXN1bHQgIT0gNDIpCiAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworCityZXN1bHQgPSBtb2R1bGUuYWRkT3ZlcmZsb3coKTsKK2lmIChyZXN1bHQgIT0g
LTIxNDc0ODM2NDgpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
CityZXN1bHQgPSBtb2R1bGUuZGl2KCk7CitpZiAocmVzdWx0ICE9IDgpCisgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCit2YXIgZGlkVGhyb3cgPSBmYWxzZTsKK3Ry
eSB7CisgICAgbW9kdWxlLmRpdkJ5WmVybygpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93
ID0gdHJ1ZTsKK30KK2lmICghZGlkVGhyb3cpCisgICAgdGhyb3cgIkVycm9yOiBzaG91bGQgaGF2
ZSB0aHJvd24gYnV0IGRpZG4ndC4iOworCitkaWRUaHJvdyA9IGZhbHNlOwordHJ5IHsKKyAgICBt
b2R1bGUuZGl2T3ZlcmZsb3coKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IHRydWU7
Cit9CitpZiAoIWRpZFRocm93KQorICAgIHRocm93ICJFcnJvcjogc2hvdWxkIGhhdmUgdGhyb3du
IGJ1dCBkaWRuJ3QuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvd2FzbS1hcml0aG1ldGljLndhc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3dhc20tYXJpdGhtZXRpYy53YXNtCmluZGV4IDM0ZWQ4NWQyNmRjNWI4MjY4NWMwNDkz
NTU5ZWZmNDkxNzM5Y2YzM2YuLmM3ODFmMWQ5MDI5Njg2ZmQ1YjhhZTE1NjhiMGU0NzY1ZGUxZmU4
MzEgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMzAKemNtWFI8RVkzYTUlbTR6NlU9
bUVRTFlOSlZ7UEo/RTcmVFNeOEZHeU9mcTtEPmtnM1Mxd0c+MXhUbWFAWTAwOVNCCnZtWTxPfEYo
b0NxRz5MJSROYykkaTdOekNubW9xUz9XUkB7NzBTVHdkc01NbC0yNCl9PUYzQURfNzExUUkKCmxp
dGVyYWwgNDIKbGNtWFI8RVlBSkchfmc8fVU9cWVgVkMwdlZUZzlsY2Z7YCZkRipBPlcwUldEejJC
WkswCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
Q29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBp
bGVyLmgKaW5kZXggNzM3NmZkOTJmYzAwODU2OTZmYmM2MTUzNWVkYWIyNWFkYTExYmY3Ni4uNzVi
YmEyNzRjZjA3YmEzODNhZWUyODYyMDAwMzc2ZTdjNzg2YzY5MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCkBAIC0zNyw2ICszNywx
MyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lmICFDUFUoWDg2KSAmJiAhQ1BVKFg4Nl82NCkK
K3N0YXRpYyBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGl2KGludDMyX3QgbGVmdCwg
aW50MzJfdCByaWdodCkKK3sKKyAgICByZXR1cm4gbGVmdCAvIHJpZ2h0OworfQorI2VuZGlmCisK
IGNsYXNzIFdBU01GdW5jdGlvbkNvbXBpbGVyIDogcHJpdmF0ZSBDQ2FsbEhlbHBlcnMgewogcHVi
bGljOgogICAgIHR5cGVkZWYgaW50IEV4cHJlc3Npb247CkBAIC0xMDgsNyArMTE1LDggQEAgcHVi
bGljOgogICAgICAgICBtX3N0YWNrT3ZlcmZsb3cubGluayh0aGlzKTsKICAgICAgICAgaWYgKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQogICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7Ci0gICAgICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCk7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrKSk7CisgICAgICAg
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93
RXJyb3IpOwogCiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYXJpdHkgY2hlY2suCiAgICAg
ICAgIExhYmVsIGFyaXR5Q2hlY2sgPSBsYWJlbCgpOwpAQCAtMTE2LDYgKzEyNCwzMSBAQCBwdWJs
aWM6CiAgICAgICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9j
aywgSlNTdGFjazo6Q29kZUJsb2NrKTsKICAgICAgICAganVtcChtX2JlZ2luTGFiZWwpOwogCisg
ICAgICAgIGlmICghbV9kaXZpZGVFcnJvckp1bXBMaXN0LmVtcHR5KCkpIHsKKyAgICAgICAgICAg
IG1fZGl2aWRlRXJyb3JKdW1wTGlzdC5saW5rKHRoaXMpOworCisgICAgICAgICAgICBpZiAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgICAgICBzZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOworICAgICAgICAg
ICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25UaHJvd0RpdmlkZUVycm9y
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbV9leGNlcHRpb25DaGVja3MuZW1wdHkoKSkg
eworICAgICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgdHdvIGFy
Z3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgorICAgICAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKHZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
ICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKKworI2lmIENQVShYODYpCisgICAgICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHVz
ZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGluIHRoZSBTcGVj
dWxhdGl2ZUpJVCBsYXllciEKKyAgICAgICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKKyAgICAgICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKKyNlbmRpZgor
ICAgICAgICAgICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoY2FsbCgpLCBGdW5jdGlv
blB0cihsb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lKS52YWx1ZSgpKSk7Cisg
ICAgICAgICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CisgICAgICAgIH0KKwogICAgICAg
ICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAqdGhpcywgbV9jb2RlQmxvY2ssIEpJVENv
bXBpbGF0aW9uTXVzdFN1Y2NlZWQpOwogCiAgICAgICAgIGZvciAoYXV0byBpdGVyYXRvciA6IG1f
Y2FsbHMpCkBAIC0xNjIsNiArMTk1LDI1IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uSTMyOjpTdWI6CiAgICAgICAgICAgICBzdWIzMihHUFJJbmZvOjpyZWdUMSwgR1BS
SW5mbzo6cmVnVDApOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkkzMjo6U0RpdjogeworICAgICAgICAgICAgbV9kaXZpZGVFcnJvckp1bXBMaXN0LmFw
cGVuZChicmFuY2hUZXN0MzIoWmVybywgR1BSSW5mbzo6cmVnVDEpKTsKKyAgICAgICAgICAgIEp1
bXAgZGVub21pbmF0b3JOb3ROZWcxID0gYnJhbmNoMzIoTm90RXF1YWwsIEdQUkluZm86OnJlZ1Qx
LCBUcnVzdGVkSW1tMzIoLTEpKTsKKyAgICAgICAgICAgIG1fZGl2aWRlRXJyb3JKdW1wTGlzdC5h
cHBlbmQoYnJhbmNoMzIoRXF1YWwsIEdQUkluZm86OnJlZ1QwLCBUcnVzdGVkSW1tMzIoLTIxNDc0
ODM2NDctMSkpKTsKKyAgICAgICAgICAgIGRlbm9taW5hdG9yTm90TmVnMS5saW5rKHRoaXMpOwor
I2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgICAgICBBU1NFUlQoR1BSSW5mbzo6
cmVnVDAgPT0gWDg2UmVnaXN0ZXJzOjplYXgpOworICAgICAgICAgICAgbW92ZShHUFJJbmZvOjpy
ZWdUMSwgWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY2RxKCk7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5pZGl2bF9yKFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyNl
bHNlCisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAg
ICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkRpdiwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisg
ICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyNlbmRpZgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0xODksMjIgKzI0MSwyMiBAQCBwcml2YXRlOgogICAg
ICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgLShtX251bWJl
ck9mTG9jYWxzICsgdGVtcG9yYXJ5SW5kZXggKyAxKSAqIHNpemVvZihTdGFja1Nsb3QpKTsKICAg
ICB9CiAKLSAgICB2b2lkIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKKyAgICB2b2lkIGFwcGVu
ZENhbGwoY29uc3QgRnVuY3Rpb25QdHImIGZ1bmN0aW9uKQogICAgIHsKLSAgICAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2spKTsKKyAgICAg
ICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoY2FsbCgpLCBmdW5jdGlvbi52YWx1ZSgp
KSk7CisgICAgfQogCi0gICAgICAgIG1fY2FsbHMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGNhbGwo
KSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IpLnZhbHVlKCkp
KTsKKyAgICB2b2lkIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soY29uc3QgRnVuY3Rpb25Q
dHImIGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgYXBwZW5kQ2FsbChmdW5jdGlvbik7CisgICAg
ICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChlbWl0RXhjZXB0aW9uQ2hlY2soKSk7CisgICAg
fQogCi0gICAgICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUgaXMg
cGFzc2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUq
KS4KLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpOwotI2lmIENQVShYODYpCi0gICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNl
IHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1
bGF0aXZlSklUIGxheWVyIQotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0g
ICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKLSNlbmRpZgotICAgICAgICBt
X2NhbGxzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihjYWxsKCksIEZ1bmN0aW9uUHRyKGxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUpLnZhbHVlKCkpKTsKLSAgICAgICAganVtcFRv
RXhjZXB0aW9uSGFuZGxlcigpOworICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90IEpJVF9P
UEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3JjMSwgR1BS
UmVnIHNyYzIsIEdQUlJlZyBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMx
LCBzcmMyKTsKKyAgICAgICAgYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgICAgICBtb3ZlKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCBkc3QpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIG1fc3Rh
Y2tIZWlnaHQ7CkBAIC0yMTMsNiArMjY1LDggQEAgcHJpdmF0ZToKIAogICAgIExhYmVsIG1fYmVn
aW5MYWJlbDsKICAgICBKdW1wIG1fc3RhY2tPdmVyZmxvdzsKKyAgICBKdW1wTGlzdCBtX2Rpdmlk
ZUVycm9ySnVtcExpc3Q7CisgICAgSnVtcExpc3QgbV9leGNlcHRpb25DaGVja3M7CiAKICAgICBW
ZWN0b3I8c3RkOjpwYWlyPENhbGwsIHZvaWQqPj4gbV9jYWxsczsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCBjOGI2NDg0
OGZlZWI0OWVkY2U2YTZlZjIzOTNhNzE4ZWI2MDllNjJiLi4zMGVkMzJhNmY4MGQyYzEyZmI3MWRh
NzgxM2I4NTY1NmZlMTVlZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTQyNyw2ICs0MjcsNyBAQCBDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250
ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkkzMihjb250
ZXh0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpBZGQ6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U3ViOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25JMzI6OlNEaXY6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VCaW5hcnlFeHByZXNzaW9uSTMy
KGNvbnRleHQsIG9wKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpDb25zdGFu
dFBvb2xJbmRleDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpHZXRMb2NhbDoK
QEAgLTQ1OCw3ICs0NTksNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6
OnBhcnNlRXhwcmVzc2lvbkkzMihDb250ZXh0JiBjb250ZXh0KQogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25JMzI6OkZyb21GNjQ6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkz
Mjo6TmVnYXRlOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6Ok11bDoKLSAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpTRGl2OgogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25JMzI6OlVEaXY6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U01v
ZDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpVTW9kOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260579</attachid>
            <date>2015-09-04 01:30:23 -0700</date>
            <delta_ts>2015-09-04 14:45:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148772-20150904013021.patch</filename>
            <type>text/plain</type>
            <size>12763</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ODM4NDQ0YmExNDM2MjU3NTFmZTFkMTczY2FiZTIyN2E4ZTQ0ZDg3Li45M2JhMTY1ZDUzNTQwNmRk
MGRkNzk0MWI3ZTkxZjUyZGFjNzAyZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxNS0wOS0wNCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIHNpZ25lZCBkaXZpc2lvbiBpbnN0cnVj
dGlvbiBpbiBXZWJBc3NlbWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4NzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBzaWduZWQgZGl2aXNpb24gaW5z
dHJ1Y3Rpb24gaW4gV2ViQXNzZW1ibHkKKyAgICAgICAgZm9yIDMyLWJpdCBpbnRlZ2Vycy4gV2Ug
dXNlIHRoZSBJRElWIGluc3RydWN0aW9uIG9uIHg4NiBhbmQgeDg2LTY0IGFuZAorICAgICAgICB1
c2UgYSBDIGZ1bmN0aW9uIG9uIGFsbCBvdGhlciBwbGF0Zm9ybXMuIFdlIHRocm93IGFuIGV4Y2Vw
dGlvbiBpZgorICAgICAgICAtIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJvLCBvcgorICAgICAgICAt
IHRoZSBudW1lcmF0b3IgaXMgLTJeMzEgYW5kIHRoZSBkZW5vbWluYXRvciBpcyAtMS4KKworICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9u
cy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMuanM6CisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3dhc20tYXJpdGhtZXRpYy53YXNtOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaDoKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uRGl2KToKKyAgICAgICAgKEpTQzo6V0FT
TUZ1bmN0aW9uQ29tcGlsZXI6OmVuZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0
aW9uQ29tcGlsZXI6OmJ1aWxkQmluYXJ5STMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmFwcGVuZENhbGwpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxl
cjo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayk6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvbkNvbXBpbGVyOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBh
cnNlcjo6cGFyc2VFeHByZXNzaW9uSTMyKToKKwogMjAxNS0wOS0wMyBBbGVrc2FuZHIgU2thY2hr
b3YgICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2
IGFycm93IGZ1bmN0aW9uIHN5bnRheC4gUHJvdG90eXBlIG9mIGFycm93IGZ1bmN0aW9uIHNob3Vs
ZCBiZSB1bmRlZmluZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmluZGV4IDhjNmJlZTZmNDJmNTU2MTQwOGYxNTNmZTUwMzdiMmJlNzcwNDNkNmEuLmJlM2E5
YjBkMDY1MzA3YTQxZDE1MTMzMTc0MWJmNTMyNjEwMTdhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtOTUsNiArOTUsMTkgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSogZXhl
YywgQ29kZUJsb2NrKgogICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CiB9CiAKKyNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dEaXZpZGVFcnJvcihFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgVk1FbnRyeUZy
YW1lKiB2bUVudHJ5RnJhbWUgPSB2bS0+dG9wVk1FbnRyeUZyYW1lOworICAgIENhbGxGcmFtZSog
Y2FsbGVyRnJhbWUgPSBleGVjLT5jYWxsZXJGcmFtZSh2bUVudHJ5RnJhbWUpOworCisgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyV2l0aFJlc3RvcmUgdHJhY2VyKHZtLCB2bUVudHJ5RnJhbWUsIGNh
bGxlckZyYW1lKTsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSgqdm0pOworICAg
IHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlRXJyb3IoY2FsbGVyRnJhbWUs
IEFTQ0lJTGl0ZXJhbCgiRGl2aXNpb24gYnkgemVybyBvciBkaXZpc2lvbiBvdmVyZmxvdy4iKSkp
OworfQorI2VuZGlmCisKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsQXJpdHlD
aGVjayhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IGNjYzUxMjY3ZWZmMTAz
MjQxM2M2MDZjYWRhYjgyYTBlZTAyN2I4ZWYuLmI1NTlhODNkYWFjNTY0NDAwOTFhM2UyMzkzMDZk
ZTRiODdiMDc5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
CkBAIC0yNDUsNiArMjQ1LDkgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhh
bmRsZXJGcm9tQ2FsbGVyRnJhbWUoVk0qLCBFeGVjU3RhdGUqKSBXVEZfSU4KIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbihFeGVjU3RhdGUqKSBXVEZfSU5URVJO
QUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKSBXVEZfSU5URVJOQUw7CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93RGl2aWRlRXJyb3IoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOworI2VuZGlmCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlk
KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRT
dHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy5qcwppbmRleCBiMzdhM2NjMzA5MTk5ZjJj
MTBhMmM2ZWRhNmQyNDY5ODRiYzZjZmYxLi40YTQyOTk2NjE4ZDI5MTY5YmZmMTIyN2ZmNTg3ZDE2
NjcxYzg5Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3dhc20tYXJpdGhtZXRpYy5qcwpAQCAtMSwyMiArMSw3MSBAQAogLy9AIHNraXAKIAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJy
b3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJub3QgdGhyb3duLiIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBt
ZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhl
cnJvcikpOworfQorCiAvKgogd2FzbS1hcml0aG1ldGljLndhc20gaXMgZ2VuZXJhdGVkIGJ5IHBh
Y2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9wb2x5ZmlsbC1wcm90b3R5
cGUtMT4gZnJvbSB0aGUgZm9sbG93aW5nIHNjcmlwdDoKIAogZnVuY3Rpb24gYXNtTW9kdWxlKGds
b2JhbCwgZW52LCBidWZmZXIpIHsKICAgICAidXNlIGFzbSI7CiAKLSAgICBmdW5jdGlvbiBtYWlu
KCkgewotICAgICAgICByZXR1cm4gKDEwICsgNDApIC0gODsKKyAgICBmdW5jdGlvbiBhZGRTdWJ0
cmFjdCgpIHsKKyAgICAgICAgcmV0dXJuICgoMTAgKyA0MCkgLSA4KSB8IDA7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gYWRkT3ZlcmZsb3coKSB7CisgICAgICAgIHJldHVybiAoMjE0NzQ4MzY0NyAr
IDEpIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaXZpZGUoKSB7CisgICAgICAgIHJldHVy
biAoNDIgLyA1KSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlQnlaZXJvKCkgewor
ICAgICAgICByZXR1cm4gKDEgLyAwKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRl
T3ZlcmZsb3coKSB7CisgICAgICAgIHJldHVybiAoLTIxNDc0ODM2NDggLyAtMSkgfCAwOwogICAg
IH0KIAogICAgIHJldHVybiB7Ci0gICAgICAgIG1haW46IG1haW4KKyAgICAgICAgYWRkU3VidHJh
Y3Q6IGFkZFN1YnRyYWN0LAorICAgICAgICBhZGRPdmVyZmxvdzogYWRkT3ZlcmZsb3csCisgICAg
ICAgIGRpdmlkZTogZGl2aWRlLAorICAgICAgICBkaXZpZGVCeVplcm86IGRpdmlkZUJ5WmVybywK
KyAgICAgICAgZGl2aWRlT3ZlcmZsb3c6IGRpdmlkZU92ZXJmbG93LAogICAgIH07CiB9CiAqLwog
CiB2YXIgbW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3YXNtLWFyaXRobWV0aWMud2FzbSIpOwot
dmFyIHJlc3VsdCA9IG1vZHVsZS5tYWluKCk7Ci1pZiAocmVzdWx0ICE9IDQyKQotICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKworc2hvdWxkQmUobW9kdWxlLmFkZFN1
YnRyYWN0KCksIDQyKTsKKworc2hvdWxkQmUobW9kdWxlLmFkZE92ZXJmbG93KCksIC0yMTQ3NDgz
NjQ4KTsKKworc2hvdWxkQmUobW9kdWxlLmRpdmlkZSgpLCA4KTsKKworc2hvdWxkVGhyb3coKCkg
PT4geworICAgIG1vZHVsZS5kaXZpZGVCeVplcm8oKTsKK30sICJFcnJvcjogRGl2aXNpb24gYnkg
emVybyBvciBkaXZpc2lvbiBvdmVyZmxvdy4iKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAg
IG1vZHVsZS5kaXZpZGVPdmVyZmxvdygpOworfSwgIkVycm9yOiBEaXZpc2lvbiBieSB6ZXJvIG9y
IGRpdmlzaW9uIG92ZXJmbG93LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMud2FzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLndhc20KaW5kZXggMzRlZDg1ZDI2ZGM1Yjgy
Njg1YzA0OTM1NTllZmY0OTE3MzljZjMzZi4uNGNjZDdiNjBjODU3ZWQ3YTE5ZDZlZDZjN2EyMjUw
YWQ5ZjU4ZmFkNCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE0NAp6Y21YUjxFWTd7
aSVtNHo2VT1tRVFMWU5KVntQSj9FNyZUU144Rkd5T2ZxO0Q+a2czUzF3Rz4xeFRtYUBZMDA5U0IK
em1ZPE98RihvQ3FHXndPMEZ9WnwrMG0kKCRPRCMmdiR1RFBNT3Z4PEVPaTUqNmczd050UUs/MXc0
OXBON1RvbnJkCkRaZGZYRgoKbGl0ZXJhbCA0MgpsY21YUjxFWUFKRyF+Zzx9VT1xZWBWQzB2VlRn
OWxjZntgJmRGKkE+VzBSV0R6MkJaSzAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRleCA3Mzc2ZmQ5MmZjMDA4NTY5NmZiYzYxNTM1
ZWRhYjI1YWRhMTFiZjc2Li44ZTE5MTU1N2NjMWYzNWE3OTk3YjUwYjRhMTE0MGY5MjQxNzhhMDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21w
aWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBp
bGVyLmgKQEAgLTM3LDYgKzM3LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgIUNQVShY
ODYpICYmICFDUFUoWDg2XzY0KQorc3RhdGljIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EaXYoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHJpZ2h0KQoreworICAgIHJldHVybiBsZWZ0IC8g
cmlnaHQ7Cit9CisjZW5kaWYKKwogY2xhc3MgV0FTTUZ1bmN0aW9uQ29tcGlsZXIgOiBwcml2YXRl
IENDYWxsSGVscGVycyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBpbnQgRXhwcmVzc2lvbjsKQEAg
LTEwOCw3ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3RhY2tPdmVyZmxvdy5saW5rKHRo
aXMpOwogICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCiAgICAgICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCks
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3Io
KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIobV9j
b2RlQmxvY2spKTsKKyAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik7CiAKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCBhcml0eSBjaGVjay4KICAgICAgICAgTGFiZWwgYXJpdHlDaGVjayA9IGxhYmVsKCk7CkBAIC0x
MTYsNiArMTI0LDMxIEBAIHB1YmxpYzoKICAgICAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZy
YW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOwogICAgICAgICBqdW1w
KG1fYmVnaW5MYWJlbCk7CiAKKyAgICAgICAgaWYgKCFtX2RpdmlkZUVycm9ySnVtcExpc3QuZW1w
dHkoKSkgeworICAgICAgICAgICAgbV9kaXZpZGVFcnJvckp1bXBMaXN0LmxpbmsodGhpcyk7CisK
KyAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAg
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzRXhl
Y1N0YXRlKCk7CisgICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvblRocm93RGl2aWRlRXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX2V4Y2Vw
dGlvbkNoZWNrcy5lbXB0eSgpKSB7CisgICAgICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5r
KHRoaXMpOworCisgICAgICAgICAgICAvLyBsb29rdXBFeGNlcHRpb25IYW5kbGVyIGlzIHBhc3Nl
ZCB0d28gYXJndW1lbnRzLCB0aGUgVk0gYW5kIHRoZSBleGVjICh0aGUgQ2FsbEZyYW1lKikuCisg
ICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CisgICAgICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOworCisjaWYgQ1BVKFg4NikKKyAgICAgICAgICAgIC8vIEZJWE1FOiBz
aG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4g
dGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQorICAgICAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1
bWVudEdQUjApOworICAgICAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwor
I2VuZGlmCisgICAgICAgICAgICBtX2NhbGxzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihjYWxsKCks
IEZ1bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUpLnZhbHVl
KCkpKTsKKyAgICAgICAgICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfQor
CiAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKm1fdm0sICp0aGlzLCBtX2NvZGVCbG9j
aywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7CiAKICAgICAgICAgZm9yIChhdXRvIGl0ZXJh
dG9yIDogbV9jYWxscykKQEAgLTE2Miw2ICsxOTUsMjUgQEAgcHVibGljOgogICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25JMzI6OlN1YjoKICAgICAgICAgICAgIHN1YjMyKEdQUkluZm86OnJl
Z1QxLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uSTMyOjpTRGl2OiB7CisgICAgICAgICAgICBtX2RpdmlkZUVycm9ySnVt
cExpc3QuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMSkpOworICAgICAg
ICAgICAgSnVtcCBkZW5vbWluYXRvck5vdE5lZzEgPSBicmFuY2gzMihOb3RFcXVhbCwgR1BSSW5m
bzo6cmVnVDEsIFRydXN0ZWRJbW0zMigtMSkpOworICAgICAgICAgICAgbV9kaXZpZGVFcnJvckp1
bXBMaXN0LmFwcGVuZChicmFuY2gzMihFcXVhbCwgR1BSSW5mbzo6cmVnVDAsIFRydXN0ZWRJbW0z
MigtMjE0NzQ4MzY0Ny0xKSkpOworICAgICAgICAgICAgZGVub21pbmF0b3JOb3ROZWcxLmxpbmso
dGhpcyk7CisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAgICAgICAgICAgIEFTU0VSVChH
UFJJbmZvOjpyZWdUMCA9PSBYODZSZWdpc3RlcnM6OmVheCk7CisgICAgICAgICAgICBtb3ZlKEdQ
UkluZm86OnJlZ1QxLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5jZHEoKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmlkaXZsX3IoWDg2UmVnaXN0ZXJzOjpl
Y3gpOworI2Vsc2UKKyAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bCkKKyAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uRGl2LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCkKKyAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworI2VuZGlmCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTE4OSwyMiArMjQxLDIyIEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAt
KG1fbnVtYmVyT2ZMb2NhbHMgKyB0ZW1wb3JhcnlJbmRleCArIDEpICogc2l6ZW9mKFN0YWNrU2xv
dCkpOwogICAgIH0KIAotICAgIHZvaWQgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoKQorICAgIHZv
aWQgYXBwZW5kQ2FsbChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCiAgICAgewotICAgICAg
ICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jaykp
OworICAgICAgICBtX2NhbGxzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihjYWxsKCksIGZ1bmN0aW9u
LnZhbHVlKCkpKTsKKyAgICB9CiAKLSAgICAgICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIoY2FsbCgpLCBGdW5jdGlvblB0cihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvciku
dmFsdWUoKSkpOworICAgIHZvaWQgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhjb25zdCBG
dW5jdGlvblB0ciYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9u
KTsKKyAgICAgICAgbV9leGNlcHRpb25DaGVja3MuYXBwZW5kKGVtaXRFeGNlcHRpb25DaGVjaygp
KTsKKyAgICB9CiAKLSAgICAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJG
cmFtZSBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENh
bGxGcmFtZSopLgotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bSksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7Ci0gICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gRklYTUU6IHNo
b3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0
aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwotI2VuZGlmCi0g
ICAgICAgIG1fY2FsbHMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGNhbGwoKSwgRnVuY3Rpb25QdHIo
bG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkudmFsdWUoKSkpOwotICAgICAg
ICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CisgICAgdm9pZCBjYWxsT3BlcmF0aW9uKGludDMy
X3QgSklUX09QRVJBVElPTiAoKm9wZXJhdGlvbikoaW50MzJfdCwgaW50MzJfdCksIEdQUlJlZyBz
cmMxLCBHUFJSZWcgc3JjMiwgR1BSUmVnIGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJndW1l
bnRzKHNyYzEsIHNyYzIpOworICAgICAgICBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CisgICAgICAg
IG1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGRzdCk7CiAgICAgfQogCiAgICAgdW5zaWdu
ZWQgbV9zdGFja0hlaWdodDsKQEAgLTIxMyw2ICsyNjUsOCBAQCBwcml2YXRlOgogCiAgICAgTGFi
ZWwgbV9iZWdpbkxhYmVsOwogICAgIEp1bXAgbV9zdGFja092ZXJmbG93OworICAgIEp1bXBMaXN0
IG1fZGl2aWRlRXJyb3JKdW1wTGlzdDsKKyAgICBKdW1wTGlzdCBtX2V4Y2VwdGlvbkNoZWNrczsK
IAogICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q2FsbCwgdm9pZCo+PiBtX2NhbGxzOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCmluZGV4
IGM4YjY0ODQ4ZmVlYjQ5ZWRjZTZhNmVmMjM5M2E3MThlYjYwOWU2MmIuLjMwZWQzMmE2ZjgwZDJj
MTJmYjcxZGE3ODEzYjg1NjU2ZmUxNWVkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcApAQCAtNDI3LDYgKzQyNyw3IEBAIENvbnRl
eHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uSTMyKENvbnRl
eHQmIGNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbW1lZGlhdGVFeHByZXNzaW9u
STMyKGNvbnRleHQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OkFkZDoKICAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkkzMjo6U0RpdjoKICAgICAgICAgICAgIHJldHVybiBwYXJzZUJpbmFyeUV4cHJl
c3Npb25JMzIoY29udGV4dCwgb3ApOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6
OkNvbnN0YW50UG9vbEluZGV4OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6Okdl
dExvY2FsOgpAQCAtNDU4LDcgKzQ1OSw2IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlv
blBhcnNlcjo6cGFyc2VFeHByZXNzaW9uSTMyKENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6RnJvbUY2NDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uSTMyOjpOZWdhdGU6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6TXVs
OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OlNEaXY6CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkkzMjo6VURpdjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
STMyOjpTTW9kOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OlVNb2Q6Cg==
</data>
<flag name="review"
          id="285765"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260623</attachid>
            <date>2015-09-04 14:45:03 -0700</date>
            <delta_ts>2015-09-04 15:47:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>12708</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE1ZWJlYmI5ODM0NDUxNmZiNTE4ZDBkZmNjZDNk
YWQ2ZjdjMzU1YmQuLmFjNGRlMTIyZGUzYTRkYmI1ZGM2ZjAwZGY2N2VjZTNjZDcyYTJkNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTA5LTA0ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgc2lnbmVkIGRpdmlzaW9uIGluc3RydWN0aW9uIGluIFdlYkFzc2VtYmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg3NzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgdGhlIHNpZ25lZCBkaXZpc2lvbiBpbnN0cnVjdGlvbiBpbiBXZWJBc3NlbWJseQorICAg
ICAgICBmb3IgMzItYml0IGludGVnZXJzLiBXZSB1c2UgdGhlIElESVYgaW5zdHJ1Y3Rpb24gb24g
eDg2IGFuZCB4ODYtNjQgYW5kCisgICAgICAgIHVzZSBhIEMgZnVuY3Rpb24gb24gYWxsIG90aGVy
IHBsYXRmb3Jtcy4gV2UgdGhyb3cgYW4gZXhjZXB0aW9uIGlmCisgICAgICAgIC0gdGhlIGRlbm9t
aW5hdG9yIGlzIHplcm8sIG9yCisgICAgICAgIC0gdGhlIG51bWVyYXRvciBpcyAtMl4zMSBhbmQg
dGhlIGRlbm9taW5hdG9yIGlzIC0xLgorCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy5qczoKKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3Vs
ZFRocm93KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLndhc206Cisg
ICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oOgorICAgICAgICAoSlNDOjpvcGVy
YXRpb25EaXYpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6ZW5kRnVuY3Rp
b24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRCaW5hcnlJMzIp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YXBwZW5kQ2FsbCk6CisgICAg
ICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjphcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmNhbGxPcGVyYXRpb24p
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6dGhyb3dTdGFja092ZXJmbG93
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcDoK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25JMzIpOgor
CiAyMDE1LTA5LTA0ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCB0aGUgR2V0TG9jYWwgYW5kIFNldExvY2FsIGluc3RydWN0aW9u
cyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKaW5kZXggOGM2YmVlNmY0MmY1NTYxNDA4ZjE1M2ZlNTAzN2IyYmU3NzA0M2Q2YS4uYmUz
YTliMGQwNjUzMDdhNDFkMTUxMzMxNzQxYmY1MzI2MTAxN2FiMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC05NSw2ICs5NSwxOSBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IoRXhlY1N0YXRlKiBl
eGVjLCBDb2RlQmxvY2sqCiAgICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVh
dGVTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUpKTsKIH0KIAorI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd0RpdmlkZUVycm9yKEV4
ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKKyAgICBWTUVudHJ5
RnJhbWUqIHZtRW50cnlGcmFtZSA9IHZtLT50b3BWTUVudHJ5RnJhbWU7CisgICAgQ2FsbEZyYW1l
KiBjYWxsZXJGcmFtZSA9IGV4ZWMtPmNhbGxlckZyYW1lKHZtRW50cnlGcmFtZSk7CisKKyAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXJXaXRoUmVzdG9yZSB0cmFjZXIodm0sIHZtRW50cnlGcmFtZSwg
Y2FsbGVyRnJhbWUpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3BlKCp2bSk7Cisg
ICAgdm0tPnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVFcnJvcihjYWxsZXJGcmFt
ZSwgQVNDSUlMaXRlcmFsKCJEaXZpc2lvbiBieSB6ZXJvIG9yIGRpdmlzaW9uIG92ZXJmbG93LiIp
KSk7Cit9CisjZW5kaWYKKwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxBcml0
eUNoZWNrKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggY2NjNTEyNjdlZmYx
MDMyNDEzYzYwNmNhZGFiODJhMGVlMDI3YjhlZi4uYjU1OWE4M2RhYWM1NjQ0MDA5MWEzZTIzOTMw
NmRlNGI4N2IwNzljOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKQEAgLTI0NSw2ICsyNDUsOSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9u
SGFuZGxlckZyb21DYWxsZXJGcmFtZShWTSosIEV4ZWNTdGF0ZSopIFdURl9JTgogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vy
cm9yKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dEaXZpZGVFcnJvcihF
eGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CisjZW5kaWYKIGludDMyX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25DYWxsQXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
SWQoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLmpzCmluZGV4IGIzN2EzY2MzMDkxOTlm
MmMxMGEyYzZlZGE2ZDI0Njk4NGJjNmNmZjEuLjRhNDI5OTY2MThkMjkxNjliZmYxMjI3ZmY1ODdk
MTY2NzFjODljZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvd2FzbS1hcml0aG1ldGljLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvd2FzbS1hcml0aG1ldGljLmpzCkBAIC0xLDIyICsxLDcxIEBACiAvL0Agc2tpcAogCitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgbWVzc2FnZSkgeworICAgIHZhciBl
cnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIm5vdCB0aHJvd24uIik7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09
IG1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAiICsgU3RyaW5n
KGVycm9yKSk7Cit9CisKIC8qCiB3YXNtLWFyaXRobWV0aWMud2FzbSBpcyBnZW5lcmF0ZWQgYnkg
cGFjay1hc21qcyA8aHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L3BvbHlmaWxsLXByb3Rv
dHlwZS0xPiBmcm9tIHRoZSBmb2xsb3dpbmcgc2NyaXB0OgogCiBmdW5jdGlvbiBhc21Nb2R1bGUo
Z2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAotICAgIGZ1bmN0aW9uIG1h
aW4oKSB7Ci0gICAgICAgIHJldHVybiAoMTAgKyA0MCkgLSA4OworICAgIGZ1bmN0aW9uIGFkZFN1
YnRyYWN0KCkgeworICAgICAgICByZXR1cm4gKCgxMCArIDQwKSAtIDgpIHwgMDsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhZGRPdmVyZmxvdygpIHsKKyAgICAgICAgcmV0dXJuICgyMTQ3NDgzNjQ3
ICsgMSkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRpdmlkZSgpIHsKKyAgICAgICAgcmV0
dXJuICg0MiAvIDUpIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaXZpZGVCeVplcm8oKSB7
CisgICAgICAgIHJldHVybiAoMSAvIDApIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaXZp
ZGVPdmVyZmxvdygpIHsKKyAgICAgICAgcmV0dXJuICgtMjE0NzQ4MzY0OCAvIC0xKSB8IDA7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHsKLSAgICAgICAgbWFpbjogbWFpbgorICAgICAgICBhZGRTdWJ0
cmFjdDogYWRkU3VidHJhY3QsCisgICAgICAgIGFkZE92ZXJmbG93OiBhZGRPdmVyZmxvdywKKyAg
ICAgICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIGRpdmlkZUJ5WmVybzogZGl2aWRlQnlaZXJv
LAorICAgICAgICBkaXZpZGVPdmVyZmxvdzogZGl2aWRlT3ZlcmZsb3csCiAgICAgfTsKIH0KICov
CiAKIHZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20tYXJpdGhtZXRpYy53YXNtIik7
Ci12YXIgcmVzdWx0ID0gbW9kdWxlLm1haW4oKTsKLWlmIChyZXN1bHQgIT0gNDIpCi0gICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCitzaG91bGRCZShtb2R1bGUuYWRk
U3VidHJhY3QoKSwgNDIpOworCitzaG91bGRCZShtb2R1bGUuYWRkT3ZlcmZsb3coKSwgLTIxNDc0
ODM2NDgpOworCitzaG91bGRCZShtb2R1bGUuZGl2aWRlKCksIDgpOworCitzaG91bGRUaHJvdygo
KSA9PiB7CisgICAgbW9kdWxlLmRpdmlkZUJ5WmVybygpOworfSwgIkVycm9yOiBEaXZpc2lvbiBi
eSB6ZXJvIG9yIGRpdmlzaW9uIG92ZXJmbG93LiIpOworCitzaG91bGRUaHJvdygoKSA9PiB7Cisg
ICAgbW9kdWxlLmRpdmlkZU92ZXJmbG93KCk7Cit9LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8g
b3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy53YXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMud2FzbQppbmRleCAzNGVkODVkMjZkYzVi
ODI2ODVjMDQ5MzU1OWVmZjQ5MTczOWNmMzNmLi40Y2NkN2I2MGM4NTdlZDdhMTlkNmVkNmM3YTIy
NTBhZDlmNThmYWQ0IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQ0CnpjbVhSPEVZ
N3tpJW00ejZVPW1FUUxZTkpWe1BKP0U3JlRTXjhGR3lPZnE7RD5rZzNTMXdHPjF4VG1hQFkwMDlT
Qgp6bVk8T3xGKG9DcUded08wRn1afCswbSQoJE9EIyZ2JHVEUE1Pdng8RU9pNSo2ZzN3TnRRSz8x
dzQ5cE43VG9ucmQKRFpkZlhGCgpsaXRlcmFsIDQyCmxjbVhSPEVZQUpHIX5nPH1VPXFlYFZDMHZW
VGc5bGNme2AmZEYqQT5XMFJXRHoyQlpLMAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCmluZGV4IGYwMGYwZDE3MTk3NTIxZjBhODllN2Zi
NWY2MTI5NDc3ZTRjYjEzMzMuLjk5ZDE0OTAyOWY4ZjVjMjc3NjY5YjI1OWM2NzU0YzZlN2FkZDU1
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNv
bXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaApAQCAtMzcsNiArMzcsMTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiAhQ1BV
KFg4NikgJiYgIUNQVShYODZfNjQpCitzdGF0aWMgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRpdihpbnQzMl90IGxlZnQsIGludDMyX3QgcmlnaHQpCit7CisgICAgcmV0dXJuIGxlZnQg
LyByaWdodDsKK30KKyNlbmRpZgorCiBjbGFzcyBXQVNNRnVuY3Rpb25Db21waWxlciA6IHByaXZh
dGUgQ0NhbGxIZWxwZXJzIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBFeHByZXNzaW9uOwpA
QCAtMTA4LDcgKzExNSw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9zdGFja092ZXJmbG93Lmxpbmso
dGhpcyk7CiAgICAgICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKICAgICAg
ICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJv
cigpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciht
X2NvZGVCbG9jaykpOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yKTsKIAogICAgICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGFyaXR5IGNoZWNrLgogICAgICAgICBMYWJlbCBhcml0eUNoZWNrID0gbGFiZWwoKTsKQEAg
LTExNiw2ICsxMjQsMzEgQEAgcHVibGljOgogICAgICAgICBlbWl0UHV0SW1tZWRpYXRlVG9DYWxs
RnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CiAgICAgICAgIGp1
bXAobV9iZWdpbkxhYmVsKTsKIAorICAgICAgICBpZiAoIW1fZGl2aWRlRXJyb3JKdW1wTGlzdC5l
bXB0eSgpKSB7CisgICAgICAgICAgICBtX2RpdmlkZUVycm9ySnVtcExpc3QubGluayh0aGlzKTsK
KworICAgICAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAg
ICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgc2V0dXBBcmd1bWVudHNF
eGVjU3RhdGUoKTsKKyAgICAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uVGhyb3dEaXZpZGVFcnJvcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW1fZXhj
ZXB0aW9uQ2hlY2tzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmxp
bmsodGhpcyk7CisKKyAgICAgICAgICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFz
c2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4K
KyAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKKyAgICAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CisKKyNpZiBDUFUoWDg2KQorICAgICAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBp
biB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCisgICAgICAgICAgICBwb2tlKEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CisgICAgICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7
CisjZW5kaWYKKyAgICAgICAgICAgIG1fY2FsbHMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGNhbGwo
KSwgRnVuY3Rpb25QdHIobG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkudmFs
dWUoKSkpOworICAgICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcigpOworICAgICAgICB9
CisKICAgICAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJs
b2NrLCBKSVRDb21waWxhdGlvbk11c3RTdWNjZWVkKTsKIAogICAgICAgICBmb3IgKGF1dG8gaXRl
cmF0b3IgOiBtX2NhbGxzKQpAQCAtMTg5LDYgKzIyMiwyNSBAQCBwdWJsaWM6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U3ViOgogICAgICAgICAgICAgc3ViMzIoR1BSSW5mbzo6
cmVnVDEsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25JMzI6OlNEaXY6IHsKKyAgICAgICAgICAgIG1fZGl2aWRlRXJyb3JK
dW1wTGlzdC5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEdQUkluZm86OnJlZ1QxKSk7CisgICAg
ICAgICAgICBKdW1wIGRlbm9taW5hdG9yTm90TmVnMSA9IGJyYW5jaDMyKE5vdEVxdWFsLCBHUFJJ
bmZvOjpyZWdUMSwgVHJ1c3RlZEltbTMyKC0xKSk7CisgICAgICAgICAgICBtX2RpdmlkZUVycm9y
SnVtcExpc3QuYXBwZW5kKGJyYW5jaDMyKEVxdWFsLCBHUFJJbmZvOjpyZWdUMCwgVHJ1c3RlZElt
bTMyKC0yMTQ3NDgzNjQ3LTEpKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdE5lZzEubGlu
ayh0aGlzKTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgICAgICAgICAgQVNTRVJU
KEdQUkluZm86OnJlZ1QwID09IFg4NlJlZ2lzdGVyczo6ZWF4KTsKKyAgICAgICAgICAgIG1vdmUo
R1BSSW5mbzo6cmVnVDEsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmNkcSgpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuaWRpdmxfcihYODZSZWdpc3RlcnM6
OmVjeCk7CisjZWxzZQorICAgICAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25EaXYsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwg
R1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisjZW5kaWYKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQpAQCAtMjE2LDIyICsyNjgsMjIgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IC0obV9udW1iZXJPZkxvY2FscyArIHRlbXBvcmFyeUluZGV4ICsgMSkgKiBzaXplb2YoU3RhY2tT
bG90KSk7CiAgICAgfQogCi0gICAgdm9pZCB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcigpCisgICAg
dm9pZCBhcHBlbmRDYWxsKGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbikKICAgICB7Ci0gICAg
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2Nr
KSk7CisgICAgICAgIG1fY2FsbHMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGNhbGwoKSwgZnVuY3Rp
b24udmFsdWUoKSkpOworICAgIH0KIAotICAgICAgICBtX2NhbGxzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihjYWxsKCksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KS52YWx1ZSgpKSk7CisgICAgdm9pZCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGNvbnN0
IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rp
b24pOworICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoZW1pdEV4Y2VwdGlvbkNoZWNr
KCkpOworICAgIH0KIAotICAgICAgICAvLyBsb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxl
ckZyYW1lIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzLCB0aGUgVk0gYW5kIHRoZSBleGVjICh0aGUg
Q2FsbEZyYW1lKikuCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSNpZiBDUFUoWDg2KQotICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGlu
IHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXllciEKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7Ci0jZW5kaWYK
LSAgICAgICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoY2FsbCgpLCBGdW5jdGlvblB0
cihsb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lKS52YWx1ZSgpKSk7Ci0gICAg
ICAgIGp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIoKTsKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oaW50
MzJfdCBKSVRfT1BFUkFUSU9OICgqb3BlcmF0aW9uKShpbnQzMl90LCBpbnQzMl90KSwgR1BSUmVn
IHNyYzEsIEdQUlJlZyBzcmMyLCBHUFJSZWcgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1
bWVudHMoc3JjMSwgc3JjMik7CisgICAgICAgIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICAg
ICAgbW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZHN0KTsKICAgICB9CiAKICAgICB1bnNp
Z25lZCBtX3N0YWNrSGVpZ2h0OwpAQCAtMjQwLDYgKzI5Miw4IEBAIHByaXZhdGU6CiAKICAgICBM
YWJlbCBtX2JlZ2luTGFiZWw7CiAgICAgSnVtcCBtX3N0YWNrT3ZlcmZsb3c7CisgICAgSnVtcExp
c3QgbV9kaXZpZGVFcnJvckp1bXBMaXN0OworICAgIEp1bXBMaXN0IG1fZXhjZXB0aW9uQ2hlY2tz
OwogCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDYWxsLCB2b2lkKj4+IG1fY2FsbHM7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKaW5k
ZXggYmU4YzQzNTI0ZjJhOGI4M2U2NWU2NjU0NTlhZDNhZDMyM2JkODBhNC4uOWE4MmY0OGUxMGJm
NzI2NzZhYWUxYTNkNGExZGI3NzY4MDJiYTQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCkBAIC00MzAsNiArNDMwLDcgQEAgQ29u
dGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25JMzIoQ29u
dGV4dCYgY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lv
bkkzMihjb250ZXh0KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpBZGQ6CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U3ViOgorICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25JMzI6OlNEaXY6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VCaW5hcnlFeHBy
ZXNzaW9uSTMyKGNvbnRleHQsIG9wKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMy
OjpDb25zdGFudFBvb2xJbmRleDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpH
ZXRHbG9iYWw6CkBAIC00NjAsNyArNDYxLDYgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0
aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25JMzIoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpGcm9tRjY0OgogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25JMzI6Ok5lZ2F0ZToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpN
dWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6U0RpdjoKICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uSTMyOjpVRGl2OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25JMzI6OlNNb2Q6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkkzMjo6VU1vZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>