<?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>62240</bug_id>
          
          <creation_ts>2011-06-07 15:28:44 -0700</creation_ts>
          <short_desc>DFG JIT - add support for for-loop array initialization</short_desc>
          <delta_ts>2011-06-07 16:03:45 -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>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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416845</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-07 15:28:44 -0700</bug_when>
    <thetext>Support put by val beyond vector length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416847</commentid>
    <comment_count>1</comment_count>
      <attachid>96314</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-07 15:31:29 -0700</bug_when>
    <thetext>Created attachment 96314
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416851</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-07 15:35:01 -0700</bug_when>
    <thetext>Attachment 96314 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/DFGOperations.h:57:  The parameter name &quot;array&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGJITCodeGenerator.h:424:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/JavaScriptCore/dfg/DFGJITCodeGenerator.h:425:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 3 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>416861</commentid>
    <comment_count>3</comment_count>
      <attachid>96314</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-06-07 15:41:54 -0700</bug_when>
    <thetext>Comment on attachment 96314
The patch

View in context: https://bugs.webkit.org/attachment.cgi?id=96314&amp;action=review

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:202
&gt; +    // We should only get here if index is outside the existing vector!

The ! is really helping no one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416891</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-07 16:03:45 -0700</bug_when>
    <thetext>Fixed in r88280</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96314</attachid>
            <date>2011-06-07 15:31:29 -0700</date>
            <delta_ts>2011-06-07 15:41:54 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>62240.patch</filename>
            <type>text/plain</type>
            <size>15548</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODgyNzMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTEtMDYtMDcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI0MAorICAgICAgICBERkcgSklUIC0g
