<?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>64654</bug_id>
          
          <creation_ts>2011-07-16 14:15:56 -0700</creation_ts>
          <short_desc>DFG JIT compare/branch code emits is-integer tests even when a value is definitely not an integer</short_desc>
          <delta_ts>2011-07-16 18:48:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>438172</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-16 14:15:56 -0700</bug_when>
    <thetext>The DFG JIT&apos;s support for comparisons and branching may emit tests to see if the operands are integers.  If they are, the comparison can be done more quickly by doing an Int32 compare.  But in some cases, the compiler knows statically that one or both of the operands are definitely not integers.  In that case, the JIT should always emit a slow call and omit the unnecessary is-int test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438173</commentid>
    <comment_count>1</comment_count>
      <attachid>101098</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-16 14:22:06 -0700</bug_when>
    <thetext>Created attachment 101098
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438174</commentid>
    <comment_count>2</comment_count>
      <attachid>101099</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-16 14:23:27 -0700</bug_when>
    <thetext>Created attachment 101099
the patch (fix Platform.h)

Previous patch accidentally had a change to Platform.h that it should not have had.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438175</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-16 14:24:00 -0700</bug_when>
    <thetext>Attachment 101098 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:437:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438176</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-16 14:24:55 -0700</bug_when>
    <thetext>Attachment 101099 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:437:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438177</commentid>
    <comment_count>5</comment_count>
      <attachid>101100</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-16 14:26:28 -0700</bug_when>
    <thetext>Created attachment 101100
the patch (fix style)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438229</commentid>
    <comment_count>6</comment_count>
      <attachid>101100</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-16 18:47:58 -0700</bug_when>
    <thetext>Comment on attachment 101100
the patch (fix style)

Clearing flags on attachment: 101100

Committed r91160: &lt;http://trac.webkit.org/changeset/91160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438230</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-16 18:48:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101098</attachid>
            <date>2011-07-16 14:22:06 -0700</date>
            <delta_ts>2011-07-16 14:23:27 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>notint_patch_1.diff</filename>
            <type>text/plain</type>
            <size>12536</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDctMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIGNvbXBhcmUvYnJhbmNoIGNvZGUgZW1pdHMgaXMtaW50ZWdlciB0ZXN0cyBldmVuIHdo
