<?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>21555</bug_id>
          
          <creation_ts>2008-10-12 10:54:05 -0700</creation_ts>
          <short_desc>[CAIRO][QT] Canvas transformations applied twice to Patterns</short_desc>
          <delta_ts>2008-11-11 08:26:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Cairo, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95044</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-12 10:54:05 -0700</bug_when>
    <thetext>If you have a transformation ctx.transform(2,0,0,2,0,0); before a creation of a pattern, the transformation is applied twice to the pattern, but with a normal bahavior to paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95045</commentid>
    <comment_count>1</comment_count>
      <attachid>24303</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-12 11:07:45 -0700</bug_when>
    <thetext>Created attachment 24303
Pattern with transform

A TestCase. You should see skewed yellow and blue boxes, not just a blue rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95052</commentid>
    <comment_count>2</comment_count>
      <attachid>24305</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-12 12:01:18 -0700</bug_when>
    <thetext>Created attachment 24305
Pattern transformation

Patterns don&apos;t need extra transformations, since the context is transformed itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95151</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-12 23:35:19 -0700</bug_when>
    <thetext>My testing on the nightly shows the same behaviour in the current nightly, firefox, opera</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95175</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-13 11:12:24 -0700</bug_when>
    <thetext>It does appear on Qt and Cairo. Renamed the title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95184</commentid>
    <comment_count>5</comment_count>
      <attachid>24319</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-13 11:50:04 -0700</bug_when>
    <thetext>Created attachment 24319
Pattern transform

Give a identity matrix to pattern for qt and cairo. This solves the double transformation of patterns on Qt and Cairo. I&apos;m not absolutly sure about this. I believe it is because the context is transformed already. So you don&apos;t need to transform the pattern again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95382</commentid>
    <comment_count>6</comment_count>
      <attachid>24319</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-14 23:11:06 -0700</bug_when>
    <thetext>Comment on attachment 24319
Pattern transform

I&apos;m clearing the review flag so no one goes and lands this :D

Basically this looks correct and per Dirk results in Gtk and Qt being correct (Cg is already correct) -- but as I said on IRC dumpAsText layout tests == win :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95384</commentid>
    <comment_count>7</comment_count>
      <attachid>24353</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-14 23:51:30 -0700</bug_when>
    <thetext>Created attachment 24353
LayoutTest for pattern transformations

Added a LayoutTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95386</commentid>
    <comment_count>8</comment_count>
      <attachid>24319</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-15 00:13:46 -0700</bug_when>
    <thetext>Comment on attachment 24319
Pattern transform

This seems to make sense to me -- but i&apos;m not a gtk/qt type person, however assuming behaviour matches firefox/opera now r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98290</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-11-11 08:26:36 -0800</bug_when>
    <thetext>landed in r38299.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24303</attachid>
            <date>2008-10-12 11:07:45 -0700</date>
            <delta_ts>2008-10-12 11:07:45 -0700</delta_ts>
            <desc>Pattern with transform</desc>
            <filename>c17.html</filename>
            <type>text/html</type>
            <size>890</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgp3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjJyk7CiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Cgog
ICAgdmFyIGNhbnZhczIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgIGNh
bnZhczIud2lkdGggPSAyMDsKICAgIGNhbnZhczIuaGVpZ2h0ID0gMjA7CiAgICB2YXIgY3R4MiA9
IGNhbnZhczIuZ2V0Q29udGV4dCgnMmQnKTsKICAgIGN0eDIuZmlsbFN0eWxlID0gJyMwMGYnOwog
ICAgY3R4Mi5maWxsUmVjdCgwLCAwLCAxMCwgMTApOwogICAgY3R4Mi5maWxsUmVjdCgxMCwgMTAs
IDEwLCAxMCk7CiAgICBjdHgyLmZpbGxTdHlsZSA9ICcjZmYwJzsKICAgIGN0eDIuZmlsbFJlY3Qo
MTAsIDAsIDEwLCAxMCk7CiAgICBjdHgyLmZpbGxSZWN0KDAsIDEwLCAxMCwgMTApOwoKICAgIGN0
eC5maWxsU3R5bGUgPSAnI2ZmZic7CiAgICBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRo
LCBjYW52YXMuaGVpZ2h0KTsKICAgIGN0eC50cmFuc2Zvcm0oNCwgTWF0aC50YW4oNDUpLCAwLCA1
LCAtMiwgLTE4KTsKICAgIHZhciBwYXR0ZXJuID0gY3R4LmNyZWF0ZVBhdHRlcm4oY2FudmFzMiwg
J3JlcGVhdCcpOwogICAgY3R4LmZpbGxTdHlsZSA9IHBhdHRlcm47CiAgICBjdHguZmlsbFJlY3Qo
LTE1MCwtMTUwLDMwMCwzMDApOwogICAgICB9CiAgICA8L3NjcmlwdD48L2hlYWQ+PGJvZHk+CiAg
ICA8ZGl2PgogICAgICA8Y2FudmFzIGlkPSJjIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PC9j
YW52YXM+CiAgICA8L2Rpdj4KICA8L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24305</attachid>
            <date>2008-10-12 12:01:18 -0700</date>
            <delta_ts>2008-10-13 11:50:04 -0700</delta_ts>
            <desc>Pattern transformation</desc>
            <filename>pattern.patch</filename>
            <type>text/plain</type>
            <size>9242</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzUyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDgtMTAtMTIgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXR0ZXJu
