<?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>128555</bug_id>
          
          <creation_ts>2014-02-10 14:37:11 -0800</creation_ts>
          <short_desc>[New Multicolumn] Make columns work with line grids</short_desc>
          <delta_ts>2014-02-11 08:47:05 -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>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>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mstensho</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979073</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-02-10 14:37:11 -0800</bug_when>
    <thetext>Make columns work with line grids. They need to set up the line grid pagination origin properly, and regions/flow threads have a bug or two that needs to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979075</commentid>
    <comment_count>1</comment_count>
      <attachid>223752</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-02-10 14:43:18 -0800</bug_when>
    <thetext>Created attachment 223752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979086</commentid>
    <comment_count>2</comment_count>
      <attachid>223752</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 15:21:15 -0800</bug_when>
    <thetext>Comment on attachment 223752
Patch

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

&gt; Source/WebCore/rendering/LayoutState.h:89
&gt; +    LayoutSize pageOffset() const { return m_pageOffset; }

Is this really offsetFromPage()? that would be a clearer name than pageOffset (which could be the offset of a page).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979253</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-02-10 21:38:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 223752 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=223752&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/LayoutState.h:89
&gt; &gt; +    LayoutSize pageOffset() const { return m_pageOffset; }
&gt; 
&gt; Is this really offsetFromPage()? that would be a clearer name than pageOffset (which could be the offset of a page).

It&apos;s actually really complicated what that represents. It is the cumulative offset of the logical top of the first page within the layout state. I agree it needs a better name, but should probably be a separate patch, since it&apos;s a member variable and that term is used all over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979344</commentid>
    <comment_count>4</comment_count>
      <attachid>223752</attachid>
    <who name="Morten Stenshorne">mstensho</who>
    <bug_when>2014-02-11 02:10:52 -0800</bug_when>
    <thetext>Comment on attachment 223752
Patch

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

&gt; Source/WebCore/rendering/LayoutState.cpp:-227
&gt; -void LayoutState::computeLineGridPaginationOrigin(RenderBox* renderer)

Should remove the method declaration from the .h file too.

&gt; Source/WebCore/rendering/RenderBox.cpp:-4414
&gt; -        || isMultiColumnBlockFlow();

With this change, isMultiColumnBlockFlow() will become unused, won&apos;t it?
Anyway, I wonder if you should keep it here, since paginating a multicol still doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979430</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-02-11 08:47:05 -0800</bug_when>
    <thetext>Landed in r163878</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223752</attachid>
            <date>2014-02-10 14:43:18 -0800</date>
            <delta_ts>2014-02-11 02:10:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26460</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzgyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE0LTAyLTEwICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBNYWtl
IGNvbHVtbnMgd29yayB3aXRoIGxpbmUgZ3JpZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODU1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGxpbmUtc25hcC1pbnRvLWNvbHVtbnMuaHRtbCBh
bmQgbGluZS1zbmFwLWluc2lkZS1jb2x1bW5zLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9M
YXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUpOgorICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0U3RhdGU6OnBhZ2VPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3Rh
dGU6OnNldExpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbik6CisgICAgICAgIENoYW5nZSB0aGUgTGF5
b3V0U3RhdGUgdG8gY2FsbCBpbnRvIHRoZSByZW5kZXJlciB0byBjb21wdXRlIHRoZSBsaW5lCisg
ICAgICAgIGdyaWQgcGFnaW5hdGlvbiBvcmlnaW4gaW5zdGVhZCBvZiBkb2luZyBpdCBkaXJlY3Rs
eS4gQWRkZWQgdGhlCisgICAgICAgIGFwcHJvcHJpYXRlIGdldHRlcnMgYW5kIHNldHRlcnMgdG8g
ZW5hYmxlIHRoZSByZW5kZXJlciB0byBkbyB0aGlzLgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlTGlu
ZUdyaWRQYWdpbmF0aW9uT3JpZ2luKToKKyAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Lmg6CisgICAgICAgIEFuIGltcGxlbWVudGF0aW9uIGZvciB0aGUgb2xkIG11bHRpLWNvbHVtbiBj
b2RlLiBUaGUgbG9naWMgaXMgdGhlCisgICAgICAgIHNhbWUgd2l0aCB0d2Vha3MgbWFkZSBub3cg
dGhhdCB0aGUgbWV0aG9kIGlzIG9uIHRoZSByZW5kZXJlciBpbnN0ZWFkLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnBhZ2VMb2dpY2FsVG9wRm9yT2Zmc2V0KToKKyAgICAgICAgRml4IGEgYnVnIHdp
dGggZmxvdyB0aHJlYWRzIGFuZCBwYWdlTG9naWNhbFRvcEZvck9mZnNldC4gTm9ybWFsIENTUyBy
ZWdpb24tYmFzZWQKKyAgICAgICAgZmxvdyB0aHJlYWRzIGFyZSBuZXZlciBlbWJlZGRlZCBpbiBh
biBlbmNsb3NpbmcgcGFnaW5hdGlvbiBjb250ZXh0LCBzbyB0aGV5CisgICAgICAgIGRpZG4ndCBh
ZGQgaW4gdGhlIGZpcnN0UGFnZUxvZ2ljYWxUb3AgKG9yIHN1YnRyYWN0IGl0IHdoZW4gY29tcHV0
aW5nIHRoZSByZWdpb24KKyAgICAgICAgaGl0KS4gTXVsdGktY29sdW1uIGZsb3cgdGhyZWFkcyBk
byBuZWVkIHRvIHN1YnRyYWN0IG91dCB0aGUgZmlyc3RQYWdlTG9naWNhbFRvcCwKKyAgICAgICAg
c2luY2UgaXQgY2FuIG9jY3VyIHNvbWV3aGVyZSBvbiB0aGUgcGFnZS4KKyAgICAgICAgCisgICAg
ICAgIFVsdGltYXRlbHkgcmVnaW9ucyB3aWxsIG5lZWQgdG8gZ2V0IHNtYXJ0ZXIgaGVyZSB0b28g
aWYgdGhleSB3YW50IHRvIHdvcmsgd2l0aAorICAgICAgICBsaW5lIGdyaWRzLCBidXQgZm9yIG5v
dyBJIGp1c3QgZml4ZWQgbXVsdGktY29sdW1uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmlzVW5zcGxpdHRhYmxlRm9y
UGFnaW5hdGlvbik6CisgICAgICAgIFVuZG8gdGhpcyBjaGFuZ2UsIHNpbmNlIGl0IHByZXZlbnRz
IHRoZSBpbmhlcml0YW5jZSBvZiBsaW5lIGdyaWRzIGludG8gdGhlCisgICAgICAgIG11bHRpLWNv
bHVtbiBsYXlvdXQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVh
ZDo6Y29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oOgorICAgICAgICBBbiBpbXBsZW1lbnRhdGlv
biBmb3IgdGhlIG5ldyBtdWx0aS1jb2x1bW4gY29kZS4gVGhlIGxvZ2ljIGlzIHRoZQorICAgICAg
ICBzYW1lIGFzIHRoZSBvbGQgY29kZS4gQ29kZSBkdXBsaWNhdGlvbiBpcyBvaywgc2luY2UgdGhl
IG9sZCBtdWx0aS1jb2x1bW4gbWV0aG9kCisgICAgICAgIGluIFJlbmRlckJsb2NrIHdpbGwganVz
dCBiZSBkZWxldGVkIG9uY2UgdGhlIG5ldyBjb2RlIGlzIHR1cm5lZCBvbiwgYW5kIGl0J3MgZWFz
aWVyCisgICAgICAgIG5vdCB0byBpbnRlcnR3aW5lIHRoZW0uCisKIDIwMTQtMDItMTAgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV0gRml4IGxheWVyaW5n
IHZpb2xhdGlvbnMgaW4gTWVkaWFTb3VyY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24gMTYzODAwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDggKzEyNiw4IEBA
IExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShzdGQ6OnVuaXF1ZV9wdHIKICAgICAKICAgICBtX2lz
UGFnaW5hdGVkID0gbV9wYWdlTG9naWNhbEhlaWdodCB8fCBtX2NvbHVtbkluZm8gfHwgcmVuZGVy
ZXItPmlzUmVuZGVyRmxvd1RocmVhZCgpOwogCi0gICAgaWYgKGxpbmVHcmlkKCkgJiYgcmVuZGVy
ZXItPmhhc0NvbHVtbnMoKSAmJiByZW5kZXJlci0+c3R5bGUoKS5oYXNJbmxpbmVDb2x1bW5BeGlz
KCkpCi0gICAgICAgIGNvbXB1dGVMaW5lR3JpZFBhZ2luYXRpb25PcmlnaW4ocmVuZGVyZXIpOwor
ICAgIGlmIChsaW5lR3JpZCgpICYmIChsaW5lR3JpZCgpLT5zdHlsZSgpLndyaXRpbmdNb2RlKCkg
PT0gcmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSkgJiYgcmVuZGVyZXItPmlzUmVuZGVy
QmxvY2soKSkKKyAgICAgICAgdG9SZW5kZXJCbG9jayhyZW5kZXJlciktPmNvbXB1dGVMaW5lR3Jp
ZFBhZ2luYXRpb25PcmlnaW4oKnRoaXMpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIG5ldyBncmlk
IHRvIHRyYWNrLCB0aGVuIGFkZCBpdCB0byBvdXIgc2V0LgogICAgIGlmIChyZW5kZXJlci0+c3R5
bGUoKS5saW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5k
ZXJlci0+aXNSZW5kZXJCbG9ja0Zsb3coKSkKQEAgLTIyNCw0NiArMjI0LDQgQEAgdm9pZCBMYXlv
dXRTdGF0ZTo6ZXN0YWJsaXNoTGluZUdyaWQoUmVuZAogICAgIG1fbGluZUdyaWRPZmZzZXQgPSBt
X2xheW91dE9mZnNldDsgCiB9CiAKLXZvaWQgTGF5b3V0U3RhdGU6OmNvbXB1dGVMaW5lR3JpZFBh
Z2luYXRpb25PcmlnaW4oUmVuZGVyQm94KiByZW5kZXJlcikKLXsKLSAgICAvLyBXZSBuZWVkIHRv
IGNhY2hlIGEgbGluZSBncmlkIHBhZ2luYXRpb24gb3JpZ2luIHNvIHRoYXQgd2UgdW5kZXJzdGFu
ZCBob3cgdG8gcmVzZXQgdGhlIGxpbmUgZ3JpZAotICAgIC8vIGF0IHRoZSB0b3Agb2YgZWFjaCBj
b2x1bW4uCi0gICAgLy8gR2V0IHRoZSBjdXJyZW50IGxpbmUgZ3JpZCBhbmQgb2Zmc2V0LgotICAg
IGlmICghbGluZUdyaWQoKSB8fCBsaW5lR3JpZCgpLT5zdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0g
cmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ly8gR2V0IHRoZSBoeXBvdGhldGljYWwgbGluZSBib3ggdXNlZCB0byBlc3RhYmxpc2ggdGhlIGdy
aWQuCi0gICAgUm9vdElubGluZUJveCogbGluZUdyaWRCb3ggPSBsaW5lR3JpZCgpLT5saW5lR3Jp
ZEJveCgpOwotICAgIGlmICghbGluZUdyaWRCb3gpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gbGluZUdyaWQoKS0+aXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKTsKLQotICAgIExheW91dFVuaXQgbGluZUdyaWRCbG9ja09mZnNldCA9IGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gbGluZUdyaWRPZmZzZXQoKS5oZWlnaHQoKSA6IGxpbmVH
cmlkT2Zmc2V0KCkud2lkdGgoKTsKLQotICAgIC8vIE5vdyBkZXRlcm1pbmUgb3VyIHBvc2l0aW9u
IG9uIHRoZSBncmlkLiBPdXIgYmFzZWxpbmUgbmVlZHMgdG8gYmUgYWRqdXN0ZWQgdG8gdGhlIG5l
YXJlc3QgYmFzZWxpbmUgbXVsdGlwbGUKLSAgICAvLyBhcyBlc3RhYmxpc2hlZCBieSB0aGUgbGlu
ZSBib3guCi0gICAgLy8gRklYTUU6IE5lZWQgdG8gaGFuZGxlIGNyYXp5IGxpbmUtYm94LWNvbnRh
aW4gdmFsdWVzIHRoYXQgY2F1c2UgdGhlIHJvb3QgbGluZSBib3ggdG8gbm90IGJlIGNvbnNpZGVy
ZWQuIEkgYXNzdW1lCi0gICAgLy8gdGhlIGdyaWQgc2hvdWxkIGhvbm9yIGxpbmUtYm94LWNvbnRh
aW4uCi0gICAgTGF5b3V0VW5pdCBncmlkTGluZUhlaWdodCA9IGxpbmVHcmlkQm94LT5saW5lQm90
dG9tV2l0aExlYWRpbmcoKSAtIGxpbmVHcmlkQm94LT5saW5lVG9wV2l0aExlYWRpbmcoKTsKLSAg
ICBpZiAoIWdyaWRMaW5lSGVpZ2h0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMYXlvdXRVbml0
IGZpcnN0TGluZVRvcFdpdGhMZWFkaW5nID0gbGluZUdyaWRCbG9ja09mZnNldCArIGxpbmVHcmlk
Qm94LT5saW5lVG9wV2l0aExlYWRpbmcoKTsKLSAgICAKLSAgICBpZiAoaXNQYWdpbmF0ZWQoKSAm
JiBwYWdlTG9naWNhbEhlaWdodCgpKSB7Ci0gICAgICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxU
b3AgPSByZW5kZXJlci0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG1fcGFnZU9mZnNldC5o
ZWlnaHQoKSA6IG1fcGFnZU9mZnNldC53aWR0aCgpOwotICAgICAgICBpZiAocGFnZUxvZ2ljYWxU
b3AgPiBmaXJzdExpbmVUb3BXaXRoTGVhZGluZykgewotICAgICAgICAgICAgLy8gU2hpZnQgdG8g
dGhlIG5leHQgaGlnaGVzdCBsaW5lIGdyaWQgbXVsdGlwbGUgcGFzdCB0aGUgcGFnZSBsb2dpY2Fs
IHRvcC4gQ2FjaGUgdGhlIGRlbHRhCi0gICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaXMgbmV3IHZh
bHVlIGFuZCB0aGUgcGFnZSBsb2dpY2FsIHRvcCBhcyB0aGUgcGFnaW5hdGlvbiBvcmlnaW4uCi0g
ICAgICAgICAgICBMYXlvdXRVbml0IHJlbWFpbmRlciA9IHJvdW5kVG9JbnQocGFnZUxvZ2ljYWxU
b3AgLSBmaXJzdExpbmVUb3BXaXRoTGVhZGluZykgJSByb3VuZFRvSW50KGdyaWRMaW5lSGVpZ2h0
KTsKLSAgICAgICAgICAgIExheW91dFVuaXQgcGFnaW5hdGlvbkRlbHRhID0gZ3JpZExpbmVIZWln
aHQgLSByZW1haW5kZXI7Ci0gICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUp
Ci0gICAgICAgICAgICAgICAgbV9saW5lR3JpZFBhZ2luYXRpb25PcmlnaW4uc2V0SGVpZ2h0KHBh
Z2luYXRpb25EZWx0YSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9saW5l
R3JpZFBhZ2luYXRpb25PcmlnaW4uc2V0V2lkdGgocGFnaW5hdGlvbkRlbHRhKTsKLSAgICAgICAg
fQotICAgIH0KLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmgJKHJldmlzaW9uIDE2MzgwMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw5
IEBAIHB1YmxpYzoKIAogICAgIExheW91dFNpemUgbGF5b3V0T2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9sYXlvdXRPZmZzZXQ7IH0KIAorICAgIExheW91dFNpemUgcGFnZU9mZnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZU9mZnNldDsgfQorICAgIHZvaWQgc2V0TGluZUdyaWRQYWdpbmF0aW9u
T3JpZ2luKGNvbnN0IExheW91dFNpemUmIG9yaWdpbikgeyBtX2xpbmVHcmlkUGFnaW5hdGlvbk9y
aWdpbiA9IG9yaWdpbjsgfQorICAgIAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0
aW9uU2V0QmVmb3JlTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9saW5lR3JpZCB8fCAobV9pc1Bh
Z2luYXRlZCAmJiBtX3BhZ2VMb2dpY2FsSGVpZ2h0KTsgfQogCiAjaWYgRU5BQkxFKENTU19TSEFQ
RVMpICYmIEVOQUJMRShDU1NfU0hBUEVfSU5TSURFKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxNjM4MDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MzEwLDYgKzUz
MTAsNTIgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdQogICAgIHJl
dHVybiBuZXdCb3g7CiB9CiAKK3ZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVMaW5lR3JpZFBhZ2lu
YXRpb25PcmlnaW4oTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKSBjb25zdAoreworICAgIGlmICgh
aGFzQ29sdW1ucygpIHx8ICFzdHlsZSgpLmhhc0lubGluZUNvbHVtbkF4aXMoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIC8vIFdlIG5lZWQgdG8gY2FjaGUgYSBsaW5lIGdyaWQgcGFnaW5h
dGlvbiBvcmlnaW4gc28gdGhhdCB3ZSB1bmRlcnN0YW5kIGhvdyB0byByZXNldCB0aGUgbGluZSBn
cmlkCisgICAgLy8gYXQgdGhlIHRvcCBvZiBlYWNoIGNvbHVtbi4KKyAgICAvLyBHZXQgdGhlIGN1
cnJlbnQgbGluZSBncmlkIGFuZCBvZmZzZXQuCisgICAgY29uc3QgYXV0byBsaW5lR3JpZCA9IGxh
eW91dFN0YXRlLmxpbmVHcmlkKCk7CisgICAgaWYgKCFsaW5lR3JpZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gR2V0IHRoZSBoeXBvdGhldGljYWwgbGluZSBib3ggdXNlZCB0byBlc3RhYmxp
c2ggdGhlIGdyaWQuCisgICAgYXV0byBsaW5lR3JpZEJveCA9IGxpbmVHcmlkLT5saW5lR3JpZEJv
eCgpOworICAgIGlmICghbGluZUdyaWRCb3gpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBi
b29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gbGluZUdyaWQtPmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCk7CisKKyAgICBMYXlvdXRVbml0IGxpbmVHcmlkQmxvY2tPZmZzZXQgPSBpc0hvcml6
b250YWxXcml0aW5nTW9kZSA/IGxheW91dFN0YXRlLmxpbmVHcmlkT2Zmc2V0KCkuaGVpZ2h0KCkg
OiBsYXlvdXRTdGF0ZS5saW5lR3JpZE9mZnNldCgpLndpZHRoKCk7CisKKyAgICAvLyBOb3cgZGV0
ZXJtaW5lIG91ciBwb3NpdGlvbiBvbiB0aGUgZ3JpZC4gT3VyIGJhc2VsaW5lIG5lZWRzIHRvIGJl
IGFkanVzdGVkIHRvIHRoZSBuZWFyZXN0IGJhc2VsaW5lIG11bHRpcGxlCisgICAgLy8gYXMgZXN0
YWJsaXNoZWQgYnkgdGhlIGxpbmUgYm94LgorICAgIC8vIEZJWE1FOiBOZWVkIHRvIGhhbmRsZSBj
cmF6eSBsaW5lLWJveC1jb250YWluIHZhbHVlcyB0aGF0IGNhdXNlIHRoZSByb290IGxpbmUgYm94
IHRvIG5vdCBiZSBjb25zaWRlcmVkLiBJIGFzc3VtZQorICAgIC8vIHRoZSBncmlkIHNob3VsZCBo
b25vciBsaW5lLWJveC1jb250YWluLgorICAgIExheW91dFVuaXQgZ3JpZExpbmVIZWlnaHQgPSBs
aW5lR3JpZEJveC0+bGluZUJvdHRvbVdpdGhMZWFkaW5nKCkgLSBsaW5lR3JpZEJveC0+bGluZVRv
cFdpdGhMZWFkaW5nKCk7CisgICAgaWYgKCFncmlkTGluZUhlaWdodCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgTGF5b3V0VW5pdCBmaXJzdExpbmVUb3BXaXRoTGVhZGluZyA9IGxpbmVHcmlkQmxv
Y2tPZmZzZXQgKyBsaW5lR3JpZEJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCk7CisgICAgCisgICAg
aWYgKGxheW91dFN0YXRlLmlzUGFnaW5hdGVkKCkgJiYgbGF5b3V0U3RhdGUucGFnZUxvZ2ljYWxI
ZWlnaHQoKSkgeworICAgICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsVG9wID0gaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUgPyBsYXlvdXRTdGF0ZS5wYWdlT2Zmc2V0KCkuaGVpZ2h0KCkgOiBsYXlv
dXRTdGF0ZS5wYWdlT2Zmc2V0KCkud2lkdGgoKTsKKyAgICAgICAgaWYgKHBhZ2VMb2dpY2FsVG9w
ID4gZmlyc3RMaW5lVG9wV2l0aExlYWRpbmcpIHsKKyAgICAgICAgICAgIC8vIFNoaWZ0IHRvIHRo
ZSBuZXh0IGhpZ2hlc3QgbGluZSBncmlkIG11bHRpcGxlIHBhc3QgdGhlIHBhZ2UgbG9naWNhbCB0
b3AuIENhY2hlIHRoZSBkZWx0YQorICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGlzIG5ldyB2YWx1
ZSBhbmQgdGhlIHBhZ2UgbG9naWNhbCB0b3AgYXMgdGhlIHBhZ2luYXRpb24gb3JpZ2luLgorICAg
ICAgICAgICAgTGF5b3V0VW5pdCByZW1haW5kZXIgPSByb3VuZFRvSW50KHBhZ2VMb2dpY2FsVG9w
IC0gZmlyc3RMaW5lVG9wV2l0aExlYWRpbmcpICUgcm91bmRUb0ludChncmlkTGluZUhlaWdodCk7
CisgICAgICAgICAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25EZWx0YSA9IGdyaWRMaW5lSGVpZ2h0
IC0gcmVtYWluZGVyOworICAgICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKQor
ICAgICAgICAgICAgICAgIGxheW91dFN0YXRlLnNldExpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihM
YXlvdXRTaXplKGxheW91dFN0YXRlLmxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbigpLndpZHRoKCks
IHBhZ2luYXRpb25EZWx0YSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxh
eW91dFN0YXRlLnNldExpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihMYXlvdXRTaXplKHBhZ2luYXRp
b25EZWx0YSwgbGF5b3V0U3RhdGUubGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKCkuaGVpZ2h0KCkp
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmbmRlZiBOREVCVUcKIHZvaWQgUmVuZGVyQmxv
Y2s6OmNoZWNrUG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0KCkKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiAxNjM4MDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiAr
MzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIExheW91dFN0YXRlOwogY2xh
c3MgTGluZUxheW91dFN0YXRlOwogY2xhc3MgTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlczsK
IGNsYXNzIFJlbmRlcklubGluZTsKQEAgLTQyNiw2ICs0MjcsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1RvcExheW91dE92ZXJmbG93QWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNMZWZ0TGF5b3V0T3ZlcmZsb3dBbGxvd2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICAvLyBG
SVhNRTogQ2FuIGRldmlydHVhbGl6ZSBvbmNlIG9sZCBjb2x1bW4gY29kZSBpcyBnb25lLgorICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlTGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKExheW91dFN0YXRl
JikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9t
Q2hpbGRyZW4oKTsKICAgICAvLyBGSVhNRS1CTE9DS0ZMT1c6IFJlbW92ZSB2aXJ0dWFsaXphdGlv
biB3aGVuIGFsbCBjYWxsZXJzIGhhdmUgbW92ZWQgdG8gUmVuZGVyQmxvY2tGbG93CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24g
MTYzODAwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3NzIsNyArMTc3Miw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxv
Y2tGbG93OjpwYWdlTG9naWNhbFQKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1
cm4gY3VtdWxhdGl2ZU9mZnNldCAtIHJvdW5kVG9JbnQoY3VtdWxhdGl2ZU9mZnNldCAtIGZpcnN0
UGFnZUxvZ2ljYWxUb3ApICUgcm91bmRUb0ludChwYWdlTG9naWNhbEhlaWdodCk7CiAgICAgfQot
ICAgIHJldHVybiBmbG93VGhyZWFkLT5wYWdlTG9naWNhbFRvcEZvck9mZnNldChjdW11bGF0aXZl
T2Zmc2V0KTsKKyAgICByZXR1cm4gZmlyc3RQYWdlTG9naWNhbFRvcCArIGZsb3dUaHJlYWQtPnBh
Z2VMb2dpY2FsVG9wRm9yT2Zmc2V0KGN1bXVsYXRpdmVPZmZzZXQgLSBmaXJzdFBhZ2VMb2dpY2Fs
VG9wKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VMb2dpY2FsSGVpZ2h0
Rm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDE2MzgwMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDA4LDEwICs0NDA4
LDcgQEAgYm9vbCBSZW5kZXJCb3g6Omhhc1Vuc3BsaXR0YWJsZVNjcm9sbGluZwogCiBib29sIFJl
bmRlckJveDo6aXNVbnNwbGl0dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gaXNSZXBsYWNlZCgpIHx8IGhhc1Vuc3BsaXR0YWJsZVNjcm9sbGluZ092ZXJmbG93KCkgfHwg
KHBhcmVudCgpICYmIGlzV3JpdGluZ01vZGVSb290KCkpCi0gICAgICAgIC8vIEZJWE1FOiBUcmVh
dCBtdWx0aS1jb2x1bW4gZWxlbWVudHMgYXMgdW5zcGxpdHRhYmxlIGZvciBub3cuIFJlbW92ZSBv
bmNlIHdlIGltcGxlbWVudCB0aGUgY29ycmVjdAotICAgICAgICAvLyBmcmFnbWVudGF0aW9uIG1v
ZGVsIGZvciBtdWx0aWNvbHVtbi4KLSAgICAgICAgfHwgaXNNdWx0aUNvbHVtbkJsb2NrRmxvdygp
OworICAgIHJldHVybiBpc1JlcGxhY2VkKCkgfHwgaGFzVW5zcGxpdHRhYmxlU2Nyb2xsaW5nT3Zl
cmZsb3coKSB8fCAocGFyZW50KCkgJiYgaXNXcml0aW5nTW9kZVJvb3QoKSk7CiB9CiAKIExheW91
dFVuaXQgUmVuZGVyQm94OjpsaW5lSGVpZ2h0KGJvb2wgLypmaXJzdExpbmUqLywgTGluZURpcmVj
dGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIC8qbGluZVBvc2l0aW9uTW9kZSov
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE2MzgwMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgiCiAKKyNpbmNsdWRlICJMYXlvdXRTdGF0
ZS5oIgogI2luY2x1ZGUgIlJlbmRlck11bHRpQ29sdW1uU2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTEyNiw0ICsxMjcsNTAgQEAgYm9vbCBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJl
YWQ6OmFkZEZvcgogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBSZW5kZXJNdWx0aUNvbHVt
bkZsb3dUaHJlYWQ6OmNvbXB1dGVMaW5lR3JpZFBhZ2luYXRpb25PcmlnaW4oTGF5b3V0U3RhdGUm
IGxheW91dFN0YXRlKSBjb25zdAoreworICAgIGlmICghcHJvZ3Jlc3Npb25Jc0lubGluZSgpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgLy8gV2UgbmVlZCB0byBjYWNoZSBhIGxpbmUgZ3Jp
ZCBwYWdpbmF0aW9uIG9yaWdpbiBzbyB0aGF0IHdlIHVuZGVyc3RhbmQgaG93IHRvIHJlc2V0IHRo
ZSBsaW5lIGdyaWQKKyAgICAvLyBhdCB0aGUgdG9wIG9mIGVhY2ggY29sdW1uLgorICAgIC8vIEdl
dCB0aGUgY3VycmVudCBsaW5lIGdyaWQgYW5kIG9mZnNldC4KKyAgICBjb25zdCBhdXRvIGxpbmVH
cmlkID0gbGF5b3V0U3RhdGUubGluZUdyaWQoKTsKKyAgICBpZiAoIWxpbmVHcmlkKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBHZXQgdGhlIGh5cG90aGV0aWNhbCBsaW5lIGJveCB1c2VkIHRv
IGVzdGFibGlzaCB0aGUgZ3JpZC4KKyAgICBhdXRvIGxpbmVHcmlkQm94ID0gbGluZUdyaWQtPmxp
bmVHcmlkQm94KCk7CisgICAgaWYgKCFsaW5lR3JpZEJveCkKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPSBsaW5lR3JpZC0+aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKTsKKworICAgIExheW91dFVuaXQgbGluZUdyaWRCbG9ja09mZnNldCA9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID8gbGF5b3V0U3RhdGUubGluZUdyaWRPZmZzZXQoKS5o
ZWlnaHQoKSA6IGxheW91dFN0YXRlLmxpbmVHcmlkT2Zmc2V0KCkud2lkdGgoKTsKKworICAgIC8v
IE5vdyBkZXRlcm1pbmUgb3VyIHBvc2l0aW9uIG9uIHRoZSBncmlkLiBPdXIgYmFzZWxpbmUgbmVl
ZHMgdG8gYmUgYWRqdXN0ZWQgdG8gdGhlIG5lYXJlc3QgYmFzZWxpbmUgbXVsdGlwbGUKKyAgICAv
LyBhcyBlc3RhYmxpc2hlZCBieSB0aGUgbGluZSBib3guCisgICAgLy8gRklYTUU6IE5lZWQgdG8g
aGFuZGxlIGNyYXp5IGxpbmUtYm94LWNvbnRhaW4gdmFsdWVzIHRoYXQgY2F1c2UgdGhlIHJvb3Qg
bGluZSBib3ggdG8gbm90IGJlIGNvbnNpZGVyZWQuIEkgYXNzdW1lCisgICAgLy8gdGhlIGdyaWQg
c2hvdWxkIGhvbm9yIGxpbmUtYm94LWNvbnRhaW4uCisgICAgTGF5b3V0VW5pdCBncmlkTGluZUhl
aWdodCA9IGxpbmVHcmlkQm94LT5saW5lQm90dG9tV2l0aExlYWRpbmcoKSAtIGxpbmVHcmlkQm94
LT5saW5lVG9wV2l0aExlYWRpbmcoKTsKKyAgICBpZiAoIWdyaWRMaW5lSGVpZ2h0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBMYXlvdXRVbml0IGZpcnN0TGluZVRvcFdpdGhMZWFkaW5nID0gbGlu
ZUdyaWRCbG9ja09mZnNldCArIGxpbmVHcmlkQm94LT5saW5lVG9wV2l0aExlYWRpbmcoKTsKKyAg
ICAKKyAgICBpZiAobGF5b3V0U3RhdGUuaXNQYWdpbmF0ZWQoKSAmJiBsYXlvdXRTdGF0ZS5wYWdl
TG9naWNhbEhlaWdodCgpKSB7CisgICAgICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxUb3AgPSBp
c0hvcml6b250YWxXcml0aW5nTW9kZSA/IGxheW91dFN0YXRlLnBhZ2VPZmZzZXQoKS5oZWlnaHQo
KSA6IGxheW91dFN0YXRlLnBhZ2VPZmZzZXQoKS53aWR0aCgpOworICAgICAgICBpZiAocGFnZUxv
Z2ljYWxUb3AgPiBmaXJzdExpbmVUb3BXaXRoTGVhZGluZykgeworICAgICAgICAgICAgLy8gU2hp
ZnQgdG8gdGhlIG5leHQgaGlnaGVzdCBsaW5lIGdyaWQgbXVsdGlwbGUgcGFzdCB0aGUgcGFnZSBs
b2dpY2FsIHRvcC4gQ2FjaGUgdGhlIGRlbHRhCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaXMg
bmV3IHZhbHVlIGFuZCB0aGUgcGFnZSBsb2dpY2FsIHRvcCBhcyB0aGUgcGFnaW5hdGlvbiBvcmln
aW4uCisgICAgICAgICAgICBMYXlvdXRVbml0IHJlbWFpbmRlciA9IHJvdW5kVG9JbnQocGFnZUxv
Z2ljYWxUb3AgLSBmaXJzdExpbmVUb3BXaXRoTGVhZGluZykgJSByb3VuZFRvSW50KGdyaWRMaW5l
SGVpZ2h0KTsKKyAgICAgICAgICAgIExheW91dFVuaXQgcGFnaW5hdGlvbkRlbHRhID0gZ3JpZExp
bmVIZWlnaHQgLSByZW1haW5kZXI7CisgICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUpCisgICAgICAgICAgICAgICAgbGF5b3V0U3RhdGUuc2V0TGluZUdyaWRQYWdpbmF0aW9u
T3JpZ2luKExheW91dFNpemUobGF5b3V0U3RhdGUubGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKCku
d2lkdGgoKSwgcGFnaW5hdGlvbkRlbHRhKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbGF5b3V0U3RhdGUuc2V0TGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luKExheW91dFNpemUo
cGFnaW5hdGlvbkRlbHRhLCBsYXlvdXRTdGF0ZS5saW5lR3JpZFBhZ2luYXRpb25PcmlnaW4oKS5o
ZWlnaHQoKSkpOworICAgICAgICB9CisgICAgfQorfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCShy
ZXZpc2lvbiAxNjM4MDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5GbG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDggQEAgcHVibGlj
OgogICAgIGJvb2wgcHJvZ3Jlc3Npb25Jc1JldmVyc2VkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9n
cmVzc2lvbklzUmV2ZXJzZWQ7IH0KICAgICB2b2lkIHNldFByb2dyZXNzaW9uSXNSZXZlcnNlZChi
b29sIHJldmVyc2VkKSB7IG1fcHJvZ3Jlc3Npb25Jc1JldmVyc2VkID0gcmV2ZXJzZWQ7IH0KICAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbihMYXlv
dXRTdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IG92ZXJyaWRl
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTYzODIyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDItMTAgIERhdmlkIEh5YXR0ICA8
aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtOZXcgTXVsdGljb2x1bW5dIE1ha2UgY29sdW1u
cyB3b3JrIHdpdGggbGluZSBncmlkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI4NTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgbGluZS1zbmFwLWludG8tY29sdW1ucy5odG1sIGFuZCBsaW5l
LXNuYXAtaW5zaWRlLWNvbHVtbnMuaHRtbAorCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdt
dWx0aWNvbC9saW5lLWdyaWQtaW5zaWRlLWNvbHVtbnMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9saW5lLWdyaWQtaW5zaWRlLWNvbHVt
bnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9saW5l
LWdyaWQtaW50by1jb2x1bW5zLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bXVsdGljb2wvbmV3bXVsdGljb2wvbGluZS1ncmlkLWludG8tY29sdW1ucy5odG1sOiBBZGRlZC4K
KwogMjAxNC0wMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlIGFuaW1hdGlvbiB0ZXN0cyB0aGF0IGhhdmUgc2ltaWxhciBmYWlsaW5nIGJlaGF2
aW9yIGluIGRlYnVnIGJ1aWxkcyB0b2dldGhlciwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVs
dGljb2wvbmV3bXVsdGljb2wvbGluZS1ncmlkLWluc2lkZS1jb2x1bW5zLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdtdWx0aWNvbC9saW5l
LWdyaWQtaW5zaWRlLWNvbHVtbnMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvbGluZS1ncmlkLWluc2lkZS1jb2x1bW5z
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5ncmlkIHsgLXdlYmtpdC1saW5lLWdyaWQ6IHNpbXBsZTsgLXdlYmtpdC1saW5lLXNu
YXA6IGJhc2VsaW5lOyAKKyAgICAgICAgZm9udC1zaXplOjM2cHg7IH08L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+CisKKzxkaXYgc3R5bGU9ImhlaWdodDo1MDBweDsgYm9yZGVyOjJweCBzb2xpZCBy
ZWQ7IC13ZWJraXQtY29sdW1uLWNvdW50OjI7IC13ZWJraXQtY29sdW1uLWZpbGw6YXV0bzsgY29s
dW1uLWNvdW50OjI7IGNvbHVtbi1maWxsOmF1dG87Ij4KKzxkaXYgY2xhc3M9ImdyaWQiPgorPGRp
diBzdHlsZT0iZm9udC1zaXplOjE2cHgiPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBp
dCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQg
cmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+CitBbGwgb2YgdGhpcyB0
ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQu
IFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxi
cj4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBv
biB0aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhl
IHNlY29uZCBjb2x1bW4uPGJyPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MjRweCI+
CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24g
dGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBz
ZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFs
bGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0
IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgorQWxsIG9mIHRoaXMgdGV4dCBldmVu
IHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3Jp
ZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+Cis8L2Rp
dj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxMHB4Ij4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0
aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQg
c2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgorQWxsIG9m
IHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4
CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNv
bHVtbi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91
bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9w
IG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXpl
OjE4cHgiPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxk
IGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBv
ZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0
J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCBy
ZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlzIHRl
eHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4g
VGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJy
PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2xpbmUtZ3JpZC1pbnNpZGUt
Y29sdW1ucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3
bXVsdGljb2wvbGluZS1ncmlkLWluc2lkZS1jb2x1bW5zLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2xpbmUtZ3JpZC1pbnNpZGUtY29s
dW1ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisuZ3JpZCB7IC13ZWJraXQtbGluZS1ncmlkOiBzaW1wbGU7IC13ZWJraXQtbGluZS1zbmFwOiBi
YXNlbGluZTsgCisgICAgICAgIGZvbnQtc2l6ZTozNnB4OyB9PC9zdHlsZT4KKzxzY3JpcHQ+Citp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCh0cnVlKQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBzdHlsZT0iaGVpZ2h0OjUwMHB4OyBib3Jk
ZXI6MnB4IHNvbGlkIHJlZDsgLXdlYmtpdC1jb2x1bW4tY291bnQ6MjsgLXdlYmtpdC1jb2x1bW4t
ZmlsbDphdXRvOyBjb2x1bW4tY291bnQ6MjsgY29sdW1uLWZpbGw6YXV0bzsiPgorPGRpdiBjbGFz
cz0iZ3JpZCI+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTZweCI+CitBbGwgb2YgdGhpcyB0ZXh0
IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRo
ZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4K
K0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0
aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNl
Y29uZCBjb2x1bW4uPGJyPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxs
ZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQg
dGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZv
bnQtc2l6ZToyNHB4Ij4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVy
IHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRo
ZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRo
b3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBz
aG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+CitBbGwgb2Yg
dGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgK
K2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29s
dW1uLjxicj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjEwcHgiPgorQWxsIG9mIHRo
aXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAzNnB4Citn
cmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVt
bi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQg
YmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9m
IHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQn
cyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJl
c2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgorPC9kaXY+Cis8ZGl2IHN0
eWxlPSJmb250LXNpemU6MThweCI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mg
c21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNl
dCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlzIHRleHQg
ZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhl
IGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgor
QWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRo
ZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vj
b25kIGNvbHVtbi48YnI+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvbGlu
ZS1ncmlkLWludG8tY29sdW1ucy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbXVsdGljb2wvbmV3bXVsdGljb2wvbGluZS1ncmlkLWludG8tY29sdW1ucy1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9uZXdt
dWx0aWNvbC9saW5lLWdyaWQtaW50by1jb2x1bW5zLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5ncmlkIHsgLXdlYmtpdC1saW5l
LWdyaWQ6IHNpbXBsZTsgLXdlYmtpdC1saW5lLXNuYXA6IGJhc2VsaW5lOyAKKyAgICAgICAgZm9u
dC1zaXplOjM2cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo4MDBweH08L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjowIj4KKworPGRpdiBjbGFzcz0iZ3JpZCI+Cis8ZGl2
IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDsg
Zm9udC1mYW1pbHk6J0FoZW0nOyB6LWluZGV4Oi0xOyBjb2xvcjpsaW1lOyBmb250LXNpemU6MzJw
eDsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW4iPgoreHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eDxicj4KK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJy
PgoreHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eDxicj4KK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4PGJyPgoreHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eDxicj4KK3h4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJyPgoreHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eDxicj4KK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJyPgor
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cis8L2Rpdj4KKzxkaXYg
c3R5bGU9ImhlaWdodDo1MDBweDsgLXdlYmtpdC1jb2x1bW4tY291bnQ6MjsgLXdlYmtpdC1jb2x1
bW4tZmlsbDphdXRvOyBjb2x1bW4tY291bnQ6MjsgY29sdW1uLWZpbGw6YXV0bzsgcGFkZGluZzoy
MHB4Ij4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij4KK0FsbCBvZiB0aGlzIHRleHQgZXZl
biB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhlIGdy
aWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgorQWxs
IG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJlIG9uIHRoZSAz
NnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0aGUgc2Vjb25k
IGNvbHVtbi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBz
aG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNldCBhdCB0aGUg
dG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1z
aXplOjI0cHgiPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hv
dWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRv
cCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdo
IGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3Vs
ZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlz
IHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3Jp
ZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4u
PGJyPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MTBweCI+CitBbGwgb2YgdGhpcyB0
ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQu
Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2xpbmUtZ3JpZC1pbnRvLWNvbHVtbnMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL25ld211bHRpY29sL2xp
bmUtZ3JpZC1pbnRvLWNvbHVtbnMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvbmV3bXVsdGljb2wvbGluZS1ncmlkLWludG8tY29sdW1ucy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZ3JpZCB7IC13ZWJr
aXQtbGluZS1ncmlkOiBzaW1wbGU7IC13ZWJraXQtbGluZS1zbmFwOiBiYXNlbGluZTsgCisgICAg
ICAgIGZvbnQtc2l6ZTozNnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6ODAwcHh9PC9zdHls
ZT4KKzxzY3JpcHQ+CitpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5h
YmxlZCh0cnVlKQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiPgor
Cis8ZGl2IGNsYXNzPSJncmlkIj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6
MDtyaWdodDowO3RvcDowO2JvdHRvbTowOyBmb250LWZhbWlseTonQWhlbSc7IHotaW5kZXg6LTE7
IGNvbG9yOmxpbWU7IGZvbnQtc2l6ZTozMnB4OyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93
OmhpZGRlbiI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eDxicj4KK3h4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJyPgoreHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eDxicj4KK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJy
PgoreHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eDxicj4KK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4PGJyPgoreHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eDxicj4KK3h4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PGJyPgoreHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHg8YnI+Cit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eDxicj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iaGVpZ2h0OjUwMHB4OyAtd2Via2l0LWNv
bHVtbi1jb3VudDoyOyAtd2Via2l0LWNvbHVtbi1maWxsOmF1dG87IGNvbHVtbi1jb3VudDoyOyBj
b2x1bW4tZmlsbDphdXRvOyBwYWRkaW5nOjIwcHgiPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOjE2
cHgiPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIgc2hvdWxkIGJl
IG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhlIHRvcCBvZiB0
aGUgc2Vjb25kIGNvbHVtbi48YnI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2ZW4gdGhvdWdoIGl0J3Mg
c21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBncmlkIHNob3VsZCByZXNl
dCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0FsbCBvZiB0aGlzIHRleHQg
ZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4gVGhl
IGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29uZCBjb2x1bW4uPGJyPgor
PC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6MjRweCI+CitBbGwgb2YgdGhpcyB0ZXh0IGV2
ZW4gdGhvdWdoIGl0J3Mgc21hbGxlciBzaG91bGQgYmUgb24gdGhlIDM2cHgKK2dyaWQuIFRoZSBn
cmlkIHNob3VsZCByZXNldCBhdCB0aGUgdG9wIG9mIHRoZSBzZWNvbmQgY29sdW1uLjxicj4KK0Fs
bCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNob3VsZCBiZSBvbiB0aGUg
MzZweAorZ3JpZC4gVGhlIGdyaWQgc2hvdWxkIHJlc2V0IGF0IHRoZSB0b3Agb2YgdGhlIHNlY29u
ZCBjb2x1bW4uPGJyPgorQWxsIG9mIHRoaXMgdGV4dCBldmVuIHRob3VnaCBpdCdzIHNtYWxsZXIg
c2hvdWxkIGJlIG9uIHRoZSAzNnB4CitncmlkLiBUaGUgZ3JpZCBzaG91bGQgcmVzZXQgYXQgdGhl
IHRvcCBvZiB0aGUgc2Vjb25kIGNvbHVtbi48YnI+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQt
c2l6ZToxMHB4Ij4KK0FsbCBvZiB0aGlzIHRleHQgZXZlbiB0aG91Z2ggaXQncyBzbWFsbGVyIHNo
b3VsZCBiZSBvbiB0aGUgMzZweAorZ3JpZC4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="247824"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>