ZW4gYSB2YWx1ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRo
ZSBpc0tub3duTm90SW50ZWdlcigpIG1ldGhvZCwgd2hpY2ggcmV0dXJucyB0cnVlIGlmIGEgbm9k
ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyIGFuZCB3aWxsIGFsd2F5cyBm
YWlsIGFueSBpcy1pbnRlZ2VyIHRlc3QuICBUaGVuCisgICAgICAgIG1vZGlmaWVkIHRoZSBjb21w
YXJlIGFuZCBicmFuY2ggY29kZSB0byB1c2UgdGhpcyBtZXRob2Q7IGlmIGl0IHJldHVybnMKKyAg
ICAgICAgdHJ1ZSB0aGVuIGlzLWludCB0ZXN0cyBhcmUgb21pdHRlZCBhbmQgdGhlIGNvbXBpbGVy
IGFsd2F5cyBlbWl0cyBhIHNsb3cKKyAgICAgICAgY2FsbC4KKworICAgICAgICAqIGRmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9y
Ojppc0tub3duTm90SW50ZWdlcik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRv
cjo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaCk6CisgICAgICAgIChKU0M6OkRGRzo6SklU
Q29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlQ29tcGFyZSk6Cisg
ICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
YXJlKToKKwogMjAxMS0wNy0xNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCB0aGUgYnVpbGQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDkxMTUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzY1LDYgKzM2NSwxNyBAQCBib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25vd25OdW1lcmlj
KE5vCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25v
d25Ob3RJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5kZXgpCit7CisgICAgTm9kZSYgbm9kZSA9IG1f
aml0LmdyYXBoKClbbm9kZUluZGV4XTsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gbm9kZS52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9
IG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXTsKKyAgICAKKyAgICByZXR1cm4gKGlu
Zm8ucmVnaXN0ZXJGb3JtYXQoKSB8IERhdGFGb3JtYXRKUykgPT0gRGF0YUZvcm1hdEpTRG91Ymxl
CisgICAgICAgIHx8IChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgfCBEYXRhRm9ybWF0SlMpID09IERh
dGFGb3JtYXRKU0NlbGwKKyAgICAgICAgfHwgKG5vZGUuaXNDb25zdGFudCgpICYmICF2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpLmlzSW50MzIoKSk7Cit9CisKIEpJVENvbXBpbGVyOjpDYWxs
IEpJVENvZGVHZW5lcmF0b3I6OmNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyBy
ZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNs
b3dQYXRoVGFyZ2V0LCBOb2RlVHlwZSBub2RlVHlwZSkKIHsKICAgICBHUFJSZWcgc2NyYXRjaEdQ
UjsKQEAgLTUzMSw4OSArNTQyLDExNiBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1
bGF0aXZlUGVlCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBh
cmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICAKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMs
IGFyZzIpOwotICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAgCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgIAotICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDEoKSkpCi0gICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBhcmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQot
ICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgCi0g
ICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaDMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIpLCB0YWtl
bik7Ci0gICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSgpKSB8fCAhaXNL
bm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1
bXAoKSwgbm90VGFrZW4pOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgp
KSB8fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOworCisgICAgICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgICAgIHNsb3dQYXRoLmxp
bmsoJm1faml0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0
R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaFRl
c3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQUiksIHRha2VuKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGFyZzIpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgIAotICAgICAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhyZXN1bHRHUFIpOwotICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMUdQ
UiwgYXJnMkdQUik7Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soaGVscGVyRnVuY3Rpb24pOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwotICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CisgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkp
CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvdywgYXJnMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Cisg
ICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJn
MkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgCisgICAgICAgIGFk
ZEJyYW5jaChtX2ppdC5icmFuY2gzMihjb25kLCBhcmcxR1BSLCBhcmcyR1BSKSwgdGFrZW4pOwor
ICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpIHx8ICFpc0tu
b3duSW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICAgICAgYWRkQnJhbmNoKG1faml0
Lmp1bXAoKSwgbm90VGFrZW4pOworICAgIAorICAgICAgICAgICAgc2xvd1BhdGgubGluaygmbV9q
aXQpOworICAgIAorICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKKyAgICAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KGhlbHBlckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CiAgICAgICAgIAotICAgICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoVGVz
dDgoY2FsbFJlc3VsdENvbmRpdGlvbiwgcmVzdWx0R1BSKSwgdGFrZW4pOworICAgICAgICAgICAg
YWRkQnJhbmNoKG1faml0LmJyYW5jaFRlc3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQ
UiksIHRha2VuKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChub3RUYWtlbiAhPSAobV9i
bG9jayArIDEpKQogICAgICAgICBhZGRCcmFuY2gobV9qaXQuanVtcCgpLCBub3RUYWtlbik7CiB9
CiAKLWJvb2wgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVDb21wYXJlKE5vZGUmIG5v
ZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFpfREZHT3BlcmF0
aW9uX0VKSiBoZWxwZXJGdW5jdGlvbikKK3ZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQog
ewotICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OwotICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7Ci0gICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKLSAgICAgICAgCi0gICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7Ci0gICAgCi0gICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgdXNl
KG5vZGUuY2hpbGQyKCkpOwotICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRl
eDsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAgICAgCiAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlT3Bl
cmFuZCBhcmcyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOwogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJn
MS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgCi0gICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKLSAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwotICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKICAg
ICAKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpKQotICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQ
UiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgaWYgKCFpc0tub3duSW50
ZWdlcihub2RlLmNoaWxkMigpKSkKLSAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgpKSB8
fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICAKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgCisgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1
bHRHUFIpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYXJnMik7
CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgbV9q
aXQuY29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkpCisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQUiwg
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNo
aWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgaGF2ZVJlc3VsdCA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgbV9qaXQu
Y29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CiAgICAgCi0gICAg
ICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihu
b2RlLmNoaWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVSZXN1bHQgPSBtX2ppdC5qdW1wKCk7CisgICAg
CisgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHNldHVw
U3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
ICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGhlbHBlckZ1bmN0aW9uKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAg
IAorICAgICAgICAgICAgbV9qaXQuYW5kUHRyKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0R1BSKTsK
ICAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0g
ICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKLSAgICAgICAgbV9q
aXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhoZWxwZXJGdW5jdGlvbik7
Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
Ci0gICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAg
IGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBt
X2ppdC5hbmRQdHIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5v
cjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAg
ICAgIGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbV9jb21waWxlSW5kZXgpOwogICAgIH0KK30KKworYm9vbCBKSVRDb2RlR2VuZXJhdG9y
Ojpub25TcGVjdWxhdGl2ZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQor
eworICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OworICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7CisgICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgCisgICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7CiAgICAgCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSks
IHJlc3VsdEdQUik7CisgICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgdXNlKG5v
ZGUuY2hpbGQyKCkpOworICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAKLSAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOworICAgIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmQsIGhlbHBlckZ1bmN0aW9uKTsKICAgICAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDE0LDYg
KzQxNCw4IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaXNLbm93bkludGVnZXIoTm9kZUluZGV4
KTsKICAgICBib29sIGlzS25vd25OdW1lcmljKE5vZGVJbmRleCk7CisgICAgCisgICAgYm9vbCBp
c0tub3duTm90SW50ZWdlcihOb2RlSW5kZXgpOwogCiAgICAgLy8gQ2hlY2tzL2FjY2Vzc29ycyBm
b3IgY29uc3RhbnQgdmFsdWVzLgogICAgIGJvb2wgaXNDb25zdGFudChOb2RlSW5kZXggbm9kZUlu
ZGV4KSB7IHJldHVybiBtX2ppdC5pc0NvbnN0YW50KG5vZGVJbmRleCk7IH0KQEAgLTU1NSw2ICs1
NTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYWNoZWRHZXRNZXRob2QoR1BSUmVnIGJhc2VH
UFIsIEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CiAgICAgCiAg
ICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKE5vZGUmLCBOb2RlSW5kZXggYnJh
bmNoTm9kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgWl9ERkdP
cGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKKyAgICB2b2lkIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlv
biwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKICAgICBib29sIG5vblNwZWN1
bGF0aXZlQ29tcGFyZShOb2RlJiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24s
IFpfREZHT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlvbik7CiAgICAgCiAgICAgdm9pZCBlbWl0
QnJhbmNoKE5vZGUmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MTE1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzIsMTYg
KzQzMiwyMSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUmIG5vZGUsCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIC8vIE5vcm1hbCBjYXNlLCBub3QgZnVzZWQg
dG8gYnJhbmNoLgotICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNo
aWxkMSgpKTsKLSAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS5jaGls
ZDIoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEsIG9wMik7Ci0KLSAgICBt
X2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKLQotICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91bGQgdXNl
IGl0IGhlcmUuCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dC5ncHIoKSk7Ci0gICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4
KTsKKyAgICBpZiAoaXNLbm93bk5vdEludGVnZXIobm9kZS5jaGlsZDEoKSkgfHwgaXNLbm93bk5v
dEludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAgICAgbm9uU3BlY3VsYXRpdmVOb25QZWVw
aG9sZUNvbXBhcmUobm9kZSwgY29uZGl0aW9uLCBvcGVyYXRpb24pOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIE5vcm1hbCBjYXNlLCBub3QgZnVzZWQgdG8gYnJhbmNoLgorICAgICAgICBTcGVj
dWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgIFNw
ZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLmNoaWxkMigpKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEsIG9wMik7CisgICAgICAgIAorICAgICAgICBt
X2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKKyAgICAgICAgCisgICAgICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3
ZSBzaG91bGQgdXNlIGl0IGhlcmUuCisgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZh
bHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbV9jb21waWxlSW5kZXgpOworICAgIH0KKyAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDkxMTUy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDM2LDcgKzEwMzYsNyBAQAogI2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQp
ICYmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQogLyogRW5hYmxlZCB3
aXRoIHJlc3RyaWN0aW9ucyB0byBjaXJjdW12ZW50IGtub3duIHBlcmZvcm1hbmNlIHJlZ3Jlc3Np
b25zLiAqLwotI2RlZmluZSBFTkFCTEVfREZHX0pJVF9SRVNUUklDVElPTlMgMQorI2RlZmluZSBF
TkFCTEVfREZHX0pJVF9SRVNUUklDVElPTlMgMAogI2VuZGlmCiAKIC8qIEVuc3VyZSB0aGF0IGVp
dGhlciB0aGUgSklUIG9yIHRoZSBpbnRlcnByZXRlciBoYXMgYmVlbiBlbmFibGVkLiAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101099</attachid>
            <date>2011-07-16 14:23:27 -0700</date>
            <delta_ts>2011-07-16 14:26:28 -0700</delta_ts>
            <desc>the patch (fix Platform.h)</desc>
            <filename>notint_patch_1.diff</filename>
            <type>text/plain</type>
            <size>11973</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDctMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIGNvbXBhcmUvYnJhbmNoIGNvZGUgZW1pdHMgaXMtaW50ZWdlciB0ZXN0cyBldmVuIHdo
