<?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>57570</bug_id>
          
          <creation_ts>2011-03-31 13:18:08 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs layoutTestController.dumpDatabaseCallbacks</short_desc>
          <delta_ts>2012-09-15 08:10:23 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          <dependson>57568</dependson>
    
    <dependson>96862</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>377393</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-03-31 13:18:08 -0700</bug_when>
    <thetext>Failed tests include at least:
storage/quota-tracking.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720655</commentid>
    <comment_count>1</comment_count>
      <attachid>164123</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-14 06:04:41 -0700</bug_when>
    <thetext>Created attachment 164123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720830</commentid>
    <comment_count>2</comment_count>
      <attachid>164123</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 09:32:55 -0700</bug_when>
    <thetext>Comment on attachment 164123
Patch

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:546
&gt; +    if (!newQuota) {
&gt; +        WebProcess::shared().connection()-&gt;sendSync(
&gt; +            Messages::WebPageProxy::ExceededDatabaseQuota(webFrame-&gt;frameID(), origin-&gt;databaseIdentifier(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage()),
&gt; +            Messages::WebPageProxy::ExceededDatabaseQuota::Reply(newQuota), m_page-&gt;pageID());
&gt; +    }

So zero can not exceed, makes sense</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720836</commentid>
    <comment_count>3</comment_count>
      <attachid>164171</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 09:36:25 -0700</bug_when>
    <thetext>Created attachment 164171
Python script

If anyone knows python better than me, this script can probably be fixed up and included in Tools/Scripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720837</commentid>
    <comment_count>4</comment_count>
      <attachid>164171</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 09:36:51 -0700</bug_when>
    <thetext>Comment on attachment 164171
Python script

Wrong bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720862</commentid>
    <comment_count>5</comment_count>
      <attachid>164123</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 09:59:14 -0700</bug_when>
    <thetext>Comment on attachment 164123
Patch

Clearing flags on attachment: 164123

Committed r128623: &lt;http://trac.webkit.org/changeset/128623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720863</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 09:59:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720886</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-14 10:11:48 -0700</bug_when>
    <thetext>Why did you change kWKBundlePageUIClientCurrentVersion? The previous version change was just two days ago, I&apos;m pretty sure that&apos;s not how it is supposed to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720890</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 10:14:00 -0700</bug_when>
    <thetext>Chris told me that Anders told him to bump the version every time he added a new method. I personally think that we can do better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720893</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-14 10:17:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Why did you change kWKBundlePageUIClientCurrentVersion? The previous version change was just two days ago, I&apos;m pretty sure that&apos;s not how it is supposed to work.

Is there a rule regarding when we are supposed to bump the version? So far my understanding was that I should bump the version every time I add a callback.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164123</attachid>
            <date>2012-09-14 06:04:41 -0700</date>
            <delta_ts>2012-09-14 09:59:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>57570_dumpDatabaseCallbacks.patch</filename>
            <type>text/plain</type>
            <size>23657</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOTUwZTQwLi5jMzE5MjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTItMDkt
MTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAorICAg
ICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBEYXRh
YmFzZUNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTc1NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVbnNraXAgc2V2ZXJhbCB0ZXN0IGNhc2VzIHdoaWNoIHJlcXVpcmUgaW1wbGVtZW50YXRp
b24gb2YKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wRGF0YWJhc2VDYWxsYmFja3MgaW4gV2ViS2l0
VGVzdFJ1bm5lci4KKworICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCisyMDEyLTA5
LTE0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKICAg
ICAgICAgW1dLMl0gTW92ZSBnbG9iYWxoaXN0b3J5IHRlc3RzIHRvIHRoZWlyIGNvcnJlY3Qgc2Vj
dGlvbiBpbiBTa2lwcGVkIGxpc3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk2NzM4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggYTY5MGNj
OC4uMjUxNGMzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTMwOCwxMSArMzA4LDYg
QEAgcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRpb25VSS1kaWZmZXJpbmctYmFj
a2dyb3VuZC5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJLW1p
bmltdW0tc2l6ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGlvblVJ
LXN1Y2Nlc3NmdWwtZGVsZXRpb24uaHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzCi0jIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzA+Ci1zdG9yYWdlL3dlYnNxbC9vcGVuLWRh
dGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLmh0bWwKLXN0b3JhZ2Uvd2Vic3FsL3F1b3RhLXRyYWNr
aW5nLmh0bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uCiAjIGFuZCBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRNb2NrR2VvbG9jYXRpb25FcnJvcgogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU5MjAxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFlZGI4MzEuLjNiYzI4ZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wOS0xNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgZGlkRXhjZWVkRGF0YWJh
c2VRdW90YSBjYWxsYmFjayB0byBXS0J1bmRsZVBhZ2VVSUNsaWVudAorICAgICAgICBhbmQgY2Fs
bCBpdCBmcm9tIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKCkuCisgICAg
ICAgIFRoaXMgaXMgbmVlZGVkIGJ5IFdlYktpdFRlc3RSdW5uZXIgdG8gZHVtcCBpbmZvcm1hdGlv
biBhYm91dAorICAgICAgICBkYXRhYmFzZSBjYWxsYmFja3MuCisKKyAgICAgICAgKiBTaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNl
dERhdGFiYXNlUXVvdGEpOiBDYWxsIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2V0UXVvdGFGb3JPcmln
aW4oKQorICAgICAgICB3aXRoICJmaWxlX18wIiBpbnN0ZWFkIG9mICJmaWxlOi8vLyIgYXMgb3Jp
Z2luIGlkZW50aWZpZXIuIFdlYkRhdGFiYXNlTWFuYWdlciBleHBlY3RzCisgICAgICAgIGEgZGF0
YWJhc2UgaWRlbnRpZmllciwgbm90IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzZWN1
cml0eSBvcmlnaW4uICJmaWxlX18wIiBpcworICAgICAgICB0aGUgc3RyaW5nIHRoYXQgaXMgdXNl
ZCBhcyBkYXRhYmFzZUlkZW50aWZpZXIgb2YgbG9jYWwgZmlsZXMuIFRoaXMgYnVnIHdhcyBjYXVz
aW5nIHRoZQorICAgICAgICBkYXRhYmFzZSBxdW90YSBub3QgdG8gYmUgc2V0LiBUaGUgdGVzdCBj
YXNlcyB3b3VsZCB0aGVyZWZvcmUgZmFpbCBkdWUgdG8gdGhlIHF1b3RhIGJlaW5nCisgICAgICAg
IDAgaW5zdGVhZCBvZiB0aGUgdmFsdWUgZXhwbGljaXRseSBzZXQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpkaWRFeGNlZWREYXRhYmFz
ZVF1b3RhKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpl
eGNlZWRlZERhdGFiYXNlUXVvdGEpOgorCiAyMDEyLTA5LTE0ICBHcnplZ29yeiBDemFqa293c2tp
ICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBtZXRob2QgdG8gZ2V0
IHRoZSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgZGljdGlvbmFyaWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJQ2xpZW50VHJhaXRzLmgKaW5kZXggM2ZkMDNjZC4uOWI3NjYzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaApAQCAtNTUsNyArNTUsNyBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBUElDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudD4gewog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZVVJQ2xp
ZW50PiB7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvblsy
XTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzNdOwog
fTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJQ2xpZW50VHJhaXRzPFdLUGFnZUNvbnRleHRNZW51
Q2xpZW50PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCAyMDZlMWU5Li4wNGFiYzg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCB0eXBlZGVm
IFdLQnVuZGxlUGFnZVVJRWxlbWVudFZpc2liaWxpdHkgKCpXS0J1bmRsZVBhZ2VTdGF0dXNCYXJJ
c1Zpc2libGVDYWxsYmFjawogdHlwZWRlZiBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5
ICgqV0tCdW5kbGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIFdLQnVuZGxlUGFnZVVJRWxl
bWVudFZpc2liaWxpdHkgKCpXS0J1bmRsZVBhZ2VUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlUmVhY2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxsYmFjaykoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBpbnQ2NF90IHRv
dGFsQnl0ZXNOZWVkZWQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB1aW50NjRf
dCAoKldLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIGRhdGFi
YXNlTmFtZSwgV0tTdHJpbmdSZWYgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZUJ5dGVzLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlQnl0ZXMsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewog
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTI1OCwxMCArMjU5LDE0IEBAIHN0cnVjdCBXS0J1
bmRsZVBhZ2VVSUNsaWVudCB7CiAKICAgICAvLyBWZXJzaW9uIDEuCiAgICAgV0tCdW5kbGVQYWdl
UmVhY2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBk
aWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTsKKworICAgIC8vIFZlcnNpb24gMi4K
KyAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVvdGE7CisKIH07CiB0eXBlZGVmIHN0
cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCBXS0J1bmRsZVBhZ2VVSUNsaWVudDsKIAotZW51bSB7
IGtXS0J1bmRsZVBhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMSB9OworZW51bSB7IGtXS0J1
bmRsZVBhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uID0gMiB9OwogCiAvLyBFZGl0b3IgY2xpZW50
CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRCZWdpbkVkaXRpbmdDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA2MDllMzJiLi43
NmJlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzI3LDcgKzMyNyw5IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OmNsZWFyQWxsRGF0YWJhc2VzKCkKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldERhdGFiYXNlUXVvdGEodWludDY0X3QgcXVvdGEpCiB7CiAjaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKLSAgICBXZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpLnNldFF1b3RhRm9yT3JpZ2lu
KCJmaWxlOi8vLyIsIHF1b3RhKTsKKyAgICAvLyBIaXN0b3JpY2FsbHksIHdlJ3ZlIHVzZWQgdGhl
IGZvbGxvd2luZyAoc29tZXdoYXQgbm9uLXNlbnNpY2FsKSBzdHJpbmcKKyAgICAvLyBmb3IgdGhl
IGRhdGFiYXNlSWRlbnRpZmllciBvZiBsb2NhbCBmaWxlcy4KKyAgICBXZWJEYXRhYmFzZU1hbmFn
ZXI6OnNoYXJlZCgpLnNldFF1b3RhRm9yT3JpZ2luKCJmaWxlX18wIiwgcXVvdGEpOwogI2VuZGlm
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXgg
MmVmOWNhNy4uNjJhYTJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudC5jcHAKQEAgLTE1NSw0ICsxNTUsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudDo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZSogcGEKICAg
ICBtX2NsaWVudC5kaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0b0FQSShwYWdl
KSwgdG9BUEkob3JpZ2luKSwgdG90YWxCeXRlc05lZWRlZCwgbV9jbGllbnQuY2xpZW50SW5mbyk7
CiB9CiAKK3VpbnQ2NF90IEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpkaWRFeGNlZWREYXRh
YmFzZVF1b3RhKFdlYlBhZ2UqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlzcGxheU5hbWUs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2VC
eXRlcywgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2VCeXRlcywgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZUJ5dGVzKQoreworICAgIGlmICghbV9jbGllbnQuZGlkRXhjZWVkRGF0YWJhc2VRdW90
YSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9jbGllbnQuZGlkRXhjZWVkRGF0
YWJhc2VRdW90YSh0b0FQSShwYWdlKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkoZGF0YWJhc2VOYW1l
LmltcGwoKSksIHRvQVBJKGRhdGFiYXNlRGlzcGxheU5hbWUuaW1wbCgpKSwgY3VycmVudFF1b3Rh
Qnl0ZXMsIGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5dGVz
LCBleHBlY3RlZFVzYWdlQnl0ZXMsIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApp
bmRleCBiOGE0ODI3Li4xM2M4OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VV
SUNsaWVudC5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBXS0J1bmRsZVBhZ2VVSUVs
ZW1lbnRWaXNpYmlsaXR5IHRvb2xiYXJzQXJlVmlzaWJsZShXZWJQYWdlKik7CiAKICAgICB2b2lk
IGRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2UqLCBXZWJTZWN1cml0
eU9yaWdpbiosIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCk7CisgICAgdWludDY0X3QgZGlkRXhj
ZWVkRGF0YWJhc2VRdW90YShXZWJQYWdlKiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMs
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2VCeXRlcyk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCA0ZmI2NWJlLi44N2I1NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC01MzYsOSArNTM2LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlCiAgICAgdWludDY0X3Qg
Y3VycmVudFF1b3RhID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucXVvdGFGb3JPcmlnaW4o
b3JpZ2luKTsKICAgICB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS51c2FnZUZvck9yaWdpbihvcmlnaW4pOwogICAgIHVpbnQ2NF90IG5ld1F1
b3RhID0gMDsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KAotICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGEo
d2ViRnJhbWUtPmZyYW1lSUQoKSwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSwgZGF0YWJh
c2VOYW1lLCBkZXRhaWxzLmRpc3BsYXlOYW1lKCksIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdp
blVzYWdlLCBkZXRhaWxzLmN1cnJlbnRVc2FnZSgpLCBkZXRhaWxzLmV4cGVjdGVkVXNhZ2UoKSks
Ci0gICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6
UmVwbHkobmV3UXVvdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBSZWZQdHI8V2ViU2VjdXJp
dHlPcmlnaW4+IHdlYlNlY3VyaXR5T3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAg
bmV3UXVvdGEgPSBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5kaWRFeGNlZWREYXRh
YmFzZVF1b3RhKG1fcGFnZSwgd2ViU2VjdXJpdHlPcmlnaW4uZ2V0KCksIGRhdGFiYXNlTmFtZSwg
ZGV0YWlscy5kaXNwbGF5TmFtZSgpLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwg
ZGV0YWlscy5jdXJyZW50VXNhZ2UoKSwgZGV0YWlscy5leHBlY3RlZFVzYWdlKCkpOworCisgICAg
aWYgKCFuZXdRdW90YSkgeworICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPnNlbmRTeW5jKAorICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVk
ZWREYXRhYmFzZVF1b3RhKHdlYkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbi0+ZGF0YWJhc2VJZGVu
dGlmaWVyKCksIGRhdGFiYXNlTmFtZSwgZGV0YWlscy5kaXNwbGF5TmFtZSgpLCBjdXJyZW50UXVv
dGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgZGV0YWlscy5jdXJyZW50VXNhZ2UoKSwgZGV0YWlscy5l
eHBlY3RlZFVzYWdlKCkpLAorICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhj
ZWVkZWREYXRhYmFzZVF1b3RhOjpSZXBseShuZXdRdW90YSksIG1fcGFnZS0+cGFnZUlEKCkpOwor
ICAgIH0KIAogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnNldFF1b3RhKG9yaWdpbiwg
bmV3UXVvdGEpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDE1MzcwNGYuLjI5NWMwNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wOS0xNCAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFdlYktp
dFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJh
Y2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU3
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCB0ZXN0UnVubmVyLmR1bXBEYXRhYmFzZUNhbGxiYWNrcyBpbiBXZWJLaXRUZXN0UnVubmVy
CisgICAgICAgIGFuZCBkdW1wIHRoZSBpbmZvcm1hdGlvbiBleHBlY3RlZCBieSB0aGUgdGVzdCBj
YXNlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpi
ZWdpblRlc3RpbmcpOiBFeHBsaWNpdGx5IHNldCB0aGUgZGVmYXVsdAorICAgICAgICBkYXRhYmFz
ZSBxdW90YS4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OnNlY3VyaXR5T3JpZ2luVG9TdHIpOiBO
ZXcgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY29udmVydAorICAgICAgICBhIHNlY3VyaXR5IG9y
aWdpbiB0byB0aGUgc3RyaW5nIGV4cGVjdGVkIGluIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKFdU
Uik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdl
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRFeGNlZWREYXRhYmFzZVF1
b3RhKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSk6IE1pbm9yCisgICAgICAgIHJlZmFjdG9yaW5nIHRvIHNoYXJl
IGNvZGUgd2l0aCBkaWRFeGNlZWREYXRhYmFzZVF1b3RhLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgIChJbmpl
Y3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpkdW1wRGF0YWJhc2VDYWxsYmFja3MpOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjpzaG91bGREdW1wRGF0YWJhc2VDYWxsYmFja3MpOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBhIHJl
ZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDc1MGUyYzkuLjM3ZjkzNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtNDgsNiArNDgsNyBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCBkdW1wUmVzb3VyY2VS
ZXNwb25zZU1JTUVUeXBlcygpOwogICAgICAgICB2b2lkIGR1bXBXaWxsQ2FjaGVSZXNwb25zZSgp
OwogICAgICAgICB2b2lkIGR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsK
KyAgICAgICAgdm9pZCBkdW1wRGF0YWJhc2VDYWxsYmFja3MoKTsKIAogICAgICAgICAvLyBTcGVj
aWFsIG9wdGlvbnMuCiAgICAgICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKaW5kZXggZjRiYmNlYi4uMDNiMDVjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI1OSw2ICsy
NTksNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcoV0tEaWN0aW9uYXJ5UmVm
IHNldHRpbmdzKQogICAgIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMobV9idW5kbGUpOwogICAg
IFdLQnVuZGxlQ2xlYXJBcHBsaWNhdGlvbkNhY2hlKG1fYnVuZGxlKTsKICAgICBXS0J1bmRsZVJl
c2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cyhtX2J1bmRsZSk7CisgICAgV0tCdW5kbGVTZXREYXRh
YmFzZVF1b3RhKG1fYnVuZGxlLCA1ICogMTAyNCAqIDEwMjQpOwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlOjpkb25lKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCA0NGRiYTk2Li4yMTBm
M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xOTQsNiArMTk0LDIwIEBAIHN0YXRp
YyBXVEY6OlN0cmluZyBzdHlsZURlY1RvU3RyKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJl
ZiBzdHlsZSkKICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwogfQogCitzdGF0
aWMgV1RGOjpTdHJpbmcgc2VjdXJpdHlPcmlnaW5Ub1N0cihXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbikKK3sKKyAgICBXVEY6OlN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCgneycpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3Ry
aW5nKGFkb3B0V0soV0tTZWN1cml0eU9yaWdpbkNvcHlQcm90b2NvbChvcmlnaW4pKSkpOworICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5SG9zdChvcmlnaW4p
KSkpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZE51bWJlcihXS1NlY3VyaXR5T3JpZ2luR2V0UG9ydChvcmlnaW4pKTsKKyAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnfScpOworCisgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKK30KKwogc3RhdGljIFdURjo6U3RyaW5nIGZyYW1lVG9TdHIoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbmFtZShBZG9w
dFdLLCBXS0J1bmRsZUZyYW1lQ29weU5hbWUoZnJhbWUpKTsKQEAgLTM2MCw2ICszNzQsNyBAQCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSkKICAgICAgICAgMCwgLyptZW51QmFySXNWaXNpYmxlKi8KICAgICAgICAgMCwgLyp0b29sYmFy
c0FyZVZpc2libGUqLwogICAgICAgICBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSwKKyAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YSwKICAgICB9OwogICAgIFdLQnVuZGxl
UGFnZVNldFVJQ2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50KTsKIApAQCAtMTMyNiw2ICsxMzQxLDEx
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShXS0J1bmRsZVBhZ2VSZWYgcGFnCiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5k
bGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWFjaEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShvcmlnaW4sIHRvdGFsQnl0ZXNOZWVkZWQpOwogfQogCit1aW50
NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1N0cmluZ1JlZiBkYXRh
YmFzZU5hbWUsIFdLU3RyaW5nUmVmIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2VCeXRlcywgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2VCeXRlcywgdWludDY0X3QgZXhwZWN0ZWRVc2FnZUJ5dGVzLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbmplY3Rl
ZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEV4Y2VlZERh
dGFiYXNlUXVvdGEob3JpZ2luLCBkYXRhYmFzZU5hbWUsIGRhdGFiYXNlRGlzcGxheU5hbWUsIGN1
cnJlbnRRdW90YUJ5dGVzLCBjdXJyZW50T3JpZ2luVXNhZ2VCeXRlcywgY3VycmVudERhdGFiYXNl
VXNhZ2VCeXRlcywgZXhwZWN0ZWRVc2FnZUJ5dGVzKTsKK30KKwogc3RhdGljIFdURjo6U3RyaW5n
IGxhc3RGaWxlVVJMUGF0aENvbXBvbmVudChjb25zdCBXVEY6OlN0cmluZyYgcGF0aCkKIHsKICAg
ICBzaXplX3QgcG9zID0gcGF0aC5maW5kKCJmaWxlOi8vIik7CkBAIC0xNDEyLDI0ICsxNDMyLDE5
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlCiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQogewotICAgIGlmICghSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxl
Z2F0ZUNhbGxiYWNrcygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGb3IgZXhhbXBsZSwg
bnVtYmVycyBmcm9tIDMwMDAwIC0gMzk5OTkgd2lsbCBvdXRwdXQgYXMgMzAwMDAuCi0gICAgLy8g
Um91bmRpbmcgdXAgb3IgZG93biBkb2VzIG5vdCByZWFsbHkgbWF0dGVyIGZvciB0aGVzZSB0ZXN0
cy4gSXQncwotICAgIC8vIHN1ZmZpY2llbnQgdG8ganVzdCBnZXQgYSByYW5nZSBvZiAxMDAwMCB0
byBkZXRlcm1pbmUgaWYgd2Ugd2VyZQotICAgIC8vIGFib3ZlIG9yIGJlbG93IGEgdGhyZXNob2xk
LgotICAgIGludDY0X3QgdHJ1bmNhdGVkU3BhY2VOZWVkZWQgPSAodG90YWxCeXRlc05lZWRlZCAv
IDEwMDAwKSAqIDEwMDAwOwotCi0gICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1
aWxkZXIoKS0+YXBwZW5kTGl0ZXJhbCgiVUkgREVMRUdBVEUgQVBQTElDQVRJT04gQ0FDSEUgQ0FM
TEJBQ0s6IGV4Y2VlZGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhRm9yU2VjdXJpdHlPcmln
aW46eyIpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFw
cGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5UHJvdG9jb2wob3Jp
Z2luKSkpKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5h
cHBlbmRMaXRlcmFsKCIsICIpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdC
dWlsZGVyKCktPmFwcGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5
SG9zdChvcmlnaW4pKSkpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWls
ZGVyKCktPmFwcGVuZExpdGVyYWwoIiwgIik7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kTnVtYmVyKFdLU2VjdXJpdHlPcmlnaW5HZXRQb3J0KG9y
aWdpbikpOwotICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFw
cGVuZExpdGVyYWwoIn0gdG90YWxTcGFjZU5lZWRlZDp+Iik7Ci0gICAgSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kTnVtYmVyKHRydW5jYXRlZFNwYWNlTmVl
ZGVkKTsKLSAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBl
bmQoJ1xuJyk7CisgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKSkgeworICAgICAg
ICAvLyBGb3IgZXhhbXBsZSwgbnVtYmVycyBmcm9tIDMwMDAwIC0gMzk5OTkgd2lsbCBvdXRwdXQg
YXMgMzAwMDAuCisgICAgICAgIC8vIFJvdW5kaW5nIHVwIG9yIGRvd24gZG9lcyBub3QgcmVhbGx5
IG1hdHRlciBmb3IgdGhlc2UgdGVzdHMuIEl0J3MKKyAgICAgICAgLy8gc3VmZmljaWVudCB0byBq
dXN0IGdldCBhIHJhbmdlIG9mIDEwMDAwIHRvIGRldGVybWluZSBpZiB3ZSB3ZXJlCisgICAgICAg
IC8vIGFib3ZlIG9yIGJlbG93IGEgdGhyZXNob2xkLgorICAgICAgICBpbnQ2NF90IHRydW5jYXRl
ZFNwYWNlTmVlZGVkID0gKHRvdGFsQnl0ZXNOZWVkZWQgLyAxMDAwMCkgKiAxMDAwMDsKKworICAg
ICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmRMaXRl
cmFsKCJVSSBERUxFR0FURSBBUFBMSUNBVElPTiBDQUNIRSBDQUxMQkFDSzogZXhjZWVkZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9yaWdpbjoiKTsKKyAgICAgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHNlY3VyaXR5T3Jp
Z2luVG9TdHIob3JpZ2luKSk7CisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJp
bmdCdWlsZGVyKCktPmFwcGVuZExpdGVyYWwoIiB0b3RhbFNwYWNlTmVlZGVkOn4iKTsKKyAgICAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kTnVtYmVy
KHRydW5jYXRlZFNwYWNlTmVlZGVkKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCdcbicpOworICAgIH0KIAogICAgIGlmIChJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT5zaG91bGREaXNhbGxvd0luY3JlYXNlRm9y
QXBwbGljYXRpb25DYWNoZVF1b3RhKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE0MzgsNiArMTQ1
MywyMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV0tTZWN1cml0eU9yaWdpblJlZgogICAgIFdLQnVuZGxlUmVzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBh
ZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5Db3B5VG9TdHJpbmcob3JpZ2luKSkuZ2V0KCkpOwogfQog
Cit1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tT
ZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIGRhdGFiYXNlTmFtZSwgV0tTdHJp
bmdSZWYgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhQnl0ZXMsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VV
c2FnZUJ5dGVzLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlQnl0ZXMpCit7CisgICAgaWYgKEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBEYXRhYmFzZUNhbGxi
YWNrcygpKSB7CisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVy
KCktPmFwcGVuZExpdGVyYWwoIlVJIERFTEVHQVRFIERBVEFCQVNFIENBTExCQUNLOiBleGNlZWRl
ZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjoiKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHNlY3VyaXR5T3JpZ2luVG9TdHIo
b3JpZ2luKSk7CisgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVy
KCktPmFwcGVuZExpdGVyYWwoIiBkYXRhYmFzZToiKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHRvV1RGU3RyaW5nKGRhdGFiYXNlTmFt
ZSkpOworICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5h
cHBlbmQoJ1xuJyk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGRlZmF1bHRR
dW90YSA9IDUgKiAxMDI0ICogMTAyNDsKKyAgICByZXR1cm4gZGVmYXVsdFF1b3RhOworfQorCiAv
LyBFZGl0b3IgQ2xpZW50IENhbGxiYWNrcwogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hv
dWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVJhbmdlSGFuZGxl
UmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5k
ZXggMzcwZjQyNy4uODk0ZmIzMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC0xMjUsMTIgKzEy
NSwxNCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmly
bShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSdW5K
YXZhU2NyaXB0UHJvbXB0KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tT
dHJpbmdSZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShXS0J1bmRsZVBhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIGludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHVp
bnQ2NF90IGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV0tCdW5kbGVQYWdlUmVmLCBXS1NlY3VyaXR5
T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiBkYXRhYmFzZU5hbWUsIFdLU3RyaW5nUmVmIGRhdGFiYXNl
RGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2VCeXRlcywgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2VCeXRlcywgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZUJ5dGVzLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB2
b2lkIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90
IGxpbmVOdW1iZXIpOwogICAgIHZvaWQgd2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYg
c3RhdHVzYmFyVGV4dCk7CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgd2lsbFJ1bkphdmFTY3Jp
cHRDb25maXJtKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZv
aWQgd2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdS
ZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZFJlYWNoQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdLU2VjdXJpdHlPcmlnaW5SZWYsIGludDY0X3QgdG90
YWxCeXRlc05lZWRlZCk7CisgICAgdWludDY0X3QgZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXS1Nl
Y3VyaXR5T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiBkYXRhYmFzZU5hbWUsIFdLU3RyaW5nUmVmIGRh
dGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YUJ5dGVzLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2VCeXRlcywgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2VCeXRl
cywgdWludDY0X3QgZXhwZWN0ZWRVc2FnZUJ5dGVzKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICAvLyBGdWxsIFNjcmVlbiBjbGllbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDk5NmJiOTEuLmE0
ZDdiNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcApAQCAtODEsNiArODEsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVy
KCkKICAgICAsIG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoZmFsc2UpCiAgICAgLCBt
X2R1bXBXaWxsQ2FjaGVSZXNwb25zZShmYWxzZSkKICAgICAsIG1fZHVtcEFwcGxpY2F0aW9uQ2Fj
aGVEZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkKKyAgICAsIG1fZHVtcERhdGFiYXNlQ2FsbGJhY2tz
KGZhbHNlKQogICAgICwgbV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3Rh
KGZhbHNlKQogICAgICwgbV93YWl0VG9EdW1wKGZhbHNlKQogICAgICwgbV90ZXN0UmVwYWludChm
YWxzZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKaW5kZXggZWI3OTNhOC4uNzUxYWJkNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTgzLDYgKzgzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSB7IG1fZHVt
cFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMgPSB0cnVlOyB9CiAgICAgdm9pZCBkdW1wV2lsbENh
Y2hlUmVzcG9uc2UoKSB7IG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlID0gdHJ1ZTsgfQogICAgIHZv
aWQgZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpIHsgbV9kdW1wQXBwbGlj
YXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzID0gdHJ1ZTsgfQorICAgIHZvaWQgZHVtcERhdGFi
YXNlQ2FsbGJhY2tzKCkgeyBtX2R1bXBEYXRhYmFzZUNhbGxiYWNrcyA9IHRydWU7IH0KIAogICAg
IHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1fZHVt
cEZyYW1lTG9hZENhbGxiYWNrcyA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRTaG91bGREdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgdmFsdWUpIHsgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hl
ZENhbGxiYWNrID0gdmFsdWU7IH0KQEAgLTE3Niw2ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1f
ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7IH0KICAgICBib29sIHNob3VsZER1bXBXaWxs
Q2FjaGVSZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlOyB9
CiAgICAgYm9vbCBzaG91bGREdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCkg
Y29uc3QgeyByZXR1cm4gbV9kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzOyB9
CisgICAgYm9vbCBzaG91bGREdW1wRGF0YWJhc2VDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBt
X2R1bXBEYXRhYmFzZUNhbGxiYWNrczsgfQogCiAgICAgYm9vbCBpc1BvbGljeURlbGVnYXRlRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOyB9CiAgICAgYm9v
bCBpc1BvbGljeURlbGVnYXRlUGVybWlzc2l2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5RGVs
ZWdhdGVQZXJtaXNzaXZlOyB9CkBAIC0yNzUsNiArMjc3LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CiAgICAgYm9vbCBtX2R1bXBXaWxsQ2Fj
aGVSZXNwb25zZTsKICAgICBib29sIG1fZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxi
YWNrczsKKyAgICBib29sIG1fZHVtcERhdGFiYXNlQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kaXNh
bGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhOwogICAgIGJvb2wgbV93YWl0VG9E
dW1wOyAvLyBUcnVlIGlmIHdhaXRVbnRpbERvbmUoKSBoYXMgYmVlbiBjYWxsZWQsIGJ1dCBub3Rp
ZnlEb25lKCkgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQuCiAgICAgYm9vbCBtX3Rlc3RSZXBhaW50
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>164171</attachid>
            <date>2012-09-14 09:36:25 -0700</date>
            <delta_ts>2012-09-14 09:36:51 -0700</delta_ts>
            <desc>Python script</desc>
            <filename>reorder-includes.py</filename>
            <type>text/x-python</type>
            <size>3599</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9weXRob24KIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMKIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiMgbWV0
OgojCiMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQojIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiMg
ZGlzdHJpYnV0aW9uLgojICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgSW50ZWwgQ29ycG9yYXRp
b24gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQojIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiMKIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAojIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAojIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCiMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCByZQoKX1JF
X1BBVFRFUk5fSU5DTFVERSA9IHJlLmNvbXBpbGUocideXHMqI1xzKihpbmNsdWRlfGltcG9ydClc
cyooWzwiXSkoW14+Il0qKShbPiJdKS4qJCcpCl9SRV9GSUxFX0VYVEVOU0lPTiA9IHJlLmNvbXBp
bGUocidbXC5dKG1tfGN8Y3BwfGgpJCcpCgpoZWFkZXJfYnVmZmVyID0gW10Kb3V0cHV0X2xpbmVz
ID0gW10KYmFzZW5hbWUgPSBOb25lCgpkZWYgd3JpdGVfb3V0cHV0X2J1ZmZlcihsaW5lKToKICAg
IGdsb2JhbCBoZWFkZXJfYnVmZmVyCiAgICBnbG9iYWwgb3V0cHV0X2xpbmVzCiAgICBpZiAoaGVh
ZGVyX2J1ZmZlcik6CiAgICAgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGhlYWRlcl9idWZmZXIpOgog
ICAgICAgICAgICBvdXRwdXRfbGluZXMuYXBwZW5kKCcjJyArIGl0ZW1bMV0gKyAnICcgKyBpdGVt
WzBdICsgJ1xuJykKICAgICAgICBoZWFkZXJfYnVmZmVyID0gW10KICAgIGlmIGxpbmU6CiAgICAg
ICAgb3V0cHV0X2xpbmVzLmFwcGVuZChsaW5lKQoKZGVmIGlnbm9yZV9oZWFkZXIobWF0Y2hfbm8s
IGluY2x1ZGUpOgogICAgZ2xvYmFsIGJhc2VuYW1lCiAgICBpZiBtYXRjaF9ubyA9PSAxIGFuZCBp
bmNsdWRlID09ICJjb25maWcuaCI6CiAgICAgICAgcmV0dXJuIFRydWUKICAgIGlmIG1hdGNoX25v
ID09IDIgYW5kIGluY2x1ZGUgPT0gYmFzZW5hbWU6CiAgICAgICAgcmV0dXJuIFRydWUKICAgIHJl
dHVybiBGYWxzZQoKZGVmIHByb2Nlc3NfZmlsZShmaWxlbmFtZSk6CiAgICBnbG9iYWwgb3V0cHV0
X2xpbmVzCiAgICBnbG9iYWwgaGVhZGVyX2J1ZmZlcgoKICAgIHZhbGlkX2ZpbGUgPSBfUkVfRklM
RV9FWFRFTlNJT04uc2VhcmNoKGZpbGVuYW1lKQogICAgaWYgbm90IHZhbGlkX2ZpbGU6CiAgICAg
ICAgcmV0dXJuIEZhbHNlCgogICAgcHJpbnQgIk9yZGVyaW5nIHRoZSBpbmNsdWRlcyBvZiAiICsg
ZmlsZW5hbWUKCiAgICBiYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoZmlsZW5hbWUpLnNwbGl0
KCIuIilbMF0gKyAiLmgiCiAgICBpc19oZWFkZXIgPSBmaWxlbmFtZS5lbmRzd2l0aCgnLmgnKQoK
ICAgIHNvdXJjZV9maWxlID0gTm9uZQogICAgdHJ5OgogICAgICAgIHNvdXJjZV9maWxlID0gb3Bl
bihmaWxlbmFtZSkKICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgIHJldHVybiBGYWxzZQoKICAg
IG1hdGNoX25vID0gMAogICAgZm9yIGxpbmUgaW4gc291cmNlX2ZpbGU6CiAgICAgICAgbWF0Y2hl
ZCA9IF9SRV9QQVRURVJOX0lOQ0xVREUuc2VhcmNoKGxpbmUpCgogICAgICAgIGlmIG5vdCBtYXRj
aGVkOgogICAgICAgICAgICB3cml0ZV9vdXRwdXRfYnVmZmVyKGxpbmUpCiAgICAgICAgICAgIGNv
bnRpbnVlCgogICAgICAgIG1hdGNoX25vICs9IDEKCiAgICAgICAga2luZCA9IG1hdGNoZWQuZ3Jv
dXAoMSkKICAgICAgICBiZWdpbl9xdW90ZSA9IG1hdGNoZWQuZ3JvdXAoMikKICAgICAgICBpbmNs
dWRlID0gbWF0Y2hlZC5ncm91cCgzKQogICAgICAgIGVuZF9xdW90ZSA9IG1hdGNoZWQuZ3JvdXAo
NCkKCiAgICAgICAgaWYgaWdub3JlX2hlYWRlcihtYXRjaF9ubywgaW5jbHVkZSk6CiAgICAgICAg
ICAgIHdyaXRlX291dHB1dF9idWZmZXIobGluZSkKICAgICAgICAgICAgY29udGludWUKCiAgICAg
ICAgaW5jbHVkZSA9IGJlZ2luX3F1b3RlICsgaW5jbHVkZSArIGVuZF9xdW90ZQogICAgICAgIGhl
YWRlcl9idWZmZXIuYXBwZW5kKChpbmNsdWRlLCBraW5kKSkKCiAgICB3cml0ZV9vdXRwdXRfYnVm
ZmVyKE5vbmUpCgogICAgc291cmNlX2ZpbGUuY2xvc2UoKQogICAgc291cmNlX2ZpbGUgPSBvcGVu
KGZpbGVuYW1lLCAndycpCgogICAgZm9yIGxpbmUgaW4gb3V0cHV0X2xpbmVzOgogICAgICAgIHNv
dXJjZV9maWxlLndyaXRlKGxpbmUpCgogICAgb3V0cHV0X2xpbmVzID0gW10KCiAgICByZXR1cm4g
VHJ1ZQoKZGVmIG1haW4oKToKICAgIGZvciBmaWxlbmFtZSBpbiBzeXMuYXJndlsxOl06CiAgICAg
ICAgcHJvY2Vzc19maWxlKGZpbGVuYW1lKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAg
IG1haW4oKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>