<?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>94616</bug_id>
          
          <creation_ts>2012-08-21 10:36:04 -0700</creation_ts>
          <short_desc>[New Multicolumn] Get column rules painting</short_desc>
          <delta_ts>2012-08-21 11:15:34 -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>Layout and Rendering</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="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>700895</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-08-21 10:36:04 -0700</bug_when>
    <thetext>Get the column rules painting properly in column sets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700909</commentid>
    <comment_count>1</comment_count>
      <attachid>159721</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-08-21 10:44:36 -0700</bug_when>
    <thetext>Created attachment 159721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700929</commentid>
    <comment_count>2</comment_count>
      <attachid>159721</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-21 11:02:27 -0700</bug_when>
    <thetext>Comment on attachment 159721
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests (OOPS!).

OOPS! Are ref tests possible? Would be good to test rule painting with mixed writing modes.

&gt; Source/WebCore/rendering/RenderMultiColumnBlock.h:46
&gt; +    RenderMultiColumnFlowThread* flowThread() const { return m_flowThread; }

Should it return a const RenderMultiColumnFlowThread*?

&gt; Source/WebCore/rendering/RenderMultiColumnSet.cpp:65
&gt; +int RenderMultiColumnSet::columnGap() const

This doesn&apos;t need to return a LayoutUnit?

&gt; Source/WebCore/rendering/RenderMultiColumnSet.cpp:69
&gt; +    return static_cast&lt;int&gt;(style()-&gt;columnGap());

Maybe use pixelSnap, or make the rounding mode more explicit?

&gt; Source/WebCore/rendering/RenderMultiColumnSet.cpp:72
&gt; +LayoutRect RenderMultiColumnSet::columnRectAt( unsigned index) const