ZW4gYSB2YWx1ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRo
ZSBpc0tub3duTm90SW50ZWdlcigpIG1ldGhvZCwgd2hpY2ggcmV0dXJucyB0cnVlIGlmIGEgbm9k
ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyIGFuZCB3aWxsIGFsd2F5cyBm
YWlsIGFueSBpcy1pbnRlZ2VyIHRlc3QuICBUaGVuCisgICAgICAgIG1vZGlmaWVkIHRoZSBjb21w
YXJlIGFuZCBicmFuY2ggY29kZSB0byB1c2UgdGhpcyBtZXRob2Q7IGlmIGl0IHJldHVybnMKKyAg
ICAgICAgdHJ1ZSB0aGVuIGlzLWludCB0ZXN0cyBhcmUgb21pdHRlZCBhbmQgdGhlIGNvbXBpbGVy
IGFsd2F5cyBlbWl0cyBhIHNsb3cKKyAgICAgICAgY2FsbC4KKworICAgICAgICAqIGRmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9y
Ojppc0tub3duTm90SW50ZWdlcik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRv
cjo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaCk6CisgICAgICAgIChKU0M6OkRGRzo6SklU
Q29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlQ29tcGFyZSk6Cisg
ICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
YXJlKToKKwogMjAxMS0wNy0xNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCB0aGUgYnVpbGQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDkxMTUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzY1LDYgKzM2NSwxNyBAQCBib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25vd25OdW1lcmlj
KE5vCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25v
d25Ob3RJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5kZXgpCit7CisgICAgTm9kZSYgbm9kZSA9IG1f
aml0LmdyYXBoKClbbm9kZUluZGV4XTsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gbm9kZS52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9
IG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXTsKKyAgICAKKyAgICByZXR1cm4gKGlu
Zm8ucmVnaXN0ZXJGb3JtYXQoKSB8IERhdGFGb3JtYXRKUykgPT0gRGF0YUZvcm1hdEpTRG91Ymxl
CisgICAgICAgIHx8IChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgfCBEYXRhRm9ybWF0SlMpID09IERh
dGFGb3JtYXRKU0NlbGwKKyAgICAgICAgfHwgKG5vZGUuaXNDb25zdGFudCgpICYmICF2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpLmlzSW50MzIoKSk7Cit9CisKIEpJVENvbXBpbGVyOjpDYWxs
IEpJVENvZGVHZW5lcmF0b3I6OmNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyBy
ZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNs
b3dQYXRoVGFyZ2V0LCBOb2RlVHlwZSBub2RlVHlwZSkKIHsKICAgICBHUFJSZWcgc2NyYXRjaEdQ
UjsKQEAgLTUzMSw4OSArNTQyLDExNiBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1
bGF0aXZlUGVlCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBh
cmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICAKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMs
IGFyZzIpOwotICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAgCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgIAotICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDEoKSkpCi0gICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBhcmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQot
ICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgCi0g
ICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaDMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIpLCB0YWtl
bik7Ci0gICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSgpKSB8fCAhaXNL
bm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1
bXAoKSwgbm90VGFrZW4pOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgp
KSB8fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOworCisgICAgICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgICAgIHNsb3dQYXRoLmxp
bmsoJm1faml0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0
R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaFRl
c3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQUiksIHRha2VuKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGFyZzIpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgIAotICAgICAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhyZXN1bHRHUFIpOwotICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMUdQ
UiwgYXJnMkdQUik7Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soaGVscGVyRnVuY3Rpb24pOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwotICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CisgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkp
CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvdywgYXJnMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Cisg
ICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJn
MkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgCisgICAgICAgIGFk
ZEJyYW5jaChtX2ppdC5icmFuY2gzMihjb25kLCBhcmcxR1BSLCBhcmcyR1BSKSwgdGFrZW4pOwor
ICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpIHx8ICFpc0tu
b3duSW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICAgICAgYWRkQnJhbmNoKG1faml0
Lmp1bXAoKSwgbm90VGFrZW4pOworICAgIAorICAgICAgICAgICAgc2xvd1BhdGgubGluaygmbV9q
aXQpOworICAgIAorICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKKyAgICAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KGhlbHBlckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CiAgICAgICAgIAotICAgICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoVGVz
dDgoY2FsbFJlc3VsdENvbmRpdGlvbiwgcmVzdWx0R1BSKSwgdGFrZW4pOworICAgICAgICAgICAg
YWRkQnJhbmNoKG1faml0LmJyYW5jaFRlc3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQ
UiksIHRha2VuKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChub3RUYWtlbiAhPSAobV9i
bG9jayArIDEpKQogICAgICAgICBhZGRCcmFuY2gobV9qaXQuanVtcCgpLCBub3RUYWtlbik7CiB9
CiAKLWJvb2wgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVDb21wYXJlKE5vZGUmIG5v
ZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFpfREZHT3BlcmF0
aW9uX0VKSiBoZWxwZXJGdW5jdGlvbikKK3ZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQog
ewotICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OwotICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7Ci0gICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKLSAgICAgICAgCi0gICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7Ci0gICAgCi0gICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgdXNl
KG5vZGUuY2hpbGQyKCkpOwotICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRl
eDsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAgICAgCiAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlT3Bl
cmFuZCBhcmcyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOwogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJn
MS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgCi0gICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKLSAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwotICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKICAg
ICAKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpKQotICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQ
UiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgaWYgKCFpc0tub3duSW50
ZWdlcihub2RlLmNoaWxkMigpKSkKLSAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgpKSB8
fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICAKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgCisgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1
bHRHUFIpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYXJnMik7
CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgbV9q
aXQuY29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkpCisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQUiwg
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNo
aWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgaGF2ZVJlc3VsdCA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgbV9qaXQu
Y29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CiAgICAgCi0gICAg
ICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihu
b2RlLmNoaWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVSZXN1bHQgPSBtX2ppdC5qdW1wKCk7CisgICAg
CisgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHNldHVw
U3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
ICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGhlbHBlckZ1bmN0aW9uKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAg
IAorICAgICAgICAgICAgbV9qaXQuYW5kUHRyKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0R1BSKTsK
ICAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0g
ICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKLSAgICAgICAgbV9q
aXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhoZWxwZXJGdW5jdGlvbik7
Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
Ci0gICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAg
IGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBt
X2ppdC5hbmRQdHIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5v
cjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAg
ICAgIGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbV9jb21waWxlSW5kZXgpOwogICAgIH0KK30KKworYm9vbCBKSVRDb2RlR2VuZXJhdG9y
Ojpub25TcGVjdWxhdGl2ZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQor
eworICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OworICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7CisgICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgCisgICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7CiAgICAgCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSks
IHJlc3VsdEdQUik7CisgICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgdXNlKG5v
ZGUuY2hpbGQyKCkpOworICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAKLSAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOworICAgIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmQsIGhlbHBlckZ1bmN0aW9uKTsKICAgICAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDE0LDYg
KzQxNCw4IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaXNLbm93bkludGVnZXIoTm9kZUluZGV4
KTsKICAgICBib29sIGlzS25vd25OdW1lcmljKE5vZGVJbmRleCk7CisgICAgCisgICAgYm9vbCBp
c0tub3duTm90SW50ZWdlcihOb2RlSW5kZXgpOwogCiAgICAgLy8gQ2hlY2tzL2FjY2Vzc29ycyBm
b3IgY29uc3RhbnQgdmFsdWVzLgogICAgIGJvb2wgaXNDb25zdGFudChOb2RlSW5kZXggbm9kZUlu
ZGV4KSB7IHJldHVybiBtX2ppdC5pc0NvbnN0YW50KG5vZGVJbmRleCk7IH0KQEAgLTU1NSw2ICs1
NTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYWNoZWRHZXRNZXRob2QoR1BSUmVnIGJhc2VH
UFIsIEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CiAgICAgCiAg
ICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKE5vZGUmLCBOb2RlSW5kZXggYnJh
bmNoTm9kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgWl9ERkdP
cGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKKyAgICB2b2lkIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlv
biwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKICAgICBib29sIG5vblNwZWN1
bGF0aXZlQ29tcGFyZShOb2RlJiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24s
IFpfREZHT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlvbik7CiAgICAgCiAgICAgdm9pZCBlbWl0
QnJhbmNoKE5vZGUmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MTE1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzIsMTYg
KzQzMiwyMSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUmIG5vZGUsCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIC8vIE5vcm1hbCBjYXNlLCBub3QgZnVzZWQg
dG8gYnJhbmNoLgotICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNo
aWxkMSgpKTsKLSAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS5jaGls
ZDIoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEsIG9wMik7Ci0KLSAgICBt
X2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKLQotICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91bGQgdXNl
IGl0IGhlcmUuCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dC5ncHIoKSk7Ci0gICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4
KTsKKyAgICBpZiAoaXNLbm93bk5vdEludGVnZXIobm9kZS5jaGlsZDEoKSkgfHwgaXNLbm93bk5v
dEludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAgICAgbm9uU3BlY3VsYXRpdmVOb25QZWVw
aG9sZUNvbXBhcmUobm9kZSwgY29uZGl0aW9uLCBvcGVyYXRpb24pOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIE5vcm1hbCBjYXNlLCBub3QgZnVzZWQgdG8gYnJhbmNoLgorICAgICAgICBTcGVj
dWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgIFNw
ZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2RlLmNoaWxkMigpKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEsIG9wMik7CisgICAgICAgIAorICAgICAgICBt
X2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKKyAgICAgICAgCisgICAgICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3
ZSBzaG91bGQgdXNlIGl0IGhlcmUuCisgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZh
bHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5n
cHIoKSwgbV9jb21waWxlSW5kZXgpOworICAgIH0KKyAgICAKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101100</attachid>
            <date>2011-07-16 14:26:28 -0700</date>
            <delta_ts>2011-07-16 18:47:58 -0700</delta_ts>
            <desc>the patch (fix style)</desc>
            <filename>notint_patch_2.diff</filename>
            <type>text/plain</type>
            <size>11969</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDctMTYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIGNvbXBhcmUvYnJhbmNoIGNvZGUgZW1pdHMgaXMtaW50ZWdlciB0ZXN0cyBldmVuIHdo
