<?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>122532</bug_id>
          
          <creation_ts>2013-10-08 16:32:30 -0700</creation_ts>
          <short_desc>Convert for-of iteration to in-band signalling so we can trivially avoid unnecessary object allocation</short_desc>
          <delta_ts>2013-10-08 17:23:26 -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>528+ (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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>937747</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-08 16:32:30 -0700</bug_when>
    <thetext>Convert for-of iteration to in-band signalling so we can trivially avoid unnecessary object allocation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937748</commentid>
    <comment_count>1</comment_count>
      <attachid>213733</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-08 16:39:08 -0700</bug_when>
    <thetext>Created attachment 213733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937765</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-08 17:23:26 -0700</bug_when>
    <thetext>Committed r157150: &lt;http://trac.webkit.org/changeset/157150&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213733</attachid>
            <date>2013-10-08 16:39:08 -0700</date>
            <delta_ts>2013-10-08 17:18:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122532-20131008163904.patch</filename>
            <type>text/plain</type>
            <size>15683</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
OGY5YjQ1NDY1M2Q5NTIzN2I3NTMwMjJiODViNGQ2NzBmODk1NDU2Li5iY2JiZjNjOGE4ZTQyYjhk
ZGVjYWVlNDNiM2ZlYjBiNDliOTE3ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMy0xMC0wOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIENvbnZlcnQgZm9yLW9mIGl0ZXJhdGlvbiB0byBpbi1iYW5kIHNpZ25hbGxpbmcg
c28gd2UgY2FuIHRyaXZpYWxseSBhdm9pZCB1bm5lY2Vzc2FyeSBvYmplY3QgYWxsb2NhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNTMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dpdGNoIGZv
ci1vZiBlbnVtZXJhdGlvbiB0byB1c2UgaW4gYmFuZCBzaWduYWxsaW5nIHRvIGRldGVybWluZSB0
aGUgZW5kCisgICAgICAgIG9mIGl0ZXJhdGlvbi4gIFRoaXMgYWxsb3dzIHVzIHRvIHRyaXZpYWxs
eSByZW1vdmUgYW4gb3RoZXJ3aXNlIHVubmVjZXNzYXJ5CisgICAgICAgIG9iamVjdCBhbGxvY2F0
aW9uLCBhbmQgcGF2ZXMgdGhlIHdheSBmb3Igb3B0aW1pc2VkIHRodW5rcyBpbiBmdXR1cmUuCisK
KyAgICAgICAgV2UgY2FuIHJlLWFkZCBleHBsaWNpdCAubmV4dCgpIGZ1bmN0aW9ucyBpbiBmdXR1
cmUgdGhhdCB3b3VsZCBtYXJzaGFsbAorICAgICAgICB0aGUgdHJ1ZSBpdGVyYXRpb24gZnVuY3Rp
b25zLCBidXQgZm9yIG5vdyB3ZSdsbCBpZ25vcmUgdGhlbS4KKworICAgICAgICBUaGlzIHJlc3Vs
dHMgaW4gYSBodWdlIGltcHJvdmVtZW50IGluIHRoZSBwZXJmb3JtYW5jZSBvZiBmb3Itb2YgKGlu
IHRoZSBvcmRlcgorICAgICAgICBvZiAyeCkgYnV0IHRoZXJlJ3Mgc3RpbGwgYSBsb25nIHdheSB0
byBnbyBpbiBvcmRlciB0byBnZXQgdGhlIHBlcmZvcm1hbmNlIHRvCisgICAgICAgIGEgc2F0aXNm
YWN0b3J5IGxldmVsLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6
CisgICAgICAgIChKU0M6OkZvck9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBydW50
aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcDoKKyAg
ICAgICAgKEpTQzo6Q29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllcjo6YWRkU2xvd0Nhc2UpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNGaW5hbE9iamVjdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZN
KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMTMtMTAtMDggIFJvYmVydCBQbG9jaWVu
bmlrICA8ci5wbG9jaWVubmlrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRDb3Jl
IGZhaWxzIHRvIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZTg2Y2U1MzVjOWRjMWQwYmY3MzMwOGE4YWIwNzkw
YjNhMjFhYWUwNy4uZTgwMTBjMWE0YzY5YzlkN2M5NzAyNTI5Mzc1OWMyM2ZjMmRkMDg4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcApAQCAtMTc3OCw3ICsxNzc4LDcgQEAgdm9pZCBGb3JPZk5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiAgICAgICAgIGdl
bmVyYXRvci5lbWl0TW92ZShhcmdzLnRoaXNSZWdpc3RlcigpLCBzdWJqZWN0LmdldCgpKTsKICAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsKGl0ZXJhdG9yLmdldCgpLCBpdGVyYXRvci5nZXQoKSwg
Tm9FeHBlY3RlZEZ1bmN0aW9uLCBhcmdzLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5k
KCkpOwogICAgIH0KLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXRlcmF0b3JOZXh0ID0gZ2VuZXJh
dG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgaXRlcmF0b3IuZ2V0KCks
IGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkubmV4dCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGl0ZXJhdG9yTmV4dCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCksIGl0ZXJhdG9yLmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLml0ZXJhdG9y
TmV4dFByaXZhdGVOYW1lKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgZ2VuZXJhdG9yLmVtaXRMb2FkKHZhbHVlLmdldCgpLCBq
c1VuZGVmaW5lZCgpKTsKICAgICAKQEAgLTE4MjIsMTQgKzE4MjIsMTMgQEAgdm9pZCBGb3JPZk5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiBkc3QpCiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1lbnQpOwogICAgIAog
ICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwotICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAg
Q2FsbEFyZ3VtZW50cyBuZXh0QXJndW1lbnRzKGdlbmVyYXRvciwgMCwgMSk7CiAgICAgZ2VuZXJh
dG9yLmVtaXRNb3ZlKG5leHRBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGl0ZXJhdG9yLmdldCgp
KTsKICAgICBnZW5lcmF0b3IuZW1pdE1vdmUobmV4dEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVy
KDApLCB2YWx1ZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDYWxsKHJlc3VsdC5nZXQoKSwg
aXRlcmF0b3JOZXh0LmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIG5leHRBcmd1bWVudHMsIGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRHZXRC
eUlkKHZhbHVlLmdldCgpLCByZXN1bHQuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCku
dmFsdWUpOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBkb25lID0gZ2VuZXJhdG9yLmVtaXRHZXRC
eUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgcmVzdWx0LmdldCgpLCBnZW5lcmF0b3IucHJv
cGVydHlOYW1lcygpLmRvbmUpOwotICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZG9uZS5n
ZXQoKSwgbG9vcFN0YXJ0LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdENhbGwodmFsdWUuZ2V0
KCksIGl0ZXJhdG9yTmV4dC5nZXQoKSwgTm9FeHBlY3RlZEZ1bmN0aW9uLCBuZXh0QXJndW1lbnRz
LCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBKU1ZhbHVlKGdlbmVyYXRvci52bSgpLT5pdGVyYXRpb25UZXJtaW5hdG9yLmdldCgpKSk7Cisg
ICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShnZW5lcmF0b3IuZW1pdEVxdWFsaXR5T3Aob3Bf
c3RyaWN0ZXEsIHJlc3VsdC5nZXQoKSwgdmFsdWUuZ2V0KCksIHJlc3VsdC5nZXQoKSksIGxvb3BT
dGFydC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRMb2FkKHZhbHVlLmdldCgpLCBqc1VuZGVm
aW5lZCgpKTsKICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVu
dCwgZmlyc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKICAgICBn
ZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5j
cHAKaW5kZXggNmY0OTVjYTYzNzkwOWU2OWQ2ZDE5MmIwZDdhMjg4MzBlNDZmZTUxNC4uODMwM2Zm
MDM1YWQzYzNiMTM3ZDkzYThlZGEwOGE4Mjk5MjhmMTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAg
LTQ1LDM4ICs0NSwzNSBAQCB2b2lkIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90eXBlKHRoaXMpOwog
Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCBhcnJheUl0
ZXJhdG9yUHJvdG90eXBlTmV4dCwgRG9udEVudW0sIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T04odm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUsIGFycmF5SXRlcmF0
b3JQcm90b3R5cGVOZXh0LCBEb250RW51bSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclByaXZhdGVOYW1lLCBhcnJheUl0ZXJhdG9yUHJvdG90
eXBlSXRlcmF0ZSwgRG9udEVudW0sIDApOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3Jl
YXRlSXRlcmF0b3JSZXN1bHQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEFycmF5SXRlcmF0aW9uS2lu
ZCBraW5kLCBzaXplX3QgaW5kZXgsIEpTVmFsdWUgcmVzdWx0LCBib29sIGRvbmUpCiB7Ci0gICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCktPmdsb2Jh
bE9iamVjdCgpOwotICAgIEpTT2JqZWN0KiByZXN1bHRPYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChjYWxsRnJhbWUpOwotICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+
dm0oKSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkuZG9uZSwganNCb29sZWFuKGRvbmUpKTsK
KyAgICBjYWxsRnJhbWUtPnNldEFyZ3VtZW50KGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIC0g
MSwganNCb29sZWFuKGRvbmUpKTsKKyAgICBpZiAoZG9uZSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYWxsRnJhbWUtPnZtKCkuaXRlcmF0aW9uVGVybWluYXRvci5nZXQoKSk7CisK
ICAgICBzd2l0Y2ggKGtpbmQgJiB+QXJyYXlJdGVyYXRlU3BhcnNlVGFnKSB7CiAgICAgY2FzZSBB
cnJheUl0ZXJhdGVLZXk6Ci0gICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFt
ZS0+dm0oKSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGRvbmUgPyBqc1VuZGVm
aW5lZCgpIDoganNOdW1iZXIoaW5kZXgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW5kZXgpKTsKKwogICAgIGNhc2UgQXJyYXlJdGVy
YXRlVmFsdWU6Ci0gICAgICAgIHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0o
KSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkudmFsdWUsIGRvbmUgPyBqc1VuZGVmaW5lZCgp
IDogcmVzdWx0KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKKwogICAgIGNhc2UgQXJyYXlJdGVyYXRlS2V5VmFsdWU6IHsKLSAgICAgICAg
aWYgKCFkb25lKSB7Ci0gICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAg
ICAgICAgICAgYXJncy5hcHBlbmQoanNOdW1iZXIoaW5kZXgpKTsKLSAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKHJlc3VsdCk7Ci0gICAgICAgICAgICBKU0FycmF5KiByZXN1bHRBcnJheSA9IGNvbnN0
cnVjdEFycmF5KGNhbGxGcmFtZSwgMCwgZ2xvYmFsT2JqZWN0LCBhcmdzKTsKLSAgICAgICAgICAg
IHJlc3VsdE9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgY2FsbEZyYW1lLT5wcm9w
ZXJ0eU5hbWVzKCkudmFsdWUsIHJlc3VsdEFycmF5KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICByZXN1bHRPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFtZS0+
cHJvcGVydHlOYW1lcygpLnZhbHVlLCBqc1VuZGVmaW5lZCgpKTsKLQotICAgICAgICBicmVhazsK
KyAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICAgICAgYXJncy5hcHBlbmQo
anNOdW1iZXIoaW5kZXgpKTsKKyAgICAgICAgYXJncy5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhbGxGcmFtZS0+Y2FsbGVlKCktPmdsb2Jh
bE9iamVjdCgpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5
KGNhbGxGcmFtZSwgMCwgZ2xvYmFsT2JqZWN0LCBhcmdzKSk7CisKICAgICB9CiAgICAgZGVmYXVs
dDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRPYmplY3QpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eUl0ZXJhdG9yUHJvdG90eXBlTmV4dChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcAppbmRleCBi
NWViNzJmMTcxNjFiOGUwM2I1NWRlNDJkMzlhZTFiOWUyMWY4ZGYyLi45ZmJkZWE2ZWM1MTMzZmZi
OTJjYjVlNTcyZjc3NGI5YmI5YWYwYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCkBAIC0zNSw2ICszNSw3IEBAIENvbW1v
bklkZW50aWZpZXJzOjpDb21tb25JZGVudGlmaWVycyhWTSogdm0pCiAgICAgLCB0aGlzSWRlbnRp
Zmllcih2bSwgInRoaXMiKQogICAgICwgdXNlU3RyaWN0SWRlbnRpZmllcih2bSwgInVzZSBzdHJp
Y3QiKQogICAgICwgaXRlcmF0b3JQcml2YXRlTmFtZShJZGVudGlmaWVyOjpmcm9tKFByaXZhdGVO
YW1lKCkpKQorICAgICwgaXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbShQ
cml2YXRlTmFtZSgpKSkKICAgICAsIGhhc05leHRJZGVudGlmaWVyKHZtLCAiaGFzTmV4dCIpCiAg
ICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX0tFWVdPUkQoSU5JVElBTElaRV9LRVlXT1JE
KQogICAgIEpTQ19DT01NT05fSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
WkVfUFJPUEVSVFlfTkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5oCmluZGV4IDJmNjA5MDBhODlhYzhkODAzMjE0YzQ0N2RjNzViZmY3
ZjM4MzZlNDQuLmE5MWY1MzcwNGM4MmFmNTUwZTg1NDAwNTVmYTMyZDEzODI2NzM1MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApA
QCAtMjEzLDYgKzIxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlm
aWVyIHRoaXNJZGVudGlmaWVyOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHVzZVN0cmljdElk
ZW50aWZpZXI7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIgaXRlcmF0b3JQcml2YXRlTmFtZTsK
KyAgICAgICAgY29uc3QgSWRlbnRpZmllciBpdGVyYXRvck5leHRQcml2YXRlTmFtZTsKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciBoYXNOZXh0SWRlbnRpZmllcjsKIAogICAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAKaW5kZXggYWQ2MWI0OTNh
Nzg2YTQ4OTYwMjgyYWRiYzFjNmJkY2E0YWYyMGJmNi4uZTk4M2U0NGUwNTAxZDc1NmRlYmRhY2M4
YjVkODJiNmVhNmIzNDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5jcHAKQEAgLTEzMiw2ICsxMzIsOCBAQCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IElk
ZW50aWZpZXI6OmFkZDgoVk0qIHZtLCBjb25zdCBVQ2hhciogcywgaW50IGxlbmd0aCkKIAogUGFz
c1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyOjphZGRTbG93Q2FzZShWTSogdm0sIFN0cmlu
Z0ltcGwqIHIpCiB7CisgICAgaWYgKHItPmlzRW1wdHlVbmlxdWUoKSkKKyAgICAgICAgcmV0dXJu
IHI7CiAgICAgQVNTRVJUKCFyLT5pc0lkZW50aWZpZXIoKSk7CiAgICAgLy8gVGhlIGVtcHR5ICYg
bnVsbCBzdHJpbmdzIGFyZSBzdGF0aWMgc2luZ2xldG9ucywgYW5kIHN0YXRpYyBzdHJpbmdzIGFy
ZSBoYW5kbGVkCiAgICAgLy8gaW4gOjphZGQoKSBpbiB0aGUgaGVhZGVyLCBzbyB3ZSBzaG91bGQg
bmV2ZXIgZ2V0IGhlcmUgd2l0aCBhIHplcm8gbGVuZ3RoIHN0cmluZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGNlN2NhZGZjZWYwY2M1ZWNlMzI1NTM5MmE0
OTUwZTFmOTMwNTg5MzYuLjYwYWUxNjgwZWVlZDRkYmE5NGY2OGU0Yjg1NmY5YTY5OTdkMzY3NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTAzMyw2ICsx
MDMzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0ZpbmFsT2JqZWN0KiBjcmVh
dGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CisgICAgc3RhdGljIEpTRmluYWxPYmplY3QqIGNy
ZWF0ZShWTSYsIFN0cnVjdHVyZSopOwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlLCB1bnNpZ25lZCBpbmxpbmVDYXBhY2l0eSkKICAgICB7CiAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEZpbmFs
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIE5vbkFycmF5LCBpbmxpbmVDYXBh
Y2l0eSk7CkBAIC0xMDc2LDYgKzEwNzcsMTMgQEAgaW5saW5lIEpTRmluYWxPYmplY3QqIEpTRmlu
YWxPYmplY3Q6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXIKICAg
ICByZXR1cm4gZmluYWxPYmplY3Q7CiB9CiAKK2lubGluZSBKU0ZpbmFsT2JqZWN0KiBKU0ZpbmFs
T2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBKU0Zp
bmFsT2JqZWN0KiBmaW5hbE9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTRmlu
YWxPYmplY3Q+KHZtLmhlYXAsIGFsbG9jYXRpb25TaXplKHN0cnVjdHVyZS0+aW5saW5lQ2FwYWNp
dHkoKSkpKSBKU0ZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOworICAgIGZpbmFsT2JqZWN0LT5m
aW5pc2hDcmVhdGlvbih2bSk7CisgICAgcmV0dXJuIGZpbmFsT2JqZWN0OworfQorCiBpbmxpbmUg
Ym9vbCBpc0pTRmluYWxPYmplY3QoSlNDZWxsKiBjZWxsKQogewogICAgIHJldHVybiBjZWxsLT5j
bGFzc0luZm8oKSA9PSBKU0ZpbmFsT2JqZWN0OjppbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKaW5kZXggMGQ2ZTRkZmI3NmFmY2NjMTA2ZDU4N2RhZDAwZmY2YTc0YWMxNDZk
Yi4uZGE0Yjc1NTZmYTA1MmI1ODQ2N2E2YjQ3ODliYTE4MWJlZWE1MTRkZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIFZNOjpWTShWTVR5cGUg
dm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBwcm9wZXJ0eVRhYmxlU3RydWN0dXJlLnNl
dCgqdGhpcywgUHJvcGVydHlUYWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwo
KSkpOwogICAgIG1hcERhdGFTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBNYXBEYXRhOjpjcmVhdGVTdHJ1
Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgd2Vha01hcERhdGFTdHJ1Y3R1cmUuc2V0
KCp0aGlzLCBXZWFrTWFwRGF0YTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkp
OwotCisgICAgaXRlcmF0aW9uVGVybWluYXRvci5zZXQoKnRoaXMsIEpTRmluYWxPYmplY3Q6OmNy
ZWF0ZSgqdGhpcywgSlNGaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051
bGwoKSwgMSkpKTsKICAgICBzbWFsbFN0cmluZ3MuaW5pdGlhbGl6ZUNvbW1vblN0cmluZ3MoKnRo
aXMpOwogCiAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJlbnRJZGVudGlmaWVyVGFibGUoZXhp
c3RpbmdFbnRyeUlkZW50aWZpZXJUYWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApp
bmRleCA4ZGMyNWFkMGY3ZTIxZGU1NzYwM2Q0OWEyOWJmNjRlZDM2OTA3Mjg0Li4zMmY0NzNjZDcx
Zjc0OTE2ZTY3YjYwM2M0NTA5MGMyNWJiOWJiMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmgKQEAgLTI3MCw2ICsyNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3Ryb25n
PFN0cnVjdHVyZT4gcHJvcGVydHlUYWJsZVN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVj
dHVyZT4gbWFwRGF0YVN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gd2Vha01h
cERhdGFTdHJ1Y3R1cmU7CisgICAgICAgIFN0cm9uZzxKU0NlbGw+IGl0ZXJhdGlvblRlcm1pbmF0
b3I7CiAKICAgICAgICAgSWRlbnRpZmllclRhYmxlKiBpZGVudGlmaWVyVGFibGU7CiAgICAgICAg
IENvbW1vbklkZW50aWZpZXJzKiBwcm9wZXJ0eU5hbWVzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4YzQxN2ZhZDIxYjVl
NTNjYTVmY2RmNTYyNzI2NDU2MjBjYTc5OTMuLmJjMDQ4MTc2NWVmYzYwNTQ3NzYzMDIyNzMzMGRh
ZDZmMjBkN2QxMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0xMC0wOCAgT2xpdmVyIEh1
bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgZm9yLW9mIGl0ZXJhdGlv
biB0byBpbi1iYW5kIHNpZ25hbGxpbmcgc28gd2UgY2FuIHRyaXZpYWxseSBhdm9pZCB1bm5lY2Vz
c2FyeSBvYmplY3QgYWxsb2NhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIyNTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3RzIHRvIHJlZmxlY3Qgb3VyIG5vbi1leHBvc3VyZSBv
ZiAubmV4dCgpCisKKyAgICAgICAgKiBqcy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9hcnJheS1pdGVyYXRvcnMuanM6CisKIDIwMTMtMTAt
MDggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuIEFkZGluZyBJbWFnZU9ubHlGYWlsdXJlIGV4cGVjdGF0aW9ucyB0
bzoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5LWl0ZXJhdG9ycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheS1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDk4
MTllYzBmNWRkMjhiNDVkYjM3YTQ4MjgzNGY3NjYzYWZkMTEyOWUuLjUxZDc1YWFlNWMwYWRkNzE4
ZmRmZmQ5MTgwN2JmODVlMjk2NWMwY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2FycmF5
LWl0ZXJhdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvYXJyYXktaXRlcmF0
b3JzLWV4cGVjdGVkLnR4dApAQCAtMTAsNyArMTAsNiBAQCBQQVNTIGtleSBpcyAzCiBQQVNTIGtl
eSBpcyA0CiBQQVNTIGtleSBpcyA1CiBQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgotUEFTUyBr
ZXlzLm5leHQoKS52YWx1ZSBpcyB1bmRlZmluZWQuCiBQQVNTIHZhbHVlIGlzIDEKIFBBU1MgdmFs
dWUgaXMgMgogUEFTUyB2YWx1ZSBpcyAzCkBAIC0xOCw3ICsxNyw2IEBAIFBBU1MgdmFsdWUgaXMg
NAogUEFTUyB2YWx1ZSBpcyA1CiBQQVNTIHZhbHVlIGlzIDYKIFBBU1MgdGVzdEFycmF5Lmxlbmd0
aCBpcyA2Ci1QQVNTIHZhbHVlcy5uZXh0KCkudmFsdWUgaXMgdW5kZWZpbmVkLgogUEFTUyB2YWx1
ZSBpcyB0ZXN0QXJyYXlba2V5XQogUEFTUyBrZXkgaXMgMAogUEFTUyB2YWx1ZSBpcyAxCkBAIC0z
OCw3ICszNiw2IEBAIFBBU1MgdmFsdWUgaXMgdGVzdEFycmF5W2tleV0KIFBBU1Mga2V5IGlzIDUK
IFBBU1MgdmFsdWUgaXMgNgogUEFTUyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDYKLVBBU1MgZW50cmll
cy5uZXh0KCkudmFsdWUgaXMgdW5kZWZpbmVkLgogUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5
XQogUEFTUyBrZXkgaXMgaQogUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQpAQCAtNTgsNyAr
NTUsNiBAQCBQQVNTIGtleSBpcyBpCiBQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVtrZXldCiBQQVNT
IGtleSBpcyBpCiBQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgOQotUEFTUyBlbnRyaWVzLm5leHQo
KS52YWx1ZSBpcyB1bmRlZmluZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9h
cnJheS1pdGVyYXRvcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktaXRl
cmF0b3JzLmpzCmluZGV4IDdjY2I3ODkzODg5MjE0MmY5YmMzMjcwYmI0MGE1NmNjZWVkMTg4OGQu
LmE0Nzc0MjdjZDY0N2ZiYTMyMTBmYmFkNjc2MmU4ZTQwZjZjYTc2Y2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJheS1pdGVyYXRvcnMuanMKKysrIGIvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LWl0ZXJhdG9ycy5qcwpAQCAtNiw1OCArNiwzNiBA
QCBkZXNjcmlwdGlvbigKIHZhciB0ZXN0QXJyYXkgPSBbMSwyLDMsNCw1LDZdCiB2YXIga2V5cyA9
IHRlc3RBcnJheS5rZXlzKCk7CiB2YXIgaSA9IDA7Ci13aGlsZSAodHJ1ZSkgewotICAgIHZhciB7
ZG9uZSwgdmFsdWU6IGtleX0gPSBrZXlzLm5leHQoKTsKLSAgICBpZiAoZG9uZSkKLSAgICAgICAg
YnJlYWs7Citmb3IgKHZhciBrZXkgb2Yga2V5cykgewogICAgIHNob3VsZEJlKCJrZXkiLCBTdHJp
bmcoaSkpCiAgICAgaSsrOwogfQogCiBzaG91bGRCZSgidGVzdEFycmF5Lmxlbmd0aCIsIFN0cmlu
ZyhpKSkKIAotc2hvdWxkQmVVbmRlZmluZWQoImtleXMubmV4dCgpLnZhbHVlIikKLQogdmFyIHZh
bHVlcyA9IHRlc3RBcnJheS52YWx1ZXMoKTsKIHZhciBpID0gMDsKLXdoaWxlICh0cnVlKSB7Ci0g
ICAgdmFyIHtkb25lLCB2YWx1ZX0gPSB2YWx1ZXMubmV4dCgpOwotICAgIGlmIChkb25lKQotICAg
ICAgICBicmVhazsKK2ZvciAodmFyIHZhbHVlIG9mIHZhbHVlcykgewogICAgIGkrKzsKICAgICBz
aG91bGRCZSgidmFsdWUiLCBTdHJpbmcoaSkgKQogfQogCiBzaG91bGRCZSgidGVzdEFycmF5Lmxl
bmd0aCIsIFN0cmluZyhpKSkKIAotc2hvdWxkQmVVbmRlZmluZWQoInZhbHVlcy5uZXh0KCkudmFs
dWUiKQotCiB2YXIgZW50cmllcyA9IHRlc3RBcnJheS5lbnRyaWVzKCk7CiB2YXIgaSA9IDA7Ci1k
byB7Ci0gICAgdmFyIHtkb25lLCB2YWx1ZTogZW50cnl9ID0gZW50cmllcy5uZXh0KCk7Ci0gICAg
aWYgKGRvbmUpCi0gICAgICAgIGJyZWFrOwotICAgIHZhciBba2V5LCB2YWx1ZV0gPSBlbnRyeTsK
K2ZvciAodmFyIFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7CiAgICAgc2hvdWxkQmUoInZhbHVl
IiwgInRlc3RBcnJheVtrZXldIikKICAgICBzaG91bGRCZSgia2V5IiwgU3RyaW5nKGkpKQogICAg
IGkrKwogICAgIHNob3VsZEJlKCJ2YWx1ZSIsIFN0cmluZyhpKSkKLX0gd2hpbGUgKCFkb25lKTsK
K30KIAogc2hvdWxkQmUoInRlc3RBcnJheS5sZW5ndGgiLCBTdHJpbmcoaSkpCiAKLXNob3VsZEJl
VW5kZWZpbmVkKCJlbnRyaWVzLm5leHQoKS52YWx1ZSIpCi0KLQotCiB2YXIgZW50cmllcyA9IHRl
c3RBcnJheS5lbnRyaWVzKCk7CiB2YXIgaSA9IDA7Ci1kbyB7Ci0gICAgdmFyIHtkb25lLCB2YWx1
ZTogZW50cnl9ID0gZW50cmllcy5uZXh0KCk7Ci0gICAgaWYgKGRvbmUpCi0gICAgICAgIGJyZWFr
OwotICAgIHZhciBba2V5LCB2YWx1ZV0gPSBlbnRyeTsKK2ZvciAodmFyIFtrZXksIHZhbHVlXSBv
ZiBlbnRyaWVzKSB7CiAgICAgc2hvdWxkQmUoInZhbHVlIiwgInRlc3RBcnJheVtrZXldIikKICAg
ICBzaG91bGRCZSgia2V5IiwgImkiKQogICAgIGkrKwpAQCAtNjksOCArNDcsNiBAQCBkbyB7CiAg
ICAgICAgIGRlbGV0ZSB0ZXN0QXJyYXlbNF0KICAgICBpZiAoaSA9PSA1KQogICAgICAgICB0ZXN0
QXJyYXlbNF0gPSA1Ci19IHdoaWxlICghZG9uZSk7Cit9CiBzaG91bGRCZSgidGVzdEFycmF5Lmxl
bmd0aCIsIFN0cmluZyhpKSkKIAotc2hvdWxkQmVVbmRlZmluZWQoImVudHJpZXMubmV4dCgpLnZh
bHVlIikKLQo=
</data>
<flag name="review"
          id="236134"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>