<?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>84632</bug_id>
          
          <creation_ts>2012-04-23 14:02:44 -0700</creation_ts>
          <short_desc>Consolidate external stylesheet quirks handling to StyleSheetInternal</short_desc>
          <delta_ts>2012-04-24 06:39:22 -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>CSS</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>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608003</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-23 14:02:44 -0700</bug_when>
    <thetext>We currently have a bunch of repeated code in StyleImportRule and HTMLLinkElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608058</commentid>
    <comment_count>1</comment_count>
      <attachid>138432</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-23 15:12:58 -0700</bug_when>
    <thetext>Created attachment 138432
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608263</commentid>
    <comment_count>2</comment_count>
      <attachid>138432</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-04-23 18:00:37 -0700</bug_when>
    <thetext>Comment on attachment 138432
patch

Great. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608480</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-04-24 02:19:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/115016</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138432</attachid>
            <date>2012-04-23 15:12:58 -0700</date>
            <delta_ts>2012-04-23 18:00:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>stylesheet-quirks-4.patch</filename>
            <type>text/plain</type>
            <size>13964</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA0LTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBDb25zb2xpZGF0ZSBleHRlcm5h
bCBzdHlsZXNoZWV0IHF1aXJrcyBoYW5kbGluZyB0byBTdHlsZVNoZWV0SW50ZXJuYWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgcmVwZWF0
ZWQgY29kZSBmcm9tIFN0eWxlSW1wb3J0UnVsZSBhbmQgSFRNTExpbmtFbGVtZW50IHRvIFN0eWxl
U2hlZXRJbnRlcm5hbDo6cGFyc2VVc2VyU3R5bGVTaGVldC4KKyAgICAgICAgCisgICAgICAgIFJl
bW92ZSBhIEJVSUxESU5HX09OX0xFT1BBUkQtb25seSBxdWlyay4KKworICAgICAgICAqIGNzcy9D
U1NJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6c2V0
Q1NTU3R5bGVTaGVldCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNv
bnRleHQpOgorICAgICAgICAKKyAgICAgICAgICAgIEFkZCBuZXcgc2V0dGluZ3MgYml0cyB0byB0
aGUgQ1NTUGFyc2VyQ29udGV4dC4gVGhlc2UgYXJlIHVzZWQgZm9yIGV4dGVybmFsIHN0eWxlc2hl
ZXQgcGFyc2luZyBxdWlya3MuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyTW9kZS5oOgorICAg
ICAgICAoQ1NTUGFyc2VyQ29udGV4dCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldEludGVybmFsOjpwYXJzZVVzZXJTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRJbnRlcm5hbDo6cGFyc2VTdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0SW50ZXJu
YWw6OnBhcnNlU3RyaW5nQXRMaW5lKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdHlsZVNoZWV0SW50ZXJuYWwpOgorICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5r
RWxlbWVudDo6c2V0Q1NTU3R5bGVTaGVldCk6CisKIDIwMTItMDQtMjMgIEVtaWwgQSBFa2x1bmQg
IDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENyYXNoIGluIFJlbmRlcklubGluZTo6Y2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQgZm9yIFByaW50UHJldmlldwpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAkocmV2aXNpb24gMTE0OTE5KQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw1MyArNTks
MTkgQEAgU3R5bGVSdWxlSW1wb3J0Ojp+U3R5bGVSdWxlSW1wb3J0KCkKICAgICAgICAgbV9jYWNo
ZWRTaGVldC0+cmVtb3ZlQ2xpZW50KCZtX3N0eWxlU2hlZXRDbGllbnQpOwogfQogCi12b2lkIFN0
eWxlUnVsZUltcG9ydDo6c2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0
IEtVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5
bGVTaGVldCogc2hlZXQpCit2b2lkIFN0eWxlUnVsZUltcG9ydDo6c2V0Q1NTU3R5bGVTaGVldChj
b25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkU3R5bGVTaGVldCkKIHsKICAg
ICBpZiAobV9zdHlsZVNoZWV0KQogICAgICAgICBtX3N0eWxlU2hlZXQtPmNsZWFyT3duZXJSdWxl
KCk7CiAgICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldEludGVybmFsOjpjcmVhdGUodGhpcywg
aHJlZiwgYmFzZVVSTCwgY2hhcnNldCk7CiAKLSAgICBib29sIGNyb3NzT3JpZ2luQ1NTID0gZmFs
c2U7Ci0gICAgYm9vbCB2YWxpZE1JTUVUeXBlID0gZmFsc2U7Ci0gICAgQ1NTUGFyc2VyTW9kZSBj
c3NQYXJzZXJNb2RlID0gbV9wYXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5w
YXJzZXJDb250ZXh0KCkubW9kZSA6IENTU1N0cmljdE1vZGU7Ci0gICAgYm9vbCBlbmZvcmNlTUlN
RVR5cGUgPSBpc1N0cmljdFBhcnNlck1vZGUoY3NzUGFyc2VyTW9kZSk7CiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gbV9wYXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5maW5k
RG9jdW1lbnQoKSA6IDA7Ci0gICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGRvY3Vt
ZW50ICYmIGRvY3VtZW50LT5zZXR0aW5ncygpICYmIGRvY3VtZW50LT5zZXR0aW5ncygpLT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpOwotCi0jaWZkZWYgQlVJTERJTkdfT05fTEVPUEFSRAotICAg
IGlmIChlbmZvcmNlTUlNRVR5cGUgJiYgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpIHsKLSAgICAg
ICAgLy8gQ292ZXJzIGJvdGggaHR0cCBhbmQgaHR0cHMsIHdpdGggb3Igd2l0aG91dCAid3d3LiIK
LSAgICAgICAgaWYgKGJhc2VVUkwuc3RyaW5nKCkuY29udGFpbnMoIm1jYWZlZS5jb20vamFwYW4v
IiwgZmFsc2UpKQotICAgICAgICAgICAgZW5mb3JjZU1JTUVUeXBlID0gZmFsc2U7Ci0gICAgfQot
I2VuZGlmCi0KLSAgICBTdHJpbmcgc2hlZXRUZXh0ID0gc2hlZXQtPnNoZWV0VGV4dChlbmZvcmNl
TUlNRVR5cGUsICZ2YWxpZE1JTUVUeXBlKTsKLSAgICBtX3N0eWxlU2hlZXQtPnBhcnNlU3RyaW5n
KHNoZWV0VGV4dCk7Ci0KLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKS0+Y2FuUmVxdWVzdChiYXNlVVJMKSkKLSAgICAgICAgY3Jvc3NPcmlnaW5DU1MgPSB0
cnVlOwotCi0gICAgaWYgKGNyb3NzT3JpZ2luQ1NTICYmICF2YWxpZE1JTUVUeXBlICYmICFtX3N0
eWxlU2hlZXQtPmhhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRlcigpKQotICAgICAgICBtX3N0
eWxlU2hlZXQgPSBTdHlsZVNoZWV0SW50ZXJuYWw6OmNyZWF0ZSh0aGlzLCBocmVmLCBiYXNlVVJM
LCBjaGFyc2V0KTsKLQotICAgIGlmIChpc1N0cmljdFBhcnNlck1vZGUoY3NzUGFyc2VyTW9kZSkg
JiYgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpIHsKLSAgICAgICAgLy8gV29yayBhcm91bmQgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODM1MD4uCi0gICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzbGFzaEtIVE1MRml4ZXNEb3RDc3MsICgi
L0tIVE1MRml4ZXMuY3NzIikpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsICgiLyogS0hUTUwgZml4IHN0eWxl
c2hlZXQgKi9cbi8qIHdvcmsgYXJvdW5kIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhcnMgKi9cbiNj
b2x1bW4tY29udGVudCB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiIpKTsKLSAgICAgICAgLy8gVGhl
cmUgYXJlIHR3byB2YXJpYW50cyBvZiBLSFRNTEZpeGVzLmNzcy4gT25lIGlzIGVxdWFsIHRvIG1l
ZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LAotICAgICAgICAvLyB3aGlsZSB0aGUgb3RoZXIg
bGFja3MgdGhlIHNlY29uZCB0cmFpbGluZyBuZXdsaW5lLgotICAgICAgICBpZiAoYmFzZVVSTC5z
dHJpbmcoKS5lbmRzV2l0aChzbGFzaEtIVE1MRml4ZXNEb3RDc3MpICYmICFzaGVldFRleHQuaXNO
dWxsKCkgJiYgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQuc3RhcnRzV2l0aChzaGVldFRl
eHQpCi0gICAgICAgICAgICAgICAgJiYgc2hlZXRUZXh0Lmxlbmd0aCgpID49IG1lZGlhV2lraUtI
VE1MRml4ZXNTdHlsZVNoZWV0Lmxlbmd0aCgpIC0gMSkgewotICAgICAgICAgICAgQVNTRVJUKG1f
c3R5bGVTaGVldC0+Y2hpbGRSdWxlcygpLnNpemUoKSA9PSAxKTsKLSAgICAgICAgICAgIG1fc3R5
bGVTaGVldC0+Y2xlYXJSdWxlcygpOwotICAgICAgICB9Ci0gICAgfQorICAgIG1fc3R5bGVTaGVl
dC0+cGFyc2VVc2VyU3R5bGVTaGVldChjYWNoZWRTdHlsZVNoZWV0LCBkb2N1bWVudCA/IGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpIDogMCk7CiAKICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKIAog
ICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgbV9wYXJlbnRTdHlsZVNoZWV0
LT5ub3RpZnlMb2FkZWRTaGVldChzaGVldCk7CisgICAgICAgIG1fcGFyZW50U3R5bGVTaGVldC0+
bm90aWZ5TG9hZGVkU2hlZXQoY2FjaGVkU3R5bGVTaGVldCk7CiAgICAgICAgIG1fcGFyZW50U3R5
bGVTaGVldC0+Y2hlY2tMb2FkZWQoKTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAkocmV2aXNpb24gMTE0OTE5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMiArMTgwLDE0IEBAIGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIHN0cmljdENTU1BhcnNlckMKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Bh
cnNlckNvbnRleHQsIHN0cmljdENvbnRleHQsIChDU1NTdHJpY3RNb2RlKSk7CiAgICAgcmV0dXJu
IHN0cmljdENvbnRleHQ7CiB9Ci0gICAgCisKIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNv
bnRleHQoQ1NTUGFyc2VyTW9kZSBtb2RlKQogICAgIDogbW9kZShtb2RlKQogICAgICwgaXNIVE1M
RG9jdW1lbnQoZmFsc2UpCiAgICAgLCBpc0NTU0N1c3RvbUZpbHRlckVuYWJsZWQoZmFsc2UpCiAg
ICAgLCBpc0NTU1JlZ2lvbnNFbmFibGVkKGZhbHNlKQorICAgICwgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoZmFsc2UpCisgICAgLCBlbmZvcmNlc0NTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUodHJ1
ZSkKIHsKIH0KIApAQCAtMTk1LDYgKzE5Nyw4IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNl
ckNvbnRleHQoRG9jdW0KICAgICAsIGlzSFRNTERvY3VtZW50KGRvY3VtZW50LT5pc0hUTUxEb2N1
bWVudCgpKQogICAgICwgaXNDU1NDdXN0b21GaWx0ZXJFbmFibGVkKGRvY3VtZW50LT5zZXR0aW5n
cygpID8gZG9jdW1lbnQtPnNldHRpbmdzKCktPmlzQ1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCgpIDog
ZmFsc2UpCiAgICAgLCBpc0NTU1JlZ2lvbnNFbmFibGVkKGRvY3VtZW50LT5jc3NSZWdpb25zRW5h
YmxlZCgpKQorICAgICwgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoZG9jdW1lbnQtPnNldHRpbmdz
KCkgPyBkb2N1bWVudC0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSA6IGZh
bHNlKQorICAgICwgZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKCFkb2N1bWVudC0+
c2V0dGluZ3MoKSB8fCBkb2N1bWVudC0+c2V0dGluZ3MoKS0+ZW5mb3JjZUNTU01JTUVUeXBlSW5O
b1F1aXJrc01vZGUoKSkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ck1vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5o
CShyZXZpc2lvbiAxMTQ5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0
IHsKICAgICBib29sIGlzSFRNTERvY3VtZW50OwogICAgIGJvb2wgaXNDU1NDdXN0b21GaWx0ZXJF
bmFibGVkOwogICAgIGJvb2wgaXNDU1NSZWdpb25zRW5hYmxlZDsKKyAgICBib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzOworICAgIGJvb2wgZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlOwogfTsKIAogY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgc3RyaWN0Q1NTUGFyc2VyQ29udGV4
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAkocmV2aXNpb24gMTE0
OTE5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjYsMTUgKzI2Niw0OSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFN0eWxlU2hlZXRJ
bnRlcm5hbDo6CiAgICAgcmV0dXJuIG51bGxBdG9tOyAvLyBBc3N1bWUgd2Ugd29uJ3QgbWF0Y2gg
YW55IG5hbWVzcGFjZXMuCiB9CiAKLWJvb2wgU3R5bGVTaGVldEludGVybmFsOjpwYXJzZVN0cmlu
Zyhjb25zdCBTdHJpbmcgJnN0cmluZykKK3ZvaWQgU3R5bGVTaGVldEludGVybmFsOjpwYXJzZVVz
ZXJTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZFN0eWxlU2hlZXQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKIHsKLSAgICByZXR1cm4gcGFy
c2VTdHJpbmdBdExpbmUoc3RyaW5nLCAwKTsKKyAgICAvLyBDaGVjayB0byBzZWUgaWYgd2Ugc2hv
dWxkIGVuZm9yY2UgdGhlIE1JTUUgdHlwZSBvZiB0aGUgQ1NTIHJlc291cmNlIGluIHN0cmljdCBt
b2RlLgorICAgIC8vIFJ1bm5pbmcgaW4gaVdlYiAyIGlzIG9uZSBleGFtcGxlIG9mIHdoZXJlIHdl
IGRvbid0IHdhbnQgdG8gLSA8cmRhcjovL3Byb2JsZW0vNjA5OTc0OD4KKyAgICBib29sIGVuZm9y
Y2VNSU1FVHlwZSA9IGlzU3RyaWN0UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkgJiYg
bV9wYXJzZXJDb250ZXh0LmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsKKyAgICBi
b29sIGhhc1ZhbGlkTUlNRVR5cGUgPSBmYWxzZTsKKyAgICBTdHJpbmcgc2hlZXRUZXh0ID0gY2Fj
aGVkU3R5bGVTaGVldC0+c2hlZXRUZXh0KGVuZm9yY2VNSU1FVHlwZSwgJmhhc1ZhbGlkTUlNRVR5
cGUpOworCisgICAgQ1NTUGFyc2VyIHAocGFyc2VyQ29udGV4dCgpKTsKKyAgICBwLnBhcnNlU2hl
ZXQodGhpcywgc2hlZXRUZXh0LCAwKTsKKworICAgIC8vIElmIHdlJ3JlIGxvYWRpbmcgYSBzdHls
ZXNoZWV0IGNyb3NzLW9yaWdpbiwgYW5kIHRoZSBNSU1FIHR5cGUgaXMgbm90IHN0YW5kYXJkLCBy
ZXF1aXJlIHRoZSBDU1MKKyAgICAvLyB0byBhdCBsZWFzdCBzdGFydCB3aXRoIGEgc3ludGFjdGlj
YWxseSB2YWxpZCBDU1MgcnVsZS4KKyAgICAvLyBUaGlzIHByZXZlbnRzIGFuIGF0dGFja2VyIHBs
YXlpbmcgZ2FtZXMgYnkgaW5qZWN0aW5nIENTUyBzdHJpbmdzIGludG8gSFRNTCwgWE1MLCBKU09O
LCBldGMuIGV0Yy4KKyAgICBpZiAoIWhhc1ZhbGlkTUlNRVR5cGUgJiYgIWhhc1N5bnRhY3RpY2Fs
bHlWYWxpZENTU0hlYWRlcigpKSB7CisgICAgICAgIGJvb2wgaXNDcm9zc09yaWdpbkNTUyA9ICFz
ZWN1cml0eU9yaWdpbiB8fCAhc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QoZmluYWxVUkwoKSk7
CisgICAgICAgIGlmIChpc0Nyb3NzT3JpZ2luQ1NTKSB7CisgICAgICAgICAgICBjbGVhclJ1bGVz
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1fcGFy
c2VyQ29udGV4dC5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyAmJiBpc1N0cmljdFBhcnNlck1vZGUo
bV9wYXJzZXJDb250ZXh0Lm1vZGUpKSB7CisgICAgICAgIC8vIFdvcmsgYXJvdW5kIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzNTA+LgorICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2xhc2hLSFRNTEZpeGVzRG90Q3NzLCAoIi9LSFRN
TEZpeGVzLmNzcyIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoIi8qIEtIVE1MIGZpeCBzdHlsZXNoZWV0
ICovXG4vKiB3b3JrIGFyb3VuZCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXJzICovXG4jY29sdW1u
LWNvbnRlbnQgeyBtYXJnaW4tbGVmdDogMDsgfVxuXG4iKSk7CisgICAgICAgIC8vIFRoZXJlIGFy
ZSB0d28gdmFyaWFudHMgb2YgS0hUTUxGaXhlcy5jc3MuIE9uZSBpcyBlcXVhbCB0byBtZWRpYVdp
a2lLSFRNTEZpeGVzU3R5bGVTaGVldCwKKyAgICAgICAgLy8gd2hpbGUgdGhlIG90aGVyIGxhY2tz
IHRoZSBzZWNvbmQgdHJhaWxpbmcgbmV3bGluZS4KKyAgICAgICAgaWYgKGZpbmFsVVJMKCkuc3Ry
aW5nKCkuZW5kc1dpdGgoc2xhc2hLSFRNTEZpeGVzRG90Q3NzKSAmJiAhc2hlZXRUZXh0LmlzTnVs
bCgpICYmIG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LnN0YXJ0c1dpdGgoc2hlZXRUZXh0
KQorICAgICAgICAgICAgJiYgc2hlZXRUZXh0Lmxlbmd0aCgpID49IG1lZGlhV2lraUtIVE1MRml4
ZXNTdHlsZVNoZWV0Lmxlbmd0aCgpIC0gMSkKKyAgICAgICAgICAgIGNsZWFyUnVsZXMoKTsKKyAg
ICB9CiB9CiAKLWJvb2wgU3R5bGVTaGVldEludGVybmFsOjpwYXJzZVN0cmluZ0F0TGluZShjb25z
dCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlcikKK2Jvb2wgU3R5bGVTaGVldElu
dGVybmFsOjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHNoZWV0VGV4dCkKK3sKKyAgICByZXR1
cm4gcGFyc2VTdHJpbmdBdExpbmUoc2hlZXRUZXh0LCAwKTsKK30KKworYm9vbCBTdHlsZVNoZWV0
SW50ZXJuYWw6OnBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBpbnQg
c3RhcnRMaW5lTnVtYmVyKQogewogICAgIENTU1BhcnNlciBwKHBhcnNlckNvbnRleHQoKSk7Ci0g
ICAgcC5wYXJzZVNoZWV0KHRoaXMsIHN0cmluZywgc3RhcnRMaW5lTnVtYmVyKTsKKyAgICBwLnBh
cnNlU2hlZXQodGhpcywgc2hlZXRUZXh0LCBzdGFydExpbmVOdW1iZXIpOworCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAkocmV2aXNpb24g
MTE0OTE5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwogY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE1lZGlhUXVlcnlT
ZXQ7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFN0eWxlUnVsZUJhc2U7CiBjbGFzcyBT
dHlsZVJ1bGVJbXBvcnQ7CiBzdHJ1Y3QgQ1NTTmFtZXNwYWNlOwpAQCAtNzQsOCArNzUsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHN0eWxlU2hlZXRDaGFuZ2VkKCk7CiAKKyAgICB2b2lkIHBhcnNl
VXNlclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCosIGNvbnN0IFNlY3VyaXR5
T3JpZ2luKik7CiAgICAgYm9vbCBwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmKTsKLQogICAgIGJv
b2wgcGFyc2VTdHJpbmdBdExpbmUoY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlcik7
CiAKICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcAkocmV2aXNpb24gMTE0OTE5KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODcsNyArMjg3LDcg
QEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZAogICAgIEhUTUxFbGVt
ZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIH0KIAotdm9pZCBIVE1MTGlua0VsZW1lbnQ6
OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBiYXNlVVJM
LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIHNoZWV0
KQordm9pZCBIVE1MTGlua0VsZW1lbnQ6OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBo
cmVmLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IENh
Y2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZFN0eWxlU2hlZXQpCiB7CiAgICAgaWYgKCFpbkRvY3Vt
ZW50KCkpIHsKICAgICAgICAgQVNTRVJUKCFtX3NoZWV0KTsKQEAgLTI5Niw2MCArMjk2LDE2IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXRDU1NTdHlsZVNoZWV0KGMKIAogICAgIFJlZlB0cjxT
dHlsZVNoZWV0SW50ZXJuYWw+IHN0eWxlU2hlZXQgPSBTdHlsZVNoZWV0SW50ZXJuYWw6OmNyZWF0
ZSh0aGlzLCBocmVmLCBiYXNlVVJMLCBjaGFyc2V0KTsKIAotICAgIGJvb2wgc3RyaWN0UGFyc2lu
ZyA9ICFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKTsKLSAgICBib29sIGVuZm9yY2VNSU1FVHlw
ZSA9IHN0cmljdFBhcnNpbmc7Ci0gICAgYm9vbCBjcm9zc09yaWdpbkNTUyA9IGZhbHNlOwotICAg
IGJvb2wgdmFsaWRNSU1FVHlwZSA9IGZhbHNlOwotICAgIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MgPSBkb2N1bWVudCgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS0+cGFnZSgpLT5zZXR0aW5n
cygpLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwotCi0gICAgLy8gQ2hlY2sgdG8gc2VlIGlm
IHdlIHNob3VsZCBlbmZvcmNlIHRoZSBNSU1FIHR5cGUgb2YgdGhlIENTUyByZXNvdXJjZSBpbiBz
dHJpY3QgbW9kZS4KLSAgICAvLyBSdW5uaW5nIGluIGlXZWIgMiBpcyBvbmUgZXhhbXBsZSBvZiB3
aGVyZSB3ZSBkb24ndCB3YW50IHRvIC0gPHJkYXI6Ly9wcm9ibGVtLzYwOTk3NDg+Ci0gICAgaWYg
KGVuZm9yY2VNSU1FVHlwZSAmJiBkb2N1bWVudCgpLT5wYWdlKCkgJiYgIWRvY3VtZW50KCktPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+ZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoKSkKLSAg
ICAgICAgZW5mb3JjZU1JTUVUeXBlID0gZmFsc2U7Ci0KLSNpZmRlZiBCVUlMRElOR19PTl9MRU9Q
QVJECi0gICAgaWYgKGVuZm9yY2VNSU1FVHlwZSAmJiBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykg
ewotICAgICAgICAvLyBDb3ZlcnMgYm90aCBodHRwIGFuZCBodHRwcywgd2l0aCBvciB3aXRob3V0
ICJ3d3cuIgotICAgICAgICBpZiAoYmFzZVVSTC5zdHJpbmcoKS5jb250YWlucygibWNhZmVlLmNv
bS9qYXBhbi8iLCBmYWxzZSkpCi0gICAgICAgICAgICBlbmZvcmNlTUlNRVR5cGUgPSBmYWxzZTsK
LSAgICB9Ci0jZW5kaWYKLQotICAgIFN0cmluZyBzaGVldFRleHQgPSBzaGVldC0+c2hlZXRUZXh0
KGVuZm9yY2VNSU1FVHlwZSwgJnZhbGlkTUlNRVR5cGUpOwotICAgIHN0eWxlU2hlZXQtPnBhcnNl
U3RyaW5nKHNoZWV0VGV4dCk7Ci0KLSAgICAvLyBJZiB3ZSdyZSBsb2FkaW5nIGEgc3R5bGVzaGVl
dCBjcm9zcy1vcmlnaW4sIGFuZCB0aGUgTUlNRSB0eXBlIGlzIG5vdAotICAgIC8vIHN0YW5kYXJk
LCByZXF1aXJlIHRoZSBDU1MgdG8gYXQgbGVhc3Qgc3RhcnQgd2l0aCBhIHN5bnRhY3RpY2FsbHkK
LSAgICAvLyB2YWxpZCBDU1MgcnVsZS4KLSAgICAvLyBUaGlzIHByZXZlbnRzIGFuIGF0dGFja2Vy
IHBsYXlpbmcgZ2FtZXMgYnkgaW5qZWN0aW5nIENTUyBzdHJpbmdzIGludG8KLSAgICAvLyBIVE1M
LCBYTUwsIEpTT04sIGV0Yy4gZXRjLgotICAgIGlmICghZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+Y2FuUmVxdWVzdChiYXNlVVJMKSkKLSAgICAgICAgY3Jvc3NPcmlnaW5DU1MgPSB0cnVl
OwotCi0gICAgaWYgKGNyb3NzT3JpZ2luQ1NTICYmICF2YWxpZE1JTUVUeXBlICYmICFzdHlsZVNo
ZWV0LT5oYXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFkZXIoKSkKLSAgICAgICAgc3R5bGVTaGVl
dCA9IFN0eWxlU2hlZXRJbnRlcm5hbDo6Y3JlYXRlKHRoaXMsIGhyZWYsIGJhc2VVUkwsIGNoYXJz
ZXQpOwotCi0gICAgaWYgKHN0cmljdFBhcnNpbmcgJiYgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mp
IHsKLSAgICAgICAgLy8gV29yayBhcm91bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yODM1MD4uCi0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBzbGFzaEtIVE1MRml4ZXNEb3RDc3MsICgiL0tIVE1MRml4ZXMuY3NzIikpOwotICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0
eWxlU2hlZXQsICgiLyogS0hUTUwgZml4IHN0eWxlc2hlZXQgKi9cbi8qIHdvcmsgYXJvdW5kIHRo
ZSBob3Jpem9udGFsIHNjcm9sbGJhcnMgKi9cbiNjb2x1bW4tY29udGVudCB7IG1hcmdpbi1sZWZ0
OiAwOyB9XG5cbiIpKTsKLSAgICAgICAgLy8gVGhlcmUgYXJlIHR3byB2YXJpYW50cyBvZiBLSFRN
TEZpeGVzLmNzcy4gT25lIGlzIGVxdWFsIHRvIG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0
LAotICAgICAgICAvLyB3aGlsZSB0aGUgb3RoZXIgbGFja3MgdGhlIHNlY29uZCB0cmFpbGluZyBu
ZXdsaW5lLgotICAgICAgICBpZiAoYmFzZVVSTC5zdHJpbmcoKS5lbmRzV2l0aChzbGFzaEtIVE1M
Rml4ZXNEb3RDc3MpICYmICFzaGVldFRleHQuaXNOdWxsKCkgJiYgbWVkaWFXaWtpS0hUTUxGaXhl
c1N0eWxlU2hlZXQuc3RhcnRzV2l0aChzaGVldFRleHQpCi0gICAgICAgICAgICAgICAgJiYgc2hl
ZXRUZXh0Lmxlbmd0aCgpID49IG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0Lmxlbmd0aCgp
IC0gMSkgewotICAgICAgICAgICAgQVNTRVJUKHN0eWxlU2hlZXQtPnJ1bGVDb3VudCgpID09IDEp
OwotICAgICAgICAgICAgc3R5bGVTaGVldC0+Y2xlYXJSdWxlcygpOwotICAgICAgICB9Ci0gICAg
fQotICAgIG1fc2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldCk7Ci0KLSAg
ICBzdHlsZVNoZWV0LT5zZXRUaXRsZSh0aXRsZSgpKTsKKyAgICBzdHlsZVNoZWV0LT5wYXJzZVVz
ZXJTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCkpOwogCiAgICAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhID0gTWVkaWFRdWVyeVNldDo6
Y3JlYXRlQWxsb3dpbmdEZXNjcmlwdGlvblN5bnRheChtX21lZGlhKTsKICAgICBzdHlsZVNoZWV0
LT5zZXRNZWRpYVF1ZXJpZXMobWVkaWEucmVsZWFzZSgpKTsKKyAgICBzdHlsZVNoZWV0LT5zZXRU
aXRsZSh0aXRsZSgpKTsKKworICAgIG1fc2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5
bGVTaGVldCk7CiAKICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKLSAgICBzdHlsZVNoZWV0LT5ub3Rp
ZnlMb2FkZWRTaGVldChzaGVldCk7CisgICAgc3R5bGVTaGVldC0+bm90aWZ5TG9hZGVkU2hlZXQo
Y2FjaGVkU3R5bGVTaGVldCk7CiAgICAgc3R5bGVTaGVldC0+Y2hlY2tMb2FkZWQoKTsKIH0KIAo=
</data>
<flag name="review"
          id="143784"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>