<?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>149622</bug_id>
          
          <creation_ts>2015-09-29 03:35:17 -0700</creation_ts>
          <short_desc>Introduce Symbol type for property type inference</short_desc>
          <delta_ts>2015-10-12 23:31:28 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</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>1129205</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-29 03:35:17 -0700</bug_when>
    <thetext>Introduce Symbol type for property type inference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129207</commentid>
    <comment_count>1</comment_count>
      <attachid>262059</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-29 03:35:31 -0700</bug_when>
    <thetext>Created attachment 262059
Patch

WIP, not compiled yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129208</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-29 03:37:29 -0700</bug_when>
    <thetext>For example,

const Red = Symbol(&quot;Red&quot;);
const Blue = Symbol(&quot;Green&quot;);

class Apple {
    constructor(color)
    {
        this.color = color;
    }
}

let apple = new Apple(Red);
let greenApple = new Apple(Green);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132206</commentid>
    <comment_count>3</comment_count>
      <attachid>262849</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-10 21:51:33 -0700</bug_when>
    <thetext>Created attachment 262849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132418</commentid>
    <comment_count>4</comment_count>
      <attachid>262849</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-12 12:07:42 -0700</bug_when>
    <thetext>Comment on attachment 262849
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132662</commentid>
    <comment_count>5</comment_count>
      <attachid>262849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-12 19:10:10 -0700</bug_when>
    <thetext>Comment on attachment 262849
Patch

Clearing flags on attachment: 262849

Committed r190916: &lt;http://trac.webkit.org/changeset/190916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132663</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-12 19:10:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132690</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-10-12 22:10:34 -0700</bug_when>
    <thetext>There are many JSC tests failures after this patch: &lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/175/steps/jscore-test/logs/stdio&gt;

Could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132698</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-12 22:33:15 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; There are many JSC tests failures after this patch:
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/175/steps/jscore-
&gt; test/logs/stdio&gt;
&gt; 
&gt; Could you please take a look?

Thanks. I&apos;ll check this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132706</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-12 23:25:26 -0700</bug_when>
    <thetext>The symbol structure is not registered even if it is used for InferredType.
Since Symbol / String InferredTypes claim that they don&apos;t have any structure, registerInferredType does not register these structures.

I&apos;ve added register structure for Symbol structure in DFGStructureRegisterationPhase as the same to String structure.
Because,

1. InferredType::structure is only allowed for ObjectWithStructure / ObjectWithStructureOrOther. It seems clear to me that only ObjectWithStructure has structure.
2. Symbol is similar primitive value to String. So handling its structure in similar way to String is nice.

I&apos;ll land the patch just adding registerStrucutre(Symbol Structure) in DFGStructureRegisterationPhase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132707</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-12 23:30:41 -0700</bug_when>
    <thetext>Committed r190927: &lt;http://trac.webkit.org/changeset/190927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132708</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-12 23:31:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; There are many JSC tests failures after this patch:
&gt; &lt;https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/175/steps/jscore-
&gt; test/logs/stdio&gt;
&gt; 
&gt; Could you please take a look?

Fixed :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262059</attachid>
            <date>2015-09-29 03:35:31 -0700</date>
            <delta_ts>2015-10-10 21:51:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149622-20150929033507.patch</filename>
            <type>text/plain</type>
            <size>8586</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTg1NzgzMjNjNjZjZmJmNTIxMTk3MmM1NWIyNjk1MDYzOWFjZDQ1Li4yMWRiYzk0YWMyYjg3YzIw
