<?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>101174</bug_id>
          
          <creation_ts>2012-11-04 19:44:34 -0800</creation_ts>
          <short_desc>Reduce the verbosity of referring to QNaN in JavaScriptCore</short_desc>
          <delta_ts>2012-11-05 10:16:02 -0800</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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>101231</blocked>
    
    <blocked>98606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758190</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-04 19:44:34 -0800</bug_when>
    <thetext>We use quiet NaNs (QNaNs) a lot, and currently the way we refer to them in the code is std::numeric_limits&lt;double&gt;::quiet_NaN().  This is kind of verbose.  Instead, we should be able to just say QNaN for short.

This will become even more beneficial for https://bugs.webkit.org/show_bug.cgi?id=98606, which has to use NaNs a lot more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758194</commentid>
    <comment_count>1</comment_count>
      <attachid>172257</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-04 20:01:00 -0800</bug_when>
    <thetext>Created attachment 172257
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758594</commentid>
    <comment_count>2</comment_count>
      <attachid>172257</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-05 09:02:17 -0800</bug_when>
    <thetext>Comment on attachment 172257
the patch

WTF&apos;s DateMath.cpp could really use this. Should the #define go in WTF?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758644</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 10:11:38 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 172257 [details])
&gt; WTF&apos;s DateMath.cpp could really use this. Should the #define go in WTF?