IGRvbid0IG5lZWQgYW4gZXh0cmEgYWZmaW5lIHRyYW5zZm9ybWF0aW9uCisKKyAgICAgICAgQ2Fu
dmFzIHRyYW5zZm9ybWF0aW9ucyBhcHBsaWVkIHR3aWNlIHRvIFBhdHRlcm5zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU1NQorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzdHJva2VQYXRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJu
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0
ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjphcHBseVN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwbHlGaWxsUGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UGF0dGVybkNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3Jt
UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvUGF0dGVyblF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmNy
ZWF0ZVBsYXRmb3JtUGF0dGVybik6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL3F0L1NWR1BhaW50
U2VydmVyUGF0dGVyblF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhaW50U2VydmVyUGF0
dGVybjo6c2V0dXApOgorCiAyMDA4LTEwLTEyICBCcmFkIEdhcmNpYSAgPGJnYXJjaWFAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0dGVybi5oCShyZXZpc2lvbiAzNzUyMSkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0dGVybi5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBJbWFnZSogdGlsZUltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV90aWxlSW1hZ2UuZ2V0KCk7IH0KIAotICAgICAgICBQbGF0Zm9ybVBhdHRlcm5QdHIg
Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSkgY29uc3Q7CisgICAgICAgIFBsYXRmb3JtUGF0dGVyblB0ciBjcmVhdGVQbGF0Zm9ybVBh
dHRlcm4oKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBhdHRlcm4oSW1hZ2UqLCBi
b29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkocmV2aXNp
b24gMzc1MjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMyLDcgKzQzMiw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpmaWxsUGF0aCgpCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQYXR0ZXJuQ29sb3JTcGFjZToKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9j
b21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oZ2V0
Q1RNKCkpKTsKKyAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRlLmZp
bGxQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oKSk7CiAgICAgICAgIGNhaXJv
X2NsaXAoY3IpOwogICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmds
b2JhbEFscGhhKTsKICAgICAgICAgYnJlYWs7CkBAIC00NjUsNyArNDY1LDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUGF0dGVybkNvbG9yU3BhY2U6Ci0gICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIG1f
Y29tbW9uLT5zdGF0ZS5zdHJva2VQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4o
Z2V0Q1RNKCkpKTsKKyAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRl
LnN0cm9rZVBhdHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybigpKTsKICAgICAgICAg
aWYgKG1fZGF0YS0+Z2xvYmFsQWxwaGEgPCAxLjBmKSB7CiAgICAgICAgICAgICBjYWlyb19wdXNo
X2dyb3VwKGNyKTsKICAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0
YS0+Z2xvYmFsQWxwaGEpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0dGVybkNhaXJvLmNwcAkocmV2aXNpb24gMzc1MjEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDE1ICszMywxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNhaXJvX3BhdHRlcm5fdCog
UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSkgY29uc3QKK2NhaXJvX3BhdHRlcm5fdCogUGF0dGVybjo6Y3JlYXRlUGxh
dGZvcm1QYXR0ZXJuKCkgY29uc3QKIHsKICAgICBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSB0
aWxlSW1hZ2UoKS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICBpZiAoIXN1cmZh
Y2UpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY2Fpcm9fcGF0dGVybl90KiBwYXR0ZXJuID0g
Y2Fpcm9fcGF0dGVybl9jcmVhdGVfZm9yX3N1cmZhY2Uoc3VyZmFjZSk7Ci0gICAgY29uc3QgY2Fp
cm9fbWF0cml4X3QqIHBhdHRlcm5fbWF0cml4ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjYWly
b19tYXRyaXhfdCo+KCZwYXR0ZXJuVHJhbnNmb3JtKTsKLSAgICBjYWlyb19wYXR0ZXJuX3NldF9t
YXRyaXgocGF0dGVybiwgcGF0dGVybl9tYXRyaXgpOwogICAgIGlmIChtX3JlcGVhdFggfHwgbV9y
ZXBlYXRZKQogICAgICAgICBjYWlyb19wYXR0ZXJuX3NldF9leHRlbmQocGF0dGVybiwgQ0FJUk9f
RVhURU5EX1JFUEVBVCk7CiAgICAgcmV0dXJuIHBhdHRlcm47CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNpb24g
Mzc1MjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDcgKzM4Nyw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5
U3Ryb2tlUGF0dGVybihHcmFwaGljc0MKIHsKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgCi0gICAgQ0dQYXR0ZXJuUmVmIHBsYXRm
b3JtUGF0dGVybiA9IHBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihjb250ZXh0LT5nZXRD
VE0oKSk7CisgICAgQ0dQYXR0ZXJuUmVmIHBsYXRmb3JtUGF0dGVybiA9IHBhdHRlcm4tPmNyZWF0
ZVBsYXRmb3JtUGF0dGVybigpOwogICAgIGlmICghcGxhdGZvcm1QYXR0ZXJuKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTQwNCw3ICs0MDQsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUZpbGxQYXR0ZXJu
KEdyYXBoaWNzQ29uCiB7CiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGNvbnRleHQtPnBs
YXRmb3JtQ29udGV4dCgpOwogCi0gICAgQ0dQYXR0ZXJuUmVmIHBsYXRmb3JtUGF0dGVybiA9IHBh
dHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihjb250ZXh0LT5nZXRDVE0oKSk7CisgICAgQ0dQ
YXR0ZXJuUmVmIHBsYXRmb3JtUGF0dGVybiA9IHBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVy
bigpOwogICAgIGlmICghcGxhdGZvcm1QYXR0ZXJuKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0dGVybkNHLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdHRlcm5DRy5jcHAJKHJldmlzaW9uIDM3
NTIxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXR0ZXJuQ0cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MCwxMSArNTAsMTEgQEAgc3RhdGljIHZvaWQgcGF0dGVyblJlbGVhc2VD
YWxsYmFjayh2b2lkKgogICAgIHN0YXRpY19jYXN0PEltYWdlKj4oaW5mbyktPmRlcmVmKCk7CiB9
CiAKLUNHUGF0dGVyblJlZiBQYXR0ZXJuOjpjcmVhdGVQbGF0Zm9ybVBhdHRlcm4oY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0pIGNvbnN0CitDR1BhdHRlcm5SZWYgUGF0dGVybjo6Y3Jl
YXRlUGxhdGZvcm1QYXR0ZXJuKCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gdGls
ZUltYWdlKCktPnJlY3QoKTsKIAotICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3Jt
ID0gdHJhbnNmb3JtOworICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtOwogICAg
IHBhdHRlcm5UcmFuc2Zvcm0uc2NhbGUoMSwgLTEpOwogICAgIHBhdHRlcm5UcmFuc2Zvcm0udHJh
bnNsYXRlKDAsIC10aWxlUmVjdC5oZWlnaHQoKSk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCShyZXZpc2lvbiAzNzUy
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmZpbGxQYXRoKCkKICAgICAgICAgICAgIHAtPmZpbGxQYXRoKHBhdGgsIHAtPmJydXNoKCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdHRlcm5Db2xvclNwYWNlOgotICAgICAgICBwLT5m
aWxsUGF0aChwYXRoLCBRQnJ1c2gobV9jb21tb24tPnN0YXRlLmZpbGxQYXR0ZXJuLmdldCgpLT5j
cmVhdGVQbGF0Zm9ybVBhdHRlcm4oZ2V0Q1RNKCkpKSk7CisgICAgICAgIHAtPmZpbGxQYXRoKHBh
dGgsIFFCcnVzaChtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRm
b3JtUGF0dGVybigpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhZGllbnRDb2xvclNw
YWNlOgogICAgICAgICBwLT5maWxsUGF0aChwYXRoLCBRQnJ1c2goKihtX2NvbW1vbi0+c3RhdGUu
ZmlsbEdyYWRpZW50LmdldCgpLT5wbGF0Zm9ybUdyYWRpZW50KCkpKSk7CkBAIC01MzksNyArNTM5
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgICAgICAgICAgcC0+
c3Ryb2tlUGF0aChwYXRoLCBwZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdHRlcm5D
b2xvclNwYWNlOiB7Ci0gICAgICAgIHBlbi5zZXRCcnVzaChRQnJ1c2gobV9jb21tb24tPnN0YXRl
LnN0cm9rZVBhdHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihnZXRDVE0oKSkpKTsK
KyAgICAgICAgcGVuLnNldEJydXNoKFFCcnVzaChtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlUGF0dGVy
bi5nZXQoKS0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKCkpKTsKICAgICAgICAgcC0+c2V0UGVuKHBl
bik7CiAgICAgICAgIHAtPnN0cm9rZVBhdGgocGF0aCwgcGVuKTsKICAgICAgICAgYnJlYWs7CkBA
IC01NjYsNyArNTY2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZs
bwogICAgICAgICAgICAgcC0+ZmlsbFJlY3QocmVjdCwgcC0+YnJ1c2goKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGF0dGVybkNvbG9yU3BhY2U6Ci0gICAgICAgIHAtPmZpbGxSZWN0KHJl
Y3QsIFFCcnVzaChtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRm
b3JtUGF0dGVybihnZXRDVE0oKSkpKTsKKyAgICAgICAgcC0+ZmlsbFJlY3QocmVjdCwgUUJydXNo
KG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi5nZXQoKS0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJu
KCkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFkaWVudENvbG9yU3BhY2U6CiAgICAg
ICAgIHAtPmZpbGxSZWN0KHJlY3QsIFFCcnVzaCgqKG1fY29tbW9uLT5zdGF0ZS5maWxsR3JhZGll
bnQuZ2V0KCktPnBsYXRmb3JtR3JhZGllbnQoKSkpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvUGF0dGVyblF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L1BhdHRlcm5RdC5jcHAJKHJldmlzaW9uIDM3NTIxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9QYXR0ZXJuUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwx
NCArMzEsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1RQnJ1c2ggUGF0dGVybjo6Y3Jl
YXRlUGxhdGZvcm1QYXR0ZXJuKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSBjb25z
dAorUUJydXNoIFBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybigpIGNvbnN0CiB7CiAgICAg
UVBpeG1hcCogcGl4bWFwID0gdGlsZUltYWdlKCktPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCk7CiAgICAgaWYgKCFwaXhtYXApCiAgICAgICAgIHJldHVybiBRQnJ1c2goKTsKIAogICAgIFFC
cnVzaCBicnVzaCgqcGl4bWFwKTsKLSAgICBicnVzaC5zZXRNYXRyaXgodHJhbnNmb3JtKTsKIAog
ICAgIHJldHVybiBicnVzaDsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL3F0L1NWR1Bh
aW50U2VydmVyUGF0dGVyblF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGlj
cy9xdC9TVkdQYWludFNlcnZlclBhdHRlcm5RdC5jcHAJKHJldmlzaW9uIDM3NTIxKQorKysgV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvcXQvU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRl
IDxRUGFpbnRlclBhdGg+CisjaW5jbHVkZSA8UVBpeG1hcD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC01Miw4ICs1Myw2IEBAIGJvb2wgU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpzZXR1cChH
cmFwaGkKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7CiAgICAgY29u
c3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxlID0gb2JqZWN0LT5zdHlsZSgpLT5zdmdTdHlsZSgp
OwogCi0gICAgUmVmUHRyPFBhdHRlcm4+IHBhdHRlcm4gPSBQYXR0ZXJuOjpjcmVhdGUodGlsZSgp
LT5pbWFnZSgpLCB0cnVlLCB0cnVlKTsKLQogICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICBwYWlu
dGVyLT5zZXRQZW4oUXQ6Ok5vUGVuKTsKICAgICBwYWludGVyLT5zZXRCcnVzaChRdDo6Tm9CcnVz
aCk7CkBAIC02Miw3ICs2MSw5IEBAIGJvb2wgU1ZHUGFpbnRTZXJ2ZXJQYXR0ZXJuOjpzZXR1cChH
cmFwaGkKICAgICBhZmZpbmUudHJhbnNsYXRlKHBhdHRlcm5Cb3VuZGFyaWVzKCkueCgpLCBwYXR0
ZXJuQm91bmRhcmllcygpLnkoKSk7CiAgICAgYWZmaW5lLm11bHRpcGx5KHBhdHRlcm5UcmFuc2Zv
cm0oKSk7CiAKLSAgICBRQnJ1c2ggYnJ1c2gocGF0dGVybi0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJu
KGFmZmluZSkpOworICAgIFFQaXhtYXAqIHBpeG1hcCA9IHRpbGUoKS0+aW1hZ2UoKS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBRQnJ1c2ggYnJ1c2goKnBpeG1hcCk7CisgICAg
YnJ1c2guc2V0TWF0cml4KGFmZmluZSk7CiAgICAgaWYgKCh0eXBlICYgQXBwbHlUb0ZpbGxUYXJn
ZXRUeXBlKSAmJiBzdmdTdHlsZS0+aGFzRmlsbCgpKSB7CiAgICAgICAgIHBhaW50ZXItPnNldEJy
dXNoKGJydXNoKTsKICAgICAgICAgY29udGV4dC0+c2V0RmlsbFJ1bGUoc3ZnU3R5bGUtPmZpbGxS
dWxlKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24319</attachid>
            <date>2008-10-13 11:50:04 -0700</date>
            <delta_ts>2008-10-15 00:12:48 -0700</delta_ts>
            <desc>Pattern transform</desc>
            <filename>pattern-transform.patch</filename>
            <type>text/plain</type>
            <size>6973</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzU1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDgtMTAtMTMgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXR0ZXJu
