<?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>128578</bug_id>
          
          <creation_ts>2014-02-10 21:19:27 -0800</creation_ts>
          <short_desc>Correct some uses of &apos;auto&apos;</short_desc>
          <delta_ts>2014-02-11 12:15:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andersca</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>mario</cc>
    
    <cc>menard</cc>
    
    <cc>rego</cc>
    
    <cc>samuel_white</cc>
    
    <cc>svillar</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979248</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-10 21:19:27 -0800</bug_when>
    <thetext>I recently noticed a number of places where we were using the following idiom:

for (auto rect : dirtyRects) {
    // ... do some stuff ...
}

The C++11 standard indicates that this produces something along the lines of:

&quot;auto elem = *__begin;&quot; which copies each element.

We should prefer to use &quot;for (const auto&amp; ...&quot; wherever possible, or &quot;for (auto&amp;&quot; in cases where we need to modify the elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979276</commentid>
    <comment_count>1</comment_count>
      <attachid>223809</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-10 22:16:47 -0800</bug_when>
    <thetext>Created attachment 223809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979461</commentid>
    <comment_count>2</comment_count>
      <attachid>223809</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-11 09:31:06 -0800</bug_when>
    <thetext>Comment on attachment 223809
Patch

Clearing flags on attachment: 223809

Committed r163882: &lt;http://trac.webkit.org/changeset/163882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979462</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-11 09:31:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979537</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-11 12:12:33 -0800</bug_when>
    <thetext>I wholeheartedly agree that auto is not good when this churn happens. And I’m really glad you fixed this!

I don’t really prefer const auto&amp; over auto&amp;, though. I can’t think of any harm that comes from using auto&amp;. If we only have const access to the collection, then the const works automatically. If we have non-const access, then it doesn’t seem worth the extra word just to narrow the access for the body of the loop.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223809</attachid>
            <date>2014-02-10 22:16:47 -0800</date>
            <delta_ts>2014-02-11 09:31:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128578-20140210221646.patch</filename>
            <type>text/plain</type>
            <size>15084</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mzg1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAyLTEwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIENvcnJlY3Qgc29tZSB1c2Vz
IG9mICdhdXRvJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI4NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29ycmVjdCB0aGUgZm9sbG93aW5nIGluc3RhbmNlcyBvZiAiZm9yIChhdXRvIC4uLikiIHRv
IHVzZSByZWZlcmVuY2Ugb3IKKyAgICAgICAgY29uc3QgcmVmZXJlbmNlcyB0byBhdm9pZCBjb3Bp
ZXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6ZWxlbWVudHNGcm9tQXR0cmli
dXRlKToKKyAgICAgICAgKiBjc3MvQ1NTR3JpZFRlbXBsYXRlVmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjYXJkSW5qZWN0ZWRTY3Jp
cHRzRm9yKToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnREZWx0YVRyYWNrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudERlbHRhVHJhY2tlcjo6ZG9taW5hbnRTY3JvbGxHZXN0
dXJlRGlyZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0
ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvV2ViTGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpkcmF3TGF5ZXJDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1RpbGVHcmlkLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZUdyaWQ6OmRyb3BUaWxlc0JldHdlZW5SZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3Jp
ZDo6ZHJvcERpc3RhbnRUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6ZHJvcElu
dmFsaWRUaWxlcyk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dHJhbnNsYXRlSW50ZXJzZWN0aW9uUG9pbnRzVG9Ta2lwSW5rQm91bmRh
cmllcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKwogMjAxNC0w
Mi0xMCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+CiAKICAgICAg
ICAgU3VwcG9ydCBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIGZvciBsaW51eApJbmRleDogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CShyZXZpc2lvbiAxNjM4NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmVsZW1lbnRzRnJvbUF0CiAgICAgVmVjdG9yPFN0cmlu
Zz4gaWRWZWN0b3I7CiAgICAgaWRMaXN0LnNwbGl0KCcgJywgaWRWZWN0b3IpOwogCi0gICAgZm9y
IChhdXRvIGlkTmFtZSA6IGlkVmVjdG9yKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiBpZE5hbWUg
OiBpZFZlY3RvcikgewogICAgICAgICBpZiAoRWxlbWVudCogaWRFbGVtZW50ID0gdHJlZVNjb3Bl
LmdldEVsZW1lbnRCeUlkKGlkTmFtZSkpCiAgICAgICAgICAgICBlbGVtZW50cy5hcHBlbmQoaWRF
bGVtZW50KTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxh
dGVWYWx1ZS5jcHAJKHJldmlzaW9uIDE2Mzg1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmlkVGVtcGxhdGVWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDE2ICs1MSwxNiBAQCBz
dGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0aW9uKGNvbnN0IE5hCiB7CiAgICAgVmVjdG9yPFN0
cmluZz4gY2FuZGlkYXRlczsKIAotICAgIGZvciAoYXV0byBpdCA9IGdyaWRBcmVhTWFwLmJlZ2lu
KCksIGVuZCA9IGdyaWRBcmVhTWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAg
Y29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBpdC0+dmFsdWU7CisgICAgZm9yIChj
b25zdCBhdXRvJiBpdCA6IGdyaWRBcmVhTWFwKSB7CisgICAgICAgIGNvbnN0IEdyaWRDb29yZGlu
YXRlJiBjb29yZGluYXRlID0gaXQudmFsdWU7CiAgICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0
ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4ICYmIHJvdyA8PSBjb29yZGluYXRlLnJvd3MuZmlu
YWxQb3NpdGlvbkluZGV4KQotICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoaXQtPmtleSk7
CisgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChpdC5rZXkpOwogICAgIH0KIAotICAgIGZv
ciAoYXV0byBpdCA9IGdyaWRBcmVhTWFwLmJlZ2luKCksIGVuZCA9IGdyaWRBcmVhTWFwLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3Jk
aW5hdGUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGlmIChjb2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4ICYmIGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMu
ZmluYWxQb3NpdGlvbkluZGV4ICYmIGNhbmRpZGF0ZXMuY29udGFpbnMoaXQtPmtleSkpCi0gICAg
ICAgICAgICByZXR1cm4gaXQtPmtleTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0IDogZ3JpZEFy
ZWFNYXApIHsKKyAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBpdC52
YWx1ZTsKKyAgICAgICAgaWYgKGNvbHVtbiA+PSBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBv
c2l0aW9uSW5kZXggJiYgY29sdW1uIDw9IGNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9u
SW5kZXggJiYgY2FuZGlkYXRlcy5jb250YWlucyhpdC5rZXkpKQorICAgICAgICAgICAgcmV0dXJu
IGl0LmtleTsKICAgICB9CiAKICAgICByZXR1cm4gIi4iOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAko
cmV2aXNpb24gMTYzODU0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjk0LDIwICsxNjk0LDIwIEBAIHZvaWQgTm9kZTo6c2hvd1RyZWVGb3JUaGlz
QWNyb3NzRnJhbWUoKSAKIAogdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hl
cyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyTmFtZSkKIHsKLSAgICBmb3IgKGF1dG8gaXQgPSBt
X2F0b21pY05hbWVDYWNoZXMuYmVnaW4oKSwgZW5kID0gbV9hdG9taWNOYW1lQ2FjaGVzLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGl0LT52YWx1ZS0+aW52YWxpZGF0ZUNhY2hlKGF0
dHJOYW1lKTsKKyAgICBmb3IgKGF1dG8mIGF0b21pY05hbWUgOiBtX2F0b21pY05hbWVDYWNoZXMp
CisgICAgICAgIGF0b21pY05hbWUudmFsdWUtPmludmFsaWRhdGVDYWNoZShhdHRyTmFtZSk7CiAK
LSAgICBmb3IgKGF1dG8gaXQgPSBtX25hbWVDYWNoZXMuYmVnaW4oKSwgZW5kID0gbV9uYW1lQ2Fj
aGVzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGl0LT52YWx1ZS0+aW52YWxpZGF0
ZUNhY2hlKGF0dHJOYW1lKTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiBtX25hbWVDYWNoZXMpCisg
ICAgICAgIG5hbWUudmFsdWUtPmludmFsaWRhdGVDYWNoZShhdHRyTmFtZSk7CiAKLSAgICBmb3Ig
KGF1dG8gaXQgPSBtX2NhY2hlZENvbGxlY3Rpb25zLmJlZ2luKCksIGVuZCA9IG1fY2FjaGVkQ29s
bGVjdGlvbnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT5pbnZh
bGlkYXRlQ2FjaGUoYXR0ck5hbWUpOworICAgIGZvciAoYXV0byYgY29sbGVjdGlvbiA6IG1fY2Fj
aGVkQ29sbGVjdGlvbnMpCisgICAgICAgIGNvbGxlY3Rpb24udmFsdWUtPmludmFsaWRhdGVDYWNo
ZShhdHRyTmFtZSk7CiAKICAgICBpZiAoYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGZvciAoYXV0byBpdCA9IG1fdGFnTm9kZUxpc3RDYWNoZU5TLmJlZ2luKCksIGVuZCA9IG1fdGFn
Tm9kZUxpc3RDYWNoZU5TLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGl0LT52YWx1
ZS0+aW52YWxpZGF0ZUNhY2hlKCk7CisgICAgZm9yIChhdXRvJiB0YWdOb2RlTGlzdCA6IG1fdGFn
Tm9kZUxpc3RDYWNoZU5TKQorICAgICAgICB0YWdOb2RlTGlzdC52YWx1ZS0+aW52YWxpZGF0ZUNh
Y2hlKCk7CiB9CiAKIHZvaWQgTm9kZTo6Z2V0U3VicmVzb3VyY2VVUkxzKExpc3RIYXNoU2V0PFVS
TD4mIHVybHMpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUluamVj
dGVkU2NyaXB0TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNjM4NTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYwLDEyICs2MCwxMiBAQCB2b2lkIFBhZ2VJbmplY3RlZFNjcmlwdE1h
bmFnZXI6OmRpc2NhcmRJCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3Rvcjxsb25nPiBpZHNU
b1JlbW92ZTsKLSAgICBmb3IgKGF1dG8gaXQgPSBtX2lkVG9JbmplY3RlZFNjcmlwdC5iZWdpbigp
LCBlbmQgPSBtX2lkVG9JbmplY3RlZFNjcmlwdC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0g
ICAgICAgIEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IGl0LT52YWx1ZS5zY3JpcHRTdGF0
ZSgpOworICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBtX2lkVG9JbmplY3RlZFNjcmlwdCkgewor
ICAgICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBpdC52YWx1ZS5zY3JpcHRTdGF0
ZSgpOwogICAgICAgICBpZiAod2luZG93ICE9IGRvbVdpbmRvd0Zyb21FeGVjU3RhdGUoc2NyaXB0
U3RhdGUpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIG1fc2NyaXB0U3RhdGVUb0lk
LnJlbW92ZShzY3JpcHRTdGF0ZSk7Ci0gICAgICAgIGlkc1RvUmVtb3ZlLmFwcGVuZChpdC0+a2V5
KTsKKyAgICAgICAgaWRzVG9SZW1vdmUuYXBwZW5kKGl0LmtleSk7CiAgICAgfQogCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBpZHNUb1JlbW92ZS5zaXplKCk7IGkrKykKQEAgLTczLDggKzcz
LDggQEAgdm9pZCBQYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjYXJkSQogCiAgICAgLy8g
Tm93IHJlbW92ZSBzY3JpcHQgc3RhdGVzIHRoYXQgaGF2ZSBpZCBidXQgbm8gaW5qZWN0ZWQgc2Ny
aXB0LgogICAgIFZlY3RvcjxKU0M6OkV4ZWNTdGF0ZSo+IHNjcmlwdFN0YXRlc1RvUmVtb3ZlOwot
ICAgIGZvciAoYXV0byBpdCA9IG1fc2NyaXB0U3RhdGVUb0lkLmJlZ2luKCksIGVuZCA9IG1fc2Ny
aXB0U3RhdGVUb0lkLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgSlNDOjpFeGVj
U3RhdGUqIHNjcmlwdFN0YXRlID0gaXQtPmtleTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0IDog
bV9zY3JpcHRTdGF0ZVRvSWQpIHsKKyAgICAgICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRl
ID0gaXQua2V5OwogICAgICAgICBpZiAod2luZG93ID09IGRvbVdpbmRvd0Zyb21FeGVjU3RhdGUo
c2NyaXB0U3RhdGUpKQogICAgICAgICAgICAgc2NyaXB0U3RhdGVzVG9SZW1vdmUuYXBwZW5kKHNj
cmlwdFN0YXRlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRE
ZWx0YVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudERlbHRhVHJhY2tlci5jcHAJKHJldmlzaW9uIDE2Mzg1NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2hlZWxFdmVudERlbHRhVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDkg
KzY4LDggQEAgRG9taW5hbnRTY3JvbGxHZXN0dXJlRGlyZWN0aW9uIFdoZWVsRXZlbgogICAgIGJv
b2wgYWxsVmVydGljYWwgPSBtX3JlY2VudFdoZWVsRXZlbnREZWx0YXMuc2l6ZSgpOwogICAgIGJv
b2wgYWxsSG9yaXpvbnRhbCA9IG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5zaXplKCk7CiAKLSAg
ICBhdXRvIGVuZCA9IG1fcmVjZW50V2hlZWxFdmVudERlbHRhcy5lbmQoKTsKLSAgICBmb3IgKGF1
dG8gaXQgPSBtX3JlY2VudFdoZWVsRXZlbnREZWx0YXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7Ci0gICAgICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGRlbHRhSXNQcmVkb21pbmFudGx5VmVydGlj
YWwoKml0KTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGRlbHRhIDogbV9yZWNlbnRXaGVlbEV2ZW50
RGVsdGFzKSB7CisgICAgICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGRlbHRhSXNQcmVkb21pbmFudGx5
VmVydGljYWwoZGVsdGEpOwogICAgICAgICBhbGxWZXJ0aWNhbCAmPSBpc1ZlcnRpY2FsOwogICAg
ICAgICBhbGxIb3Jpem9udGFsICY9ICFpc1ZlcnRpY2FsOwogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAJKHJldmlzaW9uIDE2Mzg1NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBA
IFJlZ2lvbiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0ZU5vbkYKICAgICBkb2N1bWVudC0+
Z2V0VG91Y2hSZWN0cyh0b3VjaFJlY3RzKTsKICAgICAKICAgICBSZWdpb24gdG91Y2hSZWdpb247
Ci0gICAgZm9yIChhdXRvIHJlY3QgOiB0b3VjaFJlY3RzKQorICAgIGZvciAoY29uc3QgYXV0byYg
cmVjdCA6IHRvdWNoUmVjdHMpCiAgICAgICAgIHRvdWNoUmVnaW9uLnVuaXRlKHJlY3QpOwogCiAg
ICAgcmV0dXJuIHRvdWNoUmVnaW9uOwpAQCAtMTMyLDEwICsxMzIsMTAgQEAgUmVnaW9uIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpjb21wdXRlTm9uRgogICAgICAgICB9CiAgICAgfQogCi0gICAgZm9y
IChhdXRvIGl0ID0gZnJhbWVWaWV3LT5jaGlsZHJlbigpLmJlZ2luKCksIGVuZCA9IGZyYW1lVmll
dy0+Y2hpbGRyZW4oKS5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmICghKCpp
dCktPmlzUGx1Z2luVmlld0Jhc2UoKSkKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxkIDogZnJh
bWVWaWV3LT5jaGlsZHJlbigpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmlzUGx1Z2luVmlld0Jh
c2UoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBQbHVnaW5WaWV3QmFzZSogcGx1
Z2luVmlld0Jhc2UgPSB0b1BsdWdpblZpZXdCYXNlKCgqaXQpLmdldCgpKTsKKyAgICAgICAgUGx1
Z2luVmlld0Jhc2UqIHBsdWdpblZpZXdCYXNlID0gdG9QbHVnaW5WaWV3QmFzZShjaGlsZC5nZXQo
KSk7CiAgICAgICAgIGlmIChwbHVnaW5WaWV3QmFzZS0+d2FudHNXaGVlbEV2ZW50cygpKQogICAg
ICAgICAgICAgbm9uRmFzdFNjcm9sbGFibGVSZWdpb24udW5pdGUocGx1Z2luVmlld0Jhc2UtPmZy
YW1lUmVjdCgpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCShyZXZpc2lvbiAxNjM4NTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEzMCw3ICsxMzAsNyBAQCB2b2lkIGRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250
CiAgICAgVGhlbWVNYWM6OnNldEZvY3VzUmluZ0NsaXBSZWN0KGZvY3VzUmluZ0NsaXBSZWN0KTsK
ICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi0gICAgZm9yIChhdXRvIHJlY3QgOiBkaXJ0eVJl
Y3RzKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiByZWN0IDogZGlydHlSZWN0cykgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3JhcGhpY3NDb250ZXh0KTsK
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmNsaXAocmVjdCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9UaWxlR3JpZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvVGlsZUdyaWQubW0JKHJldmlzaW9uIDE2Mzg1NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlR3JpZC5tbQkod29ya2luZyBjb3B5KQpAQCAtODUsNyAr
ODUsNyBAQCB2b2lkIFRpbGVHcmlkOjpkcm9wVGlsZXNPdXRzaWRlUmVjdChjb25zCiB2b2lkIFRp
bGVHcmlkOjpkcm9wVGlsZXNCZXR3ZWVuUmVjdHMoY29uc3QgSW50UmVjdCYgZHJvcFJlY3QsIGNv
bnN0IEludFJlY3QmIGtlZXBSZWN0KQogewogICAgIFZlY3RvcjxUaWxlSW5kZXg+IHRvUmVtb3Zl
OwotICAgIGZvciAoYXV0byB0aWxlIDogbV90aWxlcykgeworICAgIGZvciAoY29uc3QgYXV0byYg
dGlsZSA6IG1fdGlsZXMpIHsKICAgICAgICAgVGlsZUluZGV4JiBpbmRleCA9IHRpbGUua2V5Owog
ICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gdGlsZS52YWx1ZS0+cmVjdCgpOwogICAgICAgICBp
ZiAodGlsZVJlY3QuaW50ZXJzZWN0cyhkcm9wUmVjdCkgJiYgIXRpbGVSZWN0LmludGVyc2VjdHMo
a2VlcFJlY3QpKQpAQCAtMTI0LDkgKzEyNCw5IEBAIGJvb2wgVGlsZUdyaWQ6OmRyb3BEaXN0YW50
VGlsZXModW5zaWduZWQKIAogICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSB0aGlzLT52aXNpYmxl
UmVjdCgpOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8ZG91YmxlLCBUaWxlSW5kZXg+PiB0b1JlbW92
ZTsKLSAgICBmb3IgKGF1dG8gdGlsZSA6IG1fdGlsZXMpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IHRpbGUgOiBtX3RpbGVzKSB7CiAgICAgICAgIFRpbGVJbmRleCYgaW5kZXggPSB0aWxlLmtleTsK
LSAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IHRpbGUudmFsdWUtPnJlY3QoKTsKKyAgICAgICAg
Y29uc3QgSW50UmVjdCYgdGlsZVJlY3QgPSB0aWxlLnZhbHVlLT5yZWN0KCk7CiAgICAgICAgIGRv
dWJsZSBkaXN0YW5jZSA9IHRpbGVEaXN0YW5jZTIodmlzaWJsZVJlY3QsIHRpbGVSZWN0KTsKICAg
ICAgICAgaWYgKGRpc3RhbmNlIDw9IHNob3J0ZXN0RGlzdGFuY2UpCiAgICAgICAgICAgICBjb250
aW51ZTsKQEAgLTMxNiw5ICszMTYsOSBAQCB2b2lkIFRpbGVHcmlkOjpkcm9wSW52YWxpZFRpbGVz
KCkKICAgICBJbnRSZWN0IGJvdW5kcyA9IHRoaXMtPmJvdW5kcygpOwogICAgIEludFJlY3QgZHJv
cEJvdW5kcyA9IGludGVyc2VjdGlvbihtX3ZhbGlkQm91bmRzLCBib3VuZHMpOwogICAgIFZlY3Rv
cjxUaWxlSW5kZXg+IHRvUmVtb3ZlOwotICAgIGZvciAoYXV0byB0aWxlIDogbV90aWxlcykgewor
ICAgIGZvciAoY29uc3QgYXV0byYgdGlsZSA6IG1fdGlsZXMpIHsKICAgICAgICAgVGlsZUluZGV4
JiBpbmRleCA9IHRpbGUua2V5OwotICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gdGlsZS52YWx1
ZS0+cmVjdCgpOworICAgICAgICBjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCA9IHRpbGUudmFsdWUt
PnJlY3QoKTsKICAgICAgICAgSW50UmVjdCBleHBlY3RlZFRpbGVSZWN0ID0gdGlsZVJlY3RGb3JJ
bmRleChpbmRleCk7CiAgICAgICAgIGlmIChleHBlY3RlZFRpbGVSZWN0ICE9IHRpbGVSZWN0IHx8
ICFkcm9wQm91bmRzLmNvbnRhaW5zKHRpbGVSZWN0KSkKICAgICAgICAgICAgIHRvUmVtb3ZlLmFw
cGVuZChpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwCShyZXZpc2lvbiAxNjM4NTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMywxMiArMTAzLDEyIEBAIHN0YXRp
YyBEYXNoQXJyYXkgdHJhbnNsYXRlSW50ZXJzZWN0aW9uUG8KICAgICAvLyBTdGVwIDM6IE91dHB1
dCB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgcmFuZ2VzLCBidXQgb25seSBpZiB0aGUgc3BhY2Ugd2Fy
cmFudHMgYW4gdW5kZXJsaW5lLgogICAgIGZsb2F0IHByZXZpb3VzID0gMDsKICAgICBEYXNoQXJy
YXkgcmVzdWx0OwotICAgIGZvciAoYXV0byBpID0gaW50ZXJtZWRpYXRlVHVwbGVzLmJlZ2luKCk7
IGkgIT0gaW50ZXJtZWRpYXRlVHVwbGVzLmVuZCgpOyBpKyspIHsKLSAgICAgICAgaWYgKGktPmZp
cnN0IC0gcHJldmlvdXMgPiBkaWxhdGlvbkFtb3VudCkgeworICAgIGZvciAoY29uc3QgYXV0byYg
dHVwbGUgOiBpbnRlcm1lZGlhdGVUdXBsZXMpIHsKKyAgICAgICAgaWYgKHR1cGxlLmZpcnN0IC0g
cHJldmlvdXMgPiBkaWxhdGlvbkFtb3VudCkgewogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChw
cmV2aW91cyk7Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGktPmZpcnN0KTsKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQodHVwbGUuZmlyc3QpOwogICAgICAgICB9Ci0gICAgICAgIHByZXZp
b3VzID0gaS0+c2Vjb25kOworICAgICAgICBwcmV2aW91cyA9IHR1cGxlLnNlY29uZDsKICAgICB9
CiAgICAgaWYgKHRvdGFsV2lkdGggLSBwcmV2aW91cyA+IGRpbGF0aW9uQW1vdW50KSB7CiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQocHJldmlvdXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxNjM4NTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcs
MzIgKzEwNywzMiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvCiAj
ZW5kaWYKICAgICBzZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2luYWxFZGl0
aW5nQmVoYXZpb3IpOwogCi0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX3N0YW5kYXJkRm9udEZhbWls
aWVzLmJlZ2luKCk7IGl0ZXIgIT0gbV9zdGFuZGFyZEZvbnRGYW1pbGllcy5lbmQoKTsgKytpdGVy
KQotICAgICAgICBzZXR0aW5ncy5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0
YXRpY19jYXN0PFVTY3JpcHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IHN0YW5kYXJkRm9udCA6IG1fc3RhbmRhcmRGb250RmFtaWxpZXMpCisgICAgICAgIHNldHRpbmdz
LnNldFN0YW5kYXJkRm9udEZhbWlseShzdGFuZGFyZEZvbnQudmFsdWUsIHN0YXRpY19jYXN0PFVT
Y3JpcHRDb2RlPihzdGFuZGFyZEZvbnQua2V5KSk7CiAgICAgbV9zdGFuZGFyZEZvbnRGYW1pbGll
cy5jbGVhcigpOwogCi0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX2ZpeGVkRm9udEZhbWlsaWVzLmJl
Z2luKCk7IGl0ZXIgIT0gbV9maXhlZEZvbnRGYW1pbGllcy5lbmQoKTsgKytpdGVyKQotICAgICAg
ICBzZXR0aW5ncy5zZXRGaXhlZEZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0YXRpY19jYXN0PFVT
Y3JpcHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGZpeGVkRm9udCA6
IG1fZml4ZWRGb250RmFtaWxpZXMpCisgICAgICAgIHNldHRpbmdzLnNldEZpeGVkRm9udEZhbWls
eShmaXhlZEZvbnQudmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihmaXhlZEZvbnQua2V5
KSk7CiAgICAgbV9maXhlZEZvbnRGYW1pbGllcy5jbGVhcigpOwogCi0gICAgZm9yIChhdXRvIGl0
ZXIgPSBtX3NlcmlmRm9udEZhbWlsaWVzLmJlZ2luKCk7IGl0ZXIgIT0gbV9zZXJpZkZvbnRGYW1p
bGllcy5lbmQoKTsgKytpdGVyKQotICAgICAgICBzZXR0aW5ncy5zZXRTZXJpZkZvbnRGYW1pbHko
aXRlci0+dmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIHNlcmlmRm9udCA6IG1fc2VyaWZGb250RmFtaWxpZXMpCisgICAgICAg
IHNldHRpbmdzLnNldFNlcmlmRm9udEZhbWlseShzZXJpZkZvbnQudmFsdWUsIHN0YXRpY19jYXN0
PFVTY3JpcHRDb2RlPihzZXJpZkZvbnQua2V5KSk7CiAgICAgbV9zZXJpZkZvbnRGYW1pbGllcy5j
bGVhcigpOwogCi0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX3NhbnNTZXJpZkZvbnRGYW1pbGllcy5i
ZWdpbigpOyBpdGVyICE9IG1fc2Fuc1NlcmlmRm9udEZhbWlsaWVzLmVuZCgpOyArK2l0ZXIpCi0g
ICAgICAgIHNldHRpbmdzLnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0YXRp
Y19jYXN0PFVTY3JpcHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHNh
bnNTZXJpZkZvbnQgOiBtX3NhbnNTZXJpZkZvbnRGYW1pbGllcykKKyAgICAgICAgc2V0dGluZ3Mu
c2V0U2Fuc1NlcmlmRm9udEZhbWlseShzYW5zU2VyaWZGb250LnZhbHVlLCBzdGF0aWNfY2FzdDxV
U2NyaXB0Q29kZT4oc2Fuc1NlcmlmRm9udC5rZXkpKTsKICAgICBtX3NhbnNTZXJpZkZvbnRGYW1p
bGllcy5jbGVhcigpOwogCi0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX2N1cnNpdmVGb250RmFtaWxp
ZXMuYmVnaW4oKTsgaXRlciAhPSBtX2N1cnNpdmVGb250RmFtaWxpZXMuZW5kKCk7ICsraXRlcikK
LSAgICAgICAgc2V0dGluZ3Muc2V0Q3Vyc2l2ZUZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0YXRp
Y19jYXN0PFVTY3JpcHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGN1
cnNpdmVGb250IDogbV9jdXJzaXZlRm9udEZhbWlsaWVzKQorICAgICAgICBzZXR0aW5ncy5zZXRD
dXJzaXZlRm9udEZhbWlseShjdXJzaXZlRm9udC52YWx1ZSwgc3RhdGljX2Nhc3Q8VVNjcmlwdENv
ZGU+KGN1cnNpdmVGb250LmtleSkpOwogICAgIG1fY3Vyc2l2ZUZvbnRGYW1pbGllcy5jbGVhcigp
OwogCi0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX2ZhbnRhc3lGb250RmFtaWxpZXMuYmVnaW4oKTsg
aXRlciAhPSBtX2ZhbnRhc3lGb250RmFtaWxpZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgc2V0
dGluZ3Muc2V0RmFudGFzeUZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0YXRpY19jYXN0PFVTY3Jp
cHRDb2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGZhbnRhc3lGb250IDog
bV9mYW50YXN5Rm9udEZhbWlsaWVzKQorICAgICAgICBzZXR0aW5ncy5zZXRGYW50YXN5Rm9udEZh
bWlseShmYW50YXN5Rm9udC52YWx1ZSwgc3RhdGljX2Nhc3Q8VVNjcmlwdENvZGU+KGZhbnRhc3lG
b250LmtleSkpOwogICAgIG1fZmFudGFzeUZvbnRGYW1pbGllcy5jbGVhcigpOwogCi0gICAgZm9y
IChhdXRvIGl0ZXIgPSBtX3BpY3RvZ3JhcGhGb250RmFtaWxpZXMuYmVnaW4oKTsgaXRlciAhPSBt
X3BpY3RvZ3JhcGhGb250RmFtaWxpZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgc2V0dGluZ3Mu
c2V0UGljdG9ncmFwaEZvbnRGYW1pbHkoaXRlci0+dmFsdWUsIHN0YXRpY19jYXN0PFVTY3JpcHRD
b2RlPihpdGVyLT5rZXkpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHBpY3RvZ3JhcGhGb250IDog
bV9waWN0b2dyYXBoRm9udEZhbWlsaWVzKQorICAgICAgICBzZXR0aW5ncy5zZXRQaWN0b2dyYXBo
Rm9udEZhbWlseShwaWN0b2dyYXBoRm9udC52YWx1ZSwgc3RhdGljX2Nhc3Q8VVNjcmlwdENvZGU+
KHBpY3RvZ3JhcGhGb250LmtleSkpOwogICAgIG1fcGljdG9ncmFwaEZvbnRGYW1pbGllcy5jbGVh
cigpOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>