<?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>157956</bug_id>
          
          <creation_ts>2016-05-20 14:39:31 -0700</creation_ts>
          <short_desc>JSScope::abstractAccess doesn&apos;t need to copy the SymbolTableEntry, it can use it by reference</short_desc>
          <delta_ts>2016-05-22 21:01:47 -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>WebKit Local 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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195226</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 14:39:31 -0700</bug_when>
    <thetext>Copying a FatEntry is slow because we have to malloc then free the FatEntry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195229</commentid>
    <comment_count>1</comment_count>
      <attachid>279502</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 14:47:08 -0700</bug_when>
    <thetext>Created attachment 279502
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195232</commentid>
    <comment_count>2</comment_count>
      <attachid>279502</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-20 14:51:52 -0700</bug_when>
    <thetext>Comment on attachment 279502
patch

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

&gt; Source/JavaScriptCore/runtime/JSScope.cpp:75
&gt; +            if (!entry.isNull()) {
&gt; +                op = ResolveOp(makeType(ClosureVar, needsVarInjectionChecks), depth, 0, lexicalEnvironment, entry.watchpointSet(), entry.scopeOffset().offset());
&gt;                  return true;
&gt;              }
&gt; +
&gt; +            if (scope-&gt;type() == ModuleEnvironmentType) {

I think this logic changed.

entry.isNull() is only possible in the get() world. In the find world, the equivalent is iter == end(). So, I think the return above needs to be unconditional, and this module code needs to be outside the iter != end() check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195260</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 16:03:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 279502 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=279502&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSScope.cpp:75
&gt; &gt; +            if (!entry.isNull()) {
&gt; &gt; +                op = ResolveOp(makeType(ClosureVar, needsVarInjectionChecks), depth, 0, lexicalEnvironment, entry.watchpointSet(), entry.scopeOffset().offset());
&gt; &gt;                  return true;
&gt; &gt;              }
&gt; &gt; +
&gt; &gt; +            if (scope-&gt;type() == ModuleEnvironmentType) {
&gt; 
&gt; I think this logic changed.
&gt; 
&gt; entry.isNull() is only possible in the get() world. In the find world, the
&gt; equivalent is iter == end(). So, I think the return above needs to be
&gt; unconditional, and this module code needs to be outside the iter != end()
&gt; check.

Good catch.
In general, my change assumes that the following could be true: (iter != end() &amp;&amp; entry.isNull())
I think this is a bad assumption though. I believe that
(iter != end()) implies (!entry.isNull())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195262</commentid>
    <comment_count>4</comment_count>
      <attachid>279512</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 16:13:16 -0700</bug_when>
    <thetext>Created attachment 279512
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195264</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-20 16:14:26 -0700</bug_when>
    <thetext>Attachment 279512 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSScope.cpp:62:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 2 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>1195265</commentid>
    <comment_count>6</comment_count>
      <attachid>279513</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 16:25:23 -0700</bug_when>
    <thetext>Created attachment 279513
patch

fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195266</commentid>
    <comment_count>7</comment_count>
      <attachid>279513</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-20 16:32:14 -0700</bug_when>
    <thetext>Comment on attachment 279513
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195284</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-20 17:16:44 -0700</bug_when>
    <thetext>landed in:
http://trac.webkit.org/changeset/201235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195437</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-05-22 13:12:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; landed in:
&gt; http://trac.webkit.org/changeset/201235

It made 300 tests assert on all debug bots, see build.webkit.org for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195448</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-22 15:30:24 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; landed in:
&gt; &gt; http://trac.webkit.org/changeset/201235
&gt; 
&gt; It made 300 tests assert on all debug bots, see build.webkit.org for details.

Thanks. I&apos;m looking into it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195452</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-22 15:39:34 -0700</bug_when>
    <thetext>I&apos;m pretty sure I&apos;ve found the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195455</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-22 16:02:10 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I&apos;m pretty sure I&apos;ve found the bug.

Running debug tests locally now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195460</commentid>
    <comment_count>13</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-22 21:01:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; I&apos;m pretty sure I&apos;ve found the bug.
&gt; 
&gt; Running debug tests locally now

Fixed debug assertion failures in:
http://trac.webkit.org/changeset/201266</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279502</attachid>
            <date>2016-05-20 14:47:08 -0700</date>
            <delta_ts>2016-05-20 16:13:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>8129</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxMjI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTA1LTIwICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEpTU2NvcGU6OmFic3RyYWN0QWNjZXNzIGRvZXNuJ3QgbmVlZCB0byBjb3B5IHRoZSBTeW1ib2xU
YWJsZUVudHJ5LCBpdCBjYW4gdXNlIGl0IGJ5IHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBTeW1ib2xUYWJsZUVudHJ5IG1heSBiZSBh
IEZhdEVudHJ5LiBDb3B5aW5nIGEgRmF0RW50cnkgaXMgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8K
KyAgICAgICAgbWFsbG9jIG1lbW9yeSBmb3IgaXQsIHRoZW4gZnJlZSB0aGUgbWFsbG9jZWQgbWVt
b3J5IG9uY2UgdGhlIGVudHJ5IGdvZXMgb3V0IG9mCisgICAgICAgIHNjb3BlLiBhYnN0cmFjdEFj
Y2VzcyB1c2VzIGEgU3ltYm9sVGFibGVFbnRyeSB0ZW1wb3JhcmlseSB3aGVuIHBlcmZvcm1pbmcg
c2NvcGUKKyAgICAgICAgYWNjZXNzZXMgZHVyaW5nIGJ5dGVjb2RlIGxpbmtpbmcuIEl0IGNvcGll
cyBvdXQgdGhlIFN5bWJvbFRhYmxlRW50cnkgZXZlcnkgdGltZQorICAgICAgICBpdCBkb2VzIGEg
U3ltYm9sVGFibGUgbG9va3VwLiBUaGlzIGlzIG5vdCBjaGVhcCB3aGVuIHRoZSBlbnRyeSBoYXBw
ZW5zIHRvIGJlIGEKKyAgICAgICAgRmF0RW50cnkuIFdlIHNob3VsZCByZWFsbHkganVzdCBiZSB1
c2luZyBhIHJlZmVyZW5jZSB0byB0aGUgZW50cnkgYmVjYXVzZQorICAgICAgICB0aGVyZSBpcyBu
byBuZWVkIHRvIGNvcHkgaXQgaW4gc3VjaCBhIHNjZW5hcmlvLgorCisgICAgICAgICogcnVudGlt
ZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6YWJzdHJhY3RBY2Nlc3MpOgorCiAyMDE2LTA1
LTIwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVpZnlB
bGxTdGF0aWNQcm9wZXJ0aWVzIG1ha2VzIHR3byBjb3BpZXMgb2YgZXZlcnkgc3RyaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAkocmV2aXNpb24gMjAx
MjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDQyICs1Niw1MyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWJzdHJhY3RB
Y2Nlc3MoRXhlY1N0CiAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5hbWljLCAwLCAwLCAw
LCAwLCAwKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIFN5
bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUo
KTsKKyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9j
ayk7CisgICAgICAgIGF1dG8gaXRlciA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUo
KS0+ZmluZChsb2NrZXIsIGlkZW50LmltcGwoKSk7CisgICAgICAgIGlmIChpdGVyICE9IHN5bWJv
bFRhYmxlLT5lbmQobG9ja2VyKSkgeworICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSYgZW50
cnkgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5pc1JlYWRPbmx5KCkgJiYg
Z2V0T3JQdXQgPT0gUHV0KSB7CisgICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGUgcHJvcGVy
dHkgd2lsbCBiZSBhdCB0aGlzIGxleGljYWwgZW52aXJvbm1lbnQgc2NvcGUsIGJ1dCB3ZSBkb24n
dCBrbm93IGhvdyB0byBjYWNoZSBpdC4KKyAgICAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChE
eW5hbWljLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIH0KIAotICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gbGV4aWNhbEVu
dmlyb25tZW50LT5zeW1ib2xUYWJsZSgpLT5nZXQoaWRlbnQuaW1wbCgpKTsKLSAgICAgICAgaWYg
KGVudHJ5LmlzUmVhZE9ubHkoKSAmJiBnZXRPclB1dCA9PSBQdXQpIHsKLSAgICAgICAgICAgIC8v
IFdlIGtub3cgdGhlIHByb3BlcnR5IHdpbGwgYmUgYXQgdGhpcyBsZXhpY2FsIGVudmlyb25tZW50
IHNjb3BlLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgdG8gY2FjaGUgaXQuCi0gICAgICAgICAgICBv
cCA9IFJlc29sdmVPcChEeW5hbWljLCAwLCAwLCAwLCAwLCAwKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFlbnRyeS5pc051bGwoKSkgewotICAg
ICAgICAgICAgb3AgPSBSZXNvbHZlT3AobWFrZVR5cGUoQ2xvc3VyZVZhciwgbmVlZHNWYXJJbmpl
Y3Rpb25DaGVja3MpLCBkZXB0aCwgMCwgbGV4aWNhbEVudmlyb25tZW50LCBlbnRyeS53YXRjaHBv
aW50U2V0KCksIGVudHJ5LnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkpOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2NvcGUtPnR5cGUoKSA9PSBNb2R1
bGVFbnZpcm9ubWVudFR5cGUpIHsKLSAgICAgICAgICAgIEpTTW9kdWxlRW52aXJvbm1lbnQqIG1v
ZHVsZUVudmlyb25tZW50ID0ganNDYXN0PEpTTW9kdWxlRW52aXJvbm1lbnQqPihzY29wZSk7Ci0g
ICAgICAgICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gbW9kdWxlRW52aXJvbm1l
bnQtPm1vZHVsZVJlY29yZCgpOwotICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRp
b24gcmVzb2x1dGlvbiA9IG1vZHVsZVJlY29yZC0+cmVzb2x2ZUltcG9ydChleGVjLCBpZGVudCk7
Ci0gICAgICAgICAgICBpZiAocmVzb2x1dGlvbi50eXBlID09IEpTTW9kdWxlUmVjb3JkOjpSZXNv
bHV0aW9uOjpUeXBlOjpSZXNvbHZlZCkgewotICAgICAgICAgICAgICAgIEpTTW9kdWxlUmVjb3Jk
KiBpbXBvcnRlZFJlY29yZCA9IHJlc29sdXRpb24ubW9kdWxlUmVjb3JkOwotICAgICAgICAgICAg
ICAgIEpTTW9kdWxlRW52aXJvbm1lbnQqIGltcG9ydGVkRW52aXJvbm1lbnQgPSBpbXBvcnRlZFJl
Y29yZC0+bW9kdWxlRW52aXJvbm1lbnQoKTsKLSAgICAgICAgICAgICAgICBTeW1ib2xUYWJsZUVu
dHJ5IGVudHJ5ID0gaW1wb3J0ZWRFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+Z2V0KHJlc29s
dXRpb24ubG9jYWxOYW1lLmltcGwoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFlbnRyeS5p
c051bGwoKSk7Ci0gICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AobWFrZVR5cGUoTW9kdWxl
VmFyLCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcyksIGRlcHRoLCAwLCBpbXBvcnRlZEVudmlyb25t
ZW50LCBlbnRyeS53YXRjaHBvaW50U2V0KCksIGVudHJ5LnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCks
IHJlc29sdXRpb24ubG9jYWxOYW1lLmltcGwoKSk7CisgICAgICAgICAgICBpZiAoIWVudHJ5Lmlz
TnVsbCgpKSB7CisgICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AobWFrZVR5cGUoQ2xvc3Vy
ZVZhciwgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpLCBkZXB0aCwgMCwgbGV4aWNhbEVudmlyb25t
ZW50LCBlbnRyeS53YXRjaHBvaW50U2V0KCksIGVudHJ5LnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoc2NvcGUtPnR5cGUoKSA9PSBNb2R1bGVFbnZpcm9ubWVudFR5cGUpIHsKKyAgICAg
ICAgICAgICAgICBKU01vZHVsZUVudmlyb25tZW50KiBtb2R1bGVFbnZpcm9ubWVudCA9IGpzQ2Fz
dDxKU01vZHVsZUVudmlyb25tZW50Kj4oc2NvcGUpOworICAgICAgICAgICAgICAgIEpTTW9kdWxl
UmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBtb2R1bGVFbnZpcm9ubWVudC0+bW9kdWxlUmVjb3JkKCk7
CisgICAgICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x1dGlvbiA9
IG1vZHVsZVJlY29yZC0+cmVzb2x2ZUltcG9ydChleGVjLCBpZGVudCk7CisgICAgICAgICAgICAg
ICAgaWYgKHJlc29sdXRpb24udHlwZSA9PSBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbjo6VHlw
ZTo6UmVzb2x2ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIGltcG9y
dGVkUmVjb3JkID0gcmVzb2x1dGlvbi5tb2R1bGVSZWNvcmQ7CisgICAgICAgICAgICAgICAgICAg
IEpTTW9kdWxlRW52aXJvbm1lbnQqIGltcG9ydGVkRW52aXJvbm1lbnQgPSBpbXBvcnRlZFJlY29y
ZC0+bW9kdWxlRW52aXJvbm1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3ltYm9sVGFibGUq
IHN5bWJvbFRhYmxlID0gaW1wb3J0ZWRFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1f
bG9jayk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gaXRlciA9IHN5bWJvbFRhYmxlLT5maW5k
KGxvY2tlciwgcmVzb2x1dGlvbi5sb2NhbE5hbWUuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSYgZW50cnkgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CisgICAgICAgICAgICAgICAgICAg
IG9wID0gUmVzb2x2ZU9wKG1ha2VUeXBlKE1vZHVsZVZhciwgbmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MpLCBkZXB0aCwgMCwgaW1wb3J0ZWRFbnZpcm9ubWVudCwgZW50cnkud2F0Y2hwb2ludFNldCgp
LCBlbnRyeS5zY29wZU9mZnNldCgpLm9mZnNldCgpLCByZXNvbHV0aW9uLmxvY2FsTmFtZS5pbXBs
KCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobGV4aWNhbEVudmlyb25t
ZW50LT5zeW1ib2xUYWJsZSgpLT51c2VzTm9uU3RyaWN0RXZhbCgpKQorICAgICAgICBpZiAoc3lt
Ym9sVGFibGUtPnVzZXNOb25TdHJpY3RFdmFsKCkpCiAgICAgICAgICAgICBuZWVkc1ZhckluamVj
dGlvbkNoZWNrcyA9IHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBp
ZiAoc2NvcGUtPmlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkpIHsKICAgICAgICAgSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQqIGdsb2JhbExleGljYWxFbnZpcm9ubWVudCA9IGpzQ2FzdDxK
U0dsb2JhbExleGljYWxFbnZpcm9ubWVudCo+KHNjb3BlKTsKLSAgICAgICAgU3ltYm9sVGFibGVF
bnRyeSBlbnRyeSA9IGdsb2JhbExleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+Z2V0
KGlkZW50LmltcGwoKSk7Ci0gICAgICAgIGlmICghZW50cnkuaXNOdWxsKCkpIHsKKyAgICAgICAg
U3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0gZ2xvYmFsTGV4aWNhbEVudmlyb25tZW50LT5zeW1i
b2xUYWJsZSgpOworICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihzeW1ib2xUYWJs
ZS0+bV9sb2NrKTsKKyAgICAgICAgYXV0byBpdGVyID0gc3ltYm9sVGFibGUtPmZpbmQobG9ja2Vy
LCBpZGVudC5pbXBsKCkpOworICAgICAgICBpZiAoaXRlciAhPSBzeW1ib2xUYWJsZS0+ZW5kKGxv
Y2tlcikgJiYgIWl0ZXItPnZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBTeW1ib2xUYWJs
ZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOwogICAgICAgICAgICAgaWYgKGdldE9yUHV0ID09
IFB1dCAmJiBlbnRyeS5pc1JlYWRPbmx5KCkgJiYgIWlzSW5pdGlhbGl6YXRpb24oaW5pdGlhbGl6
YXRpb25Nb2RlKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhlIHByb3BlcnR5IHdp
bGwgYmUgYXQgZ2xvYmFsIGxleGljYWwgZW52aXJvbm1lbnQsIGJ1dCB3ZSBkb24ndCBrbm93IGhv
dyB0byBjYWNoZSBpdC4KICAgICAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5hbWljLCAw
LCAwLCAwLCAwLCAwKTsKQEAgLTExOCwxOCArMTI5LDIzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBh
YnN0cmFjdEFjY2VzcyhFeGVjU3QKIAogICAgIGlmIChzY29wZS0+aXNHbG9iYWxPYmplY3QoKSkg
ewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNDYXN0PEpTR2xvYmFs
T2JqZWN0Kj4oc2NvcGUpOwotICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gZ2xvYmFs
T2JqZWN0LT5zeW1ib2xUYWJsZSgpLT5nZXQoaWRlbnQuaW1wbCgpKTsKLSAgICAgICAgaWYgKCFl
bnRyeS5pc051bGwoKSkgewotICAgICAgICAgICAgaWYgKGdldE9yUHV0ID09IFB1dCAmJiBlbnRy
eS5pc1JlYWRPbmx5KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBwcm9wZXJ0
eSB3aWxsIGJlIGF0IGdsb2JhbCBzY29wZSwgYnV0IHdlIGRvbid0IGtub3cgaG93IHRvIGNhY2hl
IGl0LgotICAgICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKER5bmFtaWMsIDAsIDAsIDAsIDAs
IDApOworICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUgPSBn
bG9iYWxPYmplY3QtPnN5bWJvbFRhYmxlKCk7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKKyAgICAgICAgICAgIGF1dG8gaXRlciA9
IGdsb2JhbE9iamVjdC0+c3ltYm9sVGFibGUoKS0+ZmluZChsb2NrZXIsIGlkZW50LmltcGwoKSk7
CisgICAgICAgICAgICBpZiAoaXRlciAhPSBzeW1ib2xUYWJsZS0+ZW5kKGxvY2tlcikgJiYgIWl0
ZXItPnZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSYg
ZW50cnkgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0gUHV0
ICYmIGVudHJ5LmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBrbm93
IHRoZSBwcm9wZXJ0eSB3aWxsIGJlIGF0IGdsb2JhbCBzY29wZSwgYnV0IHdlIGRvbid0IGtub3cg
aG93IHRvIGNhY2hlIGl0LgorICAgICAgICAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5h
bWljLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoCisgICAg
ICAgICAgICAgICAgICAgIG1ha2VUeXBlKEdsb2JhbFZhciwgbmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MpLCBkZXB0aCwgMCwgMCwgZW50cnkud2F0Y2hwb2ludFNldCgpLAorICAgICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJsZUF0
KGVudHJ5LnNjb3BlT2Zmc2V0KCkpLnNsb3QoKSkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBvcCA9IFJlc29sdmVPcCgKLSAgICAg
ICAgICAgICAgICBtYWtlVHlwZShHbG9iYWxWYXIsIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKSwg
ZGVwdGgsIDAsIDAsIGVudHJ5LndhdGNocG9pbnRTZXQoKSwKLSAgICAgICAgICAgICAgICByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJsZUF0KGVudHJ5LnNj
b3BlT2Zmc2V0KCkpLnNsb3QoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChnbG9iYWxPYmplY3QsIFByb3BlcnR5U2xv
dDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279512</attachid>
            <date>2016-05-20 16:13:16 -0700</date>
            <delta_ts>2016-05-20 16:25:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>7088</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxMjI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTA1LTIwICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEpTU2NvcGU6OmFic3RyYWN0QWNjZXNzIGRvZXNuJ3QgbmVlZCB0byBjb3B5IHRoZSBTeW1ib2xU
YWJsZUVudHJ5LCBpdCBjYW4gdXNlIGl0IGJ5IHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBTeW1ib2xUYWJsZUVudHJ5IG1heSBiZSBh
IEZhdEVudHJ5LiBDb3B5aW5nIGEgRmF0RW50cnkgaXMgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8K
KyAgICAgICAgbWFsbG9jIG1lbW9yeSBmb3IgaXQsIHRoZW4gZnJlZSB0aGUgbWFsbG9jZWQgbWVt
b3J5IG9uY2UgdGhlIGVudHJ5IGdvZXMgb3V0IG9mCisgICAgICAgIHNjb3BlLiBhYnN0cmFjdEFj
Y2VzcyB1c2VzIGEgU3ltYm9sVGFibGVFbnRyeSB0ZW1wb3JhcmlseSB3aGVuIHBlcmZvcm1pbmcg
c2NvcGUKKyAgICAgICAgYWNjZXNzZXMgZHVyaW5nIGJ5dGVjb2RlIGxpbmtpbmcuIEl0IGNvcGll
cyBvdXQgdGhlIFN5bWJvbFRhYmxlRW50cnkgZXZlcnkgdGltZQorICAgICAgICBpdCBkb2VzIGEg
U3ltYm9sVGFibGUgbG9va3VwLiBUaGlzIGlzIG5vdCBjaGVhcCB3aGVuIHRoZSBlbnRyeSBoYXBw
ZW5zIHRvIGJlIGEKKyAgICAgICAgRmF0RW50cnkuIFdlIHNob3VsZCByZWFsbHkganVzdCBiZSB1
c2luZyBhIHJlZmVyZW5jZSB0byB0aGUgZW50cnkgYmVjYXVzZQorICAgICAgICB0aGVyZSBpcyBu
byBuZWVkIHRvIGNvcHkgaXQgaW4gc3VjaCBhIHNjZW5hcmlvLgorCisgICAgICAgICogcnVudGlt
ZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6YWJzdHJhY3RBY2Nlc3MpOgorCiAyMDE2LTA1
LTIwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVpZnlB
bGxTdGF0aWNQcm9wZXJ0aWVzIG1ha2VzIHR3byBjb3BpZXMgb2YgZXZlcnkgc3RyaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAkocmV2aXNpb24gMjAx
MjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDQyICs1Niw1MSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWJzdHJhY3RB
Y2Nlc3MoRXhlY1N0CiAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5hbWljLCAwLCAwLCAw
LCAwLCAwKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIFN5
bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUo
KTsKKyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9j
ayk7CisgICAgICAgIGF1dG8gaXRlciA9IHN5bWJvbFRhYmxlLT5maW5kKGxvY2tlciwgaWRlbnQu
aW1wbCgpKTsKKyAgICAgICAgaWYgKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKSB7
CisgICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOworICAg
ICAgICAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CisgICAgICAgICAgICBpZiAoZW50cnku
aXNSZWFkT25seSgpICYmIGdldE9yUHV0ID09IFB1dCkgeworICAgICAgICAgICAgICAgIC8vIFdl
IGtub3cgdGhlIHByb3BlcnR5IHdpbGwgYmUgYXQgdGhpcyBsZXhpY2FsIGVudmlyb25tZW50IHNj
b3BlLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgdG8gY2FjaGUgaXQuCisgICAgICAgICAgICAgICAg
b3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBl
bnRyeSA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+Z2V0KGlkZW50LmltcGwo
KSk7Ci0gICAgICAgIGlmIChlbnRyeS5pc1JlYWRPbmx5KCkgJiYgZ2V0T3JQdXQgPT0gUHV0KSB7
Ci0gICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBwcm9wZXJ0eSB3aWxsIGJlIGF0IHRoaXMgbGV4
aWNhbCBlbnZpcm9ubWVudCBzY29wZSwgYnV0IHdlIGRvbid0IGtub3cgaG93IHRvIGNhY2hlIGl0
LgotICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwgMCwgMCk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghZW50cnku
aXNOdWxsKCkpIHsKICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKG1ha2VUeXBlKENsb3N1cmVW
YXIsIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKSwgZGVwdGgsIDAsIGxleGljYWxFbnZpcm9ubWVu
dCwgZW50cnkud2F0Y2hwb2ludFNldCgpLCBlbnRyeS5zY29wZU9mZnNldCgpLm9mZnNldCgpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNjb3Bl
LT50eXBlKCkgPT0gTW9kdWxlRW52aXJvbm1lbnRUeXBlKSB7CisgICAgICAgIH0gZWxzZSBpZiAo
c2NvcGUtPnR5cGUoKSA9PSBNb2R1bGVFbnZpcm9ubWVudFR5cGUpIHsKICAgICAgICAgICAgIEpT
TW9kdWxlRW52aXJvbm1lbnQqIG1vZHVsZUVudmlyb25tZW50ID0ganNDYXN0PEpTTW9kdWxlRW52
aXJvbm1lbnQqPihzY29wZSk7CiAgICAgICAgICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVj
b3JkID0gbW9kdWxlRW52aXJvbm1lbnQtPm1vZHVsZVJlY29yZCgpOwogICAgICAgICAgICAgSlNN
b2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x1dGlvbiA9IG1vZHVsZVJlY29yZC0+cmVzb2x2
ZUltcG9ydChleGVjLCBpZGVudCk7CiAgICAgICAgICAgICBpZiAocmVzb2x1dGlvbi50eXBlID09
IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCkgewogICAgICAgICAg
ICAgICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZFJlY29yZCA9IHJlc29sdXRpb24ubW9kdWxl
UmVjb3JkOwogICAgICAgICAgICAgICAgIEpTTW9kdWxlRW52aXJvbm1lbnQqIGltcG9ydGVkRW52
aXJvbm1lbnQgPSBpbXBvcnRlZFJlY29yZC0+bW9kdWxlRW52aXJvbm1lbnQoKTsKLSAgICAgICAg
ICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gaW1wb3J0ZWRFbnZpcm9ubWVudC0+c3lt
Ym9sVGFibGUoKS0+Z2V0KHJlc29sdXRpb24ubG9jYWxOYW1lLmltcGwoKSk7CisgICAgICAgICAg
ICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0gaW1wb3J0ZWRFbnZpcm9ubWVudC0+c3lt
Ym9sVGFibGUoKTsKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihz
eW1ib2xUYWJsZS0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBhdXRvIGl0ZXIgPSBzeW1ib2xU
YWJsZS0+ZmluZChsb2NrZXIsIHJlc29sdXRpb24ubG9jYWxOYW1lLmltcGwoKSk7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKTsKKyAgICAg
ICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOwogICAgICAg
ICAgICAgICAgIEFTU0VSVCghZW50cnkuaXNOdWxsKCkpOwogICAgICAgICAgICAgICAgIG9wID0g
UmVzb2x2ZU9wKG1ha2VUeXBlKE1vZHVsZVZhciwgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpLCBk
ZXB0aCwgMCwgaW1wb3J0ZWRFbnZpcm9ubWVudCwgZW50cnkud2F0Y2hwb2ludFNldCgpLCBlbnRy
eS5zY29wZU9mZnNldCgpLm9mZnNldCgpLCByZXNvbHV0aW9uLmxvY2FsTmFtZS5pbXBsKCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+dXNlc05vblN0
cmljdEV2YWwoKSkKKyAgICAgICAgaWYgKHN5bWJvbFRhYmxlLT51c2VzTm9uU3RyaWN0RXZhbCgp
KQogICAgICAgICAgICAgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MgPSB0cnVlOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZp
cm9ubWVudCgpKSB7CiAgICAgICAgIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KiBnbG9iYWxM
ZXhpY2FsRW52aXJvbm1lbnQgPSBqc0Nhc3Q8SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQqPihz
Y29wZSk7Ci0gICAgICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkgPSBnbG9iYWxMZXhpY2FsRW52
aXJvbm1lbnQtPnN5bWJvbFRhYmxlKCktPmdldChpZGVudC5pbXBsKCkpOwotICAgICAgICBpZiAo
IWVudHJ5LmlzTnVsbCgpKSB7CisgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IGds
b2JhbExleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKTsKKyAgICAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9jayk7CisgICAgICAgIGF1dG8gaXRl
ciA9IHN5bWJvbFRhYmxlLT5maW5kKGxvY2tlciwgaWRlbnQuaW1wbCgpKTsKKyAgICAgICAgaWYg
KGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKSB7CisgICAgICAgICAgICBTeW1ib2xU
YWJsZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgQVNTRVJUKCFlbnRy
eS5pc051bGwoKSk7CiAgICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0gUHV0ICYmIGVudHJ5Lmlz
UmVhZE9ubHkoKSAmJiAhaXNJbml0aWFsaXphdGlvbihpbml0aWFsaXphdGlvbk1vZGUpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGUgcHJvcGVydHkgd2lsbCBiZSBhdCBnbG9iYWwg
bGV4aWNhbCBlbnZpcm9ubWVudCwgYnV0IHdlIGRvbid0IGtub3cgaG93IHRvIGNhY2hlIGl0Lgog
ICAgICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKER5bmFtaWMsIDAsIDAsIDAsIDAsIDApOwpA
QCAtMTE4LDE4ICsxMjcsMjQgQEAgc3RhdGljIGlubGluZSBib29sIGFic3RyYWN0QWNjZXNzKEV4
ZWNTdAogCiAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbE9iamVjdCgpKSB7CiAgICAgICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihzY29wZSk7
Ci0gICAgICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkgPSBnbG9iYWxPYmplY3QtPnN5bWJvbFRh
YmxlKCktPmdldChpZGVudC5pbXBsKCkpOwotICAgICAgICBpZiAoIWVudHJ5LmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0gUHV0ICYmIGVudHJ5LmlzUmVhZE9ubHkoKSkg
ewotICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhlIHByb3BlcnR5IHdpbGwgYmUgYXQgZ2xv
YmFsIHNjb3BlLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgdG8gY2FjaGUgaXQuCi0gICAgICAgICAg
ICAgICAgb3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwgMCwgMCk7CisgICAgICAgIHsK
KyAgICAgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IGdsb2JhbE9iamVjdC0+c3lt
Ym9sVGFibGUoKTsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJv
bFRhYmxlLT5tX2xvY2spOworICAgICAgICAgICAgYXV0byBpdGVyID0gc3ltYm9sVGFibGUtPmZp
bmQobG9ja2VyLCBpZGVudC5pbXBsKCkpOworICAgICAgICAgICAgaWYgKGl0ZXIgIT0gc3ltYm9s
VGFibGUtPmVuZChsb2NrZXIpKSB7CisgICAgICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSYg
ZW50cnkgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWVudHJ5LmlzTnVs
bCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0gUHV0ICYmIGVudHJ5LmlzUmVh
ZE9ubHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBwcm9wZXJ0eSB3
aWxsIGJlIGF0IGdsb2JhbCBzY29wZSwgYnV0IHdlIGRvbid0IGtub3cgaG93IHRvIGNhY2hlIGl0
LgorICAgICAgICAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5hbWljLCAwLCAwLCAwLCAw
LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoCisgICAgICAgICAgICAgICAgICAg
IG1ha2VUeXBlKEdsb2JhbFZhciwgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpLCBkZXB0aCwgMCwg
MCwgZW50cnkud2F0Y2hwb2ludFNldCgpLAorICAgICAgICAgICAgICAgICAgICByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJsZUF0KGVudHJ5LnNjb3BlT2Zm
c2V0KCkpLnNsb3QoKSkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBvcCA9IFJlc29sdmVPcCgKLSAgICAgICAgICAgICAgICBtYWtl
VHlwZShHbG9iYWxWYXIsIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKSwgZGVwdGgsIDAsIDAsIGVu
dHJ5LndhdGNocG9pbnRTZXQoKSwKLSAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJsZUF0KGVudHJ5LnNjb3BlT2Zmc2V0KCkpLnNs
b3QoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdChnbG9iYWxPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpWTUlucXVpcnkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279513</attachid>
            <date>2016-05-20 16:25:23 -0700</date>
            <delta_ts>2016-05-20 16:32:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>6992</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxMjI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTA1LTIwICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEpTU2NvcGU6OmFic3RyYWN0QWNjZXNzIGRvZXNuJ3QgbmVlZCB0byBjb3B5IHRoZSBTeW1ib2xU
YWJsZUVudHJ5LCBpdCBjYW4gdXNlIGl0IGJ5IHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBTeW1ib2xUYWJsZUVudHJ5IG1heSBiZSBh
IEZhdEVudHJ5LiBDb3B5aW5nIGEgRmF0RW50cnkgaXMgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8K
KyAgICAgICAgbWFsbG9jIG1lbW9yeSBmb3IgaXQsIHRoZW4gZnJlZSB0aGUgbWFsbG9jZWQgbWVt
b3J5IG9uY2UgdGhlIGVudHJ5IGdvZXMgb3V0IG9mCisgICAgICAgIHNjb3BlLiBhYnN0cmFjdEFj
Y2VzcyB1c2VzIGEgU3ltYm9sVGFibGVFbnRyeSB0ZW1wb3JhcmlseSB3aGVuIHBlcmZvcm1pbmcg
c2NvcGUKKyAgICAgICAgYWNjZXNzZXMgZHVyaW5nIGJ5dGVjb2RlIGxpbmtpbmcuIEl0IGNvcGll
cyBvdXQgdGhlIFN5bWJvbFRhYmxlRW50cnkgZXZlcnkgdGltZQorICAgICAgICBpdCBkb2VzIGEg
U3ltYm9sVGFibGUgbG9va3VwLiBUaGlzIGlzIG5vdCBjaGVhcCB3aGVuIHRoZSBlbnRyeSBoYXBw
ZW5zIHRvIGJlIGEKKyAgICAgICAgRmF0RW50cnkuIFdlIHNob3VsZCByZWFsbHkganVzdCBiZSB1
c2luZyBhIHJlZmVyZW5jZSB0byB0aGUgZW50cnkgYmVjYXVzZQorICAgICAgICB0aGVyZSBpcyBu
byBuZWVkIHRvIGNvcHkgaXQgaW4gc3VjaCBhIHNjZW5hcmlvLgorCisgICAgICAgICogcnVudGlt
ZS9KU1Njb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6YWJzdHJhY3RBY2Nlc3MpOgorCiAyMDE2LTA1
LTIwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgcmVpZnlB
bGxTdGF0aWNQcm9wZXJ0aWVzIG1ha2VzIHR3byBjb3BpZXMgb2YgZXZlcnkgc3RyaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAkocmV2aXNpb24gMjAx
MjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDE5ICs1NiwyMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWJzdHJhY3RB
Y2Nlc3MoRXhlY1N0CiAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChEeW5hbWljLCAwLCAwLCAw
LCAwLCAwKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIFN5
bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUo
KTsKKyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9j
ayk7CisgICAgICAgIGF1dG8gaXRlciA9IHN5bWJvbFRhYmxlLT5maW5kKGxvY2tlciwgaWRlbnQu
aW1wbCgpKTsKKyAgICAgICAgaWYgKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKSB7
CisgICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOworICAg
ICAgICAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CisgICAgICAgICAgICBpZiAoZW50cnku
aXNSZWFkT25seSgpICYmIGdldE9yUHV0ID09IFB1dCkgeworICAgICAgICAgICAgICAgIC8vIFdl
IGtub3cgdGhlIHByb3BlcnR5IHdpbGwgYmUgYXQgdGhpcyBsZXhpY2FsIGVudmlyb25tZW50IHNj
b3BlLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgdG8gY2FjaGUgaXQuCisgICAgICAgICAgICAgICAg
b3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBl
bnRyeSA9IGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+Z2V0KGlkZW50LmltcGwo
KSk7Ci0gICAgICAgIGlmIChlbnRyeS5pc1JlYWRPbmx5KCkgJiYgZ2V0T3JQdXQgPT0gUHV0KSB7
Ci0gICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBwcm9wZXJ0eSB3aWxsIGJlIGF0IHRoaXMgbGV4
aWNhbCBlbnZpcm9ubWVudCBzY29wZSwgYnV0IHdlIGRvbid0IGtub3cgaG93IHRvIGNhY2hlIGl0
LgotICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwgMCwgMCk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghZW50cnku
aXNOdWxsKCkpIHsKICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKG1ha2VUeXBlKENsb3N1cmVW
YXIsIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKSwgZGVwdGgsIDAsIGxleGljYWxFbnZpcm9ubWVu
dCwgZW50cnkud2F0Y2hwb2ludFNldCgpLCBlbnRyeS5zY29wZU9mZnNldCgpLm9mZnNldCgpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0KICAgICAgICAgaWYgKHNjb3Bl
LT50eXBlKCkgPT0gTW9kdWxlRW52aXJvbm1lbnRUeXBlKSB7CiAgICAgICAgICAgICBKU01vZHVs
ZUVudmlyb25tZW50KiBtb2R1bGVFbnZpcm9ubWVudCA9IGpzQ2FzdDxKU01vZHVsZUVudmlyb25t
ZW50Kj4oc2NvcGUpOwogICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9
IG1vZHVsZUVudmlyb25tZW50LT5tb2R1bGVSZWNvcmQoKTsKQEAgLTc2LDIyICs3OCwzMCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgYWJzdHJhY3RBY2Nlc3MoRXhlY1N0CiAgICAgICAgICAgICBpZiAo
cmVzb2x1dGlvbi50eXBlID09IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uOjpUeXBlOjpSZXNv
bHZlZCkgewogICAgICAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZFJlY29yZCA9
IHJlc29sdXRpb24ubW9kdWxlUmVjb3JkOwogICAgICAgICAgICAgICAgIEpTTW9kdWxlRW52aXJv
bm1lbnQqIGltcG9ydGVkRW52aXJvbm1lbnQgPSBpbXBvcnRlZFJlY29yZC0+bW9kdWxlRW52aXJv
bm1lbnQoKTsKLSAgICAgICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gaW1wb3J0
ZWRFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKS0+Z2V0KHJlc29sdXRpb24ubG9jYWxOYW1lLmlt
cGwoKSk7CisgICAgICAgICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlID0gaW1wb3J0
ZWRFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKTsKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihzeW1ib2xUYWJsZS0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBh
dXRvIGl0ZXIgPSBzeW1ib2xUYWJsZS0+ZmluZChsb2NrZXIsIHJlc29sdXRpb24ubG9jYWxOYW1l
LmltcGwoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVu
ZChsb2NrZXIpKTsKKyAgICAgICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5JiBlbnRyeSA9IGl0
ZXItPnZhbHVlOwogICAgICAgICAgICAgICAgIEFTU0VSVCghZW50cnkuaXNOdWxsKCkpOwogICAg
ICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKG1ha2VUeXBlKE1vZHVsZVZhciwgbmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MpLCBkZXB0aCwgMCwgaW1wb3J0ZWRFbnZpcm9ubWVudCwgZW50cnkud2F0
Y2hwb2ludFNldCgpLCBlbnRyeS5zY29wZU9mZnNldCgpLm9mZnNldCgpLCByZXNvbHV0aW9uLmxv
Y2FsTmFtZS5pbXBsKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGxleGljYWxFbnZpcm9ubWVudC0+c3ltYm9s
VGFibGUoKS0+dXNlc05vblN0cmljdEV2YWwoKSkKKyAgICAgICAgaWYgKHN5bWJvbFRhYmxlLT51
c2VzTm9uU3RyaWN0RXZhbCgpKQogICAgICAgICAgICAgbmVlZHNWYXJJbmplY3Rpb25DaGVja3Mg
PSB0cnVlOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKHNjb3BlLT5p
c0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7CiAgICAgICAgIEpTR2xvYmFsTGV4aWNhbEVu
dmlyb25tZW50KiBnbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgPSBqc0Nhc3Q8SlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQqPihzY29wZSk7Ci0gICAgICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkg
PSBnbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQtPnN5bWJvbFRhYmxlKCktPmdldChpZGVudC5pbXBs
KCkpOwotICAgICAgICBpZiAoIWVudHJ5LmlzTnVsbCgpKSB7CisgICAgICAgIFN5bWJvbFRhYmxl
KiBzeW1ib2xUYWJsZSA9IGdsb2JhbExleGljYWxFbnZpcm9ubWVudC0+c3ltYm9sVGFibGUoKTsK
KyAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUtPm1fbG9jayk7
CisgICAgICAgIGF1dG8gaXRlciA9IHN5bWJvbFRhYmxlLT5maW5kKGxvY2tlciwgaWRlbnQuaW1w
bCgpKTsKKyAgICAgICAgaWYgKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKSB7Cisg
ICAgICAgICAgICBTeW1ib2xUYWJsZUVudHJ5JiBlbnRyeSA9IGl0ZXItPnZhbHVlOworICAgICAg
ICAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7CiAgICAgICAgICAgICBpZiAoZ2V0T3JQdXQg
PT0gUHV0ICYmIGVudHJ5LmlzUmVhZE9ubHkoKSAmJiAhaXNJbml0aWFsaXphdGlvbihpbml0aWFs
aXphdGlvbk1vZGUpKSB7CiAgICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGUgcHJvcGVydHkg
d2lsbCBiZSBhdCBnbG9iYWwgbGV4aWNhbCBlbnZpcm9ubWVudCwgYnV0IHdlIGRvbid0IGtub3cg
aG93IHRvIGNhY2hlIGl0LgogICAgICAgICAgICAgICAgIG9wID0gUmVzb2x2ZU9wKER5bmFtaWMs
IDAsIDAsIDAsIDAsIDApOwpAQCAtMTE4LDE4ICsxMjgsMjQgQEAgc3RhdGljIGlubGluZSBib29s
IGFic3RyYWN0QWNjZXNzKEV4ZWNTdAogCiAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbE9iamVjdCgp
KSB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNHbG9i
YWxPYmplY3QqPihzY29wZSk7Ci0gICAgICAgIFN5bWJvbFRhYmxlRW50cnkgZW50cnkgPSBnbG9i
YWxPYmplY3QtPnN5bWJvbFRhYmxlKCktPmdldChpZGVudC5pbXBsKCkpOwotICAgICAgICBpZiAo
IWVudHJ5LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0gUHV0ICYmIGVu
dHJ5LmlzUmVhZE9ubHkoKSkgewotICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhlIHByb3Bl
cnR5IHdpbGwgYmUgYXQgZ2xvYmFsIHNjb3BlLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgdG8gY2Fj
aGUgaXQuCi0gICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoRHluYW1pYywgMCwgMCwgMCwg
MCwgMCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSA9
IGdsb2JhbE9iamVjdC0+c3ltYm9sVGFibGUoKTsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2spOworICAgICAgICAgICAgYXV0byBpdGVy
ID0gc3ltYm9sVGFibGUtPmZpbmQobG9ja2VyLCBpZGVudC5pbXBsKCkpOworICAgICAgICAgICAg
aWYgKGl0ZXIgIT0gc3ltYm9sVGFibGUtPmVuZChsb2NrZXIpKSB7CisgICAgICAgICAgICAgICAg
U3ltYm9sVGFibGVFbnRyeSYgZW50cnkgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoIWVudHJ5LmlzTnVsbCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0T3JQdXQgPT0g
UHV0ICYmIGVudHJ5LmlzUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBr
bm93IHRoZSBwcm9wZXJ0eSB3aWxsIGJlIGF0IGdsb2JhbCBzY29wZSwgYnV0IHdlIGRvbid0IGtu
b3cgaG93IHRvIGNhY2hlIGl0LgorICAgICAgICAgICAgICAgICAgICBvcCA9IFJlc29sdmVPcChE
eW5hbWljLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3AgPSBSZXNvbHZlT3AoCisg
ICAgICAgICAgICAgICAgICAgIG1ha2VUeXBlKEdsb2JhbFZhciwgbmVlZHNWYXJJbmplY3Rpb25D
aGVja3MpLCBkZXB0aCwgMCwgMCwgZW50cnkud2F0Y2hwb2ludFNldCgpLAorICAgICAgICAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJs
ZUF0KGVudHJ5LnNjb3BlT2Zmc2V0KCkpLnNsb3QoKSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBvcCA9IFJlc29sdmVPcCgKLSAg
ICAgICAgICAgICAgICBtYWtlVHlwZShHbG9iYWxWYXIsIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tz
KSwgZGVwdGgsIDAsIDAsIGVudHJ5LndhdGNocG9pbnRTZXQoKSwKLSAgICAgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZ2xvYmFsT2JqZWN0LT52YXJpYWJsZUF0KGVudHJ5
LnNjb3BlT2Zmc2V0KCkpLnNsb3QoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChnbG9iYWxPYmplY3QsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpOwo=
</data>
<flag name="review"
          id="303563"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>