Q2Fpcm8gbmVlZHMgdG8gaW52ZXJ0IHRoZSBwYXR0ZXJuIG1hdHJpeCBiZWNhdXNlCisgICAgICAg
IG9mIHRyYW5zZm9ybWF0aW9uIGZyb20gdXNlciBzcGFjZSB0byBwYXR0ZXJuIHNwYWNlLgorICAg
ICAgICBHaXZlIGEgaWRlbnRpdHkgbWF0cml4IHRvIHBhdHRlcm4gZm9yIFF0IGFuZCBDYWlyby4g
QmVjYXVzZSB0aGUgCisgICAgICAgIGNvbnRleHQgaXMgdHJhbnNmb3JtZWQgYWxyZWFkeS4KKwor
ICAgICAgICBbQ0FJUk9dW1FUXSBDYW52YXMgdHJhbnNmb3JtYXRpb25zIGFwcGxpZWQgdHdpY2Ug
dG8gUGF0dGVybnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNTU1CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxQ
YXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QpOgorCiAyMDA4LTEwLTEzICBNYXJjbyBCYXJpc2lvbmUg
IDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLiBMYW5kZWQgYnkgSmFuIEFsb256by4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3Bw
CShyZXZpc2lvbiAzNzUyMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsMjQgKzQyNCwyOCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgoKQogCiAgICAgY2Fpcm9fc2V0X2ZpbGxf
cnVsZShjciwgZmlsbFJ1bGUoKSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZF
Tl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CiAgICAgc3dpdGNoIChtX2NvbW1vbi0+
c3RhdGUuZmlsbENvbG9yU3BhY2UpIHsKLSAgICBjYXNlIFNvbGlkQ29sb3JTcGFjZToKKyAgICBj
YXNlIFNvbGlkQ29sb3JTcGFjZTogewogICAgICAgICBpZiAoZmlsbENvbG9yKCkuYWxwaGEoKSkg
ewogICAgICAgICAgICAgc2V0Q29sb3IoY3IsIGZpbGxDb2xvcigpKTsKICAgICAgICAgICAgIGNh
aXJvX2NsaXAoY3IpOwogICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9k
YXRhLT5nbG9iYWxBbHBoYSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
YXR0ZXJuQ29sb3JTcGFjZToKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24t
PnN0YXRlLmZpbGxQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oZ2V0Q1RNKCkp
KTsKKyAgICB9CisgICAgY2FzZSBQYXR0ZXJuQ29sb3JTcGFjZTogeworICAgICAgICBBZmZpbmVU
cmFuc2Zvcm0gdHJhbnNmb3JtOworICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBtX2NvbW1v
bi0+c3RhdGUuZmlsbFBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybih0cmFuc2Zvcm0pKTsK
ICAgICAgICAgY2Fpcm9fY2xpcChjcik7CiAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEo
Y3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYWRp
ZW50Q29sb3JTcGFjZToKKyAgICB9CisgICAgY2FzZSBHcmFkaWVudENvbG9yU3BhY2U6IHsKICAg
ICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRlLmZpbGxHcmFkaWVudC5n
ZXQoKS0+cGxhdGZvcm1HcmFkaWVudCgpKTsKICAgICAgICAgY2Fpcm9fY2xpcChjcik7CiAgICAg
ICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOwogICAg
ICAgICBicmVhazsKICAgICB9CisgICAgfQogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCkBA
IC00NTMsNyArNDU3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAg
IGNhaXJvX3QqIGNyID0gbV9kYXRhLT5jcjsKICAgICBjYWlyb19zYXZlKGNyKTsKICAgICBzd2l0
Y2ggKG1fY29tbW9uLT5zdGF0ZS5zdHJva2VDb2xvclNwYWNlKSB7Ci0gICAgY2FzZSBTb2xpZENv
bG9yU3BhY2U6CisgICAgY2FzZSBTb2xpZENvbG9yU3BhY2U6IHsKICAgICAgICAgaWYgKHN0cm9r
ZUNvbG9yKCkuYWxwaGEoKSkgewogICAgICAgICAgICAgc2V0Q29sb3IoY3IsIHN0cm9rZUNvbG9y
KCkpOwogICAgICAgICAgICAgaWYgKG1fZGF0YS0+Z2xvYmFsQWxwaGEgPCAxLjBmKSB7CkBAIC00
NjQsOCArNDY4LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICAg
ICAgICAgIGNhaXJvX3N0cm9rZShjcik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQYXR0ZXJuQ29sb3JTcGFjZToKLSAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9j
b21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihn
ZXRDVE0oKSkpOworICAgIH0KKyAgICBjYXNlIFBhdHRlcm5Db2xvclNwYWNlOiB7CisgICAgICAg
IEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3Is
IG1fY29tbW9uLT5zdGF0ZS5zdHJva2VQYXR0ZXJuLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4odHJh
bnNmb3JtKSk7CiAgICAgICAgIGlmIChtX2RhdGEtPmdsb2JhbEFscGhhIDwgMS4wZikgewogICAg
ICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChjcik7CiAgICAgICAgICAgICBjYWlyb19wYWludF93
aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhKTsKQEAgLTQ3Myw4ICs0NzksOSBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgICAgIH0KICAgICAgICAgY2Fp
cm9fc3Ryb2tlKGNyKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFkaWVudENvbG9yU3Bh
Y2U6Ci0gICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIG1fY29tbW9uLT5zdGF0ZS5zdHJva2VH
cmFkaWVudC5nZXQoKS0+cGxhdGZvcm1HcmFkaWVudCgpKTsKKyAgICB9CisgICAgY2FzZSBHcmFk
aWVudENvbG9yU3BhY2U6IHsKKyAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24t
PnN0YXRlLnN0cm9rZUdyYWRpZW50LT5wbGF0Zm9ybUdyYWRpZW50KCkpOwogICAgICAgICBpZiAo
bV9kYXRhLT5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKICAgICAgICAgICAgIGNhaXJvX3B1c2hfZ3Jv
dXAoY3IpOwogICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5n
bG9iYWxBbHBoYSk7CkBAIC00ODMsNiArNDkwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVBhdGgoKQogICAgICAgICBjYWlyb19zdHJva2UoY3IpOwogICAgICAgICBicmVhazsKICAg
ICB9CisgICAgfQogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCShyZXZpc2lvbiAz
NzUyMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBjYWlyb19wYXR0ZXJuX3QqIFBhdHRl
cm46OmNyZWF0ZVBsYXRmb3JtCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY2Fpcm9fcGF0dGVy
bl90KiBwYXR0ZXJuID0gY2Fpcm9fcGF0dGVybl9jcmVhdGVfZm9yX3N1cmZhY2Uoc3VyZmFjZSk7
Ci0gICAgY29uc3QgY2Fpcm9fbWF0cml4X3QqIHBhdHRlcm5fbWF0cml4ID0gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjYWlyb19tYXRyaXhfdCo+KCZwYXR0ZXJuVHJhbnNmb3JtKTsKKyAgICBjb25z
dCBjYWlyb19tYXRyaXhfdCogcGF0dGVybl9tYXRyaXggPSByZWludGVycHJldF9jYXN0PGNvbnN0
IGNhaXJvX21hdHJpeF90Kj4oJnBhdHRlcm5UcmFuc2Zvcm0uaW52ZXJzZSgpKTsKICAgICBjYWly
b19wYXR0ZXJuX3NldF9tYXRyaXgocGF0dGVybiwgcGF0dGVybl9tYXRyaXgpOwogICAgIGlmICht
X3JlcGVhdFggfHwgbV9yZXBlYXRZKQogICAgICAgICBjYWlyb19wYXR0ZXJuX3NldF9leHRlbmQo
cGF0dGVybiwgQ0FJUk9fRVhURU5EX1JFUEVBVCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAkocmV2aXNpb24gMzc1MjEp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTM0LDE4ICs1MzQsMjAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnN0cm9rZVBhdGgoKQogICAgIFFQYWludGVyUGF0aCBwYXRoID0gbV9kYXRhLT5jdXJyZW50UGF0
aDsKIAogICAgIHN3aXRjaCAobV9jb21tb24tPnN0YXRlLnN0cm9rZUNvbG9yU3BhY2UpIHsKLSAg
ICBjYXNlIFNvbGlkQ29sb3JTcGFjZToKKyAgICBjYXNlIFNvbGlkQ29sb3JTcGFjZTogewogICAg
ICAgICBpZiAoc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKQogICAgICAgICAgICAgcC0+c3Ryb2tlUGF0
aChwYXRoLCBwZW4pOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQYXR0ZXJuQ29s
b3JTcGFjZTogewotICAgICAgICBwZW4uc2V0QnJ1c2goUUJydXNoKG1fY29tbW9uLT5zdGF0ZS5z
dHJva2VQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oZ2V0Q1RNKCkpKSk7Cisg
ICAgICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgICAgIHBlbi5zZXRCcnVzaChR
QnJ1c2gobV9jb21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVy
bih0cmFuc2Zvcm0pKSk7CiAgICAgICAgIHAtPnNldFBlbihwZW4pOwogICAgICAgICBwLT5zdHJv
a2VQYXRoKHBhdGgsIHBlbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdyYWRp
ZW50Q29sb3JTcGFjZTogewotICAgICAgICBwZW4uc2V0QnJ1c2goUUJydXNoKCoobV9jb21tb24t
PnN0YXRlLnN0cm9rZUdyYWRpZW50LmdldCgpLT5wbGF0Zm9ybUdyYWRpZW50KCkpKSk7CisgICAg
ICAgIHBlbi5zZXRCcnVzaChRQnJ1c2goKihtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlR3JhZGllbnQt
PnBsYXRmb3JtR3JhZGllbnQoKSkpKTsKICAgICAgICAgcC0+c2V0UGVuKHBlbik7CiAgICAgICAg
IHAtPnN0cm9rZVBhdGgocGF0aCwgcGVuKTsKICAgICAgICAgYnJlYWs7CkBAIC01NjUsMTMgKzU2
NywxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAgICAgICAg
IGlmIChmaWxsQ29sb3IoKS5hbHBoYSgpKQogICAgICAgICAgICAgcC0+ZmlsbFJlY3QocmVjdCwg
cC0+YnJ1c2goKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGF0dGVybkNvbG9yU3BhY2U6
Ci0gICAgICAgIHAtPmZpbGxSZWN0KHJlY3QsIFFCcnVzaChtX2NvbW1vbi0+c3RhdGUuZmlsbFBh
dHRlcm4uZ2V0KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihnZXRDVE0oKSkpKTsKKyAgICBjYXNl
IFBhdHRlcm5Db2xvclNwYWNlOiB7CisgICAgICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07
CisgICAgICAgIHAtPmZpbGxSZWN0KHJlY3QsIFFCcnVzaChtX2NvbW1vbi0+c3RhdGUuZmlsbFBh
dHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybih0cmFuc2Zvcm0pKSk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgR3JhZGllbnRDb2xvclNwYWNlOgotICAgICAgICBwLT5maWxsUmVjdChyZWN0
LCBRQnJ1c2goKihtX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50LmdldCgpLT5wbGF0Zm9ybUdy
YWRpZW50KCkpKSk7CisgICAgfQorICAgIGNhc2UgR3JhZGllbnRDb2xvclNwYWNlOiB7CisgICAg
ICAgIHAtPmZpbGxSZWN0KHJlY3QsIFFCcnVzaCgqKG1fY29tbW9uLT5zdGF0ZS5maWxsR3JhZGll
bnQtPnBsYXRmb3JtR3JhZGllbnQoKSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIH0K
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgY29uc3QgQ29sb3ImIGMpCg==
</data>
<flag name="review"
          id="11098"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24353</attachid>
            <date>2008-10-14 23:51:30 -0700</date>
            <delta_ts>2008-10-15 00:12:35 -0700</delta_ts>
            <desc>LayoutTest for pattern transformations</desc>
            <filename>pattern-transform-layouttest.patch</filename>
            <type>text/plain</type>
            <size>3711</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM3NjAxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMTAtMTQgIERpcmsgU2NodWx6ZSAgPHZi