NzRiZWFhNDc3YmUwZTAwNmNmODJhOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNS0wOS0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgU3ltYm9sIHR5cGUgZm9yIHByb3BlcnR5IHR5cGUg
aW5mZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDk2MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGJ5dGVjb2RlL1B1dEJ5SWRGbGFncy5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZh
bHVlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpzZXQpOgorICAgICAg
ICAqIGRmZy9ERkdJbmZlcnJlZFR5cGVDaGVjay5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6aW5z
ZXJ0SW5mZXJyZWRUeXBlQ2hlY2spOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y2hlY2tJbmZlcnJl
ZFR5cGUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90VHlwZSk6CisgICAgICAgICogcnVudGltZS9J
bmZlcnJlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpJbmZlcnJlZFR5cGU6OmtpbmRGb3JGbGFn
cyk6CisgICAgICAgIChKU0M6OkluZmVycmVkVHlwZTo6RGVzY3JpcHRvcjo6Zm9yVmFsdWUpOgor
ICAgICAgICAoSlNDOjpJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3I6OnB1dEJ5SWRGbGFncyk6Cisg
ICAgICAgIChKU0M6OkluZmVycmVkVHlwZTo6RGVzY3JpcHRvcjo6bWVyZ2UpOgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL0luZmVycmVkVHlwZS5oOgor
CiAyMDE1LTA5LTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgZml4IGRlYnVnIHRlc3RzLiBCZWZvcmUgbWFya2luZywgd2UgbmVlZCB0byBj
YWxsIHJlZ2lzdGVyR0NUaHJlYWRzKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHV0QnlJZEZsYWdzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHV0QnlJZEZsYWdzLmgKaW5kZXggMWQyMjg2NGYzMTU3MGM1MjczNTM5ZGE1YjZlMTQzNmYw
YmNjNTRhYy4uNmFkMzY0MzkzYzExZWVhOGYxOWI5MGRiMTVjN2M5MDliN2E0OTY0MiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRGbGFncy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkRmxhZ3MuaApAQCAtNjUsOSAr
NjUsMTAgQEAgZW51bSBQdXRCeUlkRmxhZ3MgOiBpbnRwdHJfdCB7CiAgICAgUHV0QnlJZFNlY29u
ZGFyeVR5cGVJbnQzMiA9IDB4MTgsCiAgICAgUHV0QnlJZFNlY29uZGFyeVR5cGVOdW1iZXIgPSAw
eDIwLAogICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlU3RyaW5nID0gMHgyOCwKLSAgICBQdXRCeUlk
U2Vjb25kYXJ5VHlwZU9iamVjdCA9IDB4MzAsCi0gICAgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmpl
Y3RPck90aGVyID0gMHgzOCwKLSAgICBQdXRCeUlkU2Vjb25kYXJ5VHlwZVRvcCA9IDB4NDAKKyAg
ICBQdXRCeUlkU2Vjb25kYXJ5VHlwZVN5bWJvbCA9IDB4MzAsCisgICAgUHV0QnlJZFNlY29uZGFy
eVR5cGVPYmplY3QgPSAweDM4LAorICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0T3JPdGhl
ciA9IDB4NDAsCisgICAgUHV0QnlJZFNlY29uZGFyeVR5cGVUb3AgPSAweDQ4CiB9OwogCiBpbmxp
bmUgUHV0QnlJZEZsYWdzIGVuY29kZVN0cnVjdHVyZUlEKFN0cnVjdHVyZUlEIGlkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKaW5kZXggZGMyYzIy
YTViYjY1ZjY0Mzc3Yzk0NTNhNDg1ZGJhYjY5YzI3Njc4My4uZmQyNjUyY2NkODcxYmUzYTE2MGIy
YmRmZDkxOTY0ODlmMzlkMTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0VmFsdWUuY3BwCkBAIC0xMzgsNiArMTM4LDkgQEAgdm9pZCBBYnN0cmFjdFZhbHVl
OjpzZXQoR3JhcGgmIGdyYXBoLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IKICAgICBjYXNlIEluZmVycmVkVHlwZTo6U3RyaW5nOgogICAgICAgICBzZXQoZ3JhcGgs
IGdyYXBoLm1fdm0uc3RyaW5nU3RydWN0dXJlLmdldCgpKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgSW5mZXJyZWRUeXBlOjpTeW1ib2w6CisgICAgICAgIHNldChncmFwaCwgZ3JhcGgubV92
bS5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmZl
cnJlZFR5cGU6Ok9iamVjdFdpdGhTdHJ1Y3R1cmU6CiAgICAgICAgIHNldChncmFwaCwgZGVzY3Jp
cHRvci5zdHJ1Y3R1cmUoKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSW5mZXJyZWRUeXBlQ2hlY2suY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdJbmZlcnJlZFR5cGVDaGVjay5jcHAKaW5kZXggYzc2ZTJlOGFiYTRm
OGE4MzM5NmMyODdlZDM5OWQ0MjhmNGIwNWE1YS4uMTk1MWM3OWMxNTFmZTAxMWMyYzUyNWZkYWRl
ZGY1NjM3YTA1MzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJ
bmZlcnJlZFR5cGVDaGVjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJ
bmZlcnJlZFR5cGVDaGVjay5jcHAKQEAgLTYzLDYgKzYzLDEwIEBAIHZvaWQgaW5zZXJ0SW5mZXJy
ZWRUeXBlQ2hlY2soCiAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKG5vZGVJbmRleCwg
U3BlY05vbmUsIENoZWNrLCBvcmlnaW4sIEVkZ2UoYmFzZU5vZGUsIFN0cmluZ1VzZSkpOwogICAg
ICAgICByZXR1cm47CiAKKyAgICBjYXNlIEluZmVycmVkVHlwZTo6U3ltYm9sOgorICAgICAgICBp
bnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShub2RlSW5kZXgsIFNwZWNOb25lLCBDaGVjaywgb3JpZ2lu
LCBFZGdlKGJhc2VOb2RlLCBTeW1ib2xVc2UpKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2Fz
ZSBJbmZlcnJlZFR5cGU6Ok9iamVjdFdpdGhTdHJ1Y3R1cmU6CiAgICAgICAgIGluc2VydGlvblNl
dC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbm9kZUluZGV4LCBTcGVjTm9uZSwgQ2hlY2tTdHJ1
Y3R1cmUsIG9yaWdpbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAKaW5kZXggMzk4YmE1NzVhZDFiZmQyOTM2NDM5YjdkYmUwYmIzYzEzNjc1YWZk
Ni4uNzVhYWI5OGJiZjRlZjlhYjk2NTk4ZTI3YjUyYmVhY2MyYTk4Nzg4MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTU3NjEsNiAr
NTc2MSwxMSBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBzcGVjdWxhdGUo
QmFkVHlwZSwganNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZS5ub2RlKCksIGlzTm90U3RyaW5nKHZh
bHVlLCBwcm92ZW5UeXBlKGVkZ2UpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAg
Y2FzZSBJbmZlcnJlZFR5cGU6OlN0cmluZzoKKyAgICAgICAgICAgIHNwZWN1bGF0ZShCYWRUeXBl
LCBqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLm5vZGUoKSwgaXNOb3RDZWxsKHZhbHVlLCBwcm92
ZW5UeXBlKGVkZ2UpKSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNWYWx1ZVZh
bHVlKHZhbHVlKSwgZWRnZS5ub2RlKCksIGlzTm90U3ltYm9sKHZhbHVlLCBwcm92ZW5UeXBlKGVk
Z2UpKSk7CisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgY2FzZSBJbmZlcnJlZFR5cGU6
Ok9iamVjdFdpdGhTdHJ1Y3R1cmU6CiAgICAgICAgICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNW
YWx1ZVZhbHVlKHZhbHVlKSwgZWRnZS5ub2RlKCksIGlzTm90Q2VsbCh2YWx1ZSwgcHJvdmVuVHlw
ZShlZGdlKSkpOwogICAgICAgICAgICAgaWYgKCFhYnN0cmFjdFZhbHVlKGVkZ2UpLm1fc3RydWN0
dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHR5cGUuc3RydWN0dXJlKCkpKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGVjY2VkZDk1
NGQzNTliNjQ2ZGM4ZTZhZGVmZTVmNDU0OTU5YzVlZjMuLjZlZWE5NGMzMWNmOWRmYTY4MmE2YzA0
NmJhZjUzZTdlZDk4ZDc5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKQEAgLTg2LDYgKzg2LDExIEBAIEFzc2VtYmx5SGVscGVyczo6SnVtcExp
c3QgQXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdFR5cGUoCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoYnJhbmNoSWZOb3RTdHJpbmcocmVncy5wYXlsb2FkR1BSKCkpKTsKICAgICAgICAgYnJlYWs7
CiAKKyAgICBjYXNlIEluZmVycmVkVHlwZTo6U3ltYm9sOgorICAgICAgICByZXN1bHQuYXBwZW5k
KGJyYW5jaElmTm90Q2VsbChyZWdzLCBtb2RlKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoYnJh
bmNoSWZOb3RTeW1ib2wocmVncy5wYXlsb2FkR1BSKCkpKTsKKyAgICAgICAgYnJlYWs7CisKICAg
ICBjYXNlIEluZmVycmVkVHlwZTo6T2JqZWN0V2l0aFN0cnVjdHVyZToKICAgICAgICAgcmVzdWx0
LmFwcGVuZChicmFuY2hJZk5vdENlbGwocmVncywgbW9kZSkpOwogICAgICAgICByZXN1bHQuYXBw
ZW5kKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5mZXJyZWRU
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZmVycmVkVHlwZS5jcHAK
aW5kZXggNzA1YTJlOTEzYTI3YjczOWNjZjJmMzA2MmE3YmM5NzQ2ZmMxNDY3Yi4uZjIwNjUzM2My
YTljNGVjY2Y2ZjlhZWE1ZTJiNGQwMDI4NjVlYjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW5mZXJyZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbmZlcnJlZFR5cGUuY3BwCkBAIC0xMTEsNiArMTExLDggQEAgSW5mZXJy
ZWRUeXBlOjpLaW5kIEluZmVycmVkVHlwZTo6a2luZEZvckZsYWdzKFB1dEJ5SWRGbGFncyBmbGFn
cykKICAgICAgICAgICAgIHJldHVybiBOdW1iZXI7CiAgICAgICAgIGNhc2UgUHV0QnlJZFNlY29u
ZGFyeVR5cGVTdHJpbmc6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nOworICAgICAgICBjYXNl
IFB1dEJ5SWRTZWNvbmRhcnlUeXBlU3ltYm9sOgorICAgICAgICAgICAgcmV0dXJuIFN5bWJvbDsK
ICAgICAgICAgY2FzZSBQdXRCeUlkU2Vjb25kYXJ5VHlwZU9iamVjdDoKICAgICAgICAgICAgIHJl
dHVybiBPYmplY3Q7CiAgICAgICAgIGNhc2UgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3RPck90
aGVyOgpAQCAtMTQ1LDYgKzE0Nyw4IEBAIEluZmVycmVkVHlwZTo6RGVzY3JpcHRvciBJbmZlcnJl
ZFR5cGU6OkRlc2NyaXB0b3I6OmZvclZhbHVlKEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIEpTQ2Vs
bCogY2VsbCA9IHZhbHVlLmFzQ2VsbCgpOwogICAgICAgICBpZiAoY2VsbC0+aXNTdHJpbmcoKSkK
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmc7CisgICAgICAgIGlmIChjZWxsLT5pc1N5bWJvbCgp
KQorICAgICAgICAgICAgcmV0dXJuIFN5bWJvbDsKICAgICAgICAgaWYgKGNlbGwtPmlzT2JqZWN0
KCkpIHsKICAgICAgICAgICAgIGlmIChjZWxsLT5zdHJ1Y3R1cmUoKS0+dHJhbnNpdGlvbldhdGNo
cG9pbnRTZXRJc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRv
cihPYmplY3RXaXRoU3RydWN0dXJlLCBjZWxsLT5zdHJ1Y3R1cmUoKSk7CkBAIC0xODAsNiArMTg0
LDggQEAgUHV0QnlJZEZsYWdzIEluZmVycmVkVHlwZTo6RGVzY3JpcHRvcjo6cHV0QnlJZEZsYWdz
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFB1dEJ5SWRGbGFncz4oUHV0QnlJ
ZFByaW1hcnlUeXBlU2Vjb25kYXJ5IHwgUHV0QnlJZFNlY29uZGFyeVR5cGVOdW1iZXIpOwogICAg
IGNhc2UgU3RyaW5nOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHV0QnlJZEZsYWdzPihQ
dXRCeUlkUHJpbWFyeVR5cGVTZWNvbmRhcnkgfCBQdXRCeUlkU2Vjb25kYXJ5VHlwZVN0cmluZyk7
CisgICAgY2FzZSBTeW1ib2w6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQdXRCeUlkRmxh
Z3M+KFB1dEJ5SWRQcmltYXJ5VHlwZVNlY29uZGFyeSB8IFB1dEJ5SWRTZWNvbmRhcnlUeXBlU3lt
Ym9sKTsKICAgICBjYXNlIE9iamVjdDoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFB1dEJ5
SWRGbGFncz4oUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5IHwgUHV0QnlJZFNlY29uZGFyeVR5
cGVPYmplY3QpOwogICAgIGNhc2UgT2JqZWN0T3JPdGhlcjoKQEAgLTIxMSw2ICsyMTcsNyBAQCB2
b2lkIEluZmVycmVkVHlwZTo6RGVzY3JpcHRvcjo6bWVyZ2UoY29uc3QgRGVzY3JpcHRvciYgb3Ro
ZXIpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEJvb2xlYW46CiAgICAgY2FzZSBTdHJpbmc6
CisgICAgY2FzZSBTeW1ib2w6CiAgICAgICAgICp0aGlzID0gVG9wOwogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBPdGhlcjoKQEAgLTU0MSw2ICs1NDgsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mIG91dCwgSW5mZXJyZWRUeXBlOjpLaW5kIGtpbmQpCiAgICAgY2FzZSBJbmZl
cnJlZFR5cGU6OlN0cmluZzoKICAgICAgICAgb3V0LnByaW50KCJTdHJpbmciKTsKICAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgSW5mZXJyZWRUeXBlOjpTeW1ib2w6CisgICAgICAgIG91dC5wcmlu
dCgiU3ltYm9sIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZmVycmVkVHlwZTo6T2Jq
ZWN0V2l0aFN0cnVjdHVyZToKICAgICAgICAgb3V0LnByaW50KCJPYmplY3RXaXRoU3RydWN0dXJl
Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0luZmVycmVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5m
ZXJyZWRUeXBlLmgKaW5kZXggZjJkZDAxODQ2YTIyZjgxMWYwY2Q3MDY3ZTUzM2Y1NzFkZTFkNDk2
ZS4uZDYwYzdiYTI3NGMzMWJhOTdiYWIwNmIzYzY2ODdlODViOWE5NDUwNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5mZXJyZWRUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5mZXJyZWRUeXBlLmgKQEAgLTYwLDYgKzYwLDcgQEAg
Y2xhc3MgSW5mZXJyZWRUeXBlIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgICAgIEludDMy
LAogICAgICAgICBOdW1iZXIsCiAgICAgICAgIFN0cmluZywKKyAgICAgICAgU3ltYm9sLAogICAg
ICAgICBPYmplY3RXaXRoU3RydWN0dXJlLAogICAgICAgICBPYmplY3RXaXRoU3RydWN0dXJlT3JP
dGhlciwKICAgICAgICAgT2JqZWN0LApAQCAtMTI1LDYgKzEyNiw4IEBAIGNsYXNzIEluZmVycmVk
VHlwZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1
ZS5pc051bWJlcigpOwogICAgICAgICAgICAgY2FzZSBTdHJpbmc6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLmlzU3RyaW5nKCk7CisgICAgICAgICAgICBjYXNlIFN5bWJvbDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNTeW1ib2woKTsKICAgICAgICAgICAgIGNhc2UgT2Jq
ZWN0V2l0aFN0cnVjdHVyZToKICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNDZWxsKCkg
JiYgdmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpID09IG1fc3RydWN0dXJlOwogICAgICAgICAg
ICAgY2FzZSBPYmplY3RXaXRoU3RydWN0dXJlT3JPdGhlcjoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262849</attachid>
            <date>2015-10-10 21:51:33 -0700</date>
            <delta_ts>2015-10-12 19:10:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149622-20151011135058.patch</filename>
            <type>text/plain</type>
            <size>17961</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YjczMmYzMTQwZjg5MjMzN2RjYTI4NjQ2MDk4OTljNjAxNzVlNzA1Li4zOTUwMzg3YjE0MGJlYTE4