Space after (

&gt; Source/WebCore/rendering/RenderMultiColumnSet.cpp:74
&gt; +    // Compute the appropriate rect based off our information.

Not sure that this comment adds anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700942</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-08-21 11:15:34 -0700</bug_when>
    <thetext>Fixed in r126177.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159721</attachid>
            <date>2012-08-21 10:44:36 -0700</date>
            <delta_ts>2012-08-21 11:02:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>16966</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNjE2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA4LTIxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBNYWtl
IGNvbHVtbiBydWxlcyBwYWludCBwcm9wZXJseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgbmV3IG11bHRpLWNvbHVtbiBjb2RlIHBhaW50
IGNvbHVtbiBydWxlcyBhbmQgYWxzbyBwcmVwYXJlIGl0IGZvciBwYWludGluZworICAgICAgICB0
aGUgYWN0dWFsIGNvbHVtbiBjb250ZW50cy4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OmVuc3VyZUNvbHVtblNldHMp
OgorICAgICAgICBSZW1vdmUgdGhlIGFkZFJlZ2lvblRvVGhyZWFkIGNhbGwsIHNpbmNlIHRoaXMg
aXMgbm93IGRvbmUgYXV0b21hdGljYWxseSBpbiBSZW5kZXJSZWdpb246Omluc2VydGVkSW50b1Ry
ZWUuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2Nr
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpmbG93VGhyZWFk
KToKKyAgICAgICAgTWFrZSBwdWJsaWMgc28gdGhhdCBSZW5kZXJNdWx0aUNvbHVtblNldCBjYW4g
YWNjZXNzIGl0LgorICAgICAgICAKKyAgICAgICAgKFJlbmRlck11bHRpQ29sdW1uQmxvY2spOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sdW1uR2FwKToKKyAgICAgICAgQWRkIGEg
Y29sdW1uIGdhcCBmZXRjaCBtZXRob2QuIEl0J3MgaWRlbnRpY2FsIHRvIHRoZSBvbmUgb24gUmVu
ZGVyQmxvY2sgKHdoaWNoIHdpbGwgZXZlbnR1YWxseSBnbyBhd2F5CisgICAgICAgIHdoZW4gd2Ug
a2lsbCB0aGUgb2xkIG11bHRpLWNvbHVtbiBjb2RlKS4KKyAgICAgICAgCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29sdW1uUmVjdEF0KToKKyAgICAgICAgQWxzbyBp
ZGVudGljYWwgdG8gdGhlIFJlbmRlckJsb2NrIHZlcnNpb24gb2YgdGhpcyBtZXRob2QuIEdldHMg
dGhlIHJlY3QgZm9yIHRoZSBudGggY29sdW1uLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck11bHRpQ29sdW1uU2V0OjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgU3ViY2xhc3Mg
cGFpbnRSZXBsYWNlZCBpbiBvcmRlciB0byBkbyBjb2x1bW4gcnVsZXMgYW5kIGNvbnRlbnRzIHBh
aW50aW5nLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0
OjpwYWludENvbHVtblJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1u
U2V0OjpwYWludENvbHVtbkNvbnRlbnRzKToKKyAgICAgICAgU2ltaWxhciB0byB0aGUgbWV0aG9k
cyBvbiBSZW5kZXJCbG9jay4gVGhlIGZvcm1lciBwYWludHMgdGhlIHJ1bGVzIGFuZCB0aGUgbGF0
dGVyIHBhaW50cyB0aGUgY29udGVudHMgb2YKKyAgICAgICAgdGhlIGZsb3cgdGhyZWFkIGludG8g
dGhlIGNvbHVtbnMuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtblNldC5oOgorICAgICAgICAoUmVuZGVyTXVsdGlDb2x1bW5TZXQpOgorICAgICAgICBBZGQg
dGhlIGRlY2xhcmF0aW9ucyBvZiBhbGwgdGhlIG5ldyBtZXRob2RzLgorICAgICAgICAKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJlZ2lvbjo6aW5zdGFsbEZsb3dUaHJlYWQpOgorICAgICAgICBBZGRlZCBhIG5ldyB2aXJ0dWFs
IGZ1bmN0aW9uIGZvciBpbnN0YWxsaW5nIGZsb3cgdGhyZWFkcyB3aGVuIHRoZXkgZGlkbid0IGV4
aXN0IGF0IGNvbnN0cnVjdGlvbiB0aW1lLgorICAgICAgICBUaGlzIG9ubHkgYXBwbGllcyB0byBh
Y3R1YWwgQ1NTIFJlZ2lvbnMsIHNvIHRoZSBzdWJjbGFzcyBvZiB0aGUgbWV0aG9kIGluIFJlbmRl
clJlZ2lvblNldCBqdXN0IGRvZXMKKyAgICAgICAgbm90aGluZy4KKyAgICAgICAgCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmF0dGFjaFJlZ2lvbik6CisgICAgICAgIEdldCB0aGUg
bmFtZWQgZmxvdyB0aHJlYWQgY29kZSBvdXQgb2YgYXR0YWNoUmVnaW9uLCBzaW5jZSBpdCBicm9r
ZSBtdWx0aS1jb2x1bW4uIE1vdmVkIGl0IGludG8gYQorICAgICAgICB2aXJ0dWFsIGZ1bmN0aW9u
LCBpbnN0YWxsRmxvd1RocmVhZCwgdGhhdCBpcyBvbmx5IHVzZWQgYnkgYWN0dWFsIENTUyByZWdp
b25zLiBFdmVudHVhbGx5IHdlIG1heQorICAgICAgICB3YW50IGEgUmVuZGVyUmVnaW9uIHN1YmNs
YXNzIHRoYXQgcmVwcmVzZW50cyBhIHJlZ2lvbiBmb3IgYSBuYW1lZCBmbG93IHRocmVhZCBvbmx5
LCBidXQgZm9yIG5vdworICAgICAgICBsZXQgdGhlIGNvZGUgc2l0IGluIGluc3RhbGxGbG93VGhy
ZWFkIGluIHRoZSBiYXNlIGNsYXNzLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgorICAgICAgICBBZGQgaW5zdGFs
bEZsb3dUaHJlYWQgZGVjbGFyYXRpb24uCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJSZWdpb25TZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uU2V0Ojpp
bnN0YWxsRmxvd1RocmVhZCk6CisgICAgICAgIGluc3RhbGxGbG93VGhyZWFkIGZvciByZWdpb24g
c2V0cyBqdXN0IGRvZXMgbm90aGluZywgc2luY2Ugd2UgZG9uJ3QgdXNlIG5hbWVkIGZsb3cgdGhy
ZWFkcy4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oOgor
ICAgICAgICAoUmVuZGVyUmVnaW9uU2V0KToKKyAgICAgICAgQWRkIHRoZSBvdmVycmlkZSBvZiBp
bnN0YWxsRmxvd1RocmVhZC4KKwogMjAxMi0wOC0yMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEy
NjA3NiwgcjEyNjA5OSwgYW5kIHIxMjYxMDYuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCShyZXZpc2lvbiAxMjYwNTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE0NCw3ICsxNDQsNiBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1u
QmxvY2s6OmVuc3VyZUNvbHVtCiAgICAgICAgIFJlbmRlck11bHRpQ29sdW1uU2V0KiBjb2x1bW5T
ZXQgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlck11bHRpQ29sdW1uU2V0KGRvY3VtZW50KCks
IGZsb3dUaHJlYWQoKSk7CiAgICAgICAgIGNvbHVtblNldC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6
OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgQkxPQ0spKTsKICAgICAg
ICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKGNvbHVtblNldCwgZmlyc3RDaGlsZCgpKTsKLSAgICAg
ICAgZmxvd1RocmVhZCgpLT5hZGRSZWdpb25Ub1RocmVhZChjb2x1bW5TZXQpOwogICAgIH0KIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2su
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5CbG9jay5oCShyZXZpc2lvbiAxMjYwNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw4IEBA
IHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGNvbHVtbldpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9j
b2x1bW5XaWR0aDsgfQogICAgIHVuc2lnbmVkIGNvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9jb2x1bW5Db3VudDsgfQogCisgICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBmbG93
VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFkOyB9CisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzUmVuZGVyTXVsdGlDb2x1bW5CbG9jaygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KICAgICAKQEAgLTU4LDggKzYwLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZW5zdXJl
Q29sdW1uU2V0cygpOwogCi0gICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBmbG93VGhy
ZWFkKCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFkOyB9Ci0KICAgICBSZW5kZXJNdWx0aUNv
bHVtbkZsb3dUaHJlYWQqIG1fZmxvd1RocmVhZDsKICAgICB1bnNpZ25lZCBtX2NvbHVtbkNvdW50
OyAgIC8vIFRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC93aWR0aCB0aGF0IGFyZSBiYXNlZCBvZmYg
b3VyIGNvbnRhaW5pbmcgYmxvY2sgd2lkdGguIFRoZXNlIHZhbHVlcyByZXByZXNlbnQgb25seSB0
aGUgZGVmYXVsdCwKICAgICBMYXlvdXRVbml0IG1fY29sdW1uV2lkdGg7IC8vIHNpbmNlIGEgbXVs
dGktY29sdW1uIGJsb2NrIHRoYXQgaXMgc3BsaXQgYWNyb3NzIHZhcmlhYmxlIHdpZHRoIHBhZ2Vz
IG9yIHJlZ2lvbnMgd2lsbCBoYXZlIGRpZmZlcmVudCBjb2x1bW4gY291bnRzIGFuZCB3aWR0aHMg
aW4gZWFjaC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmNwcAkocmV2aXNpb24gMTI2MDUzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiAr
MjQsOCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWludEluZm8u
aCIKKyNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJS
ZW5kZXJNdWx0aUNvbHVtblNldC5oIgogI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uQmxvY2su
aCIKIApAQCAtNjAsNiArNjIsMTA3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmNvbXB1
dGVMb2dpY2EKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGNvbHVtbkhlaWdodCgpKTsKIH0KIAoraW50
IFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5HYXAoKSBjb25zdAoreworICAgIGlmIChzdHls
ZSgpLT5oYXNOb3JtYWxDb2x1bW5HYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmZvbnRE
ZXNjcmlwdGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCk7IC8vICIxZW0iIGlzIHJlY29tbWVuZGVk
IGFzIHRoZSBub3JtYWwgZ2FwIHNldHRpbmcuIE1hdGNoZXMgPHA+IG1hcmdpbnMuCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4oc3R5bGUoKS0+Y29sdW1uR2FwKCkpOworfQorCitMYXlvdXRS
ZWN0IFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5SZWN0QXQoIHVuc2lnbmVkIGluZGV4KSBj
b25zdAoreworICAgIC8vIENvbXB1dGUgdGhlIGFwcHJvcHJpYXRlIHJlY3QgYmFzZWQgb2ZmIG91
ciBpbmZvcm1hdGlvbi4KKyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbHVtbldp
ZHRoKCk7CisgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsSGVpZ2h0ID0gY29sdW1uSGVpZ2h0KCk7
CisgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsVG9wID0gYm9yZGVyQmVmb3JlKCkgKyBwYWRkaW5n
QmVmb3JlKCk7CisgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsTGVmdCA9IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsTGVmdCgpOworICAgIGludCBjb2xHYXAgPSBjb2x1bW5HYXAoKTsKKyAgICBpZiAo
c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgICAgICBjb2xMb2dpY2FsTGVm
dCArPSBpbmRleCAqIChjb2xMb2dpY2FsV2lkdGggKyBjb2xHYXApOworICAgIGVsc2UKKyAgICAg
ICAgY29sTG9naWNhbExlZnQgKz0gY29udGVudExvZ2ljYWxXaWR0aCgpIC0gY29sTG9naWNhbFdp
ZHRoIC0gaW5kZXggKiAoY29sTG9naWNhbFdpZHRoICsgY29sR2FwKTsKKworICAgIGlmIChpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gTGF5b3V0UmVjdChjb2xMb2dp
Y2FsTGVmdCwgY29sTG9naWNhbFRvcCwgY29sTG9naWNhbFdpZHRoLCBjb2xMb2dpY2FsSGVpZ2h0
KTsKKyAgICByZXR1cm4gTGF5b3V0UmVjdChjb2xMb2dpY2FsVG9wLCBjb2xMb2dpY2FsTGVmdCwg
Y29sTG9naWNhbEhlaWdodCwgY29sTG9naWNhbFdpZHRoKTsKK30KKwordm9pZCBSZW5kZXJNdWx0
aUNvbHVtblNldDo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIC8vIEZJWE1FOiBSZW5kZXJSZWdpb25zIGFy
ZSByZXBsYWNlZCBlbGVtZW50cyByaWdodCBub3cgYW5kIHNvIHRoZXkgb25seSBwYWludCBpbiB0
aGUgZm9yZWdyb3VuZCBwaGFzZS4KKyAgICAvLyBDb2x1bW5zIHNob3VsZCB0ZWNobmljYWxseSBy
ZXNwZWN0IHBoYXNlcyBhbmQgYWxsb3cgZm9yIGJhY2tncm91bmQvZmxvYXQvZm9yZWdyb3VuZCBv
dmVybGFwIGV0Yy4sIGp1c3QgbGlrZQorICAgIC8vIFJlbmRlckJsb2NrcyBkby4gV2UgY2FuJ3Qg
Y29ycmVjdCB0aGlzLCBob3dldmVyLCB1bnRpbCBSZW5kZXJSZWdpb25zIGFyZSBjaGFuZ2VkIHRv
IGFjdHVhbGx5IGJlCisgICAgLy8gUmVuZGVyQmxvY2tzLiBOb3RlIHRoaXMgaXMgYSBwcmV0dHkg
bWlub3IgaXNzdWUsIHNpbmNlIHRoZSBvbGQgY29sdW1uIGltcGxlbWVudGF0aW9uIGNsaXBwZWQg
Y29sdW1ucworICAgIC8vIGFueXdheSwgdGh1cyBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IgdGhl
bSB0byBvdmVybGFwIG9uZSBhbm90aGVyLiBJdCdzIGFsc28gcmVhbGx5IHVubGlrZWx5IHRoYXQg
dGhlIGNvbHVtbnMKKyAgICAvLyB3b3VsZCBvdmVybGFwIGFub3RoZXIgYmxvY2suCisgICAgc2V0
UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxlKCk7CisgICAgcGFpbnRDb2x1bW5SdWxlcyhwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKKyAgICBwYWludENvbHVtbkNvbnRlbnRzKHBhaW50SW5mbywgcGFp
bnRPZmZzZXQpOworICAgIHJlc3RvcmVSZWdpb25PYmplY3RzT3JpZ2luYWxTdHlsZSgpOworfQor
Cit2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0OjpwYWludENvbHVtblJ1bGVzKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKHBh
aW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFJlbmRlclN0eWxlKiBibG9ja1N0eWxlID0gdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKHBh
cmVudCgpKS0+c3R5bGUoKTsKKyAgICBjb25zdCBDb2xvciYgcnVsZUNvbG9yID0gYmxvY2tTdHls
ZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUnVsZUNvbG9y
KTsKKyAgICBib29sIHJ1bGVUcmFuc3BhcmVudCA9IGJsb2NrU3R5bGUtPmNvbHVtblJ1bGVJc1Ry
YW5zcGFyZW50KCk7CisgICAgRUJvcmRlclN0eWxlIHJ1bGVTdHlsZSA9IGJsb2NrU3R5bGUtPmNv
bHVtblJ1bGVTdHlsZSgpOworICAgIExheW91dFVuaXQgcnVsZVRoaWNrbmVzcyA9IGJsb2NrU3R5
bGUtPmNvbHVtblJ1bGVXaWR0aCgpOworICAgIExheW91dFVuaXQgY29sR2FwID0gY29sdW1uR2Fw
KCk7CisgICAgYm9vbCByZW5kZXJSdWxlID0gcnVsZVN0eWxlID4gQkhJRERFTiAmJiAhcnVsZVRy
YW5zcGFyZW50ICYmIHJ1bGVUaGlja25lc3MgPD0gY29sR2FwOworICAgIGlmICghcmVuZGVyUnVs
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5zaWduZWQgY29sQ291bnQgPSBjb2x1bW5Db3Vu
dCgpOworCisgICAgYm9vbCBhbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXNMaW5lcyhwYWludElu
Zm8uY29udGV4dCk7CisKKyAgICBib29sIGxlZnRUb1JpZ2h0ID0gc3R5bGUoKS0+aXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpOworICAgIExheW91dFVuaXQgY3VyckxvZ2ljYWxMZWZ0T2Zmc2V0ID0g
bGVmdFRvUmlnaHQgPyBaRVJPX0xBWU9VVF9VTklUIDogY29udGVudExvZ2ljYWxXaWR0aCgpOwor
ICAgIExheW91dFVuaXQgcnVsZUFkZCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgpOwor
ICAgIExheW91dFVuaXQgcnVsZUxvZ2ljYWxMZWZ0ID0gbGVmdFRvUmlnaHQgPyBaRVJPX0xBWU9V
VF9VTklUIDogY29udGVudExvZ2ljYWxXaWR0aCgpOworICAgIExheW91dFVuaXQgaW5saW5lRGly
ZWN0aW9uU2l6ZSA9IGNvbHVtbldpZHRoKCk7CisgICAgQm94U2lkZSBib3hTaWRlID0gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKQorICAgICAgICA/IGxlZnRUb1JpZ2h0ID8gQlNMZWZ0IDogQlNS
aWdodAorICAgICAgICA6IGxlZnRUb1JpZ2h0ID8gQlNUb3AgOiBCU0JvdHRvbTsKKworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2xDb3VudDsgaSsrKSB7CisgICAgICAgIC8vIE1vdmUg
dG8gdGhlIG5leHQgcG9zaXRpb24uCisgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAg
ICAgICAgcnVsZUxvZ2ljYWxMZWZ0ICs9IGlubGluZURpcmVjdGlvblNpemUgKyBjb2xHYXAgLyAy
OworICAgICAgICAgICAgY3VyckxvZ2ljYWxMZWZ0T2Zmc2V0ICs9IGlubGluZURpcmVjdGlvblNp
emUgKyBjb2xHYXA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBydWxlTG9naWNhbExl
ZnQgLT0gKGlubGluZURpcmVjdGlvblNpemUgKyBjb2xHYXAgLyAyKTsKKyAgICAgICAgICAgIGN1
cnJMb2dpY2FsTGVmdE9mZnNldCAtPSAoaW5saW5lRGlyZWN0aW9uU2l6ZSArIGNvbEdhcCk7Cisg
ICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgLy8gTm93IHBhaW50IHRoZSBjb2x1bW4gcnVsZS4K
KyAgICAgICAgaWYgKGkgPCBjb2xDb3VudCAtIDEpIHsKKyAgICAgICAgICAgIExheW91dFVuaXQg
cnVsZUxlZnQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcGFpbnRPZmZzZXQueCgpICsg
cnVsZUxvZ2ljYWxMZWZ0IC0gcnVsZVRoaWNrbmVzcyAvIDIgKyBydWxlQWRkIDogcGFpbnRPZmZz
ZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKTsKKyAgICAgICAgICAgIExheW91
dFVuaXQgcnVsZVJpZ2h0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJ1bGVMZWZ0ICsg
cnVsZVRoaWNrbmVzcyA6IHJ1bGVMZWZ0ICsgY29udGVudFdpZHRoKCk7CisgICAgICAgICAgICBM
YXlvdXRVbml0IHJ1bGVUb3AgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcGFpbnRPZmZz
ZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgOiBwYWludE9mZnNldC55KCkgKyBy
dWxlTG9naWNhbExlZnQgLSBydWxlVGhpY2tuZXNzIC8gMiArIHJ1bGVBZGQ7CisgICAgICAgICAg
ICBMYXlvdXRVbml0IHJ1bGVCb3R0b20gPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcnVs
ZVRvcCArIGNvbnRlbnRIZWlnaHQoKSA6IHJ1bGVUb3AgKyBydWxlVGhpY2tuZXNzOworICAgICAg
ICAgICAgSW50UmVjdCBwaXhlbFNuYXBwZWRSdWxlUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3RG
cm9tRWRnZXMocnVsZUxlZnQsIHJ1bGVUb3AsIHJ1bGVSaWdodCwgcnVsZUJvdHRvbSk7CisgICAg
ICAgICAgICBkcmF3TGluZUZvckJveFNpZGUocGFpbnRJbmZvLmNvbnRleHQsIHBpeGVsU25hcHBl
ZFJ1bGVSZWN0LngoKSwgcGl4ZWxTbmFwcGVkUnVsZVJlY3QueSgpLCBwaXhlbFNuYXBwZWRSdWxl
UmVjdC5tYXhYKCksIHBpeGVsU25hcHBlZFJ1bGVSZWN0Lm1heFkoKSwgYm94U2lkZSwgcnVsZUNv
bG9yLCBydWxlU3R5bGUsIDAsIDAsIGFudGlhbGlhcyk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHJ1bGVMb2dpY2FsTGVmdCA9IGN1cnJMb2dpY2FsTGVmdE9mZnNldDsKKyAgICB9Cit9
CisKK3ZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnBhaW50Q29sdW1uQ29udGVudHMoUGFpbnRJ
bmZvJiAvKiBwYWludEluZm8gKi8sIGNvbnN0IExheW91dFBvaW50JiAvKiBwYWludE9mZnNldCAq
LykKK3sKKyAgICAvLyBGb3IgZWFjaCByZWN0YW5nbGUsIHNldCBpdCBhcyB0aGUgcmVnaW9uIHJl
Y3RhbmdsZSBhbmQgdGhlbiBsZXQgZmxvdyB0aHJlYWQgcGFpbnRpbmcgZG8gdGhlIHJlc3QuCisg
ICAgLy8gV2UgbWFrZSBtdWx0aXBsZSBjYWxscyB0byBwYWludEludG9SZWdpb24sIGNoYW5naW5n
IHRoZSByZWN0YW5nbGVzIGVhY2ggdGltZS4KKyAgICBpZiAoIWNvbHVtbkNvdW50KCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAgICAgCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30KKwogY29u
c3QgY2hhciogUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlbmRlck5hbWUoKSBjb25zdAogeyAgICAK
ICAgICByZXR1cm4gIlJlbmRlck11bHRpQ29sdW1uU2V0IjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCShyZXZpc2lvbiAxMjYwNTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAkod29y
a2luZyBjb3B5KQpAQCAtNjUsMTEgKzY1LDE5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxh
Y2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkgT1ZFUlJJREU7
CisKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbG9naWNhbFdpZHRoRm9yRmxvd1RocmVhZENvbnRl
bnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2NvbHVtbldpZHRoOyB9CiAgICAgdmlydHVh
bCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHRGb3JGbG93VGhyZWFkQ29udGVudCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fY29sdW1uSGVpZ2h0OyB9IC8vIEZJWE1FOiBXaWxsIGJlIHdyb25n
IG9uY2Ugd2UgaGF2ZSBtdWx0aXBsZSBzZXRzLgogCiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBy
ZW5kZXJOYW1lKCkgY29uc3Q7CiAgICAgCisgICAgdm9pZCBwYWludENvbHVtblJ1bGVzKFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7CisgICAgdm9pZCBwYWludENv
bHVtbkNvbnRlbnRzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7
CisKKyAgICBpbnQgY29sdW1uR2FwKCkgY29uc3Q7CisgICAgTGF5b3V0UmVjdCBjb2x1bW5SZWN0
QXQoIHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICAKICAgICB1bnNpZ25lZCBtX2NvbHVtbkNv
dW50OwogICAgIExheW91dFVuaXQgbV9jb2x1bW5XaWR0aDsKICAgICBMYXlvdXRVbml0IG1fY29s
dW1uSGVpZ2h0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHAJKHJldmlzaW9uIDEyNjA1MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsMjAgKzE5MSwxMSBAQCB2b2lkIFJlbmRl
clJlZ2lvbjo6bGF5b3V0KCkKICAgICAvLyBXZSdsbCBuZWVkIHRvIGV4cGFuZCBSZW5kZXJCb3hS
ZWdpb25JbmZvIHRvIGFsc28gaG9sZCBsZWZ0IGFuZCByaWdodCBvdmVyZmxvdyB2YWx1ZXMuCiB9
CiAKLXZvaWQgUmVuZGVyUmVnaW9uOjphdHRhY2hSZWdpb24oKQordm9pZCBSZW5kZXJSZWdpb246
Omluc3RhbGxGbG93VGhyZWFkKCkKIHsKLSAgICBpZiAoZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBBU1NFUlQoIW1fZmxvd1RocmVhZCk7Ci0gICAgLy8g
SW5pdGlhbGl6ZSB0aGUgZmxvdyB0aHJlYWQgcmVmZXJlbmNlIGFuZCBjcmVhdGUgdGhlIGZsb3cg
dGhyZWFkIG9iamVjdCBpZiBuZWVkZWQuCi0gICAgLy8gVGhlIGZsb3cgdGhyZWFkIGxpZmV0aW1l
IGlzIGluZmx1ZW5jZWQgYnkgdGhlIG51bWJlciBvZiByZWdpb25zIGF0dGFjaGVkIHRvIGl0LAot
ICAgIC8vIGFuZCB3ZSBhcmUgYXR0YWNoaW5nIHRoZSByZWdpb24gdG8gdGhlIGZsb3cgdGhyZWFk
LgotICAgIG1fZmxvd1RocmVhZCA9IHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZW5z
dXJlUmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKHN0eWxlKCktPnJlZ2lvblRocmVhZCgpKTsKIAot
ICAgIC8vIEEgcmVnaW9uIGlzIHZhbGlkIGlmIGl0IGlzIG5vdCBwYXJ0IG9mIGEgY2lyY3VsYXIg
cmVmZXJlbmNlLCB3aGljaCBpcyBjaGVja2VkIGJlbG93Ci0gICAgLy8gYW5kIGluIFJlbmRlck5h
bWVkRmxvd1RocmVhZDo6YWRkUmVnaW9uVG9UaHJlYWQuCi0gICAgc2V0SXNWYWxpZChmYWxzZSk7
CisgICAgbV9mbG93VGhyZWFkID0gdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5lbnN1
cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoc3R5bGUoKS0+cmVnaW9uVGhyZWFkKCkpOwogCiAg
ICAgLy8gQnkgbm93IHRoZSBmbG93IHRocmVhZCBzaG91bGQgYWxyZWFkeSBiZSBhZGRlZCB0byB0
aGUgcmVuZGVyaW5nIHRyZWUsCiAgICAgLy8gc28gd2UgZ28gdXAgdGhlIHJlbmRlcmluZyBwYXJl
bnRzIGFuZCBjaGVjayB0aGF0IHRoaXMgcmVnaW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBzYW1lCkBA
IC0yMTYsMTUgKzIwNywyOCBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKCkKICAg
ICAgICAgICAgIG1fcGFyZW50TmFtZWRGbG93VGhyZWFkID0gdG9SZW5kZXJOYW1lZEZsb3dUaHJl
YWQocGFyZW50T2JqZWN0KTsKICAgICAgICAgICAgIC8vIERvIG5vdCB0YWtlIGludG8gYWNjb3Vu
dCBhIHJlZ2lvbiB0aGF0IGxpbmtzIGEgZmxvdyB3aXRoIGl0c2VsZi4gVGhlIGRlcGVuZGVuY3kK
ICAgICAgICAgICAgIC8vIGNhbm5vdCBjaGFuZ2UsIHNvIGl0IGlzIG5vdCB3b3J0aCBhZGRpbmcg
aXQgdG8gdGhlIGxpc3QuCi0gICAgICAgICAgICBpZiAobV9mbG93VGhyZWFkID09IG1fcGFyZW50
TmFtZWRGbG93VGhyZWFkKSB7CisgICAgICAgICAgICBpZiAobV9mbG93VGhyZWFkID09IG1fcGFy
ZW50TmFtZWRGbG93VGhyZWFkKQogICAgICAgICAgICAgICAgIG1fZmxvd1RocmVhZCA9IDA7Ci0g
ICAgICAgICAgICAgICAgLy8gVGhpcyByZWdpb24gaXMgbm90IHZhbGlkIGZvciB0aGlzIGZsb3cg
dGhyZWFkIChhcyBiZWluZyBwYXJ0IG9mIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSkuCi0gICAgICAg
ICAgICAgICAgc2V0SXNWYWxpZChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cit9CisKK3Zv
aWQgUmVuZGVyUmVnaW9uOjphdHRhY2hSZWdpb24oKQoreworICAgIGlmIChkb2N1bWVudEJlaW5n
RGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBBIHJlZ2lvbiBzdGFy
dHMgb2ZmIGludmFsaWQuCisgICAgc2V0SXNWYWxpZChmYWxzZSk7CisKKyAgICAvLyBJbml0aWFs
aXplIHRoZSBmbG93IHRocmVhZCByZWZlcmVuY2UgYW5kIGNyZWF0ZSB0aGUgZmxvdyB0aHJlYWQg
b2JqZWN0IGlmIG5lZWRlZC4KKyAgICAvLyBUaGUgZmxvdyB0aHJlYWQgbGlmZXRpbWUgaXMgaW5m
bHVlbmNlZCBieSB0aGUgbnVtYmVyIG9mIHJlZ2lvbnMgYXR0YWNoZWQgdG8gaXQsCisgICAgLy8g
YW5kIHdlIGFyZSBhdHRhY2hpbmcgdGhlIHJlZ2lvbiB0byB0aGUgZmxvdyB0aHJlYWQuCisgICAg
aW5zdGFsbEZsb3dUaHJlYWQoKTsKKyAgICAKKyAgICBpZiAoIW1fZmxvd1RocmVhZCkKKyAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9mbG93VGhyZWFkLT5hZGRSZWdpb25Ub1RocmVhZCh0aGlzKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAkocmV2aXNpb24g
MTI2MDUzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NywyMyArOTcsMjkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGhGb3JGbG93VGhyZWFkQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0Rm9yRmxvd1RocmVhZENvbnRlbnQoKSBjb25zdDsK
IAorcHJvdGVjdGVkOgorICAgIHZvaWQgc2V0UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxlKCk7Cisg
ICAgdm9pZCByZXN0b3JlUmVnaW9uT2JqZWN0c09yaWdpbmFsU3R5bGUoKTsKKyAgICAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4g
IlJlbmRlclJlZ2lvbiI7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgpIE9WRVJS
SURFOwogCisgICAgdmlydHVhbCB2b2lkIGluc3RhbGxGbG93VGhyZWFkKCk7CisKICAgICBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBjb21wdXRlU3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJPYmpl
Y3QqKTsKICAgICB2b2lkIGNvbXB1dGVDaGlsZHJlblN0eWxlSW5SZWdpb24oY29uc3QgUmVuZGVy
T2JqZWN0Kik7Ci0gICAgdm9pZCBzZXRSZWdpb25PYmplY3RzUmVnaW9uU3R5bGUoKTsKLSAgICB2
b2lkIHJlc3RvcmVSZWdpb25PYmplY3RzT3JpZ2luYWxTdHlsZSgpOwogICAgIHZvaWQgc2V0T2Jq
ZWN0U3R5bGVJblJlZ2lvbihSZW5kZXJPYmplY3QqLCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiwg
Ym9vbCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCk7CiAgICAgdm9pZCBwcmludFJlZ2lvbk9iamVj
dHNTdHlsZXMoKTsKIAogICAgIHZvaWQgY2hlY2tSZWdpb25TdHlsZSgpOwogCitwcm90ZWN0ZWQ6
CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9mbG93VGhyZWFkOwogCitwcml2YXRlOgogICAgIC8v
IElmIHRoaXMgUmVuZGVyUmVnaW9uIGlzIGRpc3BsYXllZCBhcyBwYXJ0IG9mIGFub3RoZXIgbmFt
ZWQgZmxvdywKICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGRlcGVuZGVuY3kgdHJlZSwgc28g
dGhhdCBsYXlvdXQgb2YgdGhlCiAgICAgLy8gcmVnaW9ucyBpcyBhbHdheXMgZG9uZSBiZWZvcmUg
dGhlIHJlZ2lvbnMgdGhlbXNlbHZlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb25TZXQuY3BwCShyZXZpc2lvbiAxMjYwNTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNCAr
MzMsMTAgQEAgUmVuZGVyUmVnaW9uU2V0OjpSZW5kZXJSZWdpb25TZXQoTm9kZSogbgogewogfQog
Cit2b2lkIFJlbmRlclJlZ2lvblNldDo6aW5zdGFsbEZsb3dUaHJlYWQoKQoreworICAgIC8vIFdl
IGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcsIHNpbmNlIHdlIHdlcmUgYWJsZSB0byBjb25uZWN0
IHRoZSBmbG93IHRocmVhZAorICAgIC8vIGluIHRoZSBjb25zdHJ1Y3Rvci4KK30KKwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuaAkocmV2aXNpb24g
MTI2MDUzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICBSZW5kZXJSZWdpb25T
ZXQoTm9kZSosIFJlbmRlckZsb3dUaHJlYWQqKTsKICAgICAKIHByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIGluc3RhbGxGbG93VGhyZWFkKCkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CiB9OwogCg==
</data>
<flag name="review"
          id="170114"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>