I will make that move in a separate patch.  I want to make sure that this doesn&apos;t break anyone&apos;s builds first, due to the risk of namespace pollution (some dependent library on some platforms might already be defining it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758651</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-05 10:16:02 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/133493</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172257</attachid>
            <date>2012-11-04 20:01:00 -0800</date>
            <delta_ts>2012-11-05 09:02:16 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>qnan.patch</filename>
            <type>text/plain</type>
            <size>15284</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzNDMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDEyLTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVkdWNlIHRoZSB2ZXJib3NpdHkgb2YgcmVmZXJyaW5nIHRvIFFOYU4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZXMgYSAjZGVmaW5lIFFO
YU4gaW4gSlNWYWx1ZS5oLCBhbmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIHVzZXMgb2YKKyAgICAg
ICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB3aXRoIFFOYU4uCisK
KyAgICAgICAgKiBBUEkvSlNWYWx1ZVJlZi5jcHA6CisgICAgICAgIChKU1ZhbHVlTWFrZU51bWJl
cik6CisgICAgICAgIChKU1ZhbHVlVG9OdW1iZXIpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRGbG9hdFR5cGVkQXJyYXlHZXRCeVZhbCk6
CisgICAgICAgICogcnVudGltZS9DYWNoZWRUcmFuc2NlbmRlbnRhbEZ1bmN0aW9uLmg6CisgICAg
ICAgIChKU0M6OkNhY2hlZFRyYW5zY2VuZGVudGFsRnVuY3Rpb246OmluaXRpYWxpemUpOgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0RGF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oOgorICAgICAg
ICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpEYXRlSW5zdGFuY2VEYXRhKToKKyAgICAgICAgKEpT
Qzo6RGF0ZUluc3RhbmNlQ2FjaGU6OnJlc2V0KToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOjpk
ZWZhdWx0VmFsdWUpOgorICAgICAgICAoSlNDOjpUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmRl
ZmF1bHRWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKiBydW50aW1lL0pTRGF0ZU1h
dGguY3BwOgorICAgICAgICAoSlNDOjpwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0
ZXJzKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRh
OjpyZXNldERhdGVDYWNoZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OnBhcnNlSW50KToKKyAgICAgICAgKEpTQzo6anNTdHJE
ZWNpbWFsTGl0ZXJhbCk6CisgICAgICAgIChKU0M6OnRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6
anNUb051bWJlcik6CisgICAgICAgIChKU0M6OnBhcnNlRmxvYXQpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvTnVtYmVyU2xvd0Nhc2Up
OgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KiBydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OmpzTmFOKToK
KyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjptYXRoUHJv
dG9GdW5jTWF4KToKKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY01pbik6CisKIDIwMTItMTEt
MDMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBCYXNlbGluZSBK
SVQgc2hvdWxkIHVzZSBzdHJ1Y3R1cmUgd2F0Y2hwb2ludHMgd2hlbmV2ZXIgcG9zc2libGUKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAkocmV2aXNpb24gMTMz
NDI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjE3LDcgKzIxNyw3IEBAIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIo
SlNDb250ZXh0UmUKICAgICAvLyBnZW5lcmF0ZWQgaW50ZXJuYWxseSB0byBKYXZhU2NyaXB0Q29y
ZSBuYXR1cmFsbHkgaGF2ZSB0aGF0IHJlcHJlc2VudGF0aW9uLAogICAgIC8vIGJ1dCBhbiBleHRl
cm5hbCBOYU4gbWlnaHQgbm90LgogICAgIGlmIChpc25hbih2YWx1ZSkpCi0gICAgICAgIHZhbHVl
ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgdmFs
dWUgPSBRTmFOOwogCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIGpzTnVtYmVyKHZhbHVlKSk7CiB9
CkBAIC0yODIsNyArMjgyLDcgQEAgZG91YmxlIEpTVmFsdWVUb051bWJlcihKU0NvbnRleHRSZWYg
Y3R4LAogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRv
UmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRp
b24oKTsKLSAgICAgICAgbnVtYmVyID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKKyAgICAgICAgbnVtYmVyID0gUU5hTjsKICAgICB9CiAgICAgcmV0dXJuIG51bWJl
cjsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCShyZXZpc2lvbiAxMzM0MjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQxNiw3ICsyNDE2LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbAogICAgIGNhc2UgODog
ewogICAgICAgICBtX2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwgcmVzdWx0
UmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90TmFOID0gbV9qaXQuYnJhbmNo
RG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwgcmVzdWx0UmVnLCByZXN1bHRSZWcp
OwotICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIE5hTiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgTmFOID0g
UU5hTjsKICAgICAgICAgbV9qaXQubG9hZERvdWJsZSgmTmFOLCByZXN1bHRSZWcpOwogICAgICAg
ICBub3ROYU4ubGluaygmbV9qaXQpOwogICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAxMzM0
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTYxMiw3ICsxNjEyLDcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVt
aXRGbG9hdFR5cGVkQXJyYXlHZQogICAgIGNhc2UgODogewogICAgICAgICBsb2FkRG91YmxlKEJh
c2VJbmRleChiYXNlLCBwcm9wZXJ0eSwgVGltZXNFaWdodCksIGZwUmVnVDApOwogICAgICAgICBK
dW1wIG5vdE5hTiA9IGJyYW5jaERvdWJsZShEb3VibGVFcXVhbCwgZnBSZWdUMCwgZnBSZWdUMCk7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgTmFOID0gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBOYU4gPSBR
TmFOOwogICAgICAgICBsb2FkRG91YmxlKCZOYU4sIGZwUmVnVDApOwogICAgICAgICBub3ROYU4u
bGluayh0aGlzKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DYWNoZWRUcmFuc2NlbmRlbnRhbEZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHJhbnNjZW5kZW50YWxGdW5jdGlvbi5o
CShyZXZpc2lvbiAxMzM0MjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNo
ZWRUcmFuc2NlbmRlbnRhbEZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDggKzc0LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgLy8gTGF6aWx5IGFsbG9jYXRlIHRoZSB0YWJsZSwgcG9wdWxh
dGUgd2l0aCBOYU4tPk5hTiBtYXBwaW5nLgogICAgICAgICBtX2NhY2hlID0gc3RhdGljX2Nhc3Q8
Q2FjaGVFbnRyeSo+KGZhc3RNYWxsb2Moc19jYWNoZVNpemUgKiBzaXplb2YoQ2FjaGVFbnRyeSkp
KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCB4ID0gMDsgeCA8IHNfY2FjaGVTaXplOyArK3gpIHsK
LSAgICAgICAgICAgIG1fY2FjaGVbeF0ub3BlcmFuZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgICAgICAgICBtX2NhY2hlW3hdLnJlc3VsdCA9IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgICAgICBtX2NhY2hl
W3hdLm9wZXJhbmQgPSBRTmFOOworICAgICAgICAgICAgbV9jYWNoZVt4XS5yZXN1bHQgPSBRTmFO
OwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDEzMzQyOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMSw3ICsxMzEsNyBAQCBKU09iamVjdCogY29uc3RydWN0RGF0ZShFeGVjU3RhdGUq
IGV4ZWMsCiAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA1ICYmICFpc2Zpbml0ZShkb3VibGVB
cmd1bWVudHNbNF0pKQogICAgICAgICAgICAgfHwgKG51bUFyZ3MgPj0gNiAmJiAhaXNmaW5pdGUo
ZG91YmxlQXJndW1lbnRzWzVdKSkKICAgICAgICAgICAgIHx8IChudW1BcmdzID49IDcgJiYgIWlz
ZmluaXRlKGRvdWJsZUFyZ3VtZW50c1s2XSkpKQotICAgICAgICAgICAgdmFsdWUgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICAgICAgdmFsdWUgPSBR
TmFOOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEdyZWdvcmlhbkRhdGVUaW1lIHQ7CiAg
ICAgICAgICAgICBpbnQgeWVhciA9IEpTQzo6dG9JbnQzMihkb3VibGVBcmd1bWVudHNbMF0pOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VD
YWNoZS5oCShyZXZpc2lvbiAxMzM0MjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2VDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw4ICs0NSw4IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRGF0ZUluc3RhbmNlRGF0YSgp
Ci0gICAgICAgICAgICA6IG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyhzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKQotICAgICAgICAgICAgLCBtX2dyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSkKKyAgICAgICAgICAgIDogbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKFFO
YU4pCisgICAgICAgICAgICAsIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyhRTmFO
KQogICAgICAgICB7CiAgICAgICAgIH0KICAgICB9OwpAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCByZXNldCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY2FjaGVTaXplOyArK2kpCi0gICAgICAgICAgICAgICAgbV9j
YWNoZVtpXS5rZXkgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwor
ICAgICAgICAgICAgICAgIG1fY2FjaGVbaV0ua2V5ID0gUU5hTjsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgRGF0ZUluc3RhbmNlRGF0YSogYWRkKGRvdWJsZSBkKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAJKHJl
dmlzaW9uIDEzMzQyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIEpTVmFsdWUgSW50
ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6ZGVmYXUKIHsKICAgICBpZiAoaGludCA9PSBQcmVmZXJT
dHJpbmcpCiAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgU3RyaW5nKEFT
Q0lJTGl0ZXJhbCgiSmF2YVNjcmlwdCBleGVjdXRpb24gZXhjZWVkZWQgdGltZW91dC4iKSkpOwot
ICAgIHJldHVybiBKU1ZhbHVlKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlKFFOYU4pOwogfQogCiBKU09iamVjdCogY3JlYXRlSW50
ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQpAQCAt
NzUsNyArNzUsNyBAQCBKU1ZhbHVlIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6ZGVmYXVsCiB7
CiAgICAgaWYgKGhpbnQgPT0gUHJlZmVyU3RyaW5nKQogICAgICAgICByZXR1cm4ganNOb250cml2
aWFsU3RyaW5nKGV4ZWMsIFN0cmluZyhBU0NJSUxpdGVyYWwoIkphdmFTY3JpcHQgZXhlY3V0aW9u
IHRlcm1pbmF0ZWQuIikpKTsKLSAgICByZXR1cm4gSlNWYWx1ZShzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZShRTmFOKTsKIH0KIAog
SlNPYmplY3QqIGNyZWF0ZVRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJ
KHJldmlzaW9uIDEzMzQyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzksNyArMjc5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoaXNVbmRl
ZmluZWQoKSk7Ci0gICAgICAgIG51bWJlciA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgICAgIG51bWJlciA9IFFOYU47CiAgICAgICAgIHZhbHVlID0gKnRo
aXM7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCShyZXZpc2lvbiAxMzM0MjgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQ3LDcgKzI0Nyw3IEBAIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFy
YWMKICAgICBpbnQgb2Zmc2V0OwogICAgIGRvdWJsZSBtcyA9IFdURjo6cGFyc2VEYXRlRnJvbU51
bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhkYXRlU3RyaW5nLCBoYXZlVFosIG9mZnNldCk7CiAgICAg
aWYgKGlzbmFuKG1zKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCk7CisgICAgICAgIHJldHVybiBRTmFOOwogCiAgICAgLy8gZmFsbCBiYWNr
IHRvIGxvY2FsIHRpbWV6b25lCiAgICAgaWYgKCFoYXZlVFopIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gMTMzNDI4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTcwLDcgKzE3MCw3IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRh
KEdsb2JhbERhdGFUeXAKICAgICAsIHNpemVPZkxhc3RTY3JhdGNoQnVmZmVyKDApCiAjZW5kaWYK
ICAgICAsIGR5bmFtaWNHbG9iYWxPYmplY3QoMCkKLSAgICAsIGNhY2hlZFVUQ09mZnNldChzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKQorICAgICwgY2FjaGVkVVRDT2Zm
c2V0KFFOYU4pCiAgICAgLCBtX2VuYWJsZWRQcm9maWxlcigwKQogICAgICwgbV9yZWdFeHBDYWNo
ZShuZXcgUmVnRXhwQ2FjaGUodGhpcykpCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQpAQCAt
NDAwLDEwICs0MDAsMTAgQEAgSlNHbG9iYWxEYXRhOjpDbGllbnREYXRhOjp+Q2xpZW50RGF0YSgp
CiAKIHZvaWQgSlNHbG9iYWxEYXRhOjpyZXNldERhdGVDYWNoZSgpCiB7Ci0gICAgY2FjaGVkVVRD
T2Zmc2V0ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBj
YWNoZWRVVENPZmZzZXQgPSBRTmFOOwogICAgIGRzdE9mZnNldENhY2hlLnJlc2V0KCk7CiAgICAg
Y2FjaGVkRGF0ZVN0cmluZyA9IFN0cmluZygpOwotICAgIGNhY2hlZERhdGVTdHJpbmdWYWx1ZSA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgY2FjaGVkRGF0
ZVN0cmluZ1ZhbHVlID0gUU5hTjsKICAgICBkYXRlSW5zdGFuY2VDYWNoZS5yZXNldCgpOwogfQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxMzM0MjgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgZG91YmxlIHBhcnNlSW50KGNvbnN0IFN0
cmluZyYgcywgCiAKICAgICAvLyA4LmEgSWYgUiA8IDIgb3IgUiA+IDM2LCB0aGVuIHJldHVybiBO
YU4uCiAgICAgaWYgKHJhZGl4IDwgMiB8fCByYWRpeCA+IDM2KQotICAgICAgICByZXR1cm4gc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0dXJuIFFO
YU47CiAKICAgICAvLyAxMy4gTGV0IG1hdGhJbnQgYmUgdGhlIG1hdGhlbWF0aWNhbCBpbnRlZ2Vy
IHZhbHVlIHRoYXQgaXMgcmVwcmVzZW50ZWQgYnkgWiBpbiByYWRpeC1SIG5vdGF0aW9uLCB1c2lu
ZyB0aGUgbGV0dGVycwogICAgIC8vICAgICBBLVogYW5kIGEteiBmb3IgZGlnaXRzIHdpdGggdmFs
dWVzIDEwIHRocm91Z2ggMzUuIChIb3dldmVyLCBpZiBSIGlzIDEwIGFuZCBaIGNvbnRhaW5zIG1v
cmUgdGhhbiAyMCBzaWduaWZpY2FudApAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBkb3VibGUg
cGFyc2VJbnQoY29uc3QgU3RyaW5nJiBzLCAKIAogICAgIC8vIDEyLiBJZiBaIGlzIGVtcHR5LCBy
ZXR1cm4gTmFOLgogICAgIGlmICghc2F3RGlnaXQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1cm4gUU5hTjsKIAog
ICAgIC8vIEFsdGVybmF0ZSBjb2RlIHBhdGggZm9yIGNlcnRhaW4gbGFyZ2UgbnVtYmVycy4KICAg
ICBpZiAobnVtYmVyID49IG1hbnRpc3NhT3ZlcmZsb3dMb3dlckJvdW5kKSB7CkBAIC0zOTcsNyAr
Mzk3LDcgQEAgc3RhdGljIGRvdWJsZSBqc1N0ckRlY2ltYWxMaXRlcmFsKGNvbnN0IAogICAgIH0K
IAogICAgIC8vIE5vdCBhIG51bWJlci4KLSAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICByZXR1cm4gUU5hTjsKIH0KIAogdGVtcGxhdGUgPHR5
cGVuYW1lIENoYXJUeXBlPgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBkb3VibGUgdG9Eb3Vi
bGUoY29uc3QgQ2hhclR5cGUqIGMKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAo
Y2hhcmFjdGVycyAhPSBlbmRDaGFyYWN0ZXJzKQotICAgICAgICByZXR1cm4gc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0dXJuIFFOYU47CiAgICAg
CiAgICAgcmV0dXJuIG51bWJlcjsKIH0KQEAgLTQ0Myw3ICs0NDMsNyBAQCBkb3VibGUganNUb051
bWJlcihjb25zdCBTdHJpbmcmIHMpCiAgICAgICAgICAgICByZXR1cm4gYyAtICcwJzsKICAgICAg
ICAgaWYgKGlzU3RyV2hpdGVTcGFjZShjKSkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAg
ICAgcmV0dXJuIFFOYU47CiAgICAgfQogCiAgICAgaWYgKHMuaXM4Qml0KCkpCkBAIC00NTksNyAr
NDU5LDcgQEAgc3RhdGljIGRvdWJsZSBwYXJzZUZsb2F0KGNvbnN0IFN0cmluZyYgcwogICAgICAg
ICBVQ2hhciBjID0gc1swXTsKICAgICAgICAgaWYgKGlzQVNDSUlEaWdpdChjKSkKICAgICAgICAg
ICAgIHJldHVybiBjIC0gJzAnOwotICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0dXJuIFFOYU47CiAgICAgfQogCiAgICAg
aWYgKHMuaXM4Qml0KCkpIHsKQEAgLTQ3NCw3ICs0NzQsNyBAQCBzdGF0aWMgZG91YmxlIHBhcnNl
RmxvYXQoY29uc3QgU3RyaW5nJiBzCiAKICAgICAgICAgLy8gRW1wdHkgc3RyaW5nLgogICAgICAg
ICBpZiAoZGF0YSA9PSBlbmQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgICAgIHJldHVybiBRTmFOOwogCiAgICAg
ICAgIHJldHVybiBqc1N0ckRlY2ltYWxMaXRlcmFsKGRhdGEsIGVuZCk7CiAgICAgfQpAQCAtNDkw
LDcgKzQ5MCw3IEBAIHN0YXRpYyBkb3VibGUgcGFyc2VGbG9hdChjb25zdCBTdHJpbmcmIHMKIAog
ICAgIC8vIEVtcHR5IHN0cmluZy4KICAgICBpZiAoZGF0YSA9PSBlbmQpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1
cm4gUU5hTjsKIAogICAgIHJldHVybiBqc1N0ckRlY2ltYWxMaXRlcmFsKGRhdGEsIGVuZCk7CiB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAkocmV2aXNp
b24gMTMzNDI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgZG91YmxlIEpTVmFsdWU6OnRvTnVtYmVy
U2xvd0Nhc2UoRXhlY1N0YQogICAgICAgICByZXR1cm4gYXNDZWxsKCktPnRvTnVtYmVyKGV4ZWMp
OwogICAgIGlmIChpc1RydWUoKSkKICAgICAgICAgcmV0dXJuIDEuMDsKLSAgICByZXR1cm4gaXNV
bmRlZmluZWQoKSA/IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgOiAw
OyAvLyBudWxsIGFuZCBmYWxzZSBib3RoIGNvbnZlcnQgdG8gMC4KKyAgICByZXR1cm4gaXNVbmRl
ZmluZWQoKSA/IFFOYU4gOiAwOyAvLyBudWxsIGFuZCBmYWxzZSBib3RoIGNvbnZlcnQgdG8gMC4K
IH0KIAogSlNPYmplY3QqIEpTVmFsdWU6OnRvT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAkocmV2aXNpb24gMTMzNDI4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICsz
NSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorLy8gVGhpcyBpcyB1c2VkIGEgbG90IHRocm91
Z2hvdXQgSmF2YVNjcmlwdENvcmUgZm9yIGV2ZXJ5dGhpbmcgZnJvbSB2YWx1ZSBib3hpbmcgdG8g
bWFya2luZworLy8gdmFsdWVzIGFzIGJlaW5nIG1pc3NpbmcsIHNvIGl0IGlzIHVzZWZ1bCB0byBo
YXZlIGl0IGFiYnJldmlhdGVkLgorI2RlZmluZSBRTmFOIChzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpKQorCiAgICAgY2xhc3MgRXhlY1N0YXRlOwogICAgIGNsYXNzIEpT
Q2VsbDsKICAgICBjbGFzcyBKU0dsb2JhbERhdGE7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhbHVlSW5saW5lTWV0aG9kcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmgJKHJldmlzaW9uIDEz
MzQyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRo
b2RzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBpbmxpbmUgSlNWYWx1ZSBqc05hTigpCiAgICAgewotICAgICAgICByZXR1cm4gSlNWYWx1
ZShzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWUoUU5hTik7CiAgICAgfQogCiAgICAgaW5saW5lIEpTVmFsdWU6OkpTVmFsdWUo
Y2hhciBpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5jcHAJKHJldmlzaW9uIDEzMzQyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdQogICAgIGZvciAodW5zaWduZWQgayA9
IDA7IGsgPCBhcmdzQ291bnQ7ICsraykgewogICAgICAgICBkb3VibGUgdmFsID0gZXhlYy0+YXJn
dW1lbnQoaykudG9OdW1iZXIoZXhlYyk7CiAgICAgICAgIGlmIChpc25hbih2YWwpKSB7Ci0gICAg
ICAgICAgICByZXN1bHQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigp
OworICAgICAgICAgICAgcmVzdWx0ID0gUU5hTjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGlmICh2YWwgPiByZXN1bHQgfHwgKHZhbCA9PSAwICYmIHJlc3VsdCA9PSAw
ICYmICFzaWduYml0KHZhbCkpKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWF0aFByb3RvRnUKICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwgYXJn
c0NvdW50OyArK2spIHsKICAgICAgICAgZG91YmxlIHZhbCA9IGV4ZWMtPmFyZ3VtZW50KGspLnRv
TnVtYmVyKGV4ZWMpOwogICAgICAgICBpZiAoaXNuYW4odmFsKSkgewotICAgICAgICAgICAgcmVz
dWx0ID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IFFOYU47CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBpZiAodmFsIDwgcmVzdWx0IHx8ICh2YWwgPT0gMCAmJiByZXN1bHQgPT0gMCAmJiBzaWduYml0
KHZhbCkpKQo=
</data>
<flag name="review"
          id="186490"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>