czg1QGdteC5kZT4KKworICAgICAgICBBZGRlZCB0ZXN0IHRvIGNoZWNrIGJlaGF2aW9yIG9uIHRy
YW5zZm9ybWF0aW9ucyBvZiBwYXR0ZXJucyBpbiBjYW52YXMuCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9jYW52YXMtcGF0dGVybi10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcGF0dGVybi10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tdHJhbnNmb3JtLmpzOiBBZGRlZC4K
KwogMjAwOC0xMC0xNCAgUGFtZWxhIEdyZWVuZSAgPHBhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQWRkIHRlc3QgdG8gdmVyaWZ5IHBvcHVwIHByb3BlcnRpZXMgd2hpbGUgdGhleSdyZSBvcGVu
aW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tdHJhbnNm
b3JtLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtcGF0dGVybi10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tdHJhbnNmb3JtLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorU2VyaWVzIG9mIHRlc3RzIHRvIGVuc3Vy
ZSBjb3JyZWN0IGJlaGF2aW91ciBvbiB0cmFuc2Zvcm0gb2YgYSBwYXR0ZXJuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGltZ2RhdGFbNF0gaXMgMAorUEFTUyBpbWdkYXRh
WzVdIGlzIDI1NQorUEFTUyBpbWdkYXRhWzZdIGlzIDAKK1BBU1MgaW1nZGF0YVs0XSBpcyAyNTUK
K1BBU1MgaW1nZGF0YVs1XSBpcyAwCitQQVNTIGltZ2RhdGFbNl0gaXMgMAorUEFTUyBpbWdkYXRh
WzRdIGlzIDAKK1BBU1MgaW1nZGF0YVs1XSBpcyAyNTUKK1BBU1MgaW1nZGF0YVs2XSBpcyAwCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLXRyYW5zZm9ybS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wYXR0ZXJuLXRyYW5zZm9y
bS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBh
dHRlcm4tdHJhbnNmb3JtLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9ImNhbnZhcy1wYXR0ZXJuLXRyYW5zZm9y
bS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtcGF0dGVybi10cmFuc2Zvcm0uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tdHJhbnNmb3JtLmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXBhdHRlcm4tdHJhbnNmb3JtLmpz
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACitkZXNjcmlwdGlvbigiU2VyaWVzIG9mIHRl
c3RzIHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBvbiB0cmFuc2Zvcm0gb2YgYSBwYXR0ZXJu
Iik7Cit2YXIgY2FudmFzMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworY2Fu
dmFzMi53aWR0aCA9IDEwMDsKK2NhbnZhczIuaGVpZ2h0ID0gMTAwOwordmFyIGN0eDIgPSBjYW52
YXMyLmdldENvbnRleHQoJzJkJyk7CitjdHgyLmZpbGxTdHlsZSA9ICcjMGYwJzsKK2N0eDIuZmls
bFJlY3QoMCwgMCwgNTAsIDUwKTsKK2N0eDIuZmlsbFJlY3QoNTAsIDUwLCA1MCwgNTApOworY3R4
Mi5maWxsU3R5bGUgPSAnI2YwMCc7CitjdHgyLmZpbGxSZWN0KDUwLCAwLCA1MCwgNTApOworY3R4
Mi5maWxsUmVjdCgwLCA1MCwgNTAsIDUwKTsKKwordmFyIGN0eCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpOworCitjdHguc2F2ZSgpOworY3R4LnRy
YW5zZm9ybSgyLCAwLCAwLCAyLCAwLCAwKTsKK3ZhciBwYXR0ZXJuID0gY3R4LmNyZWF0ZVBhdHRl
cm4oY2FudmFzMiwgJ3JlcGVhdCcpOworY3R4LmZpbGxTdHlsZSA9IHBhdHRlcm47CitjdHguZmls
bFJlY3QoMCwwLDEwMCwxMDApOworY3R4LnJlc3RvcmUoKTsKKworY3R4LnNhdmUoKTsKK2N0eC50
cmFuc2Zvcm0oMC41LCAwLCAwLCAwLjUsIDAsIDApOworcGF0dGVybiA9IGN0eC5jcmVhdGVQYXR0
ZXJuKGNhbnZhczIsICdyZXBlYXQnKTsKK2N0eC5maWxsU3R5bGUgPSBwYXR0ZXJuOworY3R4LmZp
bGxSZWN0KDAsMCwxMDAsMTAwKTsKK2N0eC5yZXN0b3JlKCk7CisKK3ZhciBpbWFnZURhdGEgPSBj
dHguZ2V0SW1hZ2VEYXRhKDI1LCAyNSwgNzUsIDc1KTsKK3ZhciBpbWdkYXRhID0gaW1hZ2VEYXRh
LmRhdGE7CitzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs1
XSIsICIyNTUiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKK2ltYWdlRGF0YSA9IGN0
eC5nZXRJbWFnZURhdGEoMjUsIDAsIDI1LCAyNSk7CitpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7
CitzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIyNTUiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzVdIiwg
IjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKK2ltYWdlRGF0YSA9IGN0eC5nZXRJ
bWFnZURhdGEoMCwgMCwgMjUsIDI1KTsKK2ltZ2RhdGEgPSBpbWFnZURhdGEuZGF0YTsKK3Nob3Vs
ZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzVdIiwgIjI1NSIpOwor
c2hvdWxkQmUoImltZ2RhdGFbNl0iLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsK
</data>
<flag name="review"
          id="11097"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>