MWZlMDFkM2Y2YTJiMzRmYWJlZTc4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNS0xMC0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgU3ltYm9sIHR5cGUgZm9yIHByb3BlcnR5IHR5cGUg
aW5mZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDk2MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGludHJvZHVjZXMgU3ltYm9sIHR5cGUgaW50byBwcm9wZXJ0eSB0eXBlIGlu
ZmVyZW5jZS4KKyAgICAgICAgT25lIG9mIHRoZSB1c2UgY2FzZXMgb2YgRVM2IFN5bWJvbCBpcyBl
bnVtIHZhbHVlLiBJbiB0aGlzIGNhc2UsCisgICAgICAgIHdlIG1heSBob2xkIGRpZmZlcmVudCBz
eW1ib2xzIGFzIHRoZSBzYW1lIHByb3BlcnR5IG9mIHRoZSBzYW1lIHN0cnVjdHVyZS4KKyAgICAg
ICAgQ3VycmVudCBwcm9wZXJ0eSB0eXBlIGluZmVyZW5jZSBkb2VzIG5vdCBzdXBwb3J0IFN5bWJv
bCB0eXBlLCBzbyBpbiB0aGUKKyAgICAgICAgYWJvdmUgY2FzZSwgdGhlIHByb3BlcnR5IHdpbGwg
YmUgaW5mZXJyZWQgYXMgVG9wIHR5cGUuCisKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkRmxh
Z3MuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6QWJzdHJhY3RWYWx1ZTo6c2V0KToKKyAgICAgICAgKiBkZmcvREZHSW5mZXJyZWRUeXBl
Q2hlY2suY3BwOgorICAgICAgICAoSlNDOjpERkc6Omluc2VydEluZmVycmVkVHlwZUNoZWNrKToK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNoZWNrSW5mZXJyZWRUeXBlKToKKyAgICAgICAgKiBqaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFu
Y2hJZk5vdFR5cGUpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChK
U0M6OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgor
ICAgICAgICAqIHJ1bnRpbWUvSW5mZXJyZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW5mZXJy
ZWRUeXBlOjpraW5kRm9yRmxhZ3MpOgorICAgICAgICAoSlNDOjpJbmZlcnJlZFR5cGU6OkRlc2Ny
aXB0b3I6OmZvclZhbHVlKToKKyAgICAgICAgKEpTQzo6SW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9y
OjpwdXRCeUlkRmxhZ3MpOgorICAgICAgICAoSlNDOjpJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3I6
Om1lcmdlKToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogcnVudGlt
ZS9JbmZlcnJlZFR5cGUuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcHJvcC10eXBlLXN5bWJv
bC10aGVuLW9iamVjdC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToK
KyAgICAgICAgKHRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcHJvcC10eXBlLXN5
bWJvbC10aGVuLXN0cmluZy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFy
KToKKwogMjAxNS0xMC0xMCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVkdWNlIHBvaW50bGVzcyBtYWxsb2MgdHJhZmZpYyBpbiBDb2RlQmxvY2sgY29uc3Ry
dWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5
SWRGbGFncy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRGbGFncy5o
CmluZGV4IDFkMjI4NjRmMzE1NzBjNTI3MzUzOWRhNWI2ZTE0MzZmMGJjYzU0YWMuLjZhZDM2NDM5
M2MxMWVlYThmMTliOTBkYjE1YzdjOTA5YjdhNDk2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkRmxhZ3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHV0QnlJZEZsYWdzLmgKQEAgLTY1LDkgKzY1LDEwIEBAIGVudW0gUHV0
QnlJZEZsYWdzIDogaW50cHRyX3QgewogICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlSW50MzIgPSAw
eDE4LAogICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlTnVtYmVyID0gMHgyMCwKICAgICBQdXRCeUlk
U2Vjb25kYXJ5VHlwZVN0cmluZyA9IDB4MjgsCi0gICAgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmpl
Y3QgPSAweDMwLAotICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0T3JPdGhlciA9IDB4Mzgs
Ci0gICAgUHV0QnlJZFNlY29uZGFyeVR5cGVUb3AgPSAweDQwCisgICAgUHV0QnlJZFNlY29uZGFy
eVR5cGVTeW1ib2wgPSAweDMwLAorICAgIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0ID0gMHgz
OCwKKyAgICBQdXRCeUlkU2Vjb25kYXJ5VHlwZU9iamVjdE9yT3RoZXIgPSAweDQwLAorICAgIFB1
dEJ5SWRTZWNvbmRhcnlUeXBlVG9wID0gMHg0OAogfTsKIAogaW5saW5lIFB1dEJ5SWRGbGFncyBl
bmNvZGVTdHJ1Y3R1cmVJRChTdHJ1Y3R1cmVJRCBpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCmluZGV4IGRjMmMyMmE1YmI2NWY2NDM3N2M5NDUz
YTQ4NWRiYWI2OWMyNzY3ODMuLmZkMjY1MmNjZDg3MWJlM2ExNjBiMmJkZmQ5MTk2NDg5ZjM5ZDEz
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNw
cApAQCAtMTM4LDYgKzEzOCw5IEBAIHZvaWQgQWJzdHJhY3RWYWx1ZTo6c2V0KEdyYXBoJiBncmFw
aCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiBkZXNjcmlwdG9yCiAgICAgY2FzZSBJ
bmZlcnJlZFR5cGU6OlN0cmluZzoKICAgICAgICAgc2V0KGdyYXBoLCBncmFwaC5tX3ZtLnN0cmlu
Z1N0cnVjdHVyZS5nZXQoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEluZmVycmVkVHlw
ZTo6U3ltYm9sOgorICAgICAgICBzZXQoZ3JhcGgsIGdyYXBoLm1fdm0uc3ltYm9sU3RydWN0dXJl
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5mZXJyZWRUeXBlOjpPYmplY3RX
aXRoU3RydWN0dXJlOgogICAgICAgICBzZXQoZ3JhcGgsIGRlc2NyaXB0b3Iuc3RydWN0dXJlKCkp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0luZmVycmVkVHlwZUNoZWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SW5mZXJyZWRUeXBlQ2hlY2suY3BwCmluZGV4IGM3NmUyZThhYmE0ZjhhODMzOTZjMjg3ZWQzOTlk
NDI4ZjRiMDVhNWEuLjE5NTFjNzljMTUxZmUwMTFjMmM1MjVmZGFkZWRmNTYzN2EwNTM0MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5mZXJyZWRUeXBlQ2hlY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5mZXJyZWRUeXBlQ2hlY2su
Y3BwCkBAIC02Myw2ICs2MywxMCBAQCB2b2lkIGluc2VydEluZmVycmVkVHlwZUNoZWNrKAogICAg
ICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShub2RlSW5kZXgsIFNwZWNOb25lLCBDaGVjaywg
b3JpZ2luLCBFZGdlKGJhc2VOb2RlLCBTdHJpbmdVc2UpKTsKICAgICAgICAgcmV0dXJuOwogCisg
ICAgY2FzZSBJbmZlcnJlZFR5cGU6OlN5bWJvbDoKKyAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUobm9kZUluZGV4LCBTcGVjTm9uZSwgQ2hlY2ssIG9yaWdpbiwgRWRnZShiYXNlTm9kZSwg
U3ltYm9sVXNlKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgSW5mZXJyZWRUeXBlOjpP
YmplY3RXaXRoU3RydWN0dXJlOgogICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAg
ICAgICAgICAgIG5vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrU3RydWN0dXJlLCBvcmlnaW4sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4
IGE3YTY5YWZjMDk3MDNiY2IzMTM5OTY3Mjg5M2Y1YWU3MGM5OTIzNzIuLjc4MGMxYmJiYzA2NDY2
YTdiODdjNWFkYTM4MmVlNGFiMzI0YWZiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC01ODMwLDYgKzU4MzAsMTEgQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpzVmFsdWVW
YWx1ZSh2YWx1ZSksIGVkZ2Uubm9kZSgpLCBpc05vdFN0cmluZyh2YWx1ZSwgcHJvdmVuVHlwZShl
ZGdlKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGNhc2UgSW5mZXJyZWRUeXBl
OjpTeW1ib2w6CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNWYWx1ZVZhbHVlKHZh
bHVlKSwgZWRnZS5ub2RlKCksIGlzTm90Q2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShlZGdlKSkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2Uu
bm9kZSgpLCBpc05vdFN5bWJvbCh2YWx1ZSwgcHJvdmVuVHlwZShlZGdlKSkpOworICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIGNhc2UgSW5mZXJyZWRUeXBlOjpPYmplY3RXaXRoU3RydWN0
dXJlOgogICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpzVmFsdWVWYWx1ZSh2YWx1ZSks
IGVkZ2Uubm9kZSgpLCBpc05vdENlbGwodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpKTsKICAgICAg
ICAgICAgIGlmICghYWJzdHJhY3RWYWx1ZShlZGdlKS5tX3N0cnVjdHVyZS5pc1N1YnNldE9mKFN0
cnVjdHVyZVNldCh0eXBlLnN0cnVjdHVyZSgpKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCBiYjY3NWMwMDMzNTIzOTE1MmIwNzdjNWM2
MzkxNmI2YjVkYzgwY2FjLi5lYWU3ZTExNmMxNTQzOTMxNjgwNDEzMTdmNzQwNzRlZGE4MTAwYmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBA
IC04Niw2ICs4NiwxMSBAQCBFeGVjdXRhYmxlQmFzZSogQXNzZW1ibHlIZWxwZXJzOjpleGVjdXRh
YmxlRm9yKGNvbnN0IENvZGVPcmlnaW4mIGNvZGVPcmlnaW4pCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoYnJhbmNoSWZOb3RTdHJpbmcocmVncy5wYXlsb2FkR1BSKCkpKTsKICAgICAgICAgYnJlYWs7
CiAKKyAgICBjYXNlIEluZmVycmVkVHlwZTo6U3ltYm9sOgorICAgICAgICByZXN1bHQuYXBwZW5k
KGJyYW5jaElmTm90Q2VsbChyZWdzLCBtb2RlKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoYnJh
bmNoSWZOb3RTeW1ib2wocmVncy5wYXlsb2FkR1BSKCkpKTsKKyAgICAgICAgYnJlYWs7CisKICAg
ICBjYXNlIEluZmVycmVkVHlwZTo6T2JqZWN0V2l0aFN0cnVjdHVyZToKICAgICAgICAgcmVzdWx0
LmFwcGVuZChicmFuY2hJZk5vdENlbGwocmVncywgbW9kZSkpOwogICAgICAgICByZXN1bHQuYXBw
ZW5kKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAwZWQz
YjBiNDlhN2Y2OGMzZGNkNDQzZjE4NzVmYzMyOTkyZTBmNWZhLi4wMTkyN2I2MzA0YzIzYzBkNWZi
ODQ0NjdmN2IzOThhOGE0YzFlZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcApAQCAtMTQyLDYgKzE0Miw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlv
bnMoVk0mIHZtKQogI2VuZGlmCiAgICAgCiAgICAgQVNTRVJUKFN0cmluZ1R5cGUgPT0gNik7Cisg
ICAgQVNTRVJUKFN5bWJvbFR5cGUgPT0gNyk7CiAgICAgQVNTRVJUKE9iamVjdFR5cGUgPT0gMjEp
OwogICAgIEFTU0VSVChGaW5hbE9iamVjdFR5cGUgPT0gMjIpOwogICAgIEFTU0VSVChNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkID09IDEpOwpAQCAtMTUzLDYgKzE1NCwyMiBAQCB2b2lkIERhdGE6OnBl
cmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoRnVuY3Rpb25Db2RlID09IDIpOwog
ICAgIEFTU0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAgc3RhdGljX2Fzc2VydChQdXRCeUlk
UHJpbWFyeVR5cGVNYXNrID09IDB4NiwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFByaW1hcnlUeXBl
TWFzayBpcyA9PSAweDYiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZVNl
Y29uZGFyeSA9PSAweDAsICJMTEludCBhc3N1bWVzIFB1dEJ5SWRQcmltYXJ5VHlwZVNlY29uZGFy
eSBpcyA9PSAweDAiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVj
dFdpdGhTdHJ1Y3R1cmUgPT0gMHgyLCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVP
YmplY3RXaXRoU3RydWN0dXJlIGlzID09IDB4MiIpOworICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJ
ZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZU9yT3RoZXIgPT0gMHg0LCAiTExJbnQgYXNz
dW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVPYmplY3RXaXRoU3RydWN0dXJlT3JPdGhlciBpcyA9PSAw
eDQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRTZWNvbmRhcnlUeXBlTWFzayA9PSAtMHg4
LCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkU2Vjb25kYXJ5VHlwZU1hc2sgaXMgPT0gLTB4OCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFNlY29uZGFyeVR5cGVCb3R0b20gPT0gMHgwLCAiTExJ
bnQgYXNzdW1lcyBQdXRCeUlkU2Vjb25kYXJ5VHlwZUJvdHRvbSBpcyA9PSAweDAiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KFB1dEJ5SWRTZWNvbmRhcnlUeXBlQm9vbGVhbiA9PSAweDgsICJMTEludCBh
c3N1bWVzIFB1dEJ5SWRTZWNvbmRhcnlUeXBlQm9vbGVhbiBpcyA9PSAweDgiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KFB1dEJ5SWRTZWNvbmRhcnlUeXBlT3RoZXIgPT0gMHgxMCwgIkxMSW50IGFzc3Vt
ZXMgUHV0QnlJZFNlY29uZGFyeVR5cGVPdGhlciBpcyA9PSAweDEwIik7CisgICAgc3RhdGljX2Fz
c2VydChQdXRCeUlkU2Vjb25kYXJ5VHlwZUludDMyID09IDB4MTgsICJMTEludCBhc3N1bWVzIFB1
dEJ5SWRTZWNvbmRhcnlUeXBlSW50MzIgaXMgPT0gMHgxOCIpOworICAgIHN0YXRpY19hc3NlcnQo
UHV0QnlJZFNlY29uZGFyeVR5cGVOdW1iZXIgPT0gMHgyMCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJ
ZFNlY29uZGFyeVR5cGVOdW1iZXIgaXMgPT0gMHgyMCIpOworICAgIHN0YXRpY19hc3NlcnQoUHV0
QnlJZFNlY29uZGFyeVR5cGVTdHJpbmcgPT0gMHgyOCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFNl
Y29uZGFyeVR5cGVTdHJpbmcgaXMgPT0gMHgyOCIpOworICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJ
ZFNlY29uZGFyeVR5cGVTeW1ib2wgPT0gMHgzMCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFNlY29u
ZGFyeVR5cGVTeW1ib2wgaXMgPT0gMHgzMCIpOworICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFNl
Y29uZGFyeVR5cGVPYmplY3QgPT0gMHgzOCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFNlY29uZGFy
eVR5cGVPYmplY3QgaXMgPT0gMHgzOCIpOworICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFNlY29u
ZGFyeVR5cGVPYmplY3RPck90aGVyID09IDB4NDAsICJMTEludCBhc3N1bWVzIFB1dEJ5SWRTZWNv
bmRhcnlUeXBlT2JqZWN0T3JPdGhlciBpcyA9PSAweDQwIik7CisgICAgc3RhdGljX2Fzc2VydChQ
dXRCeUlkU2Vjb25kYXJ5VHlwZVRvcCA9PSAweDQ4LCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkU2Vj
b25kYXJ5VHlwZVRvcCBpcyA9PSAweDQ4Iik7CisKICAgICBzdGF0aWNfYXNzZXJ0KEdsb2JhbFBy
b3BlcnR5ID09IDAsICJMTEludCBhc3N1bWVzIEdsb2JhbFByb3BlcnR5IFJlc3VsdFR5cGUgaXMg
PT0gMCIpOwogICAgIHN0YXRpY19hc3NlcnQoR2xvYmFsVmFyID09IDEsICJMTEludCBhc3N1bWVz
IEdsb2JhbFZhciBSZXN1bHRUeXBlIGlzID09IDEiKTsKICAgICBzdGF0aWNfYXNzZXJ0KEdsb2Jh
bExleGljYWxWYXIgPT0gMiwgIkxMSW50IGFzc3VtZXMgR2xvYmFsTGV4aWNhbFZhciBSZXN1bHRU
eXBlIGlzID09IDIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbQppbmRleCA1ZGFlNzA2ODU3ZDU5MzU5MzcxN2M4Zjc2YWY5MDky
NWUzOTY5MDM3Li4zZDkxMGZlNjAzMDE2ODM0MTk3YWI5OTYwMGEwYTJiZjhjN2UyYzk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCkBAIC0yMTYsOSArMjE2LDEwIEBAIGNvbnN0IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT3RoZXIg
PSAweDEwCiBjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlwZUludDMyID0gMHgxOAogY29uc3QgUHV0
QnlJZFNlY29uZGFyeVR5cGVOdW1iZXIgPSAweDIwCiBjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlw
ZVN0cmluZyA9IDB4MjgKLWNvbnN0IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0ID0gMHgzMAot
Y29uc3QgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3RPck90aGVyID0gMHgzOAotY29uc3QgUHV0
QnlJZFNlY29uZGFyeVR5cGVUb3AgPSAweDQwCitjb25zdCBQdXRCeUlkU2Vjb25kYXJ5VHlwZVN5
bWJvbCA9IDB4MzAKK2NvbnN0IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0ID0gMHgzOAorY29u
c3QgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3RPck90aGVyID0gMHg0MAorY29uc3QgUHV0QnlJ
ZFNlY29uZGFyeVR5cGVUb3AgPSAweDQ4CiAKIGNvbnN0IENhbGxPcENvZGVTaXplID0gOQogCkBA
IC0zMjQsNiArMzI1LDcgQEAgY29uc3QgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlID0gMzAKIAog
IyBUeXBlIGNvbnN0YW50cy4KIGNvbnN0IFN0cmluZ1R5cGUgPSA2Citjb25zdCBTeW1ib2xUeXBl
ID0gNwogY29uc3QgT2JqZWN0VHlwZSA9IDIxCiBjb25zdCBGaW5hbE9iamVjdFR5cGUgPSAyMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCmluZGV4IDMyZDk5MjcwMWYyNDUwMzc3NDQ4Y2I0ZjE1NzQwMWM0OGNm
YWEzOGEuLmU5MmE3YTcyODQ5NDg2NzkxMjcyYzcwNDcyN2U0Y2ZkYzA3OTI3YmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCkBAIC0xNDAzLDcgKzE0MDMsNyBAQCBfbGxpbnRfb3BfcHV0X2J5X2lkOgogICAg
IGFuZGkgUHV0QnlJZFNlY29uZGFyeVR5cGVNYXNrLCB0MQogICAgIGJpbHQgdDEsIFB1dEJ5SWRT
ZWNvbmRhcnlUeXBlU3RyaW5nLCAub3BQdXRCeUlkVHlwZUNoZWNrTGVzc1RoYW5TdHJpbmcKIAot
ICAgICMgV2UgYXJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiBTdHJpbmcsIE9iamVjdCwgT2JqZWN0
T3JPdGhlciwgVG9wCisgICAgIyBXZSBhcmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IFN0cmluZywg
U3ltYm9sLCBPYmplY3QsIE9iamVjdE9yT3RoZXIsIFRvcAogICAgIGJpbHQgdDEsIFB1dEJ5SWRT
ZWNvbmRhcnlUeXBlT2JqZWN0T3JPdGhlciwgLm9wUHV0QnlJZFR5cGVDaGVja0xlc3NUaGFuT2Jq
ZWN0T3JPdGhlcgogCiAgICAgIyBXZSBhcmUgZWl0aGVyIE9iamVjdE9yT3RoZXIgb3IgVG9wLgpA
QCAtMTQxNywxNCArMTQxNywxOCBAQCBfbGxpbnRfb3BfcHV0X2J5X2lkOgogICAgIGptcCAub3BQ
dXRCeUlkU2xvdwogCiAub3BQdXRCeUlkVHlwZUNoZWNrTGVzc1RoYW5PYmplY3RPck90aGVyOgot
ICAgICMgV2UgYXJlIGVpdGhlciBTdHJpbmcgb3IgT2JqZWN0LgorICAgICMgV2UgYXJlIGVpdGhl
ciBTdHJpbmcsIFN5bWJvbCBvciBPYmplY3QuCiAgICAgYmluZXEgdDIsIENlbGxUYWcsIC5vcFB1
dEJ5SWRTbG93CiAgICAgYmllcSB0MSwgUHV0QnlJZFNlY29uZGFyeVR5cGVPYmplY3QsIC5vcFB1
dEJ5SWRUeXBlQ2hlY2tPYmplY3QKKyAgICBiaWVxIHQxLCBQdXRCeUlkU2Vjb25kYXJ5VHlwZVN5
bWJvbCwgLm9wUHV0QnlJZFR5cGVDaGVja1N5bWJvbAogICAgIGJiZXEgSlNDZWxsOjptX3R5cGVb
dDNdLCBTdHJpbmdUeXBlLCAub3BQdXRCeUlkRG9uZUNoZWNraW5nVHlwZXMKICAgICBqbXAgLm9w
UHV0QnlJZFNsb3cKIC5vcFB1dEJ5SWRUeXBlQ2hlY2tPYmplY3Q6CiAgICAgYmJhZXEgSlNDZWxs
OjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BQdXRCeUlkRG9uZUNoZWNraW5nVHlwZXMKICAg
ICBqbXAgLm9wUHV0QnlJZFNsb3cKKy5vcFB1dEJ5SWRUeXBlQ2hlY2tTeW1ib2w6CisgICAgYmJl
cSBKU0NlbGw6Om1fdHlwZVt0M10sIFN5bWJvbFR5cGUsIC5vcFB1dEJ5SWREb25lQ2hlY2tpbmdU
eXBlcworICAgIGptcCAub3BQdXRCeUlkU2xvdwogCiAub3BQdXRCeUlkVHlwZUNoZWNrTGVzc1Ro
YW5TdHJpbmc6CiAgICAgIyBXZSBhcmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IEJvdHRvbSwgQm9v
bGVhbiwgT3RoZXIsIEludDMyLCBOdW1iZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGQ1NWNhZDliYjY5NDE0
MDNhZDhkNDg4YzNhYmFhOWMwNjEzY2YwODEuLjBmMDg2NjMyYTkxMmZhNmNmMWMxNGFlYWFmYjA0
NzcwYTQ2NWY1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjg0LDcgKzEyODQsNyBAQCBfbGxpbnRfb3Bf
cHV0X2J5X2lkOgogICAgIGFuZHAgUHV0QnlJZFNlY29uZGFyeVR5cGVNYXNrLCB0MQogICAgIGJw
bHQgdDEsIFB1dEJ5SWRTZWNvbmRhcnlUeXBlU3RyaW5nLCAub3BQdXRCeUlkVHlwZUNoZWNrTGVz
c1RoYW5TdHJpbmcKIAotICAgICMgV2UgYXJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOiBTdHJpbmcs
IE9iamVjdCwgT2JqZWN0T3JPdGhlciwgVG9wCisgICAgIyBXZSBhcmUgb25lIG9mIHRoZSBmb2xs
b3dpbmc6IFN0cmluZywgU3ltYm9sLCBPYmplY3QsIE9iamVjdE9yT3RoZXIsIFRvcAogICAgIGJw
bHQgdDEsIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0T3JPdGhlciwgLm9wUHV0QnlJZFR5cGVD
aGVja0xlc3NUaGFuT2JqZWN0T3JPdGhlcgogCiAgICAgIyBXZSBhcmUgZWl0aGVyIE9iamVjdE9y
T3RoZXIgb3IgVG9wLgpAQCAtMTI5OCwxNCArMTI5OCwxOCBAQCBfbGxpbnRfb3BfcHV0X2J5X2lk
OgogICAgIGptcCAub3BQdXRCeUlkU2xvdwogCiAub3BQdXRCeUlkVHlwZUNoZWNrTGVzc1RoYW5P
YmplY3RPck90aGVyOgotICAgICMgV2UgYXJlIGVpdGhlciBTdHJpbmcgb3IgT2JqZWN0LgorICAg
ICMgV2UgYXJlIGVpdGhlciBTdHJpbmcsIFN5bWJvbCBvciBPYmplY3QuCiAgICAgYnRxbnogdDMs
IHRhZ01hc2ssIC5vcFB1dEJ5SWRTbG93CiAgICAgYnBlcSB0MSwgUHV0QnlJZFNlY29uZGFyeVR5
cGVPYmplY3QsIC5vcFB1dEJ5SWRUeXBlQ2hlY2tPYmplY3QKKyAgICBicGVxIHQxLCBQdXRCeUlk
U2Vjb25kYXJ5VHlwZVN5bWJvbCwgLm9wUHV0QnlJZFR5cGVDaGVja1N5bWJvbAogICAgIGJiZXEg
SlNDZWxsOjptX3R5cGVbdDNdLCBTdHJpbmdUeXBlLCAub3BQdXRCeUlkRG9uZUNoZWNraW5nVHlw
ZXMKICAgICBqbXAgLm9wUHV0QnlJZFNsb3cKIC5vcFB1dEJ5SWRUeXBlQ2hlY2tPYmplY3Q6CiAg
ICAgYmJhZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BQdXRCeUlkRG9uZUNo
ZWNraW5nVHlwZXMKICAgICBqbXAgLm9wUHV0QnlJZFNsb3cKKy5vcFB1dEJ5SWRUeXBlQ2hlY2tT
eW1ib2w6CisgICAgYmJlcSBKU0NlbGw6Om1fdHlwZVt0M10sIFN5bWJvbFR5cGUsIC5vcFB1dEJ5
SWREb25lQ2hlY2tpbmdUeXBlcworICAgIGptcCAub3BQdXRCeUlkU2xvdwogCiAub3BQdXRCeUlk
VHlwZUNoZWNrTGVzc1RoYW5TdHJpbmc6CiAgICAgIyBXZSBhcmUgb25lIG9mIHRoZSBmb2xsb3dp
bmc6IEJvdHRvbSwgQm9vbGVhbiwgT3RoZXIsIEludDMyLCBOdW1iZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZmVycmVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbmZlcnJlZFR5cGUuY3BwCmluZGV4IDcwNWEyZTkxM2EyN2I3
MzljY2YyZjMwNjJhN2JjOTc0NmZjMTQ2N2IuLmYyMDY1MzNjMmE5YzRlY2NmNmY5YWVhNWUyYjRk
MDAyODY1ZWI2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
ZmVycmVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5mZXJy
ZWRUeXBlLmNwcApAQCAtMTExLDYgKzExMSw4IEBAIHZvaWQgSW5mZXJyZWRUeXBlOjp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgICAgICBy
ZXR1cm4gTnVtYmVyOwogICAgICAgICBjYXNlIFB1dEJ5SWRTZWNvbmRhcnlUeXBlU3RyaW5nOgog
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZzsKKyAgICAgICAgY2FzZSBQdXRCeUlkU2Vjb25kYXJ5
VHlwZVN5bWJvbDoKKyAgICAgICAgICAgIHJldHVybiBTeW1ib2w7CiAgICAgICAgIGNhc2UgUHV0
QnlJZFNlY29uZGFyeVR5cGVPYmplY3Q6CiAgICAgICAgICAgICByZXR1cm4gT2JqZWN0OwogICAg
ICAgICBjYXNlIFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0T3JPdGhlcjoKQEAgLTE0NSw2ICsx
NDcsOCBAQCB2b2lkIEluZmVycmVkVHlwZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBKU0NlbGwqIGNlbGwgPSB2YWx1ZS5hc0NlbGwo
KTsKICAgICAgICAgaWYgKGNlbGwtPmlzU3RyaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4gU3Ry
aW5nOworICAgICAgICBpZiAoY2VsbC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgIHJldHVybiBT
eW1ib2w7CiAgICAgICAgIGlmIChjZWxsLT5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICBpZiAo
Y2VsbC0+c3RydWN0dXJlKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIERlc2NyaXB0b3IoT2JqZWN0V2l0aFN0cnVjdHVyZSwg
Y2VsbC0+c3RydWN0dXJlKCkpOwpAQCAtMTgwLDYgKzE4NCw4IEBAIFB1dEJ5SWRGbGFncyBJbmZl
cnJlZFR5cGU6OkRlc2NyaXB0b3I6OnB1dEJ5SWRGbGFncygpIGNvbnN0CiAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxQdXRCeUlkRmxhZ3M+KFB1dEJ5SWRQcmltYXJ5VHlwZVNlY29uZGFyeSB8
IFB1dEJ5SWRTZWNvbmRhcnlUeXBlTnVtYmVyKTsKICAgICBjYXNlIFN0cmluZzoKICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFB1dEJ5SWRGbGFncz4oUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25k
YXJ5IHwgUHV0QnlJZFNlY29uZGFyeVR5cGVTdHJpbmcpOworICAgIGNhc2UgU3ltYm9sOgorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UHV0QnlJZEZsYWdzPihQdXRCeUlkUHJpbWFyeVR5cGVT
ZWNvbmRhcnkgfCBQdXRCeUlkU2Vjb25kYXJ5VHlwZVN5bWJvbCk7CiAgICAgY2FzZSBPYmplY3Q6
CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQdXRCeUlkRmxhZ3M+KFB1dEJ5SWRQcmltYXJ5
VHlwZVNlY29uZGFyeSB8IFB1dEJ5SWRTZWNvbmRhcnlUeXBlT2JqZWN0KTsKICAgICBjYXNlIE9i
amVjdE9yT3RoZXI6CkBAIC0yMTEsNiArMjE3LDcgQEAgdm9pZCBJbmZlcnJlZFR5cGU6OkRlc2Ny
aXB0b3I6Om1lcmdlKGNvbnN0IERlc2NyaXB0b3ImIG90aGVyKQogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBCb29sZWFuOgogICAgIGNhc2UgU3RyaW5nOgorICAgIGNhc2UgU3ltYm9sOgogICAg
ICAgICAqdGhpcyA9IFRvcDsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgT3RoZXI6CkBAIC01
NDEsNiArNTQ4LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEluZmVy
cmVkVHlwZTo6S2luZCBraW5kKQogICAgIGNhc2UgSW5mZXJyZWRUeXBlOjpTdHJpbmc6CiAgICAg
ICAgIG91dC5wcmludCgiU3RyaW5nIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEluZmVy
cmVkVHlwZTo6U3ltYm9sOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBJbmZlcnJlZFR5cGU6Ok9iamVjdFdpdGhTdHJ1Y3R1cmU6CiAgICAg
ICAgIG91dC5wcmludCgiT2JqZWN0V2l0aFN0cnVjdHVyZSIpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmZlcnJlZFR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZmVycmVkVHlwZS5oCmluZGV4IGYyZGQw
MTg0NmEyMmY4MTFmMGNkNzA2N2U1MzNmNTcxZGUxZDQ5NmUuLmQ2MGM3YmEyNzRjMzFiYTk3YmFi
MDZiM2M2Njg3ZTg1YjlhOTQ1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0luZmVycmVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0luZmVycmVkVHlwZS5oCkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIEluZmVycmVkVHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBJbnQzMiwKICAgICAgICAgTnVtYmVyLAogICAg
ICAgICBTdHJpbmcsCisgICAgICAgIFN5bWJvbCwKICAgICAgICAgT2JqZWN0V2l0aFN0cnVjdHVy
ZSwKICAgICAgICAgT2JqZWN0V2l0aFN0cnVjdHVyZU9yT3RoZXIsCiAgICAgICAgIE9iamVjdCwK
QEAgLTEyNSw2ICsxMjYsOCBAQCBjbGFzcyBJbmZlcnJlZFR5cGUgZmluYWwgOiBwdWJsaWMgSlND
ZWxsIHsKICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaXNOdW1iZXIoKTsKICAgICAgICAg
ICAgIGNhc2UgU3RyaW5nOgogICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pc1N0cmluZygp
OworICAgICAgICAgICAgY2FzZSBTeW1ib2w6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVl
LmlzU3ltYm9sKCk7CiAgICAgICAgICAgICBjYXNlIE9iamVjdFdpdGhTdHJ1Y3R1cmU6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmlzQ2VsbCgpICYmIHZhbHVlLmFzQ2VsbCgpLT5zdHJ1
Y3R1cmUoKSA9PSBtX3N0cnVjdHVyZTsKICAgICAgICAgICAgIGNhc2UgT2JqZWN0V2l0aFN0cnVj
dHVyZU9yT3RoZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Byb3AtdHlwZS1zeW1ib2wtdGhlbi1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Byb3AtdHlwZS1zeW1ib2wtdGhlbi1vYmplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDNjMDllZmMxYzYzYjRlNzA2MjFjYzNhZGQ5N2Q0ODY1MjA2OGFmMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJvcC10eXBlLXN5bWJv
bC10aGVuLW9iamVjdC5qcwpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28obykgeworICAg
IHJldHVybiB0eXBlb2Ygby5mOworfQorCitmdW5jdGlvbiBiYXIobywgdikgeworICAgIG8uZiA9
IHY7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShiYXIpOworCit2YXIgbyA9IHt9Owor
Zm9yICh2YXIgaSA9IDA7IGkgPCA1OyArK2kpCisgICAgYmFyKG8sIFN5bWJvbCgiQ29jb2EiKSk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28obyk7CisgICAgaWYgKHJlc3VsdCAhPSAic3ltYm9sIikKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCitiYXIobywge3RvU3RyaW5nOiBmdW5jdGlv
bigpIHsgcmV0dXJuICJoZWxsbyI7IH19KTsKK3ZhciByZXN1bHQgPSBmb28obyk7CitpZiAocmVz
dWx0ICE9ICJvYmplY3QiKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIg
KyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3Byb3AtdHlwZS1zeW1ib2wtdGhlbi1zdHJpbmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Byb3AtdHlwZS1zeW1ib2wtdGhlbi1zdHJpbmcuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWVmNmM0NWUwMTZmMTZjY2Q1ZWJkM2ZkNDgzNGI1MzAwOGY4OWZkOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJvcC10eXBlLXN5bWJvbC10
aGVuLXN0cmluZy5qcwpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJl
dHVybiB0eXBlb2Ygby5mID09PSAic3ltYm9sIjsKK30KKworZnVuY3Rpb24gYmFyKG8sIHYpIHsK
KyAgICBvLmYgPSB2OworfQorCitub0lubGluZShmb28pOworbm9JbmxpbmUoYmFyKTsKKwordmFy
IG8gPSB7fTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgNTsgKytpKQorICAgIGJhcihvLCBTeW1ib2wo
IkNvY29hIikpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKG8pOworICAgIGlmIChyZXN1bHQgIT09IHRydWUpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKworYmFyKG8sICJoZWxsbyIpOwor
dmFyIHJlc3VsdCA9IGZvbyhvKTsKK3Jlc3VsdCA9IGZvbyhvKTsKK2lmIChyZXN1bHQgIT09IGZh
bHNlKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQgKGZhbHNlKTogIiArIHJl
c3VsdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>