ZW4gYSB2YWx1ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRo
ZSBpc0tub3duTm90SW50ZWdlcigpIG1ldGhvZCwgd2hpY2ggcmV0dXJucyB0cnVlIGlmIGEgbm9k
ZSBpcworICAgICAgICBkZWZpbml0ZWx5IG5vdCBhbiBpbnRlZ2VyIGFuZCB3aWxsIGFsd2F5cyBm
YWlsIGFueSBpcy1pbnRlZ2VyIHRlc3QuICBUaGVuCisgICAgICAgIG1vZGlmaWVkIHRoZSBjb21w
YXJlIGFuZCBicmFuY2ggY29kZSB0byB1c2UgdGhpcyBtZXRob2Q7IGlmIGl0IHJldHVybnMKKyAg
ICAgICAgdHJ1ZSB0aGVuIGlzLWludCB0ZXN0cyBhcmUgb21pdHRlZCBhbmQgdGhlIGNvbXBpbGVy
IGFsd2F5cyBlbWl0cyBhIHNsb3cKKyAgICAgICAgY2FsbC4KKworICAgICAgICAqIGRmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9y
Ojppc0tub3duTm90SW50ZWdlcik6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRv
cjo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaCk6CisgICAgICAgIChKU0M6OkRGRzo6SklU
Q29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlQ29tcGFyZSk6Cisg
ICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
YXJlKToKKwogMjAxMS0wNy0xNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCB0aGUgYnVpbGQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDkxMTUyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzY1LDYgKzM2NSwxNyBAQCBib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25vd25OdW1lcmlj
KE5vCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEpJVENvZGVHZW5lcmF0b3I6OmlzS25v
d25Ob3RJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5kZXgpCit7CisgICAgTm9kZSYgbm9kZSA9IG1f
aml0LmdyYXBoKClbbm9kZUluZGV4XTsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gbm9kZS52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9
IG1fZ2VuZXJhdGlvbkluZm9bdmlydHVhbFJlZ2lzdGVyXTsKKyAgICAKKyAgICByZXR1cm4gKGlu
Zm8ucmVnaXN0ZXJGb3JtYXQoKSB8IERhdGFGb3JtYXRKUykgPT0gRGF0YUZvcm1hdEpTRG91Ymxl
CisgICAgICAgIHx8IChpbmZvLnJlZ2lzdGVyRm9ybWF0KCkgfCBEYXRhRm9ybWF0SlMpID09IERh
dGFGb3JtYXRKU0NlbGwKKyAgICAgICAgfHwgKG5vZGUuaXNDb25zdGFudCgpICYmICF2YWx1ZU9m
SlNDb25zdGFudChub2RlSW5kZXgpLmlzSW50MzIoKSk7Cit9CisKIEpJVENvbXBpbGVyOjpDYWxs
IEpJVENvZGVHZW5lcmF0b3I6OmNhY2hlZEdldEJ5SWQoR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyBy
ZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNs
b3dQYXRoVGFyZ2V0LCBOb2RlVHlwZSBub2RlVHlwZSkKIHsKICAgICBHUFJSZWcgc2NyYXRjaEdQ
UjsKQEAgLTUzMSw4OSArNTQyLDExNiBAQCB2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1
bGF0aXZlUGVlCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBh
cmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICAKLSAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMs
IGFyZzIpOwotICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0gICAgCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOwogICAgIAotICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDEoKSkpCi0gICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBhcmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQot
ICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgCi0g
ICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaDMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIpLCB0YWtl
bik7Ci0gICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMSgpKSB8fCAhaXNL
bm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1
bXAoKSwgbm90VGFrZW4pOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgp
KSB8fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOworCisgICAgICAgIEdQUlJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgICAgIHNsb3dQYXRoLmxp
bmsoJm1faml0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0
R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaFRl
c3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQUiksIHRha2VuKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIGFyZzIpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgIAotICAgICAgICBzaWxlbnRTcGlsbEFs
bFJlZ2lzdGVycyhyZXN1bHRHUFIpOwotICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMUdQ
UiwgYXJnMkdQUik7Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2soaGVscGVyRnVuY3Rpb24pOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJl
dHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwotICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CisgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkp
CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvdywgYXJnMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Cisg
ICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJn
MkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgCisgICAgICAgIGFk
ZEJyYW5jaChtX2ppdC5icmFuY2gzMihjb25kLCBhcmcxR1BSLCBhcmcyR1BSKSwgdGFrZW4pOwor
ICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpIHx8ICFpc0tu
b3duSW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICAgICAgYWRkQnJhbmNoKG1faml0
Lmp1bXAoKSwgbm90VGFrZW4pOworICAgIAorICAgICAgICAgICAgc2xvd1BhdGgubGluaygmbV9q
aXQpOworICAgIAorICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKKyAgICAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CisgICAgICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KGhlbHBlckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJz
KHJlc3VsdEdQUik7CiAgICAgICAgIAotICAgICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoVGVz
dDgoY2FsbFJlc3VsdENvbmRpdGlvbiwgcmVzdWx0R1BSKSwgdGFrZW4pOworICAgICAgICAgICAg
YWRkQnJhbmNoKG1faml0LmJyYW5jaFRlc3Q4KGNhbGxSZXN1bHRDb25kaXRpb24sIHJlc3VsdEdQ
UiksIHRha2VuKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChub3RUYWtlbiAhPSAobV9i
bG9jayArIDEpKQogICAgICAgICBhZGRCcmFuY2gobV9qaXQuanVtcCgpLCBub3RUYWtlbik7CiB9
CiAKLWJvb2wgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVDb21wYXJlKE5vZGUmIG5v
ZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFpfREZHT3BlcmF0
aW9uX0VKSiBoZWxwZXJGdW5jdGlvbikKK3ZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQog
ewotICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OwotICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7Ci0gICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKLSAgICAgICAgCi0gICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7Ci0gICAgCi0gICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgdXNl
KG5vZGUuY2hpbGQyKCkpOwotICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRl
eDsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAgICAgCiAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlT3Bl
cmFuZCBhcmcyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOwogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJn
MS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgCi0gICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKLSAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwotICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKICAg
ICAKLSAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQxKCkpKQotICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQ
UiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7Ci0gICAgaWYgKCFpc0tub3duSW50
ZWdlcihub2RlLmNoaWxkMigpKSkKLSAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgIGlmIChpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMSgpKSB8
fCBpc0tub3duTm90SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICAKKyAgICAgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAg
ICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihoZWxwZXJGdW5jdGlvbiwgcmVzdWx0R1BSLCBhcmcxR1BSLCBhcmcyR1BSKTsKKyAg
ICAgICAgCisgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1
bHRHUFIpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgYXJnMik7
CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCi0gICAgbV9q
aXQuY29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkpCisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMUdQUiwg
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIGlmICghaXNLbm93bklu
dGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQu
YnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgCi0gICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNo
aWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKLSAgICAgICAgSklU
Q29tcGlsZXI6Okp1bXAgaGF2ZVJlc3VsdCA9IG1faml0Lmp1bXAoKTsKKyAgICAgICAgbV9qaXQu
Y29tcGFyZTMyKGNvbmQsIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CiAgICAgCi0gICAg
ICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKCFpc0tub3duSW50ZWdlcihu
b2RlLmNoaWxkMSgpKSB8fCAhaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpIHsKKyAgICAg
ICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVSZXN1bHQgPSBtX2ppdC5qdW1wKCk7CisgICAg
CisgICAgICAgICAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICAg
ICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHNldHVw
U3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUo
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
ICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGhlbHBlckZ1bmN0aW9uKTsKKyAg
ICAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAg
IAorICAgICAgICAgICAgbV9qaXQuYW5kUHRyKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0R1BSKTsK
ICAgICAgICAgCi0gICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7Ci0g
ICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKLSAgICAgICAgbV9q
aXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhoZWxwZXJGdW5jdGlvbik7
Ci0gICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7
Ci0gICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICAgICAgICAg
IGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBt
X2ppdC5hbmRQdHIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5v
cjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICAgICAgCi0gICAg
ICAgIGhhdmVSZXN1bHQubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbV9jb21waWxlSW5kZXgpOwogICAgIH0KK30KKworYm9vbCBKSVRDb2RlR2VuZXJhdG9y
Ojpub25TcGVjdWxhdGl2ZUNvbXBhcmUoTm9kZSYgbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKQor
eworICAgIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgp
OworICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7CisgICAgICAgIEFTU0VSVChu
b2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgCisgICAgICAgIG5vblNwZWN1
bGF0aXZlUGVlcGhvbGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBjb25kLCBoZWxwZXJG
dW5jdGlvbik7CiAgICAgCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSks
IHJlc3VsdEdQUik7CisgICAgICAgIHVzZShub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgdXNlKG5v
ZGUuY2hpbGQyKCkpOworICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAKLSAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgpOworICAgIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmQsIGhlbHBlckZ1bmN0aW9uKTsKICAgICAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gOTExNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDE0LDYg
KzQxNCw4IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaXNLbm93bkludGVnZXIoTm9kZUluZGV4
KTsKICAgICBib29sIGlzS25vd25OdW1lcmljKE5vZGVJbmRleCk7CisgICAgCisgICAgYm9vbCBp
c0tub3duTm90SW50ZWdlcihOb2RlSW5kZXgpOwogCiAgICAgLy8gQ2hlY2tzL2FjY2Vzc29ycyBm
b3IgY29uc3RhbnQgdmFsdWVzLgogICAgIGJvb2wgaXNDb25zdGFudChOb2RlSW5kZXggbm9kZUlu
ZGV4KSB7IHJldHVybiBtX2ppdC5pc0NvbnN0YW50KG5vZGVJbmRleCk7IH0KQEAgLTU1NSw2ICs1
NTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYWNoZWRHZXRNZXRob2QoR1BSUmVnIGJhc2VH
UFIsIEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAoKSk7CiAgICAgCiAg
ICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKE5vZGUmLCBOb2RlSW5kZXggYnJh
bmNoTm9kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgWl9ERkdP
cGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKKyAgICB2b2lkIG5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlv
biwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKICAgICBib29sIG5vblNwZWN1
bGF0aXZlQ29tcGFyZShOb2RlJiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24s
IFpfREZHT3BlcmF0aW9uX0VKSiBoZWxwZXJGdW5jdGlvbik7CiAgICAgCiAgICAgdm9pZCBlbWl0
QnJhbmNoKE5vZGUmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MTE1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzIsMTYg
KzQzMiwyMSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUmIG5vZGUsCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIC8vIE5vcm1hbCBjYXNlLCBub3QgZnVzZWQg
dG8gYnJhbmNoLgotICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNo
aWxkMSgpKTsKLSAgICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS5jaGls
ZDIoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBvcDEsIG9wMik7Ci0KLSAgICBt
X2ppdC5jb21wYXJlMzIoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKLQotICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91bGQgdXNl
IGl0IGhlcmUuCi0gICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dC5ncHIoKSk7Ci0gICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4
KTsKKyAgICBpZiAoaXNLbm93bk5vdEludGVnZXIobm9kZS5jaGlsZDEoKSkgfHwgaXNLbm93bk5v
dEludGVnZXIobm9kZS5jaGlsZDIoKSkpCisgICAgICAgIG5vblNwZWN1bGF0aXZlTm9uUGVlcGhv
bGVDb21wYXJlKG5vZGUsIGNvbmRpdGlvbiwgb3BlcmF0aW9uKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgLy8gTm9ybWFsIGNhc2UsIG5vdCBmdXNlZCB0byBicmFuY2guCisgICAgICAgIFNwZWN1bGF0
ZUludGVnZXJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgU3BlY3Vs
YXRlSW50ZWdlck9wZXJhbmQgb3AyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOworICAgICAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSwgb3AyKTsKKyAgICAgICAgCisgICAgICAgIG1faml0
LmNvbXBhcmUzMihjb25kaXRpb24sIG9wMS5ncHIoKSwgb3AyLmdwcigpLCByZXN1bHQuZ3ByKCkp
OworICAgICAgICAKKyAgICAgICAgLy8gSWYgd2UgYWRkIGEgRGF0YUZvcm1hdEJvb2wsIHdlIHNo
b3VsZCB1c2UgaXQgaGVyZS4KKyAgICAgICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVG
YWxzZSksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0Lmdwcigp
LCBtX2NvbXBpbGVJbmRleCk7CisgICAgfQorICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>