YWRkIHN1cHBvcnQgZm9yIGZvci1sb29wIGFycmF5IGluaXRpYWxpemF0aW9uLgorCisgICAgICAg
IFN1cHBvcnQgcHV0IGJ5IHZhbCBiZXlvbmQgdmVjdG9yIGxlbmd0aC4KKyAgICAgICAgQWRkIGEg
b3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kcyBvcGVyYXRpb24sIG1ha2UKKyAgICAg
ICAgUHV0VmFsVmFsIGNhbGwgdGhpcyBpZiB0aGUgdmVjdG9yIGxlbmd0aCBjaGVjayBmYWlscy4K
KworICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6SklUQ29kZUdlbmVyYXRvcjo6c2lsZW50U3BpbGxHUFIpOgorICAgICAgICAoSlNDOjpERkc6
OkpJVENvZGVHZW5lcmF0b3I6OnNpbGVudEZpbGxHUFIpOgorICAgICAgICAoSlNDOjpERkc6OkpJ
VENvZGVHZW5lcmF0b3I6OnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb2RlR2VuZXJhdG9yOjppc0RvdWJsZUNvbnN0YW50V2l0aEludDMyVmFsdWUpOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OmlzSlNDb25zdGFudFdpdGhJbnQz
MlZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjppc0ludGVnZXJD
b25zdGFudCk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6dmFsdWVPZklu
dGVnZXJDb25zdGFudCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6Om9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9E
RkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklULmg6CisKIDIwMTEtMDYtMDYgIEphbWVzIFNpbW9uc2VuICA8c2lt
b25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29u
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJh
dG9yLmgJKHJldmlzaW9uIDg4MjU1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRDb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gdGhleSBzcGlsbCBhbGwgbGl2ZSB2YWx1ZXMgdG8gdGhlIGFwcHJvcHJp
YXRlCiAgICAgLy8gc2xvdHMgaW4gdGhlIFJlZ2lzdGVyRmlsZSB3aXRob3V0IGNoYW5naW5nIGFu
eSBzdGF0ZQogICAgIC8vIGluIHRoZSBHZW5lcmF0aW9uSW5mby4KLSAgICB2b2lkIHNpbGVudFNw
aWxsR1BSKFZpcnR1YWxSZWdpc3RlciBzcGlsbE1lLCBHUFJSZWcgZXhjbHVkZSA9IEludmFsaWRH
UFJSZWcpCisgICAgdm9pZCBzaWxlbnRTcGlsbEdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwg
R1BSUmVnIGNhblRyYW1wbGUsIEdQUlJlZyBleGNsdWRlID0gSW52YWxpZEdQUlJlZykKICAgICB7
CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1tzcGlsbE1l
XTsKICAgICAgICAgQVNTRVJUKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSAhPSBEYXRhRm9ybWF0Tm9u
ZSk7CkBAIC0xNzAsOCArMTcwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICBEYXRhRm9ybWF0IHJl
Z2lzdGVyRm9ybWF0ID0gaW5mby5yZWdpc3RlckZvcm1hdCgpOwogCiAgICAgICAgIGlmIChyZWdp
c3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlcikgewotICAgICAgICAgICAgbV9qaXQub3JQ
dHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCBpbmZvLmdwcigpKTsKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlUHRyKGluZm8uZ3ByKCksIEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHNw
aWxsTWUpKTsKKyAgICAgICAgICAgIG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgaW5mby5ncHIoKSwgY2FuVHJhbXBsZSk7CisgICAgICAgICAgICBtX2ppdC5zdG9y
ZVB0cihjYW5UcmFtcGxlLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9y
bWF0SlMgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwpOwogICAgICAgICAgICAg
bV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxN
ZSkpOwpAQCAtMjAzLDggKzIwMyw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBpZiAocmVnaXN0
ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKICAgICAgICAgICAgIGlmIChub2RlLmlz
Q29uc3RhbnQoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc0ludDMyQ29uc3RhbnQobm9k
ZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mSW50MzJD
b25zdGFudChub2RlSW5kZXgpKSwgaW5mby5ncHIoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJU
KGlzSW50ZWdlckNvbnN0YW50KG5vZGVJbmRleCkpOworICAgICAgICAgICAgICAgIG1faml0Lm1v
dmUoSW1tMzIodmFsdWVPZkludGVnZXJDb25zdGFudChub2RlSW5kZXgpKSwgaW5mby5ncHIoKSk7
CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSksIGluZm8uZ3ByKCkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMjM1LDE1ICsyMzUsMjEgQEAgcHJvdGVjdGVkOgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgdm9pZCBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhHUFJSZWcgZXhjbHVkZSwgR1BSUmVn
IHByZXNlcnZlID0gSW52YWxpZEdQUlJlZykKKyAgICB2b2lkIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKEdQUlJlZyBleGNsdWRlLCBHUFJSZWcgcHJlc2VydmUxID0gSW52YWxpZEdQUlJlZywgR1BS
UmVnIHByZXNlcnZlMiA9IEludmFsaWRHUFJSZWcsIEdQUlJlZyBwcmVzZXJ2ZTMgPSBJbnZhbGlk
R1BSUmVnKQogICAgIHsKICAgICAgICAgR1BSUmVnIGNhblRyYW1wbGUgPSBHUFJJbmZvOjpyZWdU
MDsKLSAgICAgICAgaWYgKHByZXNlcnZlID09IEdQUkluZm86OnJlZ1QwKQorICAgICAgICBpZiAo
cHJlc2VydmUxICE9IEdQUkluZm86OnJlZ1QwICYmIHByZXNlcnZlMiAhPSBHUFJJbmZvOjpyZWdU
MCAmJiBwcmVzZXJ2ZTMgIT0gR1BSSW5mbzo6cmVnVDApCisgICAgICAgICAgICBjYW5UcmFtcGxl
ID0gR1BSSW5mbzo6cmVnVDA7CisgICAgICAgIGVsc2UgaWYgKHByZXNlcnZlMSAhPSBHUFJJbmZv
OjpyZWdUMSAmJiBwcmVzZXJ2ZTIgIT0gR1BSSW5mbzo6cmVnVDEgJiYgcHJlc2VydmUzICE9IEdQ
UkluZm86OnJlZ1QxKQogICAgICAgICAgICAgY2FuVHJhbXBsZSA9IEdQUkluZm86OnJlZ1QxOwor
ICAgICAgICBlbHNlIGlmIChwcmVzZXJ2ZTEgIT0gR1BSSW5mbzo6cmVnVDIgJiYgcHJlc2VydmUy
ICE9IEdQUkluZm86OnJlZ1QyICYmIHByZXNlcnZlMyAhPSBHUFJJbmZvOjpyZWdUMikKKyAgICAg
ICAgICAgIGNhblRyYW1wbGUgPSBHUFJJbmZvOjpyZWdUMjsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgY2FuVHJhbXBsZSA9IEdQUkluZm86OnJlZ1QzOwogICAgICAgICAKICAgICAgICAgZm9y
IChncHJfaXRlcmF0b3IgaXRlciA9IG1fZ3Bycy5iZWdpbigpOyBpdGVyICE9IG1fZ3Bycy5lbmQo
KTsgKytpdGVyKSB7CiAgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1
YWxSZWdpc3RlcikKLSAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEdQUihpdGVyLm5hbWUoKSwg
ZXhjbHVkZSk7CisgICAgICAgICAgICAgICAgc2lsZW50U3BpbGxHUFIoaXRlci5uYW1lKCksIGNh
blRyYW1wbGUsIGV4Y2x1ZGUpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoZnByX2l0ZXJhdG9y
IGl0ZXIgPSBtX2ZwcnMuYmVnaW4oKTsgaXRlciAhPSBtX2ZwcnMuZW5kKCk7ICsraXRlcikgewog
ICAgICAgICAgICAgaWYgKGl0ZXIubmFtZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpCkBA
IC0yNTgsNyArMjY0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAgZm9yIChncHJf
aXRlcmF0b3IgaXRlciA9IG1fZ3Bycy5iZWdpbigpOyBpdGVyICE9IG1fZ3Bycy5lbmQoKTsgKytp
dGVyKSB7CiAgICAgICAgICAgICBpZiAoaXRlci5uYW1lKCkgIT0gSW52YWxpZFZpcnR1YWxSZWdp
c3RlcikKLSAgICAgICAgICAgICAgICBzaWxlbnRTcGlsbEdQUihpdGVyLm5hbWUoKSk7CisgICAg
ICAgICAgICAgICAgc2lsZW50U3BpbGxHUFIoaXRlci5uYW1lKCksIGNhblRyYW1wbGUpOwogICAg
ICAgICB9CiAgICAgICAgIGZvciAoZnByX2l0ZXJhdG9yIGl0ZXIgPSBtX2ZwcnMuYmVnaW4oKTsg
aXRlciAhPSBtX2ZwcnMuZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgaWYgKGl0ZXIubmFt
ZSgpICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpCkBAIC0zODIsNiArMzg4LDU3IEBAIHByb3Rl
Y3RlZDoKICAgICBkb3VibGUgdmFsdWVPZkRvdWJsZUNvbnN0YW50KE5vZGVJbmRleCBub2RlSW5k
ZXgpIHsgcmV0dXJuIG1faml0LnZhbHVlT2ZEb3VibGVDb25zdGFudChub2RlSW5kZXgpOyB9CiAg
ICAgSlNWYWx1ZSB2YWx1ZU9mSlNDb25zdGFudChOb2RlSW5kZXggbm9kZUluZGV4KSB7IHJldHVy
biBtX2ppdC52YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpOyB9CiAKKyAgICBib29sIGlzRG91
YmxlQ29uc3RhbnRXaXRoSW50MzJWYWx1ZShOb2RlSW5kZXggbm9kZUluZGV4LCBpbnQzMl90JiBv
dXQpCisgICAgeworICAgICAgICBpZiAoIW1faml0LmlzRG91YmxlQ29uc3RhbnQobm9kZUluZGV4
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZG91YmxlIHZhbHVlID0gbV9q
aXQudmFsdWVPZkRvdWJsZUNvbnN0YW50KG5vZGVJbmRleCk7CisKKyAgICAgICAgaW50MzJfdCBh
c0ludDMyID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpOworICAgICAgICBpZiAodmFsdWUg
IT0gYXNJbnQzMikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFhc0lu
dDMyICYmIHNpZ25iaXQodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIG91dCA9IGFzSW50MzI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJv
b2wgaXNKU0NvbnN0YW50V2l0aEludDMyVmFsdWUoTm9kZUluZGV4IG5vZGVJbmRleCwgaW50MzJf
dCYgb3V0KQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ppdC5pc0pTQ29uc3RhbnQobm9kZUluZGV4
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG1f
aml0LnZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7CisKKyAgICAgICAgaWYgKCF2YWx1ZS5p
c0ludDMyKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBv
dXQgPSB2YWx1ZS5hc0ludDMyKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IGJvb2wgaXNJbnRlZ2VyQ29uc3RhbnQoTm9kZUluZGV4IG5vZGVJbmRleCkKKyAgICB7CisgICAg
ICAgIGludDMyX3QgdW51c2VkOworICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlzSW50MzJD
b25zdGFudChub2RlSW5kZXgpIHx8CisgICAgICAgICAgICBpc0RvdWJsZUNvbnN0YW50V2l0aElu
dDMyVmFsdWUobm9kZUluZGV4LCB1bnVzZWQpIHx8CisgICAgICAgICAgICBpc0pTQ29uc3RhbnRX
aXRoSW50MzJWYWx1ZShub2RlSW5kZXgsIHVudXNlZCk7CisgICAgfQorCisgICAgaW50MzJfdCB2
YWx1ZU9mSW50ZWdlckNvbnN0YW50KE5vZGVJbmRleCBub2RlSW5kZXgpCisgICAgeworICAgICAg
ICBpZiAoaXNJbnQzMkNvbnN0YW50KG5vZGVJbmRleCkpCisgICAgICAgICAgICByZXR1cm4gdmFs
dWVPZkludDMyQ29uc3RhbnQobm9kZUluZGV4KTsKKyAgICAgICAgaW50MzJfdCByZXN1bHQgPSAw
OworICAgICAgICBib29sIG9rYXkgPSBpc0RvdWJsZUNvbnN0YW50V2l0aEludDMyVmFsdWUobm9k
ZUluZGV4LCByZXN1bHQpOworICAgICAgICBpZiAob2theSkKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIG9rYXkgPSBpc0pTQ29uc3RhbnRXaXRoSW50MzJWYWx1ZShub2RlSW5k
ZXgsIHJlc3VsdCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQob2theSwgb2theSk7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgSWRlbnRpZmllciogaWRlbnRpZmllcih1bnNp
Z25lZCBpbmRleCkKICAgICB7CiAgICAgICAgIHJldHVybiAmbV9qaXQuY29kZUJsb2NrKCktPmlk
ZW50aWZpZXIoaW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCShyZXZpc2lvbiA4ODI1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDM1ICs1NiwzNSBAQCBB
TFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIG9wZXJhdGlvblB1dEJ5CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCiAgICAgaWYgKExJS0VMWShwcm9w
ZXJ0eS5pc1VJbnQzMigpKSkgewotICAgICAgICB1aW50MzJfdCBpID0gcHJvcGVydHkuYXNVSW50
MzIoKTsKKyAgICAgICAgdWludDMyX3QgaW5kZXggPSBwcm9wZXJ0eS5hc1VJbnQzMigpOwogCiAg
ICAgICAgIGlmIChpc0pTQXJyYXkoZ2xvYmFsRGF0YSwgYmFzZVZhbHVlKSkgewotICAgICAgICAg
ICAgSlNBcnJheSoganNBcnJheSA9IGFzQXJyYXkoYmFzZVZhbHVlKTsKLSAgICAgICAgICAgIGlm
IChqc0FycmF5LT5jYW5TZXRJbmRleChpKSkgewotICAgICAgICAgICAgICAgIGpzQXJyYXktPnNl
dEluZGV4KCpnbG9iYWxEYXRhLCBpLCB2YWx1ZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkoYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChhcnJheS0+Y2FuU2V0SW5k
ZXgoaW5kZXgpKSB7CisgICAgICAgICAgICAgICAgYXJyYXktPnNldEluZGV4KCpnbG9iYWxEYXRh
LCBpbmRleCwgdmFsdWUpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAganNBcnJheS0+SlNBcnJheTo6cHV0KGV4ZWMsIGksIHZhbHVlKTsKKyAg
ICAgICAgICAgIGFycmF5LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChpc0pTQnl0ZUFycmF5KGds
b2JhbERhdGEsIGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNz
SW5kZXgoaSkpIHsKLSAgICAgICAgICAgIEpTQnl0ZUFycmF5KiBqc0J5dGVBcnJheSA9IGFzQnl0
ZUFycmF5KGJhc2VWYWx1ZSk7CisgICAgICAgIGlmIChpc0pTQnl0ZUFycmF5KGdsb2JhbERhdGEs
IGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaW5k
ZXgpKSB7CisgICAgICAgICAgICBKU0J5dGVBcnJheSogYnl0ZUFycmF5ID0gYXNCeXRlQXJyYXko
YmFzZVZhbHVlKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgSklUc3R1YiB1c2VkIHRvIHJl
bGluayB0aGlzIHRvIGFuIG9wdGltaXplZCBmb3JtIQogICAgICAgICAgICAgaWYgKHZhbHVlLmlz
SW50MzIoKSkgewotICAgICAgICAgICAgICAgIGpzQnl0ZUFycmF5LT5zZXRJbmRleChpLCB2YWx1
ZS5hc0ludDMyKCkpOworICAgICAgICAgICAgICAgIGJ5dGVBcnJheS0+c2V0SW5kZXgoaW5kZXgs
IHZhbHVlLmFzSW50MzIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBkb3VibGUgZFZhbHVlID0gMDsKICAgICAgICAgICAgIGlmICh2YWx1
ZS5nZXROdW1iZXIoZFZhbHVlKSkgewotICAgICAgICAgICAgICAgIGpzQnl0ZUFycmF5LT5zZXRJ
bmRleChpLCBkVmFsdWUpOworICAgICAgICAgICAgICAgIGJ5dGVBcnJheS0+c2V0SW5kZXgoaW5k
ZXgsIGRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgYmFzZVZhbHVlLnB1dChleGVjLCBpLCB2YWx1ZSk7CisgICAgICAg
IGJhc2VWYWx1ZS5wdXQoZXhlYywgaW5kZXgsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTM0LDIxICsxMzQsMjEgQEAgRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlW
YWwoRXhlY1N0YQogCiAgICAgICAgIGlmIChwcm9wZXJ0eS5pc1VJbnQzMigpKSB7CiAgICAgICAg
ICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSAmZXhlYy0+Z2xvYmFsRGF0YSgpOwotICAg
ICAgICAgICAgdWludDMyX3QgaSA9IHByb3BlcnR5LmFzVUludDMyKCk7CisgICAgICAgICAgICB1
aW50MzJfdCBpbmRleCA9IHByb3BlcnR5LmFzVUludDMyKCk7CiAKICAgICAgICAgICAgIC8vIEZJ
WE1FOiB0aGUgSklUIHVzZWQgdG8gaGFuZGxlIHRoZXNlIGluIGNvbXBpbGVkIGNvZGUhCi0gICAg
ICAgICAgICBpZiAoaXNKU0FycmF5KGdsb2JhbERhdGEsIGJhc2UpICYmIGFzQXJyYXkoYmFzZSkt
PmNhbkdldEluZGV4KGkpKQotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNBcnJheShiYXNlKS0+Z2V0SW5kZXgoaSkpOworICAgICAgICAgICAgaWYgKGlzSlNBcnJheShn
bG9iYWxEYXRhLCBiYXNlKSAmJiBhc0FycmF5KGJhc2UpLT5jYW5HZXRJbmRleChpbmRleCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0FycmF5KGJhc2UpLT5nZXRJ
bmRleChpbmRleCkpOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogdGhlIEpJVHN0dWIgdXNlZCB0
byByZWxpbmsgdGhpcyB0byBhbiBvcHRpbWl6ZWQgZm9ybSEKLSAgICAgICAgICAgIGlmIChpc0pT
U3RyaW5nKGdsb2JhbERhdGEsIGJhc2UpICYmIGFzU3RyaW5nKGJhc2UpLT5jYW5HZXRJbmRleChp
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nKGJhc2Up
LT5nZXRJbmRleChleGVjLCBpKSk7CisgICAgICAgICAgICBpZiAoaXNKU1N0cmluZyhnbG9iYWxE
YXRhLCBiYXNlKSAmJiBhc1N0cmluZyhiYXNlKS0+Y2FuR2V0SW5kZXgoaW5kZXgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNTdHJpbmcoYmFzZSktPmdldEluZGV4
KGV4ZWMsIGluZGV4KSk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgSklUc3R1YiB1c2Vk
IHRvIHJlbGluayB0aGlzIHRvIGFuIG9wdGltaXplZCBmb3JtIQotICAgICAgICAgICAgaWYgKGlz
SlNCeXRlQXJyYXkoZ2xvYmFsRGF0YSwgYmFzZSkgJiYgYXNCeXRlQXJyYXkoYmFzZSktPmNhbkFj
Y2Vzc0luZGV4KGkpKQotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNC
eXRlQXJyYXkoYmFzZSktPmdldEluZGV4KGV4ZWMsIGkpKTsKKyAgICAgICAgICAgIGlmIChpc0pT
Qnl0ZUFycmF5KGdsb2JhbERhdGEsIGJhc2UpICYmIGFzQnl0ZUFycmF5KGJhc2UpLT5jYW5BY2Nl
c3NJbmRleChpbmRleCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShh
c0J5dGVBcnJheShiYXNlKS0+Z2V0SW5kZXgoZXhlYywgaW5kZXgpKTsKIAotICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGV4ZWMsIGkpKTsKKyAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChleGVjLCBpbmRleCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKHByb3BlcnR5LmlzU3RyaW5nKCkpIHsKQEAgLTE5Nyw2
ICsxOTcsMTMgQEAgdm9pZCBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdChFeGVjU3RhdAogICAg
IG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2U+KGV4ZWMsIGVuY29kZWRCYXNlLCBlbmNv
ZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7CiB9CiAKK3ZvaWQgb3BlcmF0aW9uUHV0QnlWYWxC
ZXlvbmRBcnJheUJvdW5kcyhFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGFycmF5LCBpbnQzMl90
IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgLy8gV2Ugc2hvdWxk
IG9ubHkgZ2V0IGhlcmUgaWYgaW5kZXggaXMgb3V0c2lkZSB0aGUgZXhpc3RpbmcgdmVjdG9yIQor
ICAgIEFTU0VSVCghYXJyYXktPmNhblNldEluZGV4KGluZGV4KSk7CisgICAgYXJyYXktPkpTQXJy
YXk6OnB1dChleGVjLCBpbmRleCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOworfQor
CiB2b2lkIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVy
KiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24gODgy
NTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlk
KEV4ZWNTdGF0CiBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqKTsKIHZvaWQgb3Bl
cmF0aW9uUHV0QnlWYWxTdHJpY3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKTsKIHZvaWQgb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKTsKK3ZvaWQgb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kcyhFeGVjU3RhdGUqLCBKU0FycmF5KiBhcnJheSwgaW50MzJfdCBpbmRleCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKTsKIHZvaWQgb3BlcmF0aW9uUHV0QnlJZFN0cmlj
dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKik7CiB2b2lkIG9wZXJhdGlvblB1dEJ5SWROb25TdHJp
Y3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwogdm9pZCBvcGVyYXRpb25QdXRCeUlkRGlyZWN0
U3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA4ODI1NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02ODcsNyArNjg3LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSYgbm9kZSkKICAgICAgICAgTm9kZSYgYmFzZU5vZGUgPSBtX2ppdC5ncmFwaCgpW25vZGUu
Y2hpbGQxXTsKICAgICAgICAgaWYgKGJhc2VOb2RlLm9wICE9IEdldExvY2FsIHx8IG1faml0Lmdy
YXBoKCkuZ2V0UHJlZGljdGlvbihiYXNlTm9kZS5sb2NhbCgpKSAhPSBQcmVkaWN0QXJyYXkpCiAg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyKSkpOwot
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpB
Ym92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVn
LCBKU0FycmF5Ojp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgd2l0aGluQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBK
U0FycmF5Ojp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOworCisgICAgICAgIC8vIENvZGUgdG8gaGFu
ZGxlIHB1dCBiZXlvbmQgYXJyYXkgYm91bmRzLgorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lz
dGVycyhzdG9yYWdlUmVnLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWcpOworICAgICAg
ICBzZXR1cFN0dWJBcmd1bWVudHMoYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKTsKKyAg
ICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKKyAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgZnVuY3Rpb25DYWxsID0gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhzdG9yYWdlUmVnKTsKKyAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgd2FzQmV5b25kQXJyYXlCb3VuZHMgPSBtX2ppdC5qdW1wKCk7
CisKKyAgICAgICAgd2l0aGluQXJyYXlCb3VuZHMubGluaygmbV9qaXQpOwogCiAgICAgICAgIC8v
IEdldCB0aGUgYXJyYXkgc3RvcmFnZS4KICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU0FycmF5OjpzdG9yYWdlT2Zmc2V0KCkpLCBzdG9yYWdl
UmVnKTsKQEAgLTcwOCw2ICs3MTgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUmIG5vZGUpCiAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCiAgICAg
ICAgIG1faml0LnN0b3JlUHRyKHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6U2NhbGVQdHIsIE9CSkVDVF9P
RkZTRVRPRihBcnJheVN0b3JhZ2UsIG1fdmVjdG9yWzBdKSkpOwogCisgICAgICAgIHdhc0JleW9u
ZEFycmF5Qm91bmRzLmxpbmsoJm1faml0KTsKKwogICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJ
bmRleCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDg4MjU1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzgsMzUgKzEzOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja0FyZ3VtZW50VHlwZXMo
KTsKICAgICB2b2lkIGluaXRpYWxpemVWYXJpYWJsZVR5cGVzKCk7CiAKLSAgICBib29sIGlzRG91
YmxlQ29uc3RhbnRXaXRoSW50MzJWYWx1ZShOb2RlSW5kZXggbm9kZUluZGV4LCBpbnQzMl90JiBv
dXQpCi0gICAgewotICAgICAgICBpZiAoIW1faml0LmlzRG91YmxlQ29uc3RhbnQobm9kZUluZGV4
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZG91YmxlIHZhbHVlID0gbV9q
aXQudmFsdWVPZkRvdWJsZUNvbnN0YW50KG5vZGVJbmRleCk7Ci0KLSAgICAgICAgaW50MzJfdCBh
c0ludDMyID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpOwotICAgICAgICBpZiAodmFsdWUg
IT0gYXNJbnQzMikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFhc0lu
dDMyICYmIHNpZ25iaXQodmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIG91dCA9IGFzSW50MzI7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGJv
b2wgaXNKU0NvbnN0YW50V2l0aEludDMyVmFsdWUoTm9kZUluZGV4IG5vZGVJbmRleCwgaW50MzJf
dCYgb3V0KQotICAgIHsKLSAgICAgICAgaWYgKCFtX2ppdC5pc0pTQ29uc3RhbnQobm9kZUluZGV4
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG1f
aml0LnZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7Ci0KLSAgICAgICAgaWYgKCF2YWx1ZS5p
c0ludDMyKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBv
dXQgPSB2YWx1ZS5hc0ludDMyKCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQogICAg
IGJvb2wgZGV0ZWN0UGVlcEhvbGVCcmFuY2goKQogICAgIHsKICAgICAgICAgLy8gQ2hlY2sgaWYg
dGhlIGJsb2NrIGNvbnRhaW5zIHByZWNpc2VseSBvbmUgbW9yZSBub2RlLgo=
</data>
<flag name="review"
          id="89970"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>