XML/0000755000176000001440000000000012160604251010737 5ustar ripleyusersXML/MD50000644000176000001440000006614412160604251011262 0ustar ripleyusersb68e31a553eb7e40342cbe05ca8bd729 *Bug.R 5b532d710fd3c75fd00ef5977c9c6f62 *Bugs.html 5ed262ddd01f14b542c74378cdf20244 *Bugs/XMLStuff b6a2d1416f613554d0444dba4cd116b4 *Bugs/createXMLNode.R fc0788e66d9abcc645d921b584ea8275 *Bugs/memory.R 0a84634dfd53d03299668d5df1c2f3a9 *Bugs/wormmart.R cc46d376f15b65b2e979877f234b4f6a *Changes 5ad14e0d49727cecee4feb2b133f2d0e *Check 5dea0428fb5a0a9f76fb39256d171989 *CodeDetails 0b3b8ce6fd20c02d923efa867f9932c9 *Copyright 0de14ecb41363254e95ff9cdc4f61e4e *DESCRIPTION b19ac0c3926deb1a7880b462c17b62df *DESCRIPTION.in 124390dbf9e429c01651798b785ee964 *Docs/CreatingXML.xml 619252fca9e7941fddbefdf1a6ea3056 *Docs/GNUmakefile a58ec3397e2521adbd1e9d1cd1f3b8c4 *Docs/GeneralHandlers.xml 4bc04d7a2e8cd9b238fca3d26736e32c *Docs/GeneratingXML.nw a942cd45278a2cfb0dc30df3ed2de7d4 *Docs/InternalDOM.nw 33428856dd52dbcfb6b5310662eb052f *Docs/MathML.nw 69813c530f068dae1a672cda0fb963f2 *Docs/MathML.xml 27f24bcf35f3fafd95897d4e6542a38f *Docs/MemoryManagement.html 47aa0af24767fdbf6662c9a8af5d53e6 *Docs/MemoryManagement.pdf 85483cafebf197e39a49691ce4533a1c *Docs/ModernDoc.Rdb a65bba42d9c53b9311456e0c14eb4beb *Docs/ModernDoc.html ff57c9a95194603876e2ca7a61265d72 *Docs/ModernDoc.pdf 4572531d6ead9e49f2e44a89cb7648f4 *Docs/OOP.nw a73174ee766e8ac8669feee340d6e343 *Docs/Outline.nw 18004894d89dc4397287d6e4b5a7cc97 *Docs/Outline.xml 551c3b8f4d7d8a83e16c3659e6be970e *Docs/RS.xml 09b1031a4493a810f4d1c170ac6f4a79 *Docs/RSHelp.xml a1604d3a4bd2ed4ade69dc869aa8a84d *Docs/RSXML.nw 3afd2983b4714f2403d1060d29bcf357 *Docs/RXML.xml 0c6034300d464bed1c8722fb23dcd298 *Docs/SSource.xml e9e33c5b7c919e193781baae61483a6e *Docs/Schema.xml dd09a05141d649b0d1b15daaee509a64 *Docs/Tour.nw b17cecac04abb3c8f60030ed643607cd *Docs/Tour.xml d2c3b01ec8e962e340516f68002a9dbe *Docs/WritingXML.html 0295bf64730b3c196ceac7ae796c484b *Docs/bibliog.bib 1f137180a210d082751d8b67b5659301 *Docs/description.nw 6119e1b4c578f159c41545ab05fa4fa7 *Docs/description.xml b7e71cfad53f33db5c2e34cb2ee4ced8 *Docs/exercises.xml 8ab873335bb952a3c1a79ac3f8f579bf *Docs/htmlTable.xml adc77d70958e415f181612ef0d1d110f *Docs/job.xml 9f00ba8afac6c014257c00fabdd7c66a *Docs/literate.nw ec7181160c3ce31b3ecda157a2e815c6 *Docs/manual.nw c380d9919fc7c67f4652eb1f7c1fba6b *Docs/manual.xml 57fc947707215a7d1c882e50d22c8118 *Docs/memory.tex 5b4896f2432654f960a58e096e72b825 *Docs/navigation.xml 7b7b5b33485918bc1a9c72c720eb8124 *Docs/shortIntro.xml fe285f1429baf56b84889960780a59a2 *FAQ.html e2b80ce6913596596a7792c91eed23d5 *FIXME_NOW 8ff6faecc556d55db5bb94c01766fbb3 *GNUmakefile d1d76c29eb36b2e0270f0738b683c0d7 *GNUmakefile.admin bc3539f0233b1dd024e4b22e45000dbd *Makevars.in ea01ea9993d94339188b2e8a32ae89a0 *MemoryBug.R 7a1888517ecdb878db0a76ab4e558b3c *NAMESPACE e20cacc1ff8ab892393c28f6fba88c02 *NAMESPACE.in bc2c1239c0e233c52121e0ec1a2f5ca1 *NodeFuns 524aa3fe6e4d5c3212edb68eb5c39695 *Notes f4e1a47f495dfcbc28f1375e8f202c19 *QuestionSolutions/NeuroRetina/neuro.R aeab90218e0f7b3b31a112a5723ffca6 *QuestionSolutions/NeuroRetina/tracing.xml b29605c39dd87687b2928668b9b52c6d *R/AAA.R 05aace6af9a5a1b841570d5af955146f *R/DTD.R ff35133bf0deee2608952a104a91a913 *R/DTDClasses.R 2765bfebaefb9dd88753f0f46983980d *R/DTDRef.R 33edbef5d3a8d77bd27c0e23ab308253 *R/SAXMethods.S 6792b2334857b9597d6592c482cecb9f *R/XMLClasses.R 2f7e79941ed0b53c43367ba90cc3b7bd *R/XMLRErrorInfo.R ac3aac6bc1944fff50ee7c5522154a21 *R/applyDOM.R 57ae744d4f2876eccb4afb3d22c8b9d0 *R/assignChild.R 854a0191e33f2d787b9cef67e1f75c11 *R/bitList.R a15627f62c15dddff63f50d038855fe4 *R/catalog.R 284dc88fce56e922416b0f8a4f4c93e6 *R/compare.R d45c7ea9a3026b309a258ffa38a2bce5 *R/createNode.R 1dea4cf235af2cf05e1fb01f2b5a71d4 *R/dynSupports.R 8401b221124b4efb00ee989369522356 *R/encoding.R e6e506d5fee0a21b59c2fddcf652699e *R/error.R 1ac5e56a5e6c8f5876f8078d3340aebf *R/fixNS.R 544d510c5e0b68b2ca36d30e6ca100a7 *R/flatTree.R 5787c5a855a65a857873f3d15f48012c *R/getDependencies.R f7645fbd1522e26497a810ce7505a981 *R/getRelativeURL.R b91a444cc8d177556dd83fb4d8ebdf07 *R/hashTree.R c1001a4a49a44e593ae73d9dd2da4873 *R/htmlLinks.R 9865b82f2c355021d696f2a219997dd3 *R/htmlLists.R 31aba90b32ddddcf6c97822bd23cf283 *R/htmlParse.R 319ad3af61d22bfb1b18b17889fea6c9 *R/keyValueDB.R 87fc1f8084549a2a96aeac61d19ef396 *R/libxmlFeatures.R 694bac4ce6060c28841e70a4715f0a33 *R/namespaceHandlers.R e9d76cabc61ce2459a6373d4a36f4bab *R/namespaces.R 3307eee14dee415df09f47be0fddb428 *R/nodeAccessors.R 0a08d749c99681148ef8c635de0cd6cd *R/parseDTD.R ef3669c755c641d7d951e1e4f0913fd0 *R/parser.R bbabab5771d6ec3c7481c141a8ab8a31 *R/readHTMLTable.R 812bce63aa441db21767b140a3503c80 *R/reflection.R 5140f134f20d11bce1770c48a1755a8f *R/saveXML.R d730ab49c3bb0224d137c8087876e930 *R/schema.S da2153fc4017a2360b0f0ed2c5df3a23 *R/serialize.R 2fb09d82bbc6ab332646981cada8eee3 *R/simplifyPath.R 0c6410b1686f5da871fc704f2705ff6f *R/solrDocs.R ec6b4d13943f86381db6aa1583465fdb *R/summary.R 1eced5424f333bdd41bc79db551556d2 *R/supports.R.in fead2c9d63dc1a7acf3244431d84e1e0 *R/tangle.R 033f27eaa77cba260e69fabe55c0c2e6 *R/tangle1.R 9bc0920c6ab4c3011613d6e6a4d8030a *R/toString.S c133936ea8d652e98e92dd9efe3e5248 *R/tree.R f9b71d5e77dca8dd43401827f567ca8b *R/version.R 4f4954b191d7593ac720220b9ec0117d *R/xincludes.R 05cf14141f68e19441882cf078c8fecb *R/xmlErrorEnums.R 65d281b1b17dcac2c51b57a044337d09 *R/xmlEventHandler.R 3921b1486120fafd678bbe3617a9105c *R/xmlEventParse.R e7aa7373fed505f7521b09824262b821 *R/xmlHandler.R 71564d6d190daf2f147582abd5fd3238 *R/xmlIncludes.R 5e7abd85edac4081a9f0012b7ceff654 *R/xmlInternalSource.R 9d5a05b12bcffd8afe0b4bb154ecc7c2 *R/xmlMemoryMgmt.R 708d321cb77d4f737a4434b980c64f1a *R/xmlNodes.R 468ff02fdbebfe9f72ee1d7b45cecfd0 *R/xmlOutputBuffer.R 1111ef217cf4adc2859e1bb378a46ed8 *R/xmlOutputDOM.R 58e1c8f1d96c1b01ac399ce0bee9b42e *R/xmlRoot.R d79e29581564fcb906eb9900437a8ee2 *R/xmlString.R 23b9e316384470fa81a08450c4d013b3 *R/xmlToDataFrame.R 8b33b9583824359c60b2f7f54f753d03 *R/xmlTree.R d4639245d89e0915d0c836f916121f5d *R/xmlTreeParse.R 78ecdc226e97ec3d26cf0e5bd29d26aa *R/zzz.R 081453acd1b3e6642a8ba518d2d14251 *README b7e40dfcb5012e0e244fee59e8e83750 *README.windows c98b6227af28f4baefaa6a0dce5f7147 *Rsamples/addChildren.R 811723d53e8d624c2d21f7c3c8c2c189 *Rsamples/attrs.R 574e3247c0708d0a58949470a7d961d9 *Rsamples/check.R aeaa0383a305b491e862690894bbb1ae *Rsamples/encoding.R 7c034865fccac29f155cd9b28ce8e752 *Rsamples/findXInclude.R a8aaee7227a55649a4a54327c94b4c12 *Rsamples/free.R 6e61c876f55e306dab9a98e81eb4e92c *Rsamples/gc.R aa87d8a33d579131eb1c92718507dd6a *Rsamples/gc1.R f0c62c8b8563e12f44ada18c86f08dcd *Rsamples/gc2.R 122866e9be406601bd2139e2899b7d9f *Rsamples/hhtmlFree.R 5f4342cf2117cd3cb2c469c7ff6abb05 *Rsamples/humus.R 43ab12d3b40a39914f4750a9fd64c53d *Rsamples/ns.R 55300e173291ce85e4aaf304273dfd38 *Rsamples/parent.R d1074c5b20458adf60a689a1745a57c8 *Rsamples/stop.R f4066db543d1708d303ef9ab582f56aa *Rsamples/test.R 9666269aad64ec64db3a950a733c78e0 *Rsamples/testGC.R 34f29d8d5760f23d8fb3a47af422deaf *Rsamples/testNew.R eb6d6df3bdc6f20ed969f93816246c62 *Rsamples/toList.R 9a945d3dd9908f434d614389f2e80280 *Rsamples/tryBug.R 6c288c0193394fe4ca181a9693ae1b96 *Rsamples/tt.R bb04a5ab5e7204b65f4e8bb67f86ea54 *Rsamples/userClasses.R 6164fe3da1b593f00447784dc0a4cbb4 *TAGS 907bd46ec7db6cdb1162d198672b4620 *Todo-orig.html a16537d83d12db9ce7994dc0d78776da *Todo.xml 4380d34b47dd02f64d2ac1c1bf69ccaa *VersionInfo 223c515f5915d680971bd1d2a1397e78 *a.out.dSYM/Contents/Info.plist d02e596c1358a011337e42de93346ab2 *a.out.dSYM/Contents/Resources/DWARF/a.out 27c3e12c4c05d112fd60cd9de30346c1 *addFinalizer 65d887be8efb97aa3abb8bc6ffc51ac1 *checkLinks/big_checkLinks.R ba06630f83ed709d4f5553e6ab2612f4 *checkLinks/checkLinks.R e580f0d358e8b11fc9e29e66e083376f *checkLinks/other_checkLinks.R b0777f8f8a90181ea55c9efd274ba7d3 *cleanup 7f9dd6ec94e41c7c6c2a3bb49ed440c8 *configure 72929643c8cf6f46369bd80252eaf773 *configure.in f99bbde173f150b8f35f06097f6d9662 *configure.win 6cbbef73ce40214a62cfadf62d1caf6d *dotCalls 1fc5d029b746693125eda5e6154585be *expat/GNUmakefile 6a50818ca42ac661e37a931fc887625c *expat/GNUmakefile.lib 9b28d39119a9b629045170f5babd100b *expat/xmlparse/GNUmakefile 77000f72069100badc8af5a1c69f2bc1 *expat/xmltok/GNUmakefile 1c3392ae70424a780cec34a5f8a861b9 *index.html 274410bd2827c06a8944ea39b2a869ae *index.html.in 44d42d43addc439811b65d03ac7b4619 *inst/exampleData/9003-en.html cf0768ed8a4e59a342242b6c1d33c035 *inst/exampleData/9003.html b80e1ae6db7489cf7f5e6b48af480546 *inst/exampleData/GNUmakefile a1e81bd1bc29f244d35afa4b6efed92e *inst/exampleData/README 2d6e8210d1eafecdea788df2bd2e0384 *inst/exampleData/Rref.xml d37680440cb95ae187a12d15f51cb10e *inst/exampleData/Rsource.xml dbfedc92e65ebdbbb2ed7d7a468fb894 *inst/exampleData/SOAPNamespaces.xml 79ce6fe72b75c6968eed74a920c04bb9 *inst/exampleData/StatModel.dtd efedd98237d8a6c2f279becd9b50a0e9 *inst/exampleData/TestInvalid.xml 4ee6988da664e5930ee670c6930fe337 *inst/exampleData/allNodeTypes.xml 7f50ccdaf78c88a6b2b0b5bfcddb1fea *inst/exampleData/author.xml 4a8057b4fb9de7d5b82228bcd2a62e68 *inst/exampleData/author.xsd 610921f9e4798e229b7143e403147219 *inst/exampleData/author1.xml 1120f2d2733484f09680f85c33378602 *inst/exampleData/author2.xml 2fde199a80305fc2ae20824a69b87e66 *inst/exampleData/author2.xsd bb728a400627b16058a4a14e64fd180b *inst/exampleData/basic.xml 2bf5de346f3b02da2527ae0f7706bc49 *inst/exampleData/book.xml ac36cd5afa45e76057c1fec502e857e0 *inst/exampleData/boxplot.svg 0b8cd77a8e89cccef6288c25bf1c2655 *inst/exampleData/branch.xml 5ad80d4a73e6a103618b143ad5a9eafb *inst/exampleData/catalog.xml ebf7cbd275268fee6d99255d40b92815 *inst/exampleData/cdata.xml c4aea8311842ec63cba5bbe11246b9ee *inst/exampleData/charts.svg d948a87b0946fe2158ecdd671afc2c55 *inst/exampleData/cleanNamespace.xml 6364ba6fe7ca258455db30aa3aaab459 *inst/exampleData/content.html 44dc03ad2980890cfc2a7f14d4134897 *inst/exampleData/dataframe.xml 8c0e739d76e85bc31f5fff42e3b31fb3 *inst/exampleData/dot.xml 47fdf1db2bc09a85891cb0ca9b1b5528 *inst/exampleData/dtd.zip 4af9e6abc00fe42e0b719b0c92fcd855 *inst/exampleData/entity.xml c710cbd83e3fa6f387a85a53bac1f121 *inst/exampleData/entity1.xml 6ad56e424028ad33c81a8c061676c9a9 *inst/exampleData/entity2.xml 3287218d12d1191c46e01ccb8bab42ab *inst/exampleData/entity3.html 6ead5e2aa1d5b4d042377296215667b8 *inst/exampleData/entity4.xml de5ee7ed01d3ddd6b11c933f01fcee17 *inst/exampleData/entityValue 06cfddecffe04977b837494622ac1f44 *inst/exampleData/eurofxref-hist.xml.gz cd2944d52234fe6890aea6b1f78e40b1 *inst/exampleData/event.xml e8eeb195309a9204d1ade99130943e81 *inst/exampleData/foo.dtd 83e2cde65b0837ddc64b9c570e9ecf05 *inst/exampleData/functionTemplate.xml 8ceea19ebb7722fece59b070c0fefaab *inst/exampleData/generalInfo.xml 68036459f5b8f80421c0de4a9ece9e2a *inst/exampleData/gnumeric.xml b58a3cce66f3aba2abc4a621fe872aea *inst/exampleData/graph.gxl 3b8924fc68699274888160bb50c89096 *inst/exampleData/iTunes.plist beb24da8ab9fa7ec5e47559f9320f1cc *inst/exampleData/include.xml aadeec466fab1bc2067e9b8889fc785d *inst/exampleData/job.xml f249ead2193d3976bff318096ed656b8 *inst/exampleData/kiva_lender.xml 26ed8c871e37dbeb7169258b4d597a28 *inst/exampleData/largeText.xml 2dc1e4b0db1ad4449c3e43413c8e828a *inst/exampleData/lists.html b1aa2e1d35e3071c2ec9caa85194da7b *inst/exampleData/literate.dtd f19eea9e1a763e11875950294e12f21f *inst/exampleData/literate.xml d8f5b8a714757af5df3b3c4a0502ccb3 *inst/exampleData/literate.xsl 08361bfe9a264b0c5dc22a04420072cb *inst/exampleData/literateFunction.xml 46a1fc89790b07233f29d51560f4dccf *inst/exampleData/longitudinalData.xml 2925b45e6f9babc05365f96f748eca7b *inst/exampleData/malformed.xml de5f042eb58448551ee1722ae736dc61 *inst/exampleData/mathml.dtd 2cca5ea86193e8e2ba52c020716cbcb5 *inst/exampleData/mathml.xml ea5e8caa00546abf0638ad1b0e187476 *inst/exampleData/mathmlFuncCall.xml 9600ca143954e485e1316b823a991e42 *inst/exampleData/mathmlInt.xml 75d5b4c2fcb667d551e0385eaa6bba74 *inst/exampleData/mathmlMatrix.xml d9981b76cdf98ed2c6969b00f3fcac3a *inst/exampleData/mathmlQuadratic.xml 08b828cd2b6d0695b1442729af4794f5 *inst/exampleData/mathmlRoot.xml 0e3b0f32d9ee397056425db4379418db *inst/exampleData/mathmlScript.xml 619b193c39c7b0af1bf2453d22d2c6aa *inst/exampleData/mathmlSet.xml 36dbc35da2f1dcda612a0c83eb2eac4c *inst/exampleData/mathmlSimple.xml 432ab4c8ad737186dc47dd6eef00289d *inst/exampleData/mathmlSphere.xml db81cd572c5679982ccee3e65beca0db *inst/exampleData/mathmlSums.xml 24002a1ef0ab95a7dd73270e95ff404a *inst/exampleData/matrixMult.xml 3f8c8d90f7632339e3dc6321a471a027 *inst/exampleData/mtcars.xml 3c564854baf7380ebc86b55ff1951b91 *inst/exampleData/namespaceHandlers.xml db0f356dbde708334f699a9ff0f13c7f *inst/exampleData/namespaces.xml 9ad8af7e80c6e1a7ec7353661a17a909 *inst/exampleData/namespaces1.xml ab1cc6570a398a549100a3e21579be44 *inst/exampleData/namespaces2.xml a24f30320d88a7806a86183c2f8b5244 *inst/exampleData/nodes.xml 0e91b5beb9ff7cc56e303fac65c93842 *inst/exampleData/nodes1.xml f1426b65547d2c366031079e0cccbd1c *inst/exampleData/nodes2.xml afe9ec03e1abb8ff5c5b09ae45fa9335 *inst/exampleData/nodes3.xml af7b231bf764cb1bb31e71d2ed5c9d3b *inst/exampleData/nsAttrs.xml e669db449eb9a4a6cb2cfb1d2842f559 *inst/exampleData/plist.xml 5e531be512a447d9b886f36c5bd8c5de *inst/exampleData/raw.xml 4771c73a38180847a15b7c622fecf520 *inst/exampleData/redundantNS.xml 21b05839f6a1bb2de0d8536a213528d2 *inst/exampleData/reparent.xml 88d6fd716774a6c44f212980b8bf0c7d *inst/exampleData/rhelp.xsl 9bd7e5d34b9ddd237bbc7745ea0199e2 *inst/exampleData/rxinclude.xml 183bf612ca6e5c890229931f453fdd8f *inst/exampleData/same.xml 0742028b822457bf861587c39b1cc1ad *inst/exampleData/setInterval.xml b249f35607ad13d2ef1bab2393d0004b *inst/exampleData/simple.plist fc3d1a8275735fd4427e939165c7e652 *inst/exampleData/simple.xml e3e5697d89ad0a2bd0b0c41ce2c1266e *inst/exampleData/size.xml 590f58281834abdd7c526e9b215750a4 *inst/exampleData/size1.xml d55386fde14974c6baa010887e612430 *inst/exampleData/size2.xml d67895692910308f94011b9f5fb0152d *inst/exampleData/size3.xml 906f785af884bfd1aec11e5acda4c9a3 *inst/exampleData/solr.xml 752af23b592f34dcea376d6a974db2bd *inst/exampleData/something.xml 0403c6eb52393ae26dcae0469e2633ec *inst/exampleData/svg.xml c8641303870984426f793cbb6e429e7d *inst/exampleData/symslines.svg 48f49fc007882d297dfa815de9e94abc *inst/exampleData/tagnames.xml a844fa3863273fc62ff25b7e5e8e0945 *inst/exampleData/test.xml af855018d145cf15c003a16d90e0916c *inst/exampleData/test1.xml 597371c880c3f567bda055a9e55fa17c *inst/exampleData/tides.xml 5f134aa5c6fcdcf8d2f26e5b60ac9120 *inst/exampleData/utf.xml 8da18b9854857f77beab31ceeb065c1b *inst/exampleData/vars.xml 7e84b65ee6af58a74a2762687a15ff12 *inst/exampleData/writeRS.S e981c9d4a22d52be70c97bcfaf78d447 *inst/exampleData/writeRS.xml b5e2c9cb6f41ddae5481f168761cdecb *inst/exampleData/xinclude/a.xml a2dbd9063592a474076a4fa13f33b966 *inst/exampleData/xinclude/b.xml 7e9d4b62b63326ad2b043393c4fc0b4b *inst/exampleData/xinclude/c.xml ee12821458852845d84ba37f3f8012d7 *inst/exampleData/xinclude/d.xml 5ecd9593d72f87c8648e2ab7be5814cc *inst/exampleData/xinclude/e.xml 30b3e0c2056e41e7ea8bc2e14b5b361e *inst/exampleData/xinclude/simple.xml 3710d0c649035714b6e89873326951b7 *inst/exampleData/xinclude/top.xml 5af3d5cfaa1cae8cd3edd4f541c84b4e *inst/exampleData/xpathTest.xml 2bd5f311c3cf42bfdcc17a94f41f4b21 *inst/exampleData/xysize.svg f3cde0f326bae48239155a8f003086f4 *inst/exampleData/xyz.svg.gz 4cc0a05705b8d796cd18d86e23976e5b *inst/examples/CIS.R 0a0425fc2df2e3438c9c226ecda22eb4 *inst/examples/DiGIR.R e79bf5df853d9eaf5256b0edadb8128e *inst/examples/GNUmakefile 7ae894554c335ef4241481b3a9d58d48 *inst/examples/HTMLText.R 398a829f0d66ce743eab9505cb6490e5 *inst/examples/README 9e8c2b2daa4c88bfa4d2a07de014339c *inst/examples/Rhelp.xml 1ab905aac19cb951a9c3ff5a184d50fc *inst/examples/RhelpArchive.xml a17124194f391db30216afa5e91d0ca0 *inst/examples/RhelpInfo.xml 74e02084be0d639663d0955fee5e664f *inst/examples/SAXEntity.R ca5f6777ece68d2225789bf573ab7aa6 *inst/examples/SSource.dtd 931407aa812b6b22dd8734e3b861a541 *inst/examples/author.R e0110777dd3603557e1156f003a70175 *inst/examples/bondYields.R 6bb3e28048f72f89c064e8e9a9d21f8b *inst/examples/bondsTables.R 226e591d2272ae2392ee818f6639f985 *inst/examples/catalog.R 7b96bde0f308701b272590496b1a4b4c *inst/examples/connections.R 1d881dcf97c18a05a545d8caf9cbd589 *inst/examples/connections1.R 193722245b150f003aa6c0ed67e49acc *inst/examples/createTree.R 6b11fbe49509cd09c20b433d8b1b9fca *inst/examples/createTree1.R fea7a47b2f17464a36e897bb4dc148b7 *inst/examples/dataFrameEvent.R dc1d21cbc5b7051e4120c2a49849dc0c *inst/examples/docbook.R 8961e4e9d970588050e80de8ccfd54a6 *inst/examples/ecb.R aa2a998a56d5b948ef52c9f7055b2d19 *inst/examples/enhancedDataFrame.R 6a8a69608880f8a1bc7382e4f29e9e8e *inst/examples/event.R 6225a3cfd7f010c79cb46f016c4d39ad *inst/examples/event.S bbc46baf6ab9a671b8a32f9c93f44c14 *inst/examples/eventHandlers.R 53a90c1a32cd469dbf664a5ef69ecc1c *inst/examples/faq.R da0e4b523962d2b8fee68d4b404d2462 *inst/examples/filterDataFrameEvent.R 8690f82077e3a917054ab3b33c245174 *inst/examples/foo.html 49ecb1ec6023519bb310a2bdd1ff6bd1 *inst/examples/formals.xsl 553ea13eaaf4ec9e1708c7d5027af3df *inst/examples/functionIndex.Sxml dddaf71eb6703b73c24426f388c24218 *inst/examples/genericHandlers.R 27f8cdf1d2df4efdd8706065331ac66b *inst/examples/generic_file.xml 1429f94fcc2e49b53a99b9fe93b4fddb *inst/examples/getElements.S 485c6d8a2b12038c1ea8b9e7a98521d4 *inst/examples/gettingStarted.html 1cc8cb28e54bddab52bc403b0b4fd069 *inst/examples/gettingStarted.xml ebe5014777483064b65331f7d5704586 *inst/examples/gnumericHandler.R 0e286bc72b43f41dff67db9f4cb09fb8 *inst/examples/hashTree.R e729098f8a9a2045e9e138d56eb9b94d *inst/examples/iTunes.plist e1d4464f2dc9db55104be454f9f0ee93 *inst/examples/index.html 52a2f734918edcd65e9ff3e6d5d7aea2 *inst/examples/internalNodes.S cb2a1471077fa5d25a8d0b29930359bc *inst/examples/internalXInclude.xml 22dece19680308448b99e26a550450e2 *inst/examples/itunes.R 0d5364c12d5e13dfbcf42963719dae99 *inst/examples/itunes.xml 5a44f0bbe6a34309872a5c09b17aa269 *inst/examples/itunes.xsl b973f589468083bf1c9031afd90ed3bd *inst/examples/itunesSax.R 5b9ea2b9ef39d14f3e5eba4e382c5d7c *inst/examples/itunesSax1.R c365f368746b5a38ad7c81ac535e67b0 *inst/examples/itunesSax2.R 06b6ff5309b53e0d1f482a749fb9d27e *inst/examples/mathml.R f506a024b31c84e2deddd594240bc142 *inst/examples/mathmlPlot.R 4be116184764542572c1e4d5a0004bf9 *inst/examples/metlin.R 80a2167ebaf00ee4946e11e5b3fa0c7c *inst/examples/mexico.R 41d008fff79c428b8b2139d80af8710d *inst/examples/mexico.xml a8df416e57318da4eea96ab5715ab44b *inst/examples/mi1.R f2cc473a1e09c120f941e796a4e653b2 *inst/examples/modified_itunes_sax.R bc3ab0b0426862cc3d16b2308596e084 *inst/examples/namespaces.S 91f1b67dc3de04dea2fcc2f6920541f5 *inst/examples/namespaces1.S 2ed097b5f78f536ae1bda583edaf2133 *inst/examples/newNodes.R dddf168fd7c5080be74a1576ef5466dd *inst/examples/oop.S ad089f3655d2f3acee30f7067b4d0b09 *inst/examples/pi.xml 785049ea7cfdae7b5e5e8e6b009982e9 *inst/examples/pmml.R ce866bb1712a4cd5f3d1698c20ba4895 *inst/examples/prompt.xml 5441838e027e655b42651f4d382fdd15 *inst/examples/promptXML.R b14b2b7e24e681eee419ced37bc43948 *inst/examples/promptXML.Sxml 631b33237934928479582f3a3d7ecf82 *inst/examples/rcode.xml d41d8cd98f00b204e9800998ecf8427e *inst/examples/rcode.xsl 25a7c74cf466eb3daf9dbf493b718e89 *inst/examples/redirection.R 0d41bf0aadbce1279d255f80587d185a *inst/examples/reorder.xml bb78fe90a650625ae8dbd40ecf3636e2 *inst/examples/sbml.xml acadb3e6695e45ee3eb7bd786d494383 *inst/examples/sbmlSAX.S 9d49e19ba166fb9d9773c431938cbf06 *inst/examples/schema.xsd 04b016367c23b30873d1e5eca554bb6d *inst/examples/schemaEg.xml 755449de058d8f0300592fa140bbc99e *inst/examples/schemas.xml 603ead1f9155d91d3cdb0a004db097ec *inst/examples/svg.R c48636aa7b630785d5cc395fb6a0fa5a *inst/examples/tags.Sxml 1b2489004d118db8920a7a3f208c33b7 *inst/examples/trademe_cars.R 94ab383e5c6f30fdcf3f3b13ceef6eb1 *inst/examples/valueFilterDataFrameEvent.R 7df5d486adb60fcde1d84fbd94ae1801 *inst/examples/wordML.R a215bd1733d94718ed88a9632677eda0 *inst/examples/writeExamples.S 9053aae1a374bd10eee4e701e9c87bdb *inst/examples/xml2tex.Sxml b976c0a84da79df21f1d90e186402baa *inst/examples/xmlSource.R c3d743cd11db931a408b47b5da9fae47 *inst/examples/xmlTags.xml 5f42960279557bdc33de85c7799f6a0f *inst/examples/xmlTree.R fdd705555e0c8267f6ef8bb0289390e9 *inst/examples/xpath.R 777186450f8e22d4f650499a8a150c3f *inst/examples/xpath.xml 95fbf5ae2848eefeb55e481139c19292 *inst/examples/yeast_small-01.xml ab91a653b40434ab222b735b06055f71 *inst/scripts/RSXML.bsh.in 26ce9cb8b235d0dbfa1d4758cc442b7d *inst/scripts/RSXML.csh.in 14c181d3767c0edf202de14ed264eaef *libxml/GNUmakefile 224ca36b7ec41e787a4e29e50d70d929 *libxml/PATCH.attribute 2c07ec66eb4749abc1caf1fe868d4dcd *libxml2.9.R e537dd86e5dc47848bb88b92945f0e14 *man/AssignXMLNode.Rd 5b6a0c67d68e29d730dc1bfc3ed2b677 *man/Doctype-class.Rd 9922a7810ab0ea73f90340a0022a3ea6 *man/Doctype.Rd 5f9cb0f9033e664a9b1dade77b5d15b8 *man/SAXMethods.Rd e28b4dd388ea415ed79e8212dd56dcb9 *man/SAXState-class.Rd d40daeb56cf6466e0ea5c3f789cf87fc *man/XMLAttributes-class.Rd 115aed144ea989230a5ba211355a385f *man/XMLCodeFile-class.Rd 22af4ed53c7defcbc913f7ba8b10092e *man/XMLInternalDocument.Rd 1be08d9fda7290a104c0e1bfaa2337da *man/XMLNode-class.Rd 0a36ed2f8a60372206a9cab966999c57 *man/addChildren.Rd 9e647c2332e050c1174f0cb970bff986 *man/addNode.Rd 559d78cddaaf4b1f8b9587b4765931eb *man/addSibling.Rd ea4832282f873d188ba4d90d167bfbd3 *man/append.XMLNode.Rd dafb2ea0be2e94bf821e03997584dfab *man/asXMLNode.Rd 9c1d9f74bdd6e2baea848d43ef8e0794 *man/asXMLTreeNode.Rd 6e74b1be64b38a56b7d10ee55850f6c4 *man/catalogResolve.Rd 4fdba30506f55c85dab3bab9b9ffd131 *man/catalogs.Rd 635ee70f7d0119f27af30f48e2b05522 *man/coerce.Rd 22684c65804739d57060e84fa8bf4b29 *man/compareXMLDocs.Rd 79fd28a580531816d0028d74ffc5ef57 *man/docName.Rd 954b637a08a5640c905372fb0656d82d *man/dtdElement.Rd 6fda5e230b3505b8b9874ae5e0a8ff4d *man/dtdElementValidEntry.Rd ee5142db9b3d08e3e2009c1f927930bb *man/dtdIsAttribute.Rd 66eb738787f7ecc45856b5f1422336da *man/dtdValidElement.Rd 66b32dc1889221b239b8c3c1dfabd839 *man/ensureNamespace.Rd d3e3902ea4fe25d3857aa794dec075b0 *man/findXInclude.Rd 0ee0f2813c0fc4fc732f8731445f506b *man/free.Rd ec70e1737f9c9e15c57fe0a927d47d1a *man/genericSAXHandlers.Rd 3d95b1004bd3e03b0d136bf4b3be8eae *man/getChildrenStrings.Rd d1d52af8afbc713a165d0aa318259d49 *man/getEncoding.Rd ef2421f75836091e8cc8aa83cf60961e *man/getHTMLLinks.Rd f59f6290846bb3c59920def0f2e46cfd *man/getLineNumber.Rd f8d7aafa959fa580d2061485a425d9e5 *man/getNodeSet.Rd b7365886b9d1d40e336e1dad3ad83a7d *man/getRelativeURL.Rd 9d4e564bd124d3b65c8268449e0071de *man/getXIncludes.Rd fbd709ca9efd3f6b21ef44ad02587335 *man/getXMLErrors.Rd cfa4e11592ed00f9cb8247d0e59d3f95 *man/isXMLString.Rd f0cc35a17b95235955088c9baa643d65 *man/length.XMLNode.Rd eb79f351a9cf2e5f36819a159e1a1c2d *man/libxmlVersion.Rd f9c4eb490215a6507f6d63a504fc553c *man/makeClassTemplate.Rd d2a48814229a006ade6d378762083c09 *man/names.XMLNode.Rd f3a360b48e00da3244a91347c92987bd *man/newXMLDoc.Rd 43e3c93ff036a105e40dd1bf228d7236 *man/newXMLNamespace.Rd b7e3ce6a6df365f62d34bb3cf2b8a39d *man/parseDTD.Rd 045bcfc6c3574f2a2b9509b0426c3542 *man/parseURI.Rd 25e24b0b3ab5f7532a5defe814a7a258 *man/parseXMLAndAdd.Rd 37a7cae244e55e2359b01b7e682309e2 *man/print.Rd d36e4628f65dff3c8d5fe347b126676d *man/processXInclude.Rd 291afd5ebced13bc96436e747eefb715 *man/readHTMLList.Rd c16de3eb185daeac8e7e255adadcd312 *man/readHTMLTable.Rd 8f81d16226120619817fa1a172679a08 *man/readKeyValueDB.Rd 8d15b91eaa346f72664bbb62ab5455fc *man/readSolrDoc.Rd 72281e5a24125d35b55afc9f70555a4a *man/removeXMLNamespaces.Rd e8fce62627feb1d0ce7dc01da28f5bd7 *man/saveXML.Rd 24b46bf8f25897bacbcb7915b3d54687 *man/schema-class.Rd d56bfed177c3648de5284ef766500b3a *man/setXMLNamespace.Rd f66abe3284f3714ebf12014569da4516 *man/supportsExpat.Rd c85b172d3a0894a6255c34323d777c04 *man/toHTML.Rd ae82c0f7e8f1e8173e1a870731fd7b9b *man/toString.Rd dabefe2aa1e5b2107474eddcaa27f8e6 *man/xmlApply.Rd 5502543c6ae70848d3d1779b263032f1 *man/xmlAttributeType.Rd 5239e9c07c1ff08d1a01b70c96cb55d3 *man/xmlAttrs.Rd d0e7059d3670a3e77cf8fa5687552e49 *man/xmlChildren.Rd 0cdf4d25b1158c4162316028f244586e *man/xmlCleanNamespaces.Rd 77d37186ada1e6b2282c52e0c8fb64c5 *man/xmlClone.Rd d215834194a6372e1f046fa13c18e5cf *man/xmlContainsEntity.Rd 68554c4411042df8afed9bb03d6f7ba3 *man/xmlDOMApply.Rd 368fa01a925a08db5b309623c46b99ed *man/xmlElementSummary.Rd d502b5a4e5048e9a1ef295f09b6c2939 *man/xmlElementsByTagName.Rd b0c417f163b6d002221ed8d9ba8e2ac8 *man/xmlEventHandler.Rd bfa878718db03f2e215c8102eec105d4 *man/xmlEventParse.Rd a0fb94cc85e99c21933b1f144d1fea52 *man/xmlFlatListTree.Rd 1cf529a42485a25f7da78d7cc3f866aa *man/xmlGetAttr.Rd e31270329e08aa2d6e64a68e5dc9bf7f *man/xmlHandler.Rd 7bcdc7d0b41a43fb4858a1537e67b0c4 *man/xmlName.Rd f0ff8e8a0a22ac4d711f0d21ff322438 *man/xmlNamespace.Rd f68f5297752190e5e4c7829dff52427c *man/xmlNamespaceDefinitions.Rd d8ec3bcba2de9b6a45b873cd968708ca *man/xmlNode.Rd 8e234971d3db748fe7a389ea2c972991 *man/xmlOutput.Rd d7645b9c7d5d4a016ca81390d3b0b83c *man/xmlParent.Rd c60bfbb276300d80461450c96106cc3d *man/xmlParseDoc.Rd be5f3c2c9f4878e8b4df61c6df89a38c *man/xmlParserContextFunction.Rd 72576887c46e30a01bb416bbf51f2d59 *man/xmlRoot.Rd 927722ec945cb55d1abb0e256f1b992e *man/xmlSchemaValidate.Rd 37b7957855c872a54bb1c60abef9e0b3 *man/xmlSearchNs.Rd ca8a61d0e2d628408ff285efc93a68b1 *man/xmlSerializeHook.Rd 1ab03609175fb7d7653473d0881d66bf *man/xmlSize.Rd 4b2da64130eb937287a0a2d1e35fe069 *man/xmlSource.Rd 52b079e639f02b3e4780beed343de405 *man/xmlStopParser.Rd 2e7b37b9b6f1531eee912f6e8d865cf0 *man/xmlStructuredStop.Rd 52c33f78ee2dcfd2bb712aaa04a74865 *man/xmlSubset.Rd cf3cf99a84d8ec4908732863236efd58 *man/xmlToDataFrame.Rd 29646a080808de5840f7bcb8994400c9 *man/xmlToList.Rd 8370534bce4f87be68e03e16fa8e2e37 *man/xmlToS4.Rd e00259aaa0bbaa4f3a9082d3dc3fca48 *man/xmlTree.Rd 2bbb1931ac68b3c6b0edeba044917605 *man/xmlTreeParse.Rd 3ed939a8580983c246743cfdba627431 *man/xmlValue.Rd bda49c28041b1df112a3a0ae3d9100d3 *scrapingData.xml 46f4d0aad6068fd78fa74e92be25a0a7 *src/DocParse.c 5244014df10ef5a255f890ff7df5424f *src/DocParse.h ec52dd7171f1cbbe4ccfafc6b9d72444 *src/EventParse.c 98a4d11fd70007448bf2c8f0e5278434 *src/EventParse.h 9faae64cf580ca671c10472749066776 *src/ExpatParse.c 21327b0c7a0406a35e0aa87168d02fd9 *src/ExpatParse.h a80157991fc463bcc9b25a0302dbffd3 *src/HTMLParse.c f8e657440de4c71940b40c6952e9d9d3 *src/Makevars.in 71c00bad0068967ed4d3d9154b504d5f *src/Makevars.win 74b06e8da63977516eb869c3ac57a8e1 *src/NodeGC.c be8ca75c80e25c82190a6e69151edad9 *src/NodeGC.h 7161feb34f46d2d229953c0d54c88b69 *src/RSCommon.h 0c182560a2d267e1e3906dbb3b555c59 *src/RSDTD.c d51866b3b7de881b366d5f57819156f6 *src/RSDTD.h c8ef975634bb5874143107dfe9e1546a *src/RS_XML.h 8a3acc23a53bbf72fd352d9bb6c7fa7c *src/RUtils.c 03074fb2977f7e985ce25c447336e302 *src/Rcatalog.c 8bfb598c2e2ebe0a41719443214e9ed6 *src/SPlus/SUtils.c 23b34871f8798e51a3d79cf88064770b *src/SPlus/SUtils.h 96a737dcf067e9178ba08204a1cde88e *src/Utils.c b5f7e2258767a6c4eae71824d75e68dc *src/Utils.h 2fbada91c2761c7fbcb4c0c5dcb02ceb *src/XMLEventParse.c fb5b4696df49b796496830adbecbad84 *src/XMLHashTree.c 5e02e18c0d56409ed90bc7691eeb8466 *src/XMLTree.c 58b1330b0358bda772a3e783f6fdd245 *src/fixNS.c 2a1e9d2603aa6eba81a88659ece71cad *src/libxmlFeatures.c 55e23091cd2f7526d67e2676021e9dbc *src/schema.c ab7c254f538351689fc3ccc31f02cf71 *src/xmlsecurity.c 4eafb54b10105189032ad12fbd0b9b57 *src/xpath.c 44d26f61c698af8cf0c227e51a63621d *symbols.rds 5368924763bb56b2e73523bcdcbc4251 *testRemoveFinalizers.R f37499c1cbb30d205bf1f316cea3e9fe *testRemoveFinalizers.c 715cd99344f18ec47e2733ac2a799519 *xpathPointer.xml XML/xpathPointer.xml0000644000176000001440000000033611741563531014161 0ustar ripleyusersfl = system.file("exampleData", "mtcars.xml", package="XML") xml <- xmlTreeParse(fl, useInternal=TRUE) node = xpathApply(xml, "/*/*")[[1]] x = xpathApply(node, "/*/*")[[1]] sapply(xpathApply(node, "//*[@id]"), xmlName) XML/testRemoveFinalizers.c0000644000176000001440000000013211741563530015273 0ustar ripleyusers#include void foo() { void *p = NULL; R_RemoveExtPtrWeakRef_direct(p); } XML/testRemoveFinalizers.R0000644000176000001440000000020212034613255015244 0ustar ripleyusersx = try(dyn.load(sprintf("testRemoveFinalizers%s", .Platform$dynlib.ext))) q(status = if(inherits(x, "try-error")) 1L else 0L) XML/symbols.rds0000644000176000001440000000031512030202601013125 0ustar ripleyusersb```b` 0`d 000piT׊Դ̢"|(K̀rCa#0@g0X2XNNR`_ )*KM-X- 0vIeZS (άJhFfXIjq $2sZA/?tXML/src/0000755000176000001440000000000012160210576011531 5ustar ripleyusersXML/src/xpath.c0000644000176000001440000002263112160603560013024 0ustar ripleyusers#include "RS_XML.h" #include #include "Utils.h" static SEXP convertNodeSetToR(xmlNodeSetPtr obj, SEXP fun, int encoding, SEXP manageMemory) { SEXP ans, expr = NULL, arg = NULL, ref; int i; if(!obj) return(NULL_USER_OBJECT); PROTECT(ans = NEW_LIST(obj->nodeNr)); if(GET_LENGTH(fun) && (TYPEOF(fun) == CLOSXP || TYPEOF(fun) == BUILTINSXP)) { PROTECT(expr = allocVector(LANGSXP, 2)); SETCAR(expr, fun); arg = CDR(expr); } else if(TYPEOF(fun) == LANGSXP) { expr = fun; arg = CDR(expr); } for(i = 0; i < obj->nodeNr; i++) { xmlNodePtr el; el = obj->nodeTab[i]; if(el->type == XML_ATTRIBUTE_NODE) { #if 0 PROTECT(ref = mkString((el->children && el->children->content) ? XMLCHAR_TO_CHAR(el->children->content) : "")); SET_NAMES(ref, mkString(el->name)); #else PROTECT(ref = ScalarString(mkCharCE((el->children && el->children->content) ? XMLCHAR_TO_CHAR(el->children->content) : "", encoding))); SET_NAMES(ref, ScalarString(mkCharCE(el->name, encoding))); #endif SET_CLASS(ref, mkString("XMLAttributeValue")); UNPROTECT(1); } else if(el->type == XML_NAMESPACE_DECL) ref = R_createXMLNsRef((xmlNsPtr) el); else ref = R_createXMLNodeRef(el, manageMemory); if(expr) { PROTECT(ref); SETCAR(arg, ref); PROTECT(ref = Rf_eval(expr, R_GlobalEnv)); /*XXX do we want to catch errors here? Maybe to release the namespaces. */ SET_VECTOR_ELT(ans, i, ref); UNPROTECT(2); } else SET_VECTOR_ELT(ans, i, ref); } if(expr) { if(TYPEOF(fun) == CLOSXP || TYPEOF(fun) == BUILTINSXP) UNPROTECT(1); } else SET_CLASS(ans, mkString("XMLNodeSet")); UNPROTECT(1); return(ans); } SEXP convertXPathObjectToR(xmlXPathObjectPtr obj, SEXP fun, int encoding, SEXP manageMemory) { SEXP ans = NULL_USER_OBJECT; switch(obj->type) { case XPATH_NODESET: ans = convertNodeSetToR(obj->nodesetval, fun, encoding, manageMemory); break; case XPATH_BOOLEAN: ans = ScalarLogical(obj->boolval); break; case XPATH_NUMBER: ans = ScalarReal(obj->floatval); if(xmlXPathIsInf(obj->floatval)) REAL(ans)[0] = xmlXPathIsInf(obj->floatval) < 0 ? R_NegInf : R_PosInf; else if(xmlXPathIsNaN(obj->floatval)) REAL(ans)[0] = NA_REAL; break; case XPATH_STRING: ans = mkString(XMLCHAR_TO_CHAR(obj->stringval)); //XXX encoding break; case XPATH_POINT: case XPATH_RANGE: case XPATH_LOCATIONSET: case XPATH_USERS: PROBLEM "currently unsupported xmlXPathObject type %d in convertXPathObjectToR. Please send mail to maintainer.", obj->type WARN default: ans = R_NilValue; } return(ans); } #include /* For xmlXPathRegisterNs() */ xmlNsPtr * R_namespaceArray(SEXP namespaces, xmlXPathContextPtr ctxt) { int i, n; SEXP names = GET_NAMES(namespaces); xmlNsPtr *els; n = GET_LENGTH(namespaces); els = xmlMallocAtomic(sizeof(xmlNsPtr) * n); if(!els) { PROBLEM "Failed to allocated space for namespaces" ERROR; } for(i = 0; i < n; i++) { /*XXX who owns these strings. */ const xmlChar *prefix, *href; href = CHAR_TO_XMLCHAR(strdup(CHAR_DEREF(STRING_ELT(namespaces, i)))); prefix = names == NULL_USER_OBJECT ? CHAR_TO_XMLCHAR("") /* NULL */ : CHAR_TO_XMLCHAR(strdup(CHAR_DEREF(STRING_ELT(names, i)))); els[i] = xmlNewNs(NULL, href, prefix); if(ctxt) xmlXPathRegisterNs(ctxt, prefix, href); } return(els); } #if R_XML_DEBUG_WEAK_REFS SEXP LastDoc = NULL; SEXP R_isWeakRef(SEXP sdoc) { void *ptr; if(sdoc == R_NilValue) { if(LastDoc == NULL) return(R_NilValue); sdoc = LastDoc; } ptr = R_ExternalPtrAddr(sdoc); return(ScalarLogical(R_findExtPtrWeakRef(ptr))); } #endif SEXP R_addXMLInternalDocument_finalizer(SEXP sdoc, SEXP fun) { R_CFinalizer_t action = NULL; #if R_XML_DEBUG_WEAK_REFS LastDoc = sdoc; #endif if(TYPEOF(fun) == CLOSXP) { R_RegisterFinalizer(sdoc, fun); return(sdoc); } if(fun == R_NilValue) { action = R_xmlFreeDoc; } else if(TYPEOF(fun) == EXTPTRSXP) action = (R_CFinalizer_t) R_ExternalPtrAddr(fun); R_RegisterCFinalizer(sdoc, action); #ifdef R_XML_DEBUG_WEAK_REFS void *ptr = R_ExternalPtrAddr(sdoc); int status = R_findExtPtrWeakRef(ptr); fprintf(stderr, "is weak ref %d\n", status); #endif return(sdoc); } SEXP R_XMLInternalDocument_free(SEXP sdoc) { if(TYPEOF(sdoc) != EXTPTRSXP || R_ExternalPtrTag(sdoc) != Rf_install("XMLInternalDocument")) { PROBLEM "R_free must be given an internal XML document object, 'XMLInternalDocument'" ERROR; } R_xmlFreeDoc(sdoc); return(sdoc); } SEXP RS_XML_xpathEval(SEXP sdoc, SEXP r_node, SEXP path, SEXP namespaces, SEXP fun, SEXP charEncoding, SEXP manageMemory) { xmlXPathContextPtr ctxt = NULL; xmlXPathObjectPtr result; SEXP ans = NULL_USER_OBJECT; xmlDocPtr doc; if(TYPEOF(sdoc) != EXTPTRSXP || R_ExternalPtrTag(sdoc) != Rf_install("XMLInternalDocument")) { PROBLEM "xpathEval must be given an internal XML document object, 'XMLInternalDocument'" ERROR; } doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); ctxt = xmlXPathNewContext(doc); if(GET_LENGTH(r_node)) { ctxt->node = ctxt->origin = R_ExternalPtrAddr(r_node); } if(GET_LENGTH(namespaces)) { ctxt->namespaces = R_namespaceArray(namespaces, ctxt); /* xmlCopyNamespaceList(doc); */ ctxt->nsNr = GET_LENGTH(namespaces); } result = xmlXPathEvalExpression(CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(path, 0))), ctxt); if(result) ans = convertXPathObjectToR(result, fun, INTEGER(charEncoding)[0], manageMemory); xmlXPathFreeObject(result); xmlXPathFreeContext(ctxt); if(!result) { PROBLEM "error evaluating xpath expression %s", CHAR_DEREF(STRING_ELT(path, 0)) ERROR; } return(ans); } USER_OBJECT_ RS_XML_createDocFromNode(USER_OBJECT_ s_node) { xmlDocPtr doc; xmlNodePtr node, ptr; SEXP ans; node = (xmlNodePtr) R_ExternalPtrAddr(s_node); doc = xmlNewDoc(CHAR_TO_XMLCHAR("1.0")); R_numXMLDocs++; ptr = xmlDocCopyNode(node, doc, 1); node = (xmlNodePtr) doc; xmlAddChild(node, ptr); ans = R_createXMLDocRef(doc); return(ans); } USER_OBJECT_ RS_XML_copyNodesToDoc(USER_OBJECT_ s_node, USER_OBJECT_ s_doc, USER_OBJECT_ manageMemory) { xmlDocPtr doc; xmlNodePtr node, ptr; int len, i; SEXP ans; doc = (xmlDocPtr) R_ExternalPtrAddr(s_doc); if(TYPEOF(s_node) == EXTPTRSXP) { node = (xmlNodePtr) R_ExternalPtrAddr(s_node); ptr = xmlDocCopyNode(node, doc, 1); return(R_createXMLNodeRef(ptr, manageMemory)); } len = Rf_length(s_node); PROTECT(ans = NEW_LIST(len)); for(i = 0; i < len; i++) { node = (xmlNodePtr) R_ExternalPtrAddr(VECTOR_ELT(s_node, i)); ptr = xmlDocCopyNode(node, doc, 1); SET_VECTOR_ELT(ans, i, R_createXMLNodeRef(ptr, manageMemory)); } UNPROTECT(1); return(ans); } /* Thoughts that we could set the kids to NULL and then free the doc after we createDocFromNode but the return of xpathApply will return these nodes and we need to be able to get to a document */ SEXP RS_XML_killNodesFreeDoc(SEXP sdoc) { xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); if(!doc) { PROBLEM "null xmlDocPtr passed as externalptr to RS_XML_killNodesFreeDoc" WARN; return(ScalarLogical(FALSE)); } doc->children = NULL; xmlFree(doc); return(ScalarLogical(TRUE)); } #if 0 SEXP RS_XML_xpathNodeEval(SEXP s_node, SEXP path, SEXP namespaces, SEXP fun) { xmlXPathContextPtr ctxt = NULL; xmlXPathObjectPtr result; SEXP ans = NULL_USER_OBJECT; xmlDocPtr doc; if(TYPEOF(s_node) != EXTPTRSXP || R_ExternalPtrTag(s_node) != Rf_install("XMLInternalNode")) { PROBLEM "xpathEval must be given an internal XML document object, 'XMLInternalNode'" ERROR; } ctxt = xmlXPathNewContext(doc); if(GET_LENGTH(namespaces)) { ctxt->namespaces = R_namespaceArray(namespaces, ctxt); /* xmlCopyNamespaceList(doc); */ ctxt->nsNr = GET_LENGTH(namespaces); } result = xmlXPathEvalExpression(CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(path, 0))), ctxt); if(result) ans = convertXPathObjectToR(result, fun); xmlXPathFreeObject(result); xmlXPathFreeContext(ctxt); if(!result) { PROBLEM "error evaluating xpath expression %s", CHAR_DEREF(STRING_ELT(path, 0)) ERROR; } return(ans); } #endif SEXP R_matchNodesInList(SEXP r_nodes, SEXP r_target, SEXP r_nomatch) { xmlNodePtr el; int i, j, n, n2; SEXP ans; n = GET_LENGTH(r_nodes); n2 = GET_LENGTH(r_target); ans = NEW_INTEGER( n ); for(i = 0; i < n ; i++) { el = R_ExternalPtrAddr(VECTOR_ELT(r_nodes, i)); INTEGER(ans)[i] = INTEGER(r_nomatch)[0]; for(j = 0; j < n2; j++) { if(el == R_ExternalPtrAddr(VECTOR_ELT(r_target, j))) { INTEGER(ans)[i] = j; break; } } } return(ans); } #if 0 /* taken from Sxslt and should be left there or moved here.*/ USER_OBJECT_ RXSLT_export_xmlXPathObject(xmlNodeSetPtr val, const char * className) { USER_OBJECT_ ans; USER_OBJECT_ klass; PROTECT(klass = MAKE_CLASS(className)); PROTECT(ans = NEW(klass)); SET_SLOT(ans, Rf_install("ref"), R_MakeExternalPtr(val, Rf_install(className), R_NilValue)); UNPROTECT(2); return(ans); } USER_OBJECT_ R_xmlXPathNewNodeSet(USER_OBJECT_ s_node) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); xmlXPathObjectPtr nodeset; nodeset = xmlXPathNewNodeSet(node); return(RXSLT_export_xmlXPathObject(nodeset->nodesetval, "XPathNodeSet")); } #endif XML/src/xmlsecurity.c0000644000176000001440000000101612160603560014262 0ustar ripleyusers#ifdef HAVE_LIBXMLSEC #include #include #include #include "Rinternals.h" void R_xmlSecCryptoInit(int *els) { int status; els[0] = status = xmlSecCryptoInit(); if(status != 0) return; els[1] = status = xmlSecCryptoAppInit(NULL); if(status != 0) return; els[2] = status = xmlSecCryptoInit(); } SEXP R_xmlSecCryptoShutdown() { int status; status = xmlSecCryptoShutdown(); return(ScalarInteger(status)); } #else static int foo; #endif XML/src/schema.c0000644000176000001440000001402112160603560013132 0ustar ripleyusers#include "RS_XML.h" #include "RSCommon.h" #include #include #include #include "Utils.h" #if 0 #define R_GET_EXTERNAL_REF(type, name) \ type \ name(SEXP obj) \ { \ SEXP ref = GET_SLOT(obj, Rf_install("ref")); \ if(TYPEOF(ref) != EXTPTRSXP) { \ PROBLEM "Expected external pointer object" \ ERROR; \ } \ \ if(R_ExternalPtrTag(ref) != Rf_install(#type)) { \ PROBLEM "Expected external pointer to have internal tag %s, got %s", \ #type, PRINTNAME(ref) \ ERROR; \ } \ \ return((type) R_ExternalPtrAddr(ref)); \ } R_GET_EXTERNAL_REF(xmlHashTablePtr, R_libxmlTypeTableGetRef) R_GET_EXTERNAL_REF(xmlSchemaElementPtr, R_libxmlSchemaElementGetRef) #endif void * R_getExternalRef(SEXP obj, const char *className) { SEXP ref = GET_SLOT(obj, Rf_install("ref")); void *ans; if(TYPEOF(ref) != EXTPTRSXP) { PROBLEM "Expected external pointer object" ERROR; } if(className && R_ExternalPtrTag(ref) != Rf_install(className)) { PROBLEM "Expected external pointer to have internal tag %s, got %s", className, CHAR(PRINTNAME(R_ExternalPtrTag(ref))) ERROR; } ans = R_ExternalPtrAddr(ref); if(!ans) { PROBLEM "Got NULL value in reference for %s", className ERROR; } return(ans); } typedef struct { int pos; USER_OBJECT_ els; USER_OBJECT_ names; char *elType; } HashGatherer; static void getKeys(void *el, void *data, xmlChar *name) { HashGatherer *d = (HashGatherer *)data; SET_STRING_ELT(d->names, d->pos, COPY_TO_USER_STRING(name)); if(d->elType) { SET_VECTOR_ELT(d->els, d->pos, R_makeRefObject(el, d->elType)); } d->pos++; } USER_OBJECT_ R_libxmlTypeTable_names(USER_OBJECT_ table, USER_OBJECT_ s_elType) { xmlHashTablePtr t; int n = 0, ctr = 0; int getElements = GET_LENGTH(s_elType) > 0; HashGatherer d = {0, NULL_USER_OBJECT, NULL_USER_OBJECT, NULL}; t = R_getExternalRef(table, NULL); /* R_libxmlTypeTableGetRef(table); */ n = xmlHashSize(t); PROTECT(d.names = NEW_CHARACTER(n)); ctr++; if(getElements) { PROTECT(d.els = NEW_LIST(n)); ctr++; d.elType = (char *) CHAR_DEREF(STRING_ELT(s_elType, 0)); } xmlHashScan(t, getKeys, &d); if(getElements) SET_NAMES(d.els, d.names); else d.els = d.names; UNPROTECT(ctr); return(d.els); } USER_OBJECT_ R_libxmlTypeTable_lookup(USER_OBJECT_ table, USER_OBJECT_ name, USER_OBJECT_ s_elType) { xmlHashTablePtr t; USER_OBJECT_ ans; void *p; t = R_getExternalRef(table, NULL); /* R_libxmlTypeTableGetRef(table); */ p = xmlHashLookup(t, CHAR_DEREF(STRING_ELT(name, 0))); ans = R_makeRefObject(p, CHAR_DEREF(STRING_ELT(s_elType, 0))); return(ans); } #define SchemaElement(id, type) \ USER_OBJECT_ \ R_libxmlTypeTable_##id(USER_OBJECT_ s) \ { \ xmlSchemaPtr schema; \ schema = R_getExternalRef(s, "xmlSchemaRef"); \ \ return(schema->id != NULL ? R_makeRefObject(schema->id, type) : R_NilValue); \ } SchemaElement(elemDecl, "SchemaElementTable") SchemaElement(typeDecl, "SchemaTypeTable") SchemaElement(attrDecl, "SchemaAttributeTable") SchemaElement(attrgrpDecl, "SchemaAttributeGroupTable") SchemaElement(notaDecl, "SchemaNotationTable") /* USER_OBJECT_ R_libxmlTypeTable_elemDecl(USER_OBJECT_ s) { xmlSchemaPtr schema; schema = R_getExternalRef(s, "xmlSchemaRef"); return(R_makeRefObject(schema->typeDecl, "SchemaElementTable")); } */ #include typedef struct { SEXP fun; } R_SchemaValidCallback; void R_schemaValidityFunctionCall(R_SchemaValidCallback *ctx, int warning, const char *msg, va_list args) { SEXP arg; char buf[10000]; vsnprintf(buf, sizeof(buf)/sizeof(buf[0]), msg, args); PROTECT(arg = mkString(buf)); SET_CLASS(arg, mkString(warning ? "XMLSchemaWarning" : "XMLSchemaError")); SETCAR(CDR(ctx->fun), arg); Rf_eval(ctx->fun, R_GlobalEnv); UNPROTECT(1); } void R_schemaValidityErrorFunc(R_SchemaValidCallback *ctx, const char *msg, ...) { va_list args; va_start(args, msg); R_schemaValidityFunctionCall(ctx, 0, msg, args); va_end(args); } void R_schemaValidityWarningFunc(R_SchemaValidCallback *ctx, const char *msg, ...) { va_list args; va_start(args, msg); R_schemaValidityFunctionCall(ctx, 1, msg, args); va_end(args); } SEXP RS_XML_xmlSchemaValidateDoc(SEXP r_schema, SEXP r_doc, SEXP r_options, SEXP r_errorHandlers) { xmlSchemaValidCtxtPtr ctxt; xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); xmlSchemaPtr schema = (xmlSchemaPtr) R_ExternalPtrAddr(r_schema); // ctxt = (xmlSchemaValidCtxtPtr) R_ExternalPtrAddr(r_ctxt); int status; int numErrHandlers; ctxt = xmlSchemaNewValidCtxt(schema); if(LENGTH(r_options)) xmlSchemaSetValidOptions(ctxt, INTEGER(r_options)[0]); numErrHandlers = Rf_length(r_errorHandlers); if(numErrHandlers > 0) { R_SchemaValidCallback cbinfo; PROTECT(cbinfo.fun = allocVector(LANGSXP, 2)); SETCAR(cbinfo.fun, VECTOR_ELT(r_errorHandlers, 0)); xmlSchemaSetValidErrors(ctxt, (xmlSchemaValidityErrorFunc) R_schemaValidityErrorFunc, (xmlSchemaValidityWarningFunc) R_schemaValidityWarningFunc, &cbinfo); } status = xmlSchemaValidateDoc(ctxt, doc); xmlSchemaFreeValidCtxt(ctxt); /* R_alloc this if possible. */ if(numErrHandlers > 0) UNPROTECT(1); return(ScalarInteger(status)); } #if 0 SEXP RS_XML_xmlSchemaNewValidCtxt(SEXP r_schema, SEXP r_options, SEXP r_errorHandlers) { xmlSchemaPtr schema = (xmlSchemaPtr) R_ExternalPtrAddr(r_schema); xmlSchemaValidCtxtPtr ctxt; int numErrHandlers; ctxt = xmlSchemaNewValidCtxt(schema); if(LENGTH(r_options)) xmlSchemaSetValidOptions(ctxt, INTEGER(r_options)[0]); numErrHandlers = LENGTH(r_errorHandlers); if(numErrHandlers > 0) { R_SchemaValidCallback *cbinfo = (R_SchemaValidCallback*) malloc(sizeof(R_SchemaValidCallback)); cbinfo->fun = VECTOR_ELT(r_errorHandlers); xmlSchemaSetValidErrors(routine); } return(); } #endif XML/src/libxmlFeatures.c0000644000176000001440000000442612160603560014670 0ustar ripleyusers#include "RS_XML.h" #include "Utils.h" #ifdef FROM_GNOME_XML_DIR #include #else #include #endif SEXP R_getXMLFeatures() { #ifdef HAVE_XML_HAS_FEATURE int features[] = { XML_WITH_THREAD, XML_WITH_TREE, XML_WITH_OUTPUT, XML_WITH_PUSH, XML_WITH_READER, XML_WITH_PATTERN, XML_WITH_WRITER, XML_WITH_SAX1, XML_WITH_FTP, XML_WITH_HTTP, XML_WITH_VALID, XML_WITH_HTML, XML_WITH_LEGACY, XML_WITH_C14N, XML_WITH_CATALOG, XML_WITH_XPATH, XML_WITH_XPTR, XML_WITH_XINCLUDE, XML_WITH_ICONV, XML_WITH_ISO8859X, XML_WITH_UNICODE, XML_WITH_REGEXP, XML_WITH_AUTOMATA, XML_WITH_EXPR, XML_WITH_SCHEMAS, XML_WITH_SCHEMATRON, XML_WITH_MODULES, XML_WITH_DEBUG, XML_WITH_DEBUG_MEM, XML_WITH_DEBUG_RUN, #ifdef HAVE_XML_WITH_ZLIB XML_WITH_ZLIB #else -1 #endif }; const char * const names[] = { "THREAD", "TREE", "OUTPUT", "PUSH", "READER", "PATTERN", "WRITER", "SAX1", "FTP", "HTTP", "VALID", "HTML", "LEGACY", "C14N", "CATALOG", "XPATH", "XPTR", "XINCLUDE", "ICONV", "ISO8859X", "UNICODE", "REGEXP", "AUTOMATA", "EXPR", "SCHEMAS", "SCHEMATRON", "MODULES", "DEBUG", "DEBUG_MEM", "DEBUG_RUN", "ZLIB" }; SEXP ans, rnames; int n = sizeof(features)/sizeof(features[0]), i; PROTECT(ans = allocVector(LGLSXP, n)); PROTECT(rnames = allocVector(STRSXP, n)); for(i = 0; i < n; i++) { if(features[i] > -1) LOGICAL(ans)[i] = xmlHasFeature(features[i]); else LOGICAL(ans)[i] = NA_LOGICAL; SET_STRING_ELT(rnames, i, mkChar(names[i])); } SET_NAMES(ans, rnames); UNPROTECT(2); return(ans); #else return(allocVector(STRSXP, 0)); #endif } XML/src/fixNS.c0000644000176000001440000000473312160603560012732 0ustar ripleyusers#include #include "RSCommon.h" #include "RS_XML.h" #define R_USE_XML_ENCODING 1 #include "Utils.h" /* R_createXMLNodeRef, Encoding macros. */ // need to release any namespace. int fixDummyNS(xmlNodePtr node, int recursive); int setDummyNS(xmlNodePtr node, const xmlChar *prefix); xmlNs *findNSByPrefix(xmlNodePtr node, const xmlChar *prefix); SEXP R_fixDummyNS(SEXP r_node, SEXP r_recursive) { xmlNodePtr node; int status; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); status = fixDummyNS(node, LOGICAL(r_recursive)[0]); return(ScalarInteger(status)); } int fixDummyNS(xmlNodePtr node, int recursive) { xmlNs *ns = node->ns; int count = 0; if(ns && strcmp(ns->href, "") == 0) count = setDummyNS(node, ns->prefix); if(recursive) { xmlNodePtr ptr = node->children; while(ptr) { count += fixDummyNS(ptr, recursive); ptr = ptr->next; } } return(count); } int setDummyNS(xmlNodePtr node, const xmlChar *prefix) { xmlNodePtr a = node->parent; while(a) { xmlNs *ns; ns = findNSByPrefix(a, prefix); if(ns) { #ifdef R_XML_DEBUG fprintf(stderr, "mapping %s to %s\n", prefix, ns->href);fflush(stderr); #endif node->nsDef = node->nsDef->next; xmlSetNs(node, ns); return(1); } a = a->parent; } return(0); } xmlNs * findNSByPrefix(xmlNodePtr node, const xmlChar *prefix) { xmlNs *ptr = node->nsDef; while(ptr) { if((!prefix || !prefix[0]) && !ptr->prefix) return(ptr); if(prefix && ptr->prefix && strcmp(ptr->prefix, prefix) == 0) return(ptr); ptr = ptr->next; } return(NULL); } void setDefaultNs(xmlNodePtr node, xmlNsPtr ns, int recursive) { if(!node->ns) xmlSetNs(node, ns); if(recursive) { xmlNodePtr cur = node->children; while(cur) { setDefaultNs(cur, ns, 1); cur = cur->next; } } } SEXP R_getAncestorDefaultNSDef(SEXP r_node, SEXP r_recursive) { xmlNodePtr cur, node; xmlNs *ans = NULL; cur = (xmlNodePtr) R_ExternalPtrAddr(r_node); node = cur->parent; while(node && (node->type != XML_DOCUMENT_NODE && node->type != XML_HTML_DOCUMENT_NODE)) { /* Need to check for HTML_DOC or XML_DOC ?*/ ans = findNSByPrefix(node, NULL); if(ans) break; node = node->parent; } if(ans) { xmlSetNs(cur, ans); if(LOGICAL(r_recursive)[0]) { setDefaultNs(cur, ans, 1); } return(ScalarLogical(1)); // R_createXMLNsRef(ans)); } return(R_NilValue); } XML/src/XMLTree.c0000644000176000001440000012616212160603560013164 0ustar ripleyusers/** The purpose of this file is to provide the C-level facilities to create, modify and manage internal XML DOM nodes at the S language level. We want to be able to use the interface defined by xmlOutputDOM() and xmlOutputBuffer() but with an implementation that returns a tree that is built to be used with the libxml data structures. So the intent is to incrementally add nodes to the tree in memory and then pass this to libxml to add it to another tree or write it to a file, etc. The essential public/high-level functionality provided by the the S-leve interface for building trees consists of: 1) addTag 2) closeTag 3) addComment 4) value addNode a) getOpenTag b) reset */ #include "RSCommon.h" #include "RS_XML.h" #ifdef FROM_GNOME_XML_DIR #include #include #else #include #include #include #endif #define R_USE_XML_ENCODING 1 #include "Utils.h" /* R_createXMLNodeRef, Encoding macros. */ #include "NodeGC.h" #ifdef USE_OLD_ROOT_CHILD_NAMES # define XML_ROOT(n) (n)->childs #else # define XML_ROOT(n) (n)->xmlRootNode #endif void incrementDocRef(xmlDocPtr doc); int getNodeCount(xmlNodePtr node); void incrementDocRefBy(xmlDocPtr doc, int num); void RS_XML_recursive_unsetListDoc(xmlNodePtr list); /** Create a libxml comment node and return it as an S object referencing this value. */ USER_OBJECT_ R_xmlNewComment(USER_OBJECT_ str, USER_OBJECT_ sdoc, USER_OBJECT_ manageMemory) { xmlNodePtr node; xmlDocPtr doc = NULL; xmlChar *txt; if(GET_LENGTH(sdoc)) doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); txt = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(str, 0))); node = doc ? xmlNewDocComment(doc, txt) : xmlNewComment(txt); return(R_createXMLNodeRef(node, manageMemory)); } USER_OBJECT_ R_newXMLTextNode(USER_OBJECT_ value, USER_OBJECT_ sdoc, SEXP manageMemory) { xmlNodePtr node; xmlDocPtr doc = NULL; xmlChar *txt; if(GET_LENGTH(sdoc)) doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); txt = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(value, 0))); if(doc) node = xmlNewDocTextLen(doc, txt, strlen(XMLCHAR_TO_CHAR(txt))); else node = xmlNewText(txt); return(R_createXMLNodeRef(node, manageMemory)); } USER_OBJECT_ R_newXMLCDataNode(USER_OBJECT_ sdoc, USER_OBJECT_ value, USER_OBJECT_ manageMemory) { xmlDocPtr doc = NULL; xmlNodePtr node; const char *tmp; if(GET_LENGTH(sdoc)) doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); tmp = CHAR_DEREF(STRING_ELT(value,0)); node = xmlNewCDataBlock(doc, CHAR_TO_XMLCHAR(tmp), strlen(tmp)); return(R_createXMLNodeRef(node, manageMemory)); } USER_OBJECT_ R_newXMLPINode(USER_OBJECT_ sdoc, USER_OBJECT_ name, USER_OBJECT_ content, USER_OBJECT_ manageMemory) { xmlNodePtr node; node = xmlNewPI(CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(name, 0))), CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(content, 0)))); return( R_createXMLNodeRef(node, manageMemory) ); } USER_OBJECT_ R_newXMLNode(USER_OBJECT_ name, USER_OBJECT_ attrs, USER_OBJECT_ nameSpace, USER_OBJECT_ sdoc, USER_OBJECT_ nameSpaceDefinitions, USER_OBJECT_ manageMemory) { xmlDocPtr doc = NULL; xmlNsPtr ns = NULL; xmlNodePtr node; if(GET_LENGTH(sdoc)) { doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); if(doc->type != XML_DOCUMENT_NODE && doc->type != XML_HTML_DOCUMENT_NODE) doc = doc->doc; } if(GET_LENGTH(nameSpace) > 0) { /* Need the default namespace and then also any other */ CHAR_DEREF(STRING_ELT(nameSpace, 0)); } node = xmlNewDocNode(doc, ns, CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(name, 0))), NULL); if(doc && XML_ROOT(doc) == NULL) { XML_ROOT(doc) = node; } return( R_createXMLNodeRef(node, manageMemory) ); } USER_OBJECT_ RS_XML_getNextSibling(USER_OBJECT_ s_node, USER_OBJECT_ s_prev, USER_OBJECT_ manageMemory) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node), ptr; ptr = LOGICAL(s_prev)[0] ? node->next : node->prev; return(ptr ? R_createXMLNodeRef(ptr, manageMemory) : NULL_USER_OBJECT); } /* Add attributes to an existing node. At present, doesn't check for duplicates. Can do this in C or in R, but need to remove existing values, and ensure that namespace considerations are handled properly. */ USER_OBJECT_ RS_XML_addNodeAttributes(USER_OBJECT_ s_node, USER_OBJECT_ attrs) { int i, n; USER_OBJECT_ attr_names; xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); n = GET_LENGTH(attrs); attr_names = GET_NAMES(attrs); for(i = 0; i < n; i++) { xmlSetProp(node, CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(attr_names, i))), CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(attrs, i)))); } return(ScalarInteger(n)); } USER_OBJECT_ RS_XML_setNodeName(USER_OBJECT_ s_node, USER_OBJECT_ s_name) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); xmlChar *name = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(s_name, 0))); xmlNodeSetName(node, name); return(NULL_USER_OBJECT); } #if 0 int removeNodeNamespace(xmlNodePtr node, xmlNsPtr p) { if(!p) return(0); if(!node->prev) node->ns = p->next; else p->v->next = p->next; return(1); } #endif int removeNodeNamespaceByName(xmlNodePtr node, const char * const id) { xmlNsPtr p, prev; if(!node->nsDef) return(0); prev = node->nsDef; p = node->nsDef; if(!(id[0] && !p->prefix) || (p->prefix && strcmp(p->prefix, id) == 0)) { /*XXX Free or not */ if(node->ns == p) node->ns = NULL; node->nsDef = p->next; return(1); } while(1) { if((!id[0] && !p->prefix) || (p->prefix && strcmp(p->prefix, id) == 0)) { prev->next = p->next; if(node->ns == p) node->ns = NULL; return(1); } prev = p; p = p->next; } return(0); } SEXP R_replaceDummyNS(USER_OBJECT_ s_node, USER_OBJECT_ newNS, USER_OBJECT_ prefix) { xmlNodePtr node; if(TYPEOF(s_node) != EXTPTRSXP) { PROBLEM "non external pointer passed to R_replaceDummyNS" ERROR; } node = (xmlNodePtr) R_ExternalPtrAddr(s_node); removeNodeNamespaceByName(node, CHAR(STRING_ELT(prefix, 0))); return(R_xmlSetNs(s_node, newNS, ScalarLogical(0))); // return(newNS); } SEXP RS_XML_removeAllNodeNamespaces(SEXP s_node) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); xmlNsPtr p, tmp; int n = 0; if(!node) return(ScalarLogical(FALSE)); p = node->nsDef; while(p) { if(node->ns == p) { node->ns = NULL; } tmp = p; p = p->next; if(0 && tmp->type) xmlFreeNs(tmp); n++; } node->nsDef = NULL; return(ScalarInteger(n)); } SEXP RS_XML_removeNodeNamespaces(SEXP s_node, SEXP r_ns) { int i, n; xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); SEXP el, ans; const char *prefix; // xmlNsPtr p; // int t = TYPEOF(r_ns); n = Rf_length(r_ns); PROTECT(ans = allocVector(LGLSXP, n)); for(i = 0; i < n; i++) { el = VECTOR_ELT(r_ns, i); if(TYPEOF(el) == STRSXP) { prefix = CHAR(STRING_ELT(el, 0)); LOGICAL(ans)[i] = removeNodeNamespaceByName(node, prefix); } else if(TYPEOF(el) == EXTPTRSXP) { xmlNsPtr p = (xmlNsPtr) R_ExternalPtrAddr(el); LOGICAL(ans)[i] = removeNodeNamespaceByName(node, p->prefix); } } UNPROTECT(1); return(ans); } /* attrs is a vector whose names identify */ USER_OBJECT_ RS_XML_removeNodeAttributes(USER_OBJECT_ s_node, USER_OBJECT_ attrs, USER_OBJECT_ asNamespace) { int i, n; USER_OBJECT_ attr_names, ans; xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); n = GET_LENGTH(attrs); PROTECT(ans = NEW_LOGICAL(n)); attr_names = GET_NAMES(attrs); for(i = 0; i < n; i++) { if(TYPEOF(attrs) == INTSXP) { int which = INTEGER(attrs)[i] - i - 1; xmlAttrPtr p; int j = 0; p = node->properties; while(j < which && p) { p = p->next; j++; } xmlUnsetNsProp(node, p->ns, p->name); /* if(p) xmlFree(p); */ } else if(LOGICAL(asNamespace)[0]) { xmlNsPtr ns = NULL; xmlChar *id; id = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(attr_names, i))); ns = (xmlNsPtr) R_ExternalPtrAddr(VECTOR_ELT(attrs, i)); if(id[0]) INTEGER(ans)[i] = xmlUnsetNsProp(node, ns, id); } else INTEGER(ans)[i] = xmlUnsetProp(node, CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(attrs, i)))); } UNPROTECT(1); return(ans); } #define GET_R_XML_NODE_PTR(x) (xmlNodePtr) R_ExternalPtrAddr(s_node); USER_OBJECT_ RS_XML_getNsList(USER_OBJECT_ s_node, USER_OBJECT_ asRef) { xmlNodePtr node = GET_R_XML_NODE_PTR(s_node); xmlNsPtr *els, el; int n = 0, i; USER_OBJECT_ ans, names; DECL_ENCODING_FROM_NODE(node) els = xmlGetNsList(node->doc, node); if(!els) return(NULL_USER_OBJECT); el = *els; while(el) { n++; el = el->next; } el = *els; if(LOGICAL(asRef)[0]) { PROTECT(ans = NEW_LIST(n)); PROTECT(names = NEW_CHARACTER(n)); for(i = 0; i < n ; i++, el = el->next) { if(el->prefix) SET_STRING_ELT(names, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(el->prefix))); SET_VECTOR_ELT(ans, i, R_createXMLNsRef(el)); } } else { PROTECT(ans = NEW_CHARACTER(n)); PROTECT(names = NEW_CHARACTER(n)); for(i = 0; i < n ; i++, el = el->next) { if(el->prefix) SET_STRING_ELT(names, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(el->prefix))); if(el->href) SET_STRING_ELT(ans, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(el->href))); } } SET_NAMES(ans, names); UNPROTECT(2); return(ans); } SEXP R_removeInternalNode(SEXP r_node, SEXP r_free) { xmlNodePtr node; int n = GET_LENGTH(r_node), i; for(i = 0; i < n; i++) { SEXP el = VECTOR_ELT(r_node, i); if(TYPEOF(el) != EXTPTRSXP) { PROBLEM "removeInternalNode needs ans external pointer object" ERROR; } node = (xmlNodePtr) R_ExternalPtrAddr(el); if(!node) { PROBLEM "removeInternalNode ignoring a NULL external pointer object" WARN; } xmlUnlinkNode(node); if(LOGICAL(r_free)[i]) xmlFreeNode(node); } return(NULL_USER_OBJECT); } SEXP RS_XML_setRootNode(USER_OBJECT_ r_doc, USER_OBJECT_ r_node) { xmlDocPtr doc; xmlNodePtr node; doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); node = (xmlNodePtr) R_ExternalPtrAddr(r_node); /* Set the reference counting information. */ //if(!node->doc) // node->doc = doc; xmlDocSetRootElement(doc, node); return(ScalarLogical(TRUE)); } SEXP R_isNodeChildOfAt(SEXP rkid, SEXP rnode, SEXP rat) { int i=0, at; xmlNodePtr kid, node, ptr; node = (xmlNodePtr) R_ExternalPtrAddr(rnode); kid = (xmlNodePtr) R_ExternalPtrAddr(rkid); if(!node || !kid || !kid->parent) return(ScalarLogical(FALSE)); at = INTEGER(rat)[0] - 1; ptr = node->children; while(i < at && ptr) { ptr = ptr->next; i++; } return(ScalarLogical(ptr == kid)); } /** Add the internal XML node represented by the S object @node as a child of the XML node represented by the S object @parent. */ USER_OBJECT_ R_insertXMLNode(USER_OBJECT_ node, USER_OBJECT_ parent, USER_OBJECT_ at, USER_OBJECT_ shallow) { xmlNodePtr n, p, check, tmp = NULL; if(TYPEOF(parent) != EXTPTRSXP) { PROBLEM "R_insertXMLNode expects XMLInternalNode objects for the parent node" ERROR; } if(IS_LIST(node)) { int i; for(i = 0; i < GET_LENGTH(node); i++) R_insertXMLNode(VECTOR_ELT(node, i), parent, R_NilValue/*XXX*/, shallow); return(NULL_USER_OBJECT); } if(TYPEOF(node) == STRSXP) { int i; p = (xmlNodePtr) R_ExternalPtrAddr(parent); for(i = 0; i < GET_LENGTH(node); i++) { n = xmlNewText(CHAR(STRING_ELT(node, i))); xmlAddChild(p, n); } return(NULL_USER_OBJECT); } if(TYPEOF(node) != EXTPTRSXP) { PROBLEM "R_insertXMLNode expects XMLInternalNode objects" ERROR; } p = (xmlNodePtr) R_ExternalPtrAddr(parent); n = (xmlNodePtr) R_ExternalPtrAddr(node); if(!p || !n) { PROBLEM "either the parent or child node is NULL" ERROR; } #if 0 if(0 && n->parent == p || n->parent) { /*XX Need to decrement the reference count if there is a document. */ xmlUnlinkNode(n); } #endif /* Make certain the nodes belong to this document if they already belong to another by copying. */ if(n->doc && n->doc != p->doc) { n = xmlDocCopyNode(n, p->doc, 1); } else if(!n->doc && LOGICAL(shallow)[0]) { /* XXX This is intended to avoid setting all the nodes to this document and then having to undo that later on.*/ n->doc = p->doc; } switch(p->type) { case XML_ELEMENT_NODE: /* Need to be careful that if n is a text node, it could be * absorbed into its nearest sibling and then freed. So we take a copy of the text node*/ if(n->type == XML_TEXT_NODE) { tmp = xmlNewText(n->content); /* tmp = xmlCopyNode(n, 1); */ } else { tmp = n; if(n->_private) { #ifdef R_XML_DEBUG fprintf(stderr, "insertXMLNode: %p to %p, incrementing document (%p) %d\n", n, p, p->doc, *(int *) n->_private); #endif if(p->doc) incrementDocRefBy(p->doc, getNodeCount(n)); } } check = xmlAddChild(p, tmp); #if 0 /* XXXX */ if(n->type == XML_TEXT_NODE && check != tmp) xmlFreeNode(tmp); #endif break; case XML_DOCUMENT_NODE: case XML_HTML_DOCUMENT_NODE: check = xmlAddChild(p, n); incrementDocRef((xmlDocPtr) p); break; case XML_PI_NODE: xmlAddSibling(p, n); break; default: { PROBLEM "ignoring request to add child (types parent: %d, child %d)", p->type, n->type WARN } break; } #if 0 /* This is where we handle the case where n being a text node may * have been freed by xmlAddChild. */ if(check != n) { fprintf(stderr, "xmlAddChild() may have freed the node\n");fflush(stderr); R_ClearExternalPtr(node); } #endif /* ??? internal_incrementNodeRefCount(n); */ return(NULL_USER_OBJECT); } USER_OBJECT_ RS_XML_xmlAddSiblingAt(USER_OBJECT_ r_to, USER_OBJECT_ r_node, USER_OBJECT_ r_after, USER_OBJECT_ manageMemory) { xmlNodePtr p, n, ans; xmlNodePtr (*f)(xmlNodePtr, xmlNodePtr); if(TYPEOF(r_to) != EXTPTRSXP) { PROBLEM "RS_XML_xmlAddSiblingAt expects XMLInternalNode objects for the parent node" ERROR; } if(TYPEOF(r_node) != EXTPTRSXP) { PROBLEM "RS_XML_xmlAddSiblingAt expects XMLInternalNode objects for the node to add" ERROR; } p = (xmlNodePtr) R_ExternalPtrAddr(r_to); n = (xmlNodePtr) R_ExternalPtrAddr(r_node); if(!p || !n) { PROBLEM "either the parent or child node is NULL" ERROR; } f = LOGICAL(r_after)[0] ? xmlAddNextSibling : xmlAddPrevSibling ; ans = f(p, n); /* If adding to the root node and inserting a node before the * current first child, update the document.*/ if(p->doc && p->doc->children == p && n->next == p) p->doc->children = n; incrementDocRefBy(p->doc, getNodeCount(n)); return(R_createXMLNodeRef(ans, manageMemory)); } USER_OBJECT_ RS_XML_replaceXMLNode(USER_OBJECT_ r_old, USER_OBJECT_ r_new, USER_OBJECT_ manageMemory) { xmlNodePtr Old, New, ans; if(TYPEOF(r_old) != EXTPTRSXP && TYPEOF(r_new) != EXTPTRSXP) { PROBLEM "R_replaceXMLNode expects XMLInternalNode objects" ERROR; } Old = (xmlNodePtr) R_ExternalPtrAddr(r_old); New = (xmlNodePtr) R_ExternalPtrAddr(r_new); if(!Old) { PROBLEM "NULL value for XML node to replace" ERROR; } ans = xmlReplaceNode(Old, New); return(R_createXMLNodeRef(ans, manageMemory)); } /* a = newXMLNode("a", newXMLNode("b", newXMLNode("c", 3)), newXMLNode("d", "text")) removeChildren(a, 2) */ USER_OBJECT_ RS_XML_removeChildren(USER_OBJECT_ s_node, USER_OBJECT_ kids, USER_OBJECT_ freeNode) { int i, n; USER_OBJECT_ ans; xmlNodePtr node = NULL, tmp; if(GET_LENGTH(s_node)) { node = (xmlNodePtr) R_ExternalPtrAddr(s_node); if(!node) { PROBLEM "Empty XMLInternalNode" ERROR; } } n = GET_LENGTH(kids); PROTECT(ans = NEW_LOGICAL(n)); for(i = 0; i < n; i++) { tmp = (xmlNodePtr) R_ExternalPtrAddr(VECTOR_ELT(kids, i)); if(!tmp) continue; if(node && tmp->parent != node) { PROBLEM "trying to remove a child node from a different parent node" ERROR; } xmlUnlinkNode(tmp); if(LOGICAL(freeNode)[0]) xmlFreeNode(tmp); LOGICAL(ans)[i] = TRUE; } UNPROTECT(1); return(ans); } USER_OBJECT_ R_xmlRootNode(USER_OBJECT_ sdoc, USER_OBJECT_ skipDtd, USER_OBJECT_ manageMemory) { xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); xmlNodePtr node = NULL; if(doc) node = doc->children; if(!node) { PROBLEM "empty XML document" WARN; return(NULL_USER_OBJECT); } if(LOGICAL(skipDtd)[0]) { while(node && node->type != XML_ELEMENT_NODE /* (node->type == XML_DTD_NODE || node->type == XML_COMMENT_NODE) */) { node = node->next; } } if(node == NULL) return(NULL_USER_OBJECT); return(R_createXMLNodeRef(node, manageMemory)); } /** Create an S object representing a newly created internal XML document object. */ int R_numXMLDocs = 0; int R_numXMLDocsFreed = 0; USER_OBJECT_ R_newXMLDoc(USER_OBJECT_ dtd, USER_OBJECT_ namespaces, USER_OBJECT_ isHTML) { xmlDocPtr doc; if(LOGICAL(isHTML)[0]) { const char *d = (TYPEOF(dtd) == STRSXP && Rf_length(dtd)) ? CHAR_DEREF(STRING_ELT(dtd, 0)) : NULL; if(d[0] == '5') doc = htmlNewDoc("", NULL); else doc = htmlNewDocNoDtD(d && d[0] ? CHAR_TO_XMLCHAR(d) : NULL, NULL); } else doc = xmlNewDoc(CHAR_TO_XMLCHAR("1.0")); R_numXMLDocs++; return(R_createXMLDocRef(doc)); } USER_OBJECT_ R_newXMLDtd(USER_OBJECT_ sdoc, USER_OBJECT_ sdtdName, USER_OBJECT_ sexternalID, USER_OBJECT_ ssysID, USER_OBJECT_ manageMemory) { xmlDocPtr doc = NULL; xmlChar *dtdName = NULL; xmlChar *externalID = NULL; xmlChar *sysID = NULL; xmlDtdPtr node; #define GET_STR_VAL(x) \ if(GET_LENGTH(s##x) > 0) { \ x = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(s##x, 0))); \ if(!x[0]) \ x = NULL; \ } GET_STR_VAL(dtdName) GET_STR_VAL(externalID) GET_STR_VAL(sysID) if(sdoc != NULL_USER_OBJECT && TYPEOF(sdoc) == EXTPTRSXP) doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); node = xmlNewDtd(doc, dtdName, externalID, sysID); /* should we do this??? xmlAddChild((xmlNodePtr) doc, (xmlNodePtr) DTD); */ return(R_createXMLNodeRef((xmlNodePtr) node, manageMemory)); } /* */ USER_OBJECT_ R_xmlSetNs(USER_OBJECT_ s_node, USER_OBJECT_ s_ns, USER_OBJECT_ append) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); xmlNsPtr ns = NULL; if(s_ns != NULL_USER_OBJECT) ns = (xmlNsPtr) R_ExternalPtrAddr(s_ns); if(LOGICAL(append)[0]) { xmlNsPtr el; if(!node->ns) xmlSetNs(node, xmlNewNs(node, NULL, NULL)); el = node->ns; while(el->next) el = el->next; el->next = ns; } else xmlSetNs(node, ns); return(s_ns); } #if 0 /* remove if the above is sufficient. */ SEXP RS_XML_setNS(SEXP s_node, SEXP r_ns) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(s_node); xmlNsPtr ns = (xmlNsPtr) R_ExternalPtrAddr(r_ns); xmlSetNS(node, ns); return(NULL_USER_OBJECT); } #endif static const char *DummyNamespaceHREF = ""; USER_OBJECT_ R_xmlNewNs(USER_OBJECT_ sdoc, USER_OBJECT_ shref, USER_OBJECT_ sprefix) { xmlNodePtr doc = (xmlNodePtr) R_ExternalPtrAddr(sdoc); const char *href = Rf_length(shref) == 0 ? DummyNamespaceHREF : CHAR_DEREF(STRING_ELT(shref, 0)); const char *prefix = NULL; xmlNsPtr ns; if(Rf_length(sprefix)) { prefix = CHAR_DEREF(STRING_ELT(sprefix, 0)); if(!prefix[0]) prefix = NULL; } if(!href[0]) href = NULL; ns = xmlNewNs(doc, CHAR_TO_XMLCHAR(href), CHAR_TO_XMLCHAR(prefix)); return(R_createXMLNsRef(ns)); /*XXX */ } USER_OBJECT_ RS_XML_clone(USER_OBJECT_ obj, USER_OBJECT_ recursive, USER_OBJECT_ manageMemory) { if(TYPEOF(obj) != EXTPTRSXP) { PROBLEM "clone can only be applied to an internal, C-level libxml2 object" ERROR; } if(!R_ExternalPtrAddr(obj)) { PROBLEM "NULL value passed to clone, possibly from a previous session" ERROR; } if(R_isInstanceOf(obj, "XMLInternalElementNode")) { xmlNodePtr node, node_ans; node = (xmlNodePtr) R_ExternalPtrAddr(obj); node_ans = xmlCopyNode(node, INTEGER(recursive)[0]); return(R_createXMLNodeRef(node_ans, manageMemory)); } else if(R_isInstanceOf(obj, "XMLInternalDocument") || R_isInstanceOf(obj, "XMLInternalDOM")) { xmlDocPtr doc; doc = (xmlDocPtr) R_ExternalPtrAddr(obj); return(R_createXMLDocRef(xmlCopyDoc(doc, INTEGER(recursive)[0]))); // , manageMemory)); } PROBLEM "clone doesn't (yet) understand this internal data type" ERROR; return(NULL_USER_OBJECT); /* never reached */ } #ifdef R_XML_DEBUG xmlDocPtr currentDoc; #endif USER_OBJECT_ R_createXMLDocRef(xmlDocPtr doc) { SEXP ref, tmp; #ifdef R_XML_DEBUG currentDoc = doc; #endif if(!doc) return(R_NilValue); initDocRefCounter(doc); incrementDocRef(doc); #ifdef R_XML_DEBUG fprintf(stderr, "creating document reference %s %p, count = %d\n", doc->URL ? doc->URL : "internally created", doc, * ((int*) doc->_private)); #endif PROTECT(ref = R_MakeExternalPtr(doc, Rf_install("XMLInternalDocument"), R_NilValue)); PROTECT(tmp = NEW_CHARACTER(1)); SET_STRING_ELT(tmp, 0, mkChar( doc->type == XML_HTML_DOCUMENT_NODE ? "HTMLInternalDocument" : "XMLInternalDocument")); SET_CLASS(ref, tmp); UNPROTECT(2); return(ref); } USER_OBJECT_ R_removeXMLNsRef(xmlNsPtr ns) { /*XXX xmlNsPtr p = (xmlNsPtr) R_ExternalPtrAddr(); */ PROBLEM "C routine R_removeXMLNsRef() not implemented yet" ERROR; return(R_NilValue); } USER_OBJECT_ R_createXMLNsRef(xmlNsPtr ns) { SEXP ref, tmp; PROTECT(ref = R_MakeExternalPtr(ns, Rf_install("XMLNamespaceRef"), R_NilValue)); PROTECT(tmp = NEW_CHARACTER(1)); SET_STRING_ELT(tmp, 0, mkChar("XMLNamespaceRef")); SET_CLASS(ref, tmp); UNPROTECT(2); return(ref); } USER_OBJECT_ R_convertXMLNsRef(SEXP r_ns) { SEXP ref, ans; xmlNsPtr ns; if(TYPEOF(r_ns) != EXTPTRSXP) { PROBLEM "wrong type for namespace reference" ERROR; } ns = (xmlNsPtr) R_ExternalPtrAddr(r_ns); PROTECT(ans = mkString(ns->href)); SET_NAMES(ans, mkString(ns->prefix ? XMLCHAR_TO_CHAR(ns->prefix) : "")); UNPROTECT(1); return(ans); } USER_OBJECT_ R_getXMLNsRef(USER_OBJECT_ r_node) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); if(!node) return(R_NilValue); return(node->ns ? R_createXMLNsRef(node->ns) : R_NilValue); } const char * R_getInternalNodeClass(xmlElementType type) { const char * p = ""; switch(type) { case XML_ELEMENT_NODE: p = "XMLInternalElementNode"; break; case XML_ELEMENT_DECL: p = "XMLInternalElementDeclNode"; break; case XML_TEXT_NODE: p = "XMLInternalTextNode"; break; case XML_CDATA_SECTION_NODE: p = "XMLInternalCDataNode"; break; case XML_ENTITY_NODE: p = "XMLInternalEntityNode"; break; case XML_ENTITY_REF_NODE: p = "XMLInternalEntityRefNode"; break; case XML_PI_NODE: p = "XMLInternalPINode"; break; case XML_COMMENT_NODE: p = "XMLInternalCommentNode"; break; case XML_NOTATION_NODE: p = "XMLInternalNotationNode"; break; case XML_DTD_NODE: p = "XMLDTDNode"; break; case XML_NAMESPACE_DECL: p = "XMLNamespaceDeclaration"; break; case XML_XINCLUDE_START: p = "XMLXIncludeStartNode"; break; case XML_XINCLUDE_END: p = "XMLXIncludeEndNode"; break; case XML_ENTITY_DECL: p = "XMLInternalEntityRefNode"; break; case XML_ATTRIBUTE_DECL: p = "XMLAttributeDeclNode"; break; case XML_DOCUMENT_NODE: p = "XMLDocumentNode"; break; case XML_HTML_DOCUMENT_NODE: p = "XMLHTMLDocumentNode"; break; case XML_DOCUMENT_TYPE_NODE: p = "XMLDocumentTypeNode"; break; case XML_DOCUMENT_FRAG_NODE: p = "XMLDocumentFragNode"; break; case XML_ATTRIBUTE_NODE: p = "XMLAttributeNode"; break; default: p = "XMLUnknownInternalNode"; } return(p); } SEXP R_createXMLNodeRefDirect(xmlNodePtr node, int addFinalizer) { SEXP ref, tmp; PROTECT(ref = R_MakeExternalPtr(node, Rf_install("XMLInternalNode"), R_NilValue)); #ifdef XML_REF_COUNT_NODES if(addFinalizer > 0 || (addFinalizer < 0 && !IS_NOT_OUR_NODE_TO_TOUCH(node))) { #ifdef R_XML_DEBUG fprintf(stderr, "Creating reference with finalizer for %s (%p) '%s'\n", node->name, node, node->type == XML_TEXT_NODE ? node->content : "");fflush(stderr); #endif R_RegisterCFinalizer(ref, decrementNodeRefCount); } /* #else #warning "no ref counting enabled" */ #endif PROTECT(tmp = NEW_CHARACTER(3)); SET_STRING_ELT(tmp, 0, mkChar(R_getInternalNodeClass(node->type))); SET_STRING_ELT(tmp, 1, mkChar("XMLInternalNode")); SET_STRING_ELT(tmp, 2, mkChar("XMLAbstractNode")); SET_CLASS(ref, tmp); UNPROTECT(2); return(ref); } /** Used to be used as R_XML_getManageMemory(manageMemory, node->doc, node) > 0 ? R_createXMLNodeRef() : R_createXMLNodeRefDirect(node, 0)); */ USER_OBJECT_ R_createXMLNodeRef(xmlNodePtr node, USER_OBJECT_ finalize) { int *val; int addFinalizer = 0; if(!node) return(NULL_USER_OBJECT); addFinalizer = R_XML_getManageMemory(finalize, node->doc, node); /* !IS_NOT_OUR_NODE_TO_TOUCH(node) */ if(addFinalizer && ((node->_private && ((int*)node->_private)[1] == (int) R_MEMORY_MANAGER_MARKER) || !node->doc || (!(IS_NOT_OUR_DOC_TO_TOUCH(node->doc))))) { if(node->_private == NULL) { node->_private = calloc(2, sizeof(int)); val = (int *) node->_private; val[1] = R_MEMORY_MANAGER_MARKER; } val = (int *) node->_private; (*val)++; if(*val == 1) incrementDocRef(node->doc); #ifdef R_XML_DEBUG fprintf(stderr, "creating reference to node (%s, %d) count = %d (%p) (doc = %p count = %d)\n", node->name, node->type, (int) *val, node, node->doc, (node->doc && node->doc->_private) ? ((int *)node->doc->_private)[0] : -1); #endif } return(R_createXMLNodeRefDirect(node, addFinalizer /* !IS_NOT_OUR_NODE_TO_TOUCH(node) */ )); } /* May not be used. Not yet. The idea is to allow the R user to explicitly add a finalizer, like we do for a document. */ SEXP R_addXMLNodeFinalizer(SEXP r_node) { #ifdef XML_REF_COUNT_NODES /* ??? should this be ifndef or ifdef.?? */ xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); R_RegisterCFinalizer(r_node, decrementNodeRefCount); #endif return(r_node); } #define ValOrNULL(x) CHAR_TO_XMLCHAR ((x && x[0] ? x : NULL)) /** Write the XML tree/DOM to a file or into a buffer (depending on the value of sfileName) It would be nice to use connections, but this is not yet possible in full generality. Later @sdoc: the S object that is a reference to the top-level XML DOM. @sfileName: the S object that gives the name of the file to which the DOM should be written or alternatively, the S value `NULL' indicating that the DOM should be dumped to a buffer and returned as an S string. @compression: if @sfileName is the name of a file and we are not returning the DOM as a string, then we set the compression level to the value of this integer, unless it is omitted and specified as the S value `NULL'. */ USER_OBJECT_ R_saveXMLDOM(USER_OBJECT_ sdoc, USER_OBJECT_ sfileName, USER_OBJECT_ compression, USER_OBJECT_ sindent, USER_OBJECT_ prefix, USER_OBJECT_ r_encoding) { xmlDocPtr doc; const char *fileName = NULL; USER_OBJECT_ ans = NULL_USER_OBJECT; xmlDtdPtr dtd = NULL; int oldIndent = xmlIndentTreeOutput; const char *encoding = CHAR_DEREF(STRING_ELT(r_encoding, 0)); if(TYPEOF(sdoc) != EXTPTRSXP) { PROBLEM "document passed to R_saveXMLDOM is not an external pointer" ERROR; } doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); if(doc == NULL) return(NEW_CHARACTER(0)); xmlIndentTreeOutput = LOGICAL_DATA(sindent)[0]; if(GET_LENGTH(prefix) == 3) { dtd = xmlNewDtd(doc, ValOrNULL(CHAR_DEREF(STRING_ELT(prefix, 0))), ValOrNULL(CHAR_DEREF(STRING_ELT(prefix, 1))), ValOrNULL(CHAR_DEREF(STRING_ELT(prefix, 2)))); dtd->parent = doc; dtd->doc = doc; dtd->prev = doc->children->prev; dtd->next = doc->children; doc->children->prev = (xmlNodePtr) dtd; doc->children = (xmlNodePtr) dtd; } /* Figure out what the name of the file is, or if it is NULL. */ if(GET_LENGTH(sfileName)) fileName = CHAR_DEREF(STRING_ELT(sfileName, 0)); /* If the user specified a file name, write to it and honor the compression setting they supplied. */ if(fileName && fileName[0]) { int compressionLevel = -1; if(GET_LENGTH(compression)) { compressionLevel = xmlGetDocCompressMode(doc); xmlSetDocCompressMode(doc, INTEGER_DATA(compression)[0]); } if(encoding && encoding[0]) xmlSaveFileEnc(CHAR_DEREF(STRING_ELT(sfileName, 0)), doc, encoding); #if 0 else xmlSaveFile(CHAR_DEREF(STRING_ELT(sfileName, 0)), doc); #else else { FILE *f; f = fopen(CHAR_DEREF(STRING_ELT(sfileName, 0)), "w"); xmlDocFormatDump(f, doc, 1); fclose(f); } #endif if(compressionLevel != -1) { xmlSetDocCompressMode(doc, compressionLevel); } } else { /* So we are writing to a buffer and returning the DOM as an S string. */ xmlChar *mem; int size; /*??? Do we need to allocate this memory? */ PROTECT(ans = NEW_CHARACTER(1)); if(encoding && encoding[0]) xmlDocDumpFormatMemoryEnc(doc, &mem, &size, encoding, LOGICAL_DATA(sindent)[0]); else { xmlDocDumpFormatMemory(doc, &mem, &size, 1); /* xmlDocDumpMemory(doc, &mem, &size); original */ } if(dtd) { xmlNodePtr tmp; doc->extSubset = NULL; tmp = doc->children->next; tmp->prev = NULL; doc->children = tmp; xmlFreeDtd(dtd); } if(mem) { DECL_ENCODING_FROM_DOC(doc) SET_STRING_ELT(ans, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(mem))); xmlFree(mem); } else { /*XXX get the error message from libxml2 */ PROBLEM "failed to write XML document contents" ERROR; } UNPROTECT(1); return(ans); } xmlIndentTreeOutput = oldIndent; return(ans); } USER_OBJECT_ RS_XML_setDoc(USER_OBJECT_ snode, USER_OBJECT_ sdoc) { /*Might use xmlCopyNode or xmlCopyNodeList if we have to make a copy*/ xmlDocPtr doc; xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); if(sdoc != NULL_USER_OBJECT) { doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); } else { doc = xmlNewDoc(CHAR_TO_XMLCHAR("1.0")); R_numXMLDocs++; } xmlDocSetRootElement(doc, node); return(R_createXMLDocRef(doc)); } #if 0 void RS_XML_recursive_unsetDoc(xmlNodePtr node) { xmlNodePtr tmp; node->doc = NULL; tmp = node->children; while(tmp) { RS_XML_recursive_unsetDoc(tmp); tmp = tmp->next; } } #endif /* The following two routines are from Paul Murrell. They fix a problem with xpathApply() changing the document presumably when doing an XPath query on a node within a document. The old version didn't deal with the properties on the node. */ void RS_XML_recursive_unsetTreeDoc(xmlNodePtr node) { xmlAttrPtr prop; if (node == NULL) return; if(node->type == XML_ELEMENT_NODE) { prop = node->properties; while (prop != NULL) { prop->doc = NULL; RS_XML_recursive_unsetListDoc(prop->children); prop = prop->next; } } if (node->children != NULL) RS_XML_recursive_unsetListDoc(node->children); node->doc = NULL; } void RS_XML_recursive_unsetListDoc(xmlNodePtr list) { xmlNodePtr cur; if (list == NULL) return; cur = list; while (cur != NULL) { RS_XML_recursive_unsetTreeDoc(cur); cur = cur->next; } } USER_OBJECT_ RS_XML_unsetDoc(USER_OBJECT_ snode, USER_OBJECT_ unlink, USER_OBJECT_ r_parent, USER_OBJECT_ recursive) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); if(!node) { return(NULL_USER_OBJECT); } if(node->doc && node->doc->children == node) { xmlDocSetRootElement(node->doc, NULL); } if(LOGICAL(unlink)[0]) xmlUnlinkNode(node); node->doc = NULL; node->parent = NULL; if(r_parent != R_NilValue) { node->parent = (xmlNodePtr) R_ExternalPtrAddr(snode); } if(LOGICAL(recursive)[0]) { RS_XML_recursive_unsetTreeDoc(node); } return(ScalarLogical(TRUE)); } SEXP RS_XML_setDocEl(SEXP r_node, SEXP r_doc) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); xmlSetTreeDoc(node, doc); /* node->doc = doc; */ return(R_NilValue); } #ifdef ADD_XML_OUTPUT_BUFFER_CODE /* These two taken from libxml2-2.6.27 They are needed if xmlOutputBufferCreateBuffer() is not in the installed libxml2. It appeared in libxml2-2.6.23, released on Jan 5 2006 */ static int xmlBufferWrite (void * context, const char * buffer, int len) { int ret; ret = xmlBufferAdd((xmlBufferPtr) context, (const xmlChar *) buffer, len); if (ret != 0) return(-1); return(len); } xmlOutputBufferPtr xmlOutputBufferCreateBuffer(xmlBufferPtr buffer, xmlCharEncodingHandlerPtr encoder) { xmlOutputBufferPtr ret; if (buffer == NULL) return(NULL); ret = xmlOutputBufferCreateIO((xmlOutputWriteCallback) xmlBufferWrite, (xmlOutputCloseCallback) NULL, (void *) buffer, encoder); return(ret); } #endif /* Not completed. This could put the node into a new document and then call R_saveXMLDOM() but we are doing it in separate steps with separate C routines and calling these from R. xmlNodeDumpOutput Test: a = newXMLNode("a", "first bit", newXMLNode("b", "contents of b", newXMLNode("c", 3)), "more text") a = newXMLNode("a", newXMLNode("b", newXMLNode("c", 3))) .Call("RS_XML_printXMLNode", a, as.integer(1), as.integer(1), character()) */ USER_OBJECT_ RS_XML_printXMLNode(USER_OBJECT_ r_node, USER_OBJECT_ level, USER_OBJECT_ format, USER_OBJECT_ indent, USER_OBJECT_ r_encoding, USER_OBJECT_ r_encoding_int) { USER_OBJECT_ ans; xmlNodePtr node; const char *encoding = NULL; xmlOutputBufferPtr buf; xmlBufferPtr xbuf; int oldIndent; oldIndent = xmlIndentTreeOutput; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); xmlIndentTreeOutput = LOGICAL(indent)[0]; xbuf = xmlBufferCreate(); if(GET_LENGTH(r_encoding)) encoding = CHAR_DEREF(STRING_ELT(r_encoding, 0)); buf = xmlOutputBufferCreateBuffer(xbuf, NULL); // xmlKeepBlanksDefault(0); xmlNodeDumpOutput(buf, node->doc, node, INTEGER(level)[0], INTEGER(format)[0], encoding); xmlOutputBufferFlush(buf); xmlIndentTreeOutput = oldIndent; if(xbuf->use > 0) { /*XXX this const char * in CHARSXP means we have to make multiple copies. */ if(INTEGER(r_encoding_int)[0] == CE_NATIVE) ans = ScalarString(CreateCharSexpWithEncoding(encoding, xbuf->content)); else ans = ScalarString(mkCharCE(xbuf->content, INTEGER(r_encoding_int)[0])); } else ans = NEW_CHARACTER(1); xmlOutputBufferClose(buf); return(ans); } SEXP R_setXMLInternalTextNode_noenc(SEXP node) { xmlNodePtr n = (xmlNodePtr) R_ExternalPtrAddr(node); if(!n) { PROBLEM "null value passed for XMLInternalTextNode" ERROR; } n->name = (const xmlChar *) (&xmlStringTextNoenc); return(ScalarLogical(TRUE)); } SEXP /*R_setXMLInternalTextNode_value(SEXP node, SEXP value, SEXP r_encoding)*/ R_setXMLInternalTextNode_value(SEXP node, SEXP value) { xmlNodePtr n = (xmlNodePtr) R_ExternalPtrAddr(node); // xmlChar *tmp; const char *str; DECL_ENCODING_FROM_NODE(n) if(n->type != XML_TEXT_NODE) { PROBLEM "Can only set value on an text node" ERROR; } str = CHAR(STRING_ELT(value, 0)); xmlNodeSetContent(n, str); return(node); } SEXP R_xmlSetContent(SEXP node, SEXP content) { xmlNodePtr n = (xmlNodePtr) R_ExternalPtrAddr(node); xmlNodeSetContent(n, CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(content, 0)))); return(R_NilValue); } SEXP R_xmlNodeValue(SEXP node, SEXP raw, SEXP r_encoding) { xmlNodePtr n = (xmlNodePtr) R_ExternalPtrAddr(node); xmlChar *tmp; SEXP ans; DECL_ENCODING_FROM_NODE(n) if(!n) { PROBLEM "null value for xml node reference" ERROR; } tmp = xmlNodeGetContent(n); /* xmlGetNodeRawString xmlGetNodeString if(GET_LENGTH(raw) == 0) else if(LOGICAL(raw)[0]) { } else { } */ if(tmp) { if(INTEGER(r_encoding)[0] == CE_NATIVE) ans = ScalarString(CreateCharSexpWithEncoding(encoding, tmp)); else ans = ScalarString(mkCharCE(tmp, INTEGER(r_encoding)[0])); free(tmp); // ans = mkString(XMLCHAR_TO_CHAR(tmp)); // Just playing: ans = ScalarString(mkCharCE(tmp, CE_UTF8)); } else ans = NEW_CHARACTER(0); return(ans); } USER_OBJECT_ R_xmlNsAsCharacter(USER_OBJECT_ s_ns) { xmlNsPtr ns = NULL; USER_OBJECT_ ans, names; const xmlChar *encoding = NULL; ns = (xmlNsPtr) R_ExternalPtrAddr(s_ns); #ifdef LIBXML_NAMESPACE_HAS_CONTEXT encoding = ns->context ? ns->context->encoding : NULL; #endif PROTECT(ans = NEW_CHARACTER(2)); PROTECT(names = NEW_CHARACTER(2)); SET_STRING_ELT(names, 0, mkChar("prefix")); SET_STRING_ELT(names, 1, mkChar("href")); if(ns->prefix) SET_STRING_ELT(ans, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(ns->prefix))); if(ns->href) SET_STRING_ELT(ans, 1, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(ns->href))); SET_NAMES(ans, names); UNPROTECT(2); return(ans); } USER_OBJECT_ R_getXMLNodeDocument(USER_OBJECT_ s_node) { xmlNodePtr n = (xmlNodePtr) R_ExternalPtrAddr(s_node); if(!n->doc) return(NULL_USER_OBJECT); /*??? Does this arrange to free it? */ return(R_createXMLDocRef(n->doc)); } USER_OBJECT_ RS_XML_isDescendantOf(USER_OBJECT_ r_node, USER_OBJECT_ r_top, USER_OBJECT_ strict) { xmlNodePtr node, ptr, top; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); top = (xmlNodePtr) R_ExternalPtrAddr(r_top); if(!node || !top) { PROBLEM "null value passed to RS_XML_isDescendantOf" ERROR; } /*XXX */ if(node->type == XML_NAMESPACE_DECL) return(ScalarLogical(TRUE)); ptr = node; while(ptr && ptr->type != XML_DOCUMENT_NODE && ptr->type != XML_HTML_DOCUMENT_NODE) { if(ptr == top) return(ScalarLogical(ptr == node && LOGICAL(strict)[0] ? FALSE : TRUE)); ptr = ptr->parent; } return(ScalarLogical(FALSE)); } SEXP R_XML_indexOfChild(SEXP r_node) { xmlNodePtr node, ptr; // parent int i = 0; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); ptr = node->parent->children; while(ptr) { if(ptr == node) return(ScalarInteger(i + 1)); i++; ptr = ptr->next; } return(R_NilValue); } SEXP R_setNamespaceFromAncestors(SEXP r_node) { xmlNodePtr node, ptr; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); ptr = node->parent; while(ptr) { if((ptr->type != XML_HTML_DOCUMENT_NODE && ptr->type != XML_DOCUMENT_NODE) && ptr->ns && ptr->ns->href && (!ptr->ns->prefix || !ptr->ns->prefix[0])) { xmlSetNs(node, ptr->ns); return(ScalarLogical(TRUE)); } ptr = ptr->parent; } return(ScalarLogical(FALSE)); } #ifdef R_HAS_REMOVE_FINALIZERS int xmlNode_removeFinalizers(xmlNodePtr node) { xmlNodePtr tmp; int count = 0; #if R_XML_DEBUG fprintf(stderr, "xml removeFinalizers %p %s\n", node, node->name); #endif count = R_RemoveExtPtrWeakRef_direct(node); tmp = node->children; while(tmp) { count += xmlNode_removeFinalizers(tmp); tmp = tmp->next; } return(count); } SEXP R_xmlNode_removeFinalizers(SEXP r_node) { int num; xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); num = xmlNode_removeFinalizers(node); return(ScalarInteger(num)); } #endif SEXP R_xmlSearchNs(SEXP r_doc, SEXP r_node, SEXP r_ns, SEXP r_asPrefix) { const char * val; xmlNsPtr ns; xmlDocPtr doc = (xmlDocPtr) r_doc == NULL_USER_OBJECT ? NULL : R_ExternalPtrAddr(r_doc); xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); if(Rf_length(r_ns) == 0) return(NEW_CHARACTER(0)); val = CHAR_DEREF(STRING_ELT(r_ns, 0)); ns = LOGICAL(r_asPrefix)[0] ? xmlSearchNs(doc, node, val) : xmlSearchNsByHref(doc, node, val); if(!ns) return(NEW_CHARACTER(0)); else { SEXP r_ans; PROTECT(r_ans = mkString(ns->href)); SET_NAMES(r_ans, mkString(ns->prefix ? XMLCHAR_TO_CHAR(ns->prefix) : "")); UNPROTECT(1); return(r_ans); } } USER_OBJECT_ R_getChildByIndex(USER_OBJECT_ r_node, USER_OBJECT_ r_index, USER_OBJECT_ r_addFinalizer) { xmlNodePtr node, parent, ptr; int i = 0, idx; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); ptr = node->children; idx = INTEGER(r_index)[0]; while(ptr && i < idx) { ptr = ptr->next; i++; } return(R_createXMLNodeRef(ptr, r_addFinalizer)); } USER_OBJECT_ R_getChildByName(USER_OBJECT_ r_node, USER_OBJECT_ r_index, USER_OBJECT_ r_addFinalizer) { xmlNodePtr node, parent, ptr; int i = 0, idx; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); ptr = node->children; const char *name = CHAR_DEREF(STRING_ELT(r_index, 0)); while(ptr) { if(ptr->name && strcmp(name, ptr->name) == 0) break; ptr = ptr->next; } return(R_createXMLNodeRef(ptr, r_addFinalizer)); } /* This is a C-level version equivalent to xmlApply(node, xmlValue) */ USER_OBJECT_ R_childStringValues(SEXP r_node, SEXP r_len, SEXP r_asVector, SEXP r_encoding, SEXP r_addNames) { xmlNodePtr node, kid; int len, i; SEXP ans, names = NULL; int asVector = LOGICAL(r_asVector)[0]; int encoding = INTEGER(r_encoding)[0]; xmlChar *tmp; int nprotect = 0; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); len = INTEGER(r_len)[0]; if(asVector) ans = NEW_CHARACTER(len); else ans = NEW_LIST(len); PROTECT(ans); nprotect++; if(LOGICAL(r_addNames)[0]) { PROTECT(names = NEW_CHARACTER(len)); nprotect++; } for(i = 0, kid = node->children; kid && i < len; i++, kid = kid->next) { tmp = xmlNodeGetContent(kid); SEXP val = mkCharCE(tmp, encoding); PROTECT(val); if(asVector) SET_STRING_ELT(ans, i, val); else SET_VECTOR_ELT(ans, i, ScalarString(val)); if(names && kid->name) { SET_STRING_ELT(names, i, mkCharCE(kid->name, encoding)); } UNPROTECT(1); } if(names) SET_NAMES(ans, names); UNPROTECT(nprotect); return(ans); } XML/src/XMLHashTree.c0000644000176000001440000001677112160603560013774 0ustar ripleyusers/* This set of functions is designed to map an internal XML DOM tree to an xmlHashTree. An xmlHashTree() is an environment, and so is mutable. It contains the following elements: 1) nodes each with a unique identifier, e.g. 1, 2, 3. which are used to index them in the elements that specify the structure. 2) .children - an environment 3) .parents - an environment 4) top - the root node Functions .addNode and .nodeIdGenerator If we are not going to be adding to this tree, we don't need these functions. As we move through the internal tree, we can construct a node and then the character vector of children for that node and assign it to the .children environment Suppose we have a tree like A / \ B C / | \ D E F | G We start giving the nodes names by number, i.e. 1, 2, 3,.... To create A, we make the node object as a list with name (A), attributes (NULL), namespace (""), [children], id (1) and env. The children are 2 and 3 The parents */ #include #include #include "DocParse.h" #include "Utils.h" static const char * const nodeElementNames[] = { "name", "attributes", "namespace", "children", "id", "env" }; /* Identifier for the node. Could be anything, so we use the pointer address to ensure uniqueness. Ignore the next definition in the comment! #define SET_NODE_NAME(x, id) sprintf(x, "%d", id) */ #define SET_NODE_NAME(x, id, node) sprintf(x, "%p", node) SEXP makeHashNode(xmlNodePtr node, char *buf, SEXP env, R_XMLSettings *parserSettings) { SEXP ans, names, tmp; int i = 0, numEls = sizeof(nodeElementNames)/sizeof(nodeElementNames[0]); DECL_ENCODING_FROM_NODE(node) int hasValue = node->type == XML_TEXT_NODE || node->type == XML_COMMENT_NODE || node->type == XML_CDATA_SECTION_NODE || node->type == XML_PI_NODE; if(hasValue) numEls++; if(node->nsDef) numEls++; PROTECT(ans = NEW_LIST(numEls)); PROTECT(tmp = mkString(node->name ? XMLCHAR_TO_CHAR(node->name) : "")); if(node->ns) SET_NAMES(tmp, mkString(node->ns->prefix)); SET_VECTOR_ELT(ans, i++, tmp); UNPROTECT(1); SET_VECTOR_ELT(ans, i++, RS_XML(AttributeList)(node, parserSettings)); SET_VECTOR_ELT(ans, i++, ScalarString(ENC_COPY_TO_USER_STRING(node->ns && node->ns->prefix ? XMLCHAR_TO_CHAR(node->ns->prefix) : ""))); /* skip the children */ i = 4; SET_VECTOR_ELT(ans, i++, mkString(buf)); SET_VECTOR_ELT(ans, i++, env); if(hasValue) SET_VECTOR_ELT(ans, i++, mkString(node->content)); if(node->nsDef) SET_VECTOR_ELT(ans, i++, processNamespaceDefinitions(node->nsDef, node, parserSettings)); PROTECT(names = NEW_CHARACTER(numEls)); for(i = 0; i < sizeof(nodeElementNames)/sizeof(nodeElementNames[0]); i++) SET_STRING_ELT(names, i, ENC_COPY_TO_USER_STRING(nodeElementNames[i])); if(hasValue) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("value")); if(node->nsDef) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("namespaceDefinitions")); SET_NAMES(ans, names); UNPROTECT(1); /* The class of the node */ PROTECT(names = NEW_CHARACTER( node->type == XML_ELEMENT_NODE ? 2 : 3)); i = 0; SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLHashTreeNode")); if(node->type == XML_TEXT_NODE) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLTextNode")); else if(node->type == XML_COMMENT_NODE) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLCommentNode")); else if(node->type == XML_CDATA_SECTION_NODE) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLCDataNode")); else if(node->type == XML_PI_NODE) SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLPINode")); SET_STRING_ELT(names, i++, COPY_TO_USER_STRING("XMLNode")); SET_CLASS(ans, names); UNPROTECT(2); return(ans); } unsigned int countChildNodes(xmlNodePtr root, unsigned int *ctr) { xmlNodePtr node; for(node = root->children; node; node = node->next) { if(node->type == XML_XINCLUDE_START) countChildNodes(node, ctr); else if(node->type != XML_XINCLUDE_END) (*ctr)++; } return(*ctr); } void collectChildNodes(xmlNodePtr root, unsigned int *ctr, SEXP kids) { xmlNodePtr node; for(node = root->children; node; node = node->next) { if(node->type == XML_XINCLUDE_END) continue; if(node->type == XML_XINCLUDE_START) collectChildNodes(node, ctr, kids); else { char buf[20]; SET_NODE_NAME(buf, *ctr + 1, node); SET_STRING_ELT(kids, *ctr, mkChar(buf)); (*ctr)++; } } } /* This is the recursive function that process a node and then its children. It builds the node (via makeHashNode) and then adds an entry for the children and parent These provide the structure for the tree. */ void processNode(xmlNodePtr root, xmlNodePtr parent, unsigned int *ctr, int parentId, char *id, SEXP env, SEXP childrenEnv, SEXP parentEnv, R_XMLSettings *parserSettings) { // int i; xmlNodePtr node; SEXP rnode, kids; unsigned int curId = *ctr; char buf[20]; SET_NODE_NAME(id, curId, root); if(root->type != XML_XINCLUDE_START && root->type != XML_XINCLUDE_END) { rnode = makeHashNode(root, id, env, parserSettings); defineVar(Rf_install(id), rnode, env); if(root->parent && root->parent->type != XML_DOCUMENT_NODE && root->parent->type != XML_HTML_DOCUMENT_NODE) { /* Put an entry in the .parents environment for this current id with the single value which is the value of the parentId as a string, equivalent of assign(curId, parentId, parentEnv) */ SET_NODE_NAME(id, curId, root); SET_NODE_NAME(buf, parentId, parent); defineVar(Rf_install(id), mkString(buf), parentEnv); } if(root->children) { /* We have to deal with */ unsigned int i = 0; countChildNodes(root, &i); PROTECT(kids = NEW_CHARACTER(i)); i = 0; collectChildNodes(root, &i, kids); defineVar(Rf_install(id), kids, childrenEnv); UNPROTECT(1); } (*ctr)++; } if(root->type != XML_XINCLUDE_END) { /* Discard XML_INCLUDE_END nodes, but for XML_INCLUDE_START, we need to specify a different parent, i.e., the parent of the XML_INCLUDE_START node so that it will act as the parent of the included nodes. */ xmlNodePtr parent; parent = root->type == XML_XINCLUDE_START ? root->parent : root; for(node = root->children; node; node = node->next) processNode(node, parent, ctr, curId, id, env, childrenEnv, parentEnv, parserSettings); } } /* This is the top-level C entry point for starting the conversion of the node. */ unsigned int convertDOMToHashTree(xmlNodePtr root, SEXP env, SEXP childrenEnv, SEXP parentEnv, R_XMLSettings *parserSettings) { // SEXP rnode; unsigned int ctr = 0; xmlNodePtr tmp; char id[20]; memset(id, '\0', sizeof(id)); for(tmp = root; tmp; tmp = tmp->next) processNode(tmp, (xmlNodePtr) NULL, &ctr, -1, id, env, childrenEnv, parentEnv, parserSettings); return(ctr); } /* This is the R entry point for the conversion of the node and its subnode. */ SEXP R_convertDOMToHashTree(SEXP rnode, SEXP env, SEXP childrenEnv, SEXP parentEnv) { unsigned int ctr; xmlNodePtr node; R_XMLSettings parserSettings; parserSettings.addAttributeNamespaces = 0; parserSettings.converters = NULL_USER_OBJECT; node = (xmlNodePtr) R_ExternalPtrAddr(rnode); ctr = convertDOMToHashTree(node, env, childrenEnv, parentEnv, &parserSettings); return(ScalarInteger(ctr)); } XML/src/XMLEventParse.c0000644000176000001440000006156012160603560014341 0ustar ripleyusers#include "EventParse.h" #include "DocParse.h" #define R_USE_XML_ENCODING 1 #include "Utils.h" #include #ifdef FROM_GNOME_XML_DIR #include #else #include #endif static USER_OBJECT_ createSAX2AttributesList(const xmlChar **attributes, int nb_attributes, int nb_defaulted, const xmlChar *encoding); /* This is an event driven parsing implementation for R & S using the libxml (http://xmlsoft.org) rather than Jim Clark's expat. It works much the same way, but has some advantages a) only one library need be installed for both document and event parsing b) the libxml tools can read data via ftp and http. Both expat and libxml provide the SAX interface and allow us to share a great deal of code between the two event parser implementations within this package. */ void RS_XML(startElementHandler)(void *ctx, const xmlChar *name, const xmlChar **atts); void RS_XML(commentElementHandler)(void *ctx, const xmlChar *val); void RS_XML(charactersHandler)(void *user_data, const xmlChar *ch, int len); void RS_XML(endElementHandler)(void *ctx, const xmlChar *name); void RS_XML(startDocumentHandler)(void *ctx); void RS_XML(endDocumentHandler)(void *ctx); void RS_XML(cdataBlockHandler)(void *ctx, const xmlChar *value, int len); void RS_XML(piHandler)(void *ctx, const xmlChar *target, const xmlChar *data); void RS_XML(entityDeclaration)(void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content); xmlEntityPtr RS_XML(getEntityHandler)(void *userData, const xmlChar *name); xmlEntityPtr RS_XML(getParameterEntityHandler)(void *userData, const xmlChar *name); int RS_XML(isStandAloneHandler)(void *ctx); void RS_XML(warningHandler)(void *ctx, const char *msg, ...); void RS_XML(errorHandler)(void *ctx, const char *format, ...); void RS_XML(fatalErrorHandler)(void *ctx, const char *msg, ...); void RS_XML(structuredErrorHandler)(void *ctx, xmlErrorPtr err); static void RS_XML(initXMLParserHandler)(xmlSAXHandlerPtr xmlParserHandler, int saxVersion); USER_OBJECT_ createSAX2AttributesList(const xmlChar **attributes, int nb_attributes, int nb_defaulted, const xmlChar *encoding) { int i; const char **ptr; USER_OBJECT_ attr_names; USER_OBJECT_ attr_values; USER_OBJECT_ nsURI, nsNames; if(nb_attributes < 1) return(NULL_USER_OBJECT); PROTECT(attr_values = NEW_CHARACTER(nb_attributes)); PROTECT(attr_names = NEW_CHARACTER(nb_attributes)); PROTECT(nsURI = NEW_CHARACTER(nb_attributes)); PROTECT(nsNames = NEW_CHARACTER(nb_attributes)); ptr = (const char **) attributes; /*XXX */ for(i=0; i < nb_attributes; i++, ptr+=5) { char *tmp; int len; len = (ptr[4] - ptr[3] + 1); tmp = malloc(sizeof(char) * len); if(!tmp) { PROBLEM "Cannot allocate space for attribute of length %d", (int) (ptr[4] - ptr[3] + 2) ERROR; } memcpy(tmp, ptr[3], ptr[4] - ptr[3]); tmp[len-1] = '\0'; /*XXX*/ SET_STRING_ELT(attr_values, i, ENC_COPY_TO_USER_STRING(tmp)); free(tmp); SET_STRING_ELT(attr_names, i, ENC_COPY_TO_USER_STRING(ptr[0])); if(ptr[2]) { SET_STRING_ELT(nsURI, i, ENC_COPY_TO_USER_STRING(ptr[2])); if(ptr[1]) SET_STRING_ELT(nsNames, i, ENC_COPY_TO_USER_STRING(ptr[1])); } } SET_NAMES(nsURI, nsNames); SET_NAMES(attr_values, attr_names); Rf_setAttrib(attr_values, Rf_install("namespaces"), nsURI); UNPROTECT(4); return(attr_values); } #ifdef NEED_CLOSE_CALLBACK /* Is this actually needed? We can ensure that all errors are caught by R and so ensure that we close things. */ int RS_XML_closeConnectionInput(void *context) { int status; status = RS_XML_readConnectionInput(context, NULL, -1); return(1); } #endif typedef struct { SEXP fun; xmlParserCtxtPtr ctx; } RFunCtxData; int RS_XML_readConnectionInput(void *context, char *buffer, int len) { SEXP e, tmp, arg; int n; int errorOccurred; const char *str; int left = len-1, count; #ifdef R_XML_DEBUG char *orig = buffer; #endif SEXP fun; xmlParserCtxtPtr ctx; #ifndef LIBXML2_NEW_BUFFER ctx = (xmlParserCtxtPtr) context; fun = ctx->_private; #else RFunCtxData *user = (RFunCtxData *) context; ctx = user->ctx; fun = user->fun; #endif if(len == -1) return(0); /* Setup the expression to call the user-supplied R function or call readLines(con, 1) if they gave us a connection. */ if(isFunction(fun)) { /* Invoke the user-provided function to get the next line. */ PROTECT(e = allocVector(LANGSXP, 2)); SETCAR(e, fun); PROTECT(arg = NEW_INTEGER(1)); INTEGER_DATA(arg)[0] = len; SETCAR(CDR(e), arg); UNPROTECT(1); } else e = fun; n = count = 0; while(n == 0 && left > 0) { str = NULL; /* Update the argument to the user-defined function to say how much is left. */ if(isFunction(fun)) INTEGER_DATA(arg)[0] = left; tmp = R_tryEval(e, R_GlobalEnv, &errorOccurred); if(errorOccurred || !IS_CHARACTER(tmp)) { UNPROTECT(1); if ((ctx->sax != NULL) && (ctx->sax->error != NULL)) /* throw an XML error. */ ctx->sax->error(ctx->userData, "Failed to call read on XML connection"); return(-1); } if(GET_LENGTH(tmp)) { str = CHAR_DEREF(STRING_ELT(tmp, 0)); n = strlen(str); if(n != 0) { /* Just add a new line and do it again. */ if(n > left) { PROBLEM "string read from XML connection too long for buffer: truncating %s to %d characters", str, left WARN; } strncpy(buffer, str, left); left -= n; count += n ; } } else { /* Notice that we may have actually added something to the buffer, specifically a sequence of empty lines \n, and these will be discarded and not passed to the XML parser but these are extraneous anyway. Are they? */ n = count = 0; break; } } #ifdef R_XML_DEBUG fprintf(stderr, "size (len = %d, n=%d, count=%d)\nbuffer= '%s'\nRstring='%s'\n", len, n, count, buffer, str);fflush(stderr); /* fprintf(stderr, "size (n=%d, count=%d) %s '%s'\n", n, count, str, orig);fflush(stderr); */ #endif UNPROTECT(1); return(count); /* return(count == 0 ? -1 : count); */ } xmlParserCtxtPtr RS_XML_xmlCreateConnectionParserCtxt(USER_OBJECT_ con) { xmlParserInputBufferPtr buf; xmlParserCtxtPtr ctx = NULL; #ifdef LIBXML2 ctx = xmlNewParserCtxt(); #ifndef LIBXML2_NEW_BUFFER // < 2.9.1 ctx->_private = (USER_OBJECT_) con; /* R_chk_calloc */ buf = (xmlParserInputBufferPtr) calloc(1, sizeof(xmlParserInputBuffer)); buf->readcallback = RS_XML_readConnectionInput; buf->context = (void*) ctx; buf->raw = NULL; /* buf->buffer; */ xmlBufferPtr tmp = xmlBufferCreate(); buf->buffer = tmp; #else RFunCtxData *userData = (RFunCtxData *) R_alloc(sizeof(RFunCtxData), 1); userData->fun = con; userData->ctx = ctx; buf = xmlParserInputBufferCreateIO(RS_XML_readConnectionInput, NULL, userData, XML_CHAR_ENCODING_NONE); #endif xmlParserInputPtr input = xmlNewIOInputStream(ctx, buf, XML_CHAR_ENCODING_NONE); if(!input) { PROBLEM "can't create new IOInputStream" ERROR; } inputPush(ctx, input); #endif return(ctx); } int RS_XML(libXMLEventParse)(const char *fileName, RS_XMLParserData *parserData, RS_XML_ContentSourceType asText, int saxVersion) { xmlSAXHandlerPtr xmlParserHandler; xmlParserCtxtPtr ctx; int status; switch(asText) { case RS_XML_TEXT: ctx = xmlCreateDocParserCtxt(CHAR_TO_XMLCHAR(fileName)); break; case RS_XML_FILENAME: ctx = xmlCreateFileParserCtxt(fileName); break; case RS_XML_CONNECTION: ctx = RS_XML_xmlCreateConnectionParserCtxt((USER_OBJECT_) fileName); break; default: ctx = NULL; } if(ctx == NULL) { PROBLEM "Can't parse %s", fileName ERROR; } xmlParserHandler = (xmlSAXHandlerPtr) S_alloc(sizeof(xmlSAXHandler), 1); /* Make certain this is initialized so that we don't have any references to unwanted routines! */ memset(xmlParserHandler, '\0', sizeof(xmlSAXHandler)); RS_XML(initXMLParserHandler)(xmlParserHandler, saxVersion); parserData->ctx = ctx; ctx->userData = parserData; ctx->sax = xmlParserHandler; status = xmlParseDocument(ctx); ctx->sax = NULL; xmlFreeParserCtxt(ctx); return(status); /* Free(xmlParserHandler); */ } int R_isBranch(const xmlChar *localname, RS_XMLParserData *rinfo) { int n; if(rinfo->current) return(-2); /* we are processing a branch */ if((n = GET_LENGTH(rinfo->branches)) > 0) { int i; USER_OBJECT_ names = GET_NAMES(rinfo->branches); for(i = 0 ; i < n ; i++) { if(strcmp(XMLCHAR_TO_CHAR(localname), CHAR_DEREF(STRING_ELT(names, i))) == 0) { return(i); } } } return(-1); } char * getPropertyValue(const xmlChar **ptr) { int len; char *tmp; len = (ptr[4] - ptr[3] + 1); tmp = malloc(sizeof(char) * len); if(!tmp) { PROBLEM "Cannot allocate space for attribute of length %d", (int) (ptr[4] - ptr[3] + 2) ERROR; } memcpy(tmp, ptr[3], ptr[4] - ptr[3]); tmp[len-1] = '\0'; /*XXX*/ return(tmp); } void R_processBranch(RS_XMLParserData * rinfo, int branchIndex, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes, Rboolean sax1) { xmlNodePtr node; node = xmlNewNode(NULL, localname); if(attributes) { const xmlChar ** p = attributes; int i; if(sax1) { for(i = 0; *p ; i += 2, p += 2) xmlSetProp(node, p[0], p[1]); /*??? Do we need to xmlStrdup() this. */ } else { const xmlChar **ptr = p; for(i = 0; i < nb_attributes; i++, ptr += 5) { /*XXX does this get freed later on?*/ xmlSetProp(node, xmlStrdup(ptr[0]), getPropertyValue(ptr)); } } } if(rinfo->current) { /* Add to children */ xmlAddChild(rinfo->current, node); } else { rinfo->top = node; rinfo->branchIndex = branchIndex; } rinfo->current = node; } void R_xmlFreeNode(SEXP node) { xmlNodePtr p; p = R_ExternalPtrAddr(node); if(p) { xmlFreeNode(p); #ifdef R_XML_DEBUG fprintf(stderr, "Freeing XML node from a branch\n"); #endif } R_SetExternalPtrAddr(node, NULL_USER_OBJECT); } int numDocsCreated = 0; void R_reportDocGC() { REprintf("\n", numDocsCreated, R_numXMLDocs, R_numXMLDocsFreed); } void R_endBranch(RS_XMLParserData *rinfo, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI) { if(rinfo->current) { xmlNodePtr tmp; xmlDocPtr doc = NULL; tmp = rinfo->current; if(tmp->parent == NULL) { /* Call the function with the given node.*/ SEXP fun, args; USER_OBJECT_ rnode; if(rinfo->dynamicBranchFunction) fun = rinfo->dynamicBranchFunction; else { fun = VECTOR_ELT(rinfo->branches, rinfo->branchIndex); } PROTECT(args = NEW_LIST(1)); if(tmp->doc == NULL) { doc = xmlNewDoc("1.0"); initDocRefCounter(doc); xmlDocSetRootElement(doc, tmp); /* fprintf(stderr, "\n", doc); */ numDocsCreated++; } SET_VECTOR_ELT(args, 0, rnode = R_createXMLNodeRef(tmp, rinfo->finalize)); RS_XML(invokeFunction)(fun, args, NULL, rinfo->ctx); UNPROTECT(1); /* xmlFreeNode(rinfo->top); rinfo->top = NULL; */ #if 0 fprintf(stderr, "Finishing branch for %s %s\n", tmp->name, tmp->properties->children->content); #endif /* if(rinfo->dynamicBranchFunction) R_ReleaseObject(rinfo->dynamicBranchFunction); */ } rinfo->current = rinfo->current->parent; if(rinfo->current && (rinfo->current->type == XML_DOCUMENT_NODE || rinfo->current->type == XML_HTML_DOCUMENT_NODE)) rinfo->current = NULL; } } static int isBranchFunction(SEXP obj) { int i, n; SEXP classes; if(TYPEOF(obj) != CLOSXP) return(0); classes = GET_CLASS(obj); n = GET_LENGTH(classes); for(i = 0; i < n; i++) if(strcmp(CHAR(STRING_ELT(classes, i)), "SAXBranchFunction") == 0) return(1); return(0); } static void RS_XML(xmlSAX2StartElementNs)(void * userData, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes) { int i, n; USER_OBJECT_ tmp, names; USER_OBJECT_ opArgs, ans; RS_XMLParserData *rinfo = (RS_XMLParserData*) userData; DECL_ENCODING_FROM_EVENT_PARSER(rinfo) if(!localname) return; /* if there is a branch function in the branches argument of xmlEventParse() with this name, call that and return.*/ if((i = R_isBranch(localname, rinfo)) != -1) { R_processBranch(rinfo, i, localname, prefix, URI, nb_namespaces, namespaces, nb_attributes, nb_defaulted, attributes, FALSE); return; } PROTECT(opArgs = NEW_LIST(4)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(localname))); /* Now convert the attributes list. */ SET_VECTOR_ELT(opArgs, 1, createSAX2AttributesList(attributes, nb_attributes, nb_defaulted, encoding)); PROTECT(tmp = NEW_CHARACTER(1)); if(URI) { SET_STRING_ELT(tmp, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(URI))); SET_NAMES(tmp, ScalarString(CreateCharSexpWithEncoding(encoding, ( (void*)prefix ? XMLCHAR_TO_CHAR(prefix) : "")))); } SET_VECTOR_ELT(opArgs, 2, tmp); UNPROTECT(1); n = nb_namespaces; PROTECT(tmp = NEW_CHARACTER(n)); PROTECT(names = NEW_CHARACTER(n)); for(i = 0, n = 0; n < nb_namespaces; n++, i+=2) { SET_STRING_ELT(tmp, n, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(namespaces[i+1]))); if(namespaces[i]) SET_STRING_ELT(names, n, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(namespaces[i]))); } SET_NAMES(tmp, names); SET_VECTOR_ELT(opArgs, 3, tmp); UNPROTECT(2); ans = RS_XML(callUserFunction)(HANDLER_FUN_NAME(rinfo, "startElement"), XMLCHAR_TO_CHAR(localname), rinfo, opArgs); /* If the handler function returned us a SAXBranchFunction function, then we need to build the node's sub-tree and then invoke the function with that node as the main argument. (It may also get the context/parser.) */ if(isBranchFunction(ans)) { /* Hold on to the function to avoid it being garbage collected. */ R_PreserveObject(rinfo->dynamicBranchFunction = ans); /* Start the creation of the node's sub-tree. */ R_processBranch(rinfo, -1, localname, prefix, URI, nb_namespaces, namespaces, nb_attributes, nb_defaulted, attributes, FALSE); } UNPROTECT(1); } static void RS_XML(xmlSAX2EndElementNs)(void * ctx, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI) { USER_OBJECT_ args, tmp, fun; RS_XMLParserData *rinfo = (RS_XMLParserData *) ctx; DECL_ENCODING_FROM_EVENT_PARSER(rinfo) if(rinfo->current) { R_endBranch(rinfo, localname, prefix, URI); return; } PROTECT(args = NEW_LIST(2)); SET_VECTOR_ELT(args, 0, ScalarString(ENC_COPY_TO_USER_STRING(localname))); PROTECT(tmp = ScalarString(ENC_COPY_TO_USER_STRING((XMLCHAR_TO_CHAR(URI)) ? XMLCHAR_TO_CHAR(URI) : ""))); if(prefix) SET_NAMES(tmp, ScalarString(ENC_COPY_TO_USER_STRING(prefix))); SET_VECTOR_ELT(args, 1, tmp); fun = findEndElementFun(localname, rinfo); if(fun) { USER_OBJECT_ val = RS_XML(invokeFunction)(fun, args, rinfo->stateObject, rinfo->ctx); updateState(val, rinfo); } else RS_XML(callUserFunction)(HANDLER_FUN_NAME(ctx, "endElement"), NULL, (RS_XMLParserData *)ctx, args); UNPROTECT(2); } static void RS_XML(xmlSAX2StartDocument)(void *userData) { } void RS_XML(initXMLParserHandler)(xmlSAXHandlerPtr xmlParserHandler, int saxVersion) { if(saxVersion == 2) { xmlParserHandler->initialized = 0; xmlSAX2InitDefaultSAXHandler(xmlParserHandler, 0); xmlParserHandler->initialized = XML_SAX2_MAGIC; xmlParserHandler->startElementNs = RS_XML(xmlSAX2StartElementNs); xmlParserHandler->endElementNs = RS_XML(xmlSAX2EndElementNs); xmlParserHandler->startElement = NULL; xmlParserHandler->endElement = NULL; xmlParserHandler->serror = RS_XML(structuredErrorHandler); } else { xmlParserHandler->startElement = RS_XML(startElementHandler); xmlParserHandler->endElement = RS_XML(endElementHandler); } xmlParserHandler->entityDecl = RS_XML(entityDeclaration); xmlParserHandler->getEntity = RS_XML(getEntityHandler); xmlParserHandler->comment = RS_XML(commentElementHandler); xmlParserHandler->characters = RS_XML(charactersHandler); xmlParserHandler->processingInstruction = RS_XML(piHandler); xmlParserHandler->cdataBlock = RS_XML(cdataBlockHandler); xmlParserHandler->startDocument = RS_XML(startDocumentHandler); xmlParserHandler->endDocument = RS_XML(endDocumentHandler); xmlParserHandler->isStandalone = RS_XML(isStandAloneHandler); xmlParserHandler->fatalError = RS_XML(fatalErrorHandler); xmlParserHandler->warning = RS_XML(warningHandler); xmlParserHandler->error = RS_XML(errorHandler); /* external entity */ xmlParserHandler->internalSubset = NULL; xmlParserHandler->externalSubset = NULL; xmlParserHandler->hasInternalSubset = NULL; xmlParserHandler->hasExternalSubset = NULL; xmlParserHandler->resolveEntity = NULL; xmlParserHandler->getParameterEntity = RS_XML(getParameterEntityHandler); xmlParserHandler->attributeDecl = NULL; xmlParserHandler->elementDecl = NULL; xmlParserHandler->notationDecl = NULL; xmlParserHandler->unparsedEntityDecl = NULL; xmlParserHandler->setDocumentLocator = NULL; xmlParserHandler->reference = NULL; xmlParserHandler->ignorableWhitespace = NULL; } void RS_XML(startElementHandler)(void *userData, const xmlChar *name, const xmlChar **atts) { RS_XML(startElement)(userData, (const char *)name, (const char **)atts); } void RS_XML(endElementHandler)(void *ctx, const xmlChar *name) { RS_XML(endElement)(ctx, (const char *)name); } void RS_XML(commentElementHandler)(void *ctx, const xmlChar *val) { RS_XML(commentHandler)(ctx, (const XML_Char*)val); } void RS_XML(charactersHandler)(void *user_data, const xmlChar *ch, int len) { RS_XML(textHandler)(user_data, (const XML_Char*)ch, len); } void RS_XML(startDocumentHandler)(void *ctx) { RS_XML(callUserFunction)(HANDLER_FUN_NAME(ctx, "startDocument"), NULL, ((RS_XMLParserData*) ctx), NULL_USER_OBJECT); } void RS_XML(endDocumentHandler)(void *ctx) { RS_XML(callUserFunction)(HANDLER_FUN_NAME(ctx, "endDocument"), NULL, ((RS_XMLParserData*) ctx), NULL_USER_OBJECT); } void RS_XML(cdataBlockHandler)(void *ctx, const xmlChar *value, int len) { USER_OBJECT_ opArgs; RS_XMLParserData *parserData = (RS_XMLParserData*) ctx; DECL_ENCODING_FROM_EVENT_PARSER(parserData) if(parserData->current) { xmlAddChild(parserData->current, xmlNewCDataBlock(NULL, value, len)); return; } PROTECT(opArgs = NEW_LIST(1)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(value))); RS_XML(callUserFunction)(HANDLER_FUN_NAME(parserData, "cdata"), (const char *)NULL, (RS_XMLParserData*)ctx, opArgs); UNPROTECT(1); } void RS_XML(piHandler)(void *ctx, const xmlChar *target, const xmlChar *data) { RS_XML(processingInstructionHandler)(ctx, (const XML_Char*)target, (const XML_Char*)data); } //#define RString(x) (x ? mkString(XMLCHAR_TO_CHAR((x))) : NEW_CHARACTER(1)) #define RString(x) (x ? ScalarString(ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR((x)))) : NEW_CHARACTER(1)) /* Relies on the order and numbering of xmlEntityType from entities.h */ static const char * const EntityTypeNames[] = { "Internal_General", "External_General_Parsed", "External_General_Unparsed", "Internal_Parameter", "External_Parameter", "Internal_Predefined" }; void RS_XML(entityDeclaration)(void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) { USER_OBJECT_ fun, opArgs, tmp; RS_XMLParserData *parserData = (RS_XMLParserData*) ctx; DECL_ENCODING_FROM_EVENT_PARSER(parserData) /* check if there is a function to call before making the list of 5 elements. */ fun = RS_XML(findFunction)(HANDLER_FUN_NAME(parserData, "entityDeclaration"), parserData->methods); if(fun == NULL || fun == NULL_USER_OBJECT) return; PROTECT(fun); PROTECT(opArgs = NEW_LIST(5)); SET_VECTOR_ELT(opArgs, 0, RString(name)); PROTECT(tmp = ScalarInteger(type)); SET_NAMES(tmp, mkString(EntityTypeNames[type-1])); SET_VECTOR_ELT(opArgs, 1, tmp); UNPROTECT(1); SET_VECTOR_ELT(opArgs, 2, RString(content)); SET_VECTOR_ELT(opArgs, 3, RString(systemId)); SET_VECTOR_ELT(opArgs, 4, RString(publicId)); (void) RS_XML(invokeFunction)(fun, opArgs, parserData->stateObject, parserData->ctx); UNPROTECT(2); } static xmlEntityPtr do_getEntityHandler(void *userData, const xmlChar *name, const char * r_funName) { SEXP opArgs, r_ans; xmlEntityPtr ans = NULL; RS_XMLParserData *parserData = (RS_XMLParserData*) userData; DECL_ENCODING_FROM_EVENT_PARSER(parserData) PROTECT(opArgs = NEW_LIST(1)) ; SET_VECTOR_ELT(opArgs, 0, ScalarString(ENC_COPY_TO_USER_STRING(name))); /*XXX should we encode this? Done now! */ r_ans = RS_XML(callUserFunction)(r_funName, NULL, (RS_XMLParserData *) userData, opArgs); PROTECT(r_ans) ; if(r_ans != NULL_USER_OBJECT && GET_LENGTH(r_ans) > 0) { if(TYPEOF(r_ans) == STRSXP) { const char *value; value = CHAR_DEREF(STRING_ELT(r_ans, 0)); ans = (xmlEntityPtr) malloc(sizeof(xmlEntity)); memset(ans, 0, sizeof(xmlEntity)); ans->type = XML_ENTITY_DECL; ans->etype = XML_INTERNAL_GENERAL_ENTITY; ans->name = xmlStrdup(name); ans->orig = NULL; // xmlStrdup(CHAR_TO_XMLCHAR(value)); ans->content = xmlStrdup(CHAR_TO_XMLCHAR(value)); ans->length = strlen(value); #ifndef NO_CHECKED_ENTITY_FIELD ans->checked = 1; #endif } } UNPROTECT(2); return(ans); } xmlEntityPtr RS_XML(getEntityHandler)(void *userData, const xmlChar *name) { return(do_getEntityHandler(userData, name, HANDLER_FUN_NAME(userData, "getEntity"))); } xmlEntityPtr RS_XML(getParameterEntityHandler)(void *userData, const xmlChar *name) { return(do_getEntityHandler(userData, name, HANDLER_FUN_NAME(userData, "getParameterEntity"))); } int RS_XML(isStandAloneHandler)(void *ctx) { return(1); } void RS_XML(fatalErrorHandler)(void *ctx, const char *format, ...) { const char *msg = "error message unavailable"; va_list args; va_start(args, format); if(strcmp(format, "%s") == 0) msg = va_arg(args, char *); va_end(args); PROBLEM "Fatal error in the XML event driven parser for %s: %s", ((RS_XMLParserData*) ctx)->fileName, msg ERROR; } void RS_XML(errorHandler)(void *ctx, const char *format, ...) { const char *msg = "error message unavailable"; va_list args; va_start(args, format); if(strcmp(format, "%s") == 0) msg = va_arg(args, char *); va_end(args); PROBLEM "Error in the XML event driven parser for %s: %s", ((RS_XMLParserData*) ctx)->fileName, msg ERROR; } void RS_XML(structuredErrorHandler)(void *ctx, xmlErrorPtr err) { if(err->level == XML_ERR_FATAL) { PROBLEM "Error in the XML event driven parser (line = %d, column = %d): %s", err->line, err->int2 , err->message ERROR; } else { PROBLEM "Error in the XML event driven parser (line = %d, column = %d): %s", err->line, err->int2 , err->message WARN; } } void RS_XML(warningHandler)(void *ctx, const char *msg, ...) { PROBLEM "XML event driven parser warning from %s.", ((RS_XMLParserData*) ctx)->fileName WARN; } SEXP RS_XML_xmlStopParser(SEXP r_context) { xmlParserCtxtPtr context; if(TYPEOF(r_context) != EXTPTRSXP || R_ExternalPtrTag(r_context) != Rf_install(XML_PARSER_CONTEXT_TYPE_NAME)) { PROBLEM "xmlStopParser requires an " XML_PARSER_CONTEXT_TYPE_NAME " object" ERROR; } context = (xmlParserCtxtPtr) R_ExternalPtrAddr(r_context); if(!context) { PROBLEM "NULL value passed to RS_XML_xmlStopParser. Is it a value from a previous session?" ERROR; } xmlStopParser(context); return(ScalarLogical(1)); } XML/src/Utils.h0000644000176000001440000002631312160603560013006 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef UTILS_H #define UTILS_H #include "RS_XML.h" #include "RSCommon.h" #define XMLCHAR_TO_CHAR(val) ((char *) val) #define CHAR_TO_XMLCHAR(val) ((xmlChar *) val) int isBlank(const char *str); char *trim(char *str); #include /* name of the R class identifying a function that wants the xmlParserCtxt as the first argument. */ #define XML_PARSE_CONTEXT_FUNCTION "XMLParserContextFunction" #define XML_PARSER_CONTEXT_TYPE_NAME "XMLParserContext" USER_OBJECT_ RS_XML(invokeFunction)(USER_OBJECT_ fun, USER_OBJECT_ opArgs, USER_OBJECT_ state, xmlParserCtxtPtr ctx); USER_OBJECT_ RS_XML(findFunction)(const char *opName, USER_OBJECT_ functions); void RS_XML(SetNames)(int n, const char *cnames[], USER_OBJECT_ ans); int RS_XML(SetClassName)(const char *name, USER_OBJECT_ target); SEXP R_makeRefObject(void *ref, const char *className); #ifndef SET_CLASS_NAME #define SET_CLASS_NAME(localClassName, target) RS_XML(SetClassName)((localClassName), (target)) #endif #ifdef LIBXML2 #ifdef FROM_GNOME_XML_DIR #include #else #include #endif int xmlHashSize(xmlHashTablePtr table); #endif void RSXML_setErrorHandlers(void); USER_OBJECT_ RS_XML(RecursiveApply)(USER_OBJECT_ top, USER_OBJECT_ func, USER_OBJECT_ klasses); USER_OBJECT_ RS_XML(HtmlParseTree)(USER_OBJECT_ fileName, USER_OBJECT_ converterFunctions, USER_OBJECT_ skipBlankLines, USER_OBJECT_ replaceEntities, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ isURL); USER_OBJECT_ RS_XML(getDTD)(USER_OBJECT_ dtdFileName, USER_OBJECT_ externalId, USER_OBJECT_ asText, USER_OBJECT_ isURL, USER_OBJECT_ errorFun); USER_OBJECT_ RS_XML(libxmlVersion)(); USER_OBJECT_ RS_XML(Parse)(USER_OBJECT_ fileName, USER_OBJECT_ handlers, USER_OBJECT_ endElementHandlers, USER_OBJECT_ addContext, USER_OBJECT_ ignoreBlanks, USER_OBJECT_ useTagName, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ useExpat, USER_OBJECT_ stateObject, USER_OBJECT_ replaceEntities, USER_OBJECT_ validate, USER_OBJECT_ saxVersion, USER_OBJECT_ branches, USER_OBJECT_ useDotNames, USER_OBJECT_ errorFun, USER_OBJECT_ manageMemory); /* USER_OBJECT_ RS_XML(Parse)(USER_OBJECT_ fileName, USER_OBJECT_ handlers, USER_OBJECT_ addContext, USER_OBJECT_ ignoreBlanks, USER_OBJECT_ useTagName, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ useExpat, USER_OBJECT_ stateObject, USER_OBJECT_ replaceEntities, USER_OBJECT_ validate); */ USER_OBJECT_ RS_XML(ParseTree)(USER_OBJECT_ fileName, USER_OBJECT_ converterFunctions, USER_OBJECT_ skipBlankLines, USER_OBJECT_ replaceEntities, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ validate, USER_OBJECT_ getDTD, USER_OBJECT_ isURL, USER_OBJECT_ addNamespaceAttributes, USER_OBJECT_ useInternalNodes, USER_OBJECT_ s_useHTML, USER_OBJECT_ isSchema, USER_OBJECT_ fullNamespaceInfo, USER_OBJECT_ r_encoding, USER_OBJECT_ useDotNames, USER_OBJECT_ xinclude, USER_OBJECT_ errorFun, USER_OBJECT_ manageMemory, USER_OBJECT_ r_parserOptions, USER_OBJECT_ r_rootFirst); USER_OBJECT_ R_newXMLDtd(USER_OBJECT_ sdoc, USER_OBJECT_ sname, USER_OBJECT_ sexternalID, USER_OBJECT_ ssysID, USER_OBJECT_ manageMemory); USER_OBJECT_ R_newXMLDoc(USER_OBJECT_ dtd, USER_OBJECT_ namespaces, USER_OBJECT_ isHTML); USER_OBJECT_ R_newXMLNode(USER_OBJECT_ name, USER_OBJECT_ attrs, USER_OBJECT_ nameSpace, USER_OBJECT_ sdoc, USER_OBJECT_ namespaceDefinitions, USER_OBJECT_ manageMemory); USER_OBJECT_ R_newXMLTextNode(USER_OBJECT_ value, USER_OBJECT_ sdoc, USER_OBJECT_ manageMemory); USER_OBJECT_ R_xmlNewComment(USER_OBJECT_ str, USER_OBJECT_ sdoc, USER_OBJECT_ manageMemory); USER_OBJECT_ R_newXMLCDataNode(USER_OBJECT_ sdoc, USER_OBJECT_ value, USER_OBJECT_ manageMemory); USER_OBJECT_ R_newXMLPINode(USER_OBJECT_ sdoc, USER_OBJECT_ name, USER_OBJECT_ content, USER_OBJECT_ manageMemory); USER_OBJECT_ R_xmlNewNs(USER_OBJECT_ sdoc, USER_OBJECT_ shref, USER_OBJECT_ sprefix); USER_OBJECT_ R_xmlSetNs(USER_OBJECT_ s_node, USER_OBJECT_ s_ns, USER_OBJECT_ append); USER_OBJECT_ R_insertXMLNode(USER_OBJECT_ node, USER_OBJECT_ parent, USER_OBJECT_ r_at, USER_OBJECT_ shallow) ; USER_OBJECT_ R_saveXMLDOM(USER_OBJECT_ sdoc, USER_OBJECT_ sfileName, USER_OBJECT_ compression, USER_OBJECT_ sindent, USER_OBJECT_ prefix, USER_OBJECT_ r_encoding); USER_OBJECT_ RS_XML_xmlNodeNumChildren(USER_OBJECT_ snode); USER_OBJECT_ R_createXMLNodeRef(xmlNodePtr node, USER_OBJECT_ finalize); USER_OBJECT_ R_createXMLDocRef(xmlDocPtr doc); USER_OBJECT_ R_xmlCatalogResolve(SEXP r_id, SEXP type, USER_OBJECT_ debug); USER_OBJECT_ RS_XML_setDoc(USER_OBJECT_ snode, USER_OBJECT_ sdoc); USER_OBJECT_ RS_XML_unsetDoc(USER_OBJECT_ snode, USER_OBJECT_ unlink, USER_OBJECT_ r_parent, USER_OBJECT_ recursive); USER_OBJECT_ RS_XML_printXMLNode(USER_OBJECT_ node, USER_OBJECT_ level, USER_OBJECT_ format, USER_OBJECT_ indent, USER_OBJECT_ r_encoding, USER_OBJECT_ r_encoding_int); USER_OBJECT_ RS_XML_dumpHTMLDoc(USER_OBJECT_ r_node, USER_OBJECT_ format, USER_OBJECT_ r_encoding, USER_OBJECT_ indent, USER_OBJECT_ outFile); USER_OBJECT_ RS_XML_removeChildren(USER_OBJECT_ s_node, USER_OBJECT_ kids, USER_OBJECT_ freeNode); USER_OBJECT_ RS_XML_clone(USER_OBJECT_ obj, USER_OBJECT_ recursive, USER_OBJECT_ addFinalizer); USER_OBJECT_ R_xmlRootNode(USER_OBJECT_ sdoc, USER_OBJECT_ skipDtd, USER_OBJECT_ manageMemory); SEXP RS_XML_xpathEval(SEXP sdoc, SEXP r_node, SEXP path, SEXP namespaces, SEXP fun, SEXP charEncoding, SEXP manageMemory); USER_OBJECT_ RS_XML_xmlNodeChildrenReferences(USER_OBJECT_ snode, USER_OBJECT_ r_addNames, USER_OBJECT_ manageMemory); USER_OBJECT_ RS_XML(internalNodeNamespaceDefinitions)(USER_OBJECT_ r_node, USER_OBJECT_ recursive); USER_OBJECT_ RS_XML(getDefaultValiditySetting)(USER_OBJECT_ val); SEXP RS_XML_freeDoc(SEXP ref); SEXP RS_XML_setRootNode(USER_OBJECT_ r_doc, USER_OBJECT_ r_node); USER_OBJECT_ R_getNodeChildByIndex(USER_OBJECT_ snode, USER_OBJECT_ r_index, USER_OBJECT_ manageMemory); SEXP RS_XML_setDocEl(SEXP r_node, SEXP r_doc); USER_OBJECT_ RS_XML_isDescendantOf(USER_OBJECT_ r_node, USER_OBJECT_ r_top, USER_OBJECT_ strict); SEXP RS_XML_getStructuredErrorHandler(); SEXP RS_XML_setStructuredErrorHandler(SEXP els); SEXP R_convertDOMToHashTree(SEXP rnode, SEXP env, SEXP childrenEnv, SEXP parentEnv); SEXP R_parseURI(SEXP r_uri); SEXP R_getXMLFeatures(); SEXP R_xmlReadMemory(SEXP r_txt, SEXP len, SEXP r_encoding, SEXP r_options, SEXP r_base); SEXP R_xmlReadFile(SEXP r_filename, SEXP r_encoding, SEXP r_options); USER_OBJECT_ R_libxmlTypeTable_names(USER_OBJECT_ table, USER_OBJECT_ s_elType) ; USER_OBJECT_ R_libxmlTypeTable_lookup(USER_OBJECT_ table, USER_OBJECT_ name, USER_OBJECT_ s_elType); SEXP RS_XML_xmlSchemaValidateDoc(SEXP r_schema, SEXP r_doc, SEXP r_options, SEXP r_errorHandlers); SEXP R_XML_indexOfChild(SEXP r_node); SEXP RS_XML_xmlStopParser(SEXP r_context); SEXP R_clearNodeMemoryManagement(SEXP r_node); SEXP R_XMLInternalDocument_free(SEXP sdoc); SEXP R_addXMLInternalDocument_finalizer(SEXP sdoc, SEXP fun); USER_OBJECT_ R_createXMLNode(USER_OBJECT_ snode, USER_OBJECT_ handlers, USER_OBJECT_ r_trim, USER_OBJECT_ r_skipBlankLines); USER_OBJECT_ RS_XML_xmlNodeName(USER_OBJECT_ snode); USER_OBJECT_ RS_XML_xmlNodeNamespace(USER_OBJECT_ snode); USER_OBJECT_ RS_XML_xmlNodeAttributes(USER_OBJECT_ snode, USER_OBJECT_ addNamespaces, USER_OBJECT_ addNamespaceURLs); SEXP R_xmlNodeValue(SEXP node, SEXP raw, SEXP r_encoding); SEXP R_setXMLInternalTextNode_value(SEXP node, SEXP value); USER_OBJECT_ RS_XML_xmlNodeParent(USER_OBJECT_ snode, USER_OBJECT_ manageMemory); USER_OBJECT_ R_getXMLNsRef(USER_OBJECT_ r_node); SEXP R_setXMLInternalTextNode_noenc(SEXP node); SEXP R_isNodeChildOfAt(SEXP rkid, SEXP rnode, SEXP rat); SEXP R_findXIncludeStartNodes(SEXP r_root, SEXP manageMemory); SEXP RS_XML_removeAllNodeNamespaces(SEXP s_node); SEXP RS_XML_removeNodeNamespaces(SEXP s_node, SEXP r_ns); SEXP R_matchNodesInList(SEXP r_nodes, SEXP r_target, SEXP r_nomatch); USER_OBJECT_ RS_XML_copyNodesToDoc(USER_OBJECT_ s_node, USER_OBJECT_ s_doc, USER_OBJECT_ manageMemory); USER_OBJECT_ RS_XML_getDocumentName(USER_OBJECT_ sdoc); USER_OBJECT_ RS_XML_xmlXIncludeProcessFlags(USER_OBJECT_ r_doc, USER_OBJECT_ r_flags); USER_OBJECT_ RS_XML_xmlXIncludeProcessTreeFlags(USER_OBJECT_ r_node, USER_OBJECT_ r_flags); USER_OBJECT_ RS_XML(internalNodeNamespaceDefinitions)(USER_OBJECT_ r_node, USER_OBJECT_ recursive); Rboolean R_isInstanceOf(USER_OBJECT_ obj, const char *klass); USER_OBJECT_ RS_XML_addNodeAttributes(USER_OBJECT_ s_node, USER_OBJECT_ attrs); USER_OBJECT_ RS_XML_removeNodeAttributes(USER_OBJECT_ s_node, USER_OBJECT_ attrs, USER_OBJECT_ asNamespace); USER_OBJECT_ RS_XML_getNsList(USER_OBJECT_ s_node, USER_OBJECT_ asRef); USER_OBJECT_ RS_XML_setNodeName(USER_OBJECT_ s_node, USER_OBJECT_ s_name); USER_OBJECT_ R_xmlNsAsCharacter(USER_OBJECT_ s_ns); USER_OBJECT_ R_createXMLNsRef(xmlNsPtr ns); USER_OBJECT_ RS_XML_getNextSibling(USER_OBJECT_ node, USER_OBJECT_ s_prev, USER_OBJECT_ manageMemory); USER_OBJECT_ R_getXMLNodeDocument(USER_OBJECT_ s_node); USER_OBJECT_ RS_XML_createDocFromNode(USER_OBJECT_ s_node); SEXP R_removeInternalNode(SEXP r_node, SEXP r_free); USER_OBJECT_ RS_XML_replaceXMLNode(USER_OBJECT_ r_old, USER_OBJECT_ r_new, USER_OBJECT_ manageMemory); USER_OBJECT_ RS_XML_xmlAddSiblingAt(USER_OBJECT_ r_to, USER_OBJECT_ r_node, USER_OBJECT_ r_before, USER_OBJECT_ manageMemory); SEXP RS_XML_clearCatalog(); SEXP RS_XML_loadCatalog(SEXP catalogs); SEXP RS_XML_catalogAdd(SEXP orig, SEXP replace, SEXP type); SEXP RS_XML_catalogDump(SEXP fileName); void R_xmlFreeDoc(SEXP ref); USER_OBJECT_ RS_XML_setDocumentName(USER_OBJECT_ sdoc, USER_OBJECT_ sname); USER_OBJECT_ RS_XML_setKeepBlanksDefault(USER_OBJECT_ val); SEXP RS_XML_setNS(SEXP s_node, SEXP r_ns); SEXP stop(const char *className, const char *msg, ...); SEXP RSXML_structuredStop(SEXP errorFun, xmlErrorPtr err); void R_xmlStructuredErrorHandler(void *data, xmlErrorPtr err); SEXP R_getDocEncoding(SEXP r_doc); SEXP R_getLineNumber(SEXP r_node); SEXP R_addXMLNodeFinalizer(SEXP r_node); extern int R_numXMLDocs, R_numXMLDocsFreed; SEXP CreateCharSexpWithEncoding(const xmlChar *encoding, const xmlChar *str); #define DECL_ENCODING_FROM_NODE(node) const xmlChar *encoding = node->doc ? node->doc->encoding : NULL; #define DECL_ENCODING_FROM_DOC(doc) const xmlChar *encoding = doc->encoding; #define DECL_ENCODING_FROM_EVENT_PARSER(parserData) const xmlChar *encoding = parserData->ctx->encoding; #define R_USE_XML_ENCODING 1 #ifdef R_USE_XML_ENCODING #undef COPY_TO_USER_STRING //#warning "Redefining COPY_TO_USER_STRING to use encoding from XML parser" /* #define COPY_TO_USER_STRING(x) CreateCharSexpWithEncoding(encoding, CHAR_TO_XMLCHAR (x)) */ #define COPY_TO_USER_STRING(x) mkChar(CHAR_TO_XMLCHAR (x)) #define ENC_COPY_TO_USER_STRING(x) CreateCharSexpWithEncoding(encoding, CHAR_TO_XMLCHAR (x)) #endif #include #define R_CHECK_INTERRUPTS R_CheckUserInterrupt(); //#include "NodeGC.h" SEXP R_createXMLNodeRefDirect(xmlNodePtr node, int addFinalizer); int R_XML_getManageMemory(USER_OBJECT_ user, xmlDocPtr doc, xmlNodePtr node); USER_OBJECT_ R_convertXMLNsRef(SEXP r_ns); #endif XML/src/Utils.c0000644000176000001440000002157612160603560013007 0ustar ripleyusers/** Routines that are shared across the two XML parsers and their callbacks to R. isBlank - determines if a string consists entirely of whitespace RS_XML(invokeFunction) - call a user-level function, previously located by RS_XML(findFunction). RS_XML(findFunction) - search a list or closure for a function object with a given name in that list. * See Copyright for the license status of this software. */ #include "Utils.h" #include /* For isspace() */ #ifdef LIBXML #ifdef FROM_GNOME_XML_DIR #include #else #include #endif #endif #include "RSCommon.h" /* for SET_NAMES */ /** Tests whether the string contains only white space or not. Returns 1 if is only white space. 0 otherwise. */ int isBlank(const char *str) { int blank=0; const char *ptr = str; while(ptr && (blank = isspace(ptr[0]))) { ptr++; } return(blank); } /** Does an in place trimming of a string by returning a pointer to the first non-white space character and also inserting a string terminator after the last non-whitespace character. */ char * trim(char *str) { char *tmp; /* If a degenerate string, just return. */ if(str == (char*)NULL || str[0] == '\0') return(str); /* Jumpt to the end */ tmp = str + strlen(str) - 1; while(tmp >= str && isspace(*tmp)) { tmp[0] = '\0'; tmp--; } if(tmp == str) { #if 0 if(strlen(tmp) > 1) tmp[0] = '\0'; #endif return(str); } #if 0 else tmp[1] = '\0'; #endif tmp = str; while(*tmp && isspace(*tmp)) { tmp++; } return(tmp); } USER_OBJECT_ RS_XML(treeApply)(USER_OBJECT_ rtree, USER_OBJECT_ function, USER_OBJECT_ args) { return(rtree); } /** Error handling utilities for use with the libxml document parsing mechanism. Intercept the error handling by replacing it with a routine of the same name and have it print to a buffer. Then call the Warning handler. Then the warnings will end up in the local system, accessible via the warnings() function. This allows them to be programmatically processed rather than having to process the output to the terminal (via catching it in a call sink()). */ #ifdef LIBXML #include void localXmlParserPrintFileInfo(xmlParserInputPtr input, char *buf); #ifndef USE_LINKED_ERROR_HANDLER void S_xmlParserError(void *ctx, const char *msg, ...) #else void xmlParserError(void *ctx, const char *msg, ...) #endif { va_list args; #if 1 va_start(args, msg); stop("XMLParserError", msg, args); #else xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; char buf[3000], *tmp; /* Empty the string buffer. */ memset(buf , '\0', sizeof(buf)/sizeof(buf[0])); /* Insert the file and line number. */ localXmlParserPrintFileInfo(ctxt->input, buf); /* Move to the end of the buffer's contents. */ tmp = buf + strlen(buf); va_start(args, msg); /* Write in the actual message. */ vsprintf(tmp, msg, args); va_end(args); PROBLEM "XML Parsing Error: %s", buf WARN; #endif } #ifndef USE_LINKED_ERROR_HANDLER /* Set the default error handlers in the libxml library */ void RSXML_setErrorHandlers() { xmlDefaultSAXHandlerInit(); htmlDefaultSAXHandlerInit(); #if 0 docbDefaultSAXHandlerInit(); #endif xmlDefaultSAXHandler.error = S_xmlParserError; htmlDefaultSAXHandler.error = S_xmlParserError; #if 0 docbDefaultSAXHandler.error = S_xmlParserError; #endif } #endif /** Write the file name and the current line number into the specified string. */ void localXmlParserPrintFileInfo(xmlParserInputPtr input, char *buf) { if (input != NULL) { if (input->filename) sprintf(buf, "%s:%d: ", input->filename, input->line); else sprintf(buf, "Entity: line %d: ", input->line); } } #endif /** Utility method for setting the names of a list/vector from an array of native strings rather than an R/S character vector structure. */ void RS_XML(SetNames)(int n, const char *cnames[], USER_OBJECT_ ans) { int i; USER_OBJECT_ names; PROTECT(names = NEW_CHARACTER(n)); for(i = 0; i < n ; i++) { /* could install as a pre-defined string. */ SET_STRING_ELT(names, i, mkChar(cnames[i])); } SET_NAMES(ans, names); UNPROTECT(1); } /* Set the class of the target object to be the character vector containing just the specified name. */ int RS_XML(SetClassName)(const char *localClassName, USER_OBJECT_ target) { USER_OBJECT_ className; PROTECT(className = NEW_CHARACTER(1)); SET_STRING_ELT(className, 0, mkChar(localClassName)); SET_CLASS(target, className); UNPROTECT(1); return(1); } #if LIBXML2 struct _xmlHashTable { struct _xmlHashEntry **table; int size; }; #endif #if OWN_XML_HASH_SIZE int xmlHashSize(xmlHashTablePtr table) { /* For version 2.2.* */ return(table->size); /* return(table->nb_entities); */ } #endif USER_OBJECT_ RS_XML(findFunction)(const char *opName, USER_OBJECT_ _userObject) { int i; USER_OBJECT_ fun = NULL; /* Get the names of the list. */ USER_OBJECT_ names = GET_NAMES(_userObject); /* lookup function in the names of the list */ for (i = 0; i < GET_LENGTH(names); i++) { if(!strcmp(opName, CHAR_DEREF(STRING_ELT(names, i)))) { fun = VECTOR_ELT(_userObject, i); break; } } return(fun); } SEXP R_makeRefObject(void *ref, const char *className) { SEXP klass, obj, sref; if(!ref) { PROBLEM "NULL value for external reference" WARN; return(R_NilValue); } PROTECT(klass = MAKE_CLASS((char *) className)); /* XXX define MAKE_CLASS with const */ if(klass == R_NilValue) { /* Is this the right test? */ PROBLEM "Cannot find class %s for external reference", className ERROR; } PROTECT(obj = NEW_OBJECT(klass)); PROTECT(sref = R_MakeExternalPtr(ref, Rf_install(className), R_NilValue)); obj = SET_SLOT(obj, Rf_install("ref"), sref); UNPROTECT(3); return(obj); } #include #define copyStrField(x) SET_VECTOR_ELT(ans, i, mkString(uri->x ? uri->x : "")); \ SET_STRING_ELT(names, i, mkChar(#x)); i++; SEXP R_parseURI(SEXP r_uri) { xmlURIPtr uri; SEXP ans, names; int i= 0; uri = xmlParseURI( CHAR( STRING_ELT( r_uri, 0 ))); if(!uri) { PROBLEM "cannot parse URI %s", CHAR( STRING_ELT( r_uri, 0) ) ERROR; } PROTECT(ans = NEW_LIST(8)); PROTECT(names = NEW_CHARACTER(8)); copyStrField(scheme); copyStrField(authority); copyStrField(server); copyStrField(user); copyStrField(path); copyStrField(query); copyStrField(fragment); SET_VECTOR_ELT(ans, i, ScalarInteger(uri->port)); SET_STRING_ELT(names, i, mkChar("port")); SET_NAMES(ans, names); UNPROTECT(2); return(ans); } #define min(x, y) ((x) < (y) ? (x) : (y)) SEXP RSXML_structuredStop(SEXP errorFun, xmlErrorPtr err) { SEXP e, ptr; int n = 8; if(!err) n = 2; PROTECT(e = allocVector(LANGSXP, n)); SETCAR(e, errorFun != NULL && errorFun != R_NilValue ? errorFun : Rf_install("xmlStructuredStop")); ptr = CDR(e); if(err) { SETCAR(ptr, mkString(err->message)); ptr= CDR(ptr); SETCAR(ptr, ScalarInteger(err->code)); ptr= CDR(ptr); SETCAR(ptr, ScalarInteger(err->domain)); ptr= CDR(ptr); SETCAR(ptr, ScalarInteger(err->line)); ptr= CDR(ptr); SETCAR(ptr, ScalarInteger(err->int2)); ptr= CDR(ptr); SETCAR(ptr, ScalarInteger(err->level)); ptr= CDR(ptr); SETCAR(ptr, err->file ? mkString(err->file) : NEW_CHARACTER(0)); } else { SETCAR(ptr, NEW_CHARACTER(0)); } Rf_eval(e, R_GlobalEnv); UNPROTECT(1); /* Shouldn't get back to here! Rf_eval() should raise an error.*/ return(R_NilValue); } /* Because we call this function via Rf_eval(), we end up with an extra call on the stack when we enter recover. */ SEXP stop(const char *className, const char *msg, ...) { char buf[10000]; SEXP error, e, ns_env, ns_name; va_list ap; va_start(ap, msg); /* Rvsnprintf(buf, sizeof(buf)/sizeof(buf[0]), msg, ap); */ vsnprintf(buf, sizeof(buf)/sizeof(buf[0]), msg, ap); va_end(ap); PROTECT(error = mkString(buf)); /* const char * classNames[] = {"simpleError", "error", "condition"}; PROTECT(tmp = allocVector(STRSXP, sizeof(classNames)/sizeof(classNames[0]))); for(i = 0; i < sizeof(classNames)/sizeof(classNames[0]); i++) SET_STRING_ELT(tmp, i+1, mkChar(classNames[i])); SET_STRING_ELT(tmp, 0, mkChar(className)); SET_CLASS(error, tmp); */ PROTECT(e = allocVector(LANGSXP, 2)); PROTECT(ns_name = mkString("XML")); ns_env = R_FindNamespace(ns_name); SETCAR(e, findVarInFrame(ns_env, Rf_install("xmlStop"))); SETCAR(CDR(e), error); Rf_eval(e, R_GlobalEnv); UNPROTECT(2); /* errorcall(error, "%s", msg); UNPROTECT(1); */ return(error); } XML/src/SPlus/0000755000176000001440000000000012010616126012572 5ustar ripleyusersXML/src/SPlus/SUtils.h0000644000176000001440000000021212160603560014165 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef S_XML_UTILS_H #define S_XML_UTILS_H #include "Utils.h" #endif XML/src/SPlus/SUtils.c0000644000176000001440000000310012160603560014157 0ustar ripleyusers#include "SUtils.h" /* Utilities for the S facilities for parsing XML text. * See Copyright for the license status of this software. */ #include "RSCommon.h" /* We need this to get the definition for the symbolic constant FUN_CALL which is the type of the vector we need to allocate to create an invokable/evaluable function call. This is not what one would consider robust, but it is available in both S4 and Splus5. */ #include "y.tab.h" USER_OBJECT_ RS_XML(invokeFunction)(USER_OBJECT_ fun, USER_OBJECT_ opArgs, USER_OBJECT_ data) { S_EVALUATOR s_object *ans = S_void; s_object *call, **args; int i; int numArgs; numArgs = GET_LENGTH(opArgs); call = alcvec(FUN_CALL, numArgs + 1 + (data ? 1 : 0), S_evaluator); args = RECURSIVE_DATA(call); args[0] = fun; for(i = 0; i < numArgs ; i++) { args[i+1] = RECURSIVE_DATA(opArgs)[i]; } if(data) args[numArgs + 1] = data; incr_ref_count(call, FALSE, Local_data, S_evaluator); ans = eval(call, S_evaluator); decr_ref_count(call, FALSE, Local_data, S_evaluator); return(ans); } USER_OBJECT_ RS_XML(findFunction)(const char *opName, USER_OBJECT_ _userObject) { int i, n; USER_OBJECT_ fun = NULL; /* lookup function in */ USER_OBJECT_ names = GET_NAMES(_userObject); n = GET_LENGTH(names); for (i = 0; i < n; i++) { if(!strcmp(opName, CHAR_DEREF(CHARACTER_DATA(names)[i]))) { fun = RECURSIVE_DATA(_userObject)[i]; break; } } return(fun); } int isFunction(USER_OBJECT_ obj) { return( IS(obj, s_function_class) || TYPEOF(obj) == CLOSXP); } XML/src/Rcatalog.c0000644000176000001440000000412212160603560013427 0ustar ripleyusers#include "Utils.h" /* For isBlank() */ #include USER_OBJECT_ R_xmlCatalogResolve(USER_OBJECT_ r_id, USER_OBJECT_ type, USER_OBJECT_ debug) { xmlChar *id; SEXP r_ans = R_NilValue; xmlChar* ans = NULL; int debugLevel = -1; int n, i; debugLevel = xmlCatalogSetDebug(LOGICAL(debug)[0]); n = GET_LENGTH(r_id); PROTECT(r_ans = NEW_CHARACTER(n)); for(i = 0; i < n; i++) { id = CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(r_id, i))); switch(INTEGER(type)[i]) { case 1: ans = xmlCatalogResolveURI(id); break; case 2: ans = xmlCatalogResolvePublic(id); break; case 3: ans = xmlCatalogResolveSystem(id); break; default: break; } if(ans) { SET_STRING_ELT(r_ans, i, mkChar(XMLCHAR_TO_CHAR(ans))); xmlFree(ans); } else { SET_STRING_ELT(r_ans, i, NA_STRING); } } UNPROTECT(1); xmlCatalogSetDebug(debugLevel); return(r_ans); } SEXP RS_XML_loadCatalog(SEXP catalogs) { int i, n; SEXP ans; n = GET_LENGTH(catalogs); ans = NEW_LOGICAL(n); for(i = 0; i < n ; i++) { LOGICAL(ans)[i] = (xmlLoadCatalog(CHAR(STRING_ELT(catalogs, i))) == 0); } return(ans); } SEXP RS_XML_clearCatalog() { xmlCatalogCleanup(); return(ScalarLogical(1)); } SEXP RS_XML_catalogAdd(SEXP orig, SEXP replace, SEXP type) { int i, n; SEXP ans; n = LENGTH(orig); ans = NEW_LOGICAL(n); for(i = 0; i < n ; i++) { LOGICAL(ans)[i] = (xmlCatalogAdd(CHAR_TO_XMLCHAR(CHAR(STRING_ELT(type, i))), CHAR_TO_XMLCHAR(CHAR(STRING_ELT(orig, i))), CHAR_TO_XMLCHAR(CHAR(STRING_ELT(replace, i)))) == 0); } return(ans); } SEXP RS_XML_catalogDump(SEXP fileName) { FILE *out; out = fopen(CHAR(STRING_ELT(fileName, 0)), "w"); if(!out) { PROBLEM "Can't open file %s for write access", CHAR(STRING_ELT(fileName, 0)) ERROR; } xmlCatalogDump(out); return(ScalarLogical(TRUE)); } void R_xmlInitializeCatalog() { xmlInitializeCatalog(); } XML/src/RUtils.c0000644000176000001440000002311712160603560013122 0ustar ripleyusers#include "Utils.h" #include /* Utilities used in the R XML parsing facilities for invoking user-level functions from C. * See Copyright for the license status of this software. */ #include "Rinternals.h" /* Macros, etc. */ USER_OBJECT_ R_makeXMLContextRef(xmlParserCtxtPtr ctx) { USER_OBJECT_ ans; PROTECT(ans = R_MakeExternalPtr(ctx, Rf_install(XML_PARSER_CONTEXT_TYPE_NAME), R_NilValue)); SET_CLASS(ans, mkString(XML_PARSER_CONTEXT_TYPE_NAME)); UNPROTECT(1); return(ans); } USER_OBJECT_ R_InternalRecursiveApply(USER_OBJECT_ top, USER_OBJECT_ func, USER_OBJECT_ klasses); USER_OBJECT_ RS_XML(invokeFunction)(USER_OBJECT_ fun, USER_OBJECT_ opArgs, USER_OBJECT_ data, xmlParserCtxtPtr context) { int i; long n; USER_OBJECT_ c, call; USER_OBJECT_ ans; int addContext = 0; if(context && TYPEOF(fun) == CLOSXP && OBJECT(fun) && R_isInstanceOf(fun, XML_PARSE_CONTEXT_FUNCTION)) addContext = 1; n = Rf_length(opArgs) + addContext + 1; if(data) n++; if(n > 0) { #if 1 PROTECT(call = allocVector(LANGSXP, n)); c = call; SETCAR(call, fun); c = CDR(c); if(addContext) { SETCAR(c, R_makeXMLContextRef(context)); c = CDR(c); } for (i = 0; i < Rf_length(opArgs); i++) { SETCAR(c, VECTOR_ELT(opArgs, i)); c = CDR(c); } if(data) { SETCAR(c, data); SET_TAG(c, Rf_install(".state")); } #else PROTECT(c = call = allocList(n)); if(addContext) { SETCAR(c, R_makeXMLContextRef(context)); c = CDR(c); } for (i = 0; i < GET_LENGTH(opArgs); i++) { SETCAR(c, VECTOR_ELT(opArgs, i)); c = CDR(c); } if(data) { SETCAR(c, data); SET_TAG(c, Rf_install(".state")); } call = LCONS(fun, call); UNPROTECT(1); #endif } else { PROTECT(call = allocVector(LANGSXP, 1 + addContext)); SETCAR(call, fun); if(addContext) SETCAR(CDR(call), R_makeXMLContextRef(context)); } ans = eval(call, R_GlobalEnv); UNPROTECT(1); return(ans); } USER_OBJECT_ RS_XML(RecursiveApply)(USER_OBJECT_ top, USER_OBJECT_ func, USER_OBJECT_ klasses) { USER_OBJECT_ ans; PROTECT(top = duplicate(top)); ans = R_InternalRecursiveApply(top, func, klasses); UNPROTECT(1); return(ans); } USER_OBJECT_ R_InternalRecursiveApply(USER_OBJECT_ top, USER_OBJECT_ func, USER_OBJECT_ klasses) { int CHILD_NODE = 2, i; USER_OBJECT_ kids; int numChildren; USER_OBJECT_ args, tmp; if(GET_LENGTH(top) > CHILD_NODE) { kids = VECTOR_ELT(top, CHILD_NODE); numChildren = GET_LENGTH(kids); /* Do the children first. */ PROTECT(args = NEW_LIST(1)); PROTECT(tmp = NEW_LIST(numChildren)); for(i = 0; i < numChildren; i++) { SET_VECTOR_ELT(tmp, i, R_InternalRecursiveApply(VECTOR_ELT(kids, i), func, klasses)); } SET_VECTOR_ELT(top, CHILD_NODE, tmp); UNPROTECT(2); } PROTECT(args = NEW_LIST(1)); SET_VECTOR_ELT(args, 0, top); tmp = RS_XML(invokeFunction)(func, args, NULL, NULL); /*XXX get the context and user data!!! */ UNPROTECT(1); return(tmp); } USER_OBJECT_ RS_XML_SubstituteEntitiesDefault(USER_OBJECT_ replaceEntities) { int value; USER_OBJECT_ ans; value = xmlSubstituteEntitiesDefault(LOGICAL_DATA(replaceEntities)[0]); ans = NEW_LOGICAL(1); LOGICAL_DATA(ans)[0] = value; return(ans); } #include /* Simple macro for expanding ENTRY(x, n) to {"", (DL_FUNC) &, } */ #define ENTRY(name, n) { #name, (DL_FUNC) &name, n } static R_CallMethodDef callMethods[] = { ENTRY(RS_XML_RecursiveApply, 3), #ifdef UNUSED_DOT_CALLS ENTRY(RS_XML_HtmlParseTree, 7), ENTRY(RS_XML_setDoc, 2), ENTRY(R_xmlNsAsCharacter, 1), ENTRY(R_addXMLNodeFinalizer, 1), #endif ENTRY(RS_XML_getDTD, 5), ENTRY(RS_XML_libxmlVersion, 0), ENTRY(RS_XML_Parse, 17), ENTRY(RS_XML_ParseTree, 21), ENTRY(R_newXMLDtd, 5), ENTRY(R_newXMLDoc, 3), ENTRY(R_newXMLNode, 6), ENTRY(R_newXMLTextNode, 3), ENTRY(R_xmlNewComment, 3), ENTRY(R_newXMLCDataNode, 3), ENTRY(R_newXMLPINode, 4), ENTRY(R_xmlNewNs, 3), ENTRY(R_xmlSetNs, 3), ENTRY(R_xmlRootNode, 3), ENTRY(R_insertXMLNode, 4), ENTRY(R_saveXMLDOM, 6), ENTRY(R_xmlCatalogResolve, 3), ENTRY(RS_XML_xmlNodeNumChildren, 1), ENTRY(RS_XML_unsetDoc, 4), ENTRY(RS_XML_printXMLNode, 6), ENTRY(RS_XML_dumpHTMLDoc, 5), ENTRY(RS_XML_removeChildren, 3), ENTRY(RS_XML_clone, 3), ENTRY(RS_XML_addNodeAttributes, 2), ENTRY(RS_XML_removeNodeAttributes, 3), ENTRY(RS_XML_getNsList, 2), ENTRY(RS_XML_setNodeName, 2), ENTRY(RS_XML_SubstituteEntitiesDefault, 1), ENTRY(RS_XML_getNextSibling, 3), ENTRY(R_getXMLNodeDocument, 1), ENTRY(RS_XML_createDocFromNode, 1), ENTRY(R_removeInternalNode, 2), ENTRY(RS_XML_replaceXMLNode, 3), ENTRY(RS_XML_xmlAddSiblingAt, 4), ENTRY(RS_XML_loadCatalog, 1), ENTRY(RS_XML_clearCatalog, 0), ENTRY(RS_XML_catalogAdd, 3), ENTRY(RS_XML_catalogDump, 1), ENTRY(RS_XML_setDocumentName, 2), ENTRY(RS_XML_setKeepBlanksDefault, 1), ENTRY(R_getDocEncoding, 1), ENTRY(R_getLineNumber, 1), ENTRY(RS_XML_xpathEval, 7), ENTRY(RS_XML_xmlNodeChildrenReferences, 3), ENTRY(RS_XML_freeDoc, 1), ENTRY(RS_XML_setRootNode, 2), ENTRY(R_getNodeChildByIndex, 3), ENTRY(RS_XML_setDocEl, 2), ENTRY(RS_XML_isDescendantOf, 3), ENTRY(RS_XML_getStructuredErrorHandler, 0), ENTRY(RS_XML_setStructuredErrorHandler, 1), ENTRY(R_convertDOMToHashTree, 4), ENTRY(R_parseURI, 1), ENTRY(R_getXMLFeatures, 0), ENTRY(R_xmlReadMemory, 5), //XXX ENTRY(R_xmlReadFile, 3), //XXX ENTRY(RS_XML_internalNodeNamespaceDefinitions, 2), ENTRY(R_libxmlTypeTable_names, 2), ENTRY(R_libxmlTypeTable_lookup, 3), ENTRY(RS_XML_xmlSchemaValidateDoc, 4), ENTRY(R_XML_indexOfChild, 1), ENTRY(RS_XML_xmlStopParser, 1), ENTRY(R_clearNodeMemoryManagement, 1), ENTRY(R_XMLInternalDocument_free, 1), ENTRY(R_addXMLInternalDocument_finalizer, 2), ENTRY(R_createXMLNode, 4), ENTRY(RS_XML_xmlNodeName, 1), ENTRY(RS_XML_xmlNodeNamespace, 1), ENTRY(RS_XML_xmlNodeAttributes, 3), ENTRY(RS_XML_xmlNodeChildrenReferences, 3), ENTRY(R_xmlNodeValue, 3), ENTRY(R_setXMLInternalTextNode_value, 2), ENTRY(RS_XML_xmlNodeParent, 2), ENTRY(R_getXMLNsRef, 1), // XXX ENTRY(R_setXMLInternalTextNode_noenc, 1), ENTRY(R_isNodeChildOfAt, 3), ENTRY(R_findXIncludeStartNodes, 2), ENTRY(RS_XML_removeAllNodeNamespaces, 1), ENTRY(RS_XML_removeNodeNamespaces, 2), ENTRY(R_matchNodesInList, 3), ENTRY(RS_XML_copyNodesToDoc, 3), ENTRY(RS_XML_getDocumentName, 1), ENTRY(RS_XML_getDefaultValiditySetting, 1), ENTRY(RS_XML_xmlXIncludeProcessFlags, 2), ENTRY(RS_XML_xmlXIncludeProcessTreeFlags, 2), ENTRY(R_convertXMLNsRef, 1), {NULL, NULL, 0} }; static R_CMethodDef cmethods[] = { ENTRY(RSXML_setErrorHandlers, 0), ENTRY(xmlInitializeCatalog, 0), {NULL, NULL, 0} }; void R_init_XML(DllInfo *dll) { R_useDynamicSymbols(dll, FALSE); R_registerRoutines(dll, cmethods, callMethods, NULL, NULL); } Rboolean R_isInstanceOf(USER_OBJECT_ obj, const char *klass) { USER_OBJECT_ klasses; int n, i; klasses = GET_CLASS(obj); n = GET_LENGTH(klasses); for(i = 0; i < n ; i++) { if(strcmp(CHAR_DEREF(STRING_ELT(klasses, i)), klass) == 0) return(TRUE); } return(FALSE); } SEXP RS_XML_getStructuredErrorHandler() { SEXP ans; PROTECT(ans = NEW_LIST(2)); SET_VECTOR_ELT(ans, 0, R_MakeExternalPtr(xmlGenericErrorContext, Rf_install("xmlGenericErrorContext"), R_NilValue)); SET_VECTOR_ELT(ans, 1, R_MakeExternalPtr(xmlStructuredError, Rf_install("xmlStructuredErrorFunc"), R_NilValue)); UNPROTECT(1); return(ans); } SEXP RS_XML_setStructuredErrorHandler(SEXP els) { void *ctx; xmlStructuredErrorFunc handler; SEXP fun, sym; fun = VECTOR_ELT(els, 0); sym = VECTOR_ELT(els, 1); if(sym != R_NilValue && TYPEOF(sym) != EXTPTRSXP) { PROBLEM "invalid symbol object for XML error handler. Need an external pointer, e.g from getNativeSymbolInfo" ERROR; } if(fun == R_NilValue) ctx = NULL; else if(TYPEOF(fun) == EXTPTRSXP) ctx = R_ExternalPtrAddr(fun); else { ctx = fun = Rf_duplicate(fun); /* Should R_PreserveObject and * ReleaseObject() but then we have to be able "remember" if it is an R function or not.*/ R_PreserveObject(fun); } handler = (sym == R_NilValue) ? NULL : (xmlStructuredErrorFunc) R_ExternalPtrAddr(sym); xmlSetStructuredErrorFunc(ctx, handler); return(ScalarLogical(TRUE)); } SEXP CreateCharSexpWithEncoding(const xmlChar *encoding, const xmlChar *str) { SEXP ans; #ifdef HAVE_R_CETYPE_T cetype_t enc = CE_NATIVE; if(encoding == (const xmlChar *) NULL || encoding == (const xmlChar *) "") { enc = CE_NATIVE; } else if(xmlStrcmp(encoding, "UTF-8") == 0 || xmlStrcmp(encoding, "utf-8") == 0) enc = CE_UTF8; else if(xmlStrcmp(encoding, "ISO-8859-1") == 0 || xmlStrcmp(encoding, "iso-8859-1") == 0) enc = CE_LATIN1; else { str = translateChar(mkChar(str)); } // REprintf("encoding: %d\n", enc); ans = mkCharCE(str, enc); #else ans = mkChar(str); #endif return(ans); } SEXP R_lookString(SEXP rstr) { const char *str; str = CHAR(STRING_ELT(rstr, 0)); return(ScalarInteger(strlen(str))); } #if 0 #include SEXP R_relativeURL(SEXP r_url, SEXP r_base) { xmlChar *url, *base; const xmlChar *ans; SEXP rans; url = CHAR_DEREF(STRING_ELT(r_url, 0)); base = CHAR_DEREF(STRING_ELT(r_base, 0)); ans = xmlBuildRelativeURI(url, base); rans = ScalarString(COPY_TO_USER_STRING(ans)); xmlFree(ans); return(rans); } #endif XML/src/RS_XML.h0000644000176000001440000000144412160603560012750 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef RS_XML_H #define RS_XML_H #define RS_XML(a) RS_XML_##a /* #define R_XML_DEBUG 1 */ #if 0 #if 1 #define XML_REF_COUNT_NODES 1 #else #ifdef XML_REF_COUNT_NODES #undef XML_REF_COUNT_NODES #endif #endif #endif /* #undef XML_REF_COUNT_NODES */ typedef enum {RS_XML_FILENAME, RS_XML_TEXT, RS_XML_CONNECTION, RS_XML_INVALID_CONTENT} RS_XML_ContentSourceType; #ifdef _R_ #include "R.h" #include "Rinternals.h" #if 0 #if R_VERSION < R_Version(1, 2, 0) #define STRING_ELT(x,i) STRING(x)[i] #define VECTOR_ELT(x,i) VECTOR(x)[i] #define SET_STRING_ELT(x,i,v) (STRING(x)[i]=(v)) #define SET_VECTOR_ELT(x,i,v) (VECTOR(x)[i]=(v)) #endif #endif /* end of ignoring version details */ #endif /* end of _R_ */ #endif XML/src/RSDTD.h0000644000176000001440000000277712160603560012576 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef RSDTD_H #define RSDTD_H #include "RSCommon.h" #define RS_XML(a) RS_XML_##a #ifdef FROM_GNOME_XML_DIR #include #include #include #include #include #else #if 0 /* Problems with xmlValidCtxt in libxml2-2.4.[n] where n >= 21*/ #include #endif #include #include #include #include #endif USER_OBJECT_ RS_XML(createDTDElement)(xmlElementPtr el); USER_OBJECT_ RS_XML(createDTDElementContents)(xmlElementContentPtr vals, xmlElementPtr el, int recursive); USER_OBJECT_ RS_XML(createDTDElementAttributes)(xmlAttributePtr vals, xmlElementPtr el); USER_OBJECT_ RS_XML(createDTDAttribute)(xmlAttributePtr val, xmlElementPtr el); USER_OBJECT_ RS_XML(AttributeEnumerationList)(xmlEnumerationPtr list, xmlAttributePtr attr, xmlElementPtr element); USER_OBJECT_ RS_XML(SequenceContent)(xmlElementContentPtr vals, xmlElementPtr el); USER_OBJECT_ RS_XML(ProcessElements)(xmlElementTablePtr table, xmlParserCtxtPtr ctxt); USER_OBJECT_ RS_XML(ProcessEntities)(xmlEntitiesTablePtr table, xmlParserCtxtPtr ctxt); USER_OBJECT_ RS_XML(createDTDEntity)(xmlEntityPtr entity); USER_OBJECT_ RS_XML(createDTDParts)(xmlDtdPtr dtd, xmlParserCtxtPtr ctxt); USER_OBJECT_ RS_XML(ConstructDTDList)(xmlDocPtr myDoc, int processInternals, xmlParserCtxtPtr ctxt); #endif XML/src/RSDTD.c0000644000176000001440000005511512160603560012563 0ustar ripleyusers/** This file defines the top-level entry routine called from R and S to parse and convert a DTD into a user-level object. Most of the routines are support routines. We leave them as global symbols (as opposed to static) so that others might be able to utilize them. Some are called from the other files (DocParse, specifically). * See Copyright for the license status of this software. */ #include "RSDTD.h" #ifdef USE_S extern char *strdup(const char *); #endif #include "Utils.h" /* for SET_CLASS_NAME */ #include /* For reading DTDs directly from text, not files. Copied directly from parser.c in the libxml(-1.7.3) library. */ #ifdef FROM_GNOME_XML_DIR #include #else #include #endif #define INPUT_CHUNK 250 #define CUR (ctxt->token ? ctxt->token : (*ctxt->input->cur)) #ifdef OLD_SKIP_BLANKS #define SKIP_BLANKS \ do { \ while (IS_BLANK(CUR)) NEXT; \ if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ if (*ctxt->input->cur == '&') xmlParserHandleReference(ctxt); \ } while (IS_BLANK(CUR)); #define NEXT { \ if (ctxt->token != 0) ctxt->token = 0; \ else { \ if ((*ctxt->input->cur == 0) && \ (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) { \ xmlPopInput(ctxt); \ } else { \ if (*(ctxt->input->cur) == '\n') { \ ctxt->input->line++; ctxt->input->col = 1; \ } else ctxt->input->col++; \ ctxt->input->cur++; \ if (*ctxt->input->cur == 0) \ xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \ } \ if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \ if (*ctxt->input->cur == '&') xmlParserHandleReference(ctxt); \ }} #else #define SKIP_BLANKS xmlSkipBlankChars(ctxt) #define NEXT xmlNextChar(ctxt) #endif /* end temporary. */ /* Macro that sets the name of an enumerated value by indexing into an array of names based on the value being represented. */ #define SET_ENUM_NAME(names, which, obj) RS_XML_SetNames(1, RS_XML_##names+which-1,obj); enum {DTD_ELEMENTS_SLOT, DTD_ENTITIES_SLOT, DTD_NUM_SLOTS}; const char *RS_XML(DtdNames)[] = {"elements", "entities"}; /** Top-level entry point for reading the DTD. dtdFileName - name of the DTD. externalId - file identfying the DTD from which its contents are read. */ USER_OBJECT_ RS_XML(getDTD)(USER_OBJECT_ dtdFileName, USER_OBJECT_ externalId, USER_OBJECT_ asText, USER_OBJECT_ isURL, USER_OBJECT_ errorFun) { USER_OBJECT_ ans; const char * dtdName = strdup(CHAR_DEREF(STRING_ELT(dtdFileName, 0))); const char * extId = strdup(CHAR_DEREF(STRING_ELT(externalId, 0))); int localAsText = LOGICAL_DATA(asText)[0]; xmlParserCtxtPtr ctxt; xmlDtdPtr dtd; if(localAsText) { ctxt = xmlCreateDocParserCtxt((xmlChar*) extId); } else { if(LOGICAL_DATA(isURL)[0] == 0) { struct stat tmp_stat; if(extId == NULL || stat(extId, &tmp_stat) < 0) { PROBLEM "Can't find file %s", extId ERROR; } } ctxt = xmlCreateFileParserCtxt(extId); /* from parser.c xmlSAXParseFile */ } if(ctxt == NULL) { PROBLEM "error creating XML parser for `%s'", extId ERROR; } ctxt->validate = 1; #ifdef RS_XML_SET_STRUCTURED_ERROR /* Done in R code now. */ xmlSetStructuredErrorFunc(errorFun == NULL_USER_OBJECT ? NULL : errorFun, R_xmlStructuredErrorHandler); #endif if(ctxt->myDoc == NULL) ctxt->myDoc = xmlNewDoc(BAD_CAST "1.0"); if(localAsText) { xmlCreateIntSubset(ctxt->myDoc, CHAR_TO_XMLCHAR(dtdName), NULL, NULL); while(ctxt->input->cur && ctxt->input->cur[0]) { SKIP_BLANKS; xmlParseMarkupDecl(ctxt); } dtd = ctxt->myDoc->intSubset; } else { /* Read the file. */ /* Added for 2.2.12. May need to be conditional for 1.8.9 */ ctxt->sax->internalSubset(ctxt->userData, CHAR_TO_XMLCHAR(dtdName), CHAR_TO_XMLCHAR(extId), CHAR_TO_XMLCHAR(extId)); /* Warnings will ensue about not being in internal subset if we don't go to level 2. */ #ifdef USE_EXTERNAL_SUBSET ctxt->inSubset = 2; ctxt->sax->externalSubset(ctxt->userData, CHAR_TO_XMLCHAR(dtdName), CHAR_TO_XMLCHAR(extId), CHAR_TO_XMLCHAR(extId)); ctxt->inSubset = 0; #endif dtd = ctxt->myDoc->extSubset; } #ifdef RS_XML_SET_STRUCTURED_ERROR xmlSetStructuredErrorFunc(NULL, NULL); #endif if(dtd == NULL) { if(errorFun != NULL_USER_OBJECT) { RSXML_structuredStop(errorFun, NULL); } else return(stop("DTDParseError", "error parsing %s", dtdName)); PROBLEM "error in DTD %s", extId ERROR; } if(localAsText) { /* Don't bother with the internal and external split, just do the internal and return it. */ ans = RS_XML(createDTDParts)(dtd, ctxt); } else ans = RS_XML(ConstructDTDList)(ctxt->myDoc, 0, ctxt); return(ans); } const char *RS_XML(DtdTypeNames)[] = {"external", "internal"}; /** Create the representation of the DTD contained in the Document pointer, using both the internal and external descriptions and returning a list of the appropriate length. If the external description is empty, then we just return the description of the internal description. Otherwise, we return a named list of length 2 containing descriptions of both. */ USER_OBJECT_ RS_XML(ConstructDTDList)(xmlDocPtr myDoc, int processInternals, xmlParserCtxtPtr ctxt) { USER_OBJECT_ ans, el, klass; int i; xmlDtdPtr sets[2]; int num = processInternals ? 2 : 1; sets[0] = myDoc->extSubset; if(processInternals) { sets[1] = myDoc->intSubset; } PROTECT(ans = NEW_LIST(num)); for(i = 0; i < num; i++) { if(sets[i]) { SET_VECTOR_ELT(ans, i, el= RS_XML(createDTDParts)(sets[i], ctxt)); PROTECT(klass = NEW_CHARACTER(1)); SET_STRING_ELT(klass, 0, mkChar(i==0 ? "ExternalDTD" : "InternalDTD")); SET_CLASS(el, klass); UNPROTECT(1); } } RS_XML(SetNames)(num, RS_XML(DtdTypeNames), ans); UNPROTECT(1); return(processInternals ? ans : VECTOR_ELT(ans, 0)); } /** Process the entities and elements of the DTD, returning a list of length 2, irrespective if either is empty. */ USER_OBJECT_ RS_XML(createDTDParts)(xmlDtdPtr dtd, xmlParserCtxtPtr ctxt) { xmlEntitiesTablePtr entities; xmlElementTable *table; USER_OBJECT_ ans; PROTECT(ans = NEW_LIST(DTD_NUM_SLOTS)); table = (xmlElementTable*) dtd->elements; if(table) SET_VECTOR_ELT(ans, DTD_ELEMENTS_SLOT, RS_XML(ProcessElements)(table, ctxt)); entities = (xmlEntitiesTablePtr) dtd->entities; if(entities) SET_VECTOR_ELT(ans, DTD_ENTITIES_SLOT, RS_XML(ProcessEntities)(entities, ctxt)); RS_XML(SetNames)(DTD_NUM_SLOTS, RS_XML(DtdNames), ans); UNPROTECT(1); return(ans); } #ifdef LIBXML2 struct ElementTableScanner { USER_OBJECT_ dtdEls; USER_OBJECT_ dtdNames; int counter; }; #ifndef NO_XML_HASH_SCANNER_RETURN void *RS_xmlElementTableConverter(void *payload, void *data, xmlChar *name); void* RS_xmlEntityTableConverter(void *payload, void *data, xmlChar *name); #else void RS_xmlElementTableConverter(void *payload, void *data, xmlChar *name); void RS_xmlEntityTableConverter(void *payload, void *data, xmlChar *name); #endif #endif /** Convert the elements into a named list of objects with each element representing an element. */ USER_OBJECT_ RS_XML(ProcessElements)(xmlElementTablePtr table, xmlParserCtxtPtr ctxt) { USER_OBJECT_ dtdEls = NULL_USER_OBJECT; int n; #ifdef LIBXML2 n = xmlHashSize(table); #else int i; xmlElementPtr xmlEl; n = table->nb_elements; #endif if(n > 0) { USER_OBJECT_ dtdNames = NULL_USER_OBJECT; PROTECT(dtdEls = NEW_LIST(n)); PROTECT(dtdNames = NEW_CHARACTER(n)); #ifdef LIBXML2 { struct ElementTableScanner scanData; scanData.dtdEls = dtdEls; scanData.dtdNames = dtdNames; scanData.counter = 0; xmlHashScan(table, RS_xmlElementTableConverter, &scanData); SET_LENGTH(dtdEls, scanData.counter); SET_LENGTH(dtdNames, scanData.counter); } #else for(i = 0; i < n; i++) { xmlEl = table->table[i]; SET_VECTOR_ELT(dtdEls, i, RS_XML(createDTDElement)(xmlEl)); SET_STRING_ELT(dtdNames , i, COPY_TO_USER_STRING(xmlEl->name)); } #endif SET_NAMES(dtdEls, dtdNames); UNPROTECT(2); } return(dtdEls); } #ifdef LIBXML2 /* libxml2 2.4.21 (and perhaps earlier) redefines this to have a return type of void, rather than void*. Need to figure out if this makes any real difference to the interface and also when to */ #ifndef NO_XML_HASH_SCANNER_RETURN void* #else void #endif RS_xmlElementTableConverter(void *payload, void *data, xmlChar *name) { struct ElementTableScanner *scanData = (struct ElementTableScanner *)data; SET_VECTOR_ELT(scanData->dtdEls, scanData->counter, RS_XML(createDTDElement)( payload)); SET_STRING_ELT(scanData->dtdNames, scanData->counter, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(name))); scanData->counter++; #ifndef NO_XML_HASH_SCANNER_RETURN return(payload); #endif } #endif /** Process the list of entities and convert them into a named list containing entity descriptions. */ USER_OBJECT_ RS_XML(ProcessEntities)(xmlEntitiesTablePtr table, xmlParserCtxtPtr ctxt) { USER_OBJECT_ dtdEls = NULL_USER_OBJECT; int n; #ifdef LIBXML2 n = xmlHashSize(table); #else xmlEntity *xmlEl; int i; n = table->nb_entities; #endif if(n > 0) { USER_OBJECT_ dtdNames; PROTECT(dtdEls = NEW_LIST(n)); PROTECT(dtdNames = NEW_CHARACTER(n)); #ifdef LIBXML2 { struct ElementTableScanner scanData; scanData.dtdEls = dtdEls; scanData.dtdNames = dtdNames; scanData.counter = 0; xmlHashScan(table, RS_xmlEntityTableConverter, &scanData); /* Reset the length to be the actual number rather than the capacity of the table. See ProcessElements also. */ SET_LENGTH(dtdEls, scanData.counter); SET_LENGTH(dtdNames, scanData.counter); } #else for(i = 0; i < n; i++) { xmlEl = table->table +i; SET_VECTOR_ELT(dtdEls, i, RS_XML(createDTDEntity)(xmlEl)); SET_STRING_ELT(dtdNames, i, COPY_TO_USER_STRING(xmlEl->name)); } #endif SET_NAMES(dtdEls, dtdNames); UNPROTECT(2); } return(dtdEls); } #ifdef LIBXML2 #ifndef NO_XML_HASH_SCANNER_RETURN void* #else void #endif RS_xmlEntityTableConverter(void *payload, void *data, xmlChar *name) { struct ElementTableScanner *scanData = (struct ElementTableScanner *)data; SET_VECTOR_ELT(scanData->dtdEls, scanData->counter, RS_XML(createDTDEntity)( payload)); SET_STRING_ELT(scanData->dtdNames, scanData->counter, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(name))); scanData->counter++; #ifndef NO_XML_HASH_SCANNER_RETURN return(payload); #endif } #endif /* End of LIBXML2 for definint RS_xmlEntityTableConverter */ /** Convert an entity definition into a user-level object, handling both internal and system entities. We could have different slots for the two types of entities, but that may make it harder to program. S3/R classes aren't exactly good with inheritance of slots. */ /** Indices for the slots of the user-level list representing the entity. */ enum { DTD_ENTITY_NAME_SLOT, DTD_ENTITY_CONTENT_SLOT, DTD_ENTITY_ORIG_SLOT, DTD_ENTITY_NUM_SLOTS}; /* Names for the slots of the user-level list representing the entity. */ const char *RS_XML(EntityNames)[] = {"name", "value", "original"}; USER_OBJECT_ RS_XML(createDTDEntity)(xmlEntityPtr entity) { USER_OBJECT_ ans; const xmlChar *value; const char *localClassName; PROTECT(ans = NEW_LIST(DTD_ENTITY_NUM_SLOTS)); SET_VECTOR_ELT(ans, DTD_ENTITY_NAME_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_ENTITY_NAME_SLOT), 0, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(entity->name))); if(entity->content == NULL) { value = entity->SystemID; localClassName = "XMLSystemEntity"; } else { value = entity->content; localClassName = "XMLEntity"; } SET_VECTOR_ELT(ans, DTD_ENTITY_CONTENT_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_ENTITY_CONTENT_SLOT), 0, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(value))); if(entity->orig) { SET_VECTOR_ELT(ans, DTD_ENTITY_ORIG_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_ENTITY_ORIG_SLOT), 0, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(entity->orig))); } RS_XML(SetNames)(DTD_ENTITY_NUM_SLOTS, RS_XML(EntityNames), ans); /* Set the class of the specified object based on whether it is a internal or external entity. */ SET_CLASS_NAME(localClassName, ans); UNPROTECT(1); return(ans); } enum { DTD_ELEMENT_NAME_SLOT, DTD_ELEMENT_TYPE_SLOT, DTD_ELEMENT_CONTENT_SLOT, DTD_ELEMENT_ATTRIBUTES_SLOT, DTD_ELEMENT_NUM_SLOTS}; const char *RS_XML(ElementNames)[] = {"name", "type", "contents","attributes"}; const char *RS_XML(ElementTypeNames)[] = {"empty", "any", "mixed","element"}; /** Creates the user-level object representing the definition of an element within a DTD, including its attribute definitions, its type, name and finally contents. This is an object of class XMLElementDef. */ USER_OBJECT_ RS_XML(createDTDElement)(xmlElementPtr el) { USER_OBJECT_ rel; int type; #ifdef XML_ELEMENT_ETYPE type = el->etype; #else type = el->type; #endif PROTECT(rel = NEW_LIST(DTD_ELEMENT_NUM_SLOTS)); SET_VECTOR_ELT(rel, DTD_ELEMENT_NAME_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(rel, DTD_ELEMENT_NAME_SLOT), 0, COPY_TO_USER_STRING( XMLCHAR_TO_CHAR( ( el->name ? el->name : (xmlChar*)"")))); SET_VECTOR_ELT(rel, DTD_ELEMENT_TYPE_SLOT, NEW_INTEGER(1)); INTEGER_DATA(VECTOR_ELT(rel, DTD_ELEMENT_TYPE_SLOT))[0] = el->type; SET_ENUM_NAME(ElementTypeNames, type, VECTOR_ELT(rel, DTD_ELEMENT_TYPE_SLOT)); if(el->content != NULL) SET_VECTOR_ELT(rel, DTD_ELEMENT_CONTENT_SLOT, RS_XML(createDTDElementContents)(el->content, el, 1)); SET_VECTOR_ELT(rel, DTD_ELEMENT_ATTRIBUTES_SLOT, RS_XML(createDTDElementAttributes)(el->attributes, el)); RS_XML(SetNames)(DTD_ELEMENT_NUM_SLOTS, RS_XML(ElementNames), rel); SET_CLASS_NAME("XMLElementDef", rel); UNPROTECT(1); return(rel); } /* Indices for the slots/elements in the list. */ enum {DTD_CONTENT_TYPE_SLOT, DTD_CONTENT_OCCURANCE_SLOT, DTD_CONTENT_ELEMENTS_SLOT, DTD_CONTENT_NUM_SLOTS}; /* names for the elements */ const char *RS_XML(ContentNames)[] = {"type", "ocur", "elements"}; /* Names for the enumerated types of the entries in the data */ const char *RS_XML(ContentTypeNames)[] = {"PCData", "Element", "Sequence","Or"}; const char *RS_XML(OccuranceNames)[] = {"Once", "Zero or One", "Mult","One or More"}; /** Create an object representing the DTD element. The returned value is a list with 3 elements. The names are given by the array ContentNames above. The type and ocur elements are simple named integers identifying that the element is simple parsed character data, an element or a composite element which is either an one of several possible types (that is an OR or |) or an ordered sequence of types. The ocur field indicates whether this element is to be expected in this position exactly once (default qualifier), zero or one (i.e. optional) (?) , any number of times (including omitted) (*) and finally , at least once, but possible more(+) The recursive argument allows the RS_XML(SequenceContent) routine to use part of this routine. */ USER_OBJECT_ RS_XML(createDTDElementContents)(xmlElementContentPtr vals, xmlElementPtr el, int recursive) { char *localClassName = NULL; int num = 0; USER_OBJECT_ ans = NULL_USER_OBJECT; PROTECT(ans = NEW_LIST(DTD_CONTENT_NUM_SLOTS)); SET_VECTOR_ELT(ans, DTD_CONTENT_TYPE_SLOT, NEW_INTEGER(1)); INTEGER_DATA(VECTOR_ELT(ans, DTD_CONTENT_TYPE_SLOT))[0] = vals->type; SET_ENUM_NAME(ContentTypeNames, vals->type, VECTOR_ELT(ans, DTD_CONTENT_TYPE_SLOT)); SET_VECTOR_ELT(ans, DTD_CONTENT_OCCURANCE_SLOT, NEW_INTEGER(1)); INTEGER_DATA(VECTOR_ELT(ans, DTD_CONTENT_OCCURANCE_SLOT))[0] = vals->ocur; SET_ENUM_NAME(OccuranceNames, vals->ocur, VECTOR_ELT(ans, DTD_CONTENT_OCCURANCE_SLOT)); if(vals->type == XML_ELEMENT_CONTENT_SEQ && recursive) { SET_VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT, RS_XML(SequenceContent)(vals, el)); } else { num += (vals->c1 != NULL); if(recursive || 1) num += (vals->c2 != NULL); if(num > 0) { SET_VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT, NEW_LIST(num)); num = 0; if(vals->c1) { SET_VECTOR_ELT(VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT), num++, RS_XML(createDTDElementContents)(vals->c1, el, 1)); } if(recursive || 1) { if(vals->c2) { SET_VECTOR_ELT(VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT), num++, RS_XML(createDTDElementContents)(vals->c2, el, 1)); } } } else { if(vals->name) { SET_VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_CONTENT_ELEMENTS_SLOT), 0, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(vals->name))); } } } switch(vals->type) { case XML_ELEMENT_CONTENT_SEQ: localClassName = "XMLSequenceContent"; break; case XML_ELEMENT_CONTENT_OR: localClassName = "XMLOrContent"; break; default: localClassName = "XMLElementContent"; } if(localClassName) { SET_CLASS_NAME(localClassName, ans); } RS_XML(SetNames)(DTD_CONTENT_NUM_SLOTS, RS_XML(ContentNames), ans); UNPROTECT(1); return(ans); } /** Process the DTD element, knowing that it is a sequence definition. Compute the number of elements in the sequence by flattening out the lob-sided tree and then convert the each element and append it to the list. */ USER_OBJECT_ RS_XML(SequenceContent)(xmlElementContentPtr vals, xmlElementPtr el) { xmlElementContentPtr ptr = vals->c2; int ok = 1, n=1, deep = 0; USER_OBJECT_ ans = NULL_USER_OBJECT; USER_OBJECT_ tmp; /* Count the number of elements in this sequence. Descend all the c2's below this one. */ while(ptr && ok) { ok = (ptr->type == XML_ELEMENT_CONTENT_SEQ); ptr = ptr->c2; n++; } /* Now build the list and the elements within it.*/ PROTECT(ans = NEW_LIST(n)); SET_VECTOR_ELT(ans, 0, RS_XML(createDTDElementContents)(vals->c1, el, 1)); ptr = vals->c2; n = 1; do { /* Some jumping around here beacuse of the recursion and split types. Should be cleaner. */ deep = (ptr->c1 != NULL && ptr->type == XML_ELEMENT_CONTENT_SEQ ); tmp = RS_XML(createDTDElementContents)( deep ? ptr->c1 : ptr, el, deep); SET_VECTOR_ELT(ans, n, tmp); ok = (ptr->type == XML_ELEMENT_CONTENT_SEQ); ptr = ptr->c2; n++; } while(ptr && ok); UNPROTECT(1); return(ans); } /** Routine that creates a named list of XMLAttributeDef objects from a collection of attribute definitions associated with the specified XML element definition. */ USER_OBJECT_ RS_XML(createDTDElementAttributes)(xmlAttributePtr vals, xmlElementPtr el) { USER_OBJECT_ ans = NULL_USER_OBJECT; USER_OBJECT_ names; xmlAttributePtr tmp = vals; int n = 0, i; while(tmp) { #ifdef LIBXML2 tmp = tmp->nexth; #else tmp = tmp->next; #endif n++; } if(n > 0) { tmp = vals; PROTECT(ans = NEW_LIST(n)); PROTECT(names = NEW_CHARACTER(n)); for(i=0; i < n; i++) { SET_VECTOR_ELT(ans, i, RS_XML(createDTDAttribute)(tmp, el)); SET_STRING_ELT(names, i, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(tmp->name))); #ifdef LIBXML2 tmp = tmp->nexth; #else tmp = tmp->next; #endif } SET_NAMES(ans, names); UNPROTECT(2); } return(ans); } enum {DTD_ATTRIBUTE_NAME_SLOT, DTD_ATTRIBUTE_TYPE_SLOT, DTD_ATTRIBUTE_DEFAULT_SLOT, DTD_ATTRIBUTE_DEFAULT_VALUE_SLOT, DTD_ATTRIBUTE_NUM_SLOTS}; /* Names for the possible types of an attribute. */ const char *RS_XML(AttributeTypeNames) [] = {"CDATA","Id", "IDRef", "IDRefs", "Entity","Entities", "NMToken", "NMTokens", "Enumeration", "Notation"}; /* Names for the possible modes or default types of an attribute. */ const char *RS_XML(AttributeDefaultNames)[] = {"None", "Required", "Implied", "Fixed"}; /* Names of the elements within the returned list */ const char *RS_XML(AttributeSlotNames)[] = {"name", "type", "defaultType", "defaultValue"}; /** Create a user-level version of a DTD attribute within an Attribute list within the DTD. Return a vector of length 4 with elements named Name, Type, Default Type and Default Value. The first is a simple string (character vector of length 1). The next two are enumerated types describing the type of the attribute value and whether it is required, fixed, implied, etc. The final value is the default value */ USER_OBJECT_ RS_XML(createDTDAttribute)(xmlAttributePtr val, xmlElementPtr el) { USER_OBJECT_ ans; int attrType; #ifdef XML_ATTRIBUTE_ATYPE attrType = val->atype; #else attrType = val->type; #endif PROTECT(ans = NEW_LIST(DTD_ATTRIBUTE_NUM_SLOTS)); SET_VECTOR_ELT(ans, DTD_ATTRIBUTE_NAME_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_ATTRIBUTE_NAME_SLOT), 0, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(val->name))); SET_VECTOR_ELT(ans, DTD_ATTRIBUTE_TYPE_SLOT, NEW_INTEGER(1)); INTEGER_DATA(VECTOR_ELT(ans, DTD_ATTRIBUTE_TYPE_SLOT))[0] = val->type; SET_ENUM_NAME(AttributeTypeNames, attrType, VECTOR_ELT(ans, DTD_ATTRIBUTE_TYPE_SLOT)); SET_VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_SLOT, NEW_INTEGER(1)); INTEGER_DATA(VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_SLOT))[0] = val->def; SET_ENUM_NAME(AttributeDefaultNames, val->def, VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_SLOT)); if(val->type == XML_ATTRIBUTE_ENUMERATION) { SET_VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_VALUE_SLOT, RS_XML(AttributeEnumerationList)(val->tree, val, el)); } else { SET_VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_VALUE_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, DTD_ATTRIBUTE_DEFAULT_VALUE_SLOT), 0, COPY_TO_USER_STRING( XMLCHAR_TO_CHAR( (val->defaultValue ? val->defaultValue : (xmlChar*)"")))); } RS_XML(SetNames)(DTD_ATTRIBUTE_NUM_SLOTS, RS_XML(AttributeSlotNames), ans); SET_CLASS_NAME("XMLAttributeDef", ans); UNPROTECT(1); return(ans); } /** Return a character vector containing the elements listed in the enumeration of possible values in the attribute. These arise in DTD entries such as */ USER_OBJECT_ RS_XML(AttributeEnumerationList)(xmlEnumerationPtr list, xmlAttributePtr attr, xmlElementPtr element) { USER_OBJECT_ ans = NULL_USER_OBJECT; xmlEnumerationPtr tmp = list; int n = 0; /* Count the number of entries in the list/table. */ while(tmp) { n++; tmp = tmp->next; } /* Now convert each entry and add it to a list. */ if(n > 0) { int i; PROTECT(ans = NEW_CHARACTER(n)); tmp = list; for(i = 0; i < n; i++) { SET_STRING_ELT(ans, i, COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(tmp->name))); tmp = tmp->next; } UNPROTECT(1); } return(ans); } XML/src/RSCommon.h0000644000176000001440000000623512160603560013404 0ustar ripleyusers /* Copyright the Omegahat project 1999-2005. Distributed under the GPL license (version 2). */ #ifndef RSCOMMON_H #define RSCOMMON_H #ifdef __cplusplus extern "C" { #endif #if defined(_S_) /* || defined(_R_) */ #ifdef _SPLUS5_ #ifdef ARGS #undef ARGS #endif #endif #include "S.h" #ifdef _SPLUS5_ #include "S_tokens.h" typedef boolean s_boolean; #endif /* End of _SPLUS5_ */ #endif #if defined(_S4_) #define vector s_object typedef s_object* USER_OBJECT_; typedef long RSInt; typedef s_boolean Rboolean; #endif #if defined _SPLUS6_ typedef s_boolean boolean; #define TRUE S_TRUE #define FALSE S_FALSE #endif #if defined(_R_) #include #include #ifdef length #undef length #endif #ifdef GET_LENGTH #undef GET_LENGTH #define GET_LENGTH(x) Rf_length(x) #endif #ifdef append #undef append #endif typedef SEXP USER_OBJECT_; typedef int RSInt; #include "Rversion.h" #if R_VERSION < R_Version(1, 2, 0) #define STRING_ELT(x,i) STRING(x)[i] #define VECTOR_ELT(x,i) VECTOR(x)[i] #define SET_STRING_ELT(x,i,v) (STRING(x)[i]=(v)) #define SET_VECTOR_ELT(x,i,v) (VECTOR(x)[i]=(v)) #define SETCAR(x,v) (CAR(x) = v) #else #include "R_ext/Boolean.h" #endif #endif #if defined(_S4_) /* redefine vector and declare routines with S_evaluator */ #ifdef vector #undef vector #endif #define COPY_TO_USER_STRING(a) c_s_cpy(a, S_evaluator) #define LOCAL_EVALUATOR S_EVALUATOR #define CREATE_FUNCTION_CALL(name, argList) alcf(name, argList, S_evaluator) #define CREATE_STRING_VECTOR(a) STRING_VECTOR(a, S_evaluator) #define NULL_USER_OBJECT S_void /* This is to keep R happy until it moves to char ** rather than SEXP * for character vectors. */ #define CHAR_DEREF(x) (x) #ifdef PROTECT #undef PROTECT #endif #define PROTECT(x) (x) /**/ #define UNPROTECT(x) /**/ /* Note that this will override the one in S.h which is for S4, not S3, style classes. */ #if defined(SET_CLASS) #undef SET_CLASS #endif #define SET_CLASS(obj,classname) set_attr((obj), "class", (classname), S_evaluator) #if defined(GET_CLASS) #undef GET_CLASS #endif #define GET_CLASS(x) GET_ATTR((x), "class") #define STRING_ELT(x,i) CHARACTER_DATA(x)[i] #define VECTOR_ELT(x,i) LIST_POINTER(x)[i] #define SET_VECTOR_ELT(v, pos, val) LIST_POINTER((v))[(pos)]=(val) #define SET_STRING_ELT(v, pos, val) CHARACTER_DATA((v))[(pos)]=(val) #endif /* end of this S4 */ #if defined(_R_) #define CHAR_DEREF(x) CHAR((x)) #define IS_FUNCTION(x) isFunction((x)) /* SET_CLASS and SET_NAMES have been moved to Rdefines.h in the R distribution.*/ #endif /* of defined(_R_) */ #if defined(_Octave_) #include extern char error_buf[]; #define PROBLEM sprintf(error_buf, #define ERROR ); error(error_buf) #define STRING_VALUE(a) a.all_strings()[0].c_str() #define GET_LENGTH(a) getLength(a) #define LOCAL_EVALUATOR /**/ #define COPY_TO_USER_STRING(a) strdup(a) /*XXX*/ #endif /* end of defined(_Octave_)*/ #ifdef __cplusplus } #endif #endif /* end of RSCOMMON_H*/ XML/src/NodeGC.h0000644000176000001440000000202512160603560012777 0ustar ripleyusers#ifndef NODEGC_H #define NODEGC_H #if 1 /* We use the address of a global variable as a marker/signature that indicates we created the value of _private. */ extern int R_XML_MemoryMgrMarker; extern int R_XML_NoMemoryMgmt; #define R_MEMORY_MANAGER_MARKER &R_XML_MemoryMgrMarker #define IS_NOT_OUR_DOC_TO_TOUCH(doc) (doc->_private == NULL || (doc->_private && doc->_private == &R_XML_NoMemoryMgmt) || ((int*)doc->_private)[1] != (int) R_MEMORY_MANAGER_MARKER) #define IS_NOT_OUR_NODE_TO_TOUCH(node) ((node->_private == NULL) || (node->doc && node->doc->_private && node->doc->_private == &R_XML_NoMemoryMgmt) || ((int*)node->_private)[1] != (int) R_MEMORY_MANAGER_MARKER) #else /* Not used. */ #define IS_NOT_OUR_DOC_TO_TOUCH(doc) (doc && doc->name && strcmp((doc)->name, " fake node libxslt") == 0) #define IS_NOT_OUR_NODE_TO_TOUCH(node) (node && (node)->doc && IS_NOT_OUR_DOC_TO_TOUCH((node)->doc)) #endif void decrementNodeRefCount(SEXP rnode); void initDocRefCounter(xmlDocPtr doc); void decrementNodeRefCount(SEXP rnode); #endif XML/src/NodeGC.c0000644000176000001440000002510712160603560013000 0ustar ripleyusers/* THIS COMMENT MAY NOT BE UP TO DATE. Sep 19 2011. The idea is as follows. We use the private field in the xmlDocPtr object to store information about nodes that are out in the wild, i.e. that have been returned to R across the .Call() interface. Each time a node is returned, we increment the number of references to that node by incrementing a table in the xmlDocPtr. Each time these R objects are garbage collected, we decrement the reference count. When the number of references to that node go to 0, we remove that entry from the table. When all the node entries are removed and the document itself is no longer being pointed to, we free the document. What about circularity? Does it occur? What happens when we reparent a node? What happens when we put a node into an R object e.g. x = node[[2]] y[[3]] = x Will R's garbage collection handle this for us? */ /* This now contains the code related to our memory management. */ #include "Utils.h" #include "NodeGC.h" void R_xmlFreeDoc(SEXP ref) { xmlDocPtr doc; doc = (xmlDocPtr) R_ExternalPtrAddr(ref); if(doc && !IS_NOT_OUR_DOC_TO_TOUCH(doc)) { int *val; val = doc->_private; if(val) { (*val)--; if(*val) { #ifdef R_XML_DEBUG fprintf(stderr, "Not freeing XML document %p (%s); still has %d references in the wild\n", doc, doc->URL ? doc->URL : "?", *val); #endif R_ClearExternalPtr(ref); return; } } #ifdef R_XML_DEBUG const xmlChar *url = doc->URL ? doc->URL : (doc->name ? doc->name : (const xmlChar *)"?? (internally created)"); fprintf(stderr, "Cleaning up document %p, %s, has children %d\n", (void *) doc, url, (int) (doc->children != NULL)); #endif if(val) { free(val); doc->_private = NULL; #ifdef R_XML_DEBUG fprintf(stderr, "Freeing the XML doc %p\n", doc); #endif xmlFreeDoc(doc); R_numXMLDocsFreed++; } /* was before the xmlFreeDoc so that that was unconditional.*/ } R_ClearExternalPtr(ref); } SEXP RS_XML_freeDoc(SEXP ref) { R_xmlFreeDoc(ref); return(R_NilValue); } SEXP RS_XML_forceFreeDoc(SEXP ref) { xmlDocPtr doc; doc = (xmlDocPtr) R_ExternalPtrAddr(ref); xmlFreeDoc(doc); return(R_NilValue); } /* This is a finalizer that removes the nodes and disassociates the node and the document and then frees the document structure. Does xmlFreeDoc() deal with the URL and name fields in the doc? XXX With the nodes and document under garbage collection, do we really need this? */ void R_xmlFreeDocLeaveChildren(SEXP ref) { xmlDocPtr doc; doc = (xmlDocPtr) R_ExternalPtrAddr(ref); if(doc) { xmlNodePtr tmp; #ifdef R_XML_DEBUG const xmlChar *url = doc->URL ? doc->URL : (doc->name ? doc->name : (const xmlChar *) "?? (internally created)"); fprintf(stderr, "Cleaning up document but not children: %p, %s\n", (void *) doc, url); #endif tmp = doc->children; xmlUnlinkNode(doc->children); tmp->doc = NULL; xmlFreeDoc(doc); R_numXMLDocsFreed++; } R_ClearExternalPtr(ref); } int R_XML_MemoryMgrMarker = 1010101011; int R_XML_NoMemoryMgmt = 111111111; /* This returns a value that indicates whether we should add a finalizer and put the XML node under a C finalizer to reduce the reference count. user is an R object that should be an integer vector of length 1 and should be 0, 1 or NA (effectively a logical) If it is NA, we consult the document object in which the node is located (or NULL if not part of a document). This document object can have a value in the _private field that tells us no to */ int R_XML_getManageMemory(SEXP user, xmlDocPtr doc, xmlNodePtr node) { int manage; if(TYPEOF(user) == STRSXP || TYPEOF(user) == EXTPTRSXP) return(0); manage = INTEGER(user)[0]; // TYPEOF(user) == INTSXP ? INTEGER(user)[0] : INTEGER(asInteger(user))[0]; if(manage == R_NaInt) { if(!doc) manage = 1; else manage = doc->_private != &R_XML_NoMemoryMgmt; } #ifdef R_XML_DEBUG if(manage) fprintf(stderr, "getManageMemory (%p) %d (type = %d, name = %s)\n", doc, manage, node->type, node->name);fflush(stderr); #endif return(manage); } SEXP R_xmlSetNoMemoryMgmt(SEXP r_doc) { xmlDocPtr doc; doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); doc->_private = &R_XML_NoMemoryMgmt; return(NULL_USER_OBJECT); } void initDocRefCounter(xmlDocPtr doc) { int *val; if(doc->_private) return; doc->_private = calloc(2, sizeof(int)); val = (int *) doc->_private; val[1] = R_MEMORY_MANAGER_MARKER; } void incrementDocRefBy(xmlDocPtr doc, int num) { int *val; if(!doc || IS_NOT_OUR_DOC_TO_TOUCH(doc)) return; if(!doc->_private) { initDocRefCounter(doc); } val = (int *) doc->_private; (*val) += num; } void incrementDocRef(xmlDocPtr doc) { incrementDocRefBy(doc, 1); } #define GET_NODE_COUNT(n) \ n->_private ? *((int*) (n)->_private) : 0 int getNodeCount(xmlNodePtr node) { int val = 0; xmlNodePtr p = node->children; if(!node || IS_NOT_OUR_NODE_TO_TOUCH(node)) return(0); val = GET_NODE_COUNT(node); while(p) { val += getNodeCount(p); p = p->next; } return(val); } void internal_incrementNodeRefCount(xmlNodePtr node) { int *val; if(!node || IS_NOT_OUR_NODE_TO_TOUCH(node) || !node->_private) return; val = (int *) node->_private; (*val)++; } SEXP R_getXMLRefCount(SEXP rnode) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(rnode); if(!node || IS_NOT_OUR_NODE_TO_TOUCH(node) || !node->_private) return(ScalarInteger(-1)); return(ScalarInteger(*((int *) node->_private))); } int checkDescendantsInR(xmlNodePtr node, int process) { xmlNodePtr p; if(!node && (process || IS_NOT_OUR_NODE_TO_TOUCH(node))) return(0); if(node->_private) return(1); p = node->children; while(p) { if(checkDescendantsInR(p, 0)) return(1); p = p->next; } return(0); } int internal_decrementNodeRefCount(xmlNodePtr node) { int *val, status = 0; /* */ if(!node || IS_NOT_OUR_NODE_TO_TOUCH(node)) /* if node->_private == NULL, should * we free this node?, i.e. if it is * not in a parent or a document. No! Basically we shouldn't get here if we have not set the _private. We set the finalizer having set the _private */ return(status); if(!node->_private) return(status); /* Get the value of the reference count and decrement it by 1. If we are now at 0, then we can potentially free this node. Certainly, if we are at 0, we should remove the reference count memory altogether. Now that _we_ no longer need the node, perhaps we can free it. But we have to make certain that we don't free it if a) it is a child of another node or b) if it is within a document and that document is still "in play". To determine if the document is "in play" we look at it's reference count. We decrement it by one since we added one to it for this node. If that makes the document's reference count 0, then we free it. */ val = (int *) node->_private; (*val)--; #ifdef R_XML_DEBUG fprintf(stderr, "decremented node (%s, %d) to %d (%p) %s\n", node->name, node->type, *val, node, *val == 0 ? "***" : "");fflush(stderr); #endif if(*val == 0) { free(node->_private); node->_private = NULL; if(node->doc && !IS_NOT_OUR_DOC_TO_TOUCH(node->doc)) { val = (int *) node->doc->_private; if(val) (*val)--; if(!val || *val == 0) { /* Consolidate with R_xmlFreeDoc */ #ifdef R_XML_DEBUG fprintf(stderr, "releasing document (for node) %p %s (%s)\n", node->doc, node->doc->URL ? node->doc->URL : "?", val ? "has zero count" : "no count");fflush(stderr); #endif if(val) free(node->doc->_private); node->doc->_private = NULL; xmlFreeDoc(node->doc); status = 1; R_numXMLDocsFreed++; } } else if(!node->parent) { /* If the node is not in a tree by having a parent, then * check the children and if they aren't being referenced by an R variable, we can free those too. */ int hold; hold = checkDescendantsInR(node, 1); if(!hold) { #ifdef R_XML_DEBUG fprintf(stderr, "Calling xmlFreeNode() for %p (type = %d)\n", node, node->type);fflush(stderr); #endif xmlFreeNode(node); status = 1; } } else { /* So we have a parent. But what if that parent is not being held as an R variable. We need to free the node. We need to make this smarter to see what parts of the tree we can remove. For instance, we might be holding onto this one, but not the parent, but that parent has a second child which is being held onto. So we go to the top of the node tree and check for its descendants */ int hold; xmlNodePtr p = node->parent; while(p->parent) p = p->parent; hold = checkDescendantsInR(p, 0); if(!hold) { #ifdef R_XML_DEBUG fprintf(stderr, "Calling xmlFree() for %p\n", node);fflush(stderr); #endif xmlFree(p); //XXX xmlFree() or xmlFreeNode() ? status = 1; } } } return(status); } void decrementNodeRefCount(SEXP rnode) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(rnode); int status; status = internal_decrementNodeRefCount(node); if(status) R_ClearExternalPtr(rnode); } int clearNodeMemoryManagement(xmlNodePtr node) { xmlNodePtr tmp; int ctr = 0; if(node->_private) { int a, b; int isOurs = (a = node->_private != &R_XML_NoMemoryMgmt) && (b = ((int *)(node->_private))[1] == (int) &R_XML_MemoryMgrMarker); if(isOurs) { #if R_XML_DEBUG fprintf(stderr, "Removing memory management from %p, %s\n", node, node->name);fflush(stderr); #endif free(node->_private); ctr++; } node->_private = NULL; } tmp = node->children; while(tmp) { if(tmp) ctr += clearNodeMemoryManagement(tmp); tmp = tmp->next; } return(ctr); } SEXP R_clearNodeMemoryManagement(SEXP r_node) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); int val; if(!node) return(ScalarInteger(-1)); val = clearNodeMemoryManagement(node); return(ScalarInteger(val)); } SEXP R_xmlRefCountEnabled() { int ans = #ifdef XML_REF_COUNT_NODES 1; #else 0; #endif return(ScalarLogical(ans)); } XML/src/Makevars.win0000644000176000001440000000052012122564505014020 0ustar ripleyusersPKG_CPPFLAGS= -I${LIB_XML}/include/libxml2 -I${LIB_XML}/include -D_R_=1 -DUSE_R=1 -DUSE_XML_VERSION_H=1 -DLIBXML -DUSE_EXTERNAL_SUBSET=1 -DROOT_HAS_DTD_NODE=1 -DUMP_WITH_ENCODING=1 -DXML_ELEMENT_ETYPE=1 -DXML_ATTRIBUTE_ATYPE=1 -DLIBXML2=1 -DHAVE_XML_HAS_FEATURE -DLIBXML_STATIC PKG_LIBS = -L${LIB_XML}/lib -lxml2 -liconv -lz -lws2_32 XML/src/Makevars.in0000644000176000001440000000013611741563530013637 0ustar ripleyusersPKG_CPPFLAGS= @PKG_CPPFLAGS@ @LANGUAGE_DEFS@ @XMLSEC_DEFS@ -I. @LIBXML2@ PKG_LIBS= @PKG_LIBS@ XML/src/HTMLParse.c0000644000176000001440000000777412160603560013452 0ustar ripleyusers/* This file uses the HTML parser in libxml to provide an HTML parser in R that is basically identical to the XML parsing interface. It can handle files, URLs, compressed files, and raw HTML text. It drops the DTD and validation options since these are not very relevant for HTML. (We can add put them back if anyone wants!) */ #include "DocParse.h" #include "Utils.h" #include "libxml/HTMLparser.h" #include "libxml/HTMLtree.h" #include #include USER_OBJECT_ RS_XML(HtmlParseTree)(USER_OBJECT_ fileName, USER_OBJECT_ converterFunctions, USER_OBJECT_ skipBlankLines, USER_OBJECT_ replaceEntities, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ isURL) { const char *name; xmlDocPtr doc; USER_OBJECT_ rdoc; USER_OBJECT_ className; R_XMLSettings parserSettings; int freeName = 0; int asTextBuffer = LOGICAL_DATA(asText)[0]; int isURLDoc = LOGICAL_DATA(isURL)[0]; parserSettings.skipBlankLines = LOGICAL_DATA(skipBlankLines)[0]; parserSettings.converters = converterFunctions; parserSettings.trim = LOGICAL_DATA(trim)[0]; if(asTextBuffer == 0) { struct stat tmp_stat; #ifdef USE_R name = CHAR(STRING_ELT(fileName, 0)); #else name = CHARACTER_DATA(fileName)[0]; #endif if(!isURLDoc && (name == NULL || stat(name, &tmp_stat) < 0)) { PROBLEM "Can't find file %s", CHAR_DEREF(STRING_ELT(fileName, 0)) ERROR; } } else { name = strdup(CHAR_DEREF(STRING_ELT(fileName, 0))); freeName = 1; } #if 0 /* If one wants entities expanded directly and to appear as text. */ if(LOGICAL_DATA(replaceEntities)[0]) xmlSubstituteEntitiesDefault(1); #endif if(asTextBuffer) { doc = htmlParseDoc(CHAR_TO_XMLCHAR(name), NULL); if(doc != NULL) { doc->name = (char *) xmlStrdup(CHAR_TO_XMLCHAR("")); } } else { doc = htmlParseFile(name, NULL); } if(doc == NULL) { if(freeName && name) free((char *) name); PROBLEM "error in creating parser for %s", name ERROR; } PROTECT(rdoc = RS_XML(convertXMLDoc)(name, doc, converterFunctions, &parserSettings)); if(freeName && name) free((char *) name); #if 0 xmlFreeDoc(doc); R_numXMLDocsFreed++; #endif /* Set the class for the document. */ className = NEW_CHARACTER(1); PROTECT(className); SET_STRING_ELT(className, 0, mkChar("HTMLDocument")); SET_CLASS(rdoc, className); UNPROTECT(1); UNPROTECT(1); return(rdoc); } /* Copied from RS_XML_printXMLNode (XMLTree.c) with minor changes. */ USER_OBJECT_ RS_XML_dumpHTMLDoc(USER_OBJECT_ r_node, USER_OBJECT_ format, USER_OBJECT_ r_encoding, USER_OBJECT_ indent, USER_OBJECT_ outFile) { USER_OBJECT_ ans; xmlDocPtr node; const char *encoding = NULL; xmlOutputBufferPtr buf; xmlBufferPtr xbuf; int oldIndent; oldIndent = xmlIndentTreeOutput; node = (xmlDocPtr) R_ExternalPtrAddr(r_node); xmlIndentTreeOutput = LOGICAL(indent)[0]; #if ADD_XML_OUTPUT_BUFFER_CODE if(Rf_length(outFile)) { htmlSaveFile(CHAR_DEREF(STRING_ELT(outFile, 0)), node); return(R_NilValue); } #endif if(GET_LENGTH(r_encoding)) encoding = CHAR_DEREF(STRING_ELT(r_encoding, 0)); xbuf = xmlBufferCreate(); #if 1 buf = xmlOutputBufferCreateBuffer(xbuf, NULL); #else buf = xmlOutputBufferCreateFilename("/tmp/test.out", NULL, 0); #endif htmlDocContentDumpFormatOutput(buf, node, encoding, INTEGER(format)[0]); xmlOutputBufferFlush(buf); xmlIndentTreeOutput = oldIndent; if(xbuf->use > 0) { /*XXX this const char * in CHARSXP means we have to make multiple copies. */ #if 0 char *rbuf = R_alloc(sizeof(char) * (xbuf->use + 1)); memcpy(rbuf, xbuf->content, xbuf->use + 1); PROTECT(tmp = mkChar(rbuf)); #endif // ans = ScalarString(mkChar(xbuf->content)); DECL_ENCODING_FROM_DOC(node) ans = ScalarString(ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(xbuf->content))); } else ans = NEW_CHARACTER(1); xmlOutputBufferClose(buf); return(ans); } XML/src/ExpatParse.h0000644000176000001440000000107712160603560013762 0ustar ripleyusers#ifndef EXPAT_PARSE_H #define EXPAT_PARSE_H /* */ #include "xmlparse.h" int RS_XML(parseWithParserData)(FILE *file, RS_XMLParserData *parserData); void RS_XML(initParser)(XML_Parser parser, RS_XMLParserData *parserData); int RS_XML(parse)(FILE *file, USER_OBJECT_ handlers); int RS_XML(parseBufferWithParserData)(char *buf, RS_XMLParserData *parserData); int RS_XML(externalEntityHandler)(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId); #endif XML/src/ExpatParse.c0000644000176000001440000000635712160603560013763 0ustar ripleyusers/* only compile this if LIBEXPAT is defined. */ #ifdef LIBEXPAT /* File that provides the entry point for an event driven XML parser that performs callbacks to the different user-level functions in the closure passed to it. * See Copyright for the license status of this software. */ #include "EventParse.h" #include "Utils.h" /* For the findFunction and invokeFunction. */ #include "RSCommon.h" #include "ExpatParse.h" void RS_XML(initParser)(XML_Parser parser, RS_XMLParserData *parserData) { XML_SetUserData(parser, parserData); XML_SetElementHandler(parser, RS_XML(startElement), RS_XML(endElement)); XML_SetCommentHandler(parser, RS_XML(commentHandler)); XML_SetExternalEntityRefHandler(parser, RS_XML(externalEntityHandler)); XML_SetUnparsedEntityDeclHandler(parser, RS_XML(entityDeclarationHandler)); XML_SetCharacterDataHandler(parser, RS_XML(textHandler)); XML_SetProcessingInstructionHandler(parser, RS_XML(processingInstructionHandler)); XML_SetCdataSectionHandler(parser, RS_XML(startCdataSectionHandler), RS_XML(endCdataSectionHandler)); XML_SetBase(parser, parserData->fileName); XML_SetNotStandaloneHandler(parser, RS_XML(notStandAloneHandler)); } int RS_XML(parse)(FILE *file, USER_OBJECT_ handlers) { RS_XMLParserData *parserData; parserData = RS_XML(createParserData)(handlers); return(RS_XML(parseWithParserData)(file, parserData)); } int RS_XML(parseWithParserData)(FILE *file, RS_XMLParserData *parserData) { char buf[BUFSIZ]; int done; XML_Parser parser = XML_ParserCreate(NULL); RS_XML(initParser)(parser, parserData); do { size_t len = fread(buf, 1, sizeof(buf), file); done = len < sizeof(buf); if (!XML_Parse(parser, buf, len, done)) { PROBLEM "%s at line %d\n", XML_ErrorString(XML_GetErrorCode(parser)), XML_GetCurrentLineNumber(parser) WARN; return 1; } } while (!done); XML_ParserFree(parser); return 0; } int RS_XML(parseBufferWithParserData)(char *buf, RS_XMLParserData *parserData) { int status; XML_Parser parser = XML_ParserCreate(NULL); RS_XML(initParser)(parser, parserData); status = XML_Parse(parser, buf, strlen(buf), 1); if(status == 0) { const char *msg = XML_ErrorString(XML_GetErrorCode(parser)); PROBLEM "XML Parser Error: %s", msg ERROR; } return(status); } int RS_XML(externalEntityHandler)(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { RS_XMLParserData *parserData = (RS_XMLParserData*)XML_GetUserData(parser); USER_OBJECT_ opArgs; int i, num; const XML_Char *xml_args[4]; num = sizeof(xml_args)/sizeof(xml_args[0]); xml_args[0] = context; xml_args[1] = base;xml_args[2] = systemId; xml_args[3] = publicId; opArgs = NEW_LIST(num); for(i =0;i < num; i++) { RECURSIVE_DATA(opArgs)[i] = NEW_CHARACTER(1); CHARACTER_DATA(RECURSIVE_DATA(opArgs)[i])[0] = ENC_COPY_TO_USER_STRING(xml_args[i] ? xml_args[i] : ""); } RS_XML(callUserFunction)("externalEntity", NULL, parserData, opArgs); return(1); /* ok to go on */ } #else /* Something to avoid an empty file.*/ void XML_Expat_unused_dummy(void) { } #endif /* only if LIBEXPAT is defined */ XML/src/EventParse.h0000644000176000001440000001231312160603560013755 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef EVENT_PARSE_H #define EVENT_PARSE_H #include #include #include "RSCommon.h" #include "RS_XML.h" #ifdef LIBEXPAT #include "xmlparse.h" #else typedef char XML_Char; #endif #ifdef FROM_GNOME_XML_DIR #include #else #include #endif /* Extensible Struct for carrying information about the parser and its options as specified by the caller from R or S. */ typedef struct { /** The name of the source file which is being parsed. */ char *fileName; /** Flag indicating whether blank (white-space only) text entries should be discarded and not reported. */ int ignoreBlankLines; /** Flag indicating whether the methods in the user-level functions should be invoked with additional information about the current context of the parser, specifically the level or depth of the current node in the tree, potentially the index sequence (i_child1, i_child2, i_child3,...) which identifies the node relative to the root of the tree. Specify this in the call to xmlEventParse(). */ int addContextInfo; /* Flag indicating whether an attempt should be made when calling startElement to lookup a method matching the tag name rather than the vanilla startElement method. Set this in the call xmlEventParse(). */ int callByTagName; /* The R object in which to search for appropriate methods, usually a closure. */ USER_OBJECT_ methods; USER_OBJECT_ endElementHandlers; /* The current depth in the XML document tree. Used when constructing */ int depth; /* Flag indicating whether we should trim the */ int trim; /* S object used in event parsing to share state across calls. */ USER_OBJECT_ stateObject; /* For identifying which element names are to be created into regular nodes. */ USER_OBJECT_ branches; xmlNodePtr current; xmlNodePtr top; int branchIndex; /* */ int useDotNames; /* The XML context */ xmlParserCtxtPtr ctx; /* A function which is used to process a branch "anonymously, i.e not one that is actively identified in the branches = list(....) but a function that is returned from a regular startElement handler that indicates collect up the node and call this. */ USER_OBJECT_ dynamicBranchFunction; USER_OBJECT_ finalize; } RS_XMLParserData; /* The name of the R element to call fo the general case. if useDotNames is on, then we paste a . to the regular name. */ #define HANDLER_FUN_NAME(ctx, txt) \ ((RS_XMLParserData *)(ctx))->useDotNames ? "." txt : txt void R_processBranch(RS_XMLParserData * rinfo, int branchIndex, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes, Rboolean sax1); int R_isBranch(const xmlChar *localname, RS_XMLParserData *rinfo); void R_endBranch(RS_XMLParserData *rinfo, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI); #if 0 typedef struct NodeList NodeList; struct NodeList { xmlNodePtr *el; NodeList *next }; #endif /* Allocate a data structure for use with the parser */ RS_XMLParserData *createRSXMLParserData(USER_OBJECT_ handlers) ; USER_OBJECT_ RS_XML(callUserFunction)(const char *opName, const char *preferredName, RS_XMLParserData *parser, USER_OBJECT_ opArgs) ; /*Made static now: USER_OBJECT_ RS_XML(createAttributesList)(const char **atts); */ void RS_XML(entityDeclarationHandler)(void *userData, const XML_Char *entityName, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId, const XML_Char *notationName); void RS_XML(entityDeclarationHandler)(void *userData, const XML_Char *entityName, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId, const XML_Char *notationName); void RS_XML(commentHandler)(void *userData, const XML_Char *data); void RS_XML(endElement)(void *userData, const char *name); void RS_XML(startElement)(void *userData, const char *name, const char **atts); void RS_XML(processingInstructionHandler)(void *userData, const XML_Char *target, const XML_Char *data); void RS_XML(textHandler)(void *userData, const XML_Char *s, int len); void RS_XML(startCdataSectionHandler)(void *userData) ; void RS_XML(endCdataSectionHandler)(void *userData) ; RS_XMLParserData *RS_XML(createParserData)(USER_OBJECT_ handlers, USER_OBJECT_ finalize); int RS_XML(parseBufferWithParserData)(char *buf, RS_XMLParserData *parserData); int RS_XML(notStandAloneHandler)(void *userData); int RS_XML(libXMLEventParse)(const char *fileName, RS_XMLParserData *parserData, RS_XML_ContentSourceType asText, int saxVersion); USER_OBJECT_ findEndElementFun(const char *name, RS_XMLParserData *rinfo); void updateState(USER_OBJECT_ val, RS_XMLParserData *parserData); #endif XML/src/EventParse.c0000644000176000001440000003465512160603560013765 0ustar ripleyusers /* File that provides the entry point for an event driven XML parser that performs callbacks to the different user-level functions in the closure passed to it. * See Copyright for the license status of this software. */ #include "EventParse.h" #define R_USE_XML_ENCODING 1 #include "Utils.h" /* For the findFunction and invokeFunction. */ #undef R_USE_XML_ENCODING /*XXX */ #include "RSCommon.h" extern void R_PreserveObject(SEXP); extern void R_ReleaseObject(SEXP); /* Read the specified file as an XML document and invoke functions/methods in the handlers closure object when each node in the tree is encountered by the parser. These events are startElement,endElement, character data, etc. The remaining arguments control how the calls to the user level functions are made. The first (addContext) indicates whether information about the position in the tree (an integer index path) */ typedef Rboolean Sboolean; Sboolean IsConnection(USER_OBJECT_ obj) { int i; USER_OBJECT_ k = GET_CLASS(obj); if(GET_LENGTH(k) == 0) return(FALSE); for(i = 0; i < GET_LENGTH(k); i++) { if(strcmp("connection", CHAR_DEREF(STRING_ELT(k, i))) == 0) return(TRUE); } return(FALSE); } static USER_OBJECT_ RS_XML(createAttributesList)(const char **atts, const xmlChar *encoding) { int n=0, i; const char **ptr = atts; USER_OBJECT_ attr_names; USER_OBJECT_ attr_values; while(ptr && ptr[0]) { n++; ptr += 2; } if(n < 1) return(NULL_USER_OBJECT); PROTECT(attr_values = NEW_CHARACTER(n)); PROTECT(attr_names = NEW_CHARACTER(n)); ptr = atts; for(i=0; i < n; i++, ptr+=2) { SET_STRING_ELT(attr_values, i, ENC_COPY_TO_USER_STRING(ptr[1])); SET_STRING_ELT(attr_names, i, ENC_COPY_TO_USER_STRING(ptr[0])); } SET_NAMES(attr_values, attr_names); UNPROTECT(2); return(attr_values); } USER_OBJECT_ RS_XML(Parse)(USER_OBJECT_ fileName, USER_OBJECT_ handlers, USER_OBJECT_ endElementHandlers, USER_OBJECT_ addContext, USER_OBJECT_ ignoreBlanks, USER_OBJECT_ useTagName, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ useExpat, USER_OBJECT_ stateObject, USER_OBJECT_ replaceEntities, USER_OBJECT_ validate, USER_OBJECT_ saxVersion, USER_OBJECT_ branches, USER_OBJECT_ useDotNames, USER_OBJECT_ errorFun, USER_OBJECT_ manageMemory) { #ifdef LIBEXPAT FILE *file = NULL; int expat = 0; #endif char *name, *input; RS_XML_ContentSourceType asTextBuffer; RS_XMLParserData *parserData; USER_OBJECT_ ans; int status; if(IsConnection(fileName) || isFunction(fileName)) asTextBuffer = RS_XML_CONNECTION; else asTextBuffer = LOGICAL_DATA(asText)[0] ? RS_XML_TEXT : RS_XML_FILENAME; #ifdef LIBEXPAT expat = LOGICAL_DATA(useExpat)[0]; if(expat && asTextBuffer == 0) { #ifdef USE_R name = R_ExpandFileName(CHAR(STRING(fileName)[0])); #else name = CHARACTER_DATA(fileName)[0]; #endif file = fopen(name,"r"); if(file == NULL) { PROBLEM "Can't find file %s", name ERROR; } } else #endif /* ifdef LIBEXPAT */ if(asTextBuffer == RS_XML_CONNECTION) { name = strdup(""); input = (char *)fileName;/*XXX*/ } else { name = strdup(CHAR_DEREF(STRING_ELT(fileName, 0))); input = name; } parserData = RS_XML(createParserData)(handlers, manageMemory); parserData->endElementHandlers = endElementHandlers; parserData->branches = branches; parserData->fileName = name; parserData->callByTagName = LOGICAL_DATA(useTagName)[0]; parserData->addContextInfo = LOGICAL_DATA(addContext)[0]; parserData->trim = LOGICAL_DATA(trim)[0]; parserData->ignoreBlankLines = LOGICAL_DATA(ignoreBlanks)[0]; parserData->stateObject = (stateObject == NULL_USER_OBJECT ? NULL : stateObject); parserData->useDotNames = LOGICAL_DATA(useDotNames)[0]; parserData->dynamicBranchFunction = NULL; /*Is this necessary? Shouldn't it already be protected? Or is there a chance that we may be doing this asynchronously in a pull approach. */ if(parserData->stateObject && parserData->stateObject != NULL_USER_OBJECT) R_PreserveObject(parserData->stateObject); #ifdef LIBEXPAT if(expat) { if(asTextBuffer == 0) { RS_XML(parseWithParserData)(file, parserData); } else { parserData->fileName = ""; RS_XML(parseBufferWithParserData)(name, parserData); free(name); /* match the strdup() above */ } } else #endif /* ifdef LIBEXPAT */ #if 0 /* If one wants entities expanded directly and to appear as text. */ xmlSubstituteEntitiesDefault(LOGICAL_DATA(replaceEntities)[0]); #endif status = RS_XML(libXMLEventParse)(input, parserData, asTextBuffer, INTEGER_DATA(saxVersion)[0]); /* How about using R_alloc() here so that it is freed, i.e. for the fileName and the parserData itself. */ ans = parserData->stateObject ? parserData->stateObject : handlers; free(parserData->fileName); if(parserData->stateObject && parserData->stateObject != NULL_USER_OBJECT) R_ReleaseObject(parserData->stateObject); if(status != 0) { RSXML_structuredStop(errorFun, NULL); } /* free(parserData); Now using R_alloc */ return(ans); } /** Handler that receives declarations of unparsed entities. These are entity declarations that have a notation (NDATA) field: */ void RS_XML(entityDeclarationHandler)(void *userData, const XML_Char *entityName, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId, const XML_Char *notationName) { RS_XMLParserData *parserData = (RS_XMLParserData*)userData; USER_OBJECT_ opArgs; int i, num; const XML_Char *xml_args[5]; DECL_ENCODING_FROM_EVENT_PARSER(parserData) num = sizeof(xml_args)/sizeof(xml_args[0]); xml_args[0] = entityName; xml_args[1] = base; xml_args[2] = systemId; xml_args[3] = publicId; xml_args[4] = notationName; opArgs = NEW_LIST(num); for(i =0;i < num; i++) { SET_VECTOR_ELT(opArgs, i, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, i), 0, ENC_COPY_TO_USER_STRING(xml_args[i] ? xml_args[i] : "")); } RS_XML(callUserFunction)(HANDLER_FUN_NAME(parserData, "entityDeclaration"), (const char*)NULL, parserData, opArgs); } void RS_XML(startElement)(void *userData, const char *name, const char **atts) { USER_OBJECT_ opArgs; int i; RS_XMLParserData *rinfo = (RS_XMLParserData*) userData; DECL_ENCODING_FROM_EVENT_PARSER(rinfo) if((i = R_isBranch(CHAR_TO_XMLCHAR(name), rinfo)) != -1) { R_processBranch(rinfo, i, CHAR_TO_XMLCHAR(name), NULL, NULL, 0, NULL, 0, 0, (const xmlChar ** /*XXX*/) atts, 1); return; } PROTECT(opArgs = NEW_LIST(2)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(name)); /* Now convert the attributes list. */ SET_VECTOR_ELT(opArgs, 1, RS_XML(createAttributesList)(atts, encoding)); RS_XML(callUserFunction)(HANDLER_FUN_NAME(rinfo, "startElement"), name, ((RS_XMLParserData*) userData), opArgs); UNPROTECT(1); } void RS_XML(commentHandler)(void *userData, const XML_Char *data) { USER_OBJECT_ opArgs = NEW_LIST(1); RS_XMLParserData *rinfo = (RS_XMLParserData *) userData; DECL_ENCODING_FROM_EVENT_PARSER(rinfo) PROTECT(opArgs); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(data)); RS_XML(callUserFunction)(HANDLER_FUN_NAME(rinfo, "comment"), (const char *)NULL, ((RS_XMLParserData*)userData), opArgs); UNPROTECT(1); } USER_OBJECT_ findEndElementFun(const char *name, RS_XMLParserData *rinfo) { int i, n; USER_OBJECT_ names = GET_NAMES(rinfo->endElementHandlers); n = GET_LENGTH(rinfo->endElementHandlers); for(i = 0 ; i < n ; i++) { if(strcmp(CHAR_DEREF(STRING_ELT(names, i)), name) == 0) return(VECTOR_ELT(rinfo->endElementHandlers, i)); } return(NULL); } void RS_XML(endElement)(void *userData, const char *name) { USER_OBJECT_ opArgs, fun; RS_XMLParserData *rinfo = (RS_XMLParserData *) userData; DECL_ENCODING_FROM_EVENT_PARSER(rinfo) if(rinfo->current) { /* Dealing with a branch, so close up. */ R_endBranch(rinfo, CHAR_TO_XMLCHAR(name), NULL, NULL); return; } ((RS_XMLParserData*)userData)->depth++; /* ??? should this be depth-- */ PROTECT(opArgs = NEW_LIST(1)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(name)); fun = findEndElementFun(name, rinfo); if(fun) { USER_OBJECT_ val = RS_XML(invokeFunction)(fun, opArgs, rinfo->stateObject, rinfo->ctx); updateState(val, rinfo); } else RS_XML(callUserFunction)(HANDLER_FUN_NAME(rinfo, "endElement"), NULL, ((RS_XMLParserData*) userData), opArgs); UNPROTECT(1); } /** Called for inline expressions of the form such as */ void RS_XML(processingInstructionHandler)(void *userData, const XML_Char *target, const XML_Char *data) { USER_OBJECT_ opArgs; RS_XMLParserData *parserData = (RS_XMLParserData *) userData; DECL_ENCODING_FROM_EVENT_PARSER(parserData) PROTECT(opArgs = NEW_LIST(2)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(target)); SET_VECTOR_ELT(opArgs, 1, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 1), 0, ENC_COPY_TO_USER_STRING(data)); RS_XML(callUserFunction)(HANDLER_FUN_NAME(parserData, "processingInstruction"), (const char *)NULL, (RS_XMLParserData*)userData, opArgs); UNPROTECT(1); } void RS_XML(startCdataSectionHandler)(void *userData) { } void RS_XML(endCdataSectionHandler)(void *userData) { } char * fixedTrim(char *str, int len, int *start, int *end) { char *tmp; *end = len; *start = 0; /* If a degenerate string, just return. */ if(len == 0 || str == (char*)NULL || str[0] == '\0') return(str); /* Jump to the end */ tmp = str + len - 2; while(tmp >= str && isspace(*tmp)) { tmp--; (*end)--; } if(tmp == str) { return(str); } tmp = str; while(*start <= *end && *tmp && isspace(*tmp)) { tmp++; (*start)++; } return(tmp); } void RS_XML(textHandler)(void *userData, const XML_Char *s, int len) { char *tmpString, *tmp; USER_OBJECT_ opArgs = NULL; RS_XMLParserData *parserData = (RS_XMLParserData*)userData; DECL_ENCODING_FROM_EVENT_PARSER(parserData) /* XXX Here is where we have to ignoreBlankLines and use the trim setting in parserData */ if(parserData->current) { xmlChar *tmp; int newLen = len, start = 0, end = len; #if 1 if(parserData->trim) { tmpString = fixedTrim(XMLCHAR_TO_CHAR(s), len, &start, &end); newLen = end - start; } else tmpString = XMLCHAR_TO_CHAR(s); if(newLen < 0 && parserData->ignoreBlankLines) return; #else tmpString = s; #endif if(newLen < 0) tmp = strdup(""); else { tmp = (xmlChar *) S_alloc(newLen + 2, sizeof(xmlChar)); memcpy(tmp, tmpString, newLen); tmp[newLen] = '\0'; } xmlAddChild(parserData->current, xmlNewText(tmp)); //XXX??? if(newLen < 0) free(tmp); return; } /* Last case handles ignoring the new line between the two nodes if trim is TRUE. */ if(s == (XML_Char*)NULL || s[0] == (XML_Char)NULL || len == 0 || (len == 1 && ((const char *) s)[0] == '\n' && parserData->trim)) return; /*XXX Deal with encoding, memory cleanup, 1 more than length so we can put a \0 on the end. */ tmp = tmpString = (char*)calloc(len+1, sizeof(char)); strncpy(tmpString, s, len); if(parserData->trim) { tmpString = trim(tmpString); len = strlen(tmpString); } if(len > 0 || parserData->ignoreBlankLines == 0 ) { PROTECT(opArgs = NEW_LIST(1)); SET_VECTOR_ELT(opArgs, 0, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(opArgs, 0), 0, ENC_COPY_TO_USER_STRING(tmpString)); } free(tmp); /* If we are ignoring blanks and the potentially newly computed length is non-zero, then call the user function. */ if(opArgs != NULL) { RS_XML(callUserFunction)(HANDLER_FUN_NAME(parserData, "text"), (const char *)NULL, ((RS_XMLParserData*) userData), opArgs); UNPROTECT(1); } } int RS_XML(notStandAloneHandler)(void *userData) { /* printf("In NotStandalone handler\n"); */ return(1); } /** Create the parser data which contains the the collection of functions to call for each event type. This allocates the parser memory using calloc. The caller should arrange to free it. */ RS_XMLParserData * RS_XML(createParserData)(USER_OBJECT_ handlers, USER_OBJECT_ finalize) { RS_XMLParserData *parser = (RS_XMLParserData *) R_alloc(1, sizeof(RS_XMLParserData)); memset(parser, '\0', sizeof(RS_XMLParserData)); parser->methods = handlers; parser->finalize = finalize; return(parser); } /** Routine that locates and invokes the R function in the collection of handlers. opName is the identifier for the generic operation, i.e. startElement, text, etc. perferredName is the identifier for the node. */ USER_OBJECT_ RS_XML(callUserFunction)(const char *opName, const char *preferredName, RS_XMLParserData *parserData, USER_OBJECT_ opArgs) { USER_OBJECT_ fun = NULL, val; USER_OBJECT_ _userObject = parserData->methods; int general = 0; R_CHECK_INTERRUPTS if(preferredName && parserData->callByTagName) { fun = RS_XML(findFunction)(preferredName, _userObject); } if(fun == NULL) { general = 1; fun = RS_XML(findFunction)(opName, _userObject); } if(fun == NULL || isFunction(fun) == 0 ) { /* || (general && R_isInstanceOf(fun, "AsIs"))) Should we do this? */ /* FAILED */ return(NULL_USER_OBJECT); } val = RS_XML(invokeFunction)(fun, opArgs, parserData->stateObject, parserData->ctx); updateState(val, parserData); return(val); } void updateState(USER_OBJECT_ val, RS_XMLParserData *parserData) { if(!parserData->stateObject || parserData->stateObject == NULL_USER_OBJECT) { return; } #ifdef _R_ R_ReleaseObject(parserData->stateObject); R_PreserveObject(val); #else decr_ref_count(parserData->stateObject, TRUE, Local_data, S_evaluator); incr_ref_count(val, TRUE, Local_data, S_evaluator); #endif parserData->stateObject = val; } XML/src/DocParse.h0000644000176000001440000000312012160603560013375 0ustar ripleyusers/* * See Copyright for the license status of this software. */ #ifndef XMLPARSE_H #define XMLPARSE_H #include #include #include "RSCommon.h" #include "RS_XML.h" #ifdef FROM_GNOME_XML_DIR #include #else #include #endif typedef struct { int skipBlankLines; int trim; int xinclude; USER_OBJECT_ converters; int addAttributeNamespaces; int internalNodeReferences; int fullNamespaceInfo; int useDotNames; SEXP finalize; } R_XMLSettings; enum {DOWN, SIDEWAYS}; USER_OBJECT_ RS_XML(convertXMLDoc)(const char *fileName, xmlDocPtr doc, USER_OBJECT_ converterFunctions, R_XMLSettings *settings); /*USER_OBJECT_ RS_XML(createXMLNode)(xmlNodePtr node, int recursive, int direction, R_XMLSettings *settings, USER_OBJECT_ parentUserNode);*/ USER_OBJECT_ RS_XML(AttributeList)(xmlNodePtr node, R_XMLSettings *settings); USER_OBJECT_ RS_XML(createNodeChildren)(xmlNodePtr node, int direction, R_XMLSettings *parserSettings); USER_OBJECT_ RS_XML(lookupGenericNodeConverter)(xmlNodePtr node, USER_OBJECT_ methods, R_XMLSettings *parserSettings); USER_OBJECT_ RS_XML(createNameSpaceIdentifier)(xmlNs *space, xmlNodePtr node); USER_OBJECT_ RS_XML_xmlXIncludeProcessFlags(USER_OBJECT_ r_doc, USER_OBJECT_ r_flags); USER_OBJECT_ processNamespaceDefinitions(xmlNs *ns, xmlNodePtr node, R_XMLSettings *parserSettings); typedef struct _R_NodeGCInfo { struct _R_NodeGCInfo *prev; struct _R_NodeGCInfo *next; xmlNodePtr node; int count; } R_NodeGCInfo; void initDocRefCounter(xmlDocPtr doc); #endif XML/src/DocParse.c0000644000176000001440000012317212160603560013402 0ustar ripleyusers/** Routines for parsing and processing an XML document into an R/S data structure. * See Copyright for the license status of this software. */ #include "DocParse.h" #define R_USE_XML_ENCODING 1 #include "Utils.h" /* For isBlank() */ /* For the call to stat. */ #include #include #include "RSDTD.h" #include #include #include int RS_XML(setNodeClass)(xmlNodePtr node, USER_OBJECT_ ans); USER_OBJECT_ RS_XML(notifyNamespaceDefinition)(USER_OBJECT_ ns, R_XMLSettings *parserSettings); void RS_XML(ValidationWarning)(void *ctx, const char *msg, ...); void RS_XML(ValidationError)(void *ctx, const char *msg, ...); static USER_OBJECT_ convertNode(USER_OBJECT_ ans, xmlNodePtr node, R_XMLSettings *parserSettings); static void NodeTraverse(xmlNodePtr doc, USER_OBJECT_ converterFunctions, R_XMLSettings *parserSettings, int rootFirst); static USER_OBJECT_ makeSchemaReference(xmlSchemaPtr ref); USER_OBJECT_ RS_XML(libxmlVersionRuntime)() { return(mkString(*__xmlParserVersion())); } USER_OBJECT_ RS_XML(getDefaultValiditySetting)(USER_OBJECT_ val) { #ifdef HAVE_VALIDITY extern int xmlDoValidityCheckingDefaultValue; USER_OBJECT_ ans; ans = NEW_INTEGER(1); INTEGER_DATA(ans)[0] = xmlDoValidityCheckingDefaultValue; if(GET_LENGTH(val)) xmlDoValidityCheckingDefaultValue = INTEGER_DATA(val)[0]; return(ans); #else return(NEW_INTEGER(0)); #endif } #include void R_xmlStructuredErrorHandler(void *data, xmlErrorPtr err) { RSXML_structuredStop((SEXP) data, err); } /** Entry point for reading, parsing and converting an XML tree to an R object. fileName is the string identifying the file, and is expanded using the normal rules for an R file name. That is, it can contain environment variables, ~, etc. converterFunctions is a collection of functions used to map a node into an R object. This would normally be a closure. It is not currently used, but will be enabled in the future. skipBlankLines controls whether text elements consisting simply of white space are included in the resulting structure. The return value is a simple list with named elements file, version and children The children element is itself a list consisting of objects of class `XMLNode'. Each of these has the characteristic */ USER_OBJECT_ RS_XML(ParseTree)(USER_OBJECT_ fileName, USER_OBJECT_ converterFunctions, USER_OBJECT_ skipBlankLines, USER_OBJECT_ replaceEntities, USER_OBJECT_ asText, USER_OBJECT_ trim, USER_OBJECT_ validate, USER_OBJECT_ getDTD, USER_OBJECT_ isURL, USER_OBJECT_ addNamespaceAttributes, USER_OBJECT_ internalNodeReferences, USER_OBJECT_ s_useHTML, USER_OBJECT_ isSchema, USER_OBJECT_ fullNamespaceInfo, USER_OBJECT_ r_encoding, USER_OBJECT_ useDotNames, USER_OBJECT_ xinclude, USER_OBJECT_ errorFun, USER_OBJECT_ manageMemory, USER_OBJECT_ r_parserOptions, USER_OBJECT_ r_rootFirst) { const char *name; xmlDocPtr doc; USER_OBJECT_ rdoc, rdocObj; /* rdocObj is used to put the doc object * under R's garbage collection.*/ USER_OBJECT_ className; R_XMLSettings parserSettings; int asTextBuffer = LOGICAL_DATA(asText)[0]; int isURLDoc = LOGICAL_DATA(isURL)[0]; int useHTML = LOGICAL_DATA(s_useHTML)[0]; const char *encoding = NULL; int freeName = 0; int parserOptions = 0; int rootFirst = INTEGER(r_rootFirst)[0]; if(GET_LENGTH(r_encoding)) { encoding = CHAR(STRING_ELT(r_encoding, 0)); if(!encoding[0]) encoding = NULL; } if(Rf_length(r_parserOptions)) parserOptions = INTEGER(r_parserOptions)[0]; parserSettings.skipBlankLines = LOGICAL_DATA(skipBlankLines)[0]; parserSettings.converters = converterFunctions; parserSettings.useDotNames = LOGICAL_DATA(useDotNames)[0]; parserSettings.trim = LOGICAL_DATA(trim)[0]; parserSettings.xinclude = LOGICAL_DATA(xinclude)[0]; parserSettings.fullNamespaceInfo = LOGICAL_DATA(fullNamespaceInfo)[0]; parserSettings.internalNodeReferences = LOGICAL_DATA(internalNodeReferences)[0]; parserSettings.addAttributeNamespaces = LOGICAL_DATA(addNamespaceAttributes)[0]; parserSettings.finalize = manageMemory; if(asTextBuffer == 0) { struct stat tmp_stat; #ifdef USE_R name = CHAR(STRING_ELT(fileName, 0)); #else name = CHARACTER_DATA(fileName)[0]; #endif if(!isURLDoc && (name == NULL || stat(name, &tmp_stat) < 0)) { PROBLEM "Can't find file %s", CHAR_DEREF(STRING_ELT(fileName, 0)) ERROR; } } else { name = strdup(CHAR_DEREF(STRING_ELT(fileName, 0))); freeName = 1; } #if 0 /* Done in R now.*/ /* If one wants entities expanded directly and to appear as text. */ if(LOGICAL_DATA(replaceEntities)[0]) xmlSubstituteEntitiesDefault(1); #endif if(LOGICAL_DATA(isSchema)[0]) { xmlSchemaPtr schema = NULL; xmlSchemaParserCtxtPtr ctxt; ctxt = xmlSchemaNewParserCtxt(name); schema = xmlSchemaParse(ctxt); xmlSchemaFreeParserCtxt(ctxt); /*XXX make certain to cleanup the settings. Put a finalizer on this in makeSchemaReference. */ return(makeSchemaReference(schema)); } #ifdef RS_XML_SET_STRUCTURED_ERROR xmlSetStructuredErrorFunc(errorFun == NULL_USER_OBJECT ? NULL : errorFun, R_xmlStructuredErrorHandler); #endif if(asTextBuffer) { doc = useHTML ? htmlParseDoc(CHAR_TO_XMLCHAR(name), encoding) : xmlReadMemory(name, strlen(name), NULL, encoding, parserOptions) ; /* xmlParseMemory(name, strlen(name)) */ if(doc != NULL) doc->name = (char *) xmlStrdup(CHAR_TO_XMLCHAR("")); } else { doc = useHTML ? htmlParseFile(XMLCHAR_TO_CHAR(name), encoding) : xmlReadFile(name, encoding, parserOptions) /* xmlParseFile(name) */ ; } #ifdef RS_XML_SET_STRUCTURED_ERROR xmlSetStructuredErrorFunc(NULL, NULL); #endif if(doc == NULL) { if(freeName && name) { #ifdef EXPERIMENTING free((char *) name); #endif } /*XXX Just freed the name ! */ if(errorFun != NULL_USER_OBJECT) { RSXML_structuredStop(errorFun, NULL); } else return(stop("XMLParseError", "error in creating parser for %s", name)); PROBLEM "error in creating parser for %s", name ERROR; } if(TYPEOF(xinclude) == LGLSXP && LOGICAL_DATA(xinclude)[0]) { xmlXIncludeProcessFlags(doc, XML_PARSE_XINCLUDE); } else if(TYPEOF(xinclude) == INTSXP && GET_LENGTH(xinclude) > 0) { xmlXIncludeProcessFlags(doc, INTEGER(xinclude)[0]); } if(!useHTML && LOGICAL_DATA(validate)[0]) { xmlValidCtxt ctxt; ctxt.error = RS_XML(ValidationError); ctxt.warning = RS_XML(ValidationWarning); if(!xmlValidateDocument(&ctxt, doc)) { if(freeName && name) free((char *) name); PROBLEM "XML document is invalid" ERROR; } } if(parserSettings.internalNodeReferences) { /* Use a different approach - pass internal nodes to the converter functions*/ if(GET_LENGTH(converterFunctions) > 0) { xmlNodePtr root; #ifdef USE_OLD_ROOT_CHILD_NAMES root = doc->root; #else root = doc->xmlRootNode; #ifdef ROOT_HAS_DTD_NODE if(root->next && root->children == NULL) root = root->next; #endif #endif PROTECT(rdocObj = R_createXMLDocRef(doc)); NodeTraverse(root, converterFunctions, &parserSettings, rootFirst); UNPROTECT(1); } PROTECT(rdoc = NULL_USER_OBJECT); } else { PROTECT(rdoc = RS_XML(convertXMLDoc)(name, doc, converterFunctions, &parserSettings)); } if(asTextBuffer && name) free((char *) name); if(!useHTML && !parserSettings.internalNodeReferences && LOGICAL_DATA(getDTD)[0]) { USER_OBJECT_ ans, klass, tmp; const char *names[] = {"doc", "dtd"}; PROTECT(ans = NEW_LIST(2)); SET_VECTOR_ELT(ans, 0, rdoc); SET_VECTOR_ELT(ans, 1, tmp = RS_XML(ConstructDTDList)(doc, 1, NULL)); PROTECT(klass = NEW_CHARACTER(1)); SET_STRING_ELT( klass, 0, mkChar("DTDList")); SET_CLASS(tmp, klass); RS_XML(SetNames)(sizeof(names)/sizeof(names[0]), names, ans); UNPROTECT(2); /* release the ans */ rdoc = ans; } if(parserSettings.internalNodeReferences && GET_LENGTH(converterFunctions) < 1) { UNPROTECT(1); return(R_createXMLDocRef(doc)); } if(!parserSettings.internalNodeReferences) { /* Set the class for the document. */ className = NEW_CHARACTER(1); PROTECT(className); SET_STRING_ELT(className, 0, mkChar(useHTML ? "HTMLDocument" : "XMLDocument")); SET_CLASS(rdoc, className); UNPROTECT(1); } UNPROTECT(1); return(rdoc); } enum { FILE_ELEMENT_NAME, VERSION_ELEMENT_NAME, CHILDREN_ELEMENT_NAME, NUM_DOC_ELEMENTS}; void NodeTraverse(xmlNodePtr root, USER_OBJECT_ converterFunctions, R_XMLSettings *parserSettings, int rootFirst) { xmlNodePtr c, tmp; c = root; while(c) { USER_OBJECT_ ref; #ifndef USE_OLD_ROOT_CHILD_NAMES tmp = c->xmlChildrenNode; #else c->childs; #endif if(!rootFirst && tmp) NodeTraverse(tmp, converterFunctions, parserSettings, rootFirst); PROTECT(ref = R_createXMLNodeRef(c, parserSettings->finalize)); convertNode(ref, c, parserSettings); UNPROTECT(1); if(rootFirst && tmp) NodeTraverse(tmp, converterFunctions, parserSettings, rootFirst); c = c->next; } } /** Returns a named list whose elements are file: the name of the file being processed. version: the XML version. root: the collection of children. */ USER_OBJECT_ RS_XML(convertXMLDoc)(const char *fileName, xmlDocPtr doc, USER_OBJECT_ converterFunctions, R_XMLSettings *parserSettings) { USER_OBJECT_ rdoc; USER_OBJECT_ rdoc_el_names, klass; int n = NUM_DOC_ELEMENTS; const char *version = ""; DECL_ENCODING_FROM_DOC(doc) PROTECT(rdoc = NEW_LIST(n)); PROTECT(rdoc_el_names = NEW_CHARACTER(n)); /* Insert the name of the file being processed */ SET_VECTOR_ELT(rdoc, FILE_ELEMENT_NAME, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(rdoc, FILE_ELEMENT_NAME), 0, ENC_COPY_TO_USER_STRING(doc->name ? XMLCHAR_TO_CHAR(doc->name) : fileName)); SET_STRING_ELT(rdoc_el_names, FILE_ELEMENT_NAME, COPY_TO_USER_STRING("file")); /* Insert the XML version information */ SET_VECTOR_ELT(rdoc, VERSION_ELEMENT_NAME, NEW_CHARACTER(1)); if(doc->version) version = XMLCHAR_TO_CHAR(doc->version); SET_STRING_ELT(VECTOR_ELT(rdoc, VERSION_ELEMENT_NAME), 0, COPY_TO_USER_STRING(version)); SET_STRING_ELT(rdoc_el_names, VERSION_ELEMENT_NAME, COPY_TO_USER_STRING("version")); /* Compute the nodes for this tree, recursively. Note the SIDEWAYS argument to get the sibling nodes at the root, rather than just the first and its children. */ { xmlNodePtr root; #ifdef USE_OLD_ROOT_CHILD_NAMES root = doc->root; #else root = doc->xmlRootNode; #ifdef ROOT_HAS_DTD_NODE if(root->next && root->children == NULL) root = root->next; #endif #endif SET_VECTOR_ELT(rdoc, CHILDREN_ELEMENT_NAME, RS_XML(createNodeChildren)(root, SIDEWAYS, parserSettings)); } SET_STRING_ELT(rdoc_el_names, CHILDREN_ELEMENT_NAME, COPY_TO_USER_STRING("children")); SET_NAMES(rdoc, rdoc_el_names); PROTECT(klass = NEW_CHARACTER(1)); SET_STRING_ELT(klass, 0, COPY_TO_USER_STRING("XMLDocumentContent")); SET_CLASS(rdoc, klass); UNPROTECT(3); return(rdoc); } USER_OBJECT_ processNamespaceDefinitions(xmlNs *ns, xmlNodePtr node, R_XMLSettings *parserSettings) { int n = 0; xmlNs *ptr = ns; USER_OBJECT_ ans, tmp, names; DECL_ENCODING_FROM_NODE(node) while(ptr) { ptr = ptr->next; n++; } PROTECT(ans = NEW_LIST(n)); PROTECT(names = NEW_CHARACTER(n)); for(n = 0, ptr = ns; ptr ; n++, ptr = ptr->next) { tmp = RS_XML(createNameSpaceIdentifier)(ptr,node); (void) RS_XML(notifyNamespaceDefinition)(tmp, parserSettings); SET_VECTOR_ELT(ans, n, tmp); if(ptr->prefix) SET_STRING_ELT(names, n, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(ptr->prefix))); } SET_NAMES(ans, names); SET_CLASS(ans, mkString("XMLNamespaceDefinitions")); UNPROTECT(2); return(ans); } /** Creates an R object representing the specified node, and its children if recursive is non-zero. Certain types of nodes have direction controls whether we take the siblings of this node or alternatively its children. parentUserNode the previously created user-leve node for the parent of the target node. */ enum { NODE_NAME, NODE_ATTRIBUTES, NODE_CHILDREN, NODE_NAMESPACE, NODE_NAMESPACE_DEFS, NUM_NODE_ELEMENTS}; USER_OBJECT_ getNamespaceDefs(xmlNodePtr node, int recursive) { USER_OBJECT_ nsDef = NULL_USER_OBJECT; if(node->nsDef || recursive) { int numProtects = 0; xmlNs *ptr = node->nsDef; int n = 0; while(ptr) { n++; ptr = ptr->next; } PROTECT(nsDef = NEW_LIST(n)); numProtects++; ptr = node->nsDef; n = 0; while(ptr) { SET_VECTOR_ELT(nsDef, n, RS_XML(createNameSpaceIdentifier)(ptr, node)); n++; ptr = ptr->next; } if(recursive && node->children) { xmlNodePtr ptr = node->children; USER_OBJECT_ tmp; int i; while(ptr) { tmp = getNamespaceDefs(ptr, 1); /* nsDef = Rf_appendList(nsDef, tmp); */ if(Rf_length(tmp)) { n = Rf_length(nsDef); PROTECT(SET_LENGTH(nsDef, n + Rf_length(tmp))); numProtects++; for(i = 0; i < Rf_length(tmp); i++) SET_VECTOR_ELT(nsDef, n + i, VECTOR_ELT(tmp, i)); } ptr = ptr->next; } } SET_CLASS(nsDef, mkString("NamespaceDefinitionList")); UNPROTECT(numProtects); } return(nsDef); } USER_OBJECT_ RS_XML(internalNodeNamespaceDefinitions)(USER_OBJECT_ r_node, USER_OBJECT_ recursive) { xmlNodePtr node; if(TYPEOF(r_node) != EXTPTRSXP) { PROBLEM "R_internalNodeNamespaceDefinitions expects InternalXMLNode objects" ERROR; } node = (xmlNodePtr) R_ExternalPtrAddr(r_node); return(getNamespaceDefs(node, LOGICAL(recursive)[0])); } static USER_OBJECT_ RS_XML(createXMLNode)(xmlNodePtr node, int recursive, int direction, R_XMLSettings *parserSettings, USER_OBJECT_ parentUserNode) { int n = NUM_NODE_ELEMENTS; USER_OBJECT_ ans; USER_OBJECT_ ans_el_names; USER_OBJECT_ nsDef = NULL_USER_OBJECT; int addValue; DECL_ENCODING_FROM_NODE(node) char *contentValue = XMLCHAR_TO_CHAR(node->content); #ifdef ROOT_HAS_DTD_NODE if(node->type == XML_DTD_NODE) return(NULL); #endif if(parserSettings->trim) { contentValue = trim(XMLCHAR_TO_CHAR(node->content)); } addValue = (contentValue && strlen(contentValue) && isBlank(contentValue) == 0); #ifdef LIBXML2 if(node->type == XML_ENTITY_DECL) return(NULL); #endif /* Drop text nodes that are blank, if that is what the user wanted. */ if(parserSettings->skipBlankLines && addValue == 0 && node->type == XML_TEXT_NODE) return(NULL); if(addValue) n++; /* If we have a */ if(node->type != XML_ELEMENT_DECL) { /* Create the default return value being a list of name, attributes, children and possibly value. */ PROTECT(ans = NEW_LIST(n)); PROTECT(ans_el_names = NEW_CHARACTER(n)); /* If there are namespace definitions within this node, */ if(node->nsDef) { nsDef = processNamespaceDefinitions(node->nsDef, node, parserSettings); SET_VECTOR_ELT(ans, NODE_NAMESPACE_DEFS, nsDef); } SET_VECTOR_ELT(ans, NODE_NAME, NEW_CHARACTER(1)); if(node->name) SET_STRING_ELT(VECTOR_ELT(ans, NODE_NAME), 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(node->name))); SET_VECTOR_ELT(ans, NODE_ATTRIBUTES, RS_XML(AttributeList)(node, parserSettings)); if(recursive) SET_VECTOR_ELT(ans, NODE_CHILDREN, RS_XML(createNodeChildren)(node, direction, parserSettings)); else SET_VECTOR_ELT(ans, NODE_CHILDREN, NULL_USER_OBJECT); SET_STRING_ELT(ans_el_names, NODE_NAME, mkChar("name")); SET_STRING_ELT(ans_el_names, NODE_ATTRIBUTES, mkChar("attributes")); SET_STRING_ELT(ans_el_names, NODE_CHILDREN, mkChar("children")); SET_STRING_ELT(ans_el_names, NODE_NAMESPACE, mkChar("namespace")); SET_STRING_ELT(ans_el_names, NODE_NAMESPACE_DEFS, mkChar("namespaceDefinitions")); if(node->ns) { PROTECT(nsDef = NEW_CHARACTER(1)); if(!parserSettings->fullNamespaceInfo) { if(node->ns->prefix) { SET_STRING_ELT(nsDef, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(node->ns->prefix))); SET_CLASS(nsDef, mkString("XMLNamespacePrefix")); } } else { if(node->ns->href) SET_STRING_ELT(nsDef, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(node->ns->href))); if(node->ns->prefix) SET_NAMES(nsDef, ScalarString(ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(node->ns->prefix)))); /* XXX change! */ SET_CLASS(nsDef, mkString("XMLNamespace")); } SET_VECTOR_ELT(ans, NODE_NAMESPACE, nsDef); UNPROTECT(1); } if(addValue) { SET_STRING_ELT(ans_el_names, NUM_NODE_ELEMENTS, COPY_TO_USER_STRING("value")); SET_VECTOR_ELT(ans, NUM_NODE_ELEMENTS, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, NUM_NODE_ELEMENTS), 0, ENC_COPY_TO_USER_STRING(contentValue)); if(node->type == XML_ENTITY_REF_NODE) SET_NAMES(VECTOR_ELT(ans, NUM_NODE_ELEMENTS), ScalarString(ENC_COPY_TO_USER_STRING(node->name))); } SET_NAMES(ans, ans_el_names); /* Compute the class of this object based on the type in the XML node. */ RS_XML(setNodeClass)(node, ans); } else { /* XML_ELEMENT_DECL */ ans = NULL_USER_OBJECT; PROTECT(ans); PROTECT(ans); } /* Now invoke any user-level converters. */ if(recursive || direction) ans = convertNode(ans, node, parserSettings); UNPROTECT(1); UNPROTECT(1); return(ans); } static USER_OBJECT_ convertNode(USER_OBJECT_ ans, xmlNodePtr node, R_XMLSettings *parserSettings) { USER_OBJECT_ val = ans; if(parserSettings != NULL) { USER_OBJECT_ fun = NULL; const char *funName; if(parserSettings->xinclude && (node->type == XML_XINCLUDE_START || node->type == XML_XINCLUDE_END)) { return(NULL); } if(node->name) { funName = XMLCHAR_TO_CHAR(node->name); fun = RS_XML(findFunction)(funName, parserSettings->converters); } if(fun == NULL) { /* Didn't find the tag-specific function in the handlers. So see if there is one for this type node. */ fun = RS_XML(lookupGenericNodeConverter)(node, ans, parserSettings); } if(fun != NULL) { USER_OBJECT_ opArgs = NEW_LIST(1); PROTECT(opArgs); SET_VECTOR_ELT(opArgs, 0, ans); val = RS_XML(invokeFunction)(fun, opArgs, NULL, NULL); UNPROTECT(1); } } return(val); } const char * const XMLNodeClassHierarchy[] = {"XMLNode", "RXMLAbstractNode", "XMLAbstractNode", "oldClass"}; int RS_XML(setNodeClass)(xmlNodePtr node, USER_OBJECT_ ans) { char *className = NULL; int numEls = 1; int lenHier = sizeof(XMLNodeClassHierarchy)/sizeof(XMLNodeClassHierarchy[0]); numEls = lenHier + 1; switch(node->type) { case XML_ENTITY_REF_NODE: className = "XMLEntityRef"; break; case XML_PI_NODE: className = "XMLProcessingInstruction"; break; case XML_COMMENT_NODE: className = "XMLCommentNode"; break; case XML_TEXT_NODE: className = "XMLTextNode"; break; case XML_CDATA_SECTION_NODE: className = "XMLCDataNode"; break; #ifdef LIBXML2 case XML_ENTITY_DECL: className = "XMLEntityDeclaration"; break; #endif default: numEls--; break; } if(1) { USER_OBJECT_ Class; int ctr = 0, i; PROTECT(Class = NEW_CHARACTER(numEls)); if(className) SET_STRING_ELT(Class, ctr++, mkChar(className)); for(i = 0; i < lenHier; i++) SET_STRING_ELT(Class, ctr++, mkChar(XMLNodeClassHierarchy[i])); SET_CLASS(ans, Class); UNPROTECT(1); } return(node->type); } const char *RS_XML(NameSpaceSlotNames)[] = {"id", "uri", "local"}; enum {NAMESPACE_PREFIX_SLOT, NAMESPACE_URI_SLOT, NAMESPACE_TYPE_SLOT, NAMESPACE_NUM_SLOTS}; /** Create a local object identifying the name space used by a particular node. This is not the name space definition which would have a URL/URI and a type. */ USER_OBJECT_ RS_XML(createNameSpaceIdentifier)(xmlNs *space, xmlNodePtr node) { USER_OBJECT_ ans; DECL_ENCODING_FROM_NODE(node) if(node->nsDef) { PROTECT(ans = NEW_LIST(3)); SET_VECTOR_ELT(ans, NAMESPACE_PREFIX_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, NAMESPACE_PREFIX_SLOT), 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR( (space->prefix ? space->prefix : (xmlChar*)"")))); SET_VECTOR_ELT(ans, NAMESPACE_URI_SLOT, NEW_CHARACTER(1)); SET_STRING_ELT(VECTOR_ELT(ans, NAMESPACE_URI_SLOT), 0, space->href ? ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(space->href)) : NA_STRING); SET_VECTOR_ELT(ans, NAMESPACE_TYPE_SLOT, NEW_LOGICAL(1)); LOGICAL_DATA(VECTOR_ELT(ans, NAMESPACE_TYPE_SLOT))[0] = (space->type == XML_LOCAL_NAMESPACE); RS_XML(SetNames)(NAMESPACE_NUM_SLOTS, RS_XML(NameSpaceSlotNames), ans); { USER_OBJECT_ klass; PROTECT(klass = NEW_CHARACTER(1)); SET_STRING_ELT(klass, 0, COPY_TO_USER_STRING("XMLNamespaceDefinition")); SET_CLASS(ans, klass); UNPROTECT(1); } UNPROTECT(1); } else { PROTECT(ans = NEW_CHARACTER(1)); if(space->prefix) SET_STRING_ELT(ans, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(space->prefix))); UNPROTECT(1); } return(ans); } /** Attempt to find a function in the handler methods corresponding to the type of the node, not its specific tag name. */ USER_OBJECT_ RS_XML(lookupGenericNodeConverter)(xmlNodePtr node, USER_OBJECT_ defaultNodeValue, R_XMLSettings *parserSettings) { #define DOT(x) parserSettings->useDotNames ? "." x : x char *name; USER_OBJECT_ fun = NULL; switch(node->type) { case XML_ENTITY_REF_NODE: name = DOT("entity"); break; case XML_ENTITY_NODE: name = DOT("entity"); break; case XML_ELEMENT_NODE: name = DOT("startElement"); break; case XML_PI_NODE: name = DOT("proccesingInstruction"); break; case XML_COMMENT_NODE: name = DOT("comment"); break; case XML_TEXT_NODE: name = DOT("text"); break; case XML_CDATA_SECTION_NODE: name = DOT("cdata"); break; default: name = NULL; } if(name && name[0]) fun = RS_XML(findFunction)(name, parserSettings->converters); return(fun); } /* XXX Unravel this recursive call into a loop. Starting at the top node, fix the id to be empty. Then add the node and get the ID. Then loop over the children, and the node and call the routine on its children */ /* at a given node, make the node */ void addNodeAndChildrenToTree(xmlNodePtr node, SEXP id, SEXP e, R_XMLSettings *parserSettings, int *ctr) { SEXP tmp; xmlNodePtr n; if(!node) return; /* Create a skeleton node with no children. */ tmp = RS_XML(createXMLNode)(node, 0, 0/* doesn't matter */, parserSettings, R_NilValue);/*XXX*/ if(!tmp) return; SETCAR(CDR(e), tmp); (*ctr)++; id = Rf_eval(e, R_GlobalEnv); PROTECT(id); n = node->children; while(n) { SETCAR(CDR(CDR(e)), id); addNodeAndChildrenToTree(n, id, e, parserSettings, ctr); (*ctr)++; n = n->next; } UNPROTECT(1); } SEXP addNodesToTree(xmlNodePtr node, R_XMLSettings *parserSettings) { xmlNodePtr ptr = node; SEXP e, id; int ctr = 0; PROTECT(e = allocVector(LANGSXP, 3)); SETCAR(e, parserSettings->converters); id = NEW_CHARACTER(0); ptr = node; /* loop over the sibling nodes here in case we have multiple roots, e.g. a comment, PI and a real node. See xysize.svg */ while(ptr) { SETCAR(CDR(CDR(e)), id); addNodeAndChildrenToTree(ptr, id, e, parserSettings, &ctr); ptr = ptr->next; } UNPROTECT(1); return(ScalarInteger(ctr)); } /** Creates the R objects representing the children or siblings of the specified node, handling simple text cases with no children, as well as recursively processing the children. node the node whose children or siblings should be converted. direction DOWN or SIDEWAYS indicating the children or siblings should be processed, respectively. If SIDEWAYS is specified, the node itself is included in the result. parserSettings "global" information about the parsing conversion for the duration of the parser. Return list of XMLNode objects. */ USER_OBJECT_ RS_XML(createNodeChildren)(xmlNodePtr node, int direction, R_XMLSettings *parserSettings) { int n = 0, i; USER_OBJECT_ ans = NULL_USER_OBJECT; USER_OBJECT_ elNames = NULL; int unProtect = 0; xmlNodePtr base, c = (direction == SIDEWAYS) ? node : #ifndef USE_OLD_ROOT_CHILD_NAMES node->xmlChildrenNode; #else node->childs; #endif DECL_ENCODING_FROM_NODE(node) base = c; if(IS_FUNCTION(parserSettings->converters)) { return(addNodesToTree(node, parserSettings)); } /* Count the number of elements being converted. */ while(c) { c = c->next; n++; } if(n > 0) { USER_OBJECT_ tmp; USER_OBJECT_ tmpNames; int count = 0; c = base; PROTECT(ans = NEW_LIST(n)); PROTECT(elNames = NEW_CHARACTER(n)); unProtect = 2; for(i = 0; i < n; i++, c = c->next) { tmp = RS_XML(createXMLNode)(c, 1, DOWN, parserSettings, ans); if(tmp && tmp != NULL_USER_OBJECT) { SET_VECTOR_ELT(ans, count, tmp); if(c->name) SET_STRING_ELT(elNames, count, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(c->name))); count++; } } if(count < n) { /* Reset the length! */ #ifdef USE_S #else PROTECT(tmp = NEW_LIST(count)); PROTECT(tmpNames = NEW_CHARACTER(count)); for(i = 0 ; i < count ; i++) { SET_VECTOR_ELT(tmp, i, VECTOR_ELT(ans, i)); SET_STRING_ELT(tmpNames, i, STRING_ELT(elNames, i)); } ans = tmp; SET_NAMES(ans, tmpNames); UNPROTECT(4); PROTECT(ans); unProtect = 1; #endif } else { SET_NAMES(ans, elNames); } if(unProtect > 0) UNPROTECT(unProtect); } return(ans); } USER_OBJECT_ RS_XML(notifyNamespaceDefinition)(USER_OBJECT_ arg, R_XMLSettings *parserSettings) { USER_OBJECT_ fun, ans = NULL_USER_OBJECT; fun = RS_XML(findFunction)("namespace", parserSettings->converters); if(fun != NULL) { USER_OBJECT_ opArgs = NEW_LIST(1); USER_OBJECT_ tmp; PROTECT(opArgs); SET_VECTOR_ELT(opArgs, 0, arg); tmp = RS_XML(invokeFunction)(fun, opArgs, NULL, NULL); ans = tmp; UNPROTECT(1); } return(ans); } #ifdef USE_XML_VERSION_H #ifndef LIBXML_TEST_VERSION #include #endif #endif USER_OBJECT_ RS_XML(libxmlVersion)() { USER_OBJECT_ ans; unsigned int val; #ifdef LIBXML_VERSION_NUMBER val = LIBXML_VERSION_NUMBER; #else #ifdef LIBXML_VERSION val = LIBXML_VERSION; #else val = 0; #endif #endif ans = NEW_NUMERIC(1); NUMERIC_DATA(ans)[0] = val; return(ans); } static void notifyError(const char *msg, va_list ap, Rboolean isError) { #if 0 if(isError) { PROBLEM "error in validating XML document" ERROR; } else { PROBLEM "warning when validating XML document" ERROR; } #else #define BUFSIZE 2048 char buf[BUFSIZE]; memset(buf, '\0', BUFSIZE); vsnprintf(buf, BUFSIZE, msg, ap); Rf_warning(buf); #if 0 PROBLEM buf WARN; #endif #endif } void RS_XML(ValidationError)(void *ctx, const char *format, ...) { char *msg = "Message unavailable"; va_list(ap); va_start(ap, format); if(strcmp(format, "%s") == 0) msg = va_arg(ap, char *); va_end(ap); notifyError(msg, ap, TRUE); } void RS_XML(ValidationWarning)(void *ctx, const char *format, ...) { char *msg = "Message unavailable"; va_list(ap); va_start(ap, format); if(strcmp(format, "%s") == 0) msg = va_arg(ap, char *); va_end(ap); notifyError(msg, ap, FALSE); } USER_OBJECT_ R_createXMLNode(USER_OBJECT_ snode, USER_OBJECT_ handlers, USER_OBJECT_ r_trim, USER_OBJECT_ r_skipBlankLines) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); R_XMLSettings parserSettings; parserSettings.converters = handlers; parserSettings.trim = LOGICAL(r_trim)[0]; parserSettings.skipBlankLines = LOGICAL(r_skipBlankLines)[0]; return(RS_XML(createNodeChildren)(node, SIDEWAYS, &parserSettings)); } USER_OBJECT_ RS_XML_xmlNodeName(USER_OBJECT_ snode) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); USER_OBJECT_ ans; DECL_ENCODING_FROM_NODE(node) PROTECT(ans = NEW_CHARACTER(1)); SET_STRING_ELT(ans, 0, node->name ? ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(node->name)) : R_NaString); UNPROTECT(1); return(ans); } USER_OBJECT_ RS_XML_xmlNodeNamespace(USER_OBJECT_ snode) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); USER_OBJECT_ ans; xmlNs *ns; DECL_ENCODING_FROM_NODE(node) ns = node->ns; if(!ns) return(NEW_CHARACTER(0)); PROTECT(ans = NEW_CHARACTER(1)); if(ns->href) SET_STRING_ELT(ans, 0, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(ns->href))); if(ns->prefix) SET_NAMES(ans, ScalarString(ENC_COPY_TO_USER_STRING(ns->prefix))); SET_CLASS(ans, mkString("XMLNamespace")); UNPROTECT(1); return(ans); } enum { R_XML_NS_ADD_PREFIX = 1, R_XML_NS_ADD_URL_DEFS = 2 }; USER_OBJECT_ RS_XML_xmlNodeAttributes(USER_OBJECT_ snode, USER_OBJECT_ addNamespaces, USER_OBJECT_ addNamespaceURLs) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); R_XMLSettings parserSettings; parserSettings.addAttributeNamespaces = 0; if(LOGICAL_DATA(addNamespaces)[0]) parserSettings.addAttributeNamespaces |= R_XML_NS_ADD_PREFIX; if(LOGICAL_DATA(addNamespaceURLs)[0]) parserSettings.addAttributeNamespaces |= R_XML_NS_ADD_URL_DEFS; return(RS_XML(AttributeList)(node, &parserSettings)); } USER_OBJECT_ RS_XML_xmlNodeParent(USER_OBJECT_ snode, USER_OBJECT_ manageMemory) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); if(node->parent && (node->parent->type == XML_DOCUMENT_NODE || node->parent->type == XML_HTML_DOCUMENT_NODE)) return(NULL_USER_OBJECT); return(R_createXMLNodeRef(node->parent, manageMemory)); } USER_OBJECT_ RS_XML_xmlNodeNumChildren(USER_OBJECT_ snode) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); int count = 0; xmlNodePtr ptr = node->children; while(ptr) { count++; ptr = ptr->next; } return(ScalarInteger(count)); } USER_OBJECT_ RS_XML_xmlNodeChildrenReferences(USER_OBJECT_ snode, USER_OBJECT_ r_addNames, USER_OBJECT_ manageMemory) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); USER_OBJECT_ ans, names = R_NilValue; int count = 0, i; xmlNodePtr ptr = node->children; int addNames = LOGICAL(r_addNames)[0]; DECL_ENCODING_FROM_NODE(node) while(ptr) { count++; ptr = ptr->next; } ptr = node->children; PROTECT(ans = NEW_LIST(count)); if(addNames) PROTECT(names = NEW_CHARACTER(count)); for(i = 0; i < count ; i++, ptr = ptr->next) { SET_VECTOR_ELT(ans, i, R_createXMLNodeRef(ptr, manageMemory)); if(addNames) SET_STRING_ELT(names, i, ENC_COPY_TO_USER_STRING(ptr->name ? XMLCHAR_TO_CHAR(ptr->name) : "")); } if(addNames) SET_NAMES(ans, names); UNPROTECT(1 + addNames); return(ans); } USER_OBJECT_ R_getNodeChildByIndex(USER_OBJECT_ snode, USER_OBJECT_ r_index, USER_OBJECT_ manageMemory) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(snode); int count = 0, num; xmlNodePtr ptr = node->children; num = INTEGER(r_index)[0] - 1; if(num < 0) { PROBLEM "cannot index an internal node with a negative number %d", num ERROR; } while(ptr && count < num) { count++; ptr = ptr->next; } return(ptr ? R_createXMLNodeRef(ptr, manageMemory) : NULL_USER_OBJECT); } static USER_OBJECT_ makeSchemaReference(xmlSchemaPtr schema) { return(R_makeRefObject(schema, "xmlSchemaRef")); /* USER_OBJECT_ ans; PROTECT(ans = R_MakeExternalPtr(schema, Rf_install("XMLSchema"), R_NilValue)); SET_CLASS(ans, mkString("XMLSchema")); UNPROTECT(1); return(ans); */ } #ifndef NO_XML_MEMORY_SHOW_ROUTINE void RS_XML_MemoryShow() { xmlMemDisplay(stderr); } #endif USER_OBJECT_ RS_XML_setDocumentName(USER_OBJECT_ sdoc, USER_OBJECT_ sname) { /* if doc is NULL in C , return NULL in R If doc->name is NULL in C, return NA Otherwise, return the string. */ xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); if(!doc) { PROBLEM "NULL pointer supplied for internal document" WARN; return(R_NilValue); } doc->URL = xmlStrdup(CHAR_TO_XMLCHAR(CHAR_DEREF(STRING_ELT(sname, 0)))); return(sdoc); } USER_OBJECT_ RS_XML_getDocumentName(USER_OBJECT_ sdoc) { /* if doc is NULL in C , return NULL in R If doc->name is NULL in C, return NA Otherwise, return the string. */ xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(sdoc); USER_OBJECT_ ans; const xmlChar *encoding; if(!doc) { PROBLEM "NULL pointer supplied for internal document" WARN; return(R_NilValue); } encoding = doc->encoding; PROTECT(ans = NEW_CHARACTER(1)); SET_STRING_ELT(ans, 0, doc->URL ? ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(doc->URL)) : R_NaString); UNPROTECT(1); return(ans); } USER_OBJECT_ RS_XML_setKeepBlanksDefault(USER_OBJECT_ val) { int prev; prev = xmlKeepBlanksDefault(INTEGER(val)[0]); return(ScalarInteger(prev)); } USER_OBJECT_ RS_XML_xmlXIncludeProcessFlags(USER_OBJECT_ r_doc, USER_OBJECT_ r_flags) { xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); int ans; ans = xmlXIncludeProcessFlags(doc, INTEGER(r_flags)[0]); return(ScalarInteger(ans)); } USER_OBJECT_ RS_XML_xmlXIncludeProcessTreeFlags(USER_OBJECT_ r_node, USER_OBJECT_ r_flags) { xmlNodePtr node; int flags = INTEGER(r_flags)[0]; int n; xmlNodePtr prev, parent; SEXP ans = R_NilValue; node = (xmlNodePtr) R_ExternalPtrAddr(r_node); prev = node->prev; parent = node->parent; n = xmlXIncludeProcessTreeFlags(node, flags); if(n == 0) return(R_NilValue); else if(n == -1) { PROBLEM "failed in XInclude" ERROR; } #if 0 if(!prev) { fprintf(stderr, "Adding to children of %s\n", prev->name); prev = parent->children; } else { fprintf(stderr, "Adding after %s\n", prev->name); prev = prev->next; } prev = node->next; PROTECT(ans = NEW_LIST(n)); for(i = 0; i < n; i++) { SET_VECTOR_ELT(ans, i, prev ? R_createXMLNodeRef(prev) : R_NilValue); prev = prev->next; } UNPROTECT(1); #endif return(ans); } /** Create an R named list containing the attributes of the specified node. */ /* We could use the CONS mechanism rather than doing a double pass. Not certain what is quicker in this situation. Also, doesn't work that way in S4, so keep it this way. */ USER_OBJECT_ RS_XML(AttributeList)(xmlNodePtr node, R_XMLSettings *parserSettings) { USER_OBJECT_ ans = NULL_USER_OBJECT; USER_OBJECT_ ans_names; xmlAttr * atts; const xmlChar *encoding = node->doc ? node->doc->encoding : NULL; int n = 0, i; /* Count the number of attributes*/ atts = node->properties; while(atts) { n++; atts = atts->next; } if(n > 0) { SEXP ans_namespaces, ans_namespaceDefs; int nonTrivialAttrNamespaces = 0; int addNSPrefix = parserSettings->addAttributeNamespaces & R_XML_NS_ADD_PREFIX; int retNSDefs = parserSettings->addAttributeNamespaces & R_XML_NS_ADD_URL_DEFS; PROTECT(ans = NEW_CHARACTER(n)); PROTECT(ans_names = NEW_CHARACTER(n)); PROTECT(ans_namespaces = NEW_CHARACTER(n)); PROTECT(ans_namespaceDefs = NEW_CHARACTER(retNSDefs ? n : 0)); /* Loop over the attributes and create the string elements and the elements of the name vector. */ atts = node->properties; for(i=0; i < n ; i++) { /* Have to be careful that atts->val and atts->val->context are non-null. Something like kills it otherwise. */ #ifdef LIBXML2 SET_STRING_ELT(ans, i, ENC_COPY_TO_USER_STRING( XMLCHAR_TO_CHAR( ((atts->xmlChildrenNode != (xmlNode*)NULL && atts->xmlChildrenNode->content != (xmlChar*)NULL ) ? atts->xmlChildrenNode->content : (xmlChar*)"")))); #else SET_STRING_ELT(ans, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(((atts->val != (xmlNode*)NULL && atts->val->content != (xmlChar*)NULL ) ? atts->val->content : (xmlChar*)"")))); #endif if(atts->name) { if(addNSPrefix && atts->ns && atts->ns->prefix) { char buf[400]; sprintf(buf, "%s:%s", atts->ns->prefix, atts->name); SET_STRING_ELT(ans_names, i, ENC_COPY_TO_USER_STRING(buf)); } else SET_STRING_ELT(ans_names, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(atts->name))); if((addNSPrefix | retNSDefs) && atts->ns && atts->ns->prefix) { SET_STRING_ELT(ans_namespaces, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(atts->ns->prefix))); if(retNSDefs) SET_STRING_ELT(ans_namespaceDefs, i, ENC_COPY_TO_USER_STRING(XMLCHAR_TO_CHAR(atts->ns->href))); nonTrivialAttrNamespaces++; } } atts = atts->next; } if(nonTrivialAttrNamespaces) { if(retNSDefs) Rf_setAttrib(ans_namespaces, Rf_install("names"), ans_namespaceDefs); Rf_setAttrib(ans, Rf_install("namespaces"), ans_namespaces); } SET_NAMES(ans, ans_names); UNPROTECT(nonTrivialAttrNamespaces ? 4 : 4); } #if 0 else ans = NEW_CHARACTER(0); #endif return(ans); } SEXP R_getDocEncoding(SEXP r_doc) { xmlDocPtr doc = (xmlDocPtr) R_ExternalPtrAddr(r_doc); const xmlChar *encoding; SEXP ans; if(doc->type != XML_DOCUMENT_NODE && doc->type != XML_HTML_DOCUMENT_NODE) doc = ((xmlNodePtr) doc)->doc; if(!doc) return(NEW_CHARACTER(0)); encoding = doc->encoding; PROTECT(ans = NEW_CHARACTER(1)); SET_STRING_ELT(ans, 0, encoding ? CreateCharSexpWithEncoding(doc->encoding, doc->encoding) : R_NaString); UNPROTECT(1); return(ans); } int getTextElementLineNumber(xmlNodePtr node) { int val = -1; if(node->parent) val = node->parent->line; xmlNodePtr prev = node->prev; while(prev) { if(prev->line > 0) { val = prev->line; break; } prev = prev->prev; } return(val); } SEXP R_getLineNumber(SEXP r_node) { xmlNodePtr node = (xmlNodePtr) R_ExternalPtrAddr(r_node); if(!node) { return(NEW_INTEGER(0)); } // XML_GET_LINE(node) return(ScalarInteger(node->line == 0 ? getTextElementLineNumber(node) : node->line)); } SEXP R_xmlReadFile(SEXP r_filename, SEXP r_encoding, SEXP r_options) //, SEXP manageMemory) { const char *filename; const char *encoding = NULL; int options; xmlDocPtr doc; filename = CHAR_DEREF(STRING_ELT(r_filename, 0)); if(Rf_length(r_encoding)) encoding = CHAR_DEREF(STRING_ELT(r_encoding, 0)); options = INTEGER(r_options)[0]; doc = xmlReadFile(filename, encoding, options); return(R_createXMLDocRef(doc)); } SEXP R_xmlReadMemory(SEXP r_txt, SEXP len, SEXP r_encoding, SEXP r_options, SEXP r_base) //, SEXP manageMemory) { const char *txt; const char *encoding = NULL; const char *baseURL = NULL; int options; xmlDocPtr doc; txt = CHAR_DEREF(STRING_ELT(r_txt, 0)); if(Rf_length(r_encoding)) encoding = CHAR_DEREF(STRING_ELT(r_encoding, 0)); options = INTEGER(r_options)[0]; if(Rf_length(r_base)) baseURL = CHAR_DEREF(STRING_ELT(r_base, 0)); doc = xmlReadMemory(txt, INTEGER(len)[0], baseURL, encoding, options); return(R_createXMLDocRef(doc)); } #if 1 int addXInclude(xmlNodePtr ptr, SEXP *ans, int level, SEXP manageMemory) { if(ptr->type == XML_XINCLUDE_START) { int len = Rf_length(*ans) + 1; PROTECT(*ans = SET_LENGTH(*ans, len)); SET_VECTOR_ELT(*ans, len - 1, R_createXMLNodeRef(ptr, manageMemory)); return(1); } else return(0); } int processKids(xmlNodePtr ptr, SEXP *ans, int level, SEXP manageMemory) { xmlNodePtr kids; int count = 0; kids = ptr->children; while(kids) { count += addXInclude(kids, ans, level, manageMemory); count += processKids(kids, ans, level + 1, manageMemory); kids = kids->next; } return(count); } #if 0 int findXIncludeStartNodes(xmlNodePtr node, SEXP *ans, int level) { const char * prefix[] = {"", " ", " ", " " }; xmlNodePtr ptr = node; int count = 0; addXInclude(node, ans, level); ptr = node; while(ptr) { count += addXInclude(ptr, ans, level); count += processKids(ptr, ans, level); ptr = ptr->next; } //fprintf(stderr, "%s level = %d, %s: %p, type = %d\n", prefix[level], level, ptr->name, node, ptr->type); //fprintf(stderr, "%p, %s, level = %d, type = %d\n", ptr, ptr->name, level, ptr->type); return(count); } #endif /* This is a recursive version. We want an iterative version. */ SEXP R_findXIncludeStartNodes(SEXP r_root, SEXP manageMemory) { xmlNodePtr root; SEXP ans; int count; root = (xmlNodePtr) R_ExternalPtrAddr(r_root); if(!root) return(R_NilValue); PROTECT(ans = allocVector(VECSXP, 0)); // count = findXIncludeStartNodes(root, &ans, 0); count = addXInclude(root, &ans, 0, manageMemory) + processKids(root, &ans, 0, manageMemory); UNPROTECT(count + 1); return(ans); } #endif XML/scrapingData.xml0000644000176000001440000000377411741563530014104 0ustar ripleyusers
Scraping Data from the Web with R
Scraping Data from the Web with R It is becoming more common to need/want to access data from Web sites and this activity is likely to increase as services and data become more Web-based. We have anticipated this for almost a decade and have developed the XML package (initial release in 2000) and the RCurl package (initial release in 2004). On top of these, we have the SSOAP, XMLRPC and RHTMLForms packages. R provides some facilities for accessing data over the web, specifically making HTTP or FTP requests. In many cases, these are sufficient. One can use download.file to make an HTTP/FTP request and save the result to a file on disk. Then one can read the contents locally. url is a more low-level, flexible mechanism that allows one to make an HTTP request and read the result as if it were a local connection. While these two built-in facilities will suffice for many, many situations (the majority at present), they will not work when
  • you need to use HTTPS, a secure HTTP request using SSL,
  • you need to POST a form request rather than using a simple GET operation in HTTP
  • you need to customize the request, e.g. to provide an authentication token
If you are dealing with a simple situation
Software
  • XML package
  • RCurl package
  • SSOAP package
  • SSOAP package
  • SSOAP package
  • Rcompression package
  • XML/man/0000755000176000001440000000000012160603560011514 5ustar ripleyusersXML/man/xmlValue.Rd0000644000176000001440000000444512121734721013610 0ustar ripleyusers\name{xmlValue} \alias{xmlValue} \alias{xmlValue.XMLCDataNode} \alias{xmlValue.XMLNode} \alias{xmlValue.XMLProcessingInstruction} \alias{xmlValue.XMLTextNode} \alias{xmlValue.XMLComment} \alias{xmlValue<-} \alias{xmlValue<-,XMLAbstractNode-method} \alias{xmlValue<-,XMLInternalTextNode-method} \alias{xmlValue<-,XMLTextNode-method} \alias{coerce,XMLInternalTextNode,character-method} \title{Extract or set the contents of a leaf XML node} \description{ Some types of XML nodes have no children nodes, but are leaf nodes and simply contain text. Examples are \code{XMLTextMode}, \code{XMLProcessingInstruction}. This function provides access to their raw contents. This has been extended to operate recursivel on arbitrary XML nodes that contain a single text node. } \usage{ xmlValue(x, ignoreComments = FALSE, recursive = TRUE, encoding = getEncoding(x), trim = FALSE) } \arguments{ \item{x}{the \code{XMLNode} object whose contents are to be returned.} \item{ignoreComments}{a logical value which, if \code{TRUE} does not include the text in XML comment nodes. If this is \code{FALSE}, the text in the comments is part of the return value. } \item{recursive}{a logical value indicating whether to process all sub-nodes (\code{TRUE}) or only the text nodes within the node \code{x}. } %XXX \item{encoding}{experimental functionality and parameter related to encoding.} \item{trim}{a logical value controlling whether we remove leading or trailing white space when returning the string value} } \value{ The object stored in the \code{value} slot of the \code{XMLNode} object. This is typically a string. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlChildren}} \code{\link{xmlName}} \code{\link{xmlAttrs}} \code{\link{xmlNamespace}} } \examples{ node <- xmlNode("foo", "Some text") xmlValue(node) xmlValue(xmlTextNode("some more raw text")) # Setting the xmlValue(). a = newXMLNode("a") xmlValue(a) = "the text" xmlValue(a) = "different text" a = newXMLNode("x", "bob") xmlValue(a) = "joe" b = xmlNode("bob") xmlValue(b) = "Foo" xmlValue(b) = "again" b = newXMLNode("bob", "some text") xmlValue(b[[1]]) = "change" b } \keyword{file} XML/man/xmlTreeParse.Rd0000644000176000001440000006430312160565375014437 0ustar ripleyusers\name{xmlTreeParse} \alias{xmlTreeParse} \alias{htmlTreeParse} \alias{htmlParse} \alias{xmlInternalTreeParse} \alias{xmlNativeTreeParse} \alias{xmlParse} \alias{xmlSchemaParse} \title{XML Parser} \description{ Parses an XML or HTML file or string containing XML/HTML content, and generates an R structure representing the XML/HTML tree. Use \code{htmlTreeParse} when the content is known to be (potentially malformed) HTML. This function has numerous parameters/options and operates quite differently based on their values. It can create trees in R or using internal C-level nodes, both of which are useful in different contexts. It can perform conversion of the nodes into R objects using caller-specified handler functions and this can be used to map the XML document directly into R data structures, by-passing the conversion to an R-level tree which would then be processed recursively or with multiple descents to extract the information of interest. \code{xmlParse} and \code{htmlParse} are equivalent to the \code{xmlTreeParse} and \code{htmlTreeParse} respectively, except they both use a default value for the \code{useInternalNodes} parameter of \code{TRUE}, i.e. they working with and return internal nodes/C-level nodes. These can then be searched using XPath expressions via \code{\link{xpathApply}} and \code{\link{getNodeSet}}. \code{xmlSchemaParse} is a convenience function for parsing an XML schema. } \usage{ xmlTreeParse(file, ignoreBlanks=TRUE, handlers=NULL, replaceEntities=FALSE, asText=FALSE, trim=TRUE, validate=FALSE, getDTD=TRUE, isURL=FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, useInternalNodes = FALSE, isSchema = FALSE, fullNamespaceInfo = FALSE, encoding = character(), useDotNames = length(grep("^\\\\.", names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, error = xmlErrorCumulator(), isHTML = FALSE, options = integer(), parentFirst = FALSE) xmlInternalTreeParse(file, ignoreBlanks=TRUE, handlers=NULL, replaceEntities=FALSE, asText=FALSE, trim=TRUE, validate=FALSE, getDTD=TRUE, isURL=FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, useInternalNodes = TRUE, isSchema = FALSE, fullNamespaceInfo = FALSE, encoding = character(), useDotNames = length(grep("^\\\\.", names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, error = xmlErrorCumulator(), isHTML = FALSE, options = integer(), parentFirst = FALSE) xmlNativeTreeParse(file, ignoreBlanks=TRUE, handlers=NULL, replaceEntities=FALSE, asText=FALSE, trim=TRUE, validate=FALSE, getDTD=TRUE, isURL=FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, useInternalNodes = TRUE, isSchema = FALSE, fullNamespaceInfo = FALSE, encoding = character(), useDotNames = length(grep("^\\\\.", names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, error = xmlErrorCumulator(), isHTML = FALSE, options = integer(), parentFirst = FALSE) htmlTreeParse(file, ignoreBlanks=TRUE, handlers=NULL, replaceEntities=FALSE, asText=FALSE, trim=TRUE, validate=FALSE, getDTD=TRUE, isURL=FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, useInternalNodes = FALSE, isSchema = FALSE, fullNamespaceInfo = FALSE, encoding = character(), useDotNames = length(grep("^\\\\.", names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, error = htmlErrorHandler, isHTML = TRUE, options = integer(), parentFirst = FALSE) htmlParse(file, ignoreBlanks = TRUE, handlers = NULL, replaceEntities = FALSE, asText = FALSE, trim = TRUE, validate = FALSE, getDTD = TRUE, isURL = FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, useInternalNodes = TRUE, isSchema = FALSE, fullNamespaceInfo = FALSE, encoding = character(), useDotNames = length(grep("^\\\\.", names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, error = htmlErrorHandler, isHTML = TRUE, options = integer(), parentFirst = FALSE) xmlSchemaParse(file, asText = FALSE, xinclude = TRUE, error = xmlErrorCumulator()) } \arguments{ \item{file}{ The name of the file containing the XML contents. This can contain \~ which is expanded to the user's home directory. It can also be a URL. See \code{isURL}. Additionally, the file can be compressed (gzip) and is read directly without the user having to de-compress (gunzip) it.} \item{ignoreBlanks}{ logical value indicating whether text elements made up entirely of white space should be included in the resulting `tree'. } \item{handlers}{Optional collection of functions used to map the different XML nodes to R objects. Typically, this is a named list of functions, and a closure can be used to provide local data. This provides a way of filtering the tree as it is being created in R, adding or removing nodes, and generally processing them as they are constructed in the C code. In a recent addition to the package (version 0.99-8), if this is specified as a single function object, we call that function for each node (of any type) in the underlying DOM tree. It is invoked with the new node and its parent node. This applies to regular nodes and also comments, processing instructions, CDATA nodes, etc. So this function must be sufficiently general to handle them all. } \item{replaceEntities}{ logical value indicating whether to substitute entity references with their text directly. This should be left as False. The text still appears as the value of the node, but there is more information about its source, allowing the parse to be reversed with full reference information. } \item{asText}{logical value indicating that the first argument, `file', should be treated as the XML text to parse, not the name of a file. This allows the contents of documents to be retrieved from different sources (e.g. HTTP servers, XML-RPC, etc.) and still use this parser.} \item{trim}{ whether to strip white space from the beginning and end of text strings. } \item{validate}{ logical indicating whether to use a validating parser or not, or in other words check the contents against the DTD specification. If this is true, warning messages will be displayed about errors in the DTD and/or document, but the parsing will proceed except for the presence of terminal errors. This is ignored when parsing an HTML document. } \item{getDTD}{ logical flag indicating whether the DTD (both internal and external) should be returned along with the document nodes. This changes the return type. This is ignored when parsing an HTML document. } \item{isURL}{ indicates whether the \code{file} argument refers to a URL (accessible via ftp or http) or a regular file on the system. If \code{asText} is TRUE, this should not be specified. The function attempts to determine whether the data source is a URL by using \code{\link{grep}} to look for http or ftp at the start of the string. The libxml parser handles the connection to servers, not the R facilities (e.g. \code{\link{scan}}). } \item{asTree}{this only applies when on passes a value for the \code{handlers} argument and is used then to determine whether the DOM tree should be returned or the \code{handlers} object. } \item{addAttributeNamespaces}{a logical value indicating whether to return the namespace in the names of the attributes within a node or to omit them. If this is \code{TRUE}, an attribute such as \code{xsi:type="xsd:string"} is reported with the name \code{xsi:type}. If it is \code{FALSE}, the name of the attribute is \code{type}.} \item{useInternalNodes}{a logical value indicating whether to call the converter functions with objects of class \code{XMLInternalNode} rather than \code{XMLNode}. This should make things faster as we do not convert the contents of the internal nodes to R explicit objects. Also, it allows one to access the parent and ancestor nodes. However, since the objects refer to volatile C-level objects, one cannot store these nodes for use in further computations within R. They \dQuote{disappear} after the processing the XML document is completed. If this argument is \code{TRUE} and no handlers are provided, the return value is a reference to the internal C-level document pointer. This can be used to do post-processing via XPath expressions using \code{\link{getNodeSet}}. This is ignored when parsing an HTML document. } \item{isSchema}{a logical value indicating whether the document is an XML schema (\code{TRUE}) and should be parsed as such using the built-in schema parser in libxml.} \item{fullNamespaceInfo}{a logical value indicating whether to provide the namespace URI and prefix on each node or just the prefix. The latter (\code{FALSE}) is currently the default as that was the original way the package behaved. However, using \code{TRUE} is more informative and we will make this the default in the future. This is ignored when parsing an HTML document. } \item{encoding}{ a character string (scalar) giving the encoding for the document. This is optional as the document should contain its own encoding information. However, if it doesn't, the caller can specify this for the parser. If the XML/HTML document does specify its own encoding that value is used regardless of any value specified by the caller. (That's just the way it goes!) So this is to be used as a safety net in case the document does not have an encoding and the caller happens to know theactual encoding. } \item{useDotNames}{a logical value indicating whether to use the newer format for identifying general element function handlers with the '.' prefix, e.g. .text, .comment, .startElement. If this is \code{FALSE}, then the older format text, comment, startElement, ... are used. This causes problems when there are indeed nodes named text or comment or startElement as a node-specific handler are confused with the corresponding general handler of the same name. Using \code{TRUE} means that your list of handlers should have names that use the '.' prefix for these general element handlers. This is the preferred way to write new code. } \item{xinclude}{a logical value indicating whether to process nodes of the form \code{} to insert content from other parts of (potentially different) documents. \code{TRUE} means resolve the external references; \code{FALSE} means leave the node as is. Of course, one can process these nodes oneself after document has been parse using handler functions or working on the DOM. Please note that the syntax for inclusion using XPointer is not the same as XPath and the results can be a little unexpected and confusing. See the libxml2 documentation for more details. } \item{addFinalizer}{a logical value indicating whether the default finalizer routine should be registered to free the internal xmlDoc when R no longer has a reference to this external pointer object. This is only relevant when \code{useInternalNodes} is \code{TRUE}. } \item{error}{a function that is invoked when the XML parser reports an error. When an error is encountered, this is called with 7 arguments. See \code{\link{xmlStructuredStop}} for information about these If parsing completes and no document is generated, this function is called again with only argument which is a character vector of length 0. This gives the function an opportunity to report all the errors and raise an exception rather than doing this when it sees th first one. This function can do what it likes with the information. It can raise an R error or let parser continue and potentially find further errors. The default value of this argument supplies a function that cumulates the errors If this is \code{NULL}, the default error handler function in the package \code{\link{xmlStructuredStop}} is invoked and this will raise an error in R at that time in R. } \item{isHTML}{a logical value that allows this function to be used for parsing HTML documents. This causes validation and processing of a DTD to be turned off. This is currently experimental so that we can implement \code{htmlParse} with this same function.} \item{options}{an integer value or vector of values that are combined (OR'ed) together to specify options for the XML parser. This is the same as the \code{options} parameter for \code{\link{xmlParseDoc}}. } \item{parentFirst}{a logical value for use when we have handler functions and are traversing the tree. This controls whether we process the node before processing its children, or process the children before their parent node.} } \details{ The \code{handlers} argument is used similarly to those specified in \link{xmlEventParse}. When an XML tag (element) is processed, we look for a function in this collection with the same name as the tag's name. If this is not found, we look for one named \code{startElement}. If this is not found, we use the default built in converter. The same works for comments, entity references, cdata, processing instructions, etc. The default entries should be named \code{comment}, \code{startElement}, \code{externalEntity}, \code{processingInstruction}, \code{text}, \code{cdata} and \code{namespace}. All but the last should take the XMLnode as their first argument. In the future, other information may be passed via \dots, for example, the depth in the tree, etc. Specifically, the second argument will be the parent node into which they are being added, but this is not currently implemented, so should have a default value (\code{NULL}). The \code{namespace} function is called with a single argument which is an object of class \code{XMLNameSpace}. This contains \describe{ \item{id}{the namespace identifier as used to qualify tag names;} \item{uri}{the value of the namespace identifier, i.e. the URI identifying the namespace.} \item{local}{a logical value indicating whether the definition is local to the document being parsed.} } One should note that the \code{namespace} handler is called before the node in which the namespace definition occurs and its children are processed. This is different than the other handlers which are called after the child nodes have been processed. Each of these functions can return arbitrary values that are then entered into the tree in place of the default node passed to the function as the first argument. This allows the caller to generate the nodes of the resulting document tree exactly as they wish. If the function returns \code{NULL}, the node is dropped from the resulting tree. This is a convenient way to discard nodes having processed their contents. } \value{ By default ( when \code{useInternalNodes} is \code{FALSE}, \code{getDTD} is \code{TRUE}, and no handler functions are provided), the return value is, an object of (S3) class \code{XMLDocument}. This has two fields named \code{doc} and \code{dtd} and are of class \code{DTDList} and \code{XMLDocumentContent} respectively. If \code{getDTD} is \code{FALSE}, only the \code{doc} object is returned. The \code{doc} object has three fields of its own: \code{file}, \code{version} and \code{children}. \item{\code{file}}{The (expanded) name of the file containing the XML.} \item{\code{version}}{A string identifying the version of XML used by the document.} \item{\code{children}}{ A list of the XML nodes at the top of the document. Each of these is of class \code{XMLNode}. These are made up of 4 fields. \itemize{ \item{\code{name}}{The name of the element.} \item{\code{attributes}}{For regular elements, a named list of XML attributes converted from the } \item{\code{children}}{List of sub-nodes.} \item{\code{value}}{Used only for text entries.} } Some nodes specializations of \code{XMLNode}, such as \code{XMLComment}, \code{XMLProcessingInstruction}, \code{XMLEntityRef} are used. If the value of the argument getDTD is TRUE and the document refers to a DTD via a top-level DOCTYPE element, the DTD and its information will be available in the \code{dtd} field. The second element is a list containing the external and internal DTDs. Each of these contains 2 lists - one for element definitions and another for entities. See \code{\link{parseDTD}}. If a list of functions is given via \code{handlers}, this list is returned. Typically, these handler functions share state via a closure and the resulting updated data structures which contain the extracted and processed values from the XML document can be retrieved via a function in this handler list. If \code{asTree} is \code{TRUE}, then the converted tree is returned. What form this takes depends on what the handler functions have done to process the XML tree. If \code{useInternalNodes} is \code{TRUE} and no handlers are specified, an object of S3 class \code{XMLInternalDocument} is returned. This can be used in much the same ways as an \code{XMLDocument}, e.g. with \code{\link{xmlRoot}}, \code{\link{docName}} and so on to traverse the tree. It can also be used with XPath queries via \code{\link{getNodeSet}}, \code{\link{xpathApply}} and \code{doc["xpath-expression"]}. If internal nodes are used and the internal tree returned directly, all the nodes are returned as-is and no attempt to trim white space, remove ``empty'' nodes (i.e. containing only white space), etc. is done. This is potentially quite expensive and so is not done generally, but should be done during the processing of the nodes. When using XPath queries, such nodes are easily identified and/or ignored and so do not cause any difficulties. They do become an issue when dealing with a node's chidren directly and so one can use simple filtering techniques such as \code{ xmlChildren(node)[ ! xmlSApply(node, inherits, "XMLInternalTextNode")]} and even check the \code{\link{xmlValue}} to determine if it contains only white space. \code{ xmlChildren(node)[ ! xmlSApply(node, function(x) inherit(x, "XMLInternalTextNode")] && trim(xmlValue(x)) == "")} } } \references{\url{http://xmlsoft.org}, \url{http://www.w3.org/xml}} \author{Duncan Temple Lang } \note{Make sure that the necessary 3rd party libraries are available.} \seealso{ \link{xmlEventParse}, \code{\link{free}} for releasing the memory when an \code{XMLInternalDocument} object is returned. } \examples{ fileName <- system.file("exampleData", "test.xml", package="XML") # parse the document and return it in its standard format. xmlTreeParse(fileName) # parse the document, discarding comments. xmlTreeParse(fileName, handlers=list("comment"=function(x,...){NULL}), asTree = TRUE) # print the entities invisible(xmlTreeParse(fileName, handlers=list(entity=function(x) { cat("In entity",x$name, x$value,"\n") x} ), asTree = TRUE ) ) # Parse some XML text. # Read the text from the file xmlText <- paste(readLines(fileName), "\n", collapse="") print(xmlText) xmlTreeParse(xmlText, asText=TRUE) # with version 1.4.2 we can pass the contents of an XML # stream without pasting them. xmlTreeParse(readLines(fileName), asText=TRUE) # Read a MathML document and convert each node # so that the primary class is # MathML # so that we can use method dispatching when processing # it rather than conditional statements on the tag name. # See plotMathML() in examples/. fileName <- system.file("exampleData", "mathml.xml",package="XML") m <- xmlTreeParse(fileName, handlers=list( startElement = function(node){ cname <- paste(xmlName(node),"MathML", sep="",collapse="") class(node) <- c(cname, class(node)); node })) # In this example, we extract _just_ the names of the # variables in the mtcars.xml file. # The names are the contents of the # tags. We discard all other tags by returning NULL # from the startElement handler. # # We cumulate the names of variables in a character # vector named `vars'. # We define this within a closure and define the # variable function within that closure so that it # will be invoked when the parser encounters a # tag. # This is called with 2 arguments: the XMLNode object (containing # its children) and the list of attributes. # We get the variable name via call to xmlValue(). # Note that we define the closure function in the call and then # create an instance of it by calling it directly as # (function() {...})() # Note that we can get the names by parsing # in the usual manner and the entire document and then executing # xmlSApply(xmlRoot(doc)[[1]], function(x) xmlValue(x[[1]])) # which is simpler but is more costly in terms of memory. fileName <- system.file("exampleData", "mtcars.xml", package="XML") doc <- xmlTreeParse(fileName, handlers = (function() { vars <- character(0) ; list(variable=function(x, attrs) { vars <<- c(vars, xmlValue(x[[1]])); NULL}, startElement=function(x,attr){ NULL }, names = function() { vars } ) })() ) # Here we just print the variable names to the console # with a special handler. doc <- xmlTreeParse(fileName, handlers = list( variable=function(x, attrs) { print(xmlValue(x[[1]])); TRUE }), asTree=TRUE) # This should raise an error. try(xmlTreeParse( system.file("exampleData", "TestInvalid.xml", package="XML"), validate=TRUE)) \dontrun{ # Parse an XML document directly from a URL. # Requires Internet access. xmlTreeParse("http://www.omegahat.org/Scripts/Data/mtcars.xml", asText=TRUE) } counter = function() { counts = integer(0) list(startElement = function(node) { name = xmlName(node) if(name \%in\% names(counts)) counts[name] <<- counts[name] + 1 else counts[name] <<- 1 }, counts = function() counts) } h = counter() xmlParse(system.file("exampleData", "mtcars.xml", package="XML"), handlers = h) h$counts() f = system.file("examples", "index.html", package = "XML") htmlTreeParse(readLines(f), asText = TRUE) htmlTreeParse(readLines(f)) # Same as htmlTreeParse(paste(readLines(f), collapse = "\n"), asText = TRUE) getLinks = function() { links = character() list(a = function(node, ...) { links <<- c(links, xmlGetAttr(node, "href")) node }, links = function()links) } h1 = getLinks() htmlTreeParse(system.file("examples", "index.html", package = "XML"), handlers = h1) h1$links() h2 = getLinks() htmlTreeParse(system.file("examples", "index.html", package = "XML"), handlers = h2, useInternalNodes = TRUE) all(h1$links() == h2$links()) # Using flat trees tt = xmlHashTree() f = system.file("exampleData", "mtcars.xml", package="XML") xmlTreeParse(f, handlers = list(.startElement = tt[[".addNode"]])) xmlRoot(tt) doc = xmlTreeParse(f, useInternalNodes = TRUE) sapply(getNodeSet(doc, "//variable"), xmlValue) #free(doc) # character set encoding for HTML f = system.file("exampleData", "9003.html", package = "XML") # we specify the encoding d = htmlTreeParse(f, encoding = "UTF-8") # get a different result if we do not specify any encoding d.no = htmlTreeParse(f) # document with its encoding in the HEAD of the document. d.self = htmlTreeParse(system.file("exampleData", "9003-en.html",package = "XML")) # XXX want to do a test here to see the similarities between d and # d.self and differences between d.no # include f = system.file("exampleData", "nodes1.xml", package = "XML") xmlRoot(xmlTreeParse(f, xinclude = FALSE)) xmlRoot(xmlTreeParse(f, xinclude = TRUE)) f = system.file("exampleData", "nodes2.xml", package = "XML") xmlRoot(xmlTreeParse(f, xinclude = TRUE)) # Errors try(xmlTreeParse(" & < ")) # catch the error by type. tryCatch(xmlTreeParse(" & < "), "XMLParserErrorList" = function(e) { cat("Errors in XML document\n", e$message, "\n") }) # terminate on first error try(xmlTreeParse(" & < ", error = NULL)) # see xmlErrorCumulator in the XML package f = system.file("exampleData", "book.xml", package = "XML") doc.trim = xmlInternalTreeParse(f, trim = TRUE) doc = xmlInternalTreeParse(f, trim = FALSE) xmlSApply(xmlRoot(doc.trim), class) # note the additional XMLInternalTextNode objects xmlSApply(xmlRoot(doc), class) top = xmlRoot(doc) textNodes = xmlSApply(top, inherits, "XMLInternalTextNode") sapply(xmlChildren(top)[textNodes], xmlValue) # Storing nodes f = system.file("exampleData", "book.xml", package = "XML") titles = list() xmlTreeParse(f, handlers = list(title = function(x) titles[[length(titles) + 1]] <<- x)) sapply(titles, xmlValue) rm(titles) } \keyword{file} \keyword{IO} XML/man/xmlTree.Rd0000644000176000001440000001343412160565002013426 0ustar ripleyusers\name{xmlTree} \alias{xmlTree} \title{An internal, updatable DOM object for building XML trees} \description{ This is a mutable object (implemented via a closure) for representing an XML tree, in the same spirit as \code{\link{xmlOutputBuffer}} and \code{\link{xmlOutputDOM}} but that uses the internal structures of libxml. This can be used to create a DOM that can be constructed in R and exported to another system such as XSLT (\url{http://www.omegahat.org/Sxslt}) } \usage{ xmlTree(tag, attrs = NULL, dtd=NULL, namespaces=list(), doc = newXMLDoc(dtd, namespaces)) } \arguments{ \item{tag}{the node or element name to use to create the new top-level node in the tree or alternatively, an \code{XMLInternalNode} that was already created. This is optional. If it is not specified, no top-most node is created but can be added using \code{addNode}. If a top-level tag is added in the call to \code{xmlTree}, that becomes the currently active or open node (e.g. same as \code{addNode( ..., close = FALSE)}) and nodes subsequently added to this } \item{attrs}{attributes for the top-level node, in the form of a named character vector.} \item{dtd}{the name of the external DTD for this document. If specified, this adds the DOCTYPE node to the resulting document. This can be a node created earlier with a call to \code{\link{newXMLDTDNode}}, or alternatively it can be a character vector with 1, 2 or 3 elements giving the name of the top-level node, and the public identifier and the system identifier for the DTD in that order. } \item{namespaces}{a named character vector with each element giving the name space identifier and the corresponding URI, \\ e.g \code{c(shelp = "http://www.omegahat.org/XML/SHelp")} If \code{tag} is specified as a character vector, these name spaces are defined within that new node. } \item{doc}{an internal XML document object, typically created with \code{\link{newXMLDoc}}. This is used as the host document for all the new nodes that will be created as part of this document. If one wants to create nodes without an internal document ancestor, one can alternatively specify this is as \code{NULL}.} } \details{ This creates a collection of functions that manipulate a shared state to build and maintain an XML tree in C-level code. } \value{ An object of class \code{XMLInternalDOM} that extends \code{XMLOutputStream} and has the same interface (i.e. ``methods'') as \code{\link{xmlOutputBuffer}} and \code{\link{xmlOutputDOM}}. Each object has methods for adding a new XML tag, closing a tag, adding an XML comment, and retrieving the contents of the tree. \item{addTag}{create a new tag at the current position, optionally leaving it as the active open tag to which new nodes will be added as children} \item{closeTag}{close the currently active tag making its parent the active element into which new nodes will be added.} \item{addComment}{add an XML comment node as a child of the active node in the document.} \item{value}{retrieve an object representing the XML tree. See \code{\link{saveXML}} to serialize the contents of the tree.} \item{add}{degenerate method in this context.} } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \note{This is an early version of this function and I need to iron out some of the minor details.} \seealso{ \code{\link{saveXML}} \code{\link{newXMLDoc}} \code{\link{newXMLNode}} \code{\link{xmlOutputBuffer}} \code{\link{xmlOutputDOM}} } \examples{ z = xmlTree("people", namespaces = list(r = "http://www.r-project.org")) z$setNamespace("r") z$addNode("person", attrs = c(id = "123"), close = FALSE) z$addNode("firstname", "Duncan") z$addNode("surname", "Temple Lang") z$addNode("title", "Associate Professor") z$addNode("expertize", close = FALSE) z$addNode("topic", "Data Technologies") z$addNode("topic", "Programming Language Design") z$addNode("topic", "Parallel Computing") z$addNode("topic", "Data Visualization") z$addNode("topic", "Meta-Computing") z$addNode("topic", "Inter-system interfaces") z$closeTag() z$addNode("address", "4210 Mathematical Sciences Building, UC Davis") z$closeTag() tr <- xmlTree("CDataTest") tr$addTag("top", close=FALSE) tr$addCData("x <- list(1, a='&');\nx[[2]]") tr$addPI("S", "plot(1:10)") tr$closeTag() cat(saveXML(tr$value())) f = tempfile() saveXML(tr, f, encoding = "UTF-8") # Creating a node x = rnorm(3) z = xmlTree("r:data", namespaces = c(r = "http://www.r-project.org")) z$addNode("numeric", attrs = c("r:length" = length(x))) # shows namespace prefix on an attribute, and different from the one on the node. z = xmlTree() z$addNode("r:data", namespace = c(r = "http://www.r-project.org", omg = "http://www.omegahat.org"), close = FALSE) x = rnorm(3) z$addNode("r:numeric", attrs = c("omg:length" = length(x))) z = xmlTree("examples") z$addNode("example", namespace = list(r = "http://www.r-project.org"), close = FALSE) z$addNode("code", "mean(rnorm(100))", namespace = "r") x = summary(rnorm(1000)) d = xmlTree() d$addNode("table", close = FALSE) d$addNode("tr", .children = sapply(names(x), function(x) d$addNode("th", x))) d$addNode("tr", .children = sapply(x, function(x) d$addNode("td", format(x)))) d$closeNode() cat(saveXML(d)) # Dealing with DTDs and system and public identifiers for DTDs. # Just doctype za = xmlTree("people", dtd = "people") # no public element zb = xmlTree("people", dtd = c("people", "", "http://www.omegahat.org/XML/types.dtd")) # public and system zc = xmlTree("people", dtd = c("people", "//a//b//c//d", "http://www.omegahat.org/XML/types.dtd")) } \keyword{IO} XML/man/xmlToS4.Rd0000644000176000001440000000246612030412001013305 0ustar ripleyusers\name{xmlToS4} \alias{xmlToS4} \alias{xmlToS4,XMLInternalNode-method} \title{General mechanism for mapping an XML node to an S4 object} \description{ This generic function and its methods recursively process an XML node and its child nodes ( and theirs and so on) to map the nodes to S4 objects. This is the run-time function that corresponds to the \code{\link{makeClassTemplate}} function. } \usage{ xmlToS4(node, obj = new(xmlName(node)), ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{node}{the top-level XML node to convert to an S4 object} \item{obj}{the object whose slots are to be filled from the information in the XML node} \item{\dots}{additional parameters for methods} } \value{ The object \code{obj} whose slots have been modified. } \author{Duncan Temple Lang} \seealso{ \code{\link{makeClassTemplate}} } \examples{ txt = "ABCXYZ3.54available" doc = xmlParse(txt) setClass("part", representation(name = "character", type = "character", cost = "numeric", status= "character")) xmlToS4(xmlRoot(doc)[["part"]]) } \keyword{programming} \keyword{IO} \concept{meta-computing} XML/man/xmlToList.Rd0000644000176000001440000000452411741563530013755 0ustar ripleyusers\name{xmlToList} \alias{xmlToList} \title{Convert an XML node/document to a more R-like list} \description{ This function is an early and simple approach to converting an XML node or document into a more typical R list containing the data values directly (rather than as XML nodes). It is useful for dealing with data that is returned from REST requests or other Web queries or generally when parsing XML and wanting to be able to access the content as elements in a list indexed by the name of the node. For example, if given a node of the form \code{ text a phrase
    } We would end up with a list with elements named "a", "b" and "c". "a" would be the string "text", b would contain the named character vector \code{c(foo = "1")} (i.e. the attributes) and "c" would contain the list with two elements named "d" and ".attrs". The element corresponding to "d" is a character vector with the single element "a phrase". The ".attrs" element of the list is the character vector of attributes from the node \code{...}. } \usage{ xmlToList(node, addAttributes = TRUE, simplify = FALSE) } \arguments{ \item{node}{the XML node or document to be converted to an R list. This can be an "internal" or C-level node (i.e. \code{\link{XMLInternalNode-class}}) or a regular R-level node (either \code{\link{XMLNode-class}} or \code{XMLHashNode}).} \item{addAttributes}{a logical value which controls whether the attributes of an empty node are added to the } \item{simplify}{a logical value that controls whether we collapse the list to a vector if the elements all have a common compatible type. Basically, this controls whether we use \code{sapply} or \code{lapply}. } } \value{ A list whose elements correspond to the children of the top-level nodes. } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} \code{\link{getNodeSet}} and \code{\link{xpathApply}} \code{\link{xmlRoot}}, \code{\link{xmlChildren}}, \code{\link{xmlApply}}, \code{[[}, etc. for accessing the content of XML nodes. } \examples{ tt = ' text a phrase ' doc = xmlParse(tt) xmlToList(doc) # use an R-level node representation doc = xmlTreeParse(tt) xmlToList(doc) } \keyword{IO} \keyword{data} XML/man/xmlToDataFrame.Rd0000644000176000001440000001036112122116471014652 0ustar ripleyusers\name{xmlToDataFrame} \alias{xmlToDataFrame} \alias{xmlToDataFrame,character,ANY,ANY,ANY,ANY-method} \alias{xmlToDataFrame,XMLInternalDocument,ANY,ANY,ANY,missing-method} \alias{xmlToDataFrame,ANY,ANY,ANY,ANY,XMLNodeSet-method} \alias{xmlToDataFrame,ANY,ANY,ANY,ANY,XMLInternalNodeList-method} \alias{xmlToDataFrame,ANY,ANY,ANY,ANY,list-method} \alias{xmlToDataFrame,XMLInternalNodeList,ANY,ANY,ANY,ANY-method} \alias{xmlToDataFrame,XMLInternalElementNode,ANY,ANY,ANY,ANY-method} \alias{xmlToDataFrame,XMLNodeSet,ANY,ANY,ANY,ANY-method} \alias{xmlToDataFrame,list,ANY,ANY,ANY,ANY-method} \title{Extract data from a simple XML document} \description{ This function can be used to extract data from an XML document (or sub-document) that has a simple, shallow structure that does appear reasonably commonly. The idea is that there is a collection of nodes which have the same fields (or a subset of common fields) which contain primitive values, i.e. numbers, strings, etc. Each node corresponds to an "observation" and each of its sub-elements correspond to a variable. This function then builds the corresponding data frame, using the union of the variables in the different observation nodes. This can handle the case where the nodes do not all have all of the variables. } \usage{ xmlToDataFrame(doc, colClasses = NULL, homogeneous = NA, collectNames = TRUE, nodes = list(), stringsAsFactors = default.stringsAsFactors()) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{doc}{the XML content. This can be the name of a file containing the XML, the parsed XML document. If one wants to work on a subset of nodes, specify these via the \code{nodes} parameter.} \item{colClasses}{a list/vector giving the names of the R types for the corresponding variables and this is used to coerce the resulting column in the data frame to this type. These can be named. This is similar to the \code{colClasses} parameter for \code{\link[utils]{read.table}}. If this is given as a list, columns in the data frame corresponding to elements that are \code{NULL} are omitted from the answer. This can be slightly complex to specify if the different nodes have the "variables" in quite different order as there is not a well defined order for the variables corresponding to \code{colClasses}. } \item{homogeneous}{a logical value that indicates whether each of the nodes contains all of the variables (\code{TRUE}) or if there may be some nodes which have only a subset of them. The function determines this if the caller does not specify \code{homogeneous} or uses \code{NA} as the value. It is a parameter to allow the caller to specify this information and avoid these "extra" computations. If the caller knows this information it is more efficient to specify it. } \item{collectNames}{a logical value indicating whether we compute the names by explicitly computing the union of all variable names or, if \code{FALSE}, we use the names from the node with the most children. This latter case is useful when the caller knows that the there is at least one node with all the variables. } \item{nodes}{a list of XML nodes which are to be processed} \item{stringsAsFactors}{a logical value that controls whether character vectors are converted to factor objects in the resulting data frame.} } \value{ A data frame. } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlParse}} \code{\link{getNodeSet}} } \examples{ f = system.file("exampleData", "size.xml", package = "XML") xmlToDataFrame(f, c("integer", "integer", "numeric")) # Drop the middle variable. z = xmlToDataFrame(f, colClasses = list("integer", NULL, "numeric")) # This illustrates how we can get a subset of nodes and process # those as the "data nodes", ignoring the others. f = system.file("exampleData", "tides.xml", package = "XML") doc = xmlParse(f) xmlToDataFrame(nodes = xmlChildren(xmlRoot(doc)[["data"]])) # or, alternatively xmlToDataFrame(nodes = getNodeSet(doc, "//data/item")) f = system.file("exampleData", "kiva_lender.xml", package = "XML") doc = xmlParse(f) dd = xmlToDataFrame(getNodeSet(doc, "//lender")) } \keyword{IO} XML/man/xmlSubset.Rd0000644000176000001440000000502111741563530013775 0ustar ripleyusers\name{[.XMLNode} \alias{[.XMLNode} \alias{[[.XMLNode} \alias{[[.XMLInternalElementNode} \alias{[[.XMLDocumentContent} \title{Convenience accessors for the children of XMLNode objects.} \description{ These provide a simplified syntax for extracting the children of an XML node. } \usage{ \method{[}{XMLNode}(x, ..., all = FALSE) \method{[[}{XMLNode}(x, ...) \method{[[}{XMLDocumentContent}(x, ...) } \arguments{ \item{x}{the XML node or the top-level document content in which the children are to be accessed. The \code{XMLDocumentContent} is the container for the top-level node that also contains information such as the URI/filename and XML version. This accessor method is merely a convenience to get access to children of the top-level node.} % \item{i}{index of the child of interest or the name of an XML element % of interest. In this latter case, only the first matching element is % returned, if any.} \item{\dots}{the identifiers for the children to be retrieved, given as integer indices, names, etc. in the usual format for the generic \code{link{[}} and \code{link{[[}} operators} \item{all}{logical value. When \dots is a character vector, a value of \code{TRUE} for \code{all} means to retrieve all of the nodes with those names rather than just the first one. \code{FALSE} gives the usual result of subsetting a list by name which gives just the first element. This allows us to avoid the idiom \code{node[ names(node) == "bob" ]} which is complicated when node is the result of an inline computation and instead we use \code{node["bob", all = TRUE]}. } } \value{ A list or single element containing the children of the XML node given by \code{obj} and identified by \dots. } \references{\url{http://www.w3.org/XML}, \url{http://www.omegahat.org/RSXML}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlAttrs}} \code{\link{[<-.XMLNode}} \code{\link{[[<-.XMLNode}} } \examples{ f = system.file("exampleData", "gnumeric.xml", package = "XML") top = xmlRoot(xmlTreeParse(f)) # Get the first RowInfo element. top[["Sheets"]][[1]][["Rows"]][["RowInfo"]] # Get a list containing only the first row element top[["Sheets"]][[1]][["Rows"]]["RowInfo"] top[["Sheets"]][[1]][["Rows"]][1] # Get all of the RowInfo elements by position top[["Sheets"]][[1]][["Rows"]][1:xmlSize(top[["Sheets"]][[1]][["Rows"]])] # But more succinctly and accurately, get all of the RowInfo elements top[["Sheets"]][[1]][["Rows"]]["RowInfo", all = TRUE] } \keyword{IO} \keyword{file} XML/man/xmlStructuredStop.Rd0000644000176000001440000000657311741563530015557 0ustar ripleyusers\name{xmlStructuredStop} \alias{xmlStructuredStop} \alias{xmlErrorCumulator} \title{Condition/error handler functions for XML parsing} \description{ These functions provide basic error handling for the XML parser in R. They also illustrate the basics which will allow others to provide customized error handlers that make more use of the information provided in each error reported. The \code{xmlStructuredStop} function provides a simple R-level handler for errors raised by the XML parser. It collects the information provided by the XML parser and raises an R error. This is only used if \code{NULL} is specified for the \code{error} argument of \code{\link{xmlTreeParse}}, \code{\link{xmlTreeParse}} and \code{\link{htmlTreeParse}}. The default is to use the function returned by a call to \code{xmlErrorCumulator} as the error handler. This, as the name suggests, cumulates errors. The idea is to catch each error and let the parser continue and then report them all. As each error is encountered, it is collected by the function. If \code{immediate} is \code{TRUE}, the error is also reported on the console. When the parsing is complete and has failed, this function is invoked again with a zero-length character vector as the message (first argument) and then it raises an error. This function will then raise an R condition of class \code{class}. } \usage{ xmlStructuredStop(msg, code, domain, line, col, level, filename, class = "XMLError") xmlErrorCumulator(class = "XMLParserErrorList", immediate = TRUE) } \arguments{ \item{msg}{character string, the text of the message being reported} \item{code}{ an integer code giving an identifier for the error (see xmlerror.h) for the moment,} \item{domain}{ an integer domain indicating in which "module" or part of the parsing the error occurred, e.g. name space, parser, tree, xinclude, etc.} \item{line}{ an integer giving the line number in the XML content being processed corresponding to the error, } \item{col}{ an integer giving the column position of the error, } \item{level}{ an integer giving the severity of the error ranging from 1 to 3 in increasing severity (warning, error, fatal),} \item{filename}{character string, the name of the document being processed, i.e. its file name or URL.} \item{class}{ character vector, any classes to prepend to the class attribute to make the error/condition. These are prepended to those returned via \code{\link[base]{simpleError}}.} \item{immediate}{logical value, if \code{TRUE} errors are displayed on the R console as they are encountered. Otherwise, the errors are collected and displayed at the end of the XML parsing.} } \value{ This calls \code{\link[base]{stop}} and so does not return a value. } \references{libxml2 and its error handling facilities (\url{http://xmlsoft.org}} \author{ Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlInternalTreeParse}} \code{\link{htmlTreeParse}} } \examples{ tryCatch( xmlTreeParse("", asText = TRUE, error = NULL), XMLError = function(e) { cat("There was an error in the XML at line", e$line, "column", e$col, "\n", e$message, "\n") }) } \keyword{IO } \keyword{programming} \concept{error handling} XML/man/xmlStopParser.Rd0000644000176000001440000000446111741563530014641 0ustar ripleyusers\name{xmlStopParser} \alias{xmlStopParser} \title{Terminate an XML parser} \description{ This function allows an R-level function to terminate an XML parser before it completes the processing of the XML content. This might be useful, for example, in event-driven parsing with \code{\link{xmlEventParse}} when we want to read through an XML file until we find a record of interest. Then, having retrieved the necessary information, we want to terminate the parsing rather than let it pointlessly continue. Instead of raising an error in our handler function, we can call \code{xmlStopParser} and return. The parser will then take control again and terminate and return back to the original R function from which it was invoked. The only argument to this function is a reference to internal C-level which identifies the parser. This is passed by the R-XML parser mechanism to a function invoked by the parser if that function inherits (in the S3 sense) from the class \code{XMLParserContextFunction}. } \usage{ xmlStopParser(parser) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{parser}{ an object of class \code{XMLParserContext} which must have been obtained by via an \code{XMLParserContextFunction} function called by the parser. This is just a handler function whose class includes \code{XMLParserContextFunction} } } \value{ \code{TRUE} if it succeeded and an error is raised if the \code{parser} object is not valid. } \references{libxml2 \url{http://xmlsoft.org}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlEventParse}} } \examples{ ############################################ # Stopping the parser mid-way and an example of using XMLParserContextFunction. startElement = function(ctxt, name, attrs, ...) { print(ctxt) print(name) if(name == "rewriteURI") { cat("Terminating parser\n") xmlStopParser(ctxt) } } class(startElement) = "XMLParserContextFunction" endElement = function(name, ...) cat("ending", name, "\n") fileName = system.file("exampleData", "catalog.xml", package = "XML") xmlEventParse(fileName, handlers = list(startElement = startElement, endElement = endElement)) } \keyword{IO} \keyword{programming} \concept{Error handling} \concept{streaming data} XML/man/xmlSource.Rd0000644000176000001440000002546712144542232014002 0ustar ripleyusers\name{xmlSource} \alias{xmlSource} \alias{xmlSource,character-method} \alias{xmlSource,XMLNodeSet-method} \alias{xmlSource,XMLInternalDocument-method} \alias{xmlSourceFunctions} \alias{xmlSourceFunctions,character-method} \alias{xmlSourceFunctions,XMLInternalDocument-method} \alias{xmlSourceSection} \alias{xmlSourceSection,character-method} \alias{xmlSourceSection,XMLInternalDocument-method} \alias{xmlSourceThread} \alias{xmlSourceThread,XMLInternalDocument-method} \alias{xmlSourceThread,character-method} \alias{xmlSourceThread,list-method} \title{Source the R code, examples, etc. from an XML document} \description{ This is the equivalent of a smart \code{\link[base]{source}} for extracting the R code elements from an XML document and evaluating them. This allows for a \dQuote{simple} way to collect R functions definitions or a sequence of (annotated) R code segments in an XML document along with other material such as notes, documentation, data, FAQ entries, etc., and still be able to access the R code directly from within an R session. The approach enables one to use the XML document as a container for a heterogeneous collection of related material, some of which is R code. In the literate programming parlance, this function essentially dynamically "tangles" the document within R, but can work on small subsets of it that are easily specified in the \code{xmlSource} function call. This is a convenient way to annotate code in a rich way and work with source files in a new and potentially more effective manner. \code{xmlSourceFunctions} provides a convenient way to read only the function definitions, i.e. the \code{} nodes. We can restrict to a subset by specifying the node ids of interest. \code{xmlSourceSection} allows us to evaluate the code in one or more specific sections. This style of authoring code supports mixed language support in which we put, for example, C and R code together in the same document. Indeed, one can use the document to store arbitrary content and still retrieve the R code. The more structure there is, the easier it is to create tools to extract that information using XPath expressions. We can identify individual \code{r:code} nodes in the document to process, i.e. evaluate. We do this using their \code{id} attribute and specifying which to process via the \code{ids} argument. Alternatively, if a document has a node \code{r:codeIds} as a child of the top-level node (or within an invisible node), we read its contents as a sequence of line separated \code{id} values as if they had been specified via the argument \code{ids} to this function. We can also use XSL to extract the code. See \code{getCode.xsl} in the Omegahat XSL collection. This particular version (as opposed to other implementations) uses XPath to conveniently find the nodes of interest. } \usage{ xmlSource(url, ..., envir = globalenv(), xpath = character(), ids = character(), omit = character(), ask = FALSE, example = NA, fatal = TRUE, verbose = TRUE, echo = verbose, print = echo, xnodes = DefaultXMLSourceXPath, namespaces = DefaultXPathNamespaces, section = character(), eval = TRUE, init = TRUE, setNodeNames = FALSE, parse = TRUE, force = FALSE) xmlSourceFunctions(doc, ids = character(), parse = TRUE, ...) xmlSourceSection(doc, ids = character(), xnodes = c(".//r:function", ".//r:init[not(@eval='false')]", ".//r:code[not(@eval='false')]", ".//r:plot[not(@eval='false')]"), namespaces = DefaultXPathNamespaces, ...) } \arguments{ \item{url}{the name of the file, URL containing the XML document, or an XML string. This is passed to \code{\link[XML]{xmlTreeParse}} which is called with \code{useInternalNodes = TRUE}. } \item{\dots}{additional arguments passed to \code{\link[XML]{xmlTreeParse}}} \item{envir}{the environment in which the code elements of the XML document are to be evaluated. By default, they are evaluated in the global environment so that assignments take place there. } \item{xpath}{a string giving an XPath expression which is used after parsing the document to filter the document to a particular subset of nodes. This allows one to restrict the evaluation to a subset of the original document. One can do this directly by parsing the XML document, applying the XPath query and then passing the resulting node set to this \code{xmlSource} function's appropriate method. This argument merely allows for a more convenient form of those steps, collapsing it into one action. } \item{ids}{a character vector. XML nodes containing R code (e.g. \code{r:code}, \code{r:init}, \code{r:function}, \code{r:plot}) can have an id attribute. This vector allows the caller to specify the subset of these nodes to process, i.e. whose code will be evaluated. The order is currently not important. It may be used in the future to specify the order in which the nodes are evaluated. If this is not specified and the document has a node \code{r:codeIds} as an immediate child of the top-most node, the contents of this node or contained within an \code{invisible} node (so that it doesn't have to be filtered when rendering the document), the names of the r:code id values to process are taken as the individual lines from the body of this node. } \item{omit}{a character vector. The values of the id attributes of the nodes that we want to skip or omit from the evaluation. This allows us to specify the set that we don't want evaluated, in contrast to the \code{ids} argument. The order is not important. } \item{ask}{logical} \item{example}{a character or numeric vector specifying the values of the id attributes of any \code{r:example} nodes in the document. A single document may contain numerous, separate examples and these can be marked uniquely using an \code{id} attribute, e.g. \code{} \seealso{ \code{\link[XML]{xmlTreeParse}} } \examples{ xmlSource(system.file("exampleData", "Rsource.xml", package="XML")) # This illustrates using r:frag nodes. # The r:frag nodes are not processed directly, but only # if referenced in the contents/body of a r:code node f = system.file("exampleData", "Rref.xml", package="XML") xmlSource(f) } \keyword{IO} \keyword{programming} \concept{Annotated code} \concept{Literate Programming} \concept{Mixed language} XML/man/xmlSize.Rd0000644000176000001440000000201011741563530013435 0ustar ripleyusers\name{xmlSize} \alias{xmlSize} \alias{xmlSize.default} \alias{xmlSize.XMLDocument} \alias{xmlSize.XMLNode} \title{The number of sub-elements within an XML node.} \description{ XML elements can contain other, nested sub-elements. This generic function determines the number of such elements within a specified node. It applies to an object of class XMLNode or XMLDocument. } \usage{ xmlSize(obj) } \arguments{ \item{obj}{ An an object of class XMLNode or XMLDocument.} } \value{ an integer which is the \code{\link{length}} of the value from \code{\link{xmlChildren}}. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlChildren}}, \code{\link{xmlAttrs}}, \code{\link{xmlName}}, \code{\link{xmlTreeParse}} } \examples{ fileName <- system.file("exampleData", "mtcars.xml", package="XML") doc <- xmlTreeParse(fileName) xmlSize(doc) xmlSize(doc$doc$children[["dataset"]][["variables"]]) } \keyword{file} XML/man/xmlSerializeHook.Rd0000644000176000001440000000403612030420522015266 0ustar ripleyusers\name{xmlSerializeHook} \alias{xmlSerializeHook} \alias{xmlDeserializeHook} \title{Functions that help serialize and deserialize XML internal objects} \description{ These functions can be used to control how the C-level data structures associated with XML documents, nodes, XPath queries, etc. are serialized to a a file or connection and deserialized back into an R session. Since these C-level data structures are represented in R as external pointers, they would normally be serialized and deserialized in a way that loses all the information about the contents of the memory being referenced. \code{xmlSerializeHook} arranges to serialize these pointers by saving the corresponding XML content as a string and also the class of the object. The deserialize function converts such objects back to their original form. These functions are used in calls to \code{\link[base]{saveRDS}} and \code{\link[base]{readRDS}} via the \code{refhook} argument. \code{ saveRDS(obj, filename, refhook = xmlSerializeHook) readRDS(filename, refhook = xmlDeserializeHook) } } \usage{ xmlSerializeHook(x) xmlDeserializeHook(x) } \arguments{ \item{x}{the object to be deserialized, and the character vector to be deserialized.} } \value{ \code{xmlSerializeHook} returns a character version of the XML document or node, along with the basic class. If it is called with an object that is not an native/internal XML object, it returns \code{NULL} \code{xmlDeserializeHook} returns the parsed XML object, either a document or a node. } \references{ The R Internals Manual. } \author{ Duncan Temple Lang } \seealso{ \code{\link[base]{saveRDS}} and \code{\link[base]{readRDS}} } \examples{ z = newXMLNode("foo") f = system.file("exampleData", "tides.xml", package = "XML") doc = xmlParse(f) hdoc = as(doc, "XMLHashTree") nodes = getNodeSet(doc, "//pred") saveRDS(list(a = 1:10, z = z, doc = doc, hdoc = hdoc, nodes = nodes), "tmp.rda", refhook = xmlSerializeHook) v = readRDS("tmp.rda", refhook = xmlDeserializeHook) } \keyword{IO} XML/man/xmlSearchNs.Rd0000644000176000001440000000246112030412355014231 0ustar ripleyusers\name{xmlSearchNs} \alias{xmlSearchNs} \alias{coerce,XMLNamespaceRef,character-method} \title{Find a namespace definition object by searching ancestor nodes} \description{ This function allows one to search an XML tree from a particular node and find the namespace definition for a given namespace prefix or URL. This namespace definition can then be used to set it on a node to make it the effective namespace for that node. } \usage{ xmlSearchNs(node, ns, asPrefix = TRUE, doc = as(node, "XMLInternalDocument")) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{node}{an \code{XMLInternaElementNode}} \item{ns}{a character string (vector of length 1). If \code{asPrefix} is \code{TRUE}, this is the namespace alias/prefix. If \code{asPrefix} is \code{FALSE}, this is the URL of the namespace definition} \item{asPrefix}{a logical value. See \code{ns}.} \item{doc}{the XML document in which the node(s) are located} } \value{ An object of class XMLNamespaceRef. } \references{ libxml2 } \author{ Duncan Temple Lang } \seealso{ \code{\link{newXMLNode}} } \examples{ txt = '
    ' doc = xmlParse(txt) bottom = xmlRoot(doc)[[1]][[1]] xmlSearchNs(bottom, "r") } \keyword{programming} \keyword{data} XML/man/xmlSchemaValidate.Rd0000644000176000001440000000465211741563530015413 0ustar ripleyusers\name{xmlSchemaValidate} \alias{xmlSchemaValidate} \alias{schemaValidationErrorHandler} \title{Validate an XML document relative to an XML schema} \description{ This function validates an XML document relative to an XML schema to ensure that it has the correct structure, i.e. valid sub-nodes, attributes, etc. The \code{xmlSchemaValidationErrorHandler} is a function that returns a list of functions which can be used to cumulate or collect the errors and warnings from the schema validation operation. } \usage{ xmlSchemaValidate(schema, doc, errorHandler = xmlErrorFun(), options = 0L) schemaValidationErrorHandler() } \arguments{ \item{schema}{an object of class \code{xmlSchemaRef} which is usually the result of a call to \code{\link{xmlInternalTreeParse}} with \code{isSchema = TRUE}, or \code{\link{xmlSchemaParse}}.} \item{doc}{an XML document which has already been parsed into a \code{XMLInternalDocument} or which is a file name or string which is coerced to an \code{\link{XMLInternalDocument-class}} object} \item{options}{an integer giving the options controlling the validation. At present, this is either 0 or 1 and is essentially irrelevant to us. It may be of value in the future. } \item{errorHandler}{ a function or a list whose first element is a function which is then used as the collector for the warning and error messages reported during the validation. For each warning or error, this function is invoked and the class of the message is either \code{XMLSchemaWarning} or \code{XMLSchemaError} respectively. } } \value{ Typically, a list with 3 elements: \item{status}{0 for validated, and non-zero for invalid} \item{errors}{a character vector} \item{warnings}{a character vector} If an empty error handler is provided (i.e. \code{NULL}) just an integer indicating the status of the validation is returned. 0 indicates everything was okay; a non-zero value indicates a validation error. (-1 indicates an internal error in libxml2) } \references{libxml2 www.xmlsoft.org } \seealso{ \code{\link{xmlSchemaParse}} } \examples{ if(FALSE) { xsd = xmlParse(system.file("exampleData", "author.xsd", package = "XML"), isSchema =TRUE) doc = xmlInternalTreeParse(system.file("exampleData", "author.xml", package = "XML")) xmlSchemaValidate(xsd, doc) } } \keyword{IO} \concept{validation} \concept{XML} \concept{schema} XML/man/xmlRoot.Rd0000644000176000001440000000456611741563530013470 0ustar ripleyusers\name{xmlRoot} \alias{xmlRoot} \alias{xmlRoot.XMLDocument} \alias{xmlRoot.XMLInternalDocument} \alias{xmlRoot.XMLInternalDOM} \alias{xmlRoot.XMLDocumentRoot} \alias{xmlRoot.XMLDocumentContent} \alias{xmlRoot.HTMLDocument} \title{Get the top-level XML node.} \description{ These are a collection of methods for providing easy access to the top-level \code{XMLNode} object resulting from parsing an XML document. They simplify accessing this node in the presence of auxillary information such as DTDs, file name and version information that is returned as part of the parsing. } \usage{ xmlRoot(x, skip = TRUE, ...) \method{xmlRoot}{XMLDocumentContent}(x, skip = TRUE, ...) \method{xmlRoot}{XMLInternalDocument}(x, skip = TRUE, addFinalizer = NA, ...) \method{xmlRoot}{HTMLDocument}(x, skip = TRUE, ...) } \arguments{ \item{x}{the object whose root/top-level XML node is to be returned.} \item{skip}{a logical value that controls whether DTD nodes and/or XMLComment objects that appear before the \dQuote{real} top-level node of the document should be ignored (\code{TRUE}) or not (\code{FALSE}) when returning the root node.} \item{...}{arguments that are passed by the generic to the different specialized methods of this generic.} \item{addFinalizer}{a logical value or identifier for a C routine that controls whether we register finalizers on the intenal node.} } \value{ An object of class \code{XMLNode}. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \note{One cannot obtain the parent or top-level node of an XMLNode object in S. This is different from languages like C, Java, Perl, etc. and is primarily because S does not provide support for references.} \seealso{ \code{\link{xmlTreeParse}} \code{\link{[[.XMLNode}} } \examples{ doc <- xmlTreeParse(system.file("exampleData", "mtcars.xml", package="XML")) xmlRoot(doc) # Note that we cannot use getSibling () on a regular R-level XMLNode object # since we cannot go back up or across the tree from that node, but # only down to the children. # Using an internal node via xmlParse (== xmlInternalTreeParse()) doc <- xmlParse(system.file("exampleData", "mtcars.xml", package="XML")) n = xmlRoot(doc, skip = FALSE) # skip over the DTD and the comment d = getSibling(getSibling(n)) } \keyword{file} XML/man/xmlParserContextFunction.Rd0000644000176000001440000000400612030432636017033 0ustar ripleyusers\name{xmlParserContextFunction} \alias{xmlParserContextFunction} \title{Identifies function as expecting an xmlParserContext argument} \description{ This is a convenience function for setting the class of the specified function to include \code{"XMLParserContextFunction"}. This identifies it as expecting an \code{xmlParserCtxt} object as its first argument. The resulting function can be passed to the internal/native XML parser as a handler/callback function. When the parser calls it, it recognizes this class information and includes a reference to the C-level \code{xmlParserCtxt} object as the first argument in the call. This \code{xmlParserCtxt} object can be used to gracefully terminate the parsing (without an error), and in the future will also provide access to details about the current state of the parser, e.g. the encoding of the file, the XML version, whether entities are being replaced, line and column number for each node processed. } \usage{ xmlParserContextFunction(f, class = "XMLParserContextFunction") } \arguments{ \item{f}{the function whose class information is to be augmented.} \item{class}{the name of the class which is to be added to the \code{class} attribute of the function.} } \value{ The function object \code{f} whose class attribute has been prepended with the value of \code{class}. } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlInternalTreeParse}}/\code{\link{xmlParse}} and the \code{branches} parameter of \code{\link{xmlEventParse}}. } \examples{ fun = function(context, ...) { # do things to parse the node # using the context if necessary. cat("In XMLParserContextFunction\n") xmlStopParser(context) } fun = xmlParserContextFunction(fun) txt = "" # doesn't work for xmlTreeParse() # xmlTreeParse(txt, handlers = list(a = fun)) # but does in xmlEventParse(). xmlEventParse(txt, handlers = list(startElement = fun), asText = TRUE) } \keyword{IO} \keyword{programming} \concept{XML} XML/man/xmlParseDoc.Rd0000644000176000001440000000545112160564621014235 0ustar ripleyusers\name{xmlParseDoc} \Rdversion{1.1} \alias{xmlParseDoc} \alias{COMPACT} \alias{DTDATTR} \alias{DTDLOAD} \alias{DTDVALID} \alias{HUGE} \alias{NOBASEFIX} \alias{NOBLANKS} \alias{NOCDATA} \alias{NODICT} \alias{NOENT} \alias{NOERROR} \alias{NONET} \alias{NOWARNING} \alias{NOXINCNODE} \alias{NSCLEAN} \alias{OLDSAX} \alias{PEDANTIC} \alias{RECOVER} \alias{XINCLUDE} \alias{OLD10} \alias{SAX1} \title{Parse an XML document with options controlling the parser.} \description{ This function is a generalization of \code{\link{xmlParse}} that parses an XML document. With this function, we can specify a combination of different options that control the operation of the parser. The options control many different aspects the parsing process } \usage{ xmlParseDoc(file, options = 1L, encoding = character(), asText = !file.exists(file), baseURL = file) } \arguments{ \item{file}{the name of the file or URL or the XML content itself} \item{options}{options controlling the behavior of the parser. One specifies the different options as elements of an integer vector. These are then bitwised OR'ed together. The possible options are \code{RECOVER}, \code{NOENT}, \code{DTDLOAD}, \code{DTDATTR}, \code{DTDVALID}, \code{NOERROR}, \code{NOWARNING}, \code{PEDANTIC}, \code{NOBLANKS}, \code{SAX1}, \code{XINCLUDE}, \code{NONET}, \code{NODICT}, \code{NSCLEAN}, \code{NOCDATA}, \code{NOXINNODE}, \code{COMPACT}, \code{OLD10}, \code{NOBASEFIX}, \code{HUGE}, \code{OLDSAX}. ( These options are also listed in the (non-exported) variable \code{parserOptions}.) } \item{encoding}{character string that provides the encoding of the document if it is not explicitly contained within the document itself.} \item{asText}{a logical value indicating whether \code{file} is the XML content (\code{TRUE}) or the name of a file or URL (\code{FALSE})} \item{baseURL}{the base URL used for resolving relative documents, e.g. XIncludes. This is important if \code{file} is the actual XML content rather than a URL} } \value{ An object of class \code{XMLInternalDocument}. } \references{libxml2} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlParse}} } \examples{ f = system.file("exampleData", "mtcars.xml", package="XML") # Same as xmlParse() xmlParseDoc(f) txt = ' ' xmlParseDoc(txt, NSCLEAN, asText = TRUE) txt = ' ' xmlParseDoc(txt, c(NSCLEAN, NOERROR), asText = TRUE) } \keyword{data} \concept{XML} XML/man/xmlParent.Rd0000644000176000001440000000714511741563530013772 0ustar ripleyusers\name{xmlParent} \alias{xmlParent} \alias{xmlAncestors} \alias{xmlParent.XMLInternalNode} \alias{xmlParent,XMLInternalNode-method} \alias{xmlParent,XMLHashTreeNode-method} \alias{xmlParent,XMLTreeNode-method} \title{Get parent node of XMLInternalNode or ancestor nodes} \description{ \code{xmlParent} operates on an XML node and returns a reference to its parent node within the document tree. This works for an internal, C-level \code{XMLInternalNode} object created, for examply, using \code{\link{newXMLNode}} and related functions or \code{\link{xmlTree}} or from \code{\link{xmlTreeParse}} with the \code{useInternalNodes} parameter. It is possible to find the parent of an R-level XML node when using a tree created with, for example, \code{\link{xmlHashTree}} as the parent information is stored separately. \code{xmlAncestors} walks the chain of parens to the top of the document and either returns a list of those nodes, or alternatively a list of the values obtained by applying a function to each of the nodes. } \usage{ xmlParent(x, ...) xmlAncestors(x, fun = NULL, ..., addFinalizer = NA, count = -1L) } \arguments{ \item{x}{an object of class \code{XMLInternalNode} whose parent is being requested. } \item{fun}{an R function which is invoked for each node as we walk up the tree.} \item{\dots}{any additional arguments that are passed in calls to \code{fun} after the node object and for \code{xmlParent} this allows methods to define their own additional parameters.} \item{addFinalizer}{a logical value indicating whether the default finalizer routine should be registered to free the internal xmlDoc when R no longer has a reference to this external pointer object. This can also be the name of a C routine or a reference to a C routine retrieved using \code{\link[base]{getNativeSymbolInfo}}. } \item{count}{an integer that indicates how many levels of the hierarchy to traverse. This allows us to get the \code{count} most recent ancestors of the node.} } \details{ This uses the internal libxml structures to access the parent in the DOM tree. This function is generic so that we can add methods for other types of nodes if we so want in the future. } \value{ \code{xmlParent} returns object of class \code{XMLInternalNode}. If \code{fun} is \code{NULL}, \code{xmlAncestors} returns a list of the nodes in order of top-most node or root of the tree, then its child, then the child of that child, etc. This is the reverse order in which the nodes are visited/found. If \code{fun} is a function, \code{xmlAncestors} returns a list whose elements are the results of calling that function for each node. Again, the order is top down. } \references{\url{http://www.w3.org/XML}} \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlChildren}} \code{\link{xmlTreeParse}} \code{\link{xmlNode}} } \examples{ top = newXMLNode("doc") s = newXMLNode("section", attr = c(title = "Introduction")) a = newXMLNode("article", s) addChildren(top, a) xmlName(xmlParent(s)) xmlName(xmlParent(xmlParent(s))) # Find the root node. root = a while(!is.null(xmlParent(root))) root = xmlParent(root) # find the names of the parent nodes of each 'h' node. # use a global variable to "simplify" things and not use a closure. filename = system.file("exampleData", "branch.xml", package = "XML") parentNames <- character() xmlParse(filename, handlers = list(h = function(x) { parentNames <<- c(parentNames, xmlName(xmlParent(x))) })) table(parentNames) } \keyword{file} \keyword{IO} XML/man/xmlOutput.Rd0000644000176000001440000001270711741563530014041 0ustar ripleyusers\name{xmlOutputBuffer} \alias{xmlOutputBuffer} \alias{xmlOutputDOM} \title{XML output streams} \description{ These two functions provide different ways to construct XML documents incrementally. They provide a single, common interface for adding and closing tags, and inserting nodes. The buffer version stores the XML representation as a string. The DOM version builds the tree of XML node objects entirely within R. } \usage{ xmlOutputBuffer(dtd=NULL, nameSpace="", buf=NULL, nsURI=NULL, header="") xmlOutputDOM(tag="doc", attrs = NULL, dtd=NULL, nameSpace=NULL, nsURI=character(0), xmlDeclaration = NULL) } \arguments{ \item{dtd}{a DTD object (see \code{\link{parseDTD}} and \code{\link{xmlTreeParse}}) which contains specifications about what elements are valid within other elements and what attributes are supported by different elements. This can be used to validate the document as it is being constructed incrementally.} \item{attrs}{attributes for the top-level node, in the form of a named vector or list.} \item{nameSpace}{the default namespace identifier to be used when an element is created without an explicit namespace. This provides a convenient way to specify the default name space that appers in tags throughout the resulting document.} \item{buf}{a connection object or a string into which the XML content is written. This is currently a simplistic implementation since we will use the OOP-style classes from the Omegahat projects in the future.} \item{nsURI}{the URI or value for the name space which is used when declaring the namespace. For \code{xmlOuputDOM}, this is a named character vector with each element giving the name space identifier and the corresponding URI, \\ e.g \code{c(shelp = "http://www.omegahat.org/XML/SHelp")} } \item{header}{if non-NULL, this is immediately written to the output stream allowing one to control the initial section of the XML document.} \item{tag}{the name of the top-level node/element in the DOM being created.} \item{xmlDeclaration}{ a logical value or a string. If this is a logical value and \code{TRUE}, the default processing instruction is emitted at the top of the document. If it is \code{FALSE}, no xml declaration is emitted at the top of the document. If this is provided as a string, the contents of this is added as the content of the processing instruction. A version='1.0' is added if there is no 'version=' content within the given string. } } \details{ These functions create a closure instance which provides methods or functions that operate on shared data used to represent the contents of the XML document being created and the current state of that creation. } \value{ Both of these functions return a list of functions which operate on the XML data in a shared environment. \item{value}{get the contents of the XML document as they are currently defined.} \item{addTag}{add a new element to the document, specifying its name and attributes. This allows the tag to be left open so that new elements will be added as children of it.} \item{closeTag}{close the currently open tag, indicating that new elements will be added, by default, as siblings of this one.} \item{reset}{discard the current contents of the document so that we can start over and free the resources (memory) associated with this document.} The following are specific to \code{xmlOutputDOM}: \item{addNode}{insert an complete \code{XMLNode} object into the currently active (i.e. open) node.} \item{current}{obtain the path or collection of indices to to the currently active/open node from the root node.} } \references{\url{http://www.omegahat.org/RSXML}, \url{http://www.w3.org/xml}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTree}} for a native/internal (C-level) representation of the tree, \code{\link{xmlNode}}, \code{\link{xmlTextNode}}, \code{\link{append.xmlNode}} And a different representation of a tree is available via \code{\link{xmlHashTree}}. } \examples{ con <- xmlOutputDOM() con$addTag("author", "Duncan Temple Lang") con$addTag("address", close=FALSE) con$addTag("office", "2C-259") con$addTag("street", "Mountain Avenue.") con$addTag("phone", close = FALSE) con$addTag("area", "908", attrs=c(state="NJ")) con$addTag("number", "582-3217") con$closeTag() # phone con$closeTag() # address con$addTag("section", close = FALSE) con$addNode(xmlTextNode("This is some text ")) con$addTag("a","and a link", attrs=c(href="http://www.omegahat.org")) con$addNode(xmlTextNode("and some follow up text")) con$addTag("subsection", close = FALSE) con$addNode(xmlTextNode("some addtional text ")) con$addTag("a", attrs=c(href="http://www.omegahat.org"), close=FALSE) con$addNode(xmlTextNode("the content of the link")) con$closeTag() # a con$closeTag() # "subsection" con$closeTag() # section d <- xmlOutputDOM() d$addPI("S", "plot(1:10)") d$addCData('x <- list(1, a="&");\nx[[2]]') d$addComment("A comment") print(d$value()) print(d$value(), indent = FALSE, tagSeparator = "") d = xmlOutputDOM("bob", xmlDeclaration = TRUE) print(d$value()) d = xmlOutputDOM("bob", xmlDeclaration = "encoding='UTF-8'") print(d$value()) d = xmlOutputBuffer("bob", header = "", dtd = "foo.dtd") d$addTag("bob") cat(d$value()) } \keyword{file} \keyword{IO} XML/man/xmlNode.Rd0000644000176000001440000001053312160564604013420 0ustar ripleyusers\name{xmlNode} \alias{xmlNode} \alias{xmlTextNode} \alias{xmlPINode} \alias{xmlCDataNode} \alias{xmlCommentNode} \title{Create an XML node} \description{ These functions allow one to create XML nodes as are created in C code when reading XML documents. Trees of XML nodes can be constructed and integrated with other trees generated manually or with via the parser. } \usage{ xmlNode(name, ..., attrs=NULL, namespace="", namespaceDefinitions = NULL, .children = list(...)) xmlTextNode(value, namespace="", entities = XMLEntities, cdata = FALSE) xmlPINode(sys, value, namespace="") xmlCDataNode(...) xmlCommentNode(text) } \arguments{ \item{name}{The tag or element name of the XML node. This is what appears in the elements as \code{ .. }} \item{\dots}{The children nodes of this XML node. These can be objects of class \code{XMLNode} or arbitrary values that will be converted to a string to form an \code{XMLTextNode} object.} \item{.children}{an alternative mechanism to specifying the children which is useful for programmatic use when one has the children in an existing list. The \dots mechanism is for use when the children are specified directly and individually. } \item{attrs}{A named character vector giving the name, value pairs of attributes for this XML node.} \item{value}{This is the text that is to be used when forming an \code{XMLTextNode}.} \item{cdata}{a logical value which controls whether the text being used for the child node is to be first enclosed within a CDATA node to escape special characters such as \code{>} and \code{&}. } \item{namespace}{The XML namespace identifier for this node.} \item{namespaceDefinitions}{a collection of name space definitions, containing the prefixes and the corresponding URIs. This is most conveniently specified as a character vector whose names attribute is the vector of prefixes and whose values are the URIs. Alternatively, one can provide a list of name space definition objects such as those returned} \item{sys}{the name of the system for which the processing instruction is targeted. This is the value that appears in the \code{}} \item{text}{character string giving the contents of the comment.} \item{entities}{a character vector giving the mapping from special characters to their entity equivalent. This provides the character-expanded entity pairings of 'character = entity' , e.g. '<' = "lt" which are used to make the content valid XML so that it can be used within a text node. The text searched sequentially for instances of each character in the names and each instance is replaced with the corresponding '&entity;' } } \value{ An object of class \code{XMLNode}. In the case of \code{xmlTextNode}, this also inherits from \code{XMLTextNode}. The fields or slots that objects of these classes have include \code{name}, \code{attributes}, \code{children} and \code{namespace}. However, one should the accessor functions \code{\link{xmlName}}, \code{\link{xmlAttrs}}, \code{\link{xmlChildren}} and \code{\link{xmlNamespace}} } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{addChildren}} \code{\link{xmlTreeParse}} \code{\link{asXMLNode}} \code{\link{newXMLNode}} \code{\link{newXMLPINode}} \code{\link{newXMLCDataNode}} \code{\link{newXMLCommentNode}} } \examples{ # node named arg with two children: name and defaultValue # Both of these have a text node as their child. n <- xmlNode("arg", attrs = c(default="TRUE"), xmlNode("name", "foo"), xmlNode("defaultValue","1:10")) # internal C-level node. a = newXMLNode("arg", attrs = c(default = "TRUE"), newXMLNode("name", "foo"), newXMLNode("defaultValue", "1:10")) xmlAttrs(a) = c(a = 1, b = "a string") xmlAttrs(a) = c(a = 1, b = "a string", append = FALSE) newXMLNamespace(a, c("r" = "http://www.r-project.org")) xmlAttrs(a) = c("r:class" = "character") xmlAttrs(a[[1]]) = c("r:class" = "character") # Using a character vector as a namespace definitions x = xmlNode("bob", namespaceDefinitions = c(r = "http://www.r-project.org", omg = "http://www.omegahat.org")) } \keyword{file} XML/man/xmlNamespaceDefinitions.Rd0000644000176000001440000001006512030576631016622 0ustar ripleyusers\name{xmlNamespaceDefinitions} \alias{xmlNamespaceDefinitions} \alias{getDefaultNamespace} \alias{xmlNamespaces} \alias{xmlNamespaces<-} \alias{xmlNamespaces<-,XMLInternalNode-method} \alias{xmlNamespaces<-,XMLNode-method} \alias{coerce,NULL,XMLNamespaceDefinitions-method} \alias{coerce,XMLNamespace,character-method} \alias{coerce,XMLNamespaceDefinition,character-method} \alias{coerce,XMLNamespaceDefinitions,character-method} \alias{coerce,character,XMLNamespaceDefinitions-method} \title{Get definitions of any namespaces defined in this XML node} \description{ If the given node has any namespace definitions declared within it, i.e. of the form \code{xmlns:myNamespace="http://www.myNS.org"}, \code{xmlNamespaceDefinitions} provides access to these definitions. While they appear in the XML node in the document as attributes, they are treated differently by the parser and so do not show up in the nodes attributes via \code{\link{xmlAttrs}}. \code{getDefaultNamespace} is used to get the default namespace for the top-level node in a document. The \code{recursive} parameter allows one to conveniently find all the namespace definitions in a document or sub-tree without having to examine the file. This can be useful when working with XPath queries via \code{\link{getNodeSet}}. } \usage{ xmlNamespaceDefinitions(x, addNames = TRUE, recursive = FALSE, simplify = FALSE, ...) xmlNamespaces(x, addNames = TRUE, recursive = FALSE, simplify = FALSE, ...) getDefaultNamespace(doc, ns = xmlNamespaceDefinitions(doc, simplify = simplify), simplify = FALSE) } \arguments{ \item{x}{the \code{XMLNode} object in which to find any namespace definitions} \item{addNames}{a logical indicating whether to compute the names for the elements in the resulting list. The names are convenient, but one can avoid the (very small) overhead of computing these with this parameter.} \item{doc}{the XMLInternalDocument object obtained from a call to \code{\link{xmlParse}} } \item{recursive}{a logical value indicating whether to extract the namespace definitions for just this node (\code{FALSE}) or all of the descendant nodes as well (\code{TRUE}). If this is \code{TRUE}, all the namespace definitions are collected into a single "flat" list and so there may be duplicate names. } \item{simplify}{a logical value. If this is \code{TRUE}, a character vector of prefix-URI pairs is returned. This can be used directly in calls to functions such as \code{\link{xpathApply}} and \code{\link{getNodeSet}}. The default value of \code{FALSE} returns a list of name space definitions which also identify whether the definition is local to the particular node or inherited from an ancestor. } \item{ns}{the collection of namespaces. This is typically omitted but can be specified if it has been computed in an earlier step.} \item{\dots}{additional parameters for methods} } \value{ A list with as many elements as there are namespace definitions. Each element is an object of class XMLNameSpace, containing fields giving the local identifier, the associated defining URI and a logical value indicating whether the definition is local to this node. The name of each element is the prefix or alias used for that namespace definition, i.e. the value of the \code{id} field in the namespace definition. For default namespaces, i.e. those that have no prefix/alias, the name is \code{""}. } \references{\url{http://www.w3.org/XML}} \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlAttrs}} \code{\link{xmlGetAttr}} } \examples{ f = system.file("exampleData", "longitudinalData.xml", package = "XML") n = xmlRoot(xmlTreeParse(f)) xmlNamespaceDefinitions(n) xmlNamespaceDefinitions(n, recursive = TRUE) # Now using internal nodes. f = system.file("exampleData", "namespaces.xml", package = "XML") doc = xmlInternalTreeParse(f) n = xmlRoot(doc) xmlNamespaceDefinitions(n) xmlNamespaceDefinitions(n, recursive = TRUE) } \keyword{IO} \concept{XML} XML/man/xmlNamespace.Rd0000644000176000001440000000504511741563530014432 0ustar ripleyusers\name{xmlNamespace} \alias{xmlNamespace} \alias{xmlNamespace.XMLNode} \alias{xmlNamespace.XMLInternalNode} \alias{xmlNamespace.character} \alias{XMLNamespace-class} \alias{xmlNamespace<-} \alias{xmlNamespace<-,XMLInternalNode-method} \title{Retrieve the namespace value of an XML node.} \description{ Each XML node has a namespace identifier which is a string indicating in which DTD (Document Type Definition) the definition of that element can be found. This avoids the problem of having different document definitions using the same names for XML elements that have different meaning. To resolve the name space, i.e. i.e. find out to where the identifier points, one can use the expression \code{xmlNamespace(xmlRoot(doc))}. The class of the result is is an S3-style object of class \code{XMLNamespace}. } \usage{ xmlNamespace(x) xmlNamespace(x, ...) <- value } \arguments{ \item{x}{the object whose namespace is to be computed} \item{value}{the prefix for a namespace that is defined in the node or any of the ancestors.} \item{\dots}{additional arguments for setting the name space} } \value{ For non-root nodes, this returns a string giving the identifier of the name space for this node. For the root node, this returns a list with 2 elements: \item{id}{the identifier by which other nodes refer to this namespace.} \item{uri}{the URI or location that defines this namespace.} \item{local}{? (can't remember off-hand).} } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlName}} \code{\link{xmlChildren}} \code{\link{xmlAttrs}} \code{\link{xmlValue}} \code{\link{xmlNamespaceDefinitions}} } \examples{ doc <- xmlTreeParse(system.file("exampleData", "job.xml", package="XML")) xmlNamespace(xmlRoot(doc)) xmlNamespace(xmlRoot(doc)[[1]][[1]]) doc <- xmlInternalTreeParse(system.file("exampleData", "job.xml", package="XML")) # Since the first node, xmlRoot() will skip that, by default. xmlNamespace(xmlRoot(doc)) xmlNamespace(xmlRoot(doc)[[1]][[1]]) node <- xmlNode("arg", xmlNode("name", "foo"), namespace="R") xmlNamespace(node) doc = xmlParse('a = 1:10') node = xmlRoot(doc)[[1]][[1]] xmlNamespace(node) = "r" node doc = xmlParse('a = 1:10') node = xmlRoot(doc)[[1]][[1]] xmlNamespaces(node, set = TRUE) = c(omg = "http://www.omegahat.org") node } \keyword{file} XML/man/xmlName.Rd0000644000176000001440000000265611741563530013423 0ustar ripleyusers\name{xmlName} \alias{xmlName} \alias{xmlName<-} \alias{xmlName.XMLComment} \alias{xmlName.XMLNode} \alias{xmlName.XMLInternalNode} \title{ Extraces the tag name of an XMLNode object.} \description{ Each XMLNode object has an element or tag name introduced in the \code{} entry in an XML document. This function returns that name. We can also set that name using \code{xmlName(node) <- "name"} and the value can have an XML name space prefix, e.g. \code{"r:name"}. } \usage{ xmlName(node, full = FALSE) } \arguments{ \item{node}{The XMLNode object whose tag name is being requested.} \item{full}{a logical value indicating whether to prepend the namespace prefix, if there is one, or return just the name of the XML element/node. \code{TRUE} means prepend the prefix.} } \value{ A character vector of length 1 which is the \code{node$name} entry. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlChildren}}, \code{\link{xmlAttrs}}, \code{\link{xmlTreeParse}} } \examples{ fileName <- system.file("exampleData", "test.xml", package="XML") doc <- xmlTreeParse(fileName) xmlName(xmlRoot(doc)[[1]]) tt = xmlRoot(doc)[[1]] xmlName(tt) xmlName(tt) <- "bob" # We can set the node on an internal object also. n = newXMLNode("x") xmlName(n) xmlName(n) <- "y" xmlName(n) <- "r:y" } \keyword{file} XML/man/xmlHandler.Rd0000644000176000001440000000212411741563530014106 0ustar ripleyusers\name{xmlHandler} \alias{xmlHandler} \title{ Example XML Event Parser Handler Functions} \description{ A closure containing simple functions for the different types of events potentially called by the \link{xmlEventParse}, and some tag-specific functions to illustrate how one can add functions for specific DTDs and XML element types. Contains a local \link{list} which can be mutated by invocations of the closure's function. } \usage{ xmlHandler() } \value{ List containing the functions enumerated in the closure definition along with the \link{list}. } \author{Duncan Temple Lang} \note{This is just an example.} \seealso{\link{xmlEventParse}, \link{xmlTreeParse}} \examples{ \dontrun{ xmlURL <- "http://www.omegahat.org/Scripts/Data/mtcars.xml" xmlText <- paste(scan(xmlURL, what="", sep="\n"),"\n",collapse="\n") } xmlURL <- system.file("exampleData", "mtcars.xml", package="XML") xmlText <- paste(readLines(xmlURL), "\n", collapse="") xmlEventParse(xmlText, handlers = NULL, asText=TRUE) xmlEventParse(xmlText, xmlHandler(), useTagName=TRUE, asText=TRUE) } \keyword{file} \keyword{IO} XML/man/xmlGetAttr.Rd0000644000176000001440000000547211741563530014114 0ustar ripleyusers\name{xmlGetAttr} \alias{xmlGetAttr} \title{Get the value of an attribute in an XML node} \description{ This is a convenience function that retrieves the value of a named attribute in an XML node, taking care of checking for its existence. It also allows the caller to provide a default value to use as the return value if the attribute is not present. } \usage{ xmlGetAttr(node, name, default = NULL, converter = NULL, namespaceDefinition = character(), addNamespace = length(grep(":", name)) > 0) } %- maybe also `usage' for other objects documented here. \arguments{ \item{node}{the XML node} \item{name}{the name of the attribute} \item{default}{a value to use as the default return if the attribute is not present in the XML node. } \item{converter}{an optional function which if supplied is invoked with the attribute value and the value returned. This can be used to convert the string to an arbitrary value which is useful if it is, for example, a number. This is only called if the attribute exists within the node. In other words, it is not applied to the \code{default} value.} \item{namespaceDefinition}{a named character vector giving name space prefixes and URIs to use when resolving for the the attribute with a namespace. The values are used to compare the name space prefix used in the \code{name} given by the user to the name space definition in the node to ensure they match. This is important as we might ask for an attribute named \code{r:width} assuming that the prefix \code{r} corresponded to the URI \code{http://www.r-project.org}. However, there may be a name space prefix \code{r} defined on the node that points to a different URI and so this would be an erroneous match. } \item{addNamespace}{a logical value that indicates whether we should put the namespace prefix on the resulting name. This is passed on to \code{\link{xmlAttrs}} and so controls whether the resulting attribute names have the prefix attached. So one specifies \code{TRUE} for this argument if the attribute identifier has a namespace prefix. } } \details{ This just checks that the attribute list is non-NULL and that there is an element with the specified name. } \value{ If the attribute is present, the return value is a string which is the value of the attribute. Otherwise, the value of \code{default} is returned. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlAttrs}} } \examples{ node <- xmlNode("foo", attrs=c(a="1", b="my name")) xmlGetAttr(node, "a") xmlGetAttr(node, "doesn't exist", "My own default value") xmlGetAttr(node, "b", "Just in case") } \keyword{file} XML/man/xmlFlatListTree.Rd0000644000176000001440000001307712160564546015110 0ustar ripleyusers\name{xmlFlatListTree} \alias{xmlFlatListTree} \alias{xmlHashTree} \title{Constructors for trees stored as flat list of nodes with information about parents and children.} \description{ These (and related internal) functions allow us to represent trees as a simple, non-hierarchical collection of nodes along with corresponding tables that identify the parent and child relationships. This is different from representing a tree as a list of lists of lists ... in which each node has a list of its own children. In a functional language like R, it is not possible then for the children to be able to identify their parents. We use an environment to represent these flat trees. Since these are mutable without requiring the change to be reassigned, we can modify a part of the tree locally without having to reassign the top-level object. We can use either a list (with names) to store the nodes or a hash table/associative array that uses names. There is a non-trivial performance difference. } \usage{ xmlHashTree(nodes = list(), parents = character(), children = list(), env = new.env(TRUE, parent = emptyenv())) xmlFlatListTree(nodes = list(), parents = character(), children = list(), env = new.env(), n = 200) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{nodes}{ a collection of existing nodes that are to be added to the tree. These are used to initialize the tree. If this is specified, you must also specify \code{children} and \code{parents}. } \item{parents}{ the parent relationships for the nodes given by \code{nodes}.} \item{children}{the children relationships for the nodes given by \code{nodes}.} \item{env}{an environment in which the information for the tree will be stored. This is essentially the tree object as it allows us to modify parts of the tree without having to reassign the top-level object. Unlike most R data types, environments are mutable. } \item{n}{for \code{xmlFlatListTree}, this is used as the default size to allocate for the list containing the nodes} } \value{ An object of class XMLFlatTree which is specialized to \code{XMLFlatListTree} by the \code{xmlFlatListTree} function and \code{XMLHashTree} by the \code{xmlHashTree} function. Both objects are simply the environment which contains information about the tree elements and functions to access this information. An \code{xmlHashTree} object has an accessor method via \code{$} for accessing individual nodes within the tree. One can use the node name/identifier in an expression such as \code{tt$myNode} to obtain the element. The name of a node is either its XML node name or if that is already present in the tree, a machine generated name. One can find the names of all the nodes using the \code{objects} function since these trees are regular environments in R. Using the \code{all = TRUE} argument, one can also find the \dQuote{hidden} elements that make define the tree's structure. These are \code{.children} and \code{.parents}. The former is an (hashed) environment. Each element is identified by the node in the tree by the node's identifier (corresponding to the name of the node in the tree's environment). The value of that element is simply a character vector giving the identifiers of all of the children of that node. The \code{.parents} element is also an environemnt. Each element in this gives the pair of node and parent identifiers with the parent identifier being the value of the variable in the environment. In other words, we look up the parent of a node named 'kid' by retrieving the value of the variable 'kid' in the \code{.parents} environment of this hash tree. The function \code{.addNode} is used to insert a new node into the tree. The structure of this tree allows one to easily travers all nodes, navigate up the tree from a node via its parent. Certain tasks are more complex as the hierarchy is not implicit within a node. } \references{\url{http://www.w3.org/XML}} \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlTree}} \code{\link{xmlOutputBuffer}} \code{\link{xmlOutputDOM}} } \examples{ f = system.file("exampleData", "dataframe.xml", package = "XML") tr = xmlHashTree() xmlTreeParse(f, handlers = list(.startElement = tr[[".addNode"]])) tr # print the tree on the screen # Get the two child nodes of the dataframe node. xmlChildren(tr$dataframe) # Find the names of all the nodes. objects(tr) # Which nodes have children objects(tr$.children) # Which nodes are leaves, i.e. do not have children setdiff(objects(tr), objects(tr$.children)) # find the class of each of these leaf nodes. sapply(setdiff(objects(tr), objects(tr$.children)), function(id) class(tr[[id]])) # distribution of number of children sapply(tr$.children, length) # Get the first A node tr$A # Get is parent node. xmlParent(tr$A) f = system.file("exampleData", "allNodeTypes.xml", package = "XML") # Convert the document r = xmlInternalTreeParse(f, xinclude = TRUE) ht = as(r, "XMLHashTree") ht # work on the root node, or any node actually as(xmlRoot(r), "XMLHashTree") # Example of making copies of an XMLHashTreeNode object to create a separate tree. f = system.file("exampleData", "simple.xml", package = "XML") tt = as(xmlParse(f), "XMLHashTree") xmlRoot(tt)[[1]] xmlRoot(tt)[[1, copy = TRUE]] table(unlist(eapply(tt, xmlName))) # if any of the nodes had any attributes # table(unlist(eapply(tt, xmlAttrs))) } \keyword{IO} \concept{XML} XML/man/xmlEventParse.Rd0000644000176000001440000005173112160565602014613 0ustar ripleyusers\name{xmlEventParse} \alias{xmlEventParse} \title{ XML Event/Callback element-wise Parser} \description{ This is the event-driven or SAX (Simple API for XML) style parser which process XML without building the tree but rather identifies tokens in the stream of characters and passes them to handlers which can make sense of them in context. This reads and processes the contents of an XML file or string by invoking user-level functions associated with different components of the XML tree. These components include the beginning and end of XML elements, e.g \code{} and \code{} respectively, comments, CDATA (escaped character data), entities, processing instructions, etc. This allows the caller to create the appropriate data structure from the XML document contents rather than the default tree (see \link{xmlTreeParse}) and so avoids having the entire document in memory. This is important for large documents and where we would end up with essentially 2 copies of the data in memory at once, i.e the tree and the R data structure containing the information taken from the tree. When dealing with classes of XML documents whose instances could be large, this approach is desirable but a little more cumbersome to program than the standard DOM (Document Object Model) approach provided by \code{XMLTreeParse}. Note that \code{xmlTreeParse} does allow a hybrid style of processing that allows us to apply handlers to nodes in the tree as they are being converted to R objects. This is a style of event-driven or asynchronous calling In addition to the generic token event handlers such as "begin an XML element" (the \code{startElement} handler), one can also provide handler functions for specific tags/elements such as \code{} with handler elements with the same name as the XML element of interest, i.e. \code{"myTag" = function(x, attrs)}. When the event parser is reading text nodes, it may call the text handler function with different sub-strings of the text within the node. Essentially, the parser collects up n characters into a buffer and passes this as a single string the text handler and then continues collecting more text until the buffer is full or there is no more text. It passes each sub-string to the text handler. If \code{trim} is \code{TRUE}, it removes leading and trailing white space from the substring before calling the text handler. If the resulting text is empty and \code{ignoreBlanks} is \code{TRUE}, then we don't bother calling the text handler function. So the key thing to remember about dealing with text is that the entire text of a node may come in multiple separate calls to the text handler. A common idiom is to have the text handler concatenate the values it is passed in separate calls and to have the end element handler process the entire text and reset the text variable to be empty. } \usage{ xmlEventParse(file, handlers = xmlEventHandler(), ignoreBlanks = FALSE, addContext=TRUE, useTagName = TRUE, asText = FALSE, trim=TRUE, useExpat=FALSE, isURL = FALSE, state = NULL, replaceEntities = TRUE, validate = FALSE, saxVersion = 1, branches = NULL, useDotNames = length(grep("^\\\\.", names(handlers))) > 0, error = xmlErrorCumulator(), addFinalizer = NA) } \arguments{ \item{file}{the source of the XML content. This can be a string giving the name of a file or remote URL, the XML itself, a connection object, or a function. If this is a string, and \code{asText} is \code{TRUE}, the value is the XML content. This allows one to read the content separately from parsing without having to write it to a file. If \code{asText} is \code{FALSE} and a string is passed for \code{file}, this is taken as the name of a file or remote URI. If one is using the libxml parser (i.e. not expat), this can be a URI accessed via HTTP or FTP or a compressed local file. If it is the name of a local file, it can include \code{~}, environment variables, etc. which will be expanded by R. (Note this is not the case in S-Plus, as far as I know.) If a connection is given, the parser incrementally reads one line at a time by calling the function \code{\link[base]{readLines}} with the connection as the first argument (and \code{1} as the number of lines to read). The parser calls this function each time it needs more input. If invoking the \code{readLines} function to get each line is excessively slow or is inappropriate, one can provide a function as the value of \code{fileName}. Again, when the XML parser needs more content to process, it invokes this function to get a string. This function is called with a single argument, the maximum size of the string that can be returned. The function is responsible for accessing the correct connection(s), etc. which is typically done via lexical scoping/environments. This mechanism allows the user to control how the XML content is retrieved in very general ways. For example, one might read from a set of files, starting one when the contents of the previous file have been consumed. This allows for the use of hybrid connection objects. Support for connections and functions in this form is only provided if one is using libxml2 and not libxml version 1. } \item{handlers}{ a closure object that contains functions which will be invoked as the XML components in the document are encountered by the parser. The standard function or handler names are \code{startElement()}, \code{endElement()} \code{comment()}, \code{getEntity}, \code{entityDeclaration()}, \code{processingInstruction()}, \code{text()}, \code{cdata()}, \code{startDocument()}, and \code{endDocument()}, or alternatively and preferrably, these names prefixed with a '.', i.e. .startElement, .comment, ... The call signature for the entityDeclaration function was changed in version 1.7-0. Note that in earlier versions, the C routine did not invoke any R function and so no code will actually break. Also, we have renamed \code{externalEntity} to \code{getEntity}. These were based on the expat parser. The new signature is \code{c(name = "character", type = "integer", content = "", system = "character", public = "character" )} \code{name} gives the name of the entity being defined. The \code{type} identifies the type of the entity using the value of a C-level enumerated constant used in libxml2, but also gives the human-readable form as the name of the single element in the integer vector. The possible values are \code{"Internal_General"}, \code{"External_General_Parsed"}, \code{"External_General_Unparsed"}, \code{"Internal_Parameter"}, \code{"External_Parameter"}, \code{"Internal_Predefined"}. If we are dealing with an internal entity, the content will be the string containing the value of the entity. If we are dealing with an external entity, then \code{content} will be a character vector of length 0, i.e. empty. Instead, either or both of the system and public arguments will be non-empty and identify the location of the external content. \code{system} will be a string containing a URI, if non-empty, and \code{public} corresponds to the PUBLIC identifier used to identify content using an SGML-like approach. The use of PUBLIC identifiers is less common. } \item{ignoreBlanks}{a logical value indicating whether text elements made up entirely of white space should be included in the resulting `tree'. } \item{addContext}{ logical value indicating whether the callback functions in `handlers' should be invoked with contextual information about the parser and the position in the tree, such as node depth, path indices for the node relative the root, etc. If this is True, each callback function should support \dots. } \item{useTagName}{ a logical value. If this is \code{TRUE}, when the SAX parser signals an event for the start of an XML element, it will first look for an element in the list of handler functions whose name matches (exactly) the name of the XML element. If such an element is found, that function is invoked. Otherwise, the generic \code{startElement} handler function is invoked. The benefit of this is that the author of the handler functions can write node-specific handlers for the different element names in a document and not have to establish a mechanism to invoke these functions within the \code{startElement} function. This is done by the XML package directly. If the value is \code{FALSE}, then the \code{startElement} handler function will be called without any effort to find a node-specific handler. If there are no node-specific handlers, specifying \code{FALSE} for this parameter will make the computations very slightly faster. } \item{asText}{logical value indicating that the first argument, `file', should be treated as the XML text to parse, not the name of a file. This allows the contents of documents to be retrieved from different sources (e.g. HTTP servers, XML-RPC, etc.) and still use this parser.} \item{trim}{ whether to strip white space from the beginning and end of text strings. } % \item{restartCounter}{} \item{useExpat}{ a logical value indicating whether to use the expat SAX parser, or to default to the libxml. If this is TRUE, the library must have been compiled with support for expat. See \link{supportsExpat}. } \item{isURL}{ indicates whether the \code{file} argument refers to a URL (accessible via ftp or http) or a regular file on the system. If \code{asText} is TRUE, this should not be specified. } \item{state}{an optional S object that is passed to the callbacks and can be modified to communicate state between the callbacks. If this is given, the callbacks should accept an argument named \code{.state} and it should return an object that will be used as the updated value of this state object. The new value can be any S object and will be passed to the next callback where again it will be updated by that functions return value, and so on. If this not specified in the call to \code{xmlEventParse}, no \code{.state} argument is passed to the callbacks. This makes the interface compatible with previous releases. } \item{replaceEntities}{ logical value indicating whether to substitute entity references with their text directly. This should be left as False. The text still appears as the value of the node, but there is more information about its source, allowing the parse to be reversed with full reference information. } \item{saxVersion}{an integer value which should be either 1 or 2. This specifies which SAX interface to use in the C code. The essential difference is the number of arguments passed to the \code{startElement} handler function(s). Under SAX 2, in addition to the name of the element and the named-attributes vector, two additional arguments are provided. The first identifies the namespace of the element. This is a named character vector of length 1, with the value being the URI of the namespace and the name being the prefix that identifies that namespace within the document. For example, \code{xmlns:r="http://www.r-project.org"} would be passed as \code{c(r = "http://www.r-project.org")}. If there is no prefix because the namespace is being used as the default, the result of calling \code{\link[base]{names}} on the string is \code{""}. The second additional argument (the fourth in total) gives the collection of all the namespaces defined within this element. Again, this is a named character vector. } \item{validate}{ Currently, this has no effect as the libxml2 parser uses a document structure to do validation. a logical indicating whether to use a validating parser or not, or in other words check the contents against the DTD specification. If this is true, warning messages will be displayed about errors in the DTD and/or document, but the parsing will proceed except for the presence of terminal errors. } \item{branches}{a named list of functions. Each element identifies an XML element name. If an XML element of that name is encountered in the SAX stream, the stream is processed until the end of that element and an internal node (see \code{\link{xmlTreeParse}} and its \code{useInternalNodes} parameter) is created. The function in our branches list corresponding to this XML element is then invoked with the (internal) node as the only argument. This allows one to use the DOM model on a sub-tree of the entire document and thus use both SAX and DOM together to get the efficiency of SAX and the simpler programming model of DOM. Note that the branches mechanism works top-down and does not work for nested tags. If one specifies an element name in the \code{branches} argument, e.g. myNode, and there is a nested myNode instance within a branch, the branches handler will not be called for that nested instance. If there is an instance where this is problematic, please contact the maintainer of this package. One can cause the parser to collect a branch without identifying the node within the \code{branches} list. Specifically, within a regular start-element handler, one can return a function whose class is \code{SAXBranchFunction}. The SAX parser recognizes this and collects up the branch starting at the current node being processed and when it is complete, invokes this function. This allows us to dynamically determine which nodes to treat as branches rather than just matching names. This is necessary when a node name has different meanings in different parts of the XML hierarchy, e.g. dict in an iTunes song list. See the file \code{itunesSax2.R} inthe examples for an example of this. This is a two step process. In the future, we might make it so that the R function handling the start-element event could directly collect the branch and continue its operations without having to call another function asynchronously. } \item{useDotNames}{a logical value indicating whether to use the newer format for identifying general element function handlers with the '.' prefix, e.g. .text, .comment, .startElement. If this is \code{FALSE}, then the older format text, comment, startElement, ... are used. This causes problems when there are indeed nodes named text or comment or startElement as a node-specific handler are confused with the corresponding general handler of the same name. Using \code{TRUE} means that your list of handlers should have names that use the '.' prefix for these general element handlers. This is the preferred way to write new code. } \item{error}{a function that is called when an XML error is encountered. This is called with 6 arguments and is described in \code{\link{xmlTreeParse}}. } \item{addFinalizer}{a logical value or identifier for a C routine that controls whether we register finalizers on the intenal node.} } \details{ This is now implemented using the libxml parser. Originally, this was implemented via the Expat XML parser by Jim Clark (\url{http://www.jclark.com}). } \value{ The return value is the `handlers' argument. It is assumed that this is a closure and that the callback functions have manipulated variables local to it and that the caller knows how to extract this. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}} \author{Duncan Temple Lang} \note{ The libxml parser can read URLs via http or ftp. It does not require the support of \code{wget} as used in other parts of \R, but uses its own facilities to connect to remote servers. The idea for the hybrid SAX/DOM mode where we consume tokens in the stream to create an entire node for a sub-tree of the document was first suggested to me by Seth Falcon at the Fred Hutchinson Cancer Research Center. It is similar to the XML::Twig module in Perl by Michel Rodriguez. } \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlStopParser}} XMLParserContextFunction } \examples{ fileName <- system.file("exampleData", "mtcars.xml", package="XML") # Print the name of each XML tag encountered at the beginning of each # tag. # Uses the libxml SAX parser. xmlEventParse(fileName, list(startElement=function(name, attrs){ cat(name,"\n") }), useTagName=FALSE, addContext = FALSE) \dontrun{ # Parse the text rather than a file or URL by reading the URL's contents # and making it a single string. Then call xmlEventParse xmlURL <- "http://www.omegahat.org/Scripts/Data/mtcars.xml" xmlText <- paste(scan(xmlURL, what="",sep="\n"),"\n",collapse="\n") xmlEventParse(xmlText, asText=TRUE) } # Using a state object to share mutable data across callbacks f <- system.file("exampleData", "gnumeric.xml", package = "XML") zz <- xmlEventParse(f, handlers = list(startElement=function(name, atts, .state) { .state = .state + 1 print(.state) .state }), state = 0) print(zz) # Illustrate the startDocument and endDocument handlers. xmlEventParse(fileName, handlers = list(startDocument = function() { cat("Starting document\n") }, endDocument = function() { cat("ending document\n") }), saxVersion = 2) if(libxmlVersion()$major >= 2) { startElement = function(x, ...) cat(x, "\n") xmlEventParse(file(f), handlers = list(startElement = startElement)) # Parse with a function providing the input as needed. xmlConnection = function(con) { if(is.character(con)) con = file(con, "r") if(isOpen(con, "r")) open(con, "r") function(len) { if(len < 0) { close(con) return(character(0)) } x = character(0) tmp = "" while(length(tmp) > 0 && nchar(tmp) == 0) { tmp = readLines(con, 1) if(length(tmp) == 0) break if(nchar(tmp) == 0) x = append(x, "\n") else x = tmp } if(length(tmp) == 0) return(tmp) x = paste(x, collapse="") x } } ff = xmlConnection(f) xmlEventParse(ff, handlers = list(startElement = startElement)) # Parse from a connection. Each time the parser needs more input, it # calls readLines(, 1) xmlEventParse(file(f), handlers = list(startElement = startElement)) # using SAX 2 h = list(startElement = function(name, attrs, namespace, allNamespaces){ cat("Starting", name,"\n") if(length(attrs)) print(attrs) print(namespace) print(allNamespaces) }, endElement = function(name, uri) { cat("Finishing", name, "\n") }) xmlEventParse(system.file("exampleData", "namespaces.xml", package="XML"), handlers = h, saxVersion = 2) # This example is not very realistic but illustrates how to use the # branches argument. It forces the creation of complete nodes for # elements named and extracts the id attribute. # This could be done directly on the startElement, but this just # illustrates the mechanism. filename = system.file("exampleData", "branch.xml", package="XML") b.counter = function() { nodes <- character() f = function(node) { nodes <<- c(nodes, xmlGetAttr(node, "id"))} list(b = f, nodes = function() nodes) } b = b.counter() invisible(xmlEventParse(filename, branches = b["b"])) b$nodes() filename = system.file("exampleData", "branch.xml", package="XML") invisible(xmlEventParse(filename, branches = list(b = function(node) { print(names(node))}))) invisible(xmlEventParse(filename, branches = list(b = function(node) { print(xmlName(xmlChildren(node)[[1]]))}))) } ############################################ # Stopping the parser mid-way and an example of using XMLParserContextFunction. startElement = function(ctxt, name, attrs, ...) { print(ctxt) print(name) if(name == "rewriteURI") { cat("Terminating parser\n") xmlStopParser(ctxt) } } class(startElement) = "XMLParserContextFunction" endElement = function(name, ...) cat("ending", name, "\n") fileName = system.file("exampleData", "catalog.xml", package = "XML") xmlEventParse(fileName, handlers = list(startElement = startElement, endElement = endElement)) } \keyword{file} \keyword{IO} XML/man/xmlEventHandler.Rd0000644000176000001440000000257211741563530015117 0ustar ripleyusers\name{xmlEventHandler} \alias{xmlEventHandler} \title{Default handlers for the SAX-style event XML parser} \description{ This is a function that returns a closure instance containing the default handlers for use with \code{\link{xmlEventParse}} for parsing XML documents via the SAX-style parsing. } \usage{ xmlEventHandler() } \details{ These handlers simply build up the DOM tree and thus perform the same job as \code{xmlTreeParse}. It is here more as an example, reference and a base that users can extend. } \value{ The return value is a list of functions which are used as callbacks by the internal XML parser when it encounters certain XML elements/structures. These include items such as the start of an element, end of an element, processing instruction, text node, comment, entity references and definitions, etc. \item{startElement}{} \item{endElement}{} \item{processingInstruction}{} \item{text}{} \item{comment}{} \item{externalEntity}{} \item{entityDeclaration}{} \item{cdata}{} \item{dom}{} } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlEventParse}} \code{\link{xmlTreeParse}} } \examples{ xmlEventParse(system.file("exampleData", "mtcars.xml", package="XML"), handlers=xmlEventHandler()) } \keyword{file} \keyword{IO} XML/man/xmlElementsByTagName.Rd0000644000176000001440000000553211741563530016043 0ustar ripleyusers\name{xmlElementsByTagName} \alias{xmlElementsByTagName} \title{Retrieve the children of an XML node with a specific tag name} \description{ This returns a list of the children or sub-elements of an XML node whose tag name matches the one specified by the user. } \usage{ xmlElementsByTagName(el, name, recursive = FALSE) } \arguments{ \item{el}{the node whose matching children are to be retrieved.} \item{name}{a string giving the name of the tag to match in each of \code{el}'s children.} \item{recursive}{a logical value. If this is \code{FALSE}, the default, only the direct child nodes are searched. Alternatively, if this is \code{TRUE}, all sub-nodes at all levels are searched. In other words, we find all descendants of the node \code{el} and return a list with the nodes having the given name. The relationship between the nodes in the resulting list cannot be determined. This is a set of nodes. See the note. } } \details{ This does a simple matching of names and subsets the XML node's children list. If \code{recursive} is \code{TRUE}, then the function is applied recursively to the children of the given node and so on. } \note{ The addition of the \code{recursive} argument makes this function behave like the \code{getElementsByTagName} in other language APIs such as Java, C\#. However, one should be careful to understand that in those languages, one would get back a set of node objects. These nodes have references to their parents and children. Therefore one can navigate the tree from each node, find its relations, etc. In the current version of this package (and for the forseeable future), the node set is a \dQuote{copy} of the nodes in the original tree. And these have no facilities for finding their siblings or parent. Additionally, one can consume a large amount of memory by taking a copy of numerous large nodes using this facility. If one does not modify the nodes, the extra memory may be small. But modifying them means that the contents will be copied. Alternative implementations of the tree, e.g. using unique identifiers for nodes or via internal data structures from libxml can allow us to implement this function with different semantics, more similar to the other APIs. } \value{ A list containing those child nodes of \code{el} whose tag name matches that specified by the user. } \references{\url{http://www.w3.org/XML}, \url{http://www.omegahat.org/RSXML}, } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlChildren}} \code{\link{xmlTreeParse}} } \examples{ \dontrun{ doc <- xmlTreeParse("http://www.omegahat.org/Scripts/Data/mtcars.xml") xmlElementsByTagName(doc$children[[1]], "variable") } doc <- xmlTreeParse(system.file("exampleData", "mtcars.xml", package="XML")) xmlElementsByTagName(xmlRoot(doc)[[1]], "variable") } \keyword{IO} \keyword{file} XML/man/xmlElementSummary.Rd0000644000176000001440000000277011741563530015507 0ustar ripleyusers\name{xmlElementSummary} \alias{xmlElementSummary} \title{Frequency table of names of elements and attributes in XML content} \description{ This function is used to get an understanding of the use of element and attribute names in an XML document. It uses a collection of handler functions to gather the information via a SAX-style parser. The distribution of attribute names is done within each "type" of element (i.e. element name) } \usage{ xmlElementSummary(url, handlers = xmlElementSummaryHandlers(url)) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{url}{the source of the XML content, e.g. a file, a URL, a compressed file, or a character string} \item{handlers}{the list of handler functions used to collect the information. These are passed to the function \code{\link{xmlEventParse}} as the value for the \code{handlers} parameter. } } \value{ A list with two elements \item{nodeCounts}{a named vector of counts where the names are the (XML namespace qualified) element names in the XML content} \item{attributes}{a list with as many elements as there are elements in the \code{nodeCounts} element of the result. Each element of this sub-list gives the frequency counts for the different attributes seen within the XML elements with that name.} } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlEventParse}} } \examples{ xmlElementSummary(system.file("exampleData", "eurofxref-hist.xml.gz", package = "XML")) } \keyword{IO} \concept{XML} XML/man/xmlDOMApply.Rd0000644000176000001440000000430011741563530014154 0ustar ripleyusers\name{xmlDOMApply} \alias{xmlDOMApply} \title{Apply function to nodes in an XML tree/DOM.} \description{ This recursively applies the specified function to each node in an XML tree, creating a new tree, parallel to the original input tree. Each element in the new tree is the return value obtained from invoking the specified function on the corresponding element of the original tree. The order in which the function is recursively applied is "bottom-up". In other words, function is first applied to each of the children nodes first and then to the parent node containing the newly computed results for the children. } \usage{ xmlDOMApply(dom, func) } \arguments{ \item{dom}{a node in the XML tree or DOM on which to recursively apply the given function. This should not be the \code{XMLDocument} itself returned from \code{\link{xmlTreeParse}} but an object of class \code{XMLNode}. This is typically obtained by calling \code{\link{xmlRoot}} on the return value from \code{\link{xmlTreeParse}}. } \item{func}{ the function to be applied to each node in the XML tree. This is passed the node object for the and the return value is inserted into the new tree that is to be returned in the corresponding position as the node being processed. If the return value is \code{NULL}, this node is dropped from the tree.} } \details{ This is a native (C code) implementation that understands the structure of an XML DOM returned from \code{\link{xmlTreeParse}} and iterates over the nodes in that tree. } \value{ A tree that parallels the structure in the \code{dom} object passed to it. } \author{Duncan Temple Lang} \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \seealso{\link{xmlTreeParse}} \examples{ dom <- xmlTreeParse(system.file("exampleData","mtcars.xml", package="XML")) tagNames <- function() { tags <- character(0) add <- function(x) { if(inherits(x, "XMLNode")) { if(is.na(match(xmlName(x), tags))) tags <<- c(tags, xmlName(x)) } NULL } return(list(add=add, tagNames = function() {return(tags)})) } h <- tagNames() xmlDOMApply(xmlRoot(dom), h$add) h$tagNames() } \keyword{file} XML/man/xmlContainsEntity.Rd0000644000176000001440000000231711741563530015510 0ustar ripleyusers\name{xmlContainsEntity} \alias{xmlContainsEntity} \alias{xmlContainsElement} \title{Checks if an entity is defined within a DTD.} \description{ A DTD contains entity and element definitions. These functions test whether a DTD contains a definition for a particular named element or entity. } \usage{ xmlContainsEntity(name, dtd) xmlContainsElement(name, dtd) } \arguments{ \item{name}{ The name of the element or entity being queried.} \item{dtd}{ The DTD in which to search for the entry.} } \details{ See \code{\link{parseDTD}} for more information about DTDs, entities and elements. } \value{ A logical value indicating whether the entry was found in the appropriate list of entitiy or element definitions. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{parseDTD}}, \code{\link{dtdEntity}}, \code{\link{dtdElement}}, } \examples{ dtdFile <- system.file("exampleData", "foo.dtd", package="XML") foo.dtd <- parseDTD(dtdFile) # Look for entities. xmlContainsEntity("foo", foo.dtd) xmlContainsEntity("bar", foo.dtd) # Now look for an element xmlContainsElement("record", foo.dtd) } \keyword{file} XML/man/xmlClone.Rd0000644000176000001440000000353612160603543013574 0ustar ripleyusers\name{xmlClone} \alias{xmlClone} \alias{xmlClone,XMLInternalNode-method} \alias{xmlClone,XMLInternalDocument-method} \title{Create a copy of an internal XML document or node} \description{ These methods allow the caller to create a copy of an XML internal node. This is useful, for example, if we want to use the node or document in an additional context, e.g. put the node into another document while leaving it in the existing document. Similarly, if we want to remove nodes to simplify processing, we probably want to copy it so that the changes are not reflected in the original document. At present, the newly created object is not garbage collected. } \usage{ xmlClone(node, recursive = TRUE, addFinalizer = FALSE, ...) } \arguments{ \item{node}{the object to be cloned} \item{recursive}{a logical value indicating whether the entire object and all its descendants should be duplicated/cloned (\code{TRUE}) or just the top-level object (\code{FALSE})} \item{addFinalizer}{typically a logical value indicating whether to bring this new object under R's regular garbage collection. This can also be a reference to a C routine which is to be used as the finalizer. See \code{\link[base]{getNativeSymbolInfo}}. } \item{\dots}{additional parameters for methods} } \value{ A new R object representing the object. } \references{libxml2} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlParse}} \code{\link{newXMLNode}} \code{\link{newXMLDoc}} } \examples{ doc = xmlParse('DuncanTemple Lang') au = xmlRoot(doc)[[1]] # make a copy other = xmlClone(au) # change it slightly xmlAttrs(other) = c(id = "dtl2") # add it to the children addChildren(xmlRoot(doc), other) } \keyword{IO} \keyword{programming} \concept{XML} XML/man/xmlCleanNamespaces.Rd0000644000176000001440000000266612157346344015572 0ustar ripleyusers\name{xmlCleanNamespaces} \alias{xmlCleanNamespaces} \title{Remove redundant namespaces on an XML document} \description{ This is a convenience function that removes redundant repeated namespace definitions in an XML node. It removes namespace definitions in nodes where an ancestor node also has that definition. It does not remove unused namespace definitions. This uses the \code{NSCLEAN} option for \code{\link{xmlParse}} } \usage{ xmlCleanNamespaces(doc, options = integer(), out = docName(doc), ...) } \arguments{ \item{doc}{either the name of an XML documentor the XML content itself, or an already parsed document} \item{options}{options for the XML parser. \code{NSCLEAN} is added to this.} \item{\dots}{additional arguments passed to \code{\link{xmlParse}}} \item{out}{the name of a file to which to write the resulting XML document, or an empty character vector or logical value \code{FALSE} to avoid writing the new document. } } \value{ If the new document is written to a file, the name of the file is returned. Otherwise, the new parsed XML document is returned. } \references{ libxml2 documentation \url{http://xmlsoft.org/html/libxml-parser.html} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlParse}} } \examples{ f = system.file("exampleData", "redundantNS.xml", package = "XML") doc = xmlParse(f) print(doc) newDoc = xmlCleanNamespaces(f, out = FALSE) } \keyword{programming} \keyword{IO} XML/man/xmlChildren.Rd0000644000176000001440000000334511741563530014267 0ustar ripleyusers\name{xmlChildren} \alias{xmlChildren} \alias{xmlChildren<-} \alias{xmlChildren.XMLNode} \alias{xmlChildren.XMLInternalNode} \alias{xmlChildren.XMLInternalDocument} \alias{xmlChildren<-,XMLInternalNode-method} \alias{xmlChildren<-,ANY-method} \title{ Gets the sub-nodes within an XMLNode object. } \description{ These functions provide access to the children of the given XML node. The simple accessor returns a list of child XMLNode objects within an XMLNode object. The assignment operator (\code{xmlChildren<-}) sets the children of the node to the given value and returns the updated/modified node. No checking is currently done on the type and values of the right hand side. This allows the children of the node to be arbitrary R objects. This can be useful but means that one cannot rely on any structure in a node being present.. } \usage{ xmlChildren(x, addNames= TRUE, ...) } \arguments{ \item{x}{an object of class XMLNode.} \item{addNames}{a logical value indicating whether to add the XML names of the nodes as names of the R list. This is only relevant for XMLInternalNode objects as XMLNode objects in R already have R-level names. } \item{\dots}{additional arguments for the particular methods, e.g. \code{omitTypes} for an XMLInternalNode.} } \value{ A list whose elements are sub-nodes of the user-specified XMLNode. These are also of class XMLNode. } \references{\url{http://www.w3.org/XML}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlChildren}},\code{\link{xmlSize}}, \code{\link{xmlTreeParse}} } \examples{ fileName <- system.file("exampleData", "mtcars.xml", package="XML") doc <- xmlTreeParse(fileName) names(xmlChildren(doc$doc$children[["dataset"]])) } \keyword{file} XML/man/xmlAttrs.Rd0000644000176000001440000000573312160564432013635 0ustar ripleyusers\name{xmlAttrs} \alias{xmlAttrs} \alias{xmlAttrs<-} \alias{xmlAttrs.XMLElementDef} \alias{xmlAttrs<-,XMLNode} \alias{xmlAttrs<-,XMLInternalNode} \alias{xmlAttrs<-,XMLNode-method} \alias{xmlAttrs<-,XMLInternalElementNode-method} \alias{xmlAttrs.XMLNode} \alias{xmlAttrs.XMLInternalNode} \title{ Get the list of attributes of an XML node. } \description{ This returns a named character vector giving the name-value pairs of attributes of an XMLNode object which is part of an XML document. } \usage{ xmlAttrs(node, ...) 'xmlAttrs<-'(node, append = TRUE, suppressNamespaceWarning = getOption("suppressXMLNamespaceWarning", FALSE), value) } \arguments{ \item{node}{The \code{XMLNode} object whose attributes are to be extracted. } \item{append}{a logical value indicating whether to add the attributes in \code{value} to the existing attributes within the XML node, or to replace the set of any existing attributes with this new set, i.e. remove the existing ones and then set the attributes with the contents of \code{value}.} \item{...}{additional arguments for the specific methods. For XML internal nodes, these are \code{addNamespacePrefix} and \code{addNamespaceURLs}. These are both logical values and indicate whether to prepend the name of the attribute with the namespace prefix and also whether to return the namespace prefix and URL as a vector in the \code{namespaces} attribute.} \item{value}{a named character vector giving the new attributes to be added to the node.} \item{suppressNamespaceWarning}{see \code{\link{addChildren}}} } \value{ A named character vector, where the names are the attribute names and the elements are the corresponding values. This corresponds to the (attr, "value") pairs in the XML tag \code{ ') xmlAttrs(xmlRoot(doc)[[1]], TRUE, TRUE) xmlAttrs(xmlRoot(doc)[[1]], FALSE, TRUE) xmlAttrs(xmlRoot(doc)[[1]], TRUE, FALSE) xmlAttrs(xmlRoot(doc)[[1]], FALSE, FALSE) } \keyword{IO} \keyword{file} XML/man/xmlAttributeType.Rd0000644000176000001440000000202411741563530015335 0ustar ripleyusers\name{xmlAttributeType} \alias{xmlAttributeType} \title{The type of an XML attribute for element from the DTD} \description{ This examines the definition of the attribute, usually returned by parsing the DTD with \code{\link{parseDTD}} and determines its type from the possible values: Fixed, string data, implied, required, an identifier, an identifier reference, a list of identifier references, an entity, a list of entities, a name, a list of names, an element of enumerated set, a notation entity. } \usage{ xmlAttributeType(def, defaultType=FALSE) } \arguments{ \item{def}{the attribute definition object, usually retrieved from the DTD via \code{\link{parseDTD}}.} \item{defaultType}{whether to return the default value if this attribute is defined as being a value from an enumerated set.} } \value{ A string identifying the type for the sspecified attributed. } \references{\url{http://www.w3.org/XML}, \url{http://www.omegahat.org/RSXML}} \author{Duncan Temple Lang} \seealso{ \code{\link{parseDTD}} } \keyword{file} XML/man/xmlApply.Rd0000644000176000001440000000345511741563530013626 0ustar ripleyusers\name{xmlApply} \alias{xmlApply} \alias{xmlApply.XMLNode} \alias{xmlApply.XMLDocument} \alias{xmlApply.XMLDocumentContent} \alias{xmlSApply} \alias{xmlSApply.XMLNode} \alias{xmlSApply.XMLDocument} \alias{xmlSApply.XMLDocumentContent} \title{Applies a function to each of the children of an XMLNode} \description{ These methods are simple wrappers for the \code{\link{lapply}} and \code{\link{sapply}} functions. They operate on the sub-nodes of the XML node, and not on the fields of the node object itself. } \usage{ xmlApply(X, FUN, ...) \method{xmlApply}{XMLNode}(X, FUN, ...) \method{xmlApply}{XMLDocument}(X, FUN, ...) \method{xmlApply}{XMLDocumentContent}(X, FUN, ...) xmlSApply(X, FUN, ...) \method{xmlSApply}{XMLNode}(X, FUN, ...) \method{xmlSApply}{XMLDocument}(X, FUN, ...) } \arguments{ \item{X}{the \code{XMLNode} on whose children the regular \code{\link{apply}} or \code{\link{sapply}} is to be performed} \item{FUN}{the function to apply to each child node. This is passed directly to the relevant \code{\link{apply}} function.} \item{\dots}{additional arguments to be given to each invocation of \code{FUN}. This is passed directly to the relevant \code{\link{apply}} function.} } \value{ The result is that obtained from calling the \code{\link{apply}} or \code{\link{sapply}} on \code{xmlChildren(x)}. } \references{ \url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlChildren}} \code{\link{xmlRoot}} \code{\link{[.XMLNode}} \code{\link{sapply}} \code{\link{lapply}} } \examples{ doc <- xmlTreeParse(system.file("exampleData", "mtcars.xml", package="XML")) r <- xmlRoot(doc) xmlSApply(r[[2]], xmlName) xmlApply(r[[2]], xmlAttrs) xmlSApply(r[[2]], xmlSize) } \keyword{file} XML/man/toString.Rd0000644000176000001440000000212611741563530013623 0ustar ripleyusers\name{toString.XMLNode} \alias{toString.XMLNode} \title{Creates string representation of XML node} \description{ This creates a string from a hierarchical XML node and its children just as it prints on the console or one might see it in a document. } \usage{ \method{toString}{XMLNode}(x, ...) } \arguments{ \item{x}{an object of class \code{XMLNode}.} \item{\dots}{currently ignored} } \details{ This uses a textConnection object using the name .tempXMLOutput. Since this is global, it will overwrite any existing object of that name! As a result, this function cannot be used recursively in its present form. } \value{ A character vector with one element, that being the string corresponding to the XML node's contents. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}} \author{Duncan Temple Lang} \note{ This requires the Expat XML parser to be installed. } \seealso{ \code{\link{xmlNode}} \code{\link{xmlTreeParse}} } \examples{ x <- xmlRoot(xmlTreeParse(system.file("exampleData", "gnumeric.xml", package = "XML"))) toString(x) } \keyword{file} XML/man/toHTML.Rd0000644000176000001440000000254411741563530013125 0ustar ripleyusers\name{toHTML} \alias{toHTML} \alias{toHTML,vector-method} \alias{toHTML,matrix-method} \alias{toHTML,call-method} \title{Create an HTML representation of the given R object, using internal C-level nodes} \description{ This generic function and the associated methods are intended to create an HTML tree that represents the R object in some intelligent manner. For example, we represent a vector as a table and we represent a matrix also as a table. } \usage{ toHTML(x, context = NULL) } \arguments{ \item{x}{ the R object which is to be represented via an HTML tree } \item{context}{an object which provides context in which the node will be used. This is currently arbitrary. It may be used, for example, when creating HTML for R documentation and providing information about variabes and functions that are available on that page and so have internal links. } } \details{ It would be nicer if we could pass additional arguments to control whether the outer/parent layer is created, e.g. when reusing code for a vector for a row of a matrix. } \value{ an object of class \code{XMLInternalNode} } %\references{ } \author{Duncan Temple Lang} \seealso{ The \code{R2HTML} package. } \examples{ cat(as(toHTML(rnorm(10)), "character")) } \keyword{IO} \keyword{programming} \concept{XML} \concept{serialization} \concept{data exchange} XML/man/supportsExpat.Rd0000644000176000001440000000233111741563530014711 0ustar ripleyusers\name{supportsExpat} \alias{supportsExpat} \alias{supportsLibxml} \title{ Determines which native XML parsers are being used.} \description{ Use of the Gnome libxml and Expat parsers is supported in this R/S XML package, but both need not be used when compiling the package. These functions determine whether each is available in the underlying native code. } \usage{ supportsExpat() supportsLibxml() } \details{ One might to use different parsers to test validity of a document in different ways and to get different error messages. Additionally, one parser may be more efficient than the other. These methods allow one to write code in such a way that one parser is preferred and is used if it is available, but the other is used if the first is not available. } \value{ Returns \code{TRUE} if the corresponding library has been linked into the package. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlEventParse}} } \examples{ # use Expat if possible, otherwise libxml fileName <- system.file("exampleData", "mtcars.xml", package="XML") xmlEventParse(fileName, useExpat = supportsExpat()) } \keyword{file} XML/man/setXMLNamespace.Rd0000644000176000001440000000254212030410326014767 0ustar ripleyusers\name{setXMLNamespace} \alias{setXMLNamespace} \title{Set the name space on a node} \description{ This function sets the name space for an XML node, typically an internal node. We can use it to either define a new namespace and use that, or refer to a name space definition in an ancestor of the current node. } \usage{ setXMLNamespace(node, namespace, append = FALSE) } \arguments{ \item{node}{the node on which the name space is to be set} \item{namespace}{the name space to use for the node. This can be a name space prefix (string) defined in an ancestor node, or a named character vector of the form \code{c(prefix = URI)} that defines a new namespace on this node, or we can use a name space object created with \code{\link{newXMLNamespace}}.} \item{append}{currently ignored.} } \value{ An object of class \code{XMLNamespaceRef} which is a reference to the native/internal/C-level name space object. } %\references{} \author{ Duncan Temple Lang } \seealso{ \code{\link{newXMLNamespace}} \code{\link{removeXMLNamespaces}} } \examples{ # define a new namespace e = newXMLNode("foo") setXMLNamespace(e, c("r" = "http://www.r-project.org")) # use an existing namespace on an ancestor node e = newXMLNode("top", namespaceDefinitions = c("r" = "http://www.r-project.org")) setXMLNamespace(e, "r") e } \keyword{programming} XML/man/schema-class.Rd0000644000176000001440000000215212030420607014341 0ustar ripleyusers\name{schema-class} \docType{class} \alias{ExternalReference-class} \alias{SchemaAttributeGroupTable-class} \alias{SchemaAttributeTable-class} \alias{SchemaElementTable-class} \alias{SchemaNotationTable-class} \alias{SchemaTypeTable-class} \alias{libxmlTypeTable-class} \alias{xmlSchemaAttributeGroupRef-class} \alias{xmlSchemaAttributeRef-class} \alias{xmlSchemaElementRef-class} \alias{xmlSchemaNotationRef-class} \alias{xmlSchemaRef-class} \alias{xmlSchemaTypeRef-class} \alias{names,xmlSchemaRef-method} \alias{$,xmlSchemaRef-method} \alias{names,libxmlTypeTable-method} \alias{$,libxmlTypeTable-method} \alias{$<-,libxmlTypeTable-method} \alias{coerce,libxmlTypeTable,list-method} \alias{show,XMLSchemaValidationResults-method} \title{Classes for working with XML Schema} \description{ These are classes used when working with XML schema and using them to validate a document or querying the schema for its elements. The basic representation is an external/native object stored in the \code{ref} slot. } %\section{Slots}{ \describe{}} %\section{Methods}{} \seealso{ \code{\link{xmlSchemaValidate}} } \keyword{classes} XML/man/saveXML.Rd0000644000176000001440000001344011741563530013332 0ustar ripleyusers\name{saveXML} \alias{saveXML} \alias{saveXML.XMLInternalDocument} \alias{saveXML.XMLInternalDOM} \alias{saveXML.XMLInternalNode} \alias{saveXML.XMLNode} \alias{saveXML.XMLOutputStream} \alias{coerce,XMLInternalDocument,character-method} \alias{coerce,XMLInternalDOM,character-method} \alias{coerce,XMLInternalNode,character-method} \alias{saveXML,XMLFlatTree-method} \alias{saveXML,XMLInternalDocument-method} \alias{saveXML,XMLInternalDOM-method} \alias{saveXML,XMLInternalNode-method} \alias{saveXML,XMLNode-method} \alias{saveXML,XMLOutputStream-method} \alias{saveXML,HTMLInternalDocument-method} \title{Output internal XML Tree} \description{ Methods for writing the representation of an XML tree to a string or file. Originally this was intended to be used only for DOMs (Document Object Models) stored in internal memory created via \code{\link{xmlTree}}, but methods for \code{XMLNode}, \code{XMLInternalNode} and \code{XMLOutputStream} objects (and others) allow it to be generic for different representations of the XML tree. Note that the indentation when writing an internal C-based node (XMLInternalNode) may not be as expected if there are text nodes within the node. Also, not all the parameters are meaningful for all methods. For example, compressing when writing to a string is not supported. } \usage{ saveXML(doc, file=NULL, compression=0, indent=TRUE, prefix = '\n', doctype = NULL, encoding = getEncoding(doc), ...) \method{saveXML}{XMLInternalDocument}(doc, file=NULL, compression=0, indent=TRUE, prefix = '\n', doctype = NULL, encoding = getEncoding(doc), ...) \method{saveXML}{XMLInternalDOM}(doc, file=NULL, compression=0, indent=TRUE, prefix = '\n', doctype = NULL, encoding = getEncoding(doc), ...) \method{saveXML}{XMLNode}(doc, file=NULL, compression=0, indent=TRUE, prefix = '\n', doctype = NULL, encoding = getEncoding(doc), ...) \method{saveXML}{XMLOutputStream}(doc, file=NULL, compression=0, indent=TRUE, prefix = '\n', doctype = NULL, encoding = getEncoding(doc), ...) } \arguments{ \item{doc}{the document object representing the XML document.} \item{file}{the name of the file to which the contents of the XML nodes will be serialized.} \item{compression}{an integer value between 0 and 9 indicating the level of compression to use when saving the file. Higher values indicate increased compression and hence smaller files at the expense of computational time to do the compression and decompression.} \item{indent}{a logical value indicating whether to indent the nested nodes when serializing to the stream.} \item{prefix}{a string that is written to the stream/connection before the XML is output. If this is NULL, it is ignored. This allows us to put the XML introduction/preamble at the beginning of the document while allowing it to be omitted when we are outputting multiple "documents" within a single stream.} \item{doctype}{an object identifying the elements for the DOCTYPE in the output. This can be a string or an object of class \code{Doctype}.} \item{encoding}{a string indicating which encoding style to use. This is currently ignored except in the method in \code{Sxslt} for saving a document generated by applying an XSL style sheet to an XML document.} \item{\dots}{extra parameters for specific methods} } \details{ One can create an internal XML tree (or DOM) using \code{\link{newXMLDoc}} and \code{\link{newXMLNode}}. \code{saveXML} allows one to generate a textual representation of that DOM in human-readable and reusable XML format. \code{saveXML} is a generic function that allows one to call the rendering operation with either the top-level node of the DOM or of the document object (of class \code{XMLInternalDocument} that is used to accumulate the nodes and with which the developer adds nodes. } \value{ If \code{file} is not specified, the result is a character string containing the resulting XML content. If \code{file} is passed in the call, } \references{\url{http://www.w3.org/XML}, \url{http://www.omegahat.org/RSXML}} \author{Duncan Temple Lang} \seealso{ \code{\link{newXMLDoc}} \code{\link{newXMLNode}} \code{\link{xmlOutputBuffer}} \code{\link{xmlOutputDOM}} } \examples{ b = newXMLNode("bob") saveXML(b) f = tempfile() saveXML(b, f) doc = xmlInternalTreeParse(f) saveXML(doc) con <- xmlOutputDOM() con$addTag("author", "Duncan Temple Lang") con$addTag("address", close=FALSE) con$addTag("office", "2C-259") con$addTag("street", "Mountain Avenue.") con$addTag("phone", close=FALSE) con$addTag("area", "908", attrs=c(state="NJ")) con$addTag("number", "582-3217") con$closeTag() # phone con$closeTag() # address saveXML(con$value(), file="out.xml") # Work with entities f = system.file("exampleData", "test1.xml", package = "XML") doc = xmlRoot(xmlTreeParse(f)) outFile = tempfile() saveXML(doc, outFile) alt = xmlRoot(xmlTreeParse(outFile)) if(! identical(doc, alt) ) stop("Problems handling entities!") con = textConnection("test1.xml", "w") saveXML(doc, con) close(con) alt = get("test1.xml") identical(doc, alt) x = newXMLNode("a", "some text", newXMLNode("c", "sub text"), "more text") cat(saveXML(x), "\n") cat(as(x, "character"), "\n") # Showing the prefix parameter doc = newXMLDoc() n = newXMLNode("top", doc = doc) b = newXMLNode("bar", parent = n) # suppress the saveXML(doc, prefix = character()) # put our own comment in saveXML(doc, prefix = "") # or use a comment node. saveXML(doc, prefix = newXMLCommentNode("This is an alternative prefix")) } \keyword{IO} \keyword{file} XML/man/removeXMLNamespaces.Rd0000644000176000001440000000216612030203111015646 0ustar ripleyusers\name{removeXMLNamespaces} %\Rdversion{1.1} \alias{removeXMLNamespaces} \alias{removeXMLNamespaces,XMLInternalNode-method} \alias{removeXMLNamespaces,XMLInternalElementNode-method} \alias{removeXMLNamespaces,XMLInternalDocument-method} \title{Remove namespace definitions from a XML node or document} \description{ This function and its methods allow one to remove one or more XML namespace definitions on XML nodes within a document. } \usage{ removeXMLNamespaces(node, ..., all = FALSE, .els = unlist(list(...))) } \arguments{ \item{node}{an XMLInternalNode or XMLInternalDocument object} \item{\dots}{the names of the namespaces to remove or an XMLNamespaceRef object returned via \code{\link{getNodeSet}} or \code{\link{xpathApply}}.} \item{all}{a logical value indicating whether to remove all the namespace definitions on a node.} \item{.els}{a list which is sometimes a convenient way to specify the namespaces to remove.} } \value{ This function is used for its side-effects and changing the internal node.} \author{ Duncan Temple Lang } \seealso{ \code{\link{newXMLNamespace}} } %\examples{} \keyword{IO} XML/man/readSolrDoc.Rd0000644000176000001440000000216512122116423014203 0ustar ripleyusers\name{readSolrDoc} \alias{readSolrDoc} \alias{readSolrDoc,XMLInternalDocument-method} \alias{readSolrDoc,XMLInternalNode-method} \alias{readSolrDoc,character-method} \alias{readSolrDoc,AsIs-method} \title{Read the data from a Solr document} \description{ Solr documents are used to represent general data in a reasonably simple format made up of lists, integers, logicals, longs, doubles, dates, etc. each with an optional name. These correspond very naturally to R objects. } \usage{ readSolrDoc(doc, ...) } \arguments{ \item{doc}{the object containing the data. This can be the name of a file, a parsed XML document or an XML node.} \item{\dots}{additional parameters for the methods.} } \value{ An R object representing the data in the Solr document, typically a named vector or named list. } \references{ Lucene text search system. } \author{ Duncan Temple Lang } \seealso{ \code{\link{readKeyValueDB}}, \code{\link{xmlToList}}, \code{\link{xmlToDataFrame}}, \code{\link{xmlParse}} } \examples{ f = system.file("exampleData", "solr.xml", package = "XML") readSolrDoc(f) } \keyword{IO} \concept{Solr} XML/man/readKeyValueDB.Rd0000644000176000001440000000324412122116453014573 0ustar ripleyusers\name{readKeyValueDB} \alias{readKeyValueDB} \alias{readKeyValueDB,character-method} \alias{readKeyValueDB,XMLInternalDocument-method} \alias{readKeyValueDB,XMLInternalNode-method} \alias{readKeyValueDB,AsIs-method} \title{Read an XML property-list style document} \description{ This function and its methods reads an XML document that is in the format of name-value or key-value pairs made up of a \code{plist} and \code{dict} nodes, each of which is made up \code{key}, and value node pairs. These used to be used for property lists on OS X and can represetn arbitrary data relatively conveniently. } \usage{ readKeyValueDB(doc, ...) } \arguments{ \item{doc}{the object containing the data. This can be the name of a file, a parsed XML document or an XML node.} \item{\dots}{additional parameters for the methods. One can pass \code{dropComments} as a logical value to control whether comment nodes are processed or ignored (\code{TRUE}). } } \value{ An R object representing the data read from the XML content. This is typically a named list or vector where the names are the keys and the values are collected into an R "container". } \references{ Property lists. } \author{ Duncan Temple Lang } \seealso{ \code{\link{readSolrDoc}}, \code{\link{xmlToList}}, \code{\link{xmlToDataFrame}}, \code{\link{xmlParse}} } \examples{ if(file.exists("/usr/share/hiutil/Stopwords.plist")) { o = readKeyValueDB("/usr/share/hiutil/Stopwords.plist") } if(file.exists("/usr/share/java/Tools/Applet Launcher.app/Contents/Info.plist")) javaInfo = readKeyValueDB('/usr/share/java/Tools/Applet Launcher.app/Contents/Info.plist') } \keyword{IO} \concept{XML} XML/man/readHTMLTable.Rd0000644000176000001440000001656412160564363014376 0ustar ripleyusers\name{readHTMLTable} \alias{readHTMLTable} \alias{readHTMLTable,character-method} \alias{readHTMLTable,HTMLInternalDocument-method} \alias{readHTMLTable,XMLInternalElementNode-method} \alias{coerce,character,FormattedInteger-method} \alias{coerce,character,FormattedNumber-method} \alias{coerce,character,Percent-method} \alias{coerce,character,Currency-method} \alias{FormattedInteger-class} \alias{FormattedNumber-class} \alias{Percent-class} \title{Read data from one or more HTML tables} \description{ This function and its methods provide somewhat robust methods for extracting data from HTML tables in an HTML document. One can read all the tables in a document given by filename or URL, or having already parsed the document via \code{\link{htmlParse}}. Alternatively, one can specify an individual \code{} node in the document. The methods attempt to do some heuristic computations to determine the header labels for the columns, the name of the table, etc. } % xmlName(node) == "table" && ("thead" \%in\% names(node) || length(getNodeSet(node, "./tr[1]/th")) > 0) \usage{ readHTMLTable(doc, header = NA, colClasses = NULL, skip.rows = integer(), trim = TRUE, elFun = xmlValue, as.data.frame = TRUE, which = integer(), ...) } \arguments{ \item{doc}{the HTML document which can be a file name or a URL or an already parsed \code{HTMLInternalDocument}, or an HTML node of class \code{XMLInternalElementNode}, or a character vector containing the HTML content to parse and process.} \item{header}{either a logical value indicating whether the table has column labels, e.g. the first row or a \code{thead}, or alternatively a character vector giving the names to use for the resulting columns. This can be a logical vector and the individual values will be used in turn for the different tables. This allows the caller to control whether individual tables are processed as having column names. Alternatively, one can read a specific table via the \code{which} parameter and control how that is processed with a single scalar logical. } \item{colClasses}{either a list or a vector that gives the names of the data types for the different columns in the table, or alternatively a function used to convert the string values to the appropriate type. A value of \code{NULL} means that we should drop that column from the result. Note that currently the conversion occurs before the vectors are converted to a data frame (if \code{as.data.frame} is \code{TRUE}). As a result, to ensure that character vectors remain as characters and not factors, use \code{stringsAsFactors = FALSE}. This typically applies only to an individual table and so for the method applied to a \code{XMLInternalElementNode} object. In addition to the usual "integer", "numeric", "logical", "character", etc. names of R data types, one can use "FormattedInteger", "FormattedNumber" and "Percent" to specify that format of the values are numbers possibly with commas (,) separating groups of digits or a number followed by a percent sign (\%). This mechanism allows one to introduce new classes and specify these as targets in \code{colClasses}. } \item{skip.rows}{an integer vector indicating which rows to ignore.} \item{trim}{a logical value indicating whether to remove leading and trailing white space from the content cells.} \item{elFun}{a function which, if specified, is called when converting each cell. Currently, only the node is specified. In the future, we might additionally pass the index of the column so that the function has some context, e.g. whether the value is a row label or a regular value, or if the caller knows the type of columns. } \item{as.data.frame}{a logical value indicating whether to turn the resluting table(s) into data frames or leave them as matrices. } \item{which}{an integer vector identifying which tables to return from within the document. This applies to the method for the document, not individual tables.} \item{\dots}{currently additional parameters that are passed on to \code{\link{as.data.frame}} if \code{as.data.frame} is \code{TRUE}. We may change this to use these as additional arguments for calls to \code{elFun}.} } \value{ If the document (either by name or parsed tree) is specified, the return vale is a list of data frames or matrices. If a single HTML node is provided } \references{ HTML4.0 specification } \author{Duncan Temple Lang} \seealso{ \code{\link{htmlParse}} \code{\link{getNodeSet}} \code{\link{xpathSApply}} } \examples{ # u = "http://en.wikipedia.org/wiki/World_population" u = "http://en.wikipedia.org/wiki/List_of_countries_by_population" tables = readHTMLTable(u) names(tables) tables[[2]] # Print the table. Note that the values are all characters # not numbers. Also the column names have a preceding X since # R doesn't allow the variable names to start with digits. tmp = tables[[2]] # Let's just read the second table directly by itself. doc = htmlParse(u) tableNodes = getNodeSet(doc, "//table") tb = readHTMLTable(tableNodes[[2]]) # Let's try to adapt the values on the fly. # We'll create a function that turns a th/td node into a val tryAsInteger = function(node) { val = xmlValue(node) ans = as.integer(gsub(",", "", val)) if(is.na(ans)) val else ans } tb = readHTMLTable(tableNodes[[2]], elFun = tryAsInteger) tb = readHTMLTable(tableNodes[[2]], elFun = tryAsInteger, colClasses = c("character", rep("integer", 9))) zz = readHTMLTable("http://www.inflationdata.com/Inflation/Consumer_Price_Index/HistoricalCPI.aspx") if(any(i <- sapply(zz, function(x) if(is.null(x)) 0 else ncol(x)) == 14)) { # guard against the structure of the page changing. zz = zz[[which(i)[1]]] # 4th table # convert columns to numeric. Could use colClasses in the call to readHTMLTable() zz[-1] = lapply(zz[-1], function(x) as.numeric(gsub(".* ", "", as.character(x)))) matplot(1:12, t(zz[-c(1, 14)]), type = "l") } # From Marsh Feldman on R-help doc <- "http://www.nber.org/cycles/cyclesmain.html" # The main table is the second one because it's embedded in the page table. table <- getNodeSet(htmlParse(doc),"//table") [[2]] xt <- readHTMLTable(table, header = c("peak","trough","contraction", "expansion","trough2trough","peak2peak"), colClasses = c("character","character","character", "character","character","character"), trim = TRUE, stringsAsFactors = FALSE ) if(FALSE) { # Here is a totally different way of reading tables from HTML documents. # The data are formatted using a PRE and so can be read via read.table u = "http://tidesonline.nos.noaa.gov/data_read.shtml?station_info=9414290+San+Francisco,+CA" h = htmlParse(u) p = getNodeSet(h, "//pre") con = textConnection(xmlValue(p[[2]])) tides = read.table(con) } if(require(RCurl) && url.exists("http://www.omegahat.org/RCurl/testPassword/table.html")) { tt = getURL("http://www.omegahat.org/RCurl/testPassword/table.html", userpwd = "bob:duncantl") readHTMLTable(tt) } } \keyword{IO} \keyword{data} XML/man/readHTMLList.Rd0000644000176000001440000000346512122133126014241 0ustar ripleyusers\name{readHTMLList} \alias{readHTMLList} \alias{readHTMLList,HTMLInternalDocument-method} \alias{readHTMLList,XMLInternalNode-method} \alias{readHTMLList,character-method} \title{Read data in an HTML list or all lists in a document} \description{ This function and its methods are somewhat similar to \code{\link{readHTMLTable}} but read the contents of lists in an HTML document. We can specify the URL of the document or an already parsed document or an individual node within the document. } \usage{ readHTMLList(doc, trim = TRUE, elFun = xmlValue, which = integer(), ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{doc}{the URL of the document or the parsed HTML document or an individual node.} \item{trim}{a logical value indicating whether we should remove leading and trailing white space in each list item when returning it} \item{elFun}{a function that is used to process each list item node (\code{li}). This provides an opportunity to customize how each node is processed, for example accessing attributes on the list item or on its contents such as links in the items.} \item{which}{an index or name which or vector of same which identifies which list nodes to process in the overall document. This is for subsetting particular lists rather than processing them all.} \item{\dots}{additional arguments passed to \code{\link{htmlParse}} and for the specific methods.} } \value{ A list of character vectors or lists, with one element for each list in the document. If only one list is being read (by specifying \code{which} as a single identifier), that is returned as is. } \author{ Duncan Temple Lang } \seealso{ \code{\link{readHTMLTable}} } \examples{ readHTMLList("http://www.omegahat.org") } \keyword{IO} \keyword{programming} XML/man/processXInclude.Rd0000644000176000001440000000375411741563530015134 0ustar ripleyusers\name{processXInclude} \alias{processXInclude} \alias{processXInclude.list} \alias{processXInclude.XMLInternalDocument} \alias{processXInclude.XMLInternalElement} \title{Perform the XInclude substitutions} \description{ This function and its methods process the XInclude directives within the document of the form \code{\%.3f,\%.3f,0", long, lat) f = newXMLNode("Folder") parseXMLAndAdd(txt, f) xmlSize(f) \dontrun{ # this version is much slower as i) we don't vectorize the # creation of the XML nodes, and ii) the parsing of the XML # as a string is very fast as it is done in C. f = newXMLNode("Folder") mapply(function(a, b) { newXMLNode("Placemark", newXMLNode("Point", newXMLNode("coordinates", paste(a, b, "0", collapse = ","))), parent = f) }, long, lat) xmlSize(f) o = c("dog", "cat") node = parseXMLAndAdd(o, nsDefs = c("http://cran.r-project.org", omg = "http://www.omegahat.org")) xmlNamespace(node[[1]]) xmlNamespace(node[[2]]) tt = newXMLNode("myTop") node = parseXMLAndAdd(o, tt, nsDefs = c("http://cran.r-project.org", omg = "http://www.omegahat.org")) tt } } \keyword{IO} XML/man/parseURI.Rd0000644000176000001440000000334011741563530013503 0ustar ripleyusers\name{parseURI} \alias{parseURI} \alias{URI-class} \alias{coerce,URI,character-method} \title{Parse a URI string into its elements} \description{ This breaks a URI given as a string into its different elements such as protocol/scheme, host, port, file name, query. This information can be used, for example, when constructing URIs relative to a base URI. The return value is an S3-style object of class \code{URI}. This function uses libxml routines to perform the parsing. } \usage{ parseURI(uri) } \arguments{ \item{uri}{a single string} } \value{ A list with 8 elements \item{scheme}{the name of the protocol being used, http, ftp as a string.} \item{authority}{a string represeting a rarely used aspect of URIs} \item{server}{a string identifying the host, e.g. www.omegahat.org} \item{user}{a string giving the name of the user, e.g. in FTP "ftp://duncan@www.omegahat.org", this would yield "duncan"} \item{path}{a string identifying the path of the target file} \item{query}{the CGI query part of the string, e.g. the bit after '?' of the form \code{name=value&name=value}} \item{fragment}{a string giving the coo} \item{port}{an integer identifying the port number on which the connection is to be made} } \seealso{ \code{\link{getRelativeURL}} } \examples{ parseURI("http://www.omegahat.org:8080/RCurl/index.html") parseURI("ftp://duncan@www.omegahat.org:8080/RCurl/index.html") parseURI("ftp://duncan@www.omegahat.org:8080/RCurl/index.html#my_anchor") as(parseURI("http://duncan@www.omegahat.org:8080/RCurl/index.html#my_anchor"), "character") as(parseURI("ftp://duncan@www.omegahat.org:8080/RCurl/index.html?foo=1&bar=axd"), "character") } \keyword{IO} \concept{URI} \concept{Web} XML/man/parseDTD.Rd0000644000176000001440000001021011741563530013451 0ustar ripleyusers\name{parseDTD} \alias{parseDTD} \title{Read a Document Type Definition (DTD)} \description{ Represents the contents of a DTD as a user-level object containing the element and entity definitions. } \usage{ parseDTD(extId, asText=FALSE, name="", isURL=FALSE, error = xmlErrorCumulator()) } \arguments{ \item{extId}{The name of the file containing the DTD to be processed.} \item{asText}{logical indicating whether the value of `extId' is the name of a file or the DTD content itself. Use this when the DTD is read as a character vector, before being parsed and handed to the parser as content only.} \item{name}{Optional name to provide to the parsing mechanism.} \item{isURL}{A logical value indicating whether the input source is to be considred a URL or a regular file or string containing the XML.} \item{error}{an R function that is called when an error is encountered. This can report it and continue or terminate by raising an error in R. See the error parameter for \code{link{xmlTreeParse}}.} } \details{ Parses and converts the contents of the DTD in the specified file into a user-level object containing all the information about the DTD. } \value{ A list with two entries, one for the entities and the other for the elements defined within the DTD. \item{entities}{a named list of the entities defined in the DTD. Each entry is indexed by the name of the corresponding entity. Each is an object of class \code{XMLEntity} or alternatively \code{XMLExternalEntity} if the entity refers to an external definition. The fields of these types of objects are \itemize{ \item{name}{the name of the entity by which users refer to it.} \item{content}{the expanded value or definition of the entity} \item{original}{the value of the entity, but with references to other entities not expanded, but maintained in symbolic form.} } } \item{elements}{a named list of the elements defined in the DTD, with the name of each element being the identifier of the element being defined. Each entry is an object of class \code{XMLElementDef} which has 4 fields. \itemize{ \item{name}{the name of the element.} \item{type}{a named integer indicating the type of entry in the DTD, usually either \code{element} or \code{mixed}. The name of the value is a user-level type. The value is used for programming, both internally and externally. } \item{contents}{a description of the elements that can be nested within this element. This is an object of class \code{XMLElementContent} or one of its specializations - \code{XMLSequenceContent}, \code{XMLOrContent}. Each of these encodes the number of such elements permitted (one, one or more, zero or one, or zero or more); the type indicating whether the contents consist of a single element type, an ordered sequence of elements, or one of a set of elements. Finally, the actual contents description is described in the \code{elements} field. This is a list of one or more \code{XMLElementContent}, \code{XMLSequenceContent} and \code{XMLOrContent} objects. } \item{attributes}{a named list of the attributes defined for this element in the DTD. Each element is of class \code{XMLAttributeDef} which has 4 fields. \item{name}{name of the attribute, i.e. the left hand side} \item{type}{the type of the value, e.g. an CDATA, Id, Idref(s), Entity(s), NMToken(s), Enumeration, Notation} \item{defaultType}{the defined type, one of None, Implied, Fixed or Required.} \item{defaultValue}{the default value if it is specified, or the enumerated values as a character vector, if the type is Enumeration.} } } } } \references{ \url{http://www.w3.org} } \author{Duncan Temple Lang } \note{Needs libxml (currently version 1.8.7) from \url{}} \section{WARNING}{Errors in the DTD are stored as warnings for programmatic access.} \seealso{\code{\link{xmlTreeParse}}, WritingXML.html in the distribution.} \examples{ dtdFile <- system.file("exampleData", "foo.dtd",package="XML") parseDTD(dtdFile) txt <- readLines(dtdFile) txt <- paste(txt, collapse="\n") d <- parseDTD(txt, asText=TRUE) \dontrun{ url <- "http://www.omegahat.org/XML/DTDs/DatasetByRecord.dtd" d <- parseDTD(url, asText=FALSE) } } \keyword{file} \keyword{IO} XML/man/newXMLNamespace.Rd0000644000176000001440000000327112030203162014763 0ustar ripleyusers\name{newXMLNamespace} \alias{newXMLNamespace} \title{Add a namespace definition to an XML node} \description{ This function, and associated methods, define a name space \code{prefix = URI} combination for the given XML node. It can also optionally make this name space the default namespace for the node. } \usage{ newXMLNamespace(node, namespace, prefix = names(namespace), set = FALSE) } \arguments{ \item{node}{the XML node for which the name space is to be defined.} \item{namespace}{the namespace(s). This can be a simple character vector giving the URI, a named character vector giving the prefix = URI pairs, with the prefixes being the names of the character vector, or one or more (a list) of \code{XMLNamespace} objects, e.g. returned from a call to \code{\link{xmlNamespaceDefinitions}}} \item{prefix}{ the prefixes to be associated with the URIs given in \code{namespace}. } \item{set}{ a logical value indicating whether to set the namespace for this node to this newly created name space definition. } } \value{ An name space definition object whose class corresponds to the type of XML node given in \code{node}. } \note{ Currently, this only applies to XMLInternalNodes. This will be rectified shortly and apply to RXMLNode and its non-abstract classes. } \references{ ~put references to the literature/web site here ~ } \author{Duncan Temple Lang} \seealso{ Constructors for different XML node types - \code{newXMLNode} \code{xmlNode}. \code{\link{newXMLNamespace}}. } \examples{ foo = newXMLNode("foo") ns = newXMLNamespace(foo, "http://www.r-project.org", "r") as(ns, "character") } \keyword{IO} \keyword{programming} \concept{XML} XML/man/newXMLDoc.Rd0000644000176000001440000003557212160532112013611 0ustar ripleyusers% insert facilities \name{newXMLDoc} \alias{newXMLDoc} \alias{newHTMLDoc} \alias{newXMLNode} \alias{newXMLPINode} \alias{newXMLCDataNode} \alias{newXMLCommentNode} \alias{newXMLTextNode} \alias{newXMLDTDNode} \alias{xmlDoc} \alias{coerce,vector,XMLInternalNode-method} \title{Create internal XML node or document object} \description{ These are used to create internal `libxml' nodes and top-level document objects that are used to write XML trees. While the functions are available, their direct use is not encouraged. Instead, use \code{\link{xmlTree}} as the functions need to be used within a strict regime to avoid corrupting C level structures. \code{xmlDoc} creates a new XMLInternalDocument object by copying the given node and all of its descendants and putting them into a new document. This is useful when we want to work with sub-trees with general tools that work on documents, e.g. XPath queries. \code{newXMLDoc} allows one to create a regular XML node with a name and attributes. One can provide new namespace definitions via \code{namespaceDefinitions}. While these might also be given in the attributes in the slightly more verbose form of \code{c('xmlns:prefix' = 'http://...')}, the result is that the XML node does not interpret that as a namespace definition but merely an attribute with a name 'xmlns:prefix'. Instead, one should specify the namespace definitions via the \code{namespaceDefinitions} parameter. In addition to namespace definitions, a node name can also have a namespace definition. This can be specified in the \code{name} argument as \code{prefix:name} and \code{newXMLDoc} will do the right thing in separating this into the namespace and regular name. Alternatively, one can specify a namespace separately via the \code{namespace} argument. This can be either a simple name or an internal namespace object defined earlier. How do we define a default namespace? } \usage{ xmlDoc(node, addFinalizer = TRUE) newXMLDoc(dtd = "", namespaces=NULL, addFinalizer = TRUE, name = character(), node = NULL, isHTML = FALSE) newHTMLDoc(dtd = "loose", addFinalizer = TRUE, name = character(), node = newXMLNode("html", newXMLNode("head", addFinalizer = FALSE), newXMLNode("body", addFinalizer = FALSE), addFinalizer = FALSE)) newXMLNode(name, ..., attrs = NULL, namespace = character(), namespaceDefinitions = character(), doc = NULL, .children = list(...), parent = NULL, at = NA, cdata = FALSE, suppressNamespaceWarning = getOption("suppressXMLNamespaceWarning", FALSE), sibling = NULL, addFinalizer = NA, noNamespace = length(namespace) == 0 && !missing(namespace), fixNamespaces = c(dummy = TRUE, default = TRUE)) newXMLTextNode(text, parent = NULL, doc = NULL, cdata = FALSE, escapeEntities = is(text, "AsIs"), addFinalizer = NA) newXMLCDataNode(text, parent = NULL, doc = NULL, at = NA, sep = "\n", addFinalizer = NA) newXMLCommentNode(text, parent = NULL, doc = NULL, at = NA, addFinalizer = NA) newXMLPINode(name, text, parent = NULL, doc = NULL, at = NA, addFinalizer = NA) newXMLDTDNode(nodeName, externalID = character(), systemID = character(), doc = NULL, addFinalizer = NA) } \arguments{ \item{node}{a \code{XMLInternalNode} object that will be copied to create a subtree for a new document.} \item{dtd}{the name of the DTD to use for the XML document. Currently ignored!} \item{namespaces}{a named character vector with each element specifying a name space identifier and the corresponding URI for that namespace that are to be declared and used in the XML document, \\ e.g. \code{c(shelp = "http://www.omegahat.org/XML/SHelp")}} \item{addFinalizer}{a logical value indicating whether the default finalizer routine should be registered to free the internal xmlDoc when R no longer has a reference to this external pointer object. This can also be the name of a C routine or a reference to a C routine retrieved using \code{\link[base]{getNativeSymbolInfo}}. } \item{name}{the tag/element name for the XML node and the for a Processing Instruction (PI) node, this is the "target", e.g. the identifier for the system for whose attention this PI node is intended.} \item{...}{the children of this node. These can be other nodes created earlier or R strings that are converted to text nodes and added as children to this newly created node.} \item{attrs}{a named list of name-value pairs to be used as attributes for the XML node. One should not use this argument to define namespaces, i.e. attributes of the form \code{xmlns:prefix='http:/...'}. Instead, such definitions should be specified ideally via the \code{namespaceDefinitions} argument, or even the \code{namespace} argument. The reason is that namespace definitions are special attributes that are shared across nodes wherease regular attributes are particular to a node. So a namespace needs to be explicitly defined so that the XML representation can recognize it as such. } \item{namespace}{a character vector specifying the namespace for this new node. Typically this is used to specify i) the prefix of the namespace to use, or ii) one or more namespace definitions, or iii) a combination of both. If this is a character vector with a) one element and b) with an empty \code{names} attribute and c) whose value does not start with \code{http:/} or \code{ftp:/}, then it is assumed that the value is a namespace prefix for a namespace defined in an ancestor node. To be able to resolve this prefix to a namespace definition, \code{parent} must be specified so that we can traverse the chain of ancestor nodes. However, if c) does not hold, i.e. the string starts with \code{http:/} or \code{ftp:/}, then we take this single element to be a namespace definition and the since it has no name b), this is the definition for the default namespace for this new node, i.e. corresponding to \code{xmlns='http:/...'}. It is cumbersome to specify \code{""} as a name for an element in a character vector (as \code{c('' = 'value') gives an unnecessary error!}. Elements with names are expanded to namespace definitions with the name as the prefix and the value as the namespace URI. } \item{doc}{the \code{XMLInternalDocument} object created with \code{newXMLDoc} that is used to root the node.} \item{.children}{a list containing XML node elements or content. This is an alternative form of specifying the child nodes than \dots which is useful for programmatic interaction when the "sub"-content is already in a list rather than a loose collection of values.} \item{text}{the text content for the new XML node} \item{nodeName}{the name of the node to put in the DOCTYPE element that will appear as the top-most node in the XML document.} \item{externalID}{the PUBLIC identifier for the document type. This is a string of the form \code{A//B//C//D}. A is either + or -; B identifies the person or insitution that defined the format (i.e. the "creator"); C is the name of the format; and language is an encoding for the language that comes from the ISO 639 document.} \item{systemID}{the SYSTEM identifier for the DTD for the document. This is a URI} \item{namespaceDefinitions}{a character vector or a list with each element being a string. These give the URIs identifying the namespaces uniquely. The elements should have names which are used as prefixes. A default namespace has "" as the name. This argument can be used to remove any ambiguity that arises when specifying a single string with no names attribute as the value for \code{namespace}. The values here are used only for defining new namespaces and not for determining the namespace to use for this particular node. } \item{parent}{the node which will act as the parent of this newly created node. This need not be specified and one can add the new node to another node in a separate operation via \code{\link{addChildren}}.} \item{sibling}{if this is specified (rather than \code{parent}) this should be an \code{XMLInternalNode} and the new node is added as a sibling of this node, after this node, i.e. to the right. This is just a convenient form of \code{parent = xmlParent(node)}.} \item{cdata}{a logical value indicating whether to enclose the text within a CDATA node (\code{TRUE}) or not (\code{FALSE}). This is a convenience mechanism to avoid having to create the text node and then the CDATA node. If one is not certain what characters are in the text, it is useful to use \code{TRUE} to ensure that they are \dQuote{escaped}. It is an argument for \code{newXMLNode} as the child nodes can be given as simple strings and are converted to text nodes. This \code{cdata} value is passed to the calls to create these text nodes and so controls whether they are enclosed within CDATA nodes. } \item{suppressNamespaceWarning}{see \code{\link{addChildren}}} \item{at}{this allows one to control the position in the list of children at which the node should be added. The default means at the end and this can be any position from 0 to the current number of children.} \item{sep}{when adding text nodes, this is used as an additional separator text to insert between the specified strings.} \item{escapeEntities}{a logical value indicating whether to mark the internal text node in such a way that protects characters in its contents from being escaped as entities when being serialized via \code{\link{saveXML}}} \item{noNamespace}{a logical value that allows the caller to specify that the new node has no namespace. This can avoid searching parent and ancestor nodes up the tree for the default namespace.} \item{isHTML}{a logical value that indicates whether the XML document being created is HTML or generic XML. This helps to create an object that is identified as an HTML document.} \item{fixNamespaces}{a logical vector controlling how namespaces in child nodes are to be processed. The two entries should be named \code{dummy} and \code{default}. The \code{dummy} element controls whether we process child nodes that have a namespace which was not defined when the node was created. These are created as \dQuote{dummy} namespaces and can be resolved now that the parent node is defined and the name space may be defined. When we know it is not yet defined, but will be defined in an ancestor node, we can turn off this processing with a value of \code{FALSE}. The \code{default} element controls how we process the child nodes and give them the default name space defined in the parent or ancestor nodes.} } \details{ These create internal C level objects/structure instances that can be added to a libxml DOM and subsequently inserted into other document objects or ``serialized'' to textual form. } \value{ Each function returns an R object that points to the C-level structure instance. These are of class \code{XMLInternalDocument} and \code{XMLInternalNode}, respectively } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}, \url{http://www.omegahat.org}} \author{ Duncan Temple Lang } \note{These functions are used to build up an internal XML tree. This can be used in the Sxslt package (\url{http://www.omegahat.org/Sxslt}) when creating content in R that is to be dynamically inserted into an XML document.} \seealso{ \code{\link{xmlTree}} \code{saveXML} } \examples{ doc = newXMLDoc() # Simple creation of an XML tree using these functions top = newXMLNode("a") newXMLNode("b", attrs = c(x = 1, y = 'abc'), parent = top) newXMLNode("c", "With some text", parent = top) d = newXMLNode("d", newXMLTextNode("With text as an explicit node"), parent = top) newXMLCDataNode("x <- 1\n x > 2", parent = d) newXMLPINode("R", "library(XML)", top) newXMLCommentNode("This is a comment", parent = top) o = newXMLNode("ol", parent = top) kids = lapply(letters[1:3], function(x) newXMLNode("li", x)) addChildren(o, kids) cat(saveXML(top)) x = newXMLNode("block", "xyz", attrs = c(id = "bob"), namespace = "fo", namespaceDefinitions = c("fo" = "http://www.fo.org")) xmlName(x, TRUE) == "fo" # a short cut to define a name space and make it the prefix for the # node, thus avoiding repeating the prefix via the namespace argument. x = newXMLNode("block", "xyz", attrs = c(id = "bob"), namespace = c("fo" = "http://www.fo.org")) # name space on the attribute x = newXMLNode("block", attrs = c("fo:id" = "bob"), namespaceDefinitions = c("fo" = "http://www.fo.org")) x = summary(rnorm(1000)) d = xmlTree() d$addNode("table", close = FALSE) d$addNode("tr", .children = sapply(names(x), function(x) d$addNode("th", x))) d$addNode("tr", .children = sapply(x, function(x) d$addNode("td", format(x)))) d$closeNode() # Just doctype z = xmlTree("people", dtd = "people") # no public element z = xmlTree("people", dtd = c("people", "", "http://www.omegahat.org/XML/types.dtd")) # public and system z = xmlTree("people", dtd = c("people", "//a//b//c//d", "http://www.omegahat.org/XML/types.dtd")) # Using a DTD node directly. dtd = newXMLDTDNode(c("people", "", "http://www.omegahat.org/XML/types.dtd")) z = xmlTree("people", dtd = dtd) x = rnorm(3) z = xmlTree("r:data", namespaces = c(r = "http://www.r-project.org")) z$addNode("numeric", attrs = c("r:length" = length(x)), close = FALSE) lapply(x, function(v) z$addNode("el", x)) z$closeNode() # should give # shows namespace prefix on an attribute, and different from the one on the node. z = xmlTree() z$addNode("r:data", namespace = c(r = "http://www.r-project.org", omg = "http://www.omegahat.org"), close = FALSE) x = rnorm(3) z$addNode("r:numeric", attrs = c("omg:length" = length(x))) z = xmlTree("people", namespaces = list(r = "http://www.r-project.org")) z$setNamespace("r") z$addNode("person", attrs = c(id = "123"), close = FALSE) z$addNode("firstname", "Duncan") z$addNode("surname", "Temple Lang") z$addNode("title", "Associate Professor") z$addNode("expertize", close = FALSE) z$addNode("topic", "Data Technologies") z$addNode("topic", "Programming Language Design") z$addNode("topic", "Parallel Computing") z$addNode("topic", "Data Visualization") z$closeTag() z$addNode("address", "4210 Mathematical Sciences Building, UC Davis") # txt = newXMLTextNode("x < 1") txt # okay saveXML(txt) # x &lt; 1 # By escaping the text, we ensure the entities don't # get expanded, i.e. < doesn't become &lt; txt = newXMLTextNode(I("x < 1")) txt # okay saveXML(txt) # x < 1 newXMLNode("r:expr", newXMLTextNode(I("x < 1")), namespaceDefinitions = c(r = "http://www.r-project.org")) } \keyword{IO} XML/man/names.XMLNode.Rd0000644000176000001440000000226111741563530014362 0ustar ripleyusers\name{names.XMLNode} \alias{names.XMLNode} \title{Get the names of an XML nodes children.} \description{ This is a convenient way to obtain the XML tag name of each of the sub-nodes of a given \code{XMLNode} object. } \usage{ \method{names}{XMLNode}(x) } \arguments{ \item{x}{the \code{XMLNode} whose sub-node tag names are being queried.} } \value{ A character vector returning the tag names of the sub-nodes of the given \code{XMLNode} argument. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \note{ This overrides the regular names method which would display the names of the internal fields of an \code{XMLNode} object. Since these are intended to be invisible and queried via the accessor methods (\code{\link{xmlName}}, \code{\link{xmlAttrs}}, etc.), this should not be a problem. If you really need the names of the fields, use \code{names(unclass(x))}. } \seealso{ \code{\link{xmlApply}} \code{\link{xmlSApply}} } \examples{ doc <- xmlTreeParse(system.file("exampleData", "mtcars.xml", package="XML")) names(xmlRoot(doc)) r <- xmlRoot(doc) r[names(r) == "variables"] } \keyword{file} XML/man/makeClassTemplate.Rd0000644000176000001440000000463312160532050015403 0ustar ripleyusers\name{makeClassTemplate} \alias{makeClassTemplate} \title{Create S4 class definition based on XML node(s)} \description{ This function is used to create an S4 class definition by examining an XML node and mapping the sub-elements to S4 classes. This works very simply with child nodes being mapped to other S4 classes that are defined recursively in the same manner. Simple text elements are mapped to a generic character string. Types can be mapped to more specific types (e.g. boolean, Date, integer) by the caller (via the \code{types}) parameter. The function also generates a coercion method from an \code{XMLAbstractNode} to an instance of this new class. This function can either return the code that defines the class or it can define the new class in the R session. } \usage{ makeClassTemplate(xnode, types = character(), default = "ANY", className = xmlName(xnode), where = globalenv()) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{xnode}{the XML node to analyze} \item{types}{a character vector mapping XML elements to R classes} \item{default}{the default class to map an element to} \item{className}{the name of the new top-level class to be defined. This is the name of the XML node (without the name space)} \item{where}{ typically either an environment or NULL. This is used to control where the class and coercion method are defined or if \code{NULL} inhibits the code being evaluated. In this case, the code is returned as strings.} } %\details{} \value{ A list with 4 elements: \item{name}{the name of the new class} \item{slots}{a character vector giving the slot name and type name pairs} \item{def}{code for defining the class} \item{coerce}{code for defining the coercion method from an XMLAbstractNode to an instance of the new class} If \code{where} is not \code{NULL}, the class and coercion code is actually evaluated and the class and method will be defined in the R session as a side effect. } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlToS4}} } \examples{ txt = "ABCXYZ3.54available" doc = xmlParse(txt) code = makeClassTemplate(xmlRoot(doc)[[1]], types = c(cost = "numeric")) as(xmlRoot(doc)[["part"]], "part") } \keyword{programming} \concept{reflection} \concept{meta-programming} XML/man/libxmlVersion.Rd0000644000176000001440000000402411741563530014646 0ustar ripleyusers\name{libxmlVersion} \alias{libxmlVersion} \alias{libxmlFeatures} \title{Query the version and available features of the libxml library.} \description{ \code{libxmlVersion} retrieves the version of the libxml library used when installing this XML package. \code{libxmlFeatures} returns a named logical vector indicating which features are enabled. } \usage{ libxmlVersion(runTime = FALSE) libxmlFeatures() } \arguments{ \item{runTime}{a logical value indicating whether to retrieve the version information describing libxml when the R package was compiled or the run-time version. These may be different if a) a new version of libxml2 is installed after the package is installed, b) if the package was installed as a binary package built on a different machine. } } \value{ \code{libxmlVersion} returns a named list with fields \item{major}{the major version number, either 1 or 2 indicating the old or new-style library.} \item{minor}{the within version release number.} \item{patch}{the within minor release version number} \code{libxmlFeatures} returns a logical vector with names given by: \code{ [1] "THREAD" "TREE" "OUTPUT" "PUSH" "READER" [6] "PATTERN" "WRITER" "SAX1" "FTP" "HTTP" [11] "VALID" "HTML" "LEGACY" "C14N" "CATALOG" [16] "XPATH" "XPTR" "XINCLUDE" "ICONV" "ISO8859X" [21] "UNICODE" "REGEXP" "AUTOMATA" "EXPR" "SCHEMAS" [26] "SCHEMATRON" "MODULES" "DEBUG" "DEBUG_MEM" "DEBUG_RUN" [31] "ZLIB" } Elements are either \code{TRUE} or \code{FALSE} indicating whether support was activatd for that feature, or \code{NA} if that feature is not part of the particular version of libcurl. } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } %\seealso{} \examples{ ver <- libxmlVersion() if(is.null(ver)) { cat("Relly old version of libxml\n") } else { if(ver$major > 1) { cat("Using libxml2\n") } } } \keyword{IO} XML/man/length.XMLNode.Rd0000644000176000001440000000160511741563530014541 0ustar ripleyusers\name{length.XMLNode} \alias{length.XMLNode} \title{Determine the number of children in an XMLNode object.} \description{ This function is a simple way to compute the number of sub-nodes (or children) an \code{XMLNode} object possesses. It is provided as a convenient form of calling the \code{\link{xmlSize}} function. } \usage{ \method{length}{XMLNode}(x) } \arguments{ \item{x}{the \code{XMLNode} object whose length is to be queried.} } \value{ An integer giving the number of sub-nodes of this node. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlSize}} \code{\link{xmlChildren}} } \examples{ doc <- xmlTreeParse(system.file("exampleData", "mtcars.xml", package="XML")) r <- xmlRoot(doc, skip=TRUE) length(r) # get the last entry r[[length(r)]] } \keyword{file} XML/man/isXMLString.Rd0000644000176000001440000000416012030205013014152 0ustar ripleyusers\name{isXMLString} \Rdversion{1.1} \alias{isXMLString} \alias{xml} \alias{xmlParseString} \alias{XMLString-class} \title{Facilities for working with XML strings} \description{ These functions and classes are used to represent and parse a string whose content is known to be XML. \code{xml} allows us to mark a character vector as containing XML, i.e. of class \code{XMLString}. \code{xmlParseString} is a convenience routine for converting an XML string into an XML node/tree. \code{isXMLString} is examines a strings content and heuristically determines whether it is XML. } \usage{ isXMLString(str) xmlParseString(content, doc = NULL, namespaces = RXMLNamespaces, clean = TRUE, addFinalizer = NA) xml(x) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{str,x,content}{the string containing the XML material.} \item{doc}{if specified, an \code{XMLInternalDocument} object which is used to "house" the new nodes. Specifically, when the nodes are created, they are made as part of this document. This may not be as relevant now with the garbage collection being done at a node and document level. But it still potentially of some value.} \item{namespaces}{a character vector giving the URIs for the XML namespaces which are to be removed if \code{clean} is \code{TRUE}.} \item{clean}{a logical value that controls whether namespaces are removed after the document is parsed..} \item{addFinalizer}{a logical value or identifier for a C routine that controls whether we register finalizers on the intenal node.} } %\details{} \value{ \code{isXMLString} returns a logical value. \code{xmlParseString} returns an object of class \code{XMLInternalElementNode}. \code{xml} returns an object of class \code{XMLString} identifying the text as \code{XML}. } %\references{} \author{Dncan Temple Lang} \seealso{ \code{\link{xmlParse}} \code{\link{xmlTreeParse}} } \examples{ isXMLString("a regular string < 20 characters long") isXMLString("c") xmlParseString("c") # We can lie! isXMLString(xml("foo")) } \keyword{IO} \concept{XML} XML/man/getXMLErrors.Rd0000644000176000001440000000263711741563530014356 0ustar ripleyusers\name{getXMLErrors} \alias{getXMLErrors} \title{Get XML/HTML document parse errors} \description{ This function is intended to be a convenience for finding all the errors in an XML or HTML document due to being malformed, i.e. missing quotes on attributes, non-terminated elements/nodes, incorrectly terminated nodes, missing entities, etc. The document is parsed and a list of the errors is returned along with information about the file, line and column number. } \usage{ getXMLErrors(filename, parse = xmlParse, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{filename}{ the identifier for the document to be parsed, one of a local file name, a URL or the XML/HTML content itself} \item{parse}{ the function to use to parse the document, usually either \code{\link{xmlTreeParse}} or \code{\link{htmlTreeParse}}. } \item{\dots}{additional arguments passed to the function given by \code{parse}} } \value{ A list of S3-style \code{XMLError} objects. } \references{libxml2 (\url{http://xmlsoft.org})} \author{Duncan Temple Lang} \seealso{ \code{error} argument for \code{\link{xmlTreeParse}} and related functions. } \examples{ # Get the "errors" in the HTML that was generated from this Rd file getXMLErrors(system.file("html", "getXMLErrors.html", package = "XML")) \dontrun{ getXMLErrors("http://www.omegahat.org/index.html") } } \keyword{IO} \keyword{programming} XML/man/getXIncludes.Rd0000644000176000001440000000510312160530202014370 0ustar ripleyusers\name{getXIncludes} \alias{getXIncludes} \alias{xmlXIncludes} \title{Find the documents that are XInclude'd in an XML document} \description{ The \code{getXMLIncludes} function finds the names of the documents that are XIncluded in a given XML document, optionally processing these documents recursively. \code{xmlXIncludes} returns the hierarchy of included documents. } \usage{ getXIncludes(filename, recursive = TRUE, skip = character(), omitPattern = "\\\\.(js|html?|txt|R|c)$", namespace = c(xi = "http://www.w3.org/2003/XInclude"), duplicated = TRUE) xmlXIncludes(filename, recursive = TRUE, omitPattern = "\\\\.(js|html?|txt|R|c)$", namespace = c(xi = "http://www.w3.org/2003/XInclude"), addNames = TRUE, clean = NULL, ignoreTextParse = FALSE) } \arguments{ \item{filename}{the name of the XML document's URL or file or the parsed document itself.} \item{recursive}{a logical value controlling whether to recursively process the XInclude'd files for their XInclude'd files} \item{skip}{a character vector of file names to ignore or skip over} \item{omitPattern}{a regular expression for indentifying files that are included that we do not want to recursively process} \item{namespace}{the namespace to use for the XInclude. There are two that are in use 2001 and 2003.} \item{duplicated}{a logical value that controls whether only the unique names of the files are returned, or if we get all references to all files.} \item{addNames}{a logical that controls whether we add the name of the parent file as the names vector for the collection of included file names. This is useful, but sometimes we want to disable this, e.g. to create a \code{JSON} representation of the hierarchy for use in, e.g., D3.} \item{clean}{how to process the names of the files. This can be a function or a character vector of two regular expressions passed to \code{gsub}. The function is called with a vector of file names. The regular expressions are used in a call to \code{gsub}.} \item{ignoreTextParse}{undocuemnted.} } \value{ If \code{recursive} is \code{FALSE}, a character vector giving the names of the included files. For \code{recursive} is \code{TRUE}, currently the same character vector form. However, this will be a hierarchical list. } \author{ Duncan Temple Lang } \seealso{ \code{\link{getHTMLExternalFiles}} } \examples{ f = system.file("exampleData", "xinclude", "a.xml", package = "XML") getXIncludes(f, recursive = FALSE) } \keyword{IO} \concept{XML} XML/man/getRelativeURL.Rd0000644000176000001440000000427512157343436014662 0ustar ripleyusers\name{getRelativeURL} \alias{getRelativeURL} \title{Compute name of URL relative to a base URL} \description{ This function is a convenience function for computing the fullly qualified URI of a document relative to a base URL. It handles the case where the document is already fully qualified and so ignores the base URL or, alternatively, is a relative document name and so prepends the base URL. It does not (yet) try to be clever by collapsing relative directories such as "..". } \usage{ getRelativeURL(u, baseURL, sep = "/", addBase = TRUE, simplify = TRUE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{u}{the location of the target document whose fully qualified URI is to be determined.} \item{baseURL}{the base URL relative to which the value of \code{u} should be interpreted.} \item{sep}{the separator to use to separate elements of the path. For external URLs (e.g. accessed via HTTP, HTTPS, FTP), / should be used. For local files on Windows machines one might use \code{.Platform$file.sep}, but this is incorrect unless one knows that the resulting file is to be accessed using Windows file system notation, i.e. \code{C:\\\\my\\\\folder\\\\file}. } \item{addBase}{a logical controlling whether we prepend the base URL to the result.} \item{simplify}{a logical value that controls whether we attempt to simplify/normalize the path to remove \code{..} and \code{.}} } \details{ This uses the function \code{parseURI} to compute the components of the different URIs. } \value{ A character string giving the fully qualified URI for \code{u}. } \author{Duncan Temple Lang} \seealso{ \code{\link{parseURI}} which uses the libxml2 facilities for parsing URIs. \code{\link{xmlParse}}, \code{\link{xmlTreeParse}}, \code{\link{xmlInternalTreeParse}}. XInclude and XML Schema import/include elements for computing relative locations of included/imported files.. } \examples{ getRelativeURL("http://www.omegahat.org", "http://www.r-project.org") getRelativeURL("bar.html", "http://www.r-project.org/") getRelativeURL("../bar.html", "http://www.r-project.org/") } \keyword{IO} \keyword{programming} \concept{XML} XML/man/getNodeSet.Rd0000644000176000001440000004415512160564230014055 0ustar ripleyusers\name{getNodeSet} \alias{getNodeSet} \alias{xpathApply} \alias{xpathSApply} \alias{matchNamespaces} \title{Find matching nodes in an internal XML tree/DOM} \description{ These functions provide a way to find XML nodes that match a particular criterion. It uses the XPath syntax and allows very powerful expressions to identify nodes of interest within a document both clearly and efficiently. The XPath language requires some knowledge, but tutorials are available on the Web and in books. XPath queries can result in different types of values such as numbers, strings, and node sets. It allows simple identification of nodes by name, by path (i.e. hierarchies or sequences of node-child-child...), with a particular attribute or matching a particular attribute with a given value. It also supports functionality for navigating nodes in the tree within a query (e.g. \code{ancestor()}, \code{child()}, \code{self()}), and also for manipulating the content of one or more nodes (e.g. \code{text}). And it allows for criteria identifying nodes by position, etc. using some counting operations. Combining XPath with R allows for quite flexible node identification and manipulation. XPath offers an alternative way to find nodes of interest than recursively or iteratively navigating the entire tree in R and performing the navigation explicitly. One can search an entire document or start the search from a particular node. Such node-based searches can even search up the tree as well as within the sub-tree that the node parents. Node specific XPath expressions are typically started with a "." to indicate the search is relative to that node. The set of matching nodes corresponding to an XPath expression are returned in R as a list. One can then iterate over these elements to process the nodes in whatever way one wants. Unfortunately, this involves two loops - one in the XPath query over the entire tree, and another in R. Typically, this is fine as the number of matching nodes is reasonably small. However, if repeating this on numerous files, speed may become an issue. We can avoid the second loop (i.e. the one in R) by applying a function to each node before it is returned to R as part of the node set. The result of the function call is then returned, rather than the node itself. One can provide an R expression rather than an R function for \code{fun}. This is expected to be a call and the first argument of the call will be replaced with the node. Dealing with expressions that relate to the default namespaces in the XML document can be confusing. \code{xpathSApply} is a version of \code{xpathApply} which attempts to simplify the result if it can be converted to a vector or matrix rather than left as a list. In this way, it has the same relationship to \code{xpathApply} as \code{\link[base]{sapply}} has to \code{\link[base]{lapply}}. \code{matchNamespaces} is a separate function that is used to facilitate specifying the mappings from namespace prefix used in the XPath expression and their definitions, i.e. URIs, and connecting these with the namespace definitions in the target XML document in which the XPath expression will be evaluated. \code{matchNamespaces} uses rules that are very slightly awkard or specifically involve a special case. This is because this mapping of namespaces from XPath to XML targets is difficult, involving prefixes in the XPath expression, definitions in the XPath evaluation context and matches of URIs with those in the XML document. The function aims to avoid having to specify all the prefix=uri pairs by using "sensible" defaults and also matching the prefixes in the XPath expression to the corresponding definitions in the XML document. The rules are as follows. \code{namespaces} is a character vector. Any element that has a non-trivial name (i.e. other than "") is left as is and the name and value define the prefix = uri mapping. Any elements that have a trivial name (i.e. no name at all or "") are resolved by first matching the prefix to those of the defined namespaces anywhere within the target document, i.e. in any node and not just the root one. If there is no match for the first element of the \code{namespaces} vector, this is treated specially and is mapped to the default namespace of the target document. If there is no default namespace defined, an error occurs. It is best to give explicit the argument in the form \code{c(prefix = uri, prefix = uri)}. However, one can use the same namespace prefixes as in the document if one wants. And one can use an arbitrary namespace prefix for the default namespace URI of the target document provided it is the first element of \code{namespaces}. See the 'Details' section below for some more information. } \usage{ getNodeSet(doc, path, namespaces = xmlNamespaceDefinitions(doc, simplify = TRUE), fun = NULL, sessionEncoding = CE_NATIVE, addFinalizer = NA, ...) xpathApply(doc, path, fun, ... , namespaces = xmlNamespaceDefinitions(doc, simplify = TRUE), resolveNamespaces = TRUE, addFinalizer = NA) xpathSApply(doc, path, fun = NULL, ... , namespaces = xmlNamespaceDefinitions(doc, simplify = TRUE), resolveNamespaces = TRUE, simplify = TRUE, addFinalizer = NA) matchNamespaces(doc, namespaces, nsDefs = xmlNamespaceDefinitions(doc, recursive = TRUE, simplify = FALSE), defaultNs = getDefaultNamespace(doc, simplify = TRUE)) } \arguments{ \item{doc}{an object of class \code{XMLInternalDocument}} \item{path}{a string (character vector of length 1) giving the XPath expression to evaluate.} \item{namespaces}{ a named character vector giving the namespace prefix and URI pairs that are to be used in the XPath expression and matching of nodes. The prefix is just a simple string that acts as a short-hand or alias for the URI that is the unique identifier for the namespace. The URI is the element in this vector and the prefix is the corresponding element name. One only needs to specify the namespaces in the XPath expression and for the nodes of interest rather than requiring all the namespaces for the entire document. Also note that the prefix used in this vector is local only to the path. It does not have to be the same as the prefix used in the document to identify the namespace. However, the URI in this argument must be identical to the target namespace URI in the document. It is the namespace URIs that are matched (exactly) to find correspondence. The prefixes are used only to refer to that URI. } \item{fun}{a function object, or an expression or call, which is used when the result is a node set and evaluated for each node element in the node set. If this is a call, the first argument is replaced with the current node. } \item{...}{any additional arguments to be passed to \code{fun} for each node in the node set.} \item{resolveNamespaces}{a logical value indicating whether to process the collection of namespaces and resolve those that have no name by looking in the default namespace and the namespace definitions within the target document to match by prefix.} \item{nsDefs}{a list giving the namespace definitions in which to match any prefixes. This is typically computed directly from the target document and the default value is most appropriate.} \item{defaultNs}{the default namespace prefix-URI mapping given as a named character vector. This is not a namespace definition object. This is used when matching a simple prefix that has no corresponding entry in \code{nsDefs} and is the first element in the \code{namespaces} vector. } \item{simplify}{a logical value indicating whether the function should attempt to perform the simplification of the result into a vector rather than leaving it as a list. This is the same as \code{\link[base]{sapply}} does in comparison to \code{\link[base]{lapply}}. } %XXX \item{sessionEncoding}{experimental functionality and parameter related to encoding.} \item{addFinalizer}{a logical value or identifier for a C routine that controls whether we register finalizers on the intenal node.} } \details{ When a namespace is defined on a node in the XML document, an XPath expressions must use a namespace, even if it is the default namespace for the XML document/node. For example, suppose we have an XML document \code{...} To find all the topic nodes, we might want to use the XPath expression \code{"/help/topic"}. However, we must use an explicit namespace prefix that is associated with the URI \code{http://www.r-project.org/Rd} corresponding to the one in the XML document. So we would use \code{getNodeSet(doc, "/r:help/r:topic", c(r = "http://www.r-project.org/Rd"))}. As described above, the functions attempt to allow the namespaces to be specified easily by the R user and matched to the namespace definitions in the target document. This calls the libxml routine \code{xmlXPathEval}. } \value{ The results can currently be different based on the returned value from the XPath expression evaluation: \item{list}{a node set} \item{numeric}{a number} \item{logical}{a boolean} \item{character}{a string, i.e. a single character element.} If \code{fun} is supplied and the result of the XPath query is a node set, the result in R is a list. } \references{\url{http://xmlsoft.org}, \url{http://www.w3.org/xml} \url{http://www.w3.org/TR/xpath} \url{http://www.omegahat.org/RSXML} } \author{Duncan Temple Lang } \note{ In order to match nodes in the default name space for documents with a non-trivial default namespace, e.g. given as \code{xmlns="http://www.omegahat.org"}, you will need to use a prefix for the default namespace in this call. When specifying the namespaces, give a name - any name - to the default namespace URI and then use this as the prefix in the XPath expression, e.g. \code{getNodeSet(d, "//d:myNode", c(d = "http://www.omegahat.org"))} to match myNode in the default name space \code{http://www.omegahat.org}. This default namespace of the document is now computed for us and is the default value for the namespaces argument. It can be referenced using the prefix 'd', standing for default but sufficiently short to be easily used within the XPath expression. More of the XPath functionality provided by libxml can and may be made available to the R package. Facilities such as compiled XPath expressions, functions, ordered node information are examples. Please send requests to the package maintainer. } \seealso{ \code{\link{xmlTreeParse}} with \code{useInternalNodes} as \code{TRUE}. } \examples{ doc = xmlParse(system.file("exampleData", "tagnames.xml", package = "XML")) els = getNodeSet(doc, "/doc//a[@status]") sapply(els, function(el) xmlGetAttr(el, "status")) # use of namespaces on an attribute. getNodeSet(doc, "/doc//b[@x:status]", c(x = "http://www.omegahat.org")) getNodeSet(doc, "/doc//b[@x:status='foo']", c(x = "http://www.omegahat.org")) # Because we know the namespace definitions are on /doc/a # we can compute them directly and use them. nsDefs = xmlNamespaceDefinitions(getNodeSet(doc, "/doc/a")[[1]]) ns = structure(sapply(nsDefs, function(x) x$uri), names = names(nsDefs)) getNodeSet(doc, "/doc//b[@omegahat:status='foo']", ns)[[1]] # free(doc) ##### f = system.file("exampleData", "eurofxref-hist.xml.gz", package = "XML") e = xmlParse(f) ans = getNodeSet(e, "//o:Cube[@currency='USD']", "o") sapply(ans, xmlGetAttr, "rate") # or equivalently ans = xpathApply(e, "//o:Cube[@currency='USD']", xmlGetAttr, "rate", namespaces = "o") # free(e) # Using a namespace f = system.file("exampleData", "SOAPNamespaces.xml", package = "XML") z = xmlParse(f) getNodeSet(z, "/a:Envelope/a:Body", c("a" = "http://schemas.xmlsoap.org/soap/envelope/")) getNodeSet(z, "//a:Body", c("a" = "http://schemas.xmlsoap.org/soap/envelope/")) # free(z) # Get two items back with namespaces f = system.file("exampleData", "gnumeric.xml", package = "XML") z = xmlParse(f) getNodeSet(z, "//gmr:Item/gmr:name", c(gmr="http://www.gnome.org/gnumeric/v2")) #free(z) ##### # European Central Bank (ECB) exchange rate data # Data is available from "http://www.ecb.int/stats/eurofxref/eurofxref-hist.xml" # or locally. uri = system.file("exampleData", "eurofxref-hist.xml.gz", package = "XML") doc = xmlParse(uri) # The default namespace for all elements is given by namespaces <- c(ns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref") # Get the data for Slovenian currency for all time periods. # Find all the nodes of the form slovenia = getNodeSet(doc, "//ns:Cube[@currency='SIT']", namespaces ) # Now we have a list of such nodes, loop over them # and get the rate attribute rates = as.numeric( sapply(slovenia, xmlGetAttr, "rate") ) # Now put the date on each element # find nodes of the form # and extract the time attribute names(rates) = sapply(getNodeSet(doc, "//ns:Cube[@time]", namespaces ), xmlGetAttr, "time") # Or we could turn these into dates with strptime() strptime(names(rates), "\%Y-\%m-\%d") # Using xpathApply, we can do rates = xpathApply(doc, "//ns:Cube[@currency='SIT']", xmlGetAttr, "rate", namespaces = namespaces ) rates = as.numeric(unlist(rates)) # Using an expression rather than a function and ... rates = xpathApply(doc, "//ns:Cube[@currency='SIT']", quote(xmlGetAttr(x, "rate")), namespaces = namespaces ) #free(doc) # uri = system.file("exampleData", "namespaces.xml", package = "XML") d = xmlParse(uri) getNodeSet(d, "//c:c", c(c="http://www.c.org")) getNodeSet(d, "/o:a//c:c", c("o" = "http://www.omegahat.org", "c" = "http://www.c.org")) # since http://www.omegahat.org is the default namespace, we can # just the prefix "o" to map to that. getNodeSet(d, "/o:a//c:c", c("o", "c" = "http://www.c.org")) # the following, perhaps unexpectedly but correctly, returns an empty # with no matches getNodeSet(d, "//defaultNs", "http://www.omegahat.org") # But if we create our own prefix for the evaluation of the XPath # expression and use this in the expression, things work as one # might hope. getNodeSet(d, "//dummy:defaultNs", c(dummy = "http://www.omegahat.org")) # And since the default value for the namespaces argument is the # default namespace of the document, we can refer to it with our own # prefix given as getNodeSet(d, "//d:defaultNs", "d") # And the syntactic sugar is d["//d:defaultNs", namespace = "d"] # this illustrates how we can use the prefixes in the XML document # in our query and let getNodeSet() and friends map them to the # actual namespace definitions. # "o" is used to represent the default namespace for the document # i.e. http://www.omegahat.org, and "r" is mapped to the same # definition that has the prefix "r" in the XML document. tmp = getNodeSet(d, "/o:a/r:b/o:defaultNs", c("o", "r")) xmlName(tmp[[1]]) #free(d) # Work with the nodes and their content (not just attributes) from the node set. # From bondsTables.R in examples/ doc = htmlTreeParse("http://finance.yahoo.com/bonds/composite_bond_rates", useInternalNodes = TRUE) if(is.null(xmlRoot(doc))) doc = htmlTreeParse("http://finance.yahoo.com/bonds", useInternalNodes = TRUE) # Use XPath expression to find the nodes #
    .. # as these are the ones we want. if(!is.null(xmlRoot(doc))) { o = getNodeSet(doc, "//div/table[@class='yfirttbl']") # Write a function that will extract the information out of a given table node. readHTMLTable = function(tb) { # get the header information. colNames = sapply(tb[["thead"]][["tr"]]["th"], xmlValue) vals = sapply(tb[["tbody"]]["tr"], function(x) sapply(x["td"], xmlValue)) matrix(as.numeric(vals[-1,]), nrow = ncol(vals), dimnames = list(vals[1,], colNames[-1]), byrow = TRUE ) } # Now process each of the table nodes in the o list. tables = lapply(o, readHTMLTable) names(tables) = lapply(o, function(x) xmlValue(x[["caption"]])) } # this illustrates an approach to doing queries on a sub tree # within the document. # Note that there is a memory leak incurred here as we create a new # XMLInternalDocument in the getNodeSet(). f = system.file("exampleData", "book.xml", package = "XML") doc = xmlParse(f) ch = getNodeSet(doc, "//chapter") xpathApply(ch[[2]], "//section/title", xmlValue) # To fix the memory leak, we explicitly create a new document for # the subtree, perform the query and then free it _when_ we are done # with the resulting nodes. subDoc = xmlDoc(ch[[2]]) xpathApply(subDoc, "//section/title", xmlValue) free(subDoc) txt = '' doc = xmlInternalTreeParse(txt, asText = TRUE) \dontrun{ # Will fail because it doesn't know what the namespace x is # and we have to have one eventhough it has no prefix in the document. xpathApply(doc, "//x:b") } # So this is how we do it - just say x is to be mapped to the # default unprefixed namespace which we shall call x! xpathApply(doc, "//x:b", namespaces = "x") # Here r is mapped to the the corresponding definition in the document. xpathApply(doc, "//r:a", namespaces = "r") # Here, xpathApply figures this out for us, but will raise a warning. xpathApply(doc, "//r:a") # And here we use our own binding. xpathApply(doc, "//x:a", namespaces = c(x = "http://www.r-project.org")) # Get all the nodes in the entire tree. table(unlist(sapply(doc["//*|//text()|//comment()|//processing-instruction()"], class))) } \keyword{file} \keyword{IO} XML/man/getLineNumber.Rd0000644000176000001440000000412712122117137014545 0ustar ripleyusers\name{getLineNumber} \alias{getNodeLocation} \alias{getNodePosition} \alias{getLineNumber} \title{Determine the location - file \& line number of an (internal) XML node} \description{ The \code{getLineNumber} function is used to query the location of an internal/C-level XML node within its original "file". This gives us the line number. \code{getNodeLocation} gives both the line number and the name of the file in which the node is located, handling XInclude files in a top-level document and identifying the included file, as appropriate. \code{getNodePosition} returns a simplified version of \code{getNodeLocation}, combining the file and line number into a string and ignoring the \code{XPointer} component. This is useful when we identify a node with a particular charactestic and want to view/edit the original document, e.g. when authoring an Docbook article. } \usage{ getLineNumber(node, ...) getNodeLocation(node, recursive = TRUE, fileOnly = FALSE) } \arguments{ \item{node}{the node whose location or line number is of interest} \item{\dots}{additional parameters for methods should they be defined.} \item{recursive}{a logical value that controls whether the full path of the nested includes is returned or just the path in the immediate XInclude element.} \item{fileOnly}{a logical value which if \code{TRUE} means that only the name of the file is returned, and not the \code{xpointer} attribute or line number .} } \value{ \code{getLineNumber} returns an integer. \code{getNodeLocation} returns a list with two elements - \code{file} and \code{line} which are a character string and the integer line number. For text nodes, the line number is taken from the previous sibling nodes or the parent node. } \references{libxml2 } \author{Duncan Temple Lang} \seealso{ \code{\link{findXInclude}} \code{\link{xmlParse}} \code{\link{getNodeSet}} \code{\link{xpathApply}} } \examples{ f = system.file("exampleData", "xysize.svg", package = "XML") doc = xmlParse(f) e = getNodeSet(doc, "//ellipse") sapply(e, getLineNumber) } \keyword{IO} \concept{XML} XML/man/getHTMLLinks.Rd0000644000176000001440000000434712122134221014247 0ustar ripleyusers\name{getHTMLLinks} \alias{getHTMLLinks} \alias{getHTMLExternalFiles} \title{Get links or names of external files in HTML document} \description{ These functions allow us to retrieve either the links within an HTML document, or the collection of names of external files referenced in an HTML document. The external files include images, JavaScript and CSS documents. } \usage{ getHTMLLinks(doc, externalOnly = TRUE, xpQuery = "//a/@href", baseURL = docName(doc), relative = FALSE) getHTMLExternalFiles(doc, xpQuery = c("//img/@src", "//link/@href", "//script/@href", "//embed/@src"), baseURL = docName(doc), relative = FALSE, asNodes = FALSE, recursive = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{doc}{the HTML document as a URL, local file name, parsed document or an XML/HTML node} \item{externalOnly}{a logical value that indicates whether we should only return links to external documents and not references to internal anchors/nodes within this document, i.e. those that of the form \code{#foo}.} \item{xpQuery}{a vector of XPath elements which match the elements of interest} \item{baseURL}{the URL of the container document. This is used to resolve relative references/links. } \item{relative}{a logical value indicating whether to leave the references as relative to the base URL or to expand them to their full paths. } \item{asNodes}{a logical value that indicates whether we want the actual HTML/XML nodes in the document that reference external documents or just the names of the external documents.} \item{recursive}{a logical value that controls whether we recursively process the external documents we find in the top-level document examining them for their external files.} } \value{ \code{getHTMLLinks} returns a character vector of the links. \code{getHTMLExternalFiles} returns a character vector. } \author{ Duncan Temple Lang } \seealso{ \code{\link{getXIncludes}} } \examples{ getHTMLLinks("http://www.omegahat.org") getHTMLLinks("http://www.omegahat.org/RSXML") unique(getHTMLExternalFiles("http://www.omegahat.org")) } \keyword{IO} \keyword{programming} XML/man/getEncoding.Rd0000644000176000001440000000200111741563530014230 0ustar ripleyusers\name{getEncoding} %\Rdversion{1.1} \alias{getEncoding} \alias{getEncoding,XMLInternalDocument-method} \alias{getEncoding,XMLInternalNode-method} \alias{getEncoding,ANY-method} \title{Determines the encoding for an XML document or node} \description{ This function and its methods are intended to return the encoding of n XML . It is similar to \code{\link[base]{Encoding}} but currently restricted to XML nodes and documents. } \usage{ getEncoding(obj, ...) } \arguments{ \item{obj}{the object whose encoding is being queried.} \item{\dots}{any additional parameters which can be customized by the methods.} } \value{ A character vector of length 1 giving the encoding of the XML document. } \author{ Duncan Temple Lang} \examples{ f = system.file("exampleData", "charts.svg", package = "XML") doc = xmlParse(f) getEncoding(doc) n = getNodeSet(doc, "//g/text")[[1]] getEncoding(n) f = system.file("exampleData", "iTunes.plist", package = "XML") doc = xmlParse(f) getEncoding(doc) } \keyword{IO} XML/man/getChildrenStrings.Rd0000644000176000001440000000326612160531705015615 0ustar ripleyusers\name{getChildrenStrings} \alias{getChildrenStrings} \title{Get the individual } \description{ This is different from \code{xmlValue} applied to the node. That concatenates all of the text in the child nodes (and their descendants) This is a faster version of \code{xmlSApply(node, xmlValue)} } \usage{ getChildrenStrings(node, encoding = getEncoding(node), asVector = TRUE, len = xmlSize(node), addNames = TRUE) } \arguments{ \item{node}{the parent node whose child nodes we want to process} \item{encoding}{the encoding to use for the text. This should come from the document itself. However, it can be useful to specify it if the encoding has not been set for the document (e.g. if we are constructing it node-by-node).} \item{asVector}{a logical value that controls whether the result is returned as a character vector or as a list (\code{FALSE}). } \item{len}{an integer giving the number of elements we expect returned. This is best left unspecified but can be provided if the caller already knows the number of child nodes. This avoids recomputing this and so provides a marginal speedup.} \item{addNames}{a logical value that controls whether we add the element names to each element of the resulting vector. This makes it easier to identify from which element each string came.} } \value{ A character vector. } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlValue}} } \examples{ doc = xmlParse("a string some text another") getChildrenStrings(xmlRoot(doc)) doc = xmlParse("a string some text anotherabcxyz") getChildrenStrings(xmlRoot(doc)) } \keyword{programming} XML/man/genericSAXHandlers.Rd0000644000176000001440000000407311741563530015466 0ustar ripleyusers\name{genericSAXHandlers} \alias{genericSAXHandlers} \title{SAX generic callback handler list} \description{ This is a convenience function to get the collection of generic functions that make up the callbacks for the SAX parser. The return value can be used directly as the value of the \code{handlers} argument in \code{\link{xmlEventParse}}. One can easily specify a subset of the handlers by giving the names of the elements to include or exclude. } \usage{ genericSAXHandlers(include, exclude, useDotNames = FALSE) } %- maybe also `usage' for other objects documented here. \arguments{ \item{include}{if supplied, this gives the names of the subset of elements to return. } \item{exclude}{if supplied (and \code{include} is not), this gives the names of the elements to remove from the list of functions. } \item{useDotNames}{ a logical value. If this is \code{TRUE}, the names of the elements in the list of handler functions are prefixed with '.'. This is the newer format used to differentiate general element handlers and node-name-specific handlers.} } \value{ A list of functions. By default, the elements are named startElement, endElement, comment, text, processingInstruction, entityDeclaration and contain the corresponding generic SAX callback function, i.e. given by the element name with the .SAX suffix. If \code{include} or \code{exclude} is specified, a subset of this list is returned. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlEventParse}} \code{\link{startElement.SAX}} \code{\link{endElement.SAX}} \code{\link{comment.SAX}} \code{\link{processingInstruction.SAX}} \code{\link{entityDeclaration.SAX}} \code{\link{.InitSAXMethods}} } \examples{ \testonly{ # .InitSAXMethods() names(genericSAXHandlers()) names(genericSAXHandlers(inc=c("startElement", "endElement", "text"))) names(genericSAXHandlers(ex=c("startElement", "endElement", "text"))) } } \keyword{file} XML/man/free.Rd0000644000176000001440000000305411741563530012734 0ustar ripleyusers\name{free} \alias{free} \alias{free,XMLInternalDocument-method} \title{Release the specified object and clean up its memory usage} \description{ This generic function is available for explicitly releasing the memory associated with the given object. It is intended for use on external pointer objects which do not have an automatic finalizer function/routine that cleans up the memory that is used by the native object. This is the case, for example, for an XMLInternalDocument. We cannot free it with a finalizer in all cases as we may have a reference to a node in the associated document tree. So the user must explicitly release the XMLInternalDocument object to free the memory it occupies. } \usage{ free(obj) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{obj}{ the object whose memory is to be released, typically an external pointer object or object that contains a slot that is an external pointer. } } \details{ The methods will generally call a C routine to free the native memory. } \value{ An updated version of the object with the external address set to NIL. This is up to the individual methods. } \author{ Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} with \code{useInternalNodes = TRUE} } \examples{ f = system.file("exampleData", "boxplot.svg", package = "XML") doc = xmlParse(f) nodes = getNodeSet(doc, "//path") rm(nodes) # free(doc) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{IO} \concept{external memory} XML/man/findXInclude.Rd0000644000176000001440000000437611741563530014377 0ustar ripleyusers\name{findXInclude} \alias{findXInclude} %- Also NEED an '\alias' for EACH other topic documented here. \title{Find the XInclude node associated with an XML node} \description{ This function is used to traverse the ancestors of an internal XML node to find the associated XInclude node that identifies it as being an XInclude'd node. Each top-level node that results from an include href=... in the libxml2 parser is sandwiched between nodes of class XMLXIncludeStartNode and XMLXIncludeStartNode. These are the sibling nodes. Another approach to finding the origin of the XInclude for a given node is to search for an attribute xml:base. This only works if the document being XInclude'd is in a different directory than the base document. If this is the case, we can use an XPath query to find the node containing the attribute via \code{"./ancestor::*[@xml:base]"}. } \usage{ findXInclude(x, asNode = FALSE, recursive = FALSE) } \arguments{ \item{x}{the node whose XInclude "ancestor" is to be found} \item{asNode}{a logical value indicating whether to return the node itself or the attributes of the node which are typically the immediately interesting aspect of the node.} \item{recursive}{a logical value that controls whether the full path of the nested includes is returned or just the path in the immediate XInclude element.} } \value{ Either \code{NULL} if there was no node of class XMLXIncludeStartNode found. Otherwise, if \code{asNode} is \code{TRUE}, that XMLXIncludeStartNode node is returned, or alternatively its attribute character vector. } \references{www.libxml.org} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlParse}} and the \code{xinclude} parameter. } \examples{ f = system.file("exampleData", "functionTemplate.xml", package = "XML") cat(readLines(f), "\n") doc = xmlParse(f) # Get all the para nodes # We just want to look at the 2nd and 3rd which are repeats of the # first one. a = getNodeSet(doc, "//author") findXInclude(a[[1]]) i = findXInclude(a[[1]], TRUE) top = getSibling(i) # Determine the top-level included nodes tmp = getSibling(i) nodes = list() while(!inherits(tmp, "XMLXIncludeEndNode")) { nodes = c(nodes, tmp) tmp = getSibling(tmp) } } \keyword{IO} XML/man/ensureNamespace.Rd0000644000176000001440000000317211741563530015132 0ustar ripleyusers\name{ensureNamespace} \alias{ensureNamespace} \title{Ensure that the node has a definition for particular XML namespaces} \description{ This function is a helper function for use in creating XML content. We often want to create a node that will be part of a larger XML tree and use a particular namespace for that node name. Rather than defining the namespace in each new node, we want to ensure that it is define on an ancestor node. This function aids in that task. We call the function with the ancestor node or top-level document and have it check whether the namespace is already defined or have it add it to the node and return. This is intended for use with \code{XMLInternalNode} objects which are direclty mutable (rather than changing a copy of the node and having to insert that back into the larger tree.) } \usage{ ensureNamespace(doc, what) } \arguments{ \item{doc}{an \code{XMLInternalDocument} or \code{XMLInternalNode} on which the namespace is to be defined. If this is a documentm, we use the root node.} \item{what}{a named character vector giving the URIs for the namespace definitions and the names giving the desired prefixes} } \value{ This is used for the potential side effects of modifying the XML node to add (some of) the namespaces as needed. } \references{XML namespaces} \author{Duncan Temple Lang} \seealso{ \code{\link{newXMLNamespace}} \code{\link{newXMLNode}} } \examples{ doc = newXMLDoc() top = newXMLNode("article", doc = doc) ensureNamespace(top, c(r = "http://www.r-project.org")) b = newXMLNode("r:code", parent = top) print(doc) } \keyword{IO} \concept{XML} XML/man/dtdValidElement.Rd0000644000176000001440000000346611741563530015067 0ustar ripleyusers\name{dtdValidElement} \alias{dtdValidElement} \title{Determines whether an XML tag is valid within another.} \description{ This tests whether \code{name} is a legitimate tag to use as a direct sub-element of the \code{within} tag according to the definition of the \code{within} element in the specified DTD. } \usage{ dtdValidElement(name, within, dtd, pos=NULL) } \arguments{ \item{name}{The name of the tag which is to be inserted inside the \code{within} tag.} \item{within}{The name of the parent tag the definition of which we are checking to determine if it contains \code{name}.} \item{dtd}{The DTD in which the elements \code{name} and \code{within} are defined. } \item{pos}{ An optional position at which we might add the \code{name} element inside \code{within}. If this is specified, we have a stricter test that accounds for sequences in which elements must appear in order. These are comma-separated entries in the element definition.} } \details{ This applies to direct sub-elements or children of the \code{within} tag and not tags nested within children of that tag, i.e. descendants. } \value{ Returns a logical value. TRUE indicates that a \code{name} element can be used inside a \code{within} element. FALSE indicates that it cannot. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{parseDTD}}, \code{\link{dtdElement}}, \code{\link{dtdElementValidEntry}}, } \examples{ dtdFile <- system.file("exampleData", "foo.dtd", package="XML") foo.dtd <- parseDTD(dtdFile) # The following are true. dtdValidElement("variable","variables", dtd = foo.dtd) dtdValidElement("record","dataset", dtd = foo.dtd) # This is false. dtdValidElement("variable","dataset", dtd = foo.dtd) } \keyword{file} XML/man/dtdIsAttribute.Rd0000644000176000001440000000250211741563530014743 0ustar ripleyusers\name{dtdIsAttribute} \alias{dtdIsAttribute} \title{Query if a name is a valid attribute of a DTD element.} \description{ Examines the definition of the DTD element definition identified by \code{element} to see if it supports an attribute named \code{name}. } \usage{ dtdIsAttribute(name, element, dtd) } %- maybe also `usage' for other objects documented here. \arguments{ \item{name}{The name of the attribute being queried} \item{element}{The name of the element whose definition is to be used to obtain the list of valid attributes.} \item{dtd}{The DTD containing the definition of the elements, specifically \code{element}.} } \value{ A logical value indicating if the list of attributes suppported by the specified element has an entry named \code{name}. This does indicate what type of value that attribute has, whether it is required, implied, fixed, etc. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{parseDTD}}, \code{\link{dtdElement}}, \code{\link{xmlAttrs}} } \examples{ dtdFile <- system.file("exampleData", "foo.dtd", package="XML") foo.dtd <- parseDTD(dtdFile) # true dtdIsAttribute("numRecords", "dataset", foo.dtd) # false dtdIsAttribute("date", "dataset", foo.dtd) } \keyword{file} XML/man/dtdElementValidEntry.Rd0000644000176000001440000000347211741563530016106 0ustar ripleyusers\name{dtdElementValidEntry} \alias{dtdElementValidEntry.character} \alias{dtdElementValidEntry.XMLElementContent} \alias{dtdElementValidEntry.XMLElementDef} \alias{dtdElementValidEntry.XMLOrContent} \alias{dtdElementValidEntry.XMLSequenceContent} \alias{dtdElementValidEntry} \title{Determines whether an XML element allows a particular type of sub-element.} \description{ This tests whether \code{name} is a legitimate tag to use as a direct sub-element of the \code{element} tag according to the definition of the \code{element} element in the specified DTD. This is a generic function that dispatches on the element type, so that different version take effect for \code{XMLSequenceContent}, \code{XMLOrContent}, \code{XMLElementContent}. } \usage{ dtdElementValidEntry(element, name, pos=NULL) } \arguments{ \item{element}{The \code{XMLElementDef} defining the tag in which we are asking whether the sub-element can be used. } \item{name}{The name of the sub-element about which we are querying the list of sub-tags within \code{element}. } \item{pos}{An optional argument which, if supplied, queries whether the \code{name} sub-element is valid as the \code{pos}-th child of \code{element}. } } \details{ This is not intended to be called directly, but indirectly by the \code{\link{dtdValidElement}} function. } \value{ Logical value indicating whether the sub-element can appear in an \code{element} tag or not. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{parseDTD}}, \code{\link{dtdValidElement}}, \code{\link{dtdElement}} } \examples{ dtdFile <- system.file("exampleData", "foo.dtd",package="XML") dtd <- parseDTD(dtdFile) dtdElementValidEntry(dtdElement("variables",dtd), "variable") } \keyword{file} XML/man/dtdElement.Rd0000644000176000001440000000374211741563530014104 0ustar ripleyusers\name{dtdElement} \alias{dtdElement} \alias{dtdEntity} \title{Gets the definition of an element or entity from a DTD.} \description{ A DTD in R consists of both element and entity definitions. These two functions provide simple access to individual elements of these two lists, using the name of the element or entity. The DTD is provided to determine where to look for the entry. } \usage{ dtdElement(name,dtd) dtdEntity(name,dtd) } \arguments{ \item{name}{The name of the element being retrieved/acessed.} \item{dtd}{The DTD from which the element is to be retrieved.} } \details{ An element within a DTD contains both the list of sub-elements it can contain and a list of attributes that can be used within this tag type. \code{dtdElement} retrieves the element by name from the specified DTD definition. Entities within a DTD are like macros or text substitutes used within a DTD and/or XML documents that use it. Each consists of a name/label and a definition, the text that is substituted when the entity is referenced. \code{dtdEntity} retrieves the entity definition from the DTD. \\ One can read a DTD directly (using \code{\link{parseDTD}}) or implicitly when reading a document (using \code{\link{xmlTreeParse}}) The names of all available elements can be obtained from the expression \code{names(dtd$elements)}. This function is simply a convenience for indexing this \code{elements} list. } \value{ An object of class \code{XMLElementDef}. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{parseDTD}}, \code{\link{dtdValidElement}} } \examples{ dtdFile <- system.file("exampleData","foo.dtd", package="XML") foo.dtd <- parseDTD(dtdFile) # Get the definition of the `entry1' element tmp <- dtdElement("variable", foo.dtd) xmlAttrs(tmp) tmp <- dtdElement("entry1", foo.dtd) # Get the definition of the `img' entity dtdEntity("img", foo.dtd) } \keyword{file} XML/man/docName.Rd0000644000176000001440000000312111741563530013354 0ustar ripleyusers\name{docName} \alias{docName} \alias{docName,XMLDocument-method} \alias{docName,XMLDocumentContent-method} \alias{docName,XMLHashTree-method} \alias{docName,XMLInternalDocument-method} \alias{docName,XMLInternalNode-method} \alias{docName,XMLHashTreeNode-method} \alias{docName,NULL-method} \alias{docName,XMLNode-method} \alias{docName<-} \alias{docName<-,XMLInternalDocument-method} \alias{docName<-,XMLHashTree-method} \title{Accessors for name of XML document} \description{ These functions and methods allow us to query and set the \dQuote{name} of an XML document. This is intended to be its URL or file name or a description of its origin if raw XML content provided as a string. } \usage{ docName(doc, ...) } \arguments{ \item{doc}{the XML document object, of class \code{XMLInternalDocument} or \code{XMLDocument}. } \item{\dots}{additional methods for methods} } \value{ A character string giving the name. If the document was created from text, this is \code{NA} (of class character). The assignment function returns the updated object, but the R assignment operation will return the value on the right of the assignment! } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlInternalTreeParse}} \code{\link{newXMLDoc}} } \examples{ f = system.file("exampleData", "catalog.xml", package = "XML") doc = xmlInternalTreeParse(f) docName(doc) doc = xmlInternalTreeParse("", asText = TRUE) # an NA docName(doc) docName(doc) = "Simple XML example" docName(doc) } \keyword{IO} \keyword{programming} \concept{XML} XML/man/compareXMLDocs.Rd0000644000176000001440000000317712030205125014622 0ustar ripleyusers\name{compareXMLDocs} \alias{compareXMLDocs} \title{Indicate differences between two XML documents} \description{ This function is an attempt to provide some assistance in determining if two XML documents are the same and if not, how they differ. Rather than comparing the tree structure, this function compares the frequency distributions of the names of the node. It omits position, attributes, simple content from the comparison. Those are left to the functions that have more contextual information to compare two documents. } \usage{ compareXMLDocs(a, b, ...) } \arguments{ \item{a,b}{two parsed XML documents that must be internal documents, i.e. created with \code{\link{xmlParse}} or created with \code{\link{newXMLNode}}.} \item{\dots}{additional parameters that are passed on to the \code{summary} method for an internal document.} } \value{ A list with elements \item{inA}{the names and counts of the XML elements that only appear in the first document} \item{inB}{the names and counts of the XML elements that only appear in the second document} \item{countDiffs}{a vector giving the difference in number of nodes with a particular name.} These give a description of what is missing from one document relative to the other. } %\references{} \author{ Duncan Temple Lang } \seealso{ \code{\link{getNodeSet}} } \examples{ tt = ' text a phrase ' a = xmlParse(tt, asText = TRUE) b = xmlParse(tt, asText = TRUE) d = getNodeSet(b, "//d")[[1]] xmlName(d) = "bob" addSibling(xmlParent(d), newXMLNode("c")) compareXMLDocs(a, b) } \keyword{IO} XML/man/coerce.Rd0000644000176000001440000000142112030407024013232 0ustar ripleyusers\name{coerceNodes} \alias{coerce,XMLHashTreeNode,XMLHashTree-method} \alias{coerce,XMLInternalDocument,XMLHashTree-method} \alias{coerce,XMLInternalNode,XMLHashTree-method} \alias{coerce,XMLNode,XMLInternalNode-method} \alias{coerce,XMLAbstractDocument,XMLAbstractNode-method} \title{Transform between XML representations} \description{ This collection of coercion methods (i.e. \code{as(obj, "type")}) allows users of the \code{XML} package to switch between different representations of XML nodes and to map from an XML document to the root node and from a node to the document. This helps to manage the nodes } %\usage{} \value{ An object of the target type. } \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlParse}} } \keyword{IO} \keyword{programming} \concept{XML} XML/man/catalogs.Rd0000644000176000001440000001147312160531630013604 0ustar ripleyusers \name{catalogLoad} \alias{catalogLoad} \alias{catalogClearTable} \alias{catalogAdd} \alias{catalogDump} \title{Manipulate XML catalog contents} \description{ These functions allow the R user to programmatically control the XML catalog table used in the XML parsing tools in the C-level libxml2 library and hence in R packages that use these, e.g. the XML and Sxslt packages. Catalogs are consulted whenever an external document needs to be loaded. XML catalogs allow one to influence how such a document is loaded by mapping document identifiers to alternative locations, for example to refer to locally available versions. They support mapping URI prefixes to local file directories/files, resolving both SYSTEM and PUBLIC identifiers used in DOCTYPE declarations at the top of an XML/HTML document, and delegating resolution to other catalog files. Catalogs are written using an XML format. Catalogs allow resources used in XInclude nodes and XSL templates to refer to generic network URLs and have these be mapped to local files and so avoid potentially slow network retrieval. Catalog files are written in XML We might have a catalog file that contains the XML In the XDynDocs package, we refer to OmegahatXSL files and DocBook XSL files have a catalog file of the form The functions provided here allow the R programmer to empty the current contents of the global catalog table and so start from scratch ( \code{catalogClearTable} ), load the contents of a catalog file into the global catalog table ( \code{catalogLoad} ), and to add individual entries programmatically without the need for a catalog table. In addition to controlling the catalogs via these functions, we can use \code{\link{catalogResolve}} to use the catalog to resolve the name of a resource and map it to a local resource. \code{catalogDump} allows us to retrieve an XML document representing the current contents of the in-memory catalog . More information can be found at \url{http://xmlsoft.org/catalog.html} and \url{http://www.sagehill.net/docbookxsl/Catalogs.html} among many resources and the specification for the catalog format at \url{http://www.oasis-open.org/committees/entity/spec-2001-08-06.html}. } \usage{ catalogLoad(fileNames) catalogClearTable() catalogAdd(orig, replace, type = "rewriteURI") catalogDump(fileName = tempfile(), asText = TRUE) } \arguments{ \item{orig}{a character vector of identifiers, e.g. URIs, that are to be mapped to a different name via the catalog. This can be a named character vector where the names are the original URIs and the values are the corresponding rewritten values. } \item{replace}{a character vector of the rewritten or resolved values for the identifiers given in orig. Often this omitted and the original-rewrite pairs are given as a named vector via orig. } \item{type}{a character vector with the same length as orig (or recycled to have the same length) which specifies the type of the resources in the elements of orig. Valid values are rewriteURI, rewriteSystem, system, public. } \item{fileNames}{a character vector giving the names of the catalog files to load.} \item{fileName}{the name of the file in which to place the contents of the current catalog} \item{asText}{a logical value which indicates whether to write the catalog as a character string if \code{filename} is not specified.} } \value{ These functions are used for their side effects on the global catalog table maintained in C by libxml2. Their return values are logical values/vectors indicating whether the particular operation were successful or not. } \references{ This provides an R-like interface to a small subset of the catalog API made available in libxml2. } \seealso{ \code{\link{catalogResolve}} XInclude, XSL and import/include directives. In addition to these functions, there is an un-exported, undocumented function named \code{catalogDump} that can be used to get the contents of the (first) catalog table. } \examples{ # Add a rewrite rule # # catalogAdd(c("http://www.omegahat.org/XML" = system.file("XML", package = "XML"))) catalogAdd("http://www.omegahat.org/XML", system.file("XML", package = "XML")) catalogAdd("http://www.r-project.org/doc/", paste(R.home(), "doc", "", sep = .Platform$file.sep)) # # This shows how we can load a catalog and then resolve a # systemidentifier that it maps. # catalogLoad(system.file("exampleData", "catalog.xml", package = "XML")) catalogResolve("docbook4.4.dtd", "system") catalogResolve("-//OASIS//DTD DocBook XML V4.4//EN", "public") } \keyword{IO} XML/man/catalogResolve.Rd0000644000176000001440000000535011741563530014766 0ustar ripleyusers\name{catalogResolve} \alias{catalogResolve} \title{Look up an element via the XML catalog mechanism} \description{ XML parsers use a catalog to map generic system and public addresses to actual local files or potentially different remote files. We can use a catalog to map a reference such as \code{http://www.omegahat.org/XSL/} to a particular directory on our local machine and then not have to modify any of the documents if we move the local files to another directory, e.g. install a new version in an alternate directory. This function provides a mechanism to query the catalog to resolve a URI, PUBLIC or SYSTEM identifier. This is now vectorized, so accepts a character vector of URIs and recycles \code{type} to have the same length. If an entry is not resolved via the catalog system, a \code{NA} is returned for that element. To leave the value unaltered in this case, use \code{asIs = TRUE} . } \usage{ catalogResolve(id, type = "uri", asIs = FALSE, debug = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{id}{the name of the (generic) element to be resolved} \item{type}{a string, specifying whether the lookup is for a uri, system or public element} \item{asIs}{a logical. If \code{TRUE} any element of \code{id} which is not resolved by the catalog system will be left as given in the call. If \code{FALSE}, such unresolved elements are identified by \code{NA}. } \item{debug}{logical value indicating whether to turn on debugging output written to the console (\code{TRUE}) or not (\code{FALSE}).} } \value{ A character vector. If the element was resolved, the single element is the resolved value. Otherwise, the character vector will contain no elements. } \references{ \url{http://www.xmlsoft.org} \url{http://www.sagehill.net/docbookxsl/Catalogs.html} provides a short, succinct tutorial on catalogs. } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} } \examples{ if(!exists("Sys.setenv")) Sys.setenv = Sys.putenv Sys.setenv("XML_CATALOG_FILES" = system.file("exampleData", "catalog.xml", package = "XML")) catalogResolve("-//OASIS//DTD DocBook XML V4.4//EN", "public") catalogResolve("http://www.omegahat.org/XSL/foo.xsl") catalogResolve("http://www.omegahat.org/XSL/article.xsl", "uri") catalogResolve("http://www.omegahat.org/XSL/math.xsl", "uri") # This one does not resolve anything, returning an empty value. catalogResolve("http://www.oasis-open.org/docbook/xml/4.1.2/foo.xsl", "uri") # Vectorized and returns NA for the first and /tmp/html.xsl # for the second. catalogAdd("http://made.up.domain", "/tmp") catalogResolve(c("ddas", "http://made.up.domain/html.xsl"), asIs = TRUE) } \keyword{IO} \concept{XML} XML/man/asXMLTreeNode.Rd0000644000176000001440000000335312160531447014425 0ustar ripleyusers\name{asXMLTreeNode} \alias{asXMLTreeNode} \title{Convert a regular XML node to one for use in a "flat" tree} \description{ This coerces a regular R-based XML node (i.e. not an internal C-level node) to a form that can be inserted into a flat tree, i.e. one that stores the nodes in a non-hierarchical manner. It is thus used in conjunction with \code{\link{xmlHashTree}} and \code{\link{xmlFlatListTree}}. It adds \code{id} and \code{env} fields to the node and specializes the class by prefixing \code{className} to the class attribute. This is not used very much anymore as we use the internal nodes for most purposes. } \usage{ asXMLTreeNode(node, env, id = get(".nodeIdGenerator", env)(xmlName(node)), className = "XMLTreeNode") } %- maybe also 'usage' for other objects documented here. \arguments{ \item{node}{the original XML node} \item{env}{the \code{XMLFlatTree} object into which this node will be inserted.} \item{id}{the identifier for the node in the flat tree. If this is not specified, we consult the tree itself and its built-in identifier generator. By default, the name of the node is used as its identifier unless there is another node with that name. } \item{className}{a vector of class names to be prefixed to the existing class vector of the node.} } \value{ An object of class \code{className}, i.e. by default \code{"XMLTreeNode"}. } \references{\url{http://www.w3.org/XML}} \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlHashTree}} \code{\link{xmlFlatListTree}} } \examples{ txt = 'some textother text' doc = xmlTreeParse(txt) class(xmlRoot(doc)) as(xmlRoot(doc), "XMLInternalNode") } \keyword{IO} \concept{XML} XML/man/asXMLNode.Rd0000644000176000001440000000214411741563530013604 0ustar ripleyusers\name{asXMLNode} \alias{asXMLNode} \alias{coerce,XMLInternalNode,XMLNode-method} \title{Converts non-XML node objects to XMLTextNode objects} \description{ This function is used to convert S objects that are not already \code{XMLNode} objects into objects of that class. Specifically, it treats the object as a string and creates an \code{XMLTextNode} object. Also, there is a method for converting an XMLInternalNode - the C-level libxml representation of a node - to an explicit R-only object which contains the R values of the data in the internal node. } \usage{ asXMLNode(x) } \arguments{ \item{x}{the object to be converted to an \code{XMLNode} object. This is typically alread an object that inherits from \code{XMLNode} or a string.} } \value{ An object of class XMLNode. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlNode}} \code{\link{xmlTextNode}} } \examples{ # creates an XMLTextNode. asXMLNode("a text node") # unaltered. asXMLNode(xmlNode("p")) } \keyword{file} XML/man/append.XMLNode.Rd0000644000176000001440000000367711741563530014542 0ustar ripleyusers\name{append.xmlNode} \alias{append.xmlNode} \alias{append.XMLNode} \title{Add children to an XML node} \description{ This appends one or more XML nodes as children of an existing node. } \usage{ append.XMLNode(to, ...) append.xmlNode(to, ...) } \arguments{ \item{to}{the XML node to which the sub-nodes are to be added.} \item{\dots}{the sub-nodes which are to be added to the \code{to} node. If this is a \code{list} of \code{XMLNode} objects (e.g. create by a call to \code{\link{lapply}}), then that list is used.} } \value{ The original \code{to} node containing its new children nodes. } \references{\url{http://www.w3.org/XML}, \url{http://www.jclark.com/xml}, \url{http://www.omegahat.org} } \author{ Duncan Temple Lang } \seealso{ \code{\link{[<-.XMLNode}} \code{\link{[[<-.XMLNode}} \code{\link{[.XMLNode}} \code{\link{[[.XMLNode}} } \examples{ # Create a very simple representation of a simple dataset. # This is just an example. The result is # # # # A # # # B # # # # 1.2 3.5 # # # 20.2 13.9 # # # 10.1 5.67 # # n = xmlNode("data", attrs = c("numVars" = 2, numRecords = 3)) n = append.xmlNode(n, xmlNode("varNames", xmlNode("string", "A"), xmlNode("string", "B"))) n = append.xmlNode(n, xmlNode("record", "1.2 3.5")) n = append.xmlNode(n, xmlNode("record", "20.2 13.9")) n = append.xmlNode(n, xmlNode("record", "10.1 5.67")) print(n) \dontrun{ tmp <- lapply(references, function(i) { if(!inherits(i, "XMLNode")) i <- xmlNode("reference", i) i }) r <- xmlNode("references") r[["references"]] <- append.xmlNode(r[["references"]], tmp) } } \keyword{file} \keyword{IO} XML/man/addSibling.Rd0000644000176000001440000000572611741563530014063 0ustar ripleyusers \name{getSibling} \alias{getSibling} \alias{addSibling} \title{Manipulate sibling XML nodes} \description{ These functions allow us to both access the sibling node to the left or right of a given node and so walk the chain of siblings, and also to insert a new sibling } \usage{ getSibling(node, after = TRUE, ...) addSibling(node, ..., kids = list(...), after = NA) } \arguments{ \item{node}{the internal XML node (XMLInternalNode) whose siblings are of interest} \item{\dots}{the XML nodes to add as siblings or children to node.} \item{kids}{a list containing the XML nodes to add as siblings. This is equivalent to ... but used when we already have the nodes in a list rather than as individual objects. This is used in programmatic calls to \code{addSibling} rather interactive use where we more commonly have the individual node objects. } \item{after}{a logical value indicating whether to retrieve or add the nodes to the right (\code{TRUE}) or to the left (\code{FALSE}) of this sibling. } } \value{ \code{getSibling} returns an object of class XMLInternalNode (or some derived S3 class, e.g. XMLInternalTextNode) \code{addSibling} returns a list whose elements are the newly added XML (internal) nodes. } \seealso{ \code{\link{xmlChildren}}, \code{\link{addChildren}} \code{\link{removeNodes}} \code{\link{replaceNodes}} } \examples{ # Reading Apple's iTunes files # # Here we read a "censored" "database" of songs from Apple's iTune application # which is stored in a property list. The format is quite generic and # the fields for each song are given in the form # # ArtistPerson's name # # So to find the names of the artists for all the songs, we want to # find all the Artist nodes and then get their next sibling # which has the actual value. # # More information can be found in . # fileName = system.file("exampleData", "iTunes.plist", package = "XML") doc = xmlParse(fileName) nodes = getNodeSet(doc, "//key[text() = 'Artist']") sapply(nodes, function(x) xmlValue(getSibling(x))) f = system.file("exampleData", "simple.xml", package = "XML") tt = as(xmlParse(f), "XMLHashTree") tt e = getSibling(xmlRoot(tt)[[1]]) # and back to the first one again by going backwards along the sibling list. getSibling(e, after = FALSE) # This also works for multiple top-level "root" nodes f = system.file("exampleData", "job.xml", package = "XML") tt = as(xmlParse(f), "XMLHashTree") x = xmlRoot(tt, skip = FALSE) getSibling(x) getSibling(getSibling(x), after = FALSE) } \keyword{IO} XML/man/addNode.Rd0000644000176000001440000000344111741563530013351 0ustar ripleyusers\name{addNode} \alias{addNode} \alias{addNode.XMLHashTree} \title{Add a node to a tree} \description{ This generic function allows us to add a node to a tree for different types of trees. Currently it just works for XMLHashTree, but it could be readily extended to the more general XMLFlatTree class. However, the concept in this function is to change the tree and return the node. This does not work unless the tree is directly mutable without requiring reassignment, i.e. the changes do not induce a new copy of the original tree object. DOM trees which are lists of lists of lists do not fall into this category. } \usage{ addNode(node, parent, to, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{node}{the node to be added as a child of the parent.} \item{parent}{the parent node or identifier} \item{to}{the tree object} \item{\dots}{additional arguments that are understood by the different methods for the different types of trees/nodes. These can include \code{attrs}, \code{namespace}, \code{namespaceDefinitions}, \code{.children}.} } \value{ The new node object. For flat trees, this will be the \code{node} after it has been coerced to be compatible with a flat tree, i.e. has an id and the host tree added to it. } \references{\url{http://www.w3.org} } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlHashTree}} \code{\link{asXMLTreeNode}} } \examples{ tt = xmlHashTree() top = addNode(xmlNode("top"), character(), tt) addNode(xmlNode("a"), top, tt) b = addNode(xmlNode("b"), top, tt) c = addNode(xmlNode("c"), b, tt) addNode(xmlNode("c"), top, tt) addNode(xmlNode("c"), b, tt) addNode(xmlTextNode("Some text"), c, tt) xmlElementsByTagName(tt$top, "c") tt } \keyword{IO} \concept{tree} XML/man/addChildren.Rd0000644000176000001440000002140712160531414014206 0ustar ripleyusers\name{addChildren} \alias{addChildren} \alias{xmlParent<-} \alias{removeChildren} \alias{removeNodes} \alias{removeNodes.list} \alias{removeNodes.XMLNodeSet} \alias{removeNodes.XMLNodeList} \alias{removeNodes.XMLInternalNode} \alias{replaceNodes} \alias{addAttributes} \alias{removeAttributes} \alias{addChildren,XMLInternalNode-method} \alias{addChildren,XMLNode-method} \alias{addAttributes,XMLInternalElementNode-method} \alias{addAttributes,XMLNode-method} \alias{removeAttributes,XMLInternalElementNode-method} \alias{removeAttributes,XMLNode-method} \title{Add child nodes to an XML node} \description{ This collection of functions allow us to add, remove and replace children from an XML node and also to and and remove attributes on an XML node. These are generic functions that work on both internal C-level \code{XMLInternalElementNode} objects and regular R-level \code{XMLNode} objects. \code{addChildren} is similar to \code{\link{addNode}} and the two may be consolidated into a single generic function and methods in the future. } \usage{ addChildren(node, ..., kids = list(...), at = NA, cdata = FALSE, append = TRUE) removeChildren(node, ..., kids = list(...), free = FALSE) removeNodes(node, free = rep(FALSE, length(node))) replaceNodes(oldNode, newNode, ...) addAttributes(node, ..., .attrs = NULL, suppressNamespaceWarning = getOption("suppressXMLNamespaceWarning", FALSE), append = TRUE) removeAttributes(node, ..., .attrs = NULL, .namespace = FALSE, .all = (length(list(...)) + length(.attrs)) == 0) %xmlParent(node) = value } \arguments{ \item{node}{the XML node whose state is to be modified, i.e. to which the child nodes are to be added or whose attribute list is to be changed.} \item{\dots}{This is for use in interactive settings when specifying a collection of values individuall. In programming contexts when one obtains the collection as a vector or list from another call, use the \code{kids} or \code{.attrs} parameter. } \item{kids}{when adding children to a node, this is a list of children nodes which should be of the same "type" (i.e. internal or R-level nodes) as the \code{node} argument. However, they can also be regular strings in which case they are converted to XML text nodes. For \code{removeChildren}, this is again a list which identifies the child nodes to be removed using the integer identifier of the child, or the name of the XML node (but this will only remove the first such node and not necessarily do what you expect when there are multiple nodes with the same name), or the \code{XMLInternalNode} object itself. } \item{at}{if specified, an integer identifying the position in the original list of children at which the new children should be added. The children are added after that child. This can also be a vector of indices which is as long as the number of children being added and specifies the position for each child being added. If the vector is shorter than the number of children being added, it is padded with NAs and so the corresponding children are added at the end of the list. This parameter is only implemented for internal nodes at present. } \item{cdata}{a logical value which controls whether children that are specified as strings/text are enclosed within a CDATA node when converted to actual nodes. This value is passed on to the relevant function that creates the text nodes, e.g. \code{\link{xmlTextNode}} and \code{\link{newXMLTextNode}}. } \item{.attrs}{a character vector identifying the names of the attributes. These strings can have name space prefixes, e.g. \code{r:length} and the namespaces will be resolved relative to the list supported by \code{node} to ensure those namespaces are defined. } \item{.namespace}{This is currently ignored and may never be supported. The intent is to identify on which set of attributes the operation is to perform - the name space declarations or the regular node attributes. This is a logical value indicating if \code{TRUE} that the attributes of interested are name space declarations, i.e. of the form \code{xmlns:prefix} or \code{xmlns}. If a value of \code{FALSE} is supplied this indicates that we are identifying regular attributes. Note that we can still identify attributes with a name space prefix as, e.g., \code{ns:attr} without this value } \item{free}{a logical value indicating whether to free the C-level memory associated with the child nodes that were removed. \code{TRUE} means to free that memory. This is only applicable for the internal nodes created with \code{xmlTree} and \code{newXMLNode} and related functions. It is necessary as automated garbage collection is tricky in this tree-based context spanning both R and C data structures and memory managers. } \item{.all}{a logical value indicating whether to remove all of the attributes within the XML node without having to specify them by name.} \item{oldNode}{the node which is to be replaced} \item{newNode}{the node which is to take the place of \code{oldNode} in the list of children of the parent of \code{oldNode}} \item{suppressNamespaceWarning}{a logical value or a character string. This is used to control the situation when an XML node or attribute is created with a name space prefix that currently has no definition for that node. This is not necessarily an error but can lead to one. This argument controls whether a warning is issued or if a separate function is called. A value of \code{FALSE} means not to suppress the warning and so it is issued. A value of \code{TRUE} causes the potential problem to be ignored assuming that the namespace will be added to this node or one of its ancestors at a later point. And if this value is a character string, we search for a function of that name and invoke it. } \item{append}{a logical value that indicates whether (\code{TRUE}) the specified attributes or children should be added to the existing attributes on the XML node (if any exist), or, if \code{FALSE} these should replace any existing attributes.} } %\details{} \value{ Each of these functions returns the modified node. For an internal node, this is the same R object and only the C-level data structures have changed. For an R \code{XMLNode} object, this is is an entirely separate object from the original node. It must be inserted back into its parent "node" or context if the changes are to be seen in that wider context. } \references{ libxml2 \url{http://www.xmlsoft.org} } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTree}} \code{\link{newXMLNode}} } \examples{ b = newXMLNode("bob", namespace = c(r = "http://www.r-project.org", omg = "http://www.omegahat.org")) cat(saveXML(b), "\n") addAttributes(b, a = 1, b = "xyz", "r:version" = "2.4.1", "omg:len" = 3) cat(saveXML(b), "\n") removeAttributes(b, "a", "r:version") cat(saveXML(b), "\n") removeAttributes(b, .attrs = names(xmlAttrs(b))) addChildren(b, newXMLNode("el", "Red", "Blue", "Green", attrs = c(lang ="en"))) k = lapply(letters, newXMLNode) addChildren(b, kids = k) cat(saveXML(b), "\n") removeChildren(b, "a", "b", "c", "z") # can mix numbers and names removeChildren(b, 2, "e") # d and e cat(saveXML(b), "\n") i = xmlChildren(b)[[5]] xmlName(i) # have the identifiers removeChildren(b, kids = c("m", "n", "q")) x <- xmlNode("a", xmlNode("b", "1"), xmlNode("c", "1"), "some basic text") v = removeChildren(x, "b") # remove c and b v = removeChildren(x, "c", "b") # remove the text and "c" leaving just b v = removeChildren(x, 3, "c") \dontrun{ # this won't work as the 10 gets coerced to a # character vector element to be combined with 'w' # and there is no node name 10. removeChildren(b, kids = c(10, "w")) } # for R-level nodes (not internal) z = xmlNode("arg", attrs = c(default="TRUE"), xmlNode("name", "foo"), xmlNode("defaultValue","1:10")) o = addChildren(z, "some text", xmlNode("a", "a link", attrs = c(href = "http://www.omegahat.org/RSXML"))) o # removing nodes doc = xmlParse("bob") top = xmlRoot(doc) top removeNodes(list(top[[1]], top[[3]])) # a and c have disappeared. top } \keyword{IO } \keyword{programming} \concept{XML} \concept{document tree} XML/man/XMLNode-class.Rd0000644000176000001440000000374012030420663014355 0ustar ripleyusers\name{XMLNode-class} \docType{class} \alias{XMLAbstractNode-class} \alias{XMLAbstractNode-class} \alias{RXMLNode-class} \alias{XMLNode-class} \alias{XMLTreeNode-class} \alias{XMLInternalNode-class} \alias{XMLInternalTextNode-class} \alias{XMLInternalElementNode-class} \alias{XMLInternalCommentNode-class} \alias{XMLInternalPINode-class} \alias{XMLInternalCDataNode-class} \alias{XMLAttributeDeclNode-class} % Added later. Do they fit here. \alias{XMLDocumentFragNode-class} \alias{XMLDocumentNode-class} \alias{XMLDocumentTypeNode-class} \alias{XMLEntityDeclNode-class} \alias{XMLNamespaceDeclNode-class} \alias{XMLXIncludeStartNode-class} \alias{XMLXIncludeEndNode-class} \alias{XMLDTDNode-class} \alias{coerce,XMLAbstractNode,Date-method} \alias{coerce,XMLAbstractNode,POSIXct-method} \alias{coerce,XMLAbstractNode,URL-method} \alias{coerce,XMLAbstractNode,character-method} \alias{coerce,XMLAbstractNode,integer-method} \alias{coerce,XMLAbstractNode,logical-method} \alias{coerce,XMLAbstractNode,numeric-method} \alias{XMLNamespaceDefinitions-class} \title{Classes to describe an XML node object.} \description{These classes are intended to represent an XML node, either directly in S or a reference to an internal libxml node. Such nodes respond to queries about their name, attributes, namespaces and children. These are old-style, S3 class definitions at present. } \section{Slots}{ \describe{These are old-style S3 class definitions and do not have formal slots} } \section{Methods}{ No methods defined with class "XMLNode" in the signature. } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlTreeParse}} \code{\link{xmlTree}} \code{\link{newXMLNode}} \code{\link{xmlNode}} } \examples{ # An R-level XMLNode object a <- xmlNode("arg", attrs = c(default="T"), xmlNode("name", "foo"), xmlNode("defaultValue","1:10")) xmlAttrs(a) = c(a = 1, b = "a string") } \keyword{classes} XML/man/XMLInternalDocument.Rd0000644000176000001440000000415212031325133015633 0ustar ripleyusers\name{XMLInternalDocument-class} \docType{class} \alias{XMLAbstractDocument-class} %XXX put somewhere else. \alias{XMLInternalDocument-class} \alias{HTMLInternalDocument-class} \alias{coerce,XMLInternalNode,XMLInternalDocument-method} \alias{coerce,XMLInternalDocument,XMLInternalNode-method} \alias{coerce,XMLDocument,XMLInternalDocument-method} \title{Class to represent reference to C-level data structure for an XML document} \description{ This class is used to provide a handle/reference to a C-level data structure that contains the information from parsing parsing XML content. This leaves the nodes in the DOM or tree as C-level nodes rather than converting them to explicit R \code{XMLNode} objects. One can then operate on this tree in much the same way as one can the \code{XMLNode} representations, but we a) avoid copying the nodes to R, and b) can navigate the tree both down and up using \code{\link{xmlParent}} giving greater flexibility. Most importantly, one can use an \code{XMLInternalDocument} class object with an XPath expression to easily and relatively efficiently find nodes within a document that satisfy some criterion. See \code{\link{getNodeSet}}. } \section{Objects from the Class}{ Objects of this type are created via \code{\link{xmlTreeParse}} and \code{\link{htmlTreeParse}} with the argument \code{useInternalNodes} given as \code{TRUE}. } \section{Extends}{ Class \code{\linkS4class{oldClass}}, directly. } \section{Methods}{ There are methods to serialize (dump) a document to a file or as a string, and to coerce it to a node by finding the top-level node of the document. There are functions to search the document for nodes specified by an XPath expression. } \references{ XPath \url{http://www.w3.org/TR/xpath} } \seealso{ \code{\link{xmlTreeParse}} \code{\link{htmlTreeParse}} \code{\link{getNodeSet}} } \examples{ f = system.file("exampleData", "mtcars.xml", package="XML") doc = xmlParse(f) getNodeSet(doc, "//variables[@count]") getNodeSet(doc, "//record") getNodeSet(doc, "//record[@id='Mazda RX4']") # free(doc) } \keyword{classes} XML/man/XMLCodeFile-class.Rd0000644000176000001440000000570512030432514015143 0ustar ripleyusers\name{XMLCodeFile-class} %\Rdversion{1.1} \docType{class} \alias{XMLCodeFile-class} \alias{XMLCodeDoc-class} \alias{xmlCodeFile} \alias{[[,XMLCodeFile-method} %\alias{[[,XMLCodeFile,ANY,ANY-method} \alias{[[,XMLCodeFile,ANY-method} \alias{coerce,XMLCodeFile,XMLCodeDoc-method} \alias{coerce,character,XMLCodeDoc-method} \alias{coerce,character,XMLCodeFile-method} \alias{source,XMLCodeFile-method} \title{Simple classes for identifying an XML document containing R code} \description{ These two classes allow the user to identify an XML document or file as containing R code (amongst other content). Objects of either of these classes can then be passed to \code{\link{source}} to read the code into R and also used in \code{link{xmlSource}} to read just parts of it. \code{XMLCodeFile} represents the file by its name; \code{XMLCodeDoc} parses the contents of the file when the R object is created. Therefore, an \code{XMLCodeDoc} is a snapshot of the contents at a moment in time while an \code{XMLCodeFile} object re-reads the file each time and so reflects any "asynchronous" changes. } \section{Objects from the Class}{ One can create these objects using coercion methods, e.g \code{as("file/name", "XMLCodeFile")} or \code{as("file/name", "XMLCodeDoc")}. One can also use \code{xmlCodeFile}. } \section{Slots}{ \describe{ \item{\code{.Data}:}{Object of class \code{"character"}} } } \section{Extends}{ Class \code{"\linkS4class{character}"}, from data part. Class \code{"\linkS4class{vector}"}, by class "character", distance 2. %Class \code{"\linkS4class{data.frameRowLabels}"}, by class "character", distance 2. %Class \code{"\linkS4class{EnumerationValue}"}, by class "character", distance 2. %Class \code{"\linkS4class{NodeIndex}"}, by class "character", distance 2. %Class \code{"\linkS4class{RAnonymousFunctionOrCode}"}, by class "character", distance 2. } \section{Methods}{ \describe{ \item{[[}{\code{signature(x = "XMLCodeFile", i = "ANY", j = "ANY")}: this method allows one to retrieve/access an individual R code element in the XML document. This is typically done by specifying the value of the XML element's "id" attribute. } \item{coerce}{\code{signature(from = "XMLCodeFile", to = "XMLCodeDoc")}: parse the XML document from the "file" and treat the result as a \code{XMLCodeDoc} object. } \item{source}{\code{signature(file = "XMLCodeFile")}: read and evaluate all the R code in the XML document. For more control, use \code{\link{xmlSource}}.} } } \author{Duncan Temple Lang} \seealso{ \code{\link{xmlSource}} } \examples{ src = system.file("exampleData", "Rsource.xml", package = "XML") # mark the string as an XML file containing R code k = xmlCodeFile(src) # read and parse the code, but don't evaluate it. code = xmlSource(k, eval = FALSE) # read and evaluate the code in a special environment. e = new.env() ans = xmlSource(k, envir = e) ls(e) } \keyword{classes} XML/man/XMLAttributes-class.Rd0000644000176000001440000000262012031045567015621 0ustar ripleyusers\name{XMLAttributes-class} \Rdversion{1.1} \docType{class} \alias{XMLAttributes-class} \alias{[,XMLAttributes-method} \alias{show,XMLAttributes-method} \title{Class \code{"XMLAttributes"}} \description{A simple class to represent a named character vector of XML attributes some of which may have a namespace. This maintains the name space} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("XMLAttributes", ...)}. These are typically generated via a call to \code{\link{xmlAttrs}}. } \section{Slots}{ \describe{ \item{\code{.Data}:}{Object of class \code{"character"}} } } \section{Extends}{ Class \code{"\linkS4class{character}"}, from data part. Class \code{"\linkS4class{vector}"}, by class "character", distance 2. Class \code{"\linkS4class{data.frameRowLabels}"}, by class "character", distance 2. Class \code{"\linkS4class{SuperClassMethod}"}, by class "character", distance 2. } \section{Methods}{ \describe{ \item{[}{\code{signature(x = "XMLAttributes")}: ... } \item{show}{\code{signature(object = "XMLAttributes")}: ... } } } \author{ Duncan Temple Lang } \seealso{ \code{\link{xmlAttrs}} \code{\link{newXMLNode}} \code{\link{xmlParse}} } \examples{ nn = newXMLNode("foo", attrs = c(a = "123", 'r:show' = "true"), namespaceDefinitions = c(r = "http://www.r-project.org")) a = xmlAttrs(nn) a["show"] } \keyword{classes} XML/man/SAXState-class.Rd0000644000176000001440000000717012160531335014547 0ustar ripleyusers\name{SAXState-class} \docType{class} \alias{SAXState-class} \title{A virtual base class defining methods for SAX parsing} \description{ This is a degenerate virtual class which others are expected to sub-class when they want to use S4 methods as handler functions for SAX-based XML parsing. The idea is that one can pass both i) a collection of handlers to \code{\link{xmlEventParse}} which are simply the generic functions for the different SAX actions, and ii) a suitable object to maintain state across the different SAX calls. This is used to perform the method dispatching to get the appropriate behavior for the action. Each of these methods is expected to return the updated state object and the SAX parser will pass this in the next callback. We define this class here so that we can provide default methods for each of the different handler actions. This allows other programmers to define new classes to maintain state that are sub-class of \code{SAXState} and then they do not have to implement methods for each of the different handlers. } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Methods}{ \describe{ \item{comment.SAX}{\code{signature(content = "ANY", .state = "SAXState")}: ... } \item{endElement.SAX}{\code{signature(name = "ANY", .state = "SAXState")}: ... } \item{entityDeclaration.SAX}{\code{signature(name = "ANY", base = "ANY", sysId = "ANY", publicId = "ANY", notationName = "ANY", .state = "SAXState")}: ... } \item{processingInstruction.SAX}{\code{signature(target = "ANY", content = "ANY", .state = "SAXState")}: ... } \item{startElement.SAX}{\code{signature(name = "ANY", atts = "ANY", .state = "SAXState")}: ... } \item{text.SAX}{\code{signature(content = "ANY", .state = "SAXState")}: ... } } } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}} \author{Duncan Temple Lang} \seealso{ \code{\link{xmlEventParse}} } \examples{ # For each element in the document, grab the node name # and increment the count in an vector for this name. # We define an S4 class named ElementNameCounter which # holds the vector of frequency counts for the node names. setClass("ElementNameCounter", representation(elements = "integer"), contains = "SAXState") # Define a method for handling the opening/start of any XML node # in the SAX streams. setMethod("startElement.SAX", c(.state = "ElementNameCounter"), function(name, atts, .state = NULL) { if(name \%in\% names(.state@elements)) .state@elements[name] = as.integer(.state@elements[name] + 1) else .state@elements[name] = as.integer(1) .state }) filename = system.file("exampleData", "eurofxref-hist.xml.gz", package = "XML") # Parse the file, arranging to have our startElement.SAX method invoked. z = xmlEventParse(filename, genericSAXHandlers(), state = new("ElementNameCounter"), addContext = FALSE) z@elements # Get the contents of all the comments in a character vector. setClass("MySAXState", representation(comments = "character"), contains = "SAXState") setMethod("comment.SAX", c(.state = "MySAXState"), function(content, .state = NULL) { cat("comment.SAX called for MySAXState\n") .state@comments <- c(.state@comments, content) .state }) filename = system.file("exampleData", "charts.svg", package = "XML") st = new("MySAXState") z = xmlEventParse(filename, genericSAXHandlers(useDotNames = TRUE), state = st) z@comments } \keyword{classes} XML/man/SAXMethods.Rd0000644000176000001440000000447111741563530013776 0ustar ripleyusers\name{startElement.SAX} \alias{startElement.SAX} \alias{endElement.SAX} \alias{text.SAX} \alias{comment.SAX} \alias{processingInstruction.SAX} \alias{entityDeclaration.SAX} \alias{.InitSAXMethods} \alias{text.SAX,ANY,SAXState-method} \alias{comment.SAX,ANY,SAXState-method} \alias{endElement.SAX,ANY,SAXState-method} \alias{startElement.SAX,ANY,ANY,SAXState-method} \alias{processingInstruction.SAX,ANY,ANY,SAXState-method} \alias{entityDeclaration.SAX,ANY,ANY,ANY,ANY,ANY,SAXState-method} \title{Generic Methods for SAX callbacks} \description{ This is a collection of generic functions for which one can write methods so that they are called in repsonse to different SAX events. The idea is that one defines methods for different classes of the \code{.state} argument and dispatch to different methods based on that argument. The functions represent the different SAX events. } \usage{ startElement.SAX(name, atts, .state = NULL) endElement.SAX(name, .state = NULL) comment.SAX(content, .state = NULL) processingInstruction.SAX(target, content, .state = NULL) text.SAX(content, .state = NULL) entityDeclaration.SAX(name, base, sysId, publicId, notationName, .state = NULL) .InitSAXMethods(where = "package:XML") } %- maybe also `usage' for other objects documented here. \arguments{ \item{name}{the name of the XML element or entity being declared} \item{atts}{named character vector of XML attributes} \item{content}{the value/string in the processing instruction or comment} \item{target}{the target of the processing instruction, e.g. the R in \code{}} \item{base}{x} \item{sysId}{the system identifier for this entity} \item{publicId}{the public identifier for the entity} \item{notationName}{name of the notation specification} \item{.state}{the state object on which the user-defined methods should dispatch.} \item{where}{the package in which the class and method definitions should be defined. This is almost always unspecified.} } \value{ Each method should return the (potentially modified) state value. } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}} \author{Duncan Temple Lang} \note{ This no longer requires the Expat XML parser to be installed. Instead, we use libxml's SAX parser.} \seealso{ \code{\link{xmlEventParse}} } %\examples{} \keyword{file} XML/man/Doctype.Rd0000644000176000001440000000362012160531304013407 0ustar ripleyusers\name{Doctype} \alias{Doctype} \alias{coerce,Doctype,character-method} \title{Constructor for DTD reference} \description{ This is a constructor for the \code{Doctype} class that can be provided at the top of an XML document to provide information about the class of document, i.e. its DTD or schema. Also, there is a method for converting such a \code{Doctype} object to a character string. } \usage{ Doctype(system = character(), public = character(), name = "") } \arguments{ \item{system}{the system URI that locates the DTD. } \item{public}{the identifier for locating the DTD in a catalog, for example. This should be a character vector of length 2, giving the public identifier and a URI. If just the public identifier is given and a string is given for \code{system} argument, the \code{system} value is used as the second element of \code{public}. The public identifer should be of the form \code{+//creator//name//language} where the first element is either + or -, and the language is described by a code in the ISO 639 document. } \item{name}{the name of the root element in the document. This should be the first parameter, but is left this way for backward compatability. And } } \value{ An object of class \code{Doctype}. } \references{\url{http://www.w3.org/XML} XML Elements of Style, Simon St. Laurent. } \author{ Duncan Temple Lang } \seealso{ \code{\link{saveXML}} } \examples{ d = Doctype(name = "section", public = c("-//OASIS//DTD DocBook XML V4.2//EN", "http://oasis-open.org/docbook/xml/4.2/docbookx.dtd")) as(d, "character") # this call switches the system to the URI associated with the PUBLIC element. d = Doctype(name = "section", public = c("-//OASIS//DTD DocBook XML V4.2//EN"), system = "http://oasis-open.org/docbook/xml/4.2/docbookx.dtd") } \keyword{IO} XML/man/Doctype-class.Rd0000644000176000001440000000270612160531242014517 0ustar ripleyusers\name{Doctype-class} \docType{class} \alias{Doctype-class} \title{Class to describe a reference to an XML DTD} \description{This class is intended to identify a DTD by SYSTEM file and/or PUBLIC catalog identifier. This is used in the DOCTYPE element of an XML document.} \section{Objects from the Class}{ Objects can be created by calls to the constructor function \code{\link{Doctype}}. } \section{Slots}{ \describe{ \item{\code{name}:}{Object of class \code{"character"}. This is the name of the top-level element in the XML document.} \item{\code{system}:}{Object of class \code{"character"}. This is the name of the file on the system where the DTD document can be found. Can this be a URI?} \item{\code{public}:}{Object of class \code{"character"}. This gives the PUBLIC identifier for the DTD that can be searched for in a catalog, for example to map the DTD reference to a local system element.} } } \section{Methods}{ There is a constructor function and also methods for \code{\link[methods]{coerce}} to convert an object of this class to a character. } \references{\url{http://www.w3.org/XML}, \url{http://www.xmlsoft.org}} \author{Duncan Temple Lang} \seealso{ \code{\link{Doctype}} \code{\link{saveXML}} } \examples{ d = Doctype(name = "section", public = c("-//OASIS//DTD DocBook XML V4.2//EN", "http://oasis-open.org/docbook/xml/4.2/docbookx.dtd")) } \keyword{classes} XML/man/AssignXMLNode.Rd0000644000176000001440000000252411741563530014427 0ustar ripleyusers\name{[<-.XMLNode} \alias{[<-.XMLNode} \alias{[[<-.XMLNode} \title{Assign sub-nodes to an XML node} \description{ These functions allow one to assign a sub-node to an existing XML node by name or index. These are the assignment equivalents of the subsetting accessor functions. They are typically called indirectly via the assignment operator, such as \code{x[["myTag"]] <- xmlNode("mySubTag")}. } \usage{ \method{[}{XMLNode}(x, i) <- value \method{[}{XMLNode}(x, i) <- value \method{[[}{XMLNode}(x, i) <- value } \arguments{ \item{x}{the \code{XMLNode} object to which the sub-node is to be assigned.} \item{i}{the identifier for the position in the list of children of \code{x} into which the right-hand-side node(s) should be assigned. These can be either numbers or names.} \item{value}{one or more \code{XMLNode} objects which are to be the sub-nodes of \code{x}.} } \value{ The XML node \code{x} containing the new or modified nodes. } \references{\url{http://www.w3.org}, \url{http://www.omegahat.org/RSXML}} \author{Duncan Templle Lang} \seealso{ \code{\link{[.XMLNode}} \code{\link{[[.XMLNode}} \code{\link{append.xmlNode}} \code{\link{xmlSize}} } \examples{ top <- xmlNode("top", xmlNode("next","Some text")) top[["second"]] <- xmlCDataNode("x <- 1:10") top[[3]] <- xmlNode("tag",attrs=c(id="name")) } \keyword{IO} \keyword{file} XML/libxml2.9.R0000644000176000001440000000056412157337260012620 0ustar ripleyuserslibrary(XML) f <- system.file("exampleData", "gnumeric.xml", package = "XML") startElement = function(x, ...) cat(x, "\n") xmlEventParse(file(f), handlers = list(startElement = startElement)) if(FALSE) { con = file(f, "r") g = function(...) { browser(); cat("here\n"); readLines(con, 1) } xmlEventParse(g, handlers = list(startElement = startElement)) close(con) } XML/libxml/0000755000176000001440000000000011741563530012236 5ustar ripleyusersXML/libxml/PATCH.attribute0000644000176000001440000000304611741563530015025 0ustar ripleyusers*** SAX.c~ Thu Sep 23 17:55:27 1999 --- SAX.c Sun Dec 12 13:39:53 1999 *************** endDocument(void *ctx) *** 507,513 **** * the element. */ void ! attribute(void *ctx, const xmlChar *fullname, const xmlChar *value) { xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; xmlAttrPtr ret; --- 507,513 ---- * the element. */ void ! Myxml_attribute(void *ctx, const xmlChar *fullname, const xmlChar *value) { xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; xmlAttrPtr ret; *************** startElement(void *ctx, const xmlChar *f *** 678,684 **** value = atts[i++]; while ((att != NULL) && (value != NULL)) { if ((att[0] == 'x') && (att[1] == 'm') && (att[2] == 'l')) ! attribute(ctxt, att, value); att = atts[i++]; value = atts[i++]; --- 678,684 ---- value = atts[i++]; while ((att != NULL) && (value != NULL)) { if ((att[0] == 'x') && (att[1] == 'm') && (att[2] == 'l')) ! Myxml_attribute(ctxt, att, value); att = atts[i++]; value = atts[i++]; *************** startElement(void *ctx, const xmlChar *f *** 694,700 **** value = atts[i++]; while ((att != NULL) && (value != NULL)) { if ((att[0] != 'x') || (att[1] != 'm') || (att[2] != 'l')) ! attribute(ctxt, att, value); /* * Next ones --- 694,700 ---- value = atts[i++]; while ((att != NULL) && (value != NULL)) { if ((att[0] != 'x') || (att[1] != 'm') || (att[2] != 'l')) ! Myxml_attribute(ctxt, att, value); /* * Next ones XML/libxml/GNUmakefile0000644000176000001440000000076211741563530014315 0ustar ripleyusersCC=gcc ifeq ($(CC),gcc) # Use with gcc. PIC_FLAG=-fpic PIC_LD_FLAG=-shared else # Use with Solaris compilers. PIC_FLAG=-Kpic PIC_LD_FLAG=-G endif CFLAGS=-DLIBXML_VERSION="\"1\"" $(PIC_FLAG) SRC=$(shell ls *.c) SRC=\ HTMLparser.c \ HTMLtree.c \ SAX.c \ debugXML.c \ encoding.c \ entities.c \ error.c \ nanohttp.c \ parser.c \ tree.c \ valid.c \ xmlIO.c \ xmlmemory.c \ xpath.c OBJS=$(SRC:%.c=%.o) %.o: %.c $(CC) $(CFLAGS) -c $< libxml.so: $(OBJS) $(CC) $(PIC_LD_FLAG) -o $@ $(OBJS)XML/inst/0000755000176000001440000000000012031324713011713 5ustar ripleyusersXML/inst/scripts/0000755000176000001440000000000012160210575013405 5ustar ripleyusersXML/inst/scripts/RSXML.csh.in0000644000176000001440000000025211741563530015423 0ustar ripleyusersif(`test -n "@LD_PATH@"`) then if(${?LD_LIBRARY_PATH}) then setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:@LD_PATH@ else setenv LD_LIBRARY_PATH @LD_PATH@ endif endifXML/inst/scripts/RSXML.bsh.in0000644000176000001440000000014711741563530015425 0ustar ripleyusersif test -n "@LD_PATH@" ; then LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:@LD_PATH@ export LD_LIBRARY_PATH fiXML/inst/examples/0000755000176000001440000000000012160210576013535 5ustar ripleyusersXML/inst/examples/yeast_small-01.xml0000644000176000001440001402224211741563530017026 0ustar ripleyusers European Bioinformatics Institute Wellcome Trust Genome Campus, Hinxton, Cambridge, CB10 1SD, United Kingdom http://www.ebi.ac.uk uetz-2000-2 A comprehensive analysis of protein-protein interactions in Saccharomyces cerevisiae. yeast Saccharomyces cerevisiae two hybrid two hybrid 2H two-hybrid 2h nucleotide sequence nucleotide sequence identification sequence cloning http://depts.washington.edu./sfields/yp_interactions/index.html The interactions attached to this experiment include recent two-hybrid data that was filtered for false-positives but not as rigorously as the data in uetz-2000-ex1. Uetz P., Giot L., Cagney G., Mansfield TA., Judson RS., Knight JR., Lockshon D., Narayan V., Srinivasan M., Pochart P., Qureshi-Emili A., Li Y., Godwin B., Conover D., Kalbfleisch T., Vijayadamodar G., Yang M., Johnston M., Fields S., Rothberg JM. 2000 Nature (0028-0836) abp1_yeast Actin-binding protein ABP1 YCR088W YCR88W protein protein yeast Saccharomyces cerevisiae ALEPIDYTTHSREIDAEYLKIVRGSDPDTTWLIISPNAKKEYEPESTGSSFHDFLQLFDETKVQYGLARVSPPGSDVEKIIIIGWCPDSAPLKTRASFAANFAAVANNLFKGYHVQVTARDEDDLDENELLMKISNAAGARYSIQTSSKQQGKASTPPVKKSFTPSKSPAPVSKKEPVKTPSPAPAAKISSRVNDNNDDDDWNEPELKERDFDQAPLKPNQSSYKPIGKIDLQKVIAEEKAKEDPRLVQKPTAAGSKIDPSSDIANLKNESKLKRDSEFNSFLGTTKPPSMTESSLKNDDDKVIKGFRNEKSPAQLWAERKAKQNSGNAETKAEAPKPEVPEDEPEGEPDVKDLKSKFEGLAASEKEEEEMENKFAPPPKKSEPTIISPKPFSKPQEPVKAEEAEQPKTDYKKIGNPLPGMHIEADNEEEPEENDDDWDDDEDEAAQPPLPSRNVASGAPVQKEEPEQEEIAPSLPSRNSIPAPKQEEAPEQAPEEEIEEEAEEAAPQLPSRSSAAPPPPPRRATPEKKPKENPWATAEYDYDAAEDNELTFVENDKIINIEFVDDDWWLGELEKDGSKGLFPSNYVSLGN cla4_yeast Serine/threonine-protein kinase CLA4 CLA4 YNL298W N0450 protein protein yeast Saccharomyces cerevisiae MSLSAAANKISDNDFQNIGPAPRPPSSNSQGRTCYNQTQPITKLMSQLDLTSASHLGTSTSKKKSGWVSYKDDGILSFIWQKRYLMLHDSYVALYKNDKQNDDAILKIPLTSIISVSRTQLKQYCFELVRCSDRNSVSSGSSSSLNVSSDSNSKKSIYIATKTESDLHSWLDAIFAKCPLLSGVSSPTNFTHKVHVGFDPETGSFVGMPTNWEKLLKHSRITGEDWNNNSAAVIQVLQFYQEYNGAGNPTNTLDKPQSGETSSSQKSLPNSYNDNKLRNNSVNSKSSSGVSSSMVSQRKTSQPPNTKSPVSLGSGSLPPINTKLPTSQSNIPRHLQNVPNQQYPKMRNGHSPTNGQFPRGPMHPNNSQRSLQQQQQQQQQQKQQHQQYPYHHQGPSPSPSPSPSPLNPYRPHHNMINPYSKQPQSPLSSQSTQNQAIPRYAQNSSPTAAHFQPQRTAPKPPISAPRAPYPSNQNATSNTHVQPVAPKNDQSTPQTMRQAPKRPDADVAQPGGVAKPKKPARPTMSTAEIMSKLKKVTVNADPSQCFKVIEKAGQGASGSVYLAERTHIPTESNMIELINNDIDEPHVGDKVAIKQMVLSKQPRKELIVNEILVMKDSRHKNIVNFLEAYLRTDDDLWVVMEFMEGGSLTDIIENSPTNDNSHSPLTEPQIAYIVRETCQGLKFLHDKHIIHRDIKSDNVLLDTRARVKITDFGFCARLTDKRSKRATMVGTPYWMAPEVVKQREYDEKIDVWSLGIMTIEMLEGEPPYLNEDPLKALYLIATNGTPKLKHPESLSLEIKRFLSVCLCVDVRYRASTEELLHHGFFNMACDPKDLTSLLEWKE q12134_yeast Hypothetical protein HUA2 protein protein yeast Saccharomyces cerevisiae MQQTKFGKMYLDHDSVVEYSEDEIVEADRITLGYKKRLSMIENQMRHLLEDFSLDVQQIEPILADLQKYYDAFLQLLQKRNKSLQCKRSTHQPVPSPMNSQTSTNAKVNLSGKLMKFQLNSVQKFDEENILRILQNKIEFEHYFQIDKGKKQKVLLLAVYQCLNGPTRLHKVLNIEGIIHNNSIRTILGKQVSSSKWTVFLYDVKLVLLAHRQDVPNLETSKMIVRYGDLFPCALYFKDHTAY cap_yeast Adenylyl cyclase-associated protein SRV2 CAP1 YNL138W N1210 N1838 protein protein yeast Saccharomyces cerevisiae MPDSKYTMQGYNLVKLLKRLEEATARLEDVTIYQEGYIQNKLEASKNNKPSDSGADANTTNEPSAENAPEVEQDPKCITAFQSYIGENIDPLVELSGKIDTVVLDALQLLKGGFQSQLTFLRAAVRSRKPDYSSQTFADSLRPINENIIKLGQLKESNRQSKYFAYLSALSEGAPLFSWVAVDTPVSMVTDFKDAAQFWTNRILKEYRESDPNAVEWVKKFLASFDNLKAYIKEYHTTGVSWKKDGMDFADAMAQSTKNTGATSSPSPASATAAPAPPPPPPAPPASVFEISNDTPATSSDANKGGIGAVFAELNQGENITKGLKKVDKSQQTHKNPELRQSSTVSSTGSKSGPPPRPKKPSTLKTKRPPRKELVGNKWFIENYENETESLVIDANKDESIFIGKCSQVLVQIKGKVNAISLSETESCSVVLDSSISGMDVIKSNKFGIQVNHSLPQISIDKSDGGNIYLSKESLNTEIYTSCSTAINVNLPIGEDDDYVEFPIPEQMKHSFADGKFKSAVFEHAG act_yeast Actin ACT1 ABY1 END7 YFL039C protein protein yeast Saccharomyces cerevisiae MDSEVAALVIDNGSGMCKAGFAGDDAPRAVFPSIVGRPRHQGIMVGMGQKDSYVGDEAQSKRGILTLRYPIEHGIVTNWDDMEKIWHHTFYNELRVAPEEHPVLLTEAPMNPKSNREKMTQIMFETFNVPAFYVSIQAVLSLYSSGRTTGIVLDSGDGVTHVVPIYAGFSLPHAILRIDLAGRDLTDYLMKILSERGYSFSTTAEREIVRDIKEKLCYVALDFEQEMQTAAQSSSIEKSYELPDGQVITIGNERFRAPEALFHPSVLGLESAGIDQTTYNSIMKCDVDVRKELYGNIVMSGGTTMFPGIAERMQKEITALAPSSMKVKIIAPPERKYSVWIGGSILASLTTFQQMWISKQEYDESGPSIVHHKCF aip1_yeast Actin-interacting protein 1 AIP1 YMR092C YM9582.17C protein protein yeast Saccharomyces cerevisiae MSSISLKEIIPPQPSTQRNFTTHLSYDPTTNAIAYPCGKSAFVRCLDDGDSKVPPVVQFTGHGSSVVTTVKFSPIKGSQYLCSGDESGKVIVWGWTFDKESNSVEVNVKSEFQVLAGPISDISWDFEGRRLCVVGEGRDNFGVFISWDSGNSLGEVSGHSQRINACHLKQSRPMRSMTVGDDGSVVFYQGPPFKFSASDRTHHKQGSFVRDVEFSPDSGEFVITVGSDRKISCFDGKSGEFLKYIEDDQEPVQGGIFALSWLDSQKFATVGADATIRVWDVTTSKCVQKWTLDKQQLGNQQVGVVATGNGRIISLSLDGTLNFYELGHDEVLKTISGHNKGITALTVNPLISGSYDGRIMEWSSSSMHQDHSNLIVSLDNSKAQEYSSISWDDTLKVNGITKHEFGSQPKVASANNDGFTAVLTNDDDLLILQSFTGDIIKSVRLNSPGSAVSLSQNYVAVGLEEGNTIQVFKLSDLEVSFDLKTPLRAKPSYISISPSETYIAAGDVMGKILLYDLQSREVKTSRWAFHTSKINAISWKPAEKGANEEEIEEDLVATGSLDTNIFIYSVKRPMKIIKALNAHKDGVNNLLWETPSTLVSSGADACIKRWNVVLE arf2_yeast ADP-ribosylation factor 2 ARF2 YDL137W D2165 protein protein yeast Saccharomyces cerevisiae GLYASKLFSNLFGNKEMRILMVGLDGAGKTTVLYKLKLGEVITTIPTIGFNVETVQYKNISFTVWDVGGQDRIRSLWRHYYRNTEGVIFVIDSNDRSRIGEAREVMQRMLNEDELRNAVWLVFANKQDLPEAMSAAEITEKLGLHSIRNRPWFIQSTCATSGEGLYEGLEWLSNNLKNQS trpf_yeast N-(5'-phosphoribosyl)anthranilate isomerase TRP1 YDR007W protein protein yeast Saccharomyces cerevisiae MSVINFTGSSGPLVKVCGLQSTEAAECALDSDADLLGIICVPNRKRTIDPVIARKISSLVKAYKNSSGTPKYLVGVFRNQPKEDVLALVNDYGIDIVQLHGDESWQEYQEFLGLPVIKRLVFPKDCNILLSAASQKPHSFIPLFDSEAGGTGELLDWNSISDWVGRQESPESLHFMLAGGLTPENVGDALRLNGVIGVDVSGGVETNGVKDSNKIANFVKNAKK arl3_yeast ADP-ribosylation factor-like protein 3 ARL3 ARP1 YPL051W protein protein yeast Saccharomyces cerevisiae MFHLVKGLYNNWNKKEQYSILILGLDNAGKTTFLETLKKEYSLAFKALEKIQPTVGQNVATIPVDSKQILKFWDVGGQESLRSMWSEYYSLCHGIIFIVDSSDRERLDECSTTLQSVVMDEEIEGVPILMLANKQDRQDRMEVQDIKEVFNKIAEHISARDSRVLPISALTGEGVKDAIEWMIVRLERNKKSRPPIYK q6q5f3_yeast YPR053C protein protein yeast Saccharomyces cerevisiae MMYRTTLNTVQVSQISGAEFYPHASSRAILFESPAFCRLFFSPFVYLAVGKQTTQYLLLVPTVKEGLFWDVFFSCFCSIDYPIHSKAQSQWSPQENLRREPLERRRTQMPLRGLCPPTCFSLTKTEILFVLKIQISHLDKSARSWVRSGRL erg28_yeast Ergosterol biosynthetic protein 28 YER044C ERG28 BUD18 protein protein yeast Saccharomyces cerevisiae MFSLQDVITTTKTTLAAMPKGYLPKWLLFISIVSVFNSIQTYVSGLELTRKVYERKPTETTHLSARTFGTWTFISCVIRFYGAMYLNEPHIFELVFMSYMVALFHFGSELLIFRTCKLGKGFMGPLVVSTTSLVWMYKQREYYTGVAW mnd1_yeast Meiotic nuclear division protein 1 YGL183C G1604 MND1 protein protein yeast Saccharomyces cerevisiae MGPKRQTVSLQEKKNRILNFFQETYTFYNIKELEKSIPKKCGISPMIVKDLVQQMIDEDGVISVEKCGNINIYWCFKNQTLQKLYDSSELIKKKIQEVKCDIATYKQELDKTLATGRRKKFTVGQKSYNREALLEKRKKIQDEIKKKSNSLQKIESIRWDAAKIQENKQQIRLKKVHLEKTTDNIEILIDYLYKKFFLKPEQIRKEFGIPEEFKEFTEV yg55_yeast Very hypothetical 11.6 kDa protein in PFK1-TDS4 intergenic region YGR242W protein protein yeast Saccharomyces cerevisiae MVQAVSDNLISNAWVISCNPLALEVPERIGSTYFCFGGAIFILVAPLTNLVYNEDIVSQTRLYIYYRGSRDSRACMLDIVTLVDVSKRSKLVLLLQIYFFSF asf1_yeast Anti-silencing protein 1 ASF1 YJL115W J0755 protein protein yeast Saccharomyces cerevisiae MSIVSLLGIKVLNNPAKFTDPYEFEITFECLESLKHDLEWKLTYVGSSRSLDHDQELDSILVGPVPVGVNKFVFSADPPSAELIPASELVSVTVILLSCSYDGREFVRVGYYVNNEYDEEELRENPPAKVQVDHIVRNILAEKPRVTRFNIVWDNENEGDLYPPEQPGVDDEEEEDDEEEDDDEDDEDDEDDDQEDGEGEAEEAAEEEEEEEEKTEDNETNLEEEEEDIENSDGDEEEGEEEVGSVDKNEDGNDKKRRKIEGGSTDIESTPKDAARSTN ym56_yeast Hypothetical 28.9 kDa protein in CLN1-RAD14 intergenic region YMR200W YM8325.01 protein protein yeast Saccharomyces cerevisiae MWSKKFTLKKLILGGYLFAQKVYCEDESNSIYGTWSSKSNQVFTGPGFYDPVDELLIEPSLPGLSYSFTEDGWYEEATYQVSGNPRNPTCPMASLIYQHGTYNISENGTLVLNPIEVDGRQLFSDPCNDDGVSTYSRYNQTETFKEYAVGIDPYHGIYTLQLYQYDGTPMQPLYLAYRPPMMLPTETLNPTSSATSTDDPSSNKKRSLRSLVRRSLENRHKTNAIKRQNTSFLTSNAIWYISAGMLGVGSLLFLAF bdf1_yeast BDF1 protein BDF1 YLR399C L8084.18 protein protein yeast Saccharomyces cerevisiae MTDITPVQNDVDVNGNNVNDDVSSNLKRPIDQGDPSNGLAEEENPANNQLHLKKARLDGDALTSSPAGLAENGIEGATLAANGENGYNATGSGAEDEQQGLKKEEGGQGTKQEDLDENSKQELPMEVPKEPAPAPPPEPDMNNLPQNPIPKHQQKHALLAIKAVKRLKDARPFLQPVDPVKLDIPFYFNYIKRPMDLSTIERKLNVGAYEVPEQITEDFNLMVNNSIKFNGPNAGISQMARNIQASFEKHMLNMPAKDAPPVIAKGRRSSAQEDAPIVIRRAQTHNGRPKRTIHPPKSKDIYPYESKKPKSKRLQQAMKFCQSVLKELMAKKHASYNYPFLEPVDPVSMNLPTYFDYVKEPMDLGTIAKKLNDWQYQTMEDFERDVRLVFKNCYTFNPDGTIVNMMGHRLEEVFNSKWADRPNLDDYDSDEDSRTQGDYDDYESEYSESDIDETIITNPAIQYLEEQLARMKVELQQLKKQELEKIRKERRLARGSKKRGKRSKGRSGSKNASSKGRRDKKNKLKTVVTYDMKRIITERINDLPTSKLERAIDIIKKSMPNISEDDEVELDLDTLDNHTILTLYNTFFRQYESSSGASNGLDGTSGVTRDASSLSPTSAGSRKRRSKALSQEEQSRQIEKIKNKLAILDSASPLSQNGSPGQIQSAAHNGFSSSSDDDVSSESEEE yia2_yeast Hypothetical 108.4 kDa protein in BET1-PAN1 intergenic region YIL002C YIA2C protein protein yeast Saccharomyces cerevisiae MRLFIGRRSRSIVISSNNYCLSFQRLRSIPGASSQQRQLSKTPSVTIKSYPDTDLSSDSNYLEVKSCIFNGLLGLVCLNGDIYVAVISGVQNVGFPRWKLIDHQVRPSESIYKVLDVDFYSLENDVFDYLLCERSEQNYDKLIHEHPCGPLKKLFSDGTFYYSRDFDISNIVKNHGLSHNLEYTVDNQDLSFIWNANLASEVINWRSKISNEEKQLFANAGFLTFVIRGYCKTALIEDGPNTASITIISRISTESKQDTLELEGISEDGRVSLFVETEIVVTTEKFIFSYTQVNGSIPLFWESVESQLLYGKKIKVTKDSIEAQGAFDRHFDNLTSKYGVVSIVNIIKPKSESQEKLALTYKDCAESKGIKITNIEYSSSVLTKSPHKLLYLLKQDIYEFGAFAYDISRGIYFAKQTGVLRISAFDSIEKPNTVERLVSKEVLELTTNEIDVFELTSPFLDAHDKLWSENYYWLDRTYTKHTKNSGKYTKVYSKLFGSRVRLYDPLHIYISQYLKQLRSKYTFEKDISIFAGTFNISGKIPKDDIKDWIFPKSMSKEDEMADLYVIGLEEVVELTPGHMLATDPYVRQFWEKKILTLLNGPGRKKKYIRLWSTQLGGILLLLFMNETEYSKVKHIEGDVKKTGFGGMASNKGAVAVSFKYSATRFCVLVSHLAAGLENVEQRHNDYKTIAKSIRFSKGLRIKDHDAIIWMGDFNYRILMSNEDVRRKIVSKEYASLFEKDQLNQQMIAGESFPYFHEMAIDFPPTYKFDPGTKNYDTSEKMRIPAWTDRILSRGEVLEQLEYKCCEDILFSDHRPVYAIFRARVTVVDEQKKTTLGTQIYEKIMERLEGLDDDEKIAVLSDDAFVIESFEGSDSIAGPTHSPTPIPEPKRGRKLPPPSSDLKKWWIGSGKQVKVVLDVDPAVYMINPKRDPNPFVENEDEPLFIER ste14_yeast Protein-S-isoprenylcysteine O-methyltransferase STE14 YDR410C D9461.1 protein protein yeast Saccharomyces cerevisiae MHQDFQEDEHEYPDIRRNPLHEVTMTSYILGILLGIFVGLFPQIRFKNFNLFIIALSLFHFLEYYITAKYNPLKVHSESFLLNNGKSYMAAHSFAILECLVESFLFPDLKIFSYSLATKLCTVLGCLLVILGQYTRTIAMHTAGHSFSHIVKTKKESDHVLVKTGVYSWSRHPSYLGFFWWAIGTQLLLLNPLSLVIFIFVLWKFFSDRIRVEEKYLIEFFSAEYIEYKNKVGVGIPFI sui1_yeast Protein translation factor SUI1 SUI1 RFR1 YNL244C N0905 protein protein yeast Saccharomyces cerevisiae MSIENLKSFDPFADTGDDETATSNYIHIRIQQRNGRKTLTTVQGVPEEYDLKRILKVLKKDFACNGNIVKDPEMGEIIQLQGDQRAKVCEFMISQLGLQKKNIKIHGF q99326_yeast ORF YOR338w YOR338W protein protein yeast Saccharomyces cerevisiae MLDNMQFHSPAPEHPQLNGGINKIPASHKIGYKLNQQVQRLAVVRNNIEERLNSMESSHGQISDSSVVRAIDASIDDFLIPSPPLSPKLRQCPIISQPQLVNVESDHRELIMLTPVWEAGLNSQKYNHNTRNFLSQYSFFRDMKTTKRIPNKENRKLKVVKSVVNSEALPKRRRYDRKIKRRSRELYEDDGNRSENYDEESAQEVPVRSVTPIRQVKRSLHTISSPLASQGVVNNVPKYIPSMSWEKLPDYSPPLHTLPNSNNKVLKVEWKGSPMDLNHDPLKQRLHPAELVLAQILRLPCDLYLDSKRRFFLEKVHRFKKGLPFRRTDAQKACRIDVNKASRLFAAFEKVGWLQDKHFEKYL bem1_yeast Bud emergence protein 1 BEM1 SRO1 YBR200W YBR1412 protein protein yeast Saccharomyces cerevisiae MLKNFKLSKRDSNGSKGRITSADISTPSHDNGSVIKHIKTVPVRYLSSSSTPVKSQRDSSPKNRHNSKDITSPEKVIKAKYSYQAQTSKELSFMEGEFFYVSGDEKDWYKASNPSTGKEGVVPKTYFEVFDRTKPSSVNGSNSSSRKVTNDSLNMGSLYAIVLYDFKAEKADELTTYVGENLFICAHHNCEWFIAKPIGRLGGPGLVPVGFVSIIDIATGYATGNDVIEDIKSVNLPTVQEWKSNIARYKASNISLGSVEQQQQQSITKPQNKSAKLVDGELLVKASVESFGLEDEKYWFLVCCELSNGKTRQLKRYYQDFYDLQVQLLDAFPAEAGKLRDAGGQWSKRIMPYIPGPVPYVTNSITKKRKEDLNIYVADLVNLPDYISRSEMVHSLFVVLNNGFDREFERDENQNNIKTLQENDTATFATASQTSNFASTNQDNTLTGEDLKLNKKLSDLSLSGSKQAPAQSTSGLKTTKIKFYYKDDIFALMLKGDTTYKELRSKIAPRIDTDNFKLQTKLFDGSGEEIKTDSQVSNIIQAKLKISVHDI cdc24_yeast Cell division control protein 24 CDC24 CLS4 YAL041W protein protein yeast Saccharomyces cerevisiae MAIQTRFASGTSLSDLKPKPSATSISIPMQNVMNKPVTEQDSLFHICANIRKRLEVLPQLKPFLQLAYQSSEVLSERQSLLLSQKQHQELLKSNGANRDSSDLAPTLRSSSISTATSLMSMEGISYTNSNPSATPNMEDTLLTFSMGILPITMDCDPVTQLSQLFQQGAPLCILFNSVKPQFKLPVIASDDLKVCKKSIYDFILGCKKHFAFNDEELFTISDVFANSTSQLVKVLEVVETLMNSSPTIFPSKSKTQQIMNAENQHRHQPQQSSKKHNEYVKIIKEFVATERKYVHDLEILDKYRQQLLDSNLITSEELYMLFPNLGDAIDFQRRFLISLEINALVEPSKQRIGALFMHSKHFFKLYEPWSIGQNAAIEFLSSTLHKMRVDESQRFIINNKLELQSFLYKPVQRLCRYPLLVKELLAESSDDNNTKELEAALDISKNIARSINENQRRTENHQVVKKLYGRVVNWKGYRISKFGELLYFDKVFISTTNSSSEPEREFEVYLFEKIIILFSEVVTKKSASSLILKKKSSTSASISASNITDNNGSPHHSYHKRHSNSSSSNNIHLSSSSAAAIIHSSTNSSDNNSNNSSSSSLFKLSANEPKLDLRGRIMIMNLNQIIPQNNRSLNITWESIKEQGNFLLKFKNEETRDNWSSCLQQLIHDLKNEQFKARHHSSTSTTSSTAKSSSMMSPTTTMNTPNHHNSRQTHDSMASFSSSHMKRVSDVLPKRRTTSSSFESEIKSISENFKNSIPESSILFRISYNNNSNNTSSSEIFTLLVEKVWNFDDLIMAINSKISNTHNNNISPITKIKYQDEDGDFVVLGSDEDWNVAKEMLAENNEKFLNIRLY far1_yeast Cyclin-dependent kinase inhibitor FAR1 FAR1 YJL157C J0565 protein protein yeast Saccharomyces cerevisiae MKTPTRVSFEKKIHTPPSGDRDAERSPPKKFLRGLSGKVFRKTPEFKKQQMPTFGYIEESQFTPNLGLMMSKRGNIPKPLNLSKPISPPPSLKKTAGSVASGFSKTGQLSALQSPVNITSSNKYNIKATNLTTSLLRESISDSTTMCDTLSDINLTVMDEDYRIDGDSYYEEDSPTFMISLERNIKKCNSQFSPKRYIGEKCLICEESISSTFTGEKVVESTCSHTSHYNCYLMLFETLYFQGKFPECKICGEVSKPKDKDIVPEMVSKLLTGAGAHDDGPSSNMQQQWIDLKTARSFTGEFPQFTPQEQLIRTADISCDGFRTPRLSNSNQFEAVSYLDSPFLNSPFVNKMATTDPFDLSDDEKLDCDDEIDESAAEVWFSKTGGEHVMVSVKFQEMRTSDDLGVLQDVNHVDHEELEEREKEWKKKIDQYIETNVDKDSEFGSLILFDKLMYSDDGEQWVDNNLVILFSKFLVLFDFEEMKILGKIPRDQFYQVIKFNEDVLLCSLKSTNIPEIYLRFNENCEKWLLPKWKYCLENSSLETLPLSEIVSTVKELSHVNIIGALGAPPDVISAQSHDSRLPWKRLHSDTPLKLIVCLNLSHADGELYRKRVLKSVHQILDGLNTDDLLGIVVVGRDGSGVVGPFGTFIGMINKNWDGWTTFLDNLEVVNPNVFRDEKQQYKVTLQTCERLASTSAYVDTDDHIATGYAKQILVLNGSDVVDIEHDQKLKKAFDQLSYHWRYEISQRRMTPLNASIKQFLEELHTKRYLDVTLRLPQATFEQVYLGDMAAGEQKTRLIMDEHPHSSLIEIEYFDLVKQQRIHQTLEVPNL sec15_yeast Exocyst complex component SEC15 SEC15 YGL233W protein protein yeast Saccharomyces cerevisiae MDQEGQPLLSKDFQQVLLATASGNNSSWTERAVLNNESTDAVKHEPALGQNDVFDLDPLSFDKWVPFLRRALDKNQLDPVIDELENSIEDNFQGLELQLLQDSQMNDKLETSIDEIANIQGMVQDTLSSEISKFQIRLSESANELIVKKQMYVNNKKISLKISEATILITKVVRILELSSKCQELITERKFFKVLQNLDSLEKLYLQEFKNYNFQFLIEIYNSIPFLQKVTKDECINLIRNSLNLNLGKNLIKVGQEFVAIYENELLPQWLETRSKMKLTNFKFNSPIEISMRDESFLAKLNLGEFFQLDDFHDSIMIFQNLNELSVLSGEFNKEYELRKTKLMYPLIWKKNKTAAYQMDSLLRGTGTTPGSTAHDVSTDDPFTQSLSLHFLQDYFLKILGFLLYDINLNKATEFILVDNNYNSTNEFWDGLMDRLSPYLSYFIDEKLKTEEDMIKLKDFLCIYVAILENFKLNIEPLYKILVSIFEKFCSVSLRAFDDEFQILLNDDDFMPLSINDKTLYEKVLKICWMKEGEHLSLPDPTNGEPFAVTLPFSPLYPMTCTLAKKTYSKITAFLSIFYRHELHTLNNILVKTMDDIFNDIVNKKIRSKLESTSREEIAQILVNLDYFIIAAKEFSNFMTRENILQNPDMEIRLSSIKYLAESRKLAETKLIELIDSKISDILETIEIDWQITEVRQDPDISIIDLAQFLEMMFASTLQNLPYSVQTLLIFREFDSLTRQFMGLLLHDTPSTITHESIMNFEVDVNYLESIIPRIFPSTPGTIDSNGYQSPMTPSTPTFPNANGVDAPTLFENNIKSLEATFMELKQCIELLKTQGKDYNEPEIRLRKYSRIRQEDAALLLSKIQHFVSSVEGANGDDTSVMDSSSIFNSESASVIDSNTSRIAKFFNRR swe1_yeast Mitosis inhibitor protein kinase SWE1 SWE1 YJL187C J0406 protein protein yeast Saccharomyces cerevisiae MSSLDEDEEDFEMLDTENLQFMGKKMFGKQAGEDESDDFAIGGSTPTNKLKFYPYSNNKLTRSTGTLNLSLSNTALSEANSKFLGKIEEEEEEEEEGKDEESVDSRIKRWSPFHENESVTTPITKRSAEKTNSPISLKQWNQRWFPKNDARTENTSSSSSYSVAKPNQSAFTSSGLVSKMSMDTSLYPAKLRIPETPVKKSPLVEGRDHKHVHLSSSKNASSSLSVSPLNFVEDNNLQEDLLFSDSPSSKALPSIHVPTIDSSPLSEAKYHAHDRHNNQTNILSPTNSLVTNSSPQTLHSNKFKKIKRARNSVILKNRELTNSLQQFKDDLYGTDENFPPPIIISSHHSTRKNPQPYQFRGRYDNDTDEEISTPTRRKSIIGATSQTHRESRPLSLSSAIVTNTTSAETHSISSTDSSPLNSKRRLISSNKLSANPDSHLFEKFTNVHSIGKGQFSTVYQVTFAQTNKKYAIKAIKPNKYNSLKRILLEIKILNEVTNQITMDQEGKEYIIDYISSWKFQNSYYIMTELCENGNLDGFLQEQVIAKKKRLEDWRIWKIIVELSLALRFIHDSCHIVHLDLKPANVMITFEGNLKLGDFGMATHLPLEDKSFENEGDREYIAPEIISDCTYDYKADIFSLGLMIVEIAANVVLPDNGNAWHKLRSGDLSDAGRLSSTDIHSESLFSDITKVDTNDLFDFERDNISGNSNNAGTSTVHNNSNINNPNMNNGNDNNNVNTAATKNRLILHKSSKIPAWVPKFLIDGESLERIVRWMIEPNYERRPTANQILQTEECLYVEMTRNAGAIIQEDDFGPKPKFFI yef3_yeast Hypothetical 106.1 kDa protein in GLY1-GDA1 intergenic region YEL043W SYGP-ORF14 protein protein yeast Saccharomyces cerevisiae MPVSVITTVLACLWLSYRLYKFLTIPVSSIVSTLKIKTPPATKVSIDKIATDSVTIHWENEPVKAEDNGSADRNFISHYLLYLNNTQLAIFPNNPNSLYTCCSITGLEAETQYQLDFITINNKGFINKLPSIYCMTKAREANEALKTRKWRRNTITSSTAMQPRNSKSEPAPLPSHYSSVSLSTFSSNITNSATSNNGSNLPAYTSLTTLKDLDSFSIDDLKKILICAQEDLHDVLSQQTSLLQDFQESKLELELELDNLKTHWSHEIDLRKSLKSNIKSLENSKLLTDLKIEKLNKKIDKSKEKISKMRNDMQKWSQEDTELLSKDTIKEKYFKLLNESNASVANINKEIESLQNEISKMEESNKRLNASKKSLITSIVVNANVENDKPIASGELSAVLKKLNDFTLEKNGFLSNAGEEFLSKLNADSSLIKMIKQELSIDQELEANWKLQRSNLLKKISALENQFNEMSLNNRNLKTKLMVQPYKNNGDSLAATNSNNSAEKNRSSGSIQLPLSNNMSRTGSIDLISNNNKSINNSNADSAPPLRLHNPVSYSPSNEPIQPSSSLLSQLTQDTDNRSMLSNHISSNNENKQQPSSYSHALPTTATANATATATATNGHSRSNLWTTAQFAQPSHQQVSTELDQAFEYDNANHLISGLQNMIYDETDYPDNISNYSKGFTTDELDNYWTKQQPQVRSTNESLFSTTGTPMSSYKANPVISPYSSSHLRQTSNATNTNPMHPQSLLAATLNDPSLQSFVRSGSFYSAPQPANSLQNNINGNETENISPRISSDFNLLVPNLSPRLSNDVPIVPGNNTTLTPSHSNILTMNHQPTADNITRRSFHASSPPFNSIWNSNTNQLSPPLEEQYHLDVPVGPKVPAKEPSPKPSHKRNQSNSSISSAWSKFKHKSASSPANADTDIQDSSTPSTSPSGRRMSKLLSKSGMNNLFNPHSHDS yg3c_yeast Hypothetical 128.8 kDa protein in PAS2-PRS5 intergenic region YGR134W protein protein yeast Saccharomyces cerevisiae MTKKKAATNYAERQNLASEDSSGDSVHFKDFIPLQELLKDKNYVPSVENLEKILYNETMFNDQKICSNLLLEALIITLFTTISGKSALRLIQTSSLKERKSWAQSFENNSSSYASIVLSWKDNDILLLKFLRFLLANKTAPLQINRYNLPEYKLPLSFLIVSKITIPSILLNETYNLLKDYLYSITGRIESLISCSSTFDKPALVVRKILKDYNRMIECRNFYFWYSFNAENRVNLTFSDNISLLMENDEGNAGSGLDDSRFDHQKQPREAIMGRTINDQEQIYSFELNQDGTLEIPNVMEHSLLRHELLFKILNLTTVLTPLLELQFSTLCGLVDPLMQPTPNDKHIISIDFLFQLFLGLMSQSIKTSQEHNDHYDWKFYMCFNMQKIIDATMLRLNCFDFDILNSVNNTDNAVHWKTQLHRWLPHGLNTQDLELLYMIDILAVYTIYKLYEKIPIQLNPFLFSLISLWKNLSCVILLALEIDRIEEENGTYETPLMVRATIRGAAALRSVIATVLNGLVKNNDHDFKHESLNTFMSPYGRKLCHGALYADLRSHTASLLALGASIEDVTDLFADLQSGDRFDEDIRYMFDYECEDYDESFSESDHGGLDESVVNPTEKIASGSNNVFFRRRCNCIFNDDKLVAEDGANEAFGSTNSENVEGAMHNNRNAVHNATTATSDHVVTSPNPLSVRSRSTFEFDYSGEDWRDVPRDFNMYYSPSYSFIHEPKLDVIFSLTLRGATEKLNKEESILLVRSVASCVRNEQDQMILADLESNFSASINGDVEGEGNTKMSKIDNEDLRRTTPDDIYEIWSEESAFERMLNVNHDVAWRLMDEMLMCTGYRRILIWFLTHLELKHSLIYYVFELIMGLRGKPFSGEASDQDKKDDMIYEILKKKQKNEDASGLPFSRQGPIVLSDIETKMLLQEFFMNAAIFLSSKNNEEENEDGEKISLYSLGLVRLICYMVQTLIANDKFFFTKSECTFELQTLLMTWIGILPEAKDLFFKIKTRLAMEEEDSADTMQHEGRKNSDIEKKLNAKPASELNLKLLNLFPSKPANKDDSSPINTLRSFIADYSFDTQVNPPGRRVVFYDGKILPLPKADKPIPLHEYITLAELDVGDSE bem3_yeast GTPase-activating protein BEM3 BEM3 YPL115C LPH12C protein protein yeast Saccharomyces cerevisiae MTDNLTTTHGGSTTLELLAQYNDHRSKKDKSIEHIEKGTCSGKERNPSYDEIFTENIKLKLQVQEYETEIESLEKVIDMLQKNREASLEVVLEQVQNDSRDSYVNDQSFVLPPRSAERKAHIKSLNLPIPTLSPPLQQGSDVALETSVTPTVPQIGVTSNTSISRKHLQNMILNDEIEANSSFSSPKIINRSVSSPTKIHSEQLASPAASVTYTTSRITIKSPNKGSKSPLQERLRSPQNPNRMTAVINNHLHSPLKASTSNNLDELTESKSQQLTNDAIQKNDRVYSSITSSAYTTGTPTSAAKSPSSLLEVKEGENKALGFSPASKEKLDDFTQLLDSSFGEEDLVNTDSKDPLSIKSTINESLPPPPAPPTFFSPTSSGNIKNSTPLSSHLASPVILNKKDDNFGAQSAKNLKKPVLTSSLPNLSTKLSTTSQNASLPPNPPVESSSKQKQLGETASIHSTNTLNTFSSTPQGSLKTLRRPHASSVSTVKSVAQSLKSDIPLFVQPEDFGTIQIEVLSTLYRDNEDDLSILIAIIDRKSGKEMFKFSKSIHKVRELDVYMKSHVPDLPLPTLPDRQLFQTLSPTKVDTRKNILNQYYTSIFSVPEFPKNVGLKIAQFISTDTVMTPPMMDDNVKDGSLLLRRPKTLTGNSTWRVRYGILRDDVLQLFDKNQLTETIKLRQSSIELIPNLPEDRFGTRNGFLITEHKKSGLSTSTKYYICTETSKERELWLSAFSDYIDPSQSLSLSSSRNANDTDSASHLSAGTHHSKFGNATISATDTPSYVTDLTQEYNNNNNISNSSNNIANSDGIDSNPSSHSNFLASSSGNAEEEKDSRRAKMRSLFPFKKLTGPASAMNHIGITISNDSDSPTSPDSIIKSPSKKLMEVSSSSNSSTGPHVSTAIFGSSLETCLRLSSHKYQNVYDLPSVVYRCLEYLYKNRGIQEEGIFRLSGSSTVIKTLQERFDKEYDVDLCRYNESIEAKDDEASPSLYIGVNTVSGLLKLYLRKLPHLLFGDEQFLSFKRVVDENHNNPVQISLGFKELIESGLVPHANLSLMYALFELLVRINENSKFNKMNLRNLCIVFSPTLNIPISMLQPFITDFACIFQGGEPVKEEEREKVDIHIPQV adb6_yeast Probable beta-adaptin APL6 YKS5 YGR261C G9331 protein protein yeast Saccharomyces cerevisiae MVDSIHRIASALDTAKVITREAAAVATSKLGESSYTYYSQNINPQQLVTLLNSRNSREVRDAMKRIISIMASDDDSIDVQLYFADVVKNITTNDTKVKRLIHLYLLRFAENDPNLTLLSINSLQKSLSDSNSELRCFALSALSDMKMSSLAPIILHTVKKLVTDPSAMVRGEVALAIIKLYRAGKNDYHEELLDILKELMADTDPKVISCAVLAYKECYADHLELLHGHFRRYCRIIKQLDSWSQSYLIELLIKYCKQYLPKPTVVDKSSEGSPRSCPLPDKYNEIEYPSYEVVNDPDLDLFLQSLNCLIYSSNPTVILSCCNALYQLASPLQMKNTKFIEALVRTVTMTENQGNKEMLLQAIHFLSILDQTLFLPYTKKFYVFPKDPIVASIWKIQILSTLINESNVKEIFKELKYYVASAHFPENVVIMAVKSLSRCGQLSTSWESHVMKWLIDHMESHNLSASVLDAYVNVIRMLVQKNPTKHLRIIFKLADLLTVQTSLADNARAGIVWLFGEIASIEFKICPDVLRRLIQNFSNEGPETRCQILVLSAKLLSYDIDNFKQAQVTGSEENNQNPPYYDFSGSRISQMYNAVLYLAKYDDEFDIRDRARMISSLFDSGKYEIVSLLLQAPKPTARSDDFIVSARLETHTPEIKEFFRMLPWNTEITEVGETGNDIREGAELKDYNKYKKSFSSQSFITNNSARSFTSSSNAKLTGINDGDSNSISGKGNVNTFTSQNGKKYRLQSLDEFFSDIPERKSKPRKIIKVVEESSDEDEDESEESSDDDEYSDSSLGTSSSGTSSSHLEL bem4_yeast Bud emergence protein 4 BEM4 YPL161C P2561 protein protein yeast Saccharomyces cerevisiae MDYEEILFGLQPILNASSIKDVPMNDVYLGSYLAVMDQLAVSLREPSNRDIVGKTGLLLNLVRVLEQALDICFHDTSISINDKIAFYEISSEVIRCIANAIIDNDDNREILLDSGGKKLLNYYIGGVLQLDEISSDKSEDSLVDKLQMRSVVLLRNFCIGNLKYTENLAPFIRGPLFVLLKTTQYSYLSSPEKVVLGSDLLNDILKVNYSNVQISDLFFLSQYIKKISSNVQNKELQAMEDGAVEAYSNTETQKFAGQGNQEYIEKEEEDDEEDVNCELLLNLSTCLETIVAKDETINFTNEEQLVLSMQKNLILSLVCLESKTFNNKLIVMRRLISCAGNISANLTNSNKREQSLCIETIKSSASSYALAAALMILCNSVASKSDAVALLKLISLSELIQVGSLLQDPLQYQGFLDLLRKLLNLENTMWLDIKDLFTLFQIMRRCHEQTKYYNNLRSLLTNLLNKTLTVLPSSKIHNSISSDPTIISFIAEHGTLTSCIAMDKLLVSKKALPKEAITSLWDSIFKFQNLGQAEQLSISDLFHITKTVGIYLKDSSVTADVNPIENILFKDYIQKLTLILETILSFKENKDKGSESCFNNGKFIAGIILNIVKNTKCLTPEEQNLEALAKSFF cdc11_yeast Cell division control protein 11 CDC11 PSL9 YJR076C J1833 protein protein yeast Saccharomyces cerevisiae MSGIIDASSALRKRKHLKRGITFTVMIVGQSGSGRSTFINTLCGQQVVDTSTTILLPTDTSTEIDLQLREETVELEDDEGVKIQLNIIDTPGFGDSLDNSPSFEIISDYIRHQYDEILLEESRVRRNPRFKDGRVHCCLYLINPTGHGLKEIDVEFIRQLGSLVNIIPVISKSDSLTRDELKLNKKLIMEDIDRWNLPIYNFPFDEDEISDEDYETNMYLRTLLPFAIIGSNEVYEMGGDVGTIRGRKYPWGILDVEDSSISDFVILRNALLISHLHDLKNYTHEILYERYRTEALSGESVAAESIRPNLTKLNGSSSSSTTTRRNTNPFKQSNNINNDVLNPASDMHGQSTGENNETYMTREEQIRLEEERLKAFEERVQQELLLKRQELLQREKELREIEARLEKEAKIKQEE cdc12_yeast Cell division control protein 12 CDC12 CLA10 PSL7 YHR107C protein protein yeast Saccharomyces cerevisiae MSAATATAAPVPPPVGISNLPNQRYKIVNEEGGTFTVMLCGESGLGKTTFINTLFQTVLKRADGQQHRQEPIRKTVEIDITRALLEEKHFELRVNVIDTPGFGDNVNNNKAWQPLVDFIDDQHDSYMRQEQQPYRTKKFDLRVHAVLYFIRPTGHGLKPIDIETMKRLSTRANLIPVIAKADTLTAQELQQFKSRIRQVIEAQEIRIFTPPLDADSKEDAKSGSNPDSAAVEHARQLIEAMPFAIVGSEKKFDNGQGTQVVARKYPWGLVEIENDSHCDFRKLRALLLRTYLLDLISTTQEMHYETYRRLRLEGHENTGEGNEDFTLPAIAPARKLSHNPRYKEEENALKKYFTDQVKAEEQRFRQWEQNIVNERIRLNGDLEEIQGKVKKLEEQVKSLQVKKSHLK dna43_yeast DNA43 protein DNA43 MCM10 YIL150C protein protein yeast Saccharomyces cerevisiae MNDPREILAVDPYNNITSDEEDEQAIARELEFMERKRQALVERLKRKQEFKKPQDPNFEAIEVPQSPTKNRVKVGSHNATQQGTKFEGSNINEVRLSQLQQQPKPPASTTTYFMEKFQNAKKNEDKQIAKFESMMNARVHTFSTDEKKYVPIITNELESFSNLWVKKRYIPEDDLKRALHEIKILRLGKLFAKIRPPKFQEPEYANWATVGLISHKSDIKFTSSEKPVKFFMFTITDFQHTLDVYIFGKKGVERYYNLRLGDVIAILNPEVLPWRPSGRGNFIKSFNLRISHDFKCILEIGSSRDLGWCPIVNKKTHKKCGSPINISLHKCCDYHREVQFRGTSAKRIELNGGYALGAPTKVDSQPSLYKAKGENGFNIIKGTRKRLSEEEERLKKSSHNFTNSNSAKAFFDEKFQNPDMLANLDNKRRKIIETKKSTALSRELGKIMRRRESSGLEDKSVGERQKMKRTTESALQTGLIQRLGFDPTHGKISQVLKSSVSGSEPKNNLLGKKKTVINDLLHYKKEKVILAPSKNEWFKKRSHREEVWQKHFGSKETKETSDGSASDLEII ent4_yeast Epsin-4 ENT4 YLL038C protein protein yeast Saccharomyces cerevisiae MPLLDTFKSFIQSPTESKVKQATNEDETSGATGTLMNEISILTYSPKTVREIIQVIRKRLLLGQNRRNSHRNCIQVMKTLTLVSYLMNNGSNEFIKWLKGNMILIEILEDFQVQDPRDERKAEDIQKLSRNVLGLLQDDGLLEKQRKDVIQFRSSISTPGRKSTDNSHLKLEEMRSELTRQSLEKKAKPPTTSTSLDFQRQRTRNTHEYARFSLDPLAEEDSEDTPGVAGGISKLSFRPKSSNNPFR sap1_yeast SAP1 protein SAP1 YER047C protein protein yeast Saccharomyces cerevisiae MDSQRSHHILTRLTKIRRRPQQPLTDFTELYSRIANETIYYLNLEEKKRYKEALQGWKALTTDVLFKQTLIEHNYPNTQSYTKDEVSLQNGIRELYHKSVMHLKRVKKLVREEPAPRNDMPSSKTYTNHSSSFTRSTEPPPVFQMVPGRMMKTLRNRNACGYKTAYSNPSLSSYGNSTSIKRGEDAENIRVNFVPSKPLSNNASRQHKNPIEHNDPPLKKETELYSDKYISEPILIDLTNDEDDHDVGILKGHNVFDEEESDGFEFDVSDYYDNFSEVDVEEEEEEKEERRRIKTLEAIQQQMSDLSVTSSTSSNKSVSSSENVPGSCIQSLPTTAPALPSLPPPPLLNVDRASSTGALKPHSLETSTTMDSSKIRNPQISKLMKNNHVPYLKGTKSTPTLITKSTPTFITRSKSNTKPIIKSNASSPTSSLTVPNSVIQKPKTAAMAAKRVLNSKKVASNPALNTTKKSHPILKSKTAKVPNSSSKKTSSHPSRPVSNSKPYSHGASQNKKPSKNQTTSMSKTNRKIPAQKKIGSPKIEDVGTEDATEHATSLNEQREEPEIDKKVLREILEDEIIDSLQGVDRQAAKQIFAEIVVHGDEVHWDDIAGLESAKYSLKEAVVYPFLRPDLFRGLREPVRGMLLFGPPGTGKTMLARAVATESHSTFFSISASSLTSKYLGESEKLVRALFAIAKKLSPSIIFVDEIDSIMGSRNNENENESSRRIKNEFLVQWSSLSSAAAGSNKSNTNNSDTNGDEDDTRVLVLAATNLPWSIDEAARRRFVRRQYIPLPEDQTRHVQFKKLLSHQKHTLTESDFDELVKITEGYSGSDITSLAKDAAMGPLRDLGDKLLETEREMIRPIGLVDFKNSLVYIKPSVSQDGLVKYEKWASQFGSSGS spr28_yeast Sporulation-regulated protein 28 SPR28 YDR218C YD9934.03C protein protein yeast Saccharomyces cerevisiae MFPMKDHSALEQHTLSRDELRRRKGYKKGLQLSILLLGEKGSGKSTFLNNLCGQDISLSDGDYDDDDDKVTNNVTPENGNAIEDIDPGYKTAHLSPGLKLVTRRVYLNDELGVPITLDIILFPGCGDNVDNSQSSVVIKNYLDQQFANVLKEEVRIKRNTKETDGRPHVCLYFLKSTPRGVKKFDIELMKTICDKVNLIPIIPKADGLTETELNLHKDIVRQEISQNNIRVFDFKSDTLGETLALYDMDIDSSSAKSKYDNDTKIKEISPFAIVCSKTFNKNSENRVEHIRTYEWGSLVVEDQNTSDFIYLKAILLGSHLQELKDVTNNVLYENYRAKVLTEKKNNYDIPNYSYIDETSRGSVSNVSTRRNSASRTLGNPDTNDENAYQIHKEIDEKNRIIEDYQRKIDLLEKMLAAPHQNKV ubc9_yeast Ubiquitin-conjugating enzyme E2-18 kDa UBC9 YDL064W protein protein yeast Saccharomyces cerevisiae MSSLCLQRLQEERKKWRKDHPFGFYAKPVKKADGSMDLQKWEAGIPGKEGTNWAGGVYPITVEYPNEYPSKPPKVKFPAGFYHPNVYPSGTICLSILNEDQDWRPAITLKQIVLGVQDLLDSPNPNSPAQEPAWRSFSRNKAEYDKKVLLQAKQYSK yey8_yeast Hypothetical 63.7 kDa protein in BEM2-NCB1 intergenic region YER158C protein protein yeast Saccharomyces cerevisiae MLQQGSSSRRSLHGNDFHTLTSPSRRDSLSIPRAVDARSASTIDLFYIPDATVSRRHSTLVANRSDNNGNGAPMRQYNKPNFASSSTSSLPSTRNRPSRYDNMNMNMNMNMNMNMNMNMNMNNHTTSDHNAHPQYRCRPNPSRRHSLMTIPEKYSGSRYSLRSSPPTYSNPRVRKELTPFQLQRKQMKSAFQFPNGENFTPRNQIARLPPSSTFPDSPSSSSLPLTQTGGPSSADNDSIATGTNNRSPQQTKAADANQKSESESPKAIRSNSKKISRFFRKIWSSKSSNSADSVEENSKTKQKRKNPERVVPEPITSLDQPVEIIKQSFSTVNNHETAVPSIKDSGIVQELTALGDNNRIPVLPPPRSPNRPTLSDKRTTKLYYCSQDSSNEDIAPEEKSTVFLKRLQDEWSTVYLNKLPLTASVPSSLSTTTDAANSSFINSSISSPAPSSSSSSSLVSRGPMQSISSSPTPAPSSGSSKSKNAVKSLRFADEIYVNDTWSAADYCRCDNTFLNNFFKGKSQDITNPSTFVGNNLSSTKNISNIEIKMEVNEFKRKEMRVHQDSAKYTHYYL bob1_yeast BOB1 protein BOB1 BOI1 YBL085W YBL0717 protein protein yeast Saccharomyces cerevisiae MSLEGNTLGKGAKSFPLYIAVNQYSKRMEDELNMKPGDKIKVITDDGEYNDGWYYGRNLRTKEEGLYPAVFTKRIAIEKPENLHKSPTQESGNSGVKYGNLNDSASNIGKVSSHQQENRYTSLKSTMSDIDKALEELRSGSVEQEVSKSPTRVPEVSTPQLQDEQTLIQEKTRNEENTTHDSLFSSTADLNLSSESLKNISKSNISTKSLEPSSESVRQLDLKMAKSWSPEEVTDYFSLVGFDQSTCNKFKEHQVSGKILLELELEHLKELEINSFGIRFQIFKEIRNIKSAIDSSSNKLDADYSTFAFENQAAQLMPAATVNRDEIQQQISSKCNKLSSESSDRKSSSVTTELQRPSSVVVNPNFKLHDPAEQILDMTEVPNLFADKDIFESPGRAPKPPSYPSPVQPPQSPSFNNRYTNNNARFPPQTTYPPKNKNPTVYSNGLIPNSSTSSDNSTGKFKFPAMNGHDSNSRKTTLTSATIPSINTVNTDESLPAISNISSNATSHHPNRNSVVYNNHKRTESGSSFVDLFNRISMLSPVKSSFDEEETKQPSKASRAVFDSARRKSSYGHSRDASLSEMKKHRRNSSILSFFSSKSQSNPTSPTKQTFTIDPAKMTSHSRSQSNSYSHARSQSYSHSRKHSLVTSPLKTSLSPINSKSNIALAHSETPTSSNNKEAVSQPSEGKHKHKHKHKSKHKHKNSSSKDGSSEEKSKKKLFSSTKESFVGSKEFKRSPSELTQKSTKSILPRSNAKKQQTSAFTEGIRSITAKESMQTADCSGWMSKKGTGAMGTWKQRFFTLHGTRLSYFTNTNDEKERGLIDITAHRVLPASDDDRLISLYAASLGKGKYCFKLVPPQPGSKKGLTFTEPRVHYFAVENKSEMKAWLSAIIKATIDIDTSVPVISSYATPTIPLSKAQTLLEEARLQTQLRDAEEEEGRDQFGWDDTQNKRNSNYPIEQDQFETSDYLESSAFEYPGGRL zds2_yeast ZDS2 protein ZDS2 MCS1 YML109W YM8339.10 protein protein yeast Saccharomyces cerevisiae MVLMEDMQNKDGHNTVENSSGGTDSNNNIQMRRMRKTQLSKKELFEKRKSDVLIAAKSLDTEIQNVKNLKRLSIGSMDLVIDPELEFKVNSRNSYSSDSSKESLQESLHEENIIRSEQKEEQGSEDNDAYEEGDATNVDDSIDITQTEYLHDEETLEKEKIIRNASSSTSSSARVTSRNRRLSGVKTLAHDVVLDVENDHDSKMVDLTQNLLWVPADQHPNVKPENYLELIQDTLQNIQISTNQDIDENKLELGNNHVISNRKRTGSVVRRPSRLKTSYTKFDDEPPLADKPQEGEIQVDKRISSSDIKTIRSVSLKEITEELTKISNNAGLTDSDAVTLARSLSMSGSFTNESLHLNGNHTENDNEFASNMFNETGLTIPERSSLRRSKFNTYKIRLEGSSLPQAVKLNSLMNIQTNDNRRSASSPASYTQVPQEQASLNDFHEIFDHYRRTSTDWSTENEKYVDSTNYYSDEEDLTHASISQESSLLSTDSSNNSVLIKPHNTGSMISEKLDQHVSSSEKSNTNNSEANHGWSWLNSSNGSLNANEQTYQQLTDDEDDEECVDNEKADFVNLSVSRRAKSTKRASERINHSKNRHSPIFQIHSEEAKSVVITPSVVSSSESQPSKPTAPAVVEKKVELPTDTQASTHKKNSLEKRLAKLFKRKQHNGTCKSDVKVIKKSVKKELKKKASHSSLSKFRKSPKKKPQEAEVERPSSPTKTITTEDIDTASVIEPEVRSSNASTLLPDSHTSHSSEFVVETISELDGDDSFDISGGDVNYDVEVHSSISRDTTAGLEEDIGAEREDNTSPTAPQISTLPPRKLTFEDVVKPDYSNAPIKFTDSAFGFPLPMITNSTVIMFDHRLGINVERAIYRLSHLKLSDPGRELRQQVLLSNFMYSYLNLVNHTLYMEQVGTGDIAFNGDSALGMMDKNDSDGTILIPDI boi2_yeast BOI2 protein BOI2 BEB1 YER114C protein protein yeast Saccharomyces cerevisiae MSNDREVPTLSQLNTTVSRDKDVSDTLSPDFDSKGSATGRDGGNFPMYIAINEYFKRMEDELDMKPGDKIKVITDDEEYKDGWYFGRNLRTNEEGLYPVVFTQKITVEKAPTLMRAKSTKRIYSPLTNEDPLLSSTFISENDSNSELPTPQPIETAASISRTANGKIERNLSLKNTMSDIDNALLEFKDDSIGPPDRFINSGRDEEHSITHETILSATDGLDVVESNSKPTTSSSTGFLNGDLENQATLINGIDTTKLNPVEAEFWSPEEITAYFIMEGYDVQSASRFQKHKISGKILLELELVHLKELDINSFGTRFEIFKEIEKIKEAIRTNGRSLNRASKTNNANIYNQLMPPANVDQRASYRGHVRKTSQSLEDLPSQQNFIPTPRNTRNSSASKHRPKSLVFDSQEANANIAPDVQIPQVVEEMAGNENLFVSPRRAPKPPSYPSPAQPPKSPLLNNTRTSPSPAQLYSWQSPTLSFSGPKRTSYIDQYSSSDSNFNSRSALPKNNQGGGKALSPIPSPTRNSVRNEDSEGKLTSSSKRNSVPYYGYAPESSSDRKSSCSSHEEEQFQETMNTFERPTSSIYADGSTIASISNDKLAHEKEGKKKPTRHSSSLSSKSKSDSRRNSSLKRSSSASRTSSFKKSSFMLSPFRQQFTDNAARSSSPEENPITSMPSEKNSSPIVDKKSSKKSRSKRRSVSAKEAEIFTETVKDDKNKRSASEAIKGETLKGKSLRQMTARPVAKKKQTSAFIEGLRSISVKEAMKDADFSGWMSKKGSGAMSTWKTRFFTLHGTRLSYFSSTTDTRERGLIDITAHRVVPAKEDDKLVSLYAASTGKGRYCFKLLPPQPGSKKGLTFTQPRTHYFAVDNKEEMRGWMAALIKTTIDIDTSVPIISSYTTPTVSLSKAQEMLAEAREETKLREQQMLENEEDEDQFLWDQQQLQQQQHDNNQGQADRTISASTQRTSDEDNTISTPNLSSANNTTIGSNGFSSPFLLASGLLSPGVARNSSMRGTEKKGKFSTEEDYFGDNSKHKTDKI raep_yeast Rab proteins geranylgeranyltransferase component A MRS6 MSI4 YOR370C protein protein yeast Saccharomyces cerevisiae MLSPERRPSMAERRPSFFSFTQNPSPLVVPHLAGIEDPLPATTPDKVDVLIAGTGMVESVLAAALAWQGSNVLHIDKNDYYGDTSATLTVDQIKRWVNEVNEGSVSCYKNAKLYVSTLIGSGKYSSRDFGIDLSPKILFAKSDLLSILIKSRVHQYLEFQSLSNFHTYENDCFEKLTNTKQEIFTDQNLPLMTKRNLMKFIKFVLNWEAQTEIWQPYAERTMSDFLGEKFKLEKPQVFELIFSIGLCYDLNVKVPEALQRIRRYLTSFDVYGPFPALCSKYGGPGELSQGFCRSAAVGGATYKLNEKLVSFNPTTKVATFQDGSKVEVSEKVIISPTQAPKDSKHVPQQQYQVHRLTCIVENPCTEWFNEGESAAMVVFPPGSLKSGNKEVVQAFILGAGSEICPEGTIVWYLSTTEQGPRAEMDIDAALEAMEMALLRESSSGLENDEEIVQLTGNGHTIVNSVKLGQSFKEYVPRERLQFLFKLYYTQYTSTPPFGVVNSSFFDVNQDLEKKYIPGASDNGVIYTTMPSAEISYDEVVTAAKVLYEKIVGSDDDFFDLDFEDEDEIQASGVANAEQFENAIDDDDDVNMEGSGEFVGEMEI msb1_yeast Morphogenesis-related protein MSB1 MSB1 YOR188W protein protein yeast Saccharomyces cerevisiae MNDMAKPLPTPPTAEIRKSRSNSPKKAQKTNLSPNKNQNNEKNVPRSNGRTKNEHNSMDDEEFEFFHQFSREKVKGVIHVITAELKEKGPDVEFLMIPFRPEQTNDKLLTLLNQLFPLGNGQPVNEKKQLRIVSKADVWTLFQCLKYIWCRLPNSEIIGWKSYLEFKFREEDKKFPRKSFLEIMPQCLASPNHASIVYDFFDLIISISSNSRVNKMSARKISKMCAIWAFSKQIPNSDIQDYDFESAAMKSFAPNNSIQDGLDQWIPASDAMFHLLLAFLRSFVPQDLESAKLPRTLKSLLFNNQYPPRKSTAYTSETILTIPLVTLKTDVFSRKPWQLLERCNDLLDFSDHDAFEAREDYALLKSLFRKKNTVEGISRKMSQESRRLMKAMSTKHSTFQPGWAPRECIENISHLKECIEVKRLDIDDYFIWTWLSSLSFEQTSEKKKIFGRSIILEFEFDGFKKWVVFQECDITLDYNKKGQLKKKTSAQSPTTEKELPPDDFELEDPPLSKSPTLSQTYKKFQAEVPQQSTVRRDSAPDNQGIYHTVISKNALTKNKHNVNLHSFEHKISKWNPLNNLRKKSGSNSSSSSFEEKSKDAPIREEYHTNKNHKSKKEERVLSQFSTLNPDEYQLPVIETGSSNFKIEIPELMYEHDDDDSDKLKNSQKRATDSAIEELNGMVEEMMINEPDDVKISITEAETFESLTKFDQYKPSNITDDDLQSSHSSAVHSLKLSTNTNDSCADSSKYTADRKLAEPRKISEESKVNDDSSSYYSPNINNLPASRMPSQPTYSNSDSKKAFTNESRLNVLQGAVSPSQQVTPKPYKNAPGDCVSPVQQKYYQNDRRNEMSPASAPVPPSAYSPARSPQFSTNSAGFKQNTINVPVGYNDPAHVLANQPHMTYRDQHNYPSHQQKQRPFQNNIVPPELKSRNQRADASPIPQHMVPVKQGVPNLPSNVPLYQQMERMNPNHQHPVNTYKVTQPPYHNNTTNAYGNSRAGNAHMLDGKWSNNPPQMVPKGVRPNQYPQQHVNRYSPQAQPVVPAEYYNGPPPMRAPPMMSHMVPAQEPIRYTAGANRRSFPQGMQQNAYSVPAQPMGAVNSEFYLPEAPQGNKLHGNINKRQERKKLYDNIRSGNFGI yev4_yeast Hypothetical 64.0 kDa protein in CKI3-RSP5 intergenic region YER124C SYGP-ORF48 protein protein yeast Saccharomyces cerevisiae MQDTKYYEPTNIFRQPAINIKKRSDKKRILQSMMTLSTYKKTWQNNTSKMNSPILRKASDNFNDYYTTKKLKSDYWKLYGVDESELSIPSDMSIVDNILLVSTMNEKDNLKLFEISAEKKLKELQTITVPGKPITCICLLPMVDFPPQIFPSSQINPNHNQLILTGHQDGIVNLIATSTYKGCAKIIKRFNHNKFLKSTVSTSIPILEITPKTAPILKVSPWNKTGFVSLLNDSLFIYDLKSNLDCIKTPIFLQSYPGINSFAVNEFHDPFLLALVGSKFGPNGISLLDLRTNLYIPDILDNSISAGCGKDHLQRKNTSLDCVWISNHHVAQSLNDKIQIWDIQSCDGKPVCELYAKKGYIESLKFNENTGALYSSDDQGFVICWDLQNLQNMKYGELVHGFNSISLDSESELLLTKQVFQCGNIIVSGMSDKNICLKSNDTKANGKGCGFLFLDMANDGSLVTLDNFCELGLHQICQVQFNVDTGKIIDGNGTGKSGISDSSMLSLSNESDHSMTETSDDMFSNSGNWDCSSANTVSEGRLNDDQEDIVFTKRMYSVNDVHLSGSTIDTTVV yps6_yeast Aspartic proteinase yapsin 6 precursor YIR039C YPS6 protein protein yeast Saccharomyces cerevisiae MQLISILSLLSSLMCSLTVLGSSASSYVKFPVQKLADIINICTQDVSTVFKRNEVLNTTVINGIGVYVVKMEIGTPPQTLYLQLDTGSSDMIVNNADIAYCKSMSDGSDYASTDNYELTATFNGLPSTTISSEAYNTLCSYWGTFDASNSSTFENNATFFNNTYGDGTYYAGTYGTDVVSFENITLNDFTFGVSNDTIGNPSGILGISLPIAEFTDGIEYALALNRTPFIYDNFPMELKNQGKINKIAYSLFLNGPDAHFGSILFGAVDKSKYTGQLYTLPMLQAFNTLGSNPGMIITAQSVAILDSESGNKTVSDIQFPVMLDSGTTFSYLPTEIAEAIGKSFDGEYSSDDQGYIFDCSKVNDTLLSVDFGGFNISANISNFVTSAKDRCVLNVKQSESTYMLGDAFLVDAYVVYDLENYEISIAQASFNNQEEDIEVISDTVPGATPAPGYFSTWVYKPGSPIGTGDFINVSWTSYSEFSQYKSLLATAAQSDDASSFSSSGGSSESTTKKQNAGYKYRSSFSFSLLSFISYFLL bub3_yeast Cell cycle arrest protein BUB3 BUB3 YOR026W OR26.16 protein protein yeast Saccharomyces cerevisiae MQIVQIEQAPKDYISDIKIIPSKSLLLITSWDGSLTVYKFDIQAKNVDLLQSLRYKHPLLCCNFIDNTDLQIYVGTVQGEILKVDLIGSPSFQALTNNEANLGICRICKYGDDKLIAASWDGLIEVIDPRNYGDGVIAVKNLNSNNTKVKNKIFTMDTNSSRLIVGMNNSQVQWFRLPLCEDDNGTIEESGLKYQIRDVALLPKEQEGYACSSIDGRVAVEFFDDQGDDYNSSKRFAFRCHRLNLKDTNLAYPVNSIEFSPRHKFLYTAGSDGIISCWNLQTRKKIKNFAKFNEDSVVKIACSDNILCLATSDDTFKTNAAIDQTIELNASSIYIIFDYEN bub1_yeast Checkpoint serine/threonine-protein kinase BUB1 BUB1 YGR188C G7542 protein protein yeast Saccharomyces cerevisiae MNLDLGSTVRGYESDKDTFPQSKGVSSSQKEQHSQLNQTKIAYEQRLLNDLEDMDDPLDLFLDYMIWISTSYIEVDSESGQEVLRSTMERCLIYIQDMETYRNDPRFLKIWIWYINLFLSNNFHESENTFKYMFNKGIGTKLSLFYEEFSKLLENAQFFLEAKVLLELGAENNCRPYNRLLRSLSNYEDRLREMNIVENQNSVPDSRERLKGRLIYRTAPFFIRKFLTSSLMTDDKENRANLNSNVGVGKSAPNVYQDSIVVADFKSETERLNLNSSKQPSNQRLKNGNKKTSIYADQKQSNNPVYKLINTPGRKPERIVFNFNLIYPENDEEFNTEEILAMIKGLYKVQRRGKKHTEDYTSDKNRKKRKLDVLVERRQDLPSSQPPVVPKSTRIEVFKDDDNPSQSTHHKNTQVQVQTTTSILPLKPVVDGNLAHETPVKPSLTSNASRSPTVTAFSKDAINEVFSMFNQHYSTPGALLDGDDTTTSKFNVFENFTQEFTAKNIEDLTEVKDPKQETVSQQTTSTNETNDRYERLSNSSTRPEKADYMTPIKETTETDVVPIIQTPKEQIRTEDKKSGDNTETQTQLTSTTIQSSPFLTQPEPQAEKLLQTAEHSEKSKEHYPTIIPPFTKIKNQPPVIIENPLSNNLRAKFLSEISPPLFQYNTFYNYNQELKMSSLLKKIHRVSRNENKNPIVDFKKTGDLYCIRGELGEGGYATVYLAESSQGHLRALKVEKPASVWEYYIMSQVEFRLRKSTILKSIINASALHLFLDESYLVLNYASQGTVLDLINLQREKAIDGNGIMDEYLCMFITVELMKVLEKIHEVGIIHGDLKPDNCMIRLEKPGEPLGAHYMRNGEDGWENKGIYLIDFGRSFDMTLLPPGTKFKSNWKADQQDCWEMRAGKPWSYEADYYGLAGVIHSMLFGKFIETIQLQNGRCKLKNPFKRYWKKEIWGVIFDLLLNSGQASNQALPMTEKIVEIRNLIESHLEQHAENHLRNVILSIEEELSHFQYKGKPSRRF bud2_yeast Inhibitory regulator protein BUD2/CLA2 BUD2 CLA2 ERC25 YKL092C YKL424 protein protein yeast Saccharomyces cerevisiae MSSNNEPAQSRTSYFKLNEFLSNVKHYKNTFKGEIQWCNNLSLNDWKTHYLQITSTGALTHSIDELTADSTNIQPIIKHLQQCRIEIIKDKHSSFKDINANCNFIIQVNTSGKDNKVYLRVKSWSDFKKLLTCLIWWSSMKTNGIFNKFQVSRPLEFKSKKMAKPESLLVYKLNVFGPIVKNIVLPPATNILESPDIINNDDNSVGWFSAMGVLKSNGMLDLLLQSDGSLIYSLNISQLLRSEIRILDSSVLQSENSLFLGELPLLRSQLGLEKFRIENIASAATNSSDISQEIIVEFPLRIDLEDCFIALQSFARSEYLSITGSDKSNDMKISNSFKISILEANFQSINLNDKNNTPWSIFTDITAWGHTWARTSMVSNSSNPFWREEFQFNELLRLTNSYLEIKQLFHDLNNKKRLRLIGKIKITQEIINDTRYNKETRLPIMDVDNKNFQIGTICIKISSNLNFILPSTNFVKLEKLLMNANLSMVSNLIYKSSSSMENDNKLTQTSIIFLDIFQSLSRIEEWFHVLIDKELAKIDGTVSRINQKNLDSKHVFNSLFRGNSILTKSIEQYFFRVGNEYLSKALSAILKEIIESNKSCELDPARVKEKDEVKKRKIIADNYKRLYSWVTKIWKRLYATSNDLPIEIRNVLKIFRQKLEIICIDDTLQIILNGISGLLFLRFFCPVILNPKLFKYVSQNLNETARRNLTLISKVLLNLSTLTQFANKEPWLMKMNNFIDKRHNDLLDYIDKMTQKKLDFNSKILNLSSTISRPKLAIEQTMLDDLPQIPYLLDKNLRETEFVNLIVNFSQEDMTKMEKYNHMDNGGKGELIEEEGLLSGSSLNLSVDKKDLDSPIEVKPEIGELEFEKITENNTEIFGDDLMNLLKSDDVGSRSRDLDNGANSGIKFNSIIPKAEEEKHAMKELEQESCLLYNRINHIRKRLSGYECASSTLFEDKKYSISLSHKIFYEEIKEGKEIVLKLLNKPTNENSSARLQKFFTKGVSSKSNNTVGDSYCKFLTIDVSDENPKSSNKTSVHGTSSENGAKDDYLTLPNSQGKGNLGNRFSPTKLSRIMRKPPNADVPKEQNSRKLTRWFKKKKETGGS cg12_yeast G1/S-specific cyclin CLN2 CLN2 YPL256C protein protein yeast Saccharomyces cerevisiae MASAEPRPRMGLVINAKPDYYPIELSNAELLSHFEMLQEYHQEISTNVIAQSCKFKPNPKLIDQQPEMNPVETRSNIITFLFELSVVTRVTNGIFFHSVRLYDRYCSKRIVLRDQAKLVVATCLWLAAKTWGGCNHIINNVVIPTGGRFYGPNPRARIPRLSELVHYCGDGQVFDESMFLQMERHILDTLNWNIYEPMINDYVLNVDENCLMQYELYENQVTYDKQCSEKRQSQLSQDSDATVDERPYQNEEEEEEDLKLKIKLINLKKFLIDVSAWQYDLLRYELFEVSHGIFSIINQFTNQDHGPFLMTPMTSESKNGEILSTLMNGIVSIPNSLMEVYKTVNGVLPFINQVKEYHLDLQRKLQIASNLNISRKLTISTPSCSFENSNSTSIPSPASSSQSHTPMRNMSSLSDNSVFSRNMEQSSPITPSMYQFGQQQSNSICGSTVSVNSLVNTNNKQRIYEQITGPNSNNATNDYIDLLNLNESNKENQNPATAHYLNGGPPKTSFINHGMFPSPTGTINSGKSSSASSLISFGMGNTQVI yil7_yeast Hypothetical 34.7 kDa protein in RHO3-HIS5 intergenic region YIL117C protein protein yeast Saccharomyces cerevisiae MTVITIAKRGLPKLTTSTSSTTTASSSSTITSVASSSSSLPLLSNSTSSSIIPSITPPSRNGNPYILDSGDMPNGTVFIVVGGIAGVIFLAILLWWVITTYSSHRLTRSVQDYESKMFSTQHTQFYGDSPYMDYPAKENFQDQVHISESDISPGNKDESVKDALVSHTNNEKPFLSNFERPLFSLASESNRNSLFISPTGDILYKTRLSKLYQESPRLLQKPVIMTSDNVSTNSLVSTISSSSASSLDNGNEKEVGEDIRKPAKIASSPSRKLLNSPESDGSVNRNHSKGNLLVVQSKRKPTPSTYLEHMLEGKEQDE yp95_yeast Hypothetical UPF0017 protein YPL095c YPL095C LPG13C protein protein yeast Saccharomyces cerevisiae MFRSGYYPTVTPSHWGYNGTVKHVLGEKGTKSLAFRDSKRQIPLHEFVTKHVPTLKDGANFRLNSLLFTGYLQTLYLSAGDFSKKFQVFYGREIIKFSDGGVCTADWVMPEWEQTYSLNAEKASFNEKQFSNDEKATHPKGWPRLHPRTRYLSSEELEKCHSKGYSYPLVVVLHGLAGGSHEPLIRALSEDLSKVGDGKFQVVVLNARGCSRSKVTTRRIFTALHTGDVREFLNHQKALFPQRKIYAVGTSFGAAMLTNYLGEEGDNCPLNAAVALSNPWDFVHTWDKLAHDWWSNHIFSRTLTQFLTRTVKVNMNELQVPENFEVSHKPTVEKPVFYTYTRENLEKAEKFTDILEFDNLFTAPSMGLPDGLTYYRKASSINRLPNIKIPTLIINATDDPVTGENVIPYKQARENPCVLLCETDLGGHLAYLDNESNSWLTKQAAEFLGSFDELVL bud7_yeast Bud site selection protein 7 BUD7 YOR299W protein protein yeast Saccharomyces cerevisiae MITQNSIPEVKEDFIGYALHERRIRLPQFQDLGPADLVTLTKYLPTSSNTNAINSTSRNGAAIIQSPAAVVADDSAASMATNGDASDTAVTTNYTNASIYSSSRNANDGAPMVAELHPLDKLKDEVGTFFYSMGVDTSGPTSIAIFLKEISEVISEKPQVWFGRKKTFNVARISFSTWNAFRRCDINVVVHIPGSIQNFIVDCNGESQNIEMCADYDLIWAETFVSGVVRSIMLMKENAEEGELQNLVETLILNPFTAGQIDDVPEMFIDLFPIVYHKGPLLGAPYYITNVTNTNNYLVETLVEIVKLTRNVSRAEIMLKNLATDNPEAIIILIKIFLVCDQELDAIKLTYDMLSQDKIINNTNNRMDYKSELLCLQAQFLIDKRQDYSLAQNIAQEAVNCSPSEFRPWYLLSKVYVKLNDIENALLILNSCPMSPLKEKYVLKRVAPLPSNNSLHLPLPIDVVLDEVTSLNPQDVQNEHRSADPMLVNLAASNLKSTFQLAYRLLTEIVQITGWENLLKYRSNIFVMEEEYQKSSSSLPKDVNKQEEQPLRAKRLCERWLDNLFMLLYEDLKMYTLWQTEQLYMDAQNNNHNKLTFEWELFGLCARRLGHFPEAAKAFQNGLSQRFSSRCARKLLEYCINERQRVKNFINSPNSHDMVPEIVSSRIRELDNSIIDLCVKICCWNHRWYTEFSISLLDCLSVVIQDMSLTKVSNEISSRYPETVLNLVQENLLNFFTTCTIGCYDA ste20_yeast Serine/threonine-protein kinase STE20 STE20 YHL007C protein protein yeast Saccharomyces cerevisiae MSNDPSAVSELPDKDSLDNGISNDNERAMGGNGDGGDGLRLPRTTGTLNVNALQKGTNAAHEAGGYKSMDPAKNAETTNDDDNNVVSLDDPIQFTRVSSSSVISGMSSSMSPHSNIDETKSLEAVTPNINTSNITPDHSADNTFSTINASESDHQFNDTLLSKLSLTDSTETIENNATVKHQQPVASSTVNSNKSSTDIRRATPVSTPVISKPSMTTTPRQINSASHSLSNPKHKQHKPKVKPSKPEAKSKPVSVKKSFPSKNPLKNSSPPKKQTEKSYYSSSSKKRKSGSNSGTLRMKDVFTSFVQNIKRNSQDDKRASSSSNNSSSSSITTALRISTPYNAKHIHHVGVDSKTGEYTGLPEEWEKLLTSSGISKREQQQNMQAVMDIVKFYQDVTETNGEDKMFKTFNTTTGLPGSPQVSTPPANSFNKFPPSTSDSHNYGSRTGTPMSNHVMSPTLNTDSSSANGKFIPSRPAPKPPSSASASAPIIKSPVMNSAANVSPLKQTHAPTTPNRTSPNRSSISRNATLKKEEQPLPPIPPTKSKTSPIISTAHTPQQVAQSPKAPAQETVTTPTSKPAQARSLSKELNEKKREERERRKKQLYAKLNEICSDGDPSTKYANLVKIGQGASGGVYTAYEIGTNVSVAIKQMNLEKQPKKELIINEILVMKGSKHPNIVNFIDSYVLKGDLWVIMEYMEGGSLTDVVTHCILTEGQIGAVCRETLSGLEFLHSKGVLHRDIKSDNILLSMEGDIKLTDFGFCAQINELNLKRTTMVGTPYWMAPEVVSRKEYGPKVDIWSLGIMIIEMIEGEPPYLNETPLRALYLIATNGTPKLKEPENLSSSLKKFLDWCLCVEPEDRASATELLHDEYITEIAEANSSLAPLVKLARLKKVAENMDADEDNDDDNDNEHINKTNNCDDNNDSKETVNLDVTEDDKQK vps45_yeast Vacuolar protein sorting-associated protein 45 VPS45 STT10 YGL095C protein protein yeast Saccharomyces cerevisiae MNLFDVADFYINKIVTSQSKLSVANVNEHQRIKVLLLDKNTTPTISLCATQSELLKHEIYLVERIENEQREVSRHLRCLVYVKPTEETLQHLLRELRNPRYGEYQIFFSNIVSKSQLERLAESDDLEAVTKVEEIFQDFFILNQDLFSFDLQPREFLSNKLVWSEGGLTKCTNSLVSVLLSLKIKPDIRYEGASKICERLAKEVSYEIGKNERTFFDFPVMDSTPVLLILDRNTDPITPLLQPWTYQSMINEYIGIKRNIVDLSKVPRIDKDLEKVTLSSKQDAFFRDTMYLNFGELGDKVKQYVTTYKDKTQTNSQINSIEDIKNFIEKYPEFRKLSGNVAKHMAIVGELDRQLKIKNIWEISEIEQNLSAHDANEEDFSDLIKLLQNEAVDKYYKLKLACIYSLNNQTSSDKIRQLVEILSQQLPPEDVNFFHKFKSLFSRQDKMTQSNHDKDDILTELARRFNSRMNSKSNTAENVYMQHIPEISSLLTDLSKNALFRDRFKEIDTQGHRVIGNQQSKDIPQDVILFVIGGVTYEEARLVHDFNGTMNNRMRVVLGGTSILSTKEYMDSIRSAK yki2_yeast Hypothetical 50.5 kDa protein in MDH1-VMA5 intergenic region YKL082C protein protein yeast Saccharomyces cerevisiae MSNSLEERLRANSSAFDGLLALIPAKYYYDEKSQEQWKAKKKTKEQSKNDKLKKLDPEQRDDETSSTLEVMKKKEKDAKPVVLPGEKFKHMKMQKQKEATSKVEGDSDLNVEVNDPMIIAPDEDEEEEEDIKVIFDDEGNEIPLESKKDTTEPDRSVEKKSITEEEKLQRKKNLEALRSKLQAKISDMKSKRKAPGSREAILAQRKRKEELKKRKRLESEQEQDQDEIASDSDMEDIDSDLENNSKKRFKKGKKDSEINADGVMFQNIIFDDGARATSDLQRLRKAGRTKGPAKNDVKSHLKLLEAKKNKMEAKDELEQIKQKEKEKWQKAMLQAEGIKIRDDEKLLRKAIKRKEAQKRKSAIEWSERKRVVEDTISERQKRREENLRIRKDNKGKKRNKQEKMKRKYVGSAVPKKRAGFEGRLKTGKKKGGPK gath_yeast Probable glutamyl-tRNA(Gln) amidotransferase subunit A, mitochondrial precursor YMR293C protein protein yeast Saccharomyces cerevisiae MPLKRSLKESIERLSSFQSKYNIFTSINPSPYSITNKKGTKETLTGCVASIKDNIVTKDFPTTCASHILENFKSPFDATVVKLLKQAGVHILGKTNLDEFGMGSGGVHSIRGPVINPLYPHEDKKIMGGSSSGAAASVACDLVDFALGTDTGGSVRLPACYGSVLGFKPSYGRLSRFGVIAYSQSLDTVGILSKKINVLRKVFHTLDKYDMKDPTSLSVELRELIEGNKKVRRPLKVGIVKEFSHESMPIGFHRLYLSLLEKLINLGLEIYPVSIPSVKNCLPIYYTLSPAEAASNLSRYDGIRYGYRDSELDIKDGILFAPTRSKFGTEVKNRIILGNYNLCSDAFKNNFIKAEKLRVNLIDEFDGIFRFPNVLTNSKGNPDGLDLLIVPTSSKLPGSIRDFEEEEAKSPANSYINDVFTVPMSLAGLPSLSMPLKEKTPIGLQVVGQYGDDSTVLDFVESIS capza_yeast F-actin capping protein alpha subunit CAP1 YKL007W YKL155 protein protein yeast Saccharomyces cerevisiae MSSSKFEEVINKIINDSPPGELREVYDDLIKITSENSKNTILDAIENYNVQNCIPIEVNGNSVIISKYNKEGAKFFDPVNSVIFSVNHLERKGLDIEPYEFTHAKIEKGQLKELHDKLHEYLLQSFPGDVSFAVYPVPEEISKISIIIVSTKYNPNNFWNGHWRSSYIYDLETRELSGQISTQVHYYEDGNVSFQSGKDINQSNVDDVVCTIRDIETNFENDLDLSFFDLNEKQFKALRRRLPVTRSKINWGSAIGSYRLGKNAAEGK capzb_yeast F-actin capping protein beta subunit CAP2 YIL034C protein protein yeast Saccharomyces cerevisiae MSDAQFDAALDLLRRLNPTTLQENLNNLIELQPNLAQDLLSSVDVPLSTQKDSADSNREYLCCDYNRDIDSFRSPWSNTYYPELSPKDLQDSPFPSAPLRKLEILANDSFDVYRDLYYEGGISSVYLWDLNEEDFNGHDFAGVVLFKKNQSDHSNWDSIHVFEVTTSPSSPDSFNYRVTTTIILHLDKTKTDQNSHMMLSGNLTRQTEKDIAIDMSRPLDVIFTSHVANLGSLIEDIESQMRNLLETVYFEKTRDIFHQTKNAAIASSAEEANKDAQAEVIRGLQSL gic2_yeast GTPase-interacting component 2 GIC2 YDR309C D9740.18 protein protein yeast Saccharomyces cerevisiae MTSASITNTGNETMNLPQMRSIWLDEDEEAEKLYGLQAQQFMGSDDEENLGITFINSDKPVLSNKKNIELPPLSPNSHPSCHHRRSNSNSAKSKESSSSSSSANKTNHKKVFLKLNLLKKKLLGAQPDIRGKGISTPFDFQHISHADTRNGFQDEQLQEPSSLSTEIKDDYTSSSSKRDSKSLNKAFVTERIPANRESKLISRSHENKTSRLSVARSISVTSSNYSKNTQGNNHSINGRVVSTSTMATSIFEYSPNASPKQFKNKSHALGHRYTNSTDSSESSLDFLKNYNFPTLLEDKPILDFLPRSQRSSAYRSLLETPNSNKDSAKAFFPSRQSPLPKRRNSIATPSPQSKFSYSDSPVNHRKSFDDVLYSFNQLEPLQT q06604_yeast Ypr171wp BSP1 YPR171W protein protein yeast Saccharomyces cerevisiae MTKYERDPELVNFLSKVEDLNSKRYSNIPSSKPAGEALSPVRSHNSGEYRRADMMTGKNVEGCDNLAYRSAYNYEMTFSPKKTHYSLSELNLERITPRPDLEGSASQKEKKFLISEEDYLLLQKLKASQTYNDSNADKNLPSFEKGPRMPSRGRPRPREKEIITIQYDFELPGRADIPSSSSSSSPPPLPTRRDHIKITDGNEEKPLLPTRPNKAEVTESPSSRSIKPDAVVPERVKPAPPVSRSTKPASFLSSLEDNKLTKAKSYNSEMETPKTTVKSSHIDYLDSIQLKPTTLSPTMKNKPKPTPPSPPAKRIPRSESFIKSMLNSNLTTTSKPSLPEKPQKLRNANLAAHKTKPSIPPKKVELNIVLPELRPVETSPTKQNFENSIDLPKLRSSNRNIKKEEEDSIPEAIKGIQNLKKTKQQKPAIPQKKSFLTNNSKNTTLKNGDDINKLNDEIEALSLRNNLKKRPPTAPQRKISLPEALRKVELMKKSKTEPVLESSNELSINAKLDAIIASRNLRASNTLPELSGVNTNIATSDKYTTSRDETVKETKPLVHPNKNRTRGPRRKLPTRV yby0_yeast Hypothetical 47.4 kDa protein in OPY1-AGP2 intergenic region YBR130C YBR1005 protein protein yeast Saccharomyces cerevisiae MSDQDNTQTSSSKLAPHHNIFMANLESSPTKDRNTSSQNASSSRVIESLHDQIDMLTKTNLQLTTQSQNLLSKLELAQSKESKLLENLNLLKNENENLNSIFERKNKKLKELEKDYSELSNRYNEQKEKMDQLSKLAKNSSAIEQSCSEKLQNMEVNYNSLLESQNLYRDHYSDEISKLNEKIGLLELELSNQNLNYGSDTSSNSDIELNLNKFNDSVKDLKSLETEKDSKLSKIITHSLDELNLQSWLNLYQTNENLISTFAEKMDLKDVLKRNDEKISNKGAVVQTLKKNVQTQVESNNADALSSNNAQDMLPIKMVKLRKTPNTNDSSSNGNSSNNKRRSFYTASPLLSSGSIPKSASPVLPGVKRTASVRKPSSSSSKTNVTHNNDPSTSPTISVPPGVTRTVSSTHKKKGNSMVVHGAQS tcpq_yeast T-complex protein 1 subunit theta CCT8 YJL008C J1374 protein protein yeast Saccharomyces cerevisiae MSLRLPQNPNAGLFKQGYNSYSNADGQIIKSIAAIRELHQMCLTSMGPCGRNKIIVNHLGKIIITNDAATMLRELDIVHPAVKVLVMATEQQKIDMGDGTNLVMILAGELLNVSEKLISMGLSAVEIIQGYNMARKFTLKELDEMVVGEITDKNDKNELLKMIKPVISSKKYGSEDILSELVSEAVSHVLPVAQQAGEIPYFNVDSIRVVKIMGGSLSNSTVIKGMVFNREPEGHVKSLSEDKKHKVAVFTCPLDIANTETKGTVLLHNAQEMLDFSKGEEKQIDAMMKEIADMGVECIVAGAGVGELALHYLNRYGILVLKVPSKFELRRLCRVCGATPLPRLGAPTPEELGLVETVKTMEIGGDRVTVFKQEQGEISRTSTIILRGATQNNLDDIERAIDDGVAAVKGLMKPSGGKLLPGAGATEIELISRITKYGERTPGLLQLAIKQFAVAFEVVPRTLAETAGLDVNEVLPNLYAAHNVTEPGAVKTDHLYKGVDIDGESDEGVKDIREENIYDMLATKKFAINVATEAATTVLSIDQIIMAKKAGGPRAPQGPRPGNWDQED ent2_yeast Epsin-2 ENT2 YLR206W protein protein yeast Saccharomyces cerevisiae MSKQFVRSAKNMMKGYSSTQVLVRDATANDSRTPSIDTLDDLAQRSYDSVDFFEIMDMLDKRLNDKGKYWRHVAKSLTVLDYLVRFGSENCVLWCRENFYVIKTLREFRHENESGFDEGQIIRVKAKELVSLLNDEERLREERSMNTRNRRANRAARPRPRRQRTRSNPHDSSPSYQDDLEKALEESRITAQEDEQRRRELAQYDDEDPDFQAALQLSKEEEELKQLQELQRLQKQQQSLSQFQAPLQQQQPQQQPAYYDIFGNPISQDEYLQYQYQQDQEQAMAQQRWLDQQQEQQQLAEQQYFQQQQQAAAAASALQQQQTAANMQQQQQQPADFQQPLPTGSNNPFSMDNLERQKQEQQHAQLQRQQEEARQQQEQLKLQQLQRQQQEEAQLHQKRQEEAQLQQQQAQLLQQQAQFQQQQPLKQTRTGNQSISDKYSDLNTLLATGTGIDTFGNTGEARIPAQHTKTGTFINSQGTGYKQVTNEPKNNPFLSNQYTGLPSTNIVPTQTGYGFGNQPQSPPTNSPQQNPTGISYSQPQQQQQPQQQPQYMQNFQQQQPQYAQNFQQQPQYTQNYQQQPQYIQPHQQQQQQQQQQQQQQGYTPDQGVSLIDL tos2_yeast TOS2 protein TOS2 YGR221C G8523 protein protein yeast Saccharomyces cerevisiae MFSHYRYKENSCQKREAIPDKSRVSLTFLQKRTDSSNVTVAVAVAVPIGAIIIVLSVVLIVVYRRCKKNLLCRILTQILRAIYTIYRRWITSMNSANSDSNATEKRFIYGGYDDFLQPSIENSQSFKDYVRRINEHAPSAYNIASLASQNNSKLSVPSKHIDLSNKISFESLENSELIVSPQHSNTGQDCDQRCDSTSNPDVNEKSSHNNDNRLKSNYTSRSGLEPQCSREEEENIDRIRSIYNIYFEKSNSTIRSSVTSSIRRDSKLNIATRKSVNMSSQDNPNDTTLIEQSHFGSTTVQEIDSSSSANEEYEDATDYLQVPAPQENKNIASSVYSEVATREKVIPESSLSLTFPPPNGLSTRITSSIYSDTVAKDHIHSAKAPVRALSEGSGQSNLTSAQQYSTYFIDHCNQSNDDNYYYNYPLPLEHPQNYENIGDLPTPTQFIYSTSSHSLTSFKGRPKPPKTLKHVPTARLNGTALNPMDHPEMFYSSPTKIPSTSLTKQFCTPLPYQLRQSVVMTNPSELSMKPRYKPAGSLRNLIKAQYLPGNSSTTTSSSLSQPPSTLSNAINFRVSGLLDDTDILQPPSVGEILPFKASTEDLRKQLGTSHNYEITPYENVHV yih9_yeast Hypothetical 41.6 kDa protein in SDS3-THS1 intergenic region YIL079C protein protein yeast Saccharomyces cerevisiae MSTLLSEVESIDTLPYVKDTTPTGSDSSSFNKLLAPSIEDVDANPEELRTLRGQGRYFGITDYDSNGAIMEAEPKCNNCSQRGHLKRNCPHVICTYCGFMDDHYSQHCPKAIICTNCNANGHYKSQCPHKWKKVFCTLCNSKRHSRERCPSIWRSYLLKTKDANQGDFDFQTVFCYNCGNAGHFGDDCAERRSSRVPNTDGSAFCGDNLATKFKQHYFNQLKDYKREASQRQHFDNEHEFNLLDYEYNDDAYDLPGSRTYRDKMKWKGKVQSTRNKNSSNNRYESSNNRKKKSPFSAQNYKVTKNKRVQTHPLDFPRSSQNNRTNDYSSQFSYNRDDFPKGPKNKRGRSSSNKSQRNGRY cdc28_yeast Cell division control protein 28 CDC28 CDK1 HSL5 SRM5 YBR160W YBR1211 protein protein yeast Saccharomyces cerevisiae MSGELANYKRLEKVGEGTYGVVYKALDLRPGQGQRVVALKKIRLESEDEGVPSTAIREISLLKELKDDNIVRLYDIVHSDAHKLYLVFEFLDLDLKRYMEGIPKDQPLGADIVKKFMMQLCKGIAYCHSHRILHRDLKPQNLLINKDGNLKLGDFGLARAFGVPLRAYTHEIVTLWYRAPEVLLGGKQYSTGVDTWSIGCIFAEMCNRKPIFSGDSEIDQIFKIFRVLGTPNEAIWPDIVYLPDFKPSFPQWRRKDLSQVVPSLDPRGIDLLDKLLAYDPINRISARRAAIHPYFQES cak1_yeast Serine/threonine-protein kinase CAK1 CAK1 CIV1 YFL029C protein protein yeast Saccharomyces cerevisiae MKLDSIDITHCQLVKSTRTARIYRSDTYAIKCLALDFDIPPHNAKFEVSILNKLGNKCKHILPLLESKATDNNDLLLLFPFEEMNLYEFMQMHYKRDRRKKNPYYDLLNPSIPIVADPPVQKYTNQLDVNRYSLSFFRQMVEGIAFLHENKIIHRDIKPQNIMLTNNTSTVSPKLYIIDFGISYDMANNSQTSAEPMDSKVTDISTGIYKAPEVLFGVKCYDGGVDVWSLLIIISQWFQRETSRMGHVPAMIDDGSDDMNSDGSDFRLICSIFEKLGIPSIQKWEEVAQHGSVDAFVGMFGADGDGKYVLDQEKDVQISIVERNMPRLDEIADVKVKQKFINCILGMVSFSPNERWSCQRILQELEKP cg11_yeast G1/S-specific cyclin CLN1 YMR199W YM9646.13 CLN1 protein protein yeast Saccharomyces cerevisiae MNHSEVKTGLIVTAKQTYYPIELSNAELLTHYETIQEYHEEISQNVLVQSSKTKPDIKLIDQQPEMNPHQTREAIVTFLYQLSVMTRVSNGIFFHAVRFYDRYCSKRVVLKDQAKLVVGTCLWLAAKTWGGCNHIINNVSIPTGGRFYGPNPRARIPRLSELVHYCGGSDLFDESMFIQMERHILDTLNWDVYEPMINDYILNVDENCLIQYELYKNQLQNNNSNGKEWSCKRKSQSSDDSDATVEEHISSSPQSTGLDGDTTTMDEDEELNSKIKLINLKRFLIDLSCWQYNLLKFELYEICNGMFSIINKFTNQDQGPFLSMPIGNDINSNTQTQVFSIIINGIVNSPPSLVEVYKEQYGIVPFILQVKDYNLELQKKLQLASTIDLTRKIAVNSRYFDQNASSSSVSSPSTYSSGTNYTPMRNFSAQSDNSVFSTTNIDHSSPITPHMYTFNQFKNESACDSAISVSSLPNQTQNGNMPLSSNYQNMMLEERNKENRIPNSSSAEIPQRAKFMTTGIFQNTGELTNRASSISLSLRNHNSSQL cg13_yeast G1/S-specific cyclin CLN3 CLN3 DAF1 WHI1 YAL040C FUN10 protein protein yeast Saccharomyces cerevisiae MAILKDTIIRYANARYATASGTSTATAASVSAASCPNLPLLLQKRRAIASAKSKNPNLVKRELQAHHSAISEYNNDQLDHYFRLSHTERPLYNLTNFNSQPQVNPKMRFLIFDFIMYCHTRLNLSTSTLFLTFTILDKYSSRFIIKSYNYQLLSLTALWISSKFWDSKNRMATLKVLQNLCCNQYSIKQFTTMEMHLFKSLDWSICQSATFDSYIDIFLFQSTSPLSPGVVLSAPLEAFIQQKLALLNNAAGTAINKSSSSQGPSLNINEIKLGAIMLCELASFNLELSFKYDRSLIALGAINLIKLSLNYYNSNLWENINLALEENCQDLDIKLSEISNTLLDIAMDQNSFPSSFKSKYLNSNKTSLAKSLLDALQNYCIQLKLEEFYRSQELETMYNTIFAQSFDSDSLTCVYSNATTPKSATVSSAATDYFSDHTHLRRLTKDSISPPFAFTPTSSSSSPSPFNSPYKTSSSMTTPDSASHHSHSGSFSSTQNSFKRSLSIPQNSSIFWPSPLTPTTPSLMSNRKLLQNLSVRSKRLFPVRPMATAHPCSAPTQLKKRSTSSVDCDFNDSSNLKKTR yeo9_yeast Hypothetical 47.0 kDa protein in PET117-CEM1 intergenic region YER059W protein protein yeast Saccharomyces cerevisiae MSIKGDSPSSTNASSSPKSTYSIQSDDKANLGSGNVDIRTDNSQQDSNNRRDIVVVTRVASEETLESQSSTSSMGIRPESSFNYEDASNQARVEMNNRVHGSNMNTINKYYPVRFPKNNERQLSDTNNLNEKVQGTHTVQSSTQEDKILDGDTSNSQVTPSLNIAEFPTDKLLKMLTALLTKIIKSNDRTAATNPSLTQEIENGRCLALSDNEKKYLSPVLGFRGKHVPQIGLDQYFQRIQKYCPTTNDVFLSLLVYFDRISKRCNSVTTTPKTNTAKHESPSNESSLDKANRGADKMSACNSNENNENDDSDDENTGVQRDSRAHPQMFVMDSHNIHRLIIAGITVSTKFLSDFFYSNSRYSRVGGISLQELNHLELQFLVLCDFELLISVNELQRYADLLYRFWNNAKAQSQALVTGM yif0_yeast Hypothetical 32.0 kDa protein in RPL34B-SYG1 intergenic region YIL050W protein protein yeast Saccharomyces cerevisiae MELSSPSKKTTTSPINIPGGNRDNLIIGPHSHSFKTDPFSSNNSSLLSKISTNPSLESPFSSKSLLDCSPVQAVKKSLESEAKTHSLDEETNEQTDVKILNIADFPTDELILMISALLNRIITANDETTDVSQQVSDETEDELLTPILAFYGKNVPEIAVVQYLERIQKYCPTTNDIFLSLLVYFDRISKNYGHSSERNGCAKQLFVMDSGNIHRLLITGVTICTKFLSDFFYSNSRYAKVGGISLQELNHLELQFLILCDFKLLVSVEEMQKYANLLYKFWNDQ stb1_yeast STB1 protein STB1 YNL309W N0384 protein protein yeast Saccharomyces cerevisiae MSQPQMSPEKEQELASKILHRAELAQMTRQLKLGLSNVPSTKRKQDSTTKKRSGEDAEDVDEDHKTLLEAISPAKKPLHDDTNKMTVISPVKFVEKPNTPPSSRQRKAEDRSQQIKPRKEDTPSTPRASATPIILPHASSHYQRPHDKNFMTPKRNNNNSSNHSNNNNNIKKKAAGSKDAPQDSDNTAGADLLMYLATSPYNKSSHHGTPMAVRMPTTPRSYHYASQLSLNGNTASTSNDAVRFSHIKPSASSPQSTFKSNLLPNFPDESLMDSPSLYLSNNNGSVQATLSPQQRRKPTTNTLHPPSNVPTTPSRELNGTNFNLLRTPNFNMGDYLHNLFSPSPRVPAQQGASNTSASIPSVPAMVPGSSSNTSAIATAAISSHTTNNFLDMNANGIPLIVGPGTDRIGEGESIDDKLTD ykb4_yeast Hypothetical 203.3 kDa protein in PUT3-ARC19 intergenic region YKL014C protein protein yeast Saccharomyces cerevisiae MSNHSEAYGSRDQRREKYTQGKEFEDGTLETLESIISAVEDETLSKDYQPLIVFFQRGFGAQLVQTWSYYAQVNNHGKFSKTTSLLTKTLRVLSSDTSTVTIGSGLIRLILTDYTKVLYRGLNNMRAQLTNPILRLLKQIVNFNNGQHIEELVSYFDFSLPILPRLLVPSKSELANGNSSADSSKHDSLRFTFIKFWLTLISNASPFVRKELLTENFKIMSNLFKFMNKADSDKLSEHILSVFINDILKEKSFKRTTKTKILNELAASKIHHFYYSSNKNLVKKANEFFLTFGASRDFSVAFPDNCVWFKNSVADGASHGAPITVNQVEFQIHNKLLFNTLRLFKPWEDTLQLGTLIKILENVPELVAPYSIFLTTNGNYDPKMTSYWFGITLLINKIINLKIPQFMEKVDSNIPPATSLVIENILPSLLTKSSLVKSLQFETPIIRQLACQSIVLALKKLEKVSTFYDQKGWRNEKTILLNEFHTRIPDLPIFVSTLSNSLASNKDNRILPLSISIIFNYYSKMFPNLFSINLPSSNIYTDIMQKSKISGIEFAILDNYLQFQEFNSTQTRWWNPSSGGNSLFTLLLKLASSKNASNVITTRISNLLDELTRTNVIFNISLISPVMALVNSLQGLSLQVSEIDNMEQVWKWFDETISRVVKTPYKYVDMAKEYNYISPFIMCLSEQWKYVDKSGNPEFLIKWLILFLRNMIFIGEDHIGIDKLVKNVFPEVSDHDVNIYLKLDSFEENIKKTNSSNSLISSMKSSSFFQYISALPSKNLMNISRLPVNKLDAAGILFRVQLLVEDDSVVYDNWFEATACELTGKIASYMVTDTEFPIIKVLERYINFALPKLAIEKRNALLMKKSRFMCNLIGAVCFETGHQLVEFREIIQKVVFSGENVEEYANYNELYQKEDVNAFLTSVSEYLSTSALTSLLMCSTKLESTRNILQKLFNEGKTIKISLVKNILNKAANEDPASIKEVNISLAKFFEENKVCVDASSDPMGKLSLSETTSLINSFVSSDLNYLVLKAFYRWEHFSFPSFIPSIWRIKDSPLLSIVTTAALFKHMQDKDFSAFAHETISKYGNEIAKSTYTTSKSEIFDEILNMITTYIDFYDETKRNEILKCVLSQSDHKYHAATVRYIAAHNNFTYPGVETWLHKTLLYLTKYLSERKVISNSFFELLRAMAELLKLEEVPNKLNVKIINSQLEAILGSEWIKQIKVLEYVIVLIFCVSKKSIQSQRMVQLLLSNDSYSSIMIKDNDEDSSYRKFLSTMILFSLFSIDPVVNSTPIVQEKLLTFYSGTISSNDKLILKILETIESHTATSWTNMIFSWEFIKDEEEEILEAIGDTRLITKEREGLILTLQKNMIKKSIDRYVLERPQVPELYTDSNTNNYDATTRCDLVKKYYDDTERSGVDMYDPLFLLLLIIHNKELVKMVKDDEGNVTYRYEFENFLDCKIFQFIICSLSDCHTVANISYEHLSNLASSLEKKTAQMNLEKQITSKDNERKESDSDLIKYNSIYQVLIKRILYQRQQNQDPINPLIWFSISRIVDLLGSPTAPLHEKAYRWVLSNSTIRSWDIPMVSDVMMSYNKRQQDDNKKEIDMEIYYGELSWVLTTICKGIKTDEDYKMLEKKGVFEWLLNLINMPYLKERLRELIYFIFYKVQRVADDGGLNLISRNGIVSFFEVLNNNIKSRLPQDDILNNIGTLRNENRGTLNTTLRLAQEQNGIEKLLLGYNELVKSQKRLILWTEGDSDNVVKRLRK yk57_yeast Hypothetical 39.9 kDa protein in SIS2-MTD1 intergenic region YKR077W protein protein yeast Saccharomyces cerevisiae MVYTTPQQQQRFSSTPQSSHTLIFSPIRAPSMQTPSSLDYQSPSIVVSSSSMKVHGRSSSFGKFSLSIGQNGKATILGPINVLPTDTSKMEKPVPKKKPVTSDRVEKTRILSLLKKMRNKSSTVNKKYSKVPLKSTTSLQPAATAPSPLVSNIIKPSPKKLASPRTPNANSNLNLNFTSFQIKTGFTPNLDGILLENFTSPNTTADSQGNSASNIINNNHGSANNTNQFLFNLPLQSSPRQFRSPARLIDPLPISDWNTSLLMSPPRTTNFESANNHFNSNFAQASMLRRPSLPHIDEVIPQDSNPANYSDRSDYLSVDQNANNHNGALSEQTYNNIMKSSMISLPIEKDDATMALRKLVSRE q02606_yeast Ypl014wp YPL014W protein protein yeast Saccharomyces cerevisiae MLLERLHKRLHAGSSRRSQENKDKNCKPEDALPIQPEAQHQTQDPQPLLNCDYDDMIAFDRNLSTPVFTPVMTPINNSSSNQAKSSDASYFPPYLNANRTRQNSASSLASSVSDFAQNFKQHTFYNNNAQFTSFTPQFVGLLLEVYQNTCSDPTITPFDTTNPPSGILNRVAKAAIQQSELQQLDIGCDRNSWLLTLVRQRLLQEVRKDGYLSRNTSLTSLPPPPPPQFSEMLRVPSPFVNADITDPIPLSNTNSNPNVSSTTSLTNTLNWYSLQRSNVSMKNRNGSSQYISELQPQPILARTNSNNSVSNSNAFSLLTPTPTTDSAFNFNIALLSRQRSNIISSPLASTRLPTANVSTEESSILPNESLKLKRDLLRLKR q02866_yeast Ypl070wp MUK1 YPL070W protein protein yeast Saccharomyces cerevisiae MARQLFTPPITNPRFDPNQSIRESYKNTTGGMQFQQNLHEDQNDNERSSCDGDENSTTGERLENNKSPILTKQEIDEALNTVTNLPPELSKLIDIFIDDLKQPKYVRPLSVLQLSSLFQSFYIKFDKASFQHVSSANNNGYYFSGGGSSSFLAAKETLSSGLSGIFGRSRSSSGNSLMRPRRSSSLFSNESISNSTNATQMLSPEEIKKQLKINELNNMKIEKYMELCERDVFKKILIVGTSVSSPNKMKTFKPHQLQTFKVGNLFRNSVEFTEYNKLLNEKILCLSKLSTMNKINLIKFLSLNNGIDPEPKFEEIKDILYEFTYHSISPCEKIKALLKLHEIMTYSQEMSNDDYLSLLIYYIITIVPRDIFLNAEFIRLFRYKKKLVETESFALTNLEAALVFVEGLTKNDFSNELQDKLTVNESKILENSISSRVSLPSKTAIMHKNNGNNGSNLGDIVTPTIQRPDVTRSNSYDGFRTVFDSSLKNIIGKIRSYTPPHPNNTSNNNLHSSNNLNIPRSSSQLSMELSNRDTTEMSRDGSRSTSSSSRSSASLEHGNREFTGDLTVTASINGADKKEFQKSWKKYKGYKFEDLTICELRDLFEIYQKMMQ cdc48_yeast Cell division control protein 48 CDC48 YDL126C protein protein yeast Saccharomyces cerevisiae MGEEHKPLLDASGVDPREEDKTATAILRRKKKDNMLLVDDAINDDNSVIAINSNTMDKLELFRGDTVLVKGKKRKDTVLIVLIDDELEDGACRINRVVRNNLRIRLGDLVTIHPCPDIKYATRISVLPIADTIEGITGNLFDVFLKPYFVEAYRPVRKGDHFVVRGGMRQVEFKVVDVEPEEYAVVAQDTIIHWEGEPINREDEENNMNEVGYDDIGGCRKQMAQIREMVELPLRHPQLFKAIGIKPPRGVLMYGPPGTGKTLMARAVANETGAFFFLINGPEVMSKMAGESESNLRKAFEEAEKNAPAIIFIDEIDSIAPKRDKTNGEVERRVVSQLLTLMDGMKARSNVVVIAATNRPNSIDPALRRFGRFDREVDIGIPDATGRLEVLRIHTKNMKLADDVDLEALAAETHGYVGADIASLCSEAAMQQIREKMDLIDLDEDEIDAEVLDSLGVTMDNFRFALGNSNPSALRETVVESVNVTWDDVGGLDEIKEELKETVEYPVLHPDQYTKFGLSPSKGVLFYGPPGTGKTLLAKAVATEVSANFISVKGPELLSMWYGESESNIRDIFDKARAAAPTVVFLDELDSIAKARGGSLGDAGGASDRVVNQLLTEMDGMNAKKNVFVIGATNRPDQIDPAILRPGRLDQLIYVPLPDENARLSILNAQLRKTPLEPGLELTAIAKATQGFSGADLLYIVQRAAKYAIKDSIEAHRQHEAEKEVKVEGEDVEMTDEGAKAEQEPEVDPVPYITKEHFAEAMKTAKRSVSDAELRRYEAYSQQMKASRGQFSNFNFNDAPLGTTATDNANSNNSAPSGAGAAFGSNAEEDDDLYS rtg3_yeast Retrograde regulation protein 3 RTG3 YBL103C YBL0810 protein protein yeast Saccharomyces cerevisiae MMNNNESEAENQRLLDELMNQTKVLQETLDFSLVTPTPHHNDDYKIHGSAYPGGETPAQQHEKLSYINTHNSNDNNNLMGSQARSNSQTPTASTIYEEAESQSSYLDDMFRTSQGGRPVTQNSISSIGQGPLRSSYSMAYDSPVDRAMNTPLQQQEGLKAELPHDFLFQHGTDDTMYNLTDDLSSSLSSSINSDMMTPNTYSSSFSYNPQSLGPASVSSTYSPKVRSPSSSFRAGSFLSSSFRHGSINTPRTRHTSISSNMTENIGPGSVPKILGGLTSDEKLRRKREFHNAVERRRRELIKQKIKELGQLVPPSLLNYDDLGKQIKPNKGIILDRTVEYLQYLAEILEIQARKKKALLAKIKELEEKKSSVAALSPFTNNHHASSGQNNSENSEERIIDIRSVPNALMNEQNSKAELHNWEPPLYDSVGNHNHAGTMESHPHTNIHEELKEFLSGDLIEAEDNAKLMFGDDNSNPADYLLEFGSG cdc53_yeast Cell division control protein 53 CDC53 YDL132W D2190 protein protein yeast Saccharomyces cerevisiae MSETLPRSDDLEATWNFIEPGINQILGNEKNQASTSKRVYKILSPTMYMEVYTAIYNYCVNKSRSSGHFSTDSRTGQSTILVGSEIYEKLKNYLKNYILNFKQSNSETFLQFYVKRWKRFTIGAIFLNHAFDYMNRYWVQKERSDGKRHIFDVNTLCLMTWKEVMFDPSKDVLINELLDQVTLGREGQIIQRSNISTAIKSLVALGIDPQDLKKLNLNVYIQVFEKPFLKKTQEYYTQYTNDYLEKHSVTEYIFEAHEIIKREEKAMTIYWDDHTKKPLSMALNKVLITDHIEKLENEFVVLLDARDIEKITSLYALIRRDFTLIPRMASVFENYVKKTGENEISSLLAMHKHNIMKNENANPKKLALMTAHSLSPKDYIKKLLEVHDIFSKIFNESFPDDIPLAKALDNACGAFININEFALPAGSPKSATSKTSEMLAKYSDILLKKATKPEVASDMSDEDIITIFKYLTDKDAFETHYRRLFAKRLIHGTSTSAEDEENIIQRLQAANSMEYTGKITKMFQDIRLSKILEDDFAVALKNEPDYSKAKYPDLQPFVLAENMWPFSYQEVEFKLPKELVPSHEKLKESYSQKHNGRILKWLWPLCRGELKADIGKPGRMPFNFTVTLFQMAILLLYNDADVLTLENIQEGTSLTIQHIAAAMVPFIKFKLIQQVPPGLDALVKPETQFKLSRPYKALKTNINFASGVKNDILQSLSGGGHDNHGNKLGNKRLTEDERIEKELNTERQIFLEACIVRIMKAKRNLPHTTLVNECIAQSHQRFNAKVSMVKRAIDSLIQKGYLQRGDDGESYAYLA cbf3d_yeast Centromere DNA-binding protein complex CBF3 subunit D CBF3D SKP1 YDR328C D9798.14 protein protein yeast Saccharomyces cerevisiae VTSNVVLVSGEGERFTVDKKIAERSLLLKNYLNDMHDSNLQNNSDSESDSDSETNHKSKDNNNGDDDDEDDDEIVMPVPNVRSSVLQKVIEWAEHHRDSNFPDEDDDDSRKSAPVDSWDREFLKVDQEMLYEIILAANYLNIKPLLDAGCKVVAEMIRGRSPEEIRRTFNIVNDFTPEEEAAIRRENEWAEDR erg27_yeast 3-keto-steroid reductase ERG27 YLR100W protein protein yeast Saccharomyces cerevisiae MNRKVAIVTGTNSNLGLNIVFRLIETEDTNVRLTIVVTSRTLPRVQEVINQIKDFYNKSGRVEDLEIDFDYLLVDFTNMVSVLNAYYDINKKYRAINYLFVNAAQGIFDGIDWIGAVKEVFTNPLEAVTNPTYKIQLVGVKSKDDMGLIFQANVFGPYYFISKILPQLTRGKAYIVWISSIMSDPKYLSLNDIELLKTNASYEGSKRLVDLLHLATYKDLKKLGINQYVVQPGIFTSHSFSEYLNFFTYFGMLCLFYLARLLGSPWHNIDGYKAANAPVYVTRLANPNFEKQDVKYGSATSRDGMPYIKTQEIDPTGMSDVFAYIQKKKLEWDEKLKDQIVETRTPI dcn1_yeast Defective in cullin neddylation protein 1 DCN1 YLR128W L3111 protein protein yeast Saccharomyces cerevisiae MSNNKIKRKDASPEQEAIESFTSLTKCDPKVSRKYLQRNHWNINYALNDYYDKEIGTFTDEVSTVAHPPVYPKELTQVFEHYINNNLFDIDSLVKFIEELGYNLEDLATLCLAHLLGYKKLEEPLKREDFLSTWFMQGCSTISDMQECIKTLDVKLHEDLQYFTQIYNYAFNLILDPNRKDIDTDEGIQYWKLFFQPEYPVRMEPDLLEAWFRFLRDEGKTTISKDTWRMLLLFFKRYPTIQKIISDYDETAAWPFIIDEFYECLQDQQ mdm30_yeast Mitochondrial distribution and morphology protein 30 MDM30 YLR368W protein protein yeast Saccharomyces cerevisiae MTKRRNLFMVGSSFTIDHLPPEIWLCISKLVGTSDLHNLCLINRRLYLTITSDEIWKRRCYDRWINRESLDILTGNDYDSIPVSQWYSYYLRRAKWENKIFCLLWGLTEETNPQHFREKYLHILQFRHYKLATFLHRIIKQGYIPDKRPLDLITYANYLLKNVRHKYVFPLFYPTNAAELKNLNNMASRDAEMIYLRLSAIDTSFDDLLDAREFILNGICSDLLQKYKKIEEFLKLRPVTRVSKLISISTDYLDCFTQPHDSVGQTNDRATGRELHREDFMLLRVYSREGRGYKTIILAIIQAITKRYNVDSYLARDHLVVSEPDFPDGRAFVTVNEDFQPYIFDKEDLLSVWSNNFHNAENFESTVLPALLEPISIQHLLTEFFRELLRCKPRPFEGYPNRAHGLRDMFPYGKVEVPRDVTMYFAFIYDLFDGMFESGMTSLRGQMLRDLLNYVNANNFGDLNIIIGQNALKEPNDCWSNKRDYVLLDDNNKIGYFYTDIETEDTLCALNQYEVDGKVFITTIDILGDIRVRLAEGLTPFQGDNDKLWESFSSVVPRTDWGLFFKGYDKERRRMQLNPYIEEKLSNLANDEQPLHNL ygz9_yeast Hypothetical 82.8 kDa protein in HFM1-PDE1 intergenic region YGL249W NRC704 protein protein yeast Saccharomyces cerevisiae MIIERWEVKLSKCNQNVGGYSVLSGNLKENIKLGRRAQKYLKELRNLQLKPLKIGGYENCGTINGEEYFLEVIHITSGRQKIDVAVGKTWNVTNIENDNKEELQYELFKEKLKVGKQDMLFFSWMKSLSVQLNAPLHQKMTEHGLADDNTRLEWFNIPLLRRSQYRKKVPYPSLRQMSSVLEVQCSTLTEEKLNFCVGFSDKPLSEWKPQIFEQTYNRYRLQRISPEKSFKYKSRCSKYNFKTSSQSWVVKVPEHDQQLNTFEKRYDELFDAQFNKLEFFKIRMKKLKKNKPIEKKNYKIWCLEKEDLKDLVWDPLKRICNHSRYAIFEHVTINREAYSIKPLRLTFQKLDSGSLDLIDNQKKTFGSIKLAMSMPDVKKTENQSIEESERHDETAIETQEFDENDCLSSKADINTSLAPQKRSFIDNELMSMLVTKKKIKKDKDVSDTGISSTSYLINSGTYANSHIEIPTSNSVYNGKEDCSFNNYSVKHSILEEDIENKCIAVNENKVIENQKVIQSLCKNSHLDLIEQSYFGECDFIINHSTCVYKIQASRFMQLRNNGSLHYDKAVNDLLTEFQRVIIIVEFSEIIQDVDPDLFWKIKLYLLNSRVDVFFIHETTDFFIDWMKYFIARWAFSYNDEKEKNIANADILLDLGFNILLVRKIFQTYSLEEFFMAIIKEESKAVKMLTVSQMTRLKKLLTLEW p87283_yeast Ydr274cp YDR274C protein protein yeast Saccharomyces cerevisiae MFSCLLHSSRPTDSYCTLAAPLSQTARTRTMTFHAATAKRKTEHSGIKESNLHLSRVLLSSFCRAKGRFVSFFICYPFPFGLTRFPRVLWSIGLDKSLFTRVHFSPSFFSLLAPLQFSGIVRS chk1_yeast Serine/threonine-protein kinase CHK1 CHK1 YBR274W YBR1742 protein protein yeast Saccharomyces cerevisiae MSLSQVSPLPHIKDVVLGDTVGQGAFACVKNAHLQMDPSIILAVKFIHVPTCKKMGLSDKDITKEVVLQSKCSKHPNVLRLIDCNVSKEYMWIILEMADGGDLFDKIEPDVGVDSDVAQFYFQQLVSAINYLHVECGVAHRDIKPENILLDKNGNLKLADFGLASQFRRKDGTLRVSMDQRGSPPYMAPEVLYSEEGYYADRTDIWSIGILLFVLLTGQTPWELPSLENEDFVFFIENDGNLNWGPWSKIEFTHLNLLRKILQPDPNKRVTLKALKLHPWVLRRASFSGDDGLCNDPELLAKKLFSHLKVSLSNENYLKFTQDTNSNNRYISTQPIGNELAELEHDSMHFQTVSNTQRAFTSYDSNTNYNSGTGMTQEAKWTQFISYDIAALQFHSDENDCNELVKRHLQFNPNKLTKFYTLQPMDVLLPILEKALNLSQIRVKPDLFANFERLCELLGYDNVFPLIINIKTKSNGGYQLCGSISIIKIEEELKSVGFERKTGDPLEWRRLFKKISTICRDIILIPN rad3_yeast DNA repair helicase RAD3 RAD3 REM1 YER171W protein protein yeast Saccharomyces cerevisiae MKFYIDDLPVLFPYPKIYPEQYNYMCDIKKTLDVGGNSILEMPSGTGKTVSLLSLTIAYQMHYPEHRKIIYCSRTMSEIEKALVELENLMDYRTKELGYQEDFRGLGLTSRKNLCLHPEVSKERKGTVVDEKCRRMTNGQAKRKLEEDPEANVELCEYHENLYNIEVEDYLPKGVFSFEKLLKYCEEKTLCPYFIVRRMISLCNIIIYSYHYLLDPKIAERVSNEVSKDSIVIFDEAHNIDNVCIESLSLDLTTDALRRATRGANALDERISEVRKVDSQKLQDEYEKLVQGLHSADILTDQEEPFVETPVLPQDLLTEAIPGNIRRAEHFVSFLKRLIEYLKTRMKVLHVISETPKSFLQHLKQLTFIERKPLRFCSERLSLLVRTLEVTEVEDFTALKDIATFATLISTYEEGFLLIIEPYEIENAAVPNPIMRFTCLDASIAIKPVFERFSSVIITSGTISPLDMYPRMLNFKTVLQKSYAMTLAKKSFLPMIITKGSDQVAISSRFEIRNDPSIVRNYGSMLVEFAKITPDGMVVFFPSYLYMESIVSMWQTMGILDEVWKHKLILVETPDAQETSLALETYRKACSNGRGAILLSVARGKVSEGIDFDHQYGRTVLMIGIPFQYTESRILKARLEFMRENYRIRENDFLSFDAMRHAAQCLGRVLRGKDDYGVMVLADRRFSRKRSQLPKWIAQGLSDADLNLSTDMAISNTKQFLRTMAQPTDPKDQEGVSVWSYEDLIKHQNSRKDQGGFIENENKEGEQDEDEDEDIEMQ rad9_yeast DNA repair protein RAD9 RAD9 YDR217C YD9934.02C protein protein yeast Saccharomyces cerevisiae MSGQLVQWKSSPDRVTQSAIKEALHSPLADGDMNEMNVPVDPLENKVNSTNIIEGSPKANPNPVKFMNTSEIFQKSLGLLDESPRHDDELNIEVGDNDRPNANILHNERTPDLDRIANFFKSNRTPGKENLLTKYQSSDLEDTPLMLRKKMTFQTPTDPLEQKTFKKLKSDTGFCYYGEQNDGEENASLEVTEADATFVQMAERSADNYDCALEGIVTPKRYKDELSKSGGMQDERVQKTQIMISAESPNSISSYDKNKITGNGRTTRNVNKVFNNNEDNIGAIEEKNPVKKKSENYSSDDLRERNNQIIQSNESEEINELEKNLNVSGRENDVNNLDIDINSAVSGTPSRNNAEEEMYSSESVNNREPSKKWIFRYSKDKTENNSNRSTQIVNNPRTQEMPLDSISIDTQPLSKSFNTETNNELETQIIVSCLSQGISAQKGPVFHSTGQTEEIKTQIINSPEQNALNATFETPVTLSRINFEPILEVPETSSPSKNTMSKPSNSSPIPKEKDTFNIHEREVETNNVFSNDIQNSSNAATRDDIIIAGSSDFNEQKEITDRIYLQLSGKQISDSGSDETERMSPNELDTKKESTIMSEVELTQELPEVEEQQDLQTSPKKLVVEEETLMEIKKSKGNSLQLHDDNKECNSDKQDGTESLDVALIEHESKGQSSELQKNLMQLFPSESQEIIQNRRTIKRRQKDTIEIGEEEENRSTKTSPTKHLKRNSDLDAASIKREPSCSITIQTGETGSGKDSKEQSYVFPEGIRTADNSFLSKDDIIFGNAVWCQYTWNYKFYPGILLEVDTNQDGCWIYFETGRSLTKDEDIYYLDIRIGDAVTFDGNEYVVVGLECRSHDLNIIRCIRGYDTVHLKKKNASGLLGKRTLIKALSSISLDLSEWAKRAKIILEDNEKNKGDAYRYLRHPIRGRKSMTNVLSPKKHTDDEKDINTHTEVYNNEIESSSEKKEIVKKDSRDALAEHAGAPSLLFSSGEIRTGNVFDKCIFVLTSLFENREELRQTIESQGGTVIESGFSTLFNFTHPLAKSLVNKGNTDNIRELALKLAWKPHSLFADCRFACLITKRHLRSLKYLETLALGWPTLHWKFISACIEKKRIVPHLIYQYLLPSGESFRLSLDSPSKGGIIKSNNIFSFYTQFLRGSNLRDQICGVKKMLNDYIVIVWGRSELDSFVKFAFACLSAGRMLTIDLPNIDVDDTEPLLNALDSLVPRIGSELSNRKLKFLIYANENNGKSQMKLLERLRSQISLKFKKFNYIFHTESKEWLIQTIINEDTGFHDDITDNDIYNTISEVR sds3_yeast SDS3 protein SDS3 YIL084C protein protein yeast Saccharomyces cerevisiae MAIQKVSNKDLSRKDKRRFNIESKVNKIYQNFYSERDNQYKDRLTALQTDLTSLHQGDNGQYARQVRDLEEERDLELVRLRLFEEYRVSRSGIEFQEDIEKAKAEHEKLIKLCKERLYSSIEQKIKKLQEERLLMDVANVHSYAMNYSRPQYQKNTRSHTVSGWDSSSNEYGRDTANESATDTGAGNDRRTLRRRNASKDTRGNNNNQDESDFQTGNGSGSNGHGSRQGSQFPHFNNLTYKSGMNSDSDFLQGINEGTDLYAFLFGEKNPKDNANGNEKKKNRGAQRYSTKTAPPLQSLKPDEVTEDISLIRELTGQPPAPFRLRSD snx4_yeast Sorting nexin-4 SNX4 YJL036W J1244 ATG24 CVT13 protein protein yeast Saccharomyces cerevisiae MTDKGKNDLTSKAKDKARGNPEKPPYWFEIIVSDPQKRTGDPGSSSGYVSYQISTKTNNTSFYDNRGDPESIIVVHRRYSDLLLLHDILLNRFPTCIIPPLPDKKVFQYIAGDRFSQRFTQKRCHSLQNFLRRVSLHPDLSQSKVFKTFLVSKDWESHRKVLQDSLQPNKDEVTDAFMNAFKTVHKQNEEFTEIREKSDKLDRTVTKIDKLFHKVVKKNDSMSEDYTKLGSNLQELQELVTGENEELAAKLKIFNEGVTQLSYGLQDLTKYLDYEYIVDLKDLEHYIDSMRQLIKLKDQKQIDYEELSDYLTRSIKEKNNLISGYGGSNFFANKLEELAGINQEASRREKINKLEGKITSLTGELENAKKVADGFEQECLKEIDHFESVKTAEIKKSLGSLADHHIEFYERILEAWEKVDDSL ynx4_yeast Hypothetical 47.8 kDa protein in SIN4-BNI4 intergenic region YNL234W N1142 protein protein yeast Saccharomyces cerevisiae MTGEKILHSQLLTNSDMSSGNVHHTKPMMYNVTLPSYNSSSIGPVDNLKINERPGSHDHSMRSEMSSKNSGSDFMPQSISRSEGSVYQVKIDRGDSPNTEGFDFKVNARDLLLLRMSWDILLREYLTPKELKVFQALLYSNKHITSTERPYLNTAPDGMISKTIDPTARPRKTKQRDNDNKVDTALFCSQFYDNLIAMDPLLEEYFPSLKHQAVSFCKVLDSAIDNLENVHVLDDYIVKLGKRHSRILGIKTVGFEVMGKAFMTTLQDRFGSFLTLELKNLWGQLYSYLANCMITAGKDPMEKIQPDFSYNGDSVVLNFSIPKLAMHDISTVNKLQMVKTKNATIPHNITQVPTNKIPTEILLDNSSTPIKSDRESTPPISPKGSGSTKPSIGSSTVVESNTKKNNYDEKIHLLQKTAQQKNCSIM csk22_yeast Casein kinase II, alpha' chain (CK II) CKA2 YOR061W YOR29-12 protein protein yeast Saccharomyces cerevisiae PLPPSTLNQKSNRVYSVARVYKNACEERPQEYWDYEQGVTIDWGKISNYEIINKIGRGKYSEVFSGRCIVNNQKCVIKVLKPVKMKKIYRELKILTNLTGGPNVVGLYDIVQDADSKIPALIFEEIKNVDFRTLYPTFKLPDIQYYFTQLLIALDYCHSMGIMHRDVKPQNVMIDPTERKLRLIDWGLAEFYHPGVDYNVRVASRYHKGPELLVNLNQYDYSLDLWSVGCMLAAIVFKKEPFFKGSSNPDQLVKIATVLGTKELLGYLGKYGLHLPSEYDNIMRDFTKKSWTHFITSETKLAVPEVVDLIDNLLRYDHQERLTAKEAMDHKFFKTKFE csk21_yeast Casein kinase II, alpha chain CKA1 YIL035C protein protein yeast Saccharomyces cerevisiae MKCRVWSEARVYTNINKQRTEEYWDYENTVIDWSTNTKDYEIENKVGRGKYSEVFQGVKLDSKVKIVIKMLKPVKKKKIKREIKILTDLSNEKVPPTTLPFQKDQYYTNQKEDVLKFIRPYIFDQPHNGHANIIHLFDIIKDPISKTPALVFEYVDNVDFRILYPKLTDLEIRFYMFELLKALDYCHSMGIMHRDVKPHNVMIDHKNKKLRLIDWGLAEFYHVNMEYNVRVASRFFKGPELLVDYRMYDYSLDLWSFGTMLASMIFKREPFFHGTSNTDQLVKIVKVLGTSDFEKYLLKYEITLPREFYDMDQYIRKPWHRFINDGNKHLSGNDEIIDLIDNLLRYDHQERLTAKEAMGHPWFAPIREQIEK csk2c_yeast Casein kinase II beta' subunit CKB2 YOR039W OR26.32 protein protein yeast Saccharomyces cerevisiae MGSRSENVGTVTREGSRVEQDDVLMDDDSDSSEYVDMWIDLFLGRKGHEYFCDVDPEYITDRFNLMNLQKTVSKFSYVVQYIVDDLDDSILENMTHARLEQLESDSRKLYGLIHARYIITIKGLQKMYAKYKEADFGRCPRVYCNLQQLLPVGLHDIPGIDCVKLYCPSCEDLYIPKSSRHSSIDGAYFGTSFPGMFLQAFPDMVPKHPTKRYVPKIFGFELHKQAQLTRWQELQRLKLVEKLESKDVDLTKSGGFKT csk2b_yeast Casein kinase II beta subunit CKB1 YGL019W protein protein yeast Saccharomyces cerevisiae MSQEFVEDYSRTGSSDDEDSGAYDEWIPSFCSRFGHEYFCQVPTEFIEDDFNMTSLSQEVPHYRKALDLILDLEAMSDEEEDEDDVVEEDEVDQEMQSNDGHDEGKRRNKSPVVNKSIIEHAAEQLYGLIHARFILTKPGLQAMAEKFDHKEFGTCPRYYCNGMQLLPCGLSDTVGKHTVRLYCPSCQDLYLPQSSRFLCLEGAFWGTSFPGVFLKHFKELEEYVERKSKESYELKVFGFRINDEAVSGPRMKWLRQYPSTEEDWEEFAKCEFETPAV yni7_yeast Hypothetical 132.5 kDa protein in TOP2-MKT1 intergenic region YNL087W N2250 protein protein yeast Saccharomyces cerevisiae MSPNSSKTRTDQISSMPGINEATKVESKNVVKDAVPIKSEVETNGTSIVREKQDPSYVGWKQVGGWEEKDELTSEDLLVDVNKDTFLGNLLPDKFYGDWYHEVAILIIAGLCSFVLGYFKFSLASVLIVMLTTGMLYRTSSKKYRESLRDLAQKEQTVEKITSDYESVEWLNTFLDKYWPIIEPSVSQQIVDGTNTALSENVAIPKFIKAIWLDQFTLGVKPPRIDAIKTFQNTKSDVVVMDVCLSFTPHDMSDLDAKQCRNYVNSNVVLKAKIFGMDIPVSVADIFFQVFVRFRFQLMTTLPLVETINIQLLEVPEVDFISRLLGNSVFNWEILAIPGLMRLIQKMAFKYLSPVLLPPFSLQLNIPQLLSKTGLPIGVLEIKVKNAHGLRKLVGMIKKTVDPYLTFELSGKIVGKTKVFKNSANPVWNESIYILLQSFTDPLTIAVYDKRETLSDKKMGTVIFNLNKLHANHYHKNEKVHFLRNSKPVGELTFDLRFFPTIEPKKLLNGDEEPLPDMNTGITKITIRELKGLDELSDKKFVFAELYVNAELVMTTKKEKRTAHLKWNSDYYSVVTDRRKTICRFVLKDQSGKVISSSVQPLNHLIDRTEVNKEWIPLRNGKGELKVTTYWRPVDIDLGLKSVGYTTPIGMLRVFINKAENLRNPDSLGKISPYAKVSVNGVARGRTNERIETLNPIWNQSIYVSVTSPLQKVSIDCFGIDTNGDDHNLGSLNIQTQNIYHKDNDDKYTIFIDNAPRTGNLIGKKGVKGTVTYYLSFYPVVPVLSLEEAKEVDEINEKKDKLEKQKSTLDDKNISKEEKERIKKEEFRLTEKYDMYSYKMKLDLDELLQYNAGVLGVTVLGGELPQPGLYVQTFFDSCGYAAITSAKNAIRTIKTGWSGDFMIKELEWSVTTFRVTKTKDANKAENFICEVNIPTIELVRNCYYKPSVLNLIGKKSAKLLVQVSWFPVTATELPQSDLITNSGDLKITAKSAENLIGVNKNGYSDPYVEFFLNEKSTSPFFKTAVQKKTLNPTWNESKTIEVSNRVNDYLTINVKDYESTNSNRSIGKAVVPLSTIDPESDTTFNIPLVGPKGEDGGVLHLEFEFEPRYTTNVVKREAGLGNFATKGLGTGIKAGSTVFALGTNVVSTGLGTIDKVKAGVFGGKKSTTTGDKKSEEKQ nip80_yeast Protein NIP80 NIP80 NIP100 YPL174C protein protein yeast Saccharomyces cerevisiae MRNAGVQVDTNMQKISLQDTVLVNEMKGRVKFIGETQFAKGIWYGIELDKPLGKNDGSANGIRYFDIDLKKANSNGGYYGLFCKKDTLQFYKPDDDEHSLLNGNAAQETIKNLQVKCESLASKLNKIKIENHELKTSVEKLSTNETVLLSKISRLDKLVKELKVENGNMKTHLDNFNHLLDASDSVMAPDLDKGTLLERSHLLQGLLDQTKLSYDKAMKVQEDLLEENTQLLEENAVLSKKISDLGLQLQQTNNTIGDLALQIEAQSKSSNIVDKLTNDNILLTSNIKALNNELEELQAKEKLDENLRITYEQLEQELRLQLSNLQSALENEKEIAGTYIEENSRLKATLESIEAKTSHKFQSLELKVNTLQEELYQNKLLKKFYQIYEPFAQPHLAALSSQLQYLAEVIESENFGKLENIEIHIILKVLSSISYALHIYTIKNTPDHLETTLQCFKVNIAPISMWLSEFLQRKFSSKQETAFSICQFLEDNKFLDKDVTLILKILHPILETTVPKLLAFLRTNSNFNDNDTLCLIGSLYERSLSLIARIDKLIGKEEISKQDNRLFLYPSCDITLSSILTILFSDALFLRQDYKRISSLKKLEVFFQGIESLLENITIFPEQPSQQTSDSESQCNIKEGNFSNSLLSDRLNEENIRLKEVLVQKENMLTELETKIKIIIGRDLERKTLEENIKTLKVELNNKNEENCGKTEILNKLKEENFNLVNRLKNMELKLYQIKDNNTLNKIYLDREKVDRVNLVSEIMELRETIRRQIKEQKRVSIDFSWLDELPAVENKQPFKEHINHSLDTLGIEMFNFVSTSRILDLKLDQPLAEDELWHERDHSYISYLKRKRKNIRLKSQNVVTYYK nu100_yeast Nucleoporin NUP100/NSP100 NUP100 NSP100 YKL068W YKL336 protein protein yeast Saccharomyces cerevisiae MFGNNRPMFGGSNLSFGSNTSSFGGQQSQQPNSLFGNSNNNNNSTSNNAQSGFGGFTSAAGSNSNSLFGNNNTQNNGAFGQSMGATQNSPFGSLNSSNASNGNTFGGSSSMGSFGGNTNNAFNNNSNSTNSPFGFNKPNTGGTLFGSQNNNSAGTSSLFGGQSTSTTGTFGNTGSSFGTGLNGNGSNIFGAGNNSQSNTTGSLFGNQQSSAFGTNNQQGSLFGQQSQNTNNAFGNQNQLGGSSFGSKPVGSGSLFGQSNNTLGNTTNNRNGLFGQMNSSNQGSSNSGLFGQNSMNSSTQGVFGQNNNQMQINGNNNNSLFGKANTFSNSASGGLFGQNNQQQGSGLFGQNSQTSGSSGLFGQNNQKQPNTFTQSNTGIGLFGQNNNQQQQSTGLFGAKPAGTTGSLFGGNSSTQPNSLFGTTNVPTSNTQSQQGNSLFGATKLTNMPFGGNPTANQSGSGNSLFGTKPASTTGSLFGNNTASTTVPSTNGLFGNNANNSTSTTNTGLFGAKPDSQSKPALGGGLFGNSNSNSSTIGQNKPVFGGTTQNTGLFGATGTNSSAVGSTGKLFGQNNNTLNVGTQNVPPVNNTTQNALLGTTAVPSLQQAPVTNEQLFSKISIPNSITNPVKATTSKVNADMKRNSSLTSAYRLAPKPLFAPSSNGDAKFQKWGKTLERSDRGSSTSNSITDPESSYLNSNDLLFDPDRRYLKHLVIKNNKNLNVINHNDDEASKVKLVTFTTESASKDDQASSSIAASKLTEKAHSPQTDLKDDHDESTPDPQSKSPNGSTSIPMIENEKISSKVPGLLSNDVTFFKNNYYISPSIETLGNKSLIELRKINNLVIGHRNYGKVEFLEPVDLLNTPLDTLCGDLVTFGPKSCSIYENCSIKPEKGEGINVRCRVTLYSCFPIDKETRKPIKNITHPLLKRSIAKLKENPVYKFESYDPVTGTYSYTIDHPVLT cgs5_yeast S-phase entry cyclin-5 CLB5 YPR120C P9642.8 protein protein yeast Saccharomyces cerevisiae MGENHDHEQSIKRNSMIYNENERQLCNSNLKILQNKRALSKNDSSSKQQVQDSKPRRALTDVPVNNNPLSQNKRIVAGSKAAKVRREENIRPIVSAVQKRQIYNDRTAAEQEEEEEEEGEDDDAASIVNKKRRIDAEGVSEIVGWQDLDYVEKDDTAMVAEYSAEIFAFLYRRELETLPSHNYLLDKTSKYYLRPSMRTILVDWLVEVHEKFQCYPETLFLSINLMDRFLAKNKVTMNKLQLLAVTSLFIAAKFEEVNLPKLAEYAYITDGAASKNDIKNAEMFMLTSLEFNIGWPNPLNFLRRISKADDYDPVNRNIGKFILEYAYCCHQFIHLPPSTVSAMAMYIARRMTNRNKNELWNGTLQHYSGGIDPIHDEAFQSLCIDLVKDIASSKTHLDSLILKYKKPRYGSVYFQTFKWCTSEMHSNFQNLFNLK pip1_yeast Polymerase-interacting protein 1 PIP1 FIR1 YER032W protein protein yeast Saccharomyces cerevisiae MSLPVTPVKSKVCSTLSIQHEMDHDQCRDVLCPRENLLAINRTNNIESVAIPRQRSSKNKKPHEHTQSQVRFSIPDPNEISQDSPLKIVFPKSGNETERRMSTSSLLMNSHGHLVDMHSKILVDVPKEVWKFHHNRRKKCESRHRKTRSDVRSNTSSSGKEPNHSRSKSLQSIIVDTMNTYRATEVETSINENTSNISQVSPLNLSFDRPPPLTPEKNLYLTPESPLNRYHLPVPLEISLPPYLSPQNKDKKRSSLVYDGDGYSQFQEGNTSSSTESSLEQPSSSYSDEDDSIPYAHHDVSFELNNADADKLLGIDENANVNLKIQRRNLKNPQHIKSKTDRECEEKNTEKNVSLKILSTPNKLIDIPDLEHMKSPPSTGLNGTLKFFQQFEPSEEPTSPTRQVNPESLDKLDMSFKFPSSTTNNNVDKVHENRNSGDTNNEDFLKVDTSPVNQSFESRRQMLIDLQKSPTNNNPRIHKHRRSRSVHNIDDISLNFEATSTPPAPTSAPSIPVEHSNPCTSIEIPKRSPLRFTSSPKTSDIPPEAQSPKNGSFLQEISVPSIQIIPDESISHTREPSPSLIECPEDENEAFSTEVADHSIAIISETKSVPSIEPFKPLSSFNSFGQEIQNKEPTPLNQTPTDLIGKQRNCVNPHSIPFSVLSSNSQSSQSGSSKSSYNSEFSSNTAITDTTSQPSVTINRSTLEHNFIEEKRSIKNLGHGPPSQKNNYSFPRNKNTPSNRHDLDFNTIYEKRDGKMVEVILLDEDEDVGLKNNDISRTRVCHAQKAKNEQQKKRLSHCNEILGMCDKTADDAKRIIYQLVNEKHKFSEKGQQTKPKKSRVLPPLPFPLYDEKGNSLIPNKYQSSIHNDIPSHRKLK fus2_yeast Nuclear fusion protein FUS2 FUS2 YMR232W YM9959.14 protein protein yeast Saccharomyces cerevisiae MFKTSYNLYDLNYPKNDSLTPIRDYKNDYFHKNDDKLPEIVRKPTRKLSKHENKLNDKKFTNKRPASLDLHSIVESLSNKKIYSPINTEIFQNVVRLNLSPQIPNSPHEGCKFYKIVQEFYLSEVEYYNNLLTANNVYRKALNSDPRFKNKLVKLDSSDELLLFGNIDTIASISKILVTAIKDLLLAKQRGKMLDANEWQKIFTKNEVQQQLYSTFDISEAFEQHLLRIKSTYTSYFVSHQKQMELFTTLRMNKNHFFNKWYEYCLKESGCIKLEDILKSPMKRLTQWIDTLETLESCYEDILSPELGLKLSPTRRKYSLFSNKLETEVSEYKSNSMYNFSLTPSEIIQSYDEDQFTHLLKPPDKQNKNICNASRQESNLDNSRVPSLLSGSSSYYSDVSGLEIVTNTSTASAEMINLKMDEETEFFTLADHISKFKKVMKGLLELKKNLLKNDLSGIIDISLRRINAWKKVIECERPSGAFFAHDNLISTMCSSYIDKLHEQKNQVTILKLTELETDVMNPLERIIAHCTTVKSKLKDLQALKKDYMLFLQEKKANVRDIKRDLLGMHFQNLQNQMKRELPVFITLIHDTIECILLNYIKVFLKYLEIIAGGKKYLQKDLENMSLNDSIATGQIKNLDILQCYSKSRYMTKRMVRKDWPFPGDPSGSRVVRKLFEL kar9_yeast Karyogamy protein KAR9 KAR9 YPL269W protein protein yeast Saccharomyces cerevisiae MDNDGPRSMTIGDDFQENFCERLERIHNTLHSINDCNSLNESTTSISETLLVQFYDDLENVASVIPDLVNKKRLGKDDILLFMDWLLLKKYMLYQFISDVHNIEEGFAHLLDLLEDEFSKDDQDSDKYNRFSPMFDVIEESTQIKTQLEPWLTNLKELLDTSLEFNEISKDHMDTLHKIINSNISYCLEIQEERFASPIRHTPSFTLEQLVKLLGTHTETTEPKVPKFSPAEDILSRKFLNLKKNIPPIEKSLTDILPQRIVQFGHRNITNITTLQTILQKKYELIMKDYRFMNSEFRELKVELIDKRWNILFINLNHELLYILDEIERLQSKLLTTKYTKDITIRLERQLERKSKTVSKTFNIIYRALEFSLLDAGVASKTNELAQRWLNIKPTADKILIKSSASNKIATSKKKIPKPKSLGFGRPNSVIGTITQDFQERVAINEGDSNKTPENSTTVALKGKKLGKALLQKMNIKPATSPNSSNAINPFFDPESPNKGKLILSSVPPLPYDETDETTLRVSRGENEKSPDSFITSRHENKVQITETPLMAKNKSVLDIEKDKWNHYRSLPSRIPIYKDKVVKVTVENTPIAKVFQTPPTKITTPNSQVWVPSTRRRTRLRPPTPLSQLLSPREGRLDKTPTY kin1_yeast Protein kinase KIN1 KIN1 YDR122W YD9727.17 protein protein yeast Saccharomyces cerevisiae MDDYHVNTAFSMGRGNQQDDGNSESNSMHTQPSTMAPATLRMMGKSPQQQQQQNTPLMPPADIKYANNGNSHQAEQKERQVELEGKSRENAPKPNTTSQSRVSSSQGMPKQFHRKSLGDWEFVETVGAGSMGKVKLAKHRYTNEVCAVKIVNRATKAFLHKEQMLPPPKNEQDVLERQKKLEKEISRDKRTIREASLGQILYHPHICRLFEMCTLSNHFYMLFEYVSGGQLLDYIIQHGSIREHQARKFARGIASALIYLHANNIVHRDLKIENIMISDSSEIKIIDFGLSNIYDSRKQLHTFCGSLYFAAPELLKANPYTGPEVDVWSFGVVLFVLVCGKVPFDDENSSVLHEKIKQGKVEYPQHLSIEVISLLSKMLVVDPKRRATLKQVVEHHWMVRGFNGPPPSYLPKRVPLTIEMLDINVLKEMYRLEFIDDVEETRSVLVSIITDPTYVLLSRQYWTLAAKMNAESSDNGNAPNITESFEDPTRAYHPMISIYYLTSEMLDRKHAKIRNQQQRQSHENIEKLSEIPESVKQRDVEVNTTAMKSEPEATLATKDTSVPFTPKNSDGTEPPLHVLIPPRLAMPEQAHTSPTSRKSSDNQRREMEYALSPTPQGNDYQQFRVPSTTGDPSEKAKFGNIFRKLSQRRKKTIEQTSVNSNNSINKPVQKTHSRAVSDFVPGFAKPSYDSNYTMNEPVKTNDSRGGNKGDFPALPADAENMVEKQREKQIEEDIMKLHDINKQNNEVAKGSGREAYAAQKFEGSDDDENHPLPPLNVAKGRKLHPSARAKSVGHARRESLKYMRPPMPSSAYPQQELIDTGFLESSDDNKSDSLGNVTSQTNDSVSVHSVNAHINSPSVEKELTDEEILQEASRAPAGSMPSIDFPRSLFLKGFFSVQTTSSKPLPIVRYKIMFVLRKMNIEFKEVKGGFVCMQRFSSNNVAAKREGTPRSIMPLSHHESIRRQGSNKYSPSSPLTTNSIHQRKTSITETYGDDKHSGTSLENIHQQGDGSEGMTTTEKEPIKFEIHIVKVRIVGLAGVHFKKISGNTWLYKELASSILKELKL mpip_yeast M-phase inducer phosphatase MIH1 YMR036C YM9532.01C YM9973.10C protein protein yeast Saccharomyces cerevisiae MNNIFHGTEDECANEDVLSFQKISLKSPFGKKKNIFRNVQTFFKSKSKHSNVDDDLINKENLAFDKSPLLTNHRSKEIDGPSPNIKQLGHRDELDENENENDDIVLSMHFASQTLQSPTRNSSRRSLTNNRDNDLLSRIKYPGSPQRSSSFSRSRSLSRKPSMNSSSNSSRRVQRQDGKIPRSSRKSSQKFSNITQNTLNFTSASSSPLAPNSVGVKCFESCLAKTQIPYYYDDRNSNDFFPRISPETLKNILQNNMCESFYNSCRIIDCRFEYEYTGGHIINSVNIHSRDELEYEFIHKVLHSDTSNNNTLPTLLIIHCEFSSHRGPSLASHLRNCDRIINQDHYPKLFYPDILILDGGYKAVFDNFPELCYPRQYVGMNSQENLLNCEQEMDKFRRESKRFATKNNSFRKLASPSNPNFFYRDSHQSSTTMASSALSFRFEPPPKLSLNHRRVSSGSSLNSSESTGDENFFPILSKSSMSSNSNLSTSHMLLMDGLDTPSYFSFEDERGNHQQVSGDEEQDGDFTFVGSDREDLPRPARRSLFPSLETEDKK nu157_yeast Nucleoporin NUP157 NUP157 YER105C protein protein yeast Saccharomyces cerevisiae MYSTPLKKRIDYDRETFTASASLGGNRLRNRPRDDQNNGKPNLSSRSFLSERKTRKDVLNKYGEAGNTIESELRDVTTHVKISGLTSSEPLQLASEFVQDLSFRDRNTPILDNPDYYSKGLDYNFSDEVGGLGAFTPFQRQQVTNIPDEVLSQVSNTEIKSDMGIFLELNYCWITSDNKLILWNINNSSEYHCIDEIEHTILKVKLVKPSPNTFVSSVENLLIVATLFDIYILTISFNDRTHELNIFNTGLKVNVTGFNVSNIISYERTGQIFFTGATDGVNVWELQYNCSENLFNSKSNKICLTKSNLANLLPTKLIPSIPGGKLIQKVLEGDAGTEEETISQLEVDQSRGVLHTLSTKSIVRSYLITSNGLVGPVLIDAAHIRRGMNALGVKNSPLLSNRAFKIAKIVSISMCENNDLFLAVITTTGVRLYFKGSISRRSIGSLKLDSVKFPPTSISSSLEQNKSFIIGHHPLNTHDTGPLSTQKASSTYINTTCASTIISPGIYFTCVRKRANSGELSKGITNKALLENKEEHKLYVSAPDYGILKNYGKYVENTALLDTTDEIKEIVPLTRSFNYTSTPQGYANVFASQYSAEPLKVAVLTSNALEIYCYRTPDEVFESLIENPLPFIHSYGLSEACSTALYLACKFNKSEHIKSSALAFFSAGIPGVVEIKPKSSRESGSVPPISQNLFDKSGECDGIVLSPRFYGSALLITRLFSQIWEERVFVFKRASKTEKMDAFGISITRPQVEYYLSSISVLADFFNIHRPSFVSFVPPKGSNAITASDAESIAMNALILLINSIKDALSLINVFYEDIDAFKSLLNTLMGAGGVYDSKTREYFFDLKFHDLFTPNAKTKQLIKEILIEVVNANIASGTSADYIVNVLKERFGSFCHSADILCYRAGEHLEAAQKFEMIDSKISRNHLDTAIDLYERCAENIELCELRRVVDIMVKLNYQPKTVGFLLRFADKIDKGNQAQEYVSRGCNTADPRKVFYDKRINVYTLIFEIVKSVDDYTSIEQSPSIANISIFSPASSLKKRVYSVIMNSNNRFFHYCFYDWLVANKRQDYLLRLDSQFVLPYLKERAEKSLEISNLLWFYLFKEEHFLEAADVLYALASSDFDLKLSERIECLARANGLCDSSTSFDQKPALVQLSENIHELFDIASIQDDLLNLVRNETRIDEDYRKQLTLKLNGRVLPLSDLFNDCADPLDYYEIKLRIFKVSQFKDEKVIQGEWNRLLDSMKNAPSPDVGSVGQESFLSSISNTLIRIGKTTRDTDVVFPVHFLMNKILESFIDKSSAADGSVCSMFLLAGVSHLKLYYILSRIIENSEGNVELAKKEMVWLIKDWYQSDSDLRGSIAPEQIKKLEKYDPNTDPVQDYVKDRHHGLK fin1_yeast Filament protein FIN1 FIN1 YDR130C YD9302.05C protein protein yeast Saccharomyces cerevisiae MSNKSNRRSLRDIGNTIGRNNIPSDKDNVFVRLSMSPLRTTSQKEFLKPPMRISPNKTDGMKHSIQVTPRRIMSPECLKGYVSKETQSLDRPQFKNSNKNVKIQNSDHITNIIFPTSPTKLTFSNENKIGGDGSLTRIRARFKNGLMSPERIQQQQQQHILPSDAKSNTDLCSNTELKDAPFENDLPRAKLKGKNLLVELKKEEEDVGNGIESLTKSNTKLNSMLANEGKIHKASFQKSVKFKLPDNIVTEETVELKEIKDLLLQMLRRQREIESRLSNIELQLTEIPKHK ubx6_yeast UBX domain protein 6 UBX6 YJL048C J1164 protein protein yeast Saccharomyces cerevisiae MYEMSGIDSLFHDRVVHDYSHTSEQVIVVYISSAAGDNSWLHQWFKPGNLSDEERENILWVRLVNGTKECLLFKSIFPSSSAPSINILQNGLLECSIQGNSLSREQDPWETFINGLQSVFKGQVTKRKLFSKSNEEYQRVKRMIQNDKLERKYVFQNTNDPQRKPQKWKQLTVTDNVSYKSQKGFLAQNYCTLQLKLPNGYTISNTFPPQTKLHKVRMWLDYNCYDDGTPYLFHRNIPRVTLTRNDELKSLQELDLLPRSTLILEPLEANNKTFDYMEQSSLLHKVYSGLTSFWAKEPEVDASSSRLGYQRLGTNVSNSANYSLQKLSSLDMVSDGGGGGGGDSMTPSAYTTPRMYPSNGTSQLRQNVSELNLSSNNSASNTKVRTLGYSNNNGNN q08471_yeast S.cerevisiae chromosome XV reading frame ORF YOR066w YOR29-17 YOR066W protein protein yeast Saccharomyces cerevisiae MDKSMIKKRGRPPITKDYPNPLQSPMAHSSMQVQKQGPHSFAKPLMKVGQSSPSPNKRRLSIDHHHNLAATTRKGRYRGVLLSTPTKKSSTNGSTPISTPSSNDSYNNTVFSETRKTFLQSSPPIMTSSPAFQKKNDYMFPSQEQFKLSLTITESGKAVIAGSLPFSPSSKSSHLMNNNNKKIMQNEKIHKGSKKNAPKFEKRRILSLLKQMKNEKYCDTDTLPEAPPAKPSRSDIIDTELPTIIETSASPIGSARNNNILLSQPPQSPPSSAQLKPPSTPKSSLQFRMGFTPNVALNSVSLSDTISKSTNAVGASNNNNQNGNSISNIADANTLLTLTNSPGVFLSPRNKMLPKSTTASNEQQQEFVFKFSSGDPLLLTDDADGNWPEMLFNVSNTPRRQKCFNTPPSWINFGSPGLFSPPRSSNVMVNGTTVATASDSGNVHRQLQAQLEAQVQVQSQSNSPTQRQQQQRQFQIPPPHINMNSSPPQINIASPPHQSMSRVSSIYFNKEKTTTGVANMLGNTKSENLQPPANLFTAAHGPSTPRNQEFQLPTLIECTPLIQQTMNGSLGTKYIPGTSISNSATPNLHGFPVGTGKAPSSFDDSLKQNPYSNKQDDARTALKRLIDDQ q08729_yeast ORF YOR264w DSE3 protein protein yeast Saccharomyces cerevisiae MPRKFLGNKIEKNVDAVRPSSLTLTADDLKYIPPIPQDFEDEDDKVLRTSNGGNRLSKRFGGTLKLKKRLESVPELFLHDFKKRPRSQLEVIREKKFTDMQVPKGPVCPQSTILPLRERKKVKSLPIQRKSLRRPTLSKPAVVQSLGHKTHSDHIIDKVFVSRPAPIVMPVKALTPINPVSLMQTQTQDCCRKNKYGKSGSEILFDEILSAYENVSTSDSTALNSEIDRIIDICASKQIAKKNEAFQVPYVVCPDDTETLFSSTTPKLKPVNSNTLNDVISSPEYTTSGCSTYSDQSNSDEELSEVESIVWNTNKRTMRSSIVSESTSEEGYCTAAETLPSTVSVEDLDIHNKLPKVAQTSSCNTLLNKLSIRKLKKVILDPPKIMHVMTFDDDSDDGDDNDDEDRALNILQKKIDCIEIASCSSSIYSE nmd5_yeast Nonsense-mediated mRNA decay protein 5 NMD5 YJR132W J2112 protein protein yeast Saccharomyces cerevisiae MDITELLQCFACTLDHNAAVRTNAETHLKNASKVPGFLGACLDIIAADEVPENIKLSASLYFKNKITYGWSAGARQGSNELLDSHVDPDEKPVVKDMLIKTMVSVSKTSPRCIRVLKSALTVIISEDYPSKKWGNLLPNSLELLANEDITVTYVGLLCLAEIFRTYRWKNNDERQDLEELILNYFPALLNYGANVLFQDGKYMNNEQIGELVKLIIKIYKFVSYHDLPFTLQRSESFTPWACFFVSIIQQPLPQEVLSISDIEVRSKNPWVKCKKWALANLYRLFQRYASTSLTRKFQYDEFKQMYCEEFLTQFLQVVFDQIEKWGTGQLWLSDECLYYILNFVEQCVVQKTTWKLVGPHYNVILQHVIFPLLKPTAETLEAFDNDPQEYINRNMDFWDVGYSPDLAALALLTTCVTKRGKTTLQPTLEFMVSTLQSAVGDYNNIMLDNALQIESCLRIFSSIIDRLITKDSPFASEMEKFILTYVLPFFKSQYGFLQSRVCDICSKLGSMDFKDPVITSTIYEGVMNCLNNSSNSLPVELTAALALQTFISDDQFNMKLSEHVVPTMQKLLSLSNDFESDVISGVMQDFVEQFAEQLQPFGVELMNTLVQQFLKLAIDLHETSNLDPDSFTNVDSIPDESDKQMAALGILSTTISILLSFENSPEILKNLEQSFYPAAEFILKNDIEDFYRECCEFVENSTFLLRDITPISWKILELIGECNRKPDSMVSYYLSDFMLALNNILIYGRNELKKNEFYTKIIFEIYQKAVTAEDNSLDDLRVVFDLSQELVLALDDSLPQQYRERLLADVVGSILTQKNELKTNVVFSVTAFNVVISNMITEPLITLQYLKQQGCLEIFFQTWITDYIPNYKRCYDIKLSVLALLKIILKLESNDYSVLNLENLVPQLGSIVTQLASRLPTALRQLANQRKEFSSSGFEEDTKWDENFLDVGDDDENDDEGDLTEKYLELIKNRADSLDFVDGYDAKETFDDLEEDPLTGSILDTVDVYKVFKESIANLQHVDSNRYQGILRHLTPADQELFMGIMNA pac1_yeast PAC1 protein PAC1 YOR269W protein protein yeast Saccharomyces cerevisiae MTNWQQQLPLTDTQKNELDKSVLRYLNWNYKQTVRHEHAQDYESVRHAIVTLSGFLLQESVDRQEFISNNDTSNESMVDIDELLLPKKWNSIVRLQKKIIELEQNTETLVSQIKDLNTQVSELAQFKPTTSNGTSAHNVLKWIPRNLPSCLINVESSVTSVKLHPNLPIVFVATDHGKLYAFDLFNYTIPLASLQSHTKAITSMDVLFTNYTNSSKKNYLVIVTASKDLQIHVFKWVSEECKFQQIRSLLGHEHIVSAVKIWQKNNDVHIASCSRDQTVKIWDFHNGWSLKTFQPHSQWVRSIDVLGDYIISGSHDTTLRLTHWPSGNGLSVGTGHEFPIEKVKFIHFIEDSPEIRFRTPSTDRYKNWGMQYCVSASRDRTIKIWEIPLPTLMAHRAPIPNPTDSNFRCVLTLKGHLSWVRDISIRGQYLFSCADDKSVRCWDLNTGQCLHVWEKLHTGFVNCLDLDVDFDSNVTPRQMMVTGGLDCKSNVFMR spa2_yeast SPA2 protein SPA2 PEA1 YLL021W L1209 protein protein yeast Saccharomyces cerevisiae MGTSSEVSLAHHRDIFHYYVSLKTFFEVTGENRDRSNSTRAQKARAKLLKLSSSQFYELSTDVSDELQRRIGEDANQPDYLLPKANFHMKRNQARQKLANLSQTRFNDLLDDILFEIKRRGFDKDLDAPRPPLPQPMKQEVSKDSDDTARTSTNSSSVTQVAPNVSVQPSLVIPKMASIDWSSEEEEEEQVKEKPNEPEGKQTSMDEKKEAKPALNPIVTDSDLPDSQVLARDITSMARTPTTTHKNYWDVNDSPIIKVDKDIDNEKGPEQLKSPEVQRAENNNPNSEMEDKVKELTDLNSDLHLQIEDLNAKLASLTSEKEKEKKEEKEEKEKEKNLKINYTIDESFQKELLSLNSQIGELSIENENLKQKISEFELHQKKNDNHNDLKITDGFISKYSSADGLIPAQYILNANNLIIQFTTRLSAVPIGDSTAISHQIGEELFQILSQLSNLISQLLLSADLLQYKDQVILLKASLSHAITSIRYFSVYGPVLIPKITVQAAVSEVCFAMCNLIDSAKIKSDSNGESTTSNEGNRQVLEYSSPTATTPMTPTFPSTSGINMKKGFINPRKPASFLNDVEEEESPVKPLKITQKAINSPIIRPSSSNGVPTTSRKPSGTGLFSLMIDSSIAKNSSHKEDNDKYVSPIKAVTSASNSASSNISEIPKLTLPPQAKIGTVIPPSENQVPNIKIENTEEDNKRSDITNEISVKPTSSIADKLKQFEQSSEKKSSPKENPIAKEEMDSKPKLSNKFITSMNDVSTDDSSSDGNENDDADDDDDFTYMALKQTMKREGSKIEKNNDSKLPANIVELDLHESPESVKIESPESIKEITSSEMSSEMPSSSLPKRLVEDVEPSEMPEKGASVESVRKKNFQEPLGNVESPDMTQKVKSLGMTGKAVGPESDSRVESPGMTGQIKSLNMAGKVVGPEADSRVESPGMKEQIKSLGMTGKITAQESIKSPEAARKLASSGEVDKIESPRMVRESESLEAVGNTIPSNMTVKMESPNLKGNTVSEPQEIRRDIASSEPIENVDPPKVLKKIVFPKAVNRTGSPKSVEKTPSSATLKKSGLPEPNSQIVSPELAKNSPLAPIKKNVELRETNKPHTETITSVEPTNKDANTSWRDADLNRTIKREEEDEDFDRVNHNIQITGAYTKTGKIDYHKIPVDRKAKSEAEVHTSEEDIDESNNVNGKRADAQIHITERKHAFVNPTENSQVKKTSHSPFLNSKPVQYENSESNGGINNHIKIKNTGETTAHDEKHYSDDDDSSYQFVPMKHEEQEQEQNRSEEEESEDDDEEEEDSDFDVDTFDIENPDNTLSELLLYLEHQTMDVISTIQSLLTSIKKPQVTKGNLRGESNAINQVIGQMVDATSISMEQSRNANLKKHGDWVVQSLRDCSRRMTILCQLTGDGILAKEKSDQDYADKNFKQRLAGIAFDVAKCTKELVKTVEEASLKDEINYLNSKLK calm_yeast Calmodulin CMD1 YBR109C YBR0904 protein protein yeast Saccharomyces cerevisiae MSSNLTEEQIAEFKEAFALFDKDNNGSISSSELATVMRSLGLSPSEAEVNDLMNEIDVDGNHQIEFSEFLALMSRQLKSNDSEQELLEAFKVFDKNGDGLISAAELKHVLTSIGEKLTDAEVDDMLREVSDGSGEINIQQFAALLSK q12744_yeast Hypothetical orf identical to orf noted in rad10 5' region A22726 protein protein yeast Saccharomyces cerevisiae MSTMNFLLSTILPGMYNDADAGTSSFCPSFPAWETVLISSIHSVNLPLAMVNACKDCVKCCNSWSNCCFTAFSCSGFSLVKSTKFRTCSNLKVSKVSVRWQQRRSYSFTYFFERTWLDFYSALSCLGHSKIFI ym01_yeast Hypothetical 52.4 kDa protein in ILV2-ADE17 intergenic region YMR111C YM9718.10C protein protein yeast Saccharomyces cerevisiae MPAREYNYVEGFGGYGSLDDDDSDRDSERRNHDLGQRTITTSPTGVSRHAALNRYMIPGRINPLFRPTDAAQPPIVSTSTSASATEPTNRIGPGRIKETPETNFNAFLIAQLTRMEEQNANLKEEISLMKKEQELFFLENQKKLEKGFKDINKYVEDVSAMKEVFKEVVGIMTGERIRFIDHTGENVTPQEAARVGNPSTSTQAHQSQSRSTNWQEYSMHASILAGDPRIKPEPGLSDFENGEYDGNESDENATTRNLPLNNPDSVSNADDSNNQLDGTGNENDIRNRRGCVGTSYKLNRAIQNVTDAAREYFEGLPGQPSVLSLERRYGSTWRRSAKERTLFTKRMTIIKRIIDIKDDPSKYGLSLPENKISRNQAIKVVENIRLGNNTFKGHHCRLSMSQLYEYFSKKMDKLEDYSLTLKRRGKPRRIFLLEEREARLSLQQPHSIPNSSTGTPEHDQDT p2b1_yeast Serine/threonine protein phosphatase 2B catalytic subunit A1 CNA1 CMP1 YLR433C L9753.6 protein protein yeast Saccharomyces cerevisiae MSKDLNSSRIKIIKPNDSYIKVDRKKDLTKYELENGKVISTKDRPIASVPAITGKIPSDEEVFDSKTGLPNHSFLREHFFHEGRLSKEQAIKILNMSTVALSKEPNLLKLKAPITICGDIHGQYYDLLKLFEVGGDPAEIDYLFLGDYVDRGAFSFECLIYLYSLKLNNLGRFWMLRGNHECKHLTSYFTFKNEMLHKYDMEVYDACCRSFNVLPLAALMNGQYFCVHGGISPELKSVEDVNKINRFREIPSRGLMCDLLWADPVENYDDARDGSEFDQSEDEFVPNSLRGCSFAFTFKASCKFLKANGLLSIIRAHEAQDAGYRMYKNNKVTGFPSLITMFSAPNYLDTYHNKAAVLKYEENVMNIRQFHMSPHPYWLPDFMDVFTWSLPFVGEKVTSMLVSILNICSEQELDPESEPKAAEETVKARANATKETGTPSDEKASSAILEDETRRKALRNKILAIAKVSRMFSVLREESEKVEYLKTMNAGVLPRGALARGTEGLNETLSTFEKARKEDLINEKLPPSLSEVEQEKIKYYEKILKGAEKKPQL ydb1_yeast Hypothetical 32.2 kDa protein in PPH22-VMA1 intergenic region YDL186W D1281 protein protein yeast Saccharomyces cerevisiae MQCNTSIEDGLDGGDITFPSYSPEAEAQNRFLPRSEFPSVRQLVISKQKSRRRREENVFVGKMEDVLVKWRPPASSHRGAIEAINGTHPYQLSTAQFNSRRSDPFGSTKRDESVRSIVESFTDWWKRNSKMFFRDEEEGVRTEHSASQDDQELQLFEEDLFSFHLSPNDMSTRNSEHQVQTPVLFPYEAPTRTKQNPAERKVIEIGDGEELSIYRDVYSNPIPVSYLDTLNLNHSMSVRQTQQQQQQRQQQQYVDSSSAFQCCTDSNWARIFFCHHD yhy2_yeast Hypothetical 90.1 kDa protein in OYE2-GND1 intergenic region YHR182W protein protein yeast Saccharomyces cerevisiae MSVKEHNEEDIIGDELQNSRQLSIDCDSVKISLRNTYWTKDYTTGIKLFIKHMKRENDLLIKDIKFYNDFVNKFWKPTLNNLQKMEATNSMNSRLLEVMSKQFNIISTEQVERDCKIPLQELRDLNESFLREAENDLSSRYSAYIKDLVAAKEALIGCEKRVQSIYKLKKANTPVENSSSVFDNGKDSAPLTRLNFVCEFPYTLDERLKFEDCDQFMSFLQTLKGKVILEKSVFSVPGLSNQSFQGRSLIKELKKLEPRLNLSLFNIDRIGNEFIQLGIIQEYSLSFYSSKVSQFDQEKYYYWNSEVLATQESNGNAGNRKKKSYGELTHSDNEHEEKSNVSSIKTSISDWIRKVSQHDNDDCDAAGSTDMNKNEWKSLKQQLESSQDIFFSKCCQLEYSKVQLEKTIYDYCKNYSKMEDGIKRALESSNMMFQQKCEKFTDSPVCSLQEAQLPQETANADVRGFFLRDNGIPFRRWNILEASDPVDACKEISIKSEKFFCGSEINNELAALDTLGAIKIILRQIEKEPNANKVIQSWHRDIDFVRVSNLKRDLLGEFKGSKTTENTNSIITAHFFENSHSYVTNDLVGLIKLWLLELPDSLIPSNHYDDLIKAEKSLTSLCEQFPTSSLRFLQELANHFQLINSKYSLPPQTIQDLFRDNSDIDIPLAHHFVRRTGLQNPIDIKILSPTLSTFFINERTVETLQTLIANRITTATTATLTEPPTIIIKDTTAPIHSTPKPPPNDKDGHFIPRPFKTSSTPTTPERPKRKSGLFLPINVNDVPST q99332_yeast ORF YOR324c FRT1 YOR324C orf 06159 protein protein yeast Saccharomyces cerevisiae MNLLIDRMENPGSRNCTLLPPSFPRGFCKGRRASSGDAVKIKESGLQPQPQPEPLQAKTNVAHFSKSSSRLPVIAVNDNPVVPRPSTEVNLGSLLQKEREKEKEEQPALHDRRHLYVTKNRAHGVRQRSLEMTSLPVLGSTKTGKFSDFLFEDDIDNRVGRHSRSYSGASSLDDPFRVSPKTDFNSNRARLSCLSKGRRGSMSVFQSCHTGLAFNQIQGSSSSQRRSSAGSFDYERKRLVNQFLQPSLGNSDPFDTLRESVVFEPSSTAGGIKLGNMHSQSQISVNSSPSTSLFYHDLDGSAVNDSSSFLYSRSNVPAFLSSSAFSSTSSTSSDSEDVDRRSLNGVYPSLGYLTNQRKPRNSSGSSTAPGTDTLGFKYLLNRQKSADSSTRFKSVLKVNNNNGSAATPDSSSNSISKSNSNLNDNIDELNYYQNHISTLLVKIENEMRRNLNDTIIKNENNVQKTIQKYDLLSGELTLLLDEMTTLRTTVINQFLVKLKSDFDEDDNKAFINELKISVEESVAQLQGLERRMEVCQERLNKQKSSLREMDSLIELKNVLNKSKNNTKSIYLYRYFIIDIIAFLLMGGFIVYVKNLLTRFFTR cns1_yeast Cyclophilin seven suppressor 1 CNS1 YBR155W YBR1205 protein protein yeast Saccharomyces cerevisiae MSSVNANGGYTKPQKYVPGPGDPELPPQLSEFKDKTSDEILKEMNRMPFFMTKLDETDGAGGENVELEALKALAYEGEPHEIAENFKKQGNELYKAKRFKDARELYSKGLAVECEDKSINESLYANRAACELELKNYRRCIEDCSKALTINPKNVKCYYRTSKAFFQLNKLEEAKSAATFANQRIDPENKSILNMLSVIDRKEQELKAKEEKQQREAQERENKKIMLESAMTLRNITNIKTHSPVELLNEGKIRLEDPMDFESQLIYPALIMYPTQDEFDFVGEVSELTTVQELVDLVLEGPQERFKKEGKENFTPKKVLVFMETKAGGLIKAGKKLTFHDILKKESPDVPLFDNALKIYIVPKVESEGWISKWDKQKALERRSV stp1_yeast Zinc finger protein STP1 STP1 BAP1 SSY2 YDR463W D8035.7 protein protein yeast Saccharomyces cerevisiae MNCITIDVFFTAFSHPCKRKKKQADSCINCKDSLIKSRFTLQTKGKGKLYRLYHIRSKMPSTTLLFPQKHIRAIPGKIYAFFRELVSGVIISKPDLSHHYSCENATKEEGKDAADEEKTTTSLFPESNNIDRSLNGGCSVIPCSMDVSDLNTPISITLSPENRIKSEVNAKSLLGSRPEQDTGAPIKMSTGVTSSPLSPSGSTPEHSTKVLNNGEEEFICHYCDATFRIRGYLTRHIKKHAIEKAYHCPFFNSATPPDLRCHNSGGFSRRDTYKTHLKARHVLYPKGVKPQDRNKSSGHCAQCGEYFSTIENFVENHIESGDCKALPQGYTKKNEKRSGKLRKIKTSNGHSRFISTSQSVVEPKVLFNKDAVEAMTIVANNSSGNDIISKYGNNKLMLNSENFKVDIPKRKRKYIKKKQQQVSGSTVTTPEVATQNNQEVAPDEISSATIFSPFDTHLLEPVPSSSSESSAEVMFHGKQMKNFLIDINSFTNQQQQAQDNPSFLPLDIEQSSYDLSEDAMSYPIISTQSNRDCTQYDNTKISQILQSQLNPEYLSENHMRETQQYLNFYNDNFGSQF cyp6_yeast Peptidyl-prolyl cis-trans isomerase CPR6 CPR6 YLR216C L8167.24 protein protein yeast Saccharomyces cerevisiae MTRPKTFFDISIGGKPQGRIVFELYNDIVPKTAENFLKLCEGNAGMAKTKPDVPLSYKGSIFHRVIKDFMCQFGDFTNFNGTGGESIYDEKFEDENFTVKHDKPFLLSMANAGPNTNGSQAFITCVPTPHLDGKHVVFGEVIQGKRIVRLIENQQCDQENNKPLRDVKIDDCGVLPDDYQVPENAEATPTDEYGDNYEDVLKQDEKVDLKNFDTVLKAIETVKNIGTEQFKKQNYSVALEKYVKCDKFLKEYFPEDLEKEQIEKINQLKVSIPLNIAICALKLKDYKQVLVASSEVLYAEAADEKAKAKALYRRGLAYYHVNDTDMALNDLEMATTFQPNDAAILKAIHNTKLKRKQQNEKAKKSLSKMFS vatg_yeast Vacuolar ATP synthase subunit G VMA10 YHR039C-A YHR039BC YHR039C-B protein protein yeast Saccharomyces cerevisiae MSQKNGIATLLQAEKEAHEIVSKARKYRQDKLKQAKTDAAKEIDSYKIQKDKELKEFEQKNAGGVGELEKKAEAGVQGELAEIKKIAEKKKDDVVKILIETVIKPSAEVHINAL nu120_yeast Nucleoporin NUP120 NUP120 RAT2 YKL057C YKL314 YKL313 protein protein yeast Saccharomyces cerevisiae MACLSRIDANLLQYYEKPEPNNTVDLYVSNNSNNNGLKEGDKSISTPVPQPYGSEYSNCLLLSNSEYICYHFSSRSTLLTFYPLSDAYHGKTINIHLPNASMNQRYTLTIQEVEQQLLVNVILKDGSFLTLQLPLSFLFSSANTLNGEWFHLQNPYDFTVRVPHFLFYVSPQFSVVFLEDGGLLGLKKVDGVHYEPLLFNDNSYLKSLTRFFSRSSKSDYDSVISCKLFHERYLIVLTQNCHLKIWDLTSFTLIQDYDMVSQSDSDPSHFRKVEAVGEYLSLYNNTLVTLLPLENGLFQMGTLLVDSSGILTYTFQNNIPTNLSASAIWSIVDLVLTRPLELNVEASYLNLIVLWKSGTASKLQILNVNDESFKNYEWIESVNKSLVDLQSEHDLDIVTKTGDVERGFCNLKSRYGTQIFERAQQILSENKIIMAHNEDEEYLANLETILRDVKTAFNEASSITLYGDEIILVNCFQPYNHSLYKLNTTVENWFYNMHSETDGSELFKYLRTLNGFASTLSNDVLRSISKKFLDIITGELPDSMTTVEKFTDIFKNCLENQFEITNLKILFDELNSFDIPVVLNDLINNQMKPGIFWKKDFISAIKFDGFTSIISLESLHQLLSIHYRITLQVLLTFVLFDLDTEIFGQHISTLLDLHYKQFLLLNLYRQDKCLLAEVLLKDSSEFSFGVKFFNYGQLIAYIDSLNSNVYNASITENSFFMTFFRSYIIENTSHKNIRFFLENVECPFYLRHNEVQEFMFAMTLFSCGNFDQSYEIFQLHDYPEAINDKLPTFLEDLKSENYHGDSIWKDLLCTFTVPYRHSAFYYQLSLLFDRNNSQEFALKCISKSAEYSLKEIQIEELQDFKEKQHIHYLNLLIHFRMFEEVLDVLRLGHECLSDTVRTNFLQLLLQEDIYSRDFFSTLLRLCNAHSDNGELYLRTVDIKIVDSILSQNLRSGDWECFKKLYCFRMLNKSERAAAEVLYQYILMQADLDVIRKRKCYLMVINVLSSFDSAYDQWILNGSKVVTLTDLRDELRGL coro_yeast Coronin-like protein CRN1 YLR429W L9576.2 protein protein yeast Saccharomyces cerevisiae MSGKFVRASKYRHVFGQAAKKELQYEKLKVTNNAWDSNLLKTNGKFIAVNWNASGGGAFAVIPIEEVGKAPDQVPLFRGHTAQVLDTDFDPFNDHRIASGSDDSKIGIWDIPENYKFHDHVDEDGEPIDIKPVKFLTGHARKVGHVLYHPVAENVLASSSGDYTVKLWNVETGKDMITLKHPDMVTSMSFSYDGNYLATVARDKKLRVWNIREEKIVSEGPAHTGAKNQRVVWLGNSDRLATTGFSKLSDRQIGIWDAFNIEKGDLGGFYTVDQSSGILMPFYDEGNKILYLVGKGDGNIRYYEFQNDELFELSEFQSTEAQRGFAVAPKRMVNVKENEVLKGFKTVVDQRIEPVSFFVPRRSEEFQEDIYPDAPSNKPALTAEEWFSGKSVEGPILVSMRSIYDGSAPSFHEAKRPQQPTTQETALEEKKEQPKVEKPISESEKEVKQEAPKSPSPLKSASSSSTINHVLKEDNSINKLLKKSSDIDQVNNAEDPSRDTSGWEEADDEPAPIKIETPVTPTETKKDRTPKVEPSKELKPEPVSIATDRKQEQSLPQEEKSSEKTKSPEQEKSATPPSSITAAKTAITASSKEEPSAARTSPKSLGLKKSVEKLSTLVLQLEDVVDKLTKANLDKDERLLKLEQKIGELSK q03088_yeast P7102.17P SVL3 P7102.17 YPL032C protein protein yeast Saccharomyces cerevisiae MSSSSLRVLAIGNNPNILFYTSRFQLAKNIDLYHVNDSKSCQFEIETEYYGKDRFELENHFTSIEHLTEALSSKSSEAVFDIIIMSAPSLQELSSLASKLTSIIDSNTKIFLESSGFIQLEPFVKLSMESPHVNVFSILTDLDIRQIGPNHFKHFPSTAKENTIYLGESKSSTEKYSSGVITLLTTFEKLFAKLFSNIKINLCNFSSIEFLSQQWKLAISRICFDPLLIMFEQENPSDLDQQIIAKPLISGLVTEIITVAKTMGARLNSSHDNENSLLSLWKNSYHSTNKPPALVYHFIHQTTPLNIDILLLQTILLADDFGIKTPYLEFLYSVLSQFERLNSGKSKWFIRSDEKTQILQSLQKSQKNESALQTQITSLQGQISKLRQELLMQAKQHEMETNELKEKHQVALKAQAQAQAQAQSQAQTSIEALTPTEATNQSDTNEYKATGTPNLRDIEDMALYSVNYGDSPVRSPPPVVSSQPQMNSPLSSHSQTFGENNGTNDKLLQERELQLRKKELELQERELEFQKRALQQQRFNNSNNSIPRKPSFPQLQQSANVRSNSRGMHGTNGAMSQPASAGNFVDPISSSIAAYDPQQPPSLPLQQPQQSVQVQPFHSHSIKPTSRKNRNSNMPNIGNPSSINMSDFGRPPNNSSQTRLNSMPTHSIVNQNRLRSQQSKNKLNMPHATNPNNTFNQVPAPSLNNHVPTQRQFSSSTMIEVTNNNNKVNNSSSNPDISTNSVVHNAMQFTNTNNNTSSTVDINDPKNIAPPPTTSVSAPSTPTLSSSSQMANMASPSTDNGDNEEKNGGKKKRFGLFKKKNKSKK ynj4_yeast Hypothetical 66.1 kDa protein in RPS7B-YPT53 intergenic region YNL094W N2219 protein protein yeast Saccharomyces cerevisiae MNSQGYDESSSSTAATSGPTSGDPRMGKKQRFMNLIRTTKDVYIPNLTSSISQKTMDGIRSTTNSFEGYNDLPMELPHNTTITYFPTYTTTNLVDPDGLSAPRKDFETTVRCAVSYPGNPTSRRNRWLLSLCKQYLRTGTAEADVAPVVPPHLEEDSGDLNDSQSSIESSLSSKSENRYSHMGIQEEDVLNERIQGFLSKKVPNTPVVVDLLPKDKLRGDTASFFGTTDSYGNLLIKAETDFLPSKINITLDTPIEGHADPISETFPANYVSPYGIGLISDIDDTIKHTGVTGDRRSMFRNVFIHDVQSWVIDGVPLWYKTLHDVADVDFFYVSNSPIQTFTLLKQYICANFPPGPIFLKQYSGNFFSTIMTSSANRKIQPIANILKDFPKKKFILVGDSGEHDLEAYTTTALQFPNQILAIYIRCCSNSMSDVPSHDEEVMNEVNNIIELQQRPMQMTKSTVRTRRRPPPPPIPSTQKPSLTEEQTESIRMSRRNKDENNAKRVAPPPLPNRQLPNLDANTYYVPSSQNDYGMYGAFMDKKADEWKRRVMDSIQKLSNQDTTLMFFSDPALSLEDSIRRIREKYSN crz1_yeast Transcriptional regulator CRZ1 YNL027W N2760 CRZ1 HAL8 TCN1 protein protein yeast Saccharomyces cerevisiae MSFSNGNMASYMTSSNGEEQSINNKNDIDDNSAYRRNNFRNSSNSGSHTFQLSDLDLDVDMRMDSANSSEKISKNLSSGIPDSFDSNVNSLLSPSSGSYSADLNYQSLYKPDLPQQQLQQQQLQQQQQQQQQQQQQQQKQTPTLKVEQSDTFQWDDILTPADNQHRPSLTNQFLSPRSNYDGTTRSSGIDSNYSDTESNYHTPYLYPQDLVSSPAMSHLTANNDDFDDLLSVASMNSNYLLPVNSHGYKHISNLDELDDLLSLTYSDNNLLSASNNSDFNNSNNGIINTADTQNSTIAINKSKVGTNQKMLLTIPTSSTPSPSTHAAPVTPIISIQEFNEGHFPVKNEDDGTLQLKVRDNESYSATNNNNLLRPDDNDYNNEALSDIDRSFEDIINGRKLKLKKSRRRSSQTSNNSFTSRRSSRSRSISPDEKAKSISANREKLLEMADLLPSSENDNNRERYDNDSKTSYNTINSSNFNEDNNNNNLLTSKPKIESGIVNIKNELDDTSKDLGILLDIDSLGQFEQKVGFKNDDNHENNDNGTFSVKKNDNLEKLDSVTNNRKNPANFACDVCGKKFTRPYNLKSHLRTHTNERPFICSICGKAFARQHDRKRHEDLHTGKKRYVCGGKLKDGKPWGCGKKFARSDALGRHFKTESGRRCITPLYEEARQEKSGQES scs2_yeast SCS2 protein SCS2 YER120W protein protein yeast Saccharomyces cerevisiae SAVEISPDVLVYKSPLTEQSTEYASISNNSDQTIAFKVKTTAPKFYCVRPNAAVVAPGETIQVQVIFLGLTEEPAADFKCRDKFLVITLPSPYDLNGKAVADVWSDLEAEFKQQAISKKIKVKYLISPDVHPAQNQNIQENKETVEPVVQDSEPKEVPAVVNEKEVPAEPETQPPVQVKKEEVPPVVQKTVPHENEKQTSNSTPAPQNQIKEAATVPAENESSSMGIFILVALLILVLGWFYR yh07_yeast Hypothetical 60.5 kDa protein in SKN7-TWT1 intergenic region YHR207C protein protein yeast Saccharomyces cerevisiae MTLTIKIGTLNDSDQSAVHNGTENGSDFRKITPTEEEICDDVVLLWKEEPGTEDATIQHLYDRITERNQSWKLSASRFRKILNEHHLYDTDLETVSLYKDKIHFPKALDSDAKVEVKFIDDEHGRGLFAKRDFSKGQIILKENKPIVYIPPLDKLFLISNGKACARCGKALYDLTQHKIMVHYLDCEVCKAIWCSEKCKKAHASLHELLYHSWRSNRIDILHAGNWKRFVNYCEKYCFTAAFSVGLIYGSMLLDTTGEVKEQWQKLASISQRERIKLRDASGIGSTFSLLNGTTVHTEEESDNGTKKGVEKNIDDETVWEKCYELFCGAFPKASEEIDFEKFLTMIGTFNINQYNGQVYHWISFINHDCEPNAYIEQVEEHEELRLHARKPIKKGEQIRITYVNPLHGVRLRRRELRVNWGFLCQCDRCQNELSTFERVPNLEKKNADANLGVEKIDSNDSSEDGSKKSTGNRKSSMREAQPDLKEILKNGKEFELDIPETVDTQGNVRKTSVRFDSNVSVAVDER yn89_yeast Hypothetical 25.3 kDa protein in TIM23-ARE2 intergenic region YNR018W N3185 protein protein yeast Saccharomyces cerevisiae MKILTQDEIEAHRSHTLKGGIEGALAGFAISAIIFKVLPRRYPKFKPSTLTWSIKTALWITPPTVLTAICAEEASNNFDATMYGSGSSSEDALDEHRRWKSLSTKDKFVEGLSNNKYKIITGAWAASLYGSWVIVNKDPIMTKAQKIVQARMYAQFITVGLLLASVGLSMYENKLHPNKQKVNEMRRWENALRVAEEEERLEKEGRRTGYVSNEERINSKIFKS ctf8_yeast Kinetochore protein CTF8 CTF8 YHR191C protein protein yeast Saccharomyces cerevisiae MPSVDIDASQWQKLTQSREKQTTVITPLGMMMLEIQGELELPKDFASLARRDSPNEGRFSEQDGETLIRFGSLQIDGERATLFVGKKQRLLGKVTKLDVPMGIMHFNSKDNKVELVDVMKYKVIFKDRPLPIM t2fb_yeast Transcription initiation factor IIF beta subunit TFG2 YGR005C protein protein yeast Saccharomyces cerevisiae MSSGSAGAPALSNNSTNSVAKEKSGNISGDEYLSQEEEVFDGNDIENNETKVYEESLDLDLERSNRQVWLVRLPMFLAEKWRDRNNLHGQELGKIRINKDGSKITLLLNENDNDSIPHEYDLELTKKVVENEYVFTEQNLKKYQQRKKELEADPEKQRQAYLKKQEREEELKKKQQQQKRRNNRKKFNHRVMTDRDGRDRYIPYVKTIPKKTAIVGTVCHECQVMPSMNDPNYHKIVEQRRNIVKLNNKERITTLDETVGVTMSHTGMSMRSDNSNFLKVGREKAKSNIKSIRMPKKEILDYLFKLFDEYDYWSLKGLKERTRQPEAHLKECLDKVATLVKKGPYAFKYTLRPEYKKLKEEERKATLGELADEQTGSAGDNAQGDAEADLEDEIEMEDVV ycu4_yeast Hypothetical 65.2 kDa protein in THR4-PWP2 intergenic region YCR054C YCR54C CTR86 protein protein yeast Saccharomyces cerevisiae MPMNNFLDEFNLFDSIITMMKNDPCCVEDYEPIVENLNRIFQRTFNDEEHRKSMANSQLFWERLRDTLEAMLLPASLNENSSIPYTRTVRGLILMMRNLAAENQEIPQKLLLQNLVIRGFLHATSEYVVDTPLIKHLYIACLTCLFNIQQNYSTVDMTTFPALLQFLQYPYGIKLEDGEEEEHFWLPYLFLFKTYLNNDEFSNEFFRDNDTPQKDYYCVRDRIFFDIVTAKFIQDQENSFLIEKGRNYLDDSKLEITSIDLSVLECISKSLTTASFGKYLNGLEERQPGKFTTLLQILQLVVTSKEDWNTYELTAIMSWCYPILQRLACKDIPAFFNKSCNDYAPSVAIQLHSTLLSCLDIISDLCKFNHVRKFLISYDSVKILVSLLDTFQKNLLRINFLKGNGDTVNEIKITDHEGNKIEDRLLIFNRVNTNESFIRADNFPHCKLVIIEILASLVYAHPEIQDQIRELGGLALILSNCVIDDNDPFIKERSIVCLKFLLKNNAKNQEYVKKMEAQDVVQDDALSKAGFEISVEKGGKVRLVSKEEDPGNENSEIISIDED cyk2_yeast Cytokinesis 2 protein CYK2 HOF1 YMR032W YM9973.05 protein protein yeast Saccharomyces cerevisiae MSYSYEACFWDPNDNGVNILLGHISQGIRSCDSMILFFKQRSELEKDYARRLGAITGKLDKDIGTNMDYGKLNETFNVVLSVEKARAQSHSKQSEILFRQIYTDTKAFAANLQARYTTLSGKIERLRMDKFNKKKGCEVLQKKLQDAQIRFRDLQLNENNMIGAKRVEHNKRELLKWESNSQEYKVQLDVLKQEYKASQKFWIHEWAQLSCELQEMENARISFLQSKLQQFATSSMETYILEQTKMDMLTNHLNSFTAADEISTFSKENGTGRLKHKTSKGDMNSSANWAQMSSISTTSKKTESYMDNIRKLSSQLKETENKRKLASIDKYEKPLPSPEVTMATQFRNSTPVIRNETKVVANPTLSLRSSPVQLQSNVDDSVLRQKPDKPRPIVGEEQLKPDEDSKNPDEKGLMVHKRNQSLSSPSESSSSNPTDFSHIKKRQSMESMTTSVSSMANSIDDSQRFAKSWNSSNRKRKSMSHLQVPSSASSRSDDGGRTPNSAHNLNEDDYNTRRDTSTSTILFKPPVAVRGTSRGHTHRQSMIMQDSSNPIEDALYEMERIQSSSKPGTKTGNIMDERGVVRDRGITVTLPIVTSEGFPVIEYAKAMYPLIGNEAPGLANFHKGDYLLITEIVNKDWYKGEVYDNDRIDRNHRIGLIPYNFIQLLHQGL rpn6_yeast 26S proteasome regulatory subunit RPN6 RPN6 NAS4 YDL097C D2381 protein protein yeast Saccharomyces cerevisiae SLPGSKLEEARRLVNEKQYNEAEQVYLSLLDKDSSQSSAAAGASVDDKRRNEQETSILELGQLYVTMGAKDKLREFIPHSTEYMMQFAKSKTVKVLKTLIEKFEQVPDSLDDQIFVCEKSIEFAKREKRVFLKHSLSIKLATLHYQKKQYKDSLALINDLLREFKKLDDKPSLVDVHLLESKVYHKLRNLAKSKASLTAARTAANSIYCPTQTVAELDLMSGILHCEDKDYKTAFSYFFESFESYHNLTTHNSYEKACQVLKYMLLSKIMLNLIDDVKNILNAKYTKETYQSRGIDAMKAVAEAYNNRSLLDFNTALKQYEKELMGDELTRSHFNALYDTLLESNLCKIIEPFECVEISHISKIIGLDTQQVEGKLSQMILDKIFYGVLDQGNGWLYVYETPNQDATYDSALELVGQLNKVVDQLFEKASVLY dmc1_yeast Meiotic recombination protein DMC1 DMC1 ISC2 YER179W protein protein yeast Saccharomyces cerevisiae MSVTGTEIDSDTAKNILSVDELQNYGINASDLQKLKSGGIYTVNTVLSTTRRHLCKIKGLSEVKVEKIKEAAGKIIQVGFIPATVQLDIRQRVYSLSTGSKQLDSILGGGIMTMSITEVFGEFRCGKTQMSHTLCVTTQLPREMGGGEGKVAYIDTEGTFRPERIKQIAEGYELDPESCLANVSYARALNSEHQMELVEQLGEELSSGDYRLIVVDSIMANFRVDYCGRGELSERQQKLNQHLFKLNRLAEEFNVAVFLTNQVQSDPGASALFASADGRKPIGGHVLAHASATRILLRKGRGDERVAKLQDSPDMPEKECVYVIGEKGITDSSD rheb_yeast Rheb-like protein RHB1 RHB1 RSG1 YCR027C YCR27C protein protein yeast Saccharomyces cerevisiae MEYATMSSSNSTHNFQRKIALIGARNVGKTTLTVRFVESRFVESYYPTIENEFTRIIPYKSHDCTLEILDTAGQDEVSLLNIKSLTGVRGIILCYSIINRASFDLIPILWDKLVDQLGKDNLPVILVGTKADLGRSTKGVKRCVTKAEGEKLASTIGSQDKRNQAAFIECSAELDYNVEETFMLLLKQMERVEGTLGLDAENNNKCSIM ynb3_yeast Hypothetical 15.0 kDa protein in YEF3B-SPO1 intergenic region YNL013C N2854 protein protein yeast Saccharomyces cerevisiae MLTSKIYKLLTERDVLDFKLKIFIRRNVFITHLFFLLHSLLLFLSQFCRREFAFFLPTINLVTHSIKFITLFFFFLNSWASTLSCNPIMARGCHFPILNRPNFVSQILSKFCRMRNNNDTTFKSF dun1_yeast DNA damage response protein kinase DUN1 DUN1 YDL101C D2370 protein protein yeast Saccharomyces cerevisiae MSLSTKREHSGDVTDSSFKRQQRSNKPSSEYTCLGHLVNLIPGKEQKVEITNRNVTTIGRSRSCDVILSEPDISTFHAEFHLLQMDVDNFQRNLINVIDKSRNGTFINGNRLVKKDYILKNGDRIVFGKSCSFLFKYASSSSTDIENDDEKVSSESRSYKNDDEVFKKPQISATSSQNATTSAAIRKLNKTRPVSFFDKYLLGKELGAGHYALVKEAKNKKTGQQVAVKIFHAQQNDDQKKNKQFREETNILMRVQHPNIVNLLDSFVEPISKSQIQKYLVLEKIDDGELFERIVRKTCLRQDESKALFKQLLTGLKYLHEQNIIHRDIKPENILLNITRRENPSQVQLGPWDEDEIDIQVKIADFGLAKFTGEMQFTNTLCGTPSYVAPEVLTKKGYTSKVDLWSAGVILYVCLCGFPPFSDQLGPPSLKEQILQAKYAFYSPYWDKIDDSVLHLISNLLVLNPDERYNIDEALNHPWFNDIQQQSSVSLELQRLQITDNKIPKTYSELSCL ktr3_yeast Probable mannosyltransferase KTR3 KTR3 YBR205W YBR1445 protein protein yeast Saccharomyces cerevisiae MSVHHKKKLMPKSALLIRKYQKGIRSSFIGLIIVLSFLFFMSGSRSPEVPIAQGTSVSRVASKDYLMPFTDKSQGVIHPVDDGKKEKGVMVTLARNSDLWNLVKSIRHVEDRFNNRYHYDWVFLNDQPFSDEFKRVTSALVSGKAKYGTIPKDHWSIPSWIDTEKFDEKRLAMGKLDIPYGSSVPYRHMCRFQSGFIWRHPLLEEYEWFWRVDTDITLFCDIQYDIFKFLKVNNKKYGFILSVSEYERTIPTLWETTKKFIKKNPKFLHKNNLMKFISNDDGDTYNMCHFWTNFEIGSLDFFRSDAYREYFDYLDSSGGFFYERWGDAPVHSIAASLFLDKSEIHFFDGLGFHHPDFTSCPIEQKIRLQNKCICEPSKDVTWTPDYFCTRKYFSAGNYKLPPGI q99288_yeast S.cerevisiae chromosome IV reading frame ORF YDR051c YDR051C protein protein yeast Saccharomyces cerevisiae MCEENVHVSEDVAGSHGSFTNARPRLIVLIRHGESESNKNKEVNGYIPNHLISLTKTGQIQARQAGIDLLRVLNVDDHNLVEDLAKKYIKDESSRRTLPLKDYTRLSREKDTNIVFYTSPYRRARETLKGILDVIDEYNELNSGVRICEDMRYDPHGKQKHAFWPRGLNNTGGVYENNEDNICEGKPGKCYLQYRVKDEPRIREQDFGNFQKINSMQDVMKKRSTYGHFFFRFPHGESAADVYDRVASFQETLFRHFHDRQERRPRDVVVLVTHGIYSRVFLMKWFRWTYEEFESFTNVPNGSVMVMELDESINRYVLRTVLPKWTDCEGDLTT elm1_yeast Serine/threonine-protein kinase ELM1 ELM1 YKL048C YKL261 protein protein yeast Saccharomyces cerevisiae MSPRQLIPTLIPEWAPLSQQSCIREDELDSPPITPTSQTSSFGSSFSQQKPTYSTIIGENIHTILDEIRPYVKKITVSDQDKKTINQYTLGVSAGSGQFGYVRKAYSSTLGKVVAVKIIPKKPWNAQQYSVNQVMRQIQLWKSKGKITTNMSGNEAMRLMNIEKCRWEIFAASRLRNNVHIVRLIECLDSPFSESIWIVTNWCSLGELQWKRDDDEDILPQWKKIVISNCSVSTFAKKILEDMTKGLEYLHSQGCIHRDIKPSNILLDEEEKVAKLSDFGSCIFTPQSLPFSDANFEDCFQRELNKIVGTPAFIAPELCHLGNSKRDFVTDGFKLDIWSLGVTLYCLLYNELPFFGENEFETYHKIIEVSLSSKINGNTLNDLVIKRLLEKDVTLRISIQDLVKVLSRDQPIDSRNHSQISSSSVNPVRNEGPVRRFFGRLLTKKGKKKTSGKGKDKVLVSATSKVTPSIHIDEEPDKECFSTTVLRSSPDSSDYCSSLGEEAIQVTDFLDTFCRSNESLPNLTVNNDKQNSDMKTDRSESSSHSSLKIPTPIKAMIRLKSSPKENGNRTHINCSQDKPSSPLMDRTVGKRTVNNSGARKLAHSSNILNFKAYINSEDSDIRETVEDVKTYLNFADNGQI yj83_yeast Putative 40S ribosomal protein YJR113C YJR113C J2020 protein protein yeast Saccharomyces cerevisiae MLHCARRYMLVRPRLLWQSGTCVARFQSSVRTPASEPSAEKGVDEWLEAINELREEFSAKEYLPETSLAPPGQSKVDLLQGSQAGSKIKPTAEQLAQWEALKSVPIPPRKNATLDHITNMIMRHGKKEKAQTILSRALYLVYCQTRQDPIQALEKSLDELAPLMMTKTFNTGVAKASVIPVPLNKRQRNRIAWNWIVQSANQRVSSDFAVRLGEELTAIAKGTSSAFEKRDQIHKTAIAHRAYIQLK exo84_yeast Exocyst complex component EXO84 YBR102C YBR0831 EXO84 USA3 protein protein yeast Saccharomyces cerevisiae MVEFSLKKARNNWKHVKKSASSPAKQKTPPSPAKPKQKTKKNPYSDLKDPATSYTLPTINARERSRVATSMQRRLSIHNTNYAPPTLDYSMPLPDMPNMIVPNDNVDSSHNNSSFTTENESVSSKGPSNSLNLSTADLSLNDSSYNKVPARSAMRNTVNPSGSNDPFNNSTSLRKMLANPHFNAKDFVHDKLGNASAITIDKFTSNLTDLSIQVQEEVKLNINKSYNEIMTVNNDLNVAMLELKRVRANINDLNEVLDQCTKIAEKRLQLQDQIDQERQGNFNNVESHSNSPALLPPLKAGQNGNLMRRDRSSVLILEKFWDTELDQLFKNVEGAQKFINSTKGRHILMNSANWMELNTTTGKPLQMVQIFILNDLVLIADKSRDKQNDFIVSQCYPLKDVTVTQEEFSTKRLLFKFSNSNSSLYECRDADECSRLLDVIRKAKDDLCDIFHVEEENSKRIRESFRYLQSTQQTPGRENNRSPNKNKRRSMGGSITPGRNVTGAMDQYLLQNLTLSMHSRPRSRDMSSTAQRLKFLDEGVEEIDIELARLRFESAVETLLDIESQLEDLSERISDEELMLLNLISLKIEQRREAISSKLSQSILSSNEIVHLKSGTENMIKLGLPEQALDLFLQNRSNFIQDLILQIGSVDNPTNYLTQLAVIRFQTIKKTVEDFQDIFKELGAKISSILVDWCSDEVDNHFKLIDKQLLNDEMLSPGSIKSSRKQIDGLKAVGLDFVYKLDEFIKKNSDKIR yn8q_yeast UPF0315 protein YNR046w YNR046W N3445 protein protein yeast Saccharomyces cerevisiae MKFLTTNFLKCSVKACDTSNDNFPLQYDGSKCQLVQDESIEFNPEFLLNIVDRVDWPAVLTVAAELGNNALPPTKPSFPSSIQELTDDDMAILNDLHTLLLQTSIAEGEMKCRNCGHIYYIKNGIPNLLLPPHLV far3_yeast Factor arrest protein 3 FAR3 YMR052W YM9796.05 protein protein yeast Saccharomyces cerevisiae MNSGGSDSFDYLLQLTKALSAECRANRQETDRIELLLKRLAKQSGISYDNLSKNIIPDSWKDNASQKASPPTEAQKLISENFKLIYEIEKQEYFNTKAVALINNINEHFSYIKNFIDEQNAIRERNIATFSSEKLDERNKSLQQNYESLKTENEETKKKLHSIIKQFEKLLKEVDWDRISKDSRDYSRFKKQLEYLQDTYQVLK vps64_yeast Vacuolar protein sorting protein 64 VPS64 FAR9 YDR200C YD9346.10C protein protein yeast Saccharomyces cerevisiae MVELEKRRRPPPQLQHSPYVRDQSNSQGMTKTPETSPPKRPMGRARSNSRSSGSRSNVDIDQYTIPPGLDLLPTASSPPSVHQVSQQQQLSPILANKIRSPFENQSQDQNDNSIDPTPAGQVTIPVEAVSPPALDELSKFQNGSTETLFRTGSPRKKHTHIIILKSLNATFETKFLVVPFKPDGLKLGRPVTNSVNKNNSGSKRDLFSQQVRPDNGNFDSRVLSRNHACLSCDPTSGKIYIRDLKSSNGTFVNGVKIRQNDVELKVGDTVDLGTDIDSKFEHRKISAYVEEISVIPLMNTVSDPTNLVMKKQDHTNKNNGNSTNINGIKIDRGHHNQHIPIRSHLKENYTEAGVTSATTAQRAAFEAAMFGDINNSELDDDILGPETEVLSGIFINNSAGTSINLINMIKTLTTELSLEKQELEKLHSMQNFMQNYTINLDFINKHMIDMNEKHLLKLSTALQKTLSENNDALLKESEDQLKEIKQQNNKVKSACSLKEKQNHEKLQELESELRELNLQIEEERGKNLVLTQSNFNGGINNDNNAKVKQNDSREEKKDTEDTLISTEELGVVEGKRTRVSKGMLFGVVAISFGLVATAVKQLPQ far7_yeast Factor arrest protein 7 YFR008W FAR7 protein protein yeast Saccharomyces cerevisiae MSDQINVLSMQQQQQQQQQQQQVYMSPQAENLNHMYLLVNKLVKQLRENQAEKAKILRNIDILSGSLNKYETSEEPHDTTENIALFNRFLEQRGKAPITEKEQLSNNLDENAKDDVMLGVLKRQNSMLRKSLQESKQVTLESMDLLSYSEDSLNYIVAQLRGNILMHHKETIKLIRQKFQTETIPLEDEEFKMYLENVNGLQKLTDISHTYRLLLRLHAQD yjs4_yeast Hypothetical 13.6 kDa protein in SWE1-ATP12 intergenic region YJL184W J0420 protein protein yeast Saccharomyces cerevisiae MKLPVAQYSAPDGVEKSFAPIRDDPRYMTTEGRTTGPSDHVLNAGQIDRDKPSEPERTKDGSQLTYLGQLRTQLTGLQDDINEFLTGRMELAKNKKKAGADEKRIQEEINQLLDGGDGDEDAV ncs1_yeast Calcium-binding protein NCS-1 FRQ1 NCS1 YDR373W D9481.6 protein protein yeast Saccharomyces cerevisiae GAKTSKLSKDDLTCLKQSTYFDRREIQQWHKGFLRDCPSGQLAREDFVKIYKQFFPFGSPEDFANHLFTVFDKDNNGFIHFEEFITVLSTTSRGTLEEKLSWAFELYDLNHDGYITFDEMLTIVASVYKMMGSMVTLNEDEATPEMRVKKIFKLMDKNEDGYITLDEFREGSKVDPSIIGALNLYDGLI pex14_yeast Peroxisomal membrane protein PEX14 PEX14 YGL153W G1870 protein protein yeast Saccharomyces cerevisiae MSDVVSKDRKALFDSAVSFLKDESIKDAPLLKKIEFLKSKGLTEKEIEIAMKEPKKDGIVGDEVSKKIGSTENRASQDMYLYEAMPPTLPHRDWKDYFVMATATAGLLYGAYEVTRRYVIPNILPEAKSKLEGDKKEIDDQFSKIDTVLNAIEAEQAEFRKKESETLKELSDTIAELKQALVQTTRSREKIEDEFRIVKLEVVNMQNTIDKFVSDNDGMQELNNIQKEMESLKSLMNNRMESGNAQDNRLFSISPNGIPGIDTIPSASEILAKMGMQEESDKEKENGSDANKDDNAVPAWKKAREQTIDSNASIPEWQKNTAANEISVPDWQNGQVEDSIP fus1_yeast Nuclear fusion protein FUS1 FUS1 YCL027W YCL27W protein protein yeast Saccharomyces cerevisiae MVATIMQTTTTVLTTVAAMSTTLASNYISSQASSSTSVTTVTTIATSIRSTPSNLLFSNVAAQPKSSSASTIGLSIGLPIGIFCFGLLILLCYFYLKRNSVSISNPPMSATIPREEEYCRRTNWFSRLFWQSKCEDQNSYSNRDIEKYNDTQWTSGDNMSSKIQYKISKPIIPQHILTPKKTVKNPYAWSGKNISLDPKVNEMEEEKVVDAFLYTKPPNIVHIESSMPSYNDLPSQKTVSSKKTALKTSEKWSYESPLSRWFLRGSTYFKDYGLSKTSLKTPTGAPQLKQMKMLSRISKGYFNESDIMPDERSPILEYNNTPLDANDSVNNLGNTTPDSQITSYRNNNIDLITARPHSVIYGTTAQQTLETNFNDHHDCNKSTEKHELIIPTPSKPLKKRKKRRQSKMYQHLQHLSRSKPLPLTPNSKYNGEASVQLGKTYTVIQDYEPRLTDEIRISLGEKVKILATHTDGWCLVEKCNTQKGSIHVSVDDKRYLNEDRGIVPGDCLQEYD sml1_yeast Ribonucleotide reductase inhibitor protein SML1 SML1 YML058W YM9958.04 protein protein yeast Saccharomyces cerevisiae MQNSQDYFYAQNRCQQQQAPSTLRTVTMAEFRRVPLPPMAEVPMLSTQNSMGSSASASASSLEMWEKDLEERLNSIDHDMNNNKFGSGELKSMFNQGKVEEMDF yit4_yeast Hypothetical 31.3 kDa protein in SQT1-MET28 intergenic region YIR014W protein protein yeast Saccharomyces cerevisiae MLHLEDDNGRQRSVIANLQKFVYCCLYLRFIKDGSLFLILLGWIISSLCDFIQELTLRYLKKNYLEVGRDNDQEDDESLAIRGLETPIVRMIINKAIRYYQGLILLETAYCIVYHIRLDVSRDICSKPYGFVIMLLIREFTCPVPTAFPSKLLLVLLDILLLFCQIVIINGSLSSSLQNVKLIVKELNAEEEGALNILKLNTWHMDATGPELIVLKNHDKSIPQQADGDDATEITPLLNIAE gbp2_yeast Single-strand telomeric DNA-binding protein GBP2 GBP2 RLF6 YCL011C YCL11C protein protein yeast Saccharomyces cerevisiae MERELGMYGNDRSRSRSPVRRRLSDDRDRYDDYNDSSSNNGNGSRRQRRDRGSRFNDRYDQSYGGSRYHDDRNWPPRRGGRGRGGSRSFRGGRGGGRGRTLGPIVERDLERQFDATKRNFENSIFVRNLTFDCTPEDLKELFGTVGEVVEADIITSKGHHRGMGTVEFTKNESVQDAISKFDGALFMDRKLMVRQDNPPPEAAKEFSKKATREEIDNGFEVFIINLPYSMNWQSLKDMFKECGHVLRADVELDFNGFSRGFGSVIYPTEDEMIRAIDTFNGMEVEGRVLEVREGRFNKRKNNDRYNQRREDLEDTRGTEPGLAQDAAVHIDETAAKFTEGVNPGGDRNCFIYCSNLPFSTARSDLFDLFGPIGKINNAELKPQENGQPTGVAVVEYENLVDADFCIQKLNNYNYGGCSLQISYARRD mob2_yeast Maintenance of ploidy protein MOB2 MOB2 YFL035C protein protein yeast Saccharomyces cerevisiae MNTIYSSPHSSNSRLSLRNKHHSPKRHSQTSFPAQKSTPQSQQLTSTTPQSQQQEASERSESQQIMFLSEPFVRTALVKGSFKTIVQLPKYVDLGEWIALNVFEFFTNLNQFYGVVAEYVTPDAYPTMNAGPHTDYLWLDANNRQVSLPASQYIDLALTWINNKVNDKNLFPTKNGLPFPQQFSRDVQRIMVQMFRIFAHIYHHHFDKIVHLSLEAHWNSFFSHFISFAKEFKIIDRKEMAPLLPLIESFEKQGKIIYN gic1_yeast GTPase-interacting component 1 GIC1 YHR061C protein protein yeast Saccharomyces cerevisiae MTEGKRLQQMELPQMKSIWIDEDQEMEKLYGFQVRQRFMNGPSTDSDEDADEDLGIVLVDSKKLALPNKNNIKLPPLPNYMTINPNINSNHKSLTNKKKNFLGMFKKKDLLSRRHGSAKTAKQSSISTPFDFHHISHANGKREDNPLESHEEKHDVESLVKFTSLAPQPRPDSNVSSKYSNVVMNDSSRIVSSSTIATTMDSHHDGNETNNTPNGNKQLDSPTDLEMTLEDLRNYTFPSVLGDSVSEKTNPSSPSVSSFSGKFKPRELSALHTPELGNCFNVDQSLNSPGNRISVDDVLKFYYQCSETSTPRNT bub2_yeast Mitotic check point protein BUB2 BUB2 YMR055C YM9796.08C protein protein yeast Saccharomyces cerevisiae MTSIEDLISNPPLLLHSSLSQLRYLILSEGLPISEDKQQQRTRCYVWTVLSQTSMEASTQRYLALLKLGPPSTTIYQKIKNDTSRTFQTDPNFRNRVSEDALIRCLSCFAWQTQQRRQKTRFGRIPVSTYVQGMNVLLAPLLYSCPSEPMAYQLFTKLCYEMIPTYLTKNLNGAQNGAKLLDISLRIIDPKLSKFLSDNLLTAEIYGMPSILTLSSCNKPLDQVIKLWDFMFAYGFHMNILFVVAFLVKMRSKVFKSDSPVNLLRQFPDFDADEIIRLGVGFIAKIPAQIYDLLVDHLTDPDIYIP dfg5_yeast Mannan endo-1,6-alpha-mannosidase DFG5 precursor DFG5 YMR238W YM9959.20 protein protein yeast Saccharomyces cerevisiae MIVNISAKMILSICFTFLSFFKATHAMDLDTTSKTSICDATALIQGGMLDYYEGTRYGGTVGMFQSPYYWWHAGEAFGGMLENWFLCENDTYQELLYDALLAQTGSNYDYIPSNQTMVEGNDDQGIWGITVMGAVERNFTDPGDGKPGWLAMVQAVFNTMYSRWDSEHCGGGLRWQIFTWNSGYNYKNTVSNACLFQIAARLGRYTGNTTYLEVAEQVFDWLVDVGYVVLNDTANVFDGAEIDTNCTDITKIEWTYNHGIVLGGLAYMYNATNGTGEWETSLTKILNGAKSYFFKDSIMYESACQDYGTCNTDQRTFKSIFSRMLGLTSVMAPFTRDTIDDLIKTSAEAAAKSCNGGTDGHTCGLNWQKQTNDGYYGLGEQMSALEVIQNLLIHDRPAPYKEDNGGTSKGDANAGMNSSTTNVLQNNLNIKKGDRAGAAIITAVILSVLTGGAVWMLF ste50_yeast Protein STE50 STE50 YCL032W YCL32W protein protein yeast Saccharomyces cerevisiae MEDGKQAINEGSNDASPDLDVNGTILMNNEDFSQWSVDDVITWCISTLEVEETDPLCQRLRENDIVGDLLPELCLQDCQDLCDGDLNKAIKFKILINKMRDSKLEWKDDKTQEDMITVLKNLYTTTSAKLQEFQSQYTRLRMDVLDVMKTSSSSSPINTHGVSTTVPSSNNTIIPSSDGVSLSQTDYFDTVHNRQSPSRRESPVTVFRQPSLSHSKSLHKDSKNKVPQISTNQSHPSAVSTANTPGPSPNEALKQLRASKEDSCERILKNAMKRHNLADQDWRQYVLVICYGDQERLLELNEKPVIIFKNLKQQGLHPAIMLRRRGDFEEVAMMNGSDNVTPGGRL ycx6_yeast Hypothetical protein YCR086W YCR086W YCR86W protein protein yeast Saccharomyces cerevisiae MDPLTVYKNSVKQQIDSADLLVANLVNENFVLSEKLDTKATEIKQLQKQIDSLNAQVKELKTQTSQQAENSEVIKDLYEYLCNVRVHKSYEDDSGLWFDISQGTHSGGSSDDYSIMDYKLGFVKGQAQVTEVIYAPVLKQRSTEELYSLQSKLPEYLFETLSFPLSSLNQFYNKIAKSLNKKREKKDETE glo3_yeast ADP-ribosylation factor GTPase-activating protein GLO3 GLO3 YER122C protein protein yeast Saccharomyces cerevisiae MSNDEGETFATEQTTQQVFQKLGSNMENRVCFDCGNKNPTWTSVPFGVMLCIQCSAVHRNMGVHITFVKSSTLDKWTINNLRRFKLGGNHKARDFFLKNNGKQLLNTANVDAKTKYTSPVAKKYKIHLDKKVQKDMELYPSELVLNGQDSSDSPLDTDSDASRSTSKENSVDDFFSNWQKPSSNSSSKLNVNTGSLAPKNNTTGSTPKTTVTKTRSSILTASRKKPVLNSQDKKKHSILSSSRKPTRLTAKKVDKSQAEDLFDQFKKEAQQEKEDEFTNSSSSTKIRQNDYDSQFMNNSKGNNNNSIDDINTQPDEFNDFLNDTSNSFDTTRKEQQDTLTPKFAKLGFGMTMNDANDLAKQQKESQKIAQGPRYTGRIAERYGTQKAISSDQLFGRGSFDEAANREAHDKLKTFDNATSISSSSYFGEDKEVDEFGNPINSSGSGAGNFDGRNSNNGFIDFNASADDELQMLRDVVEQGAEKLGSYLRDYLRK mad2_yeast Mitotic spindle checkpoint component MAD2 MAD2 YJL030W J1256 protein protein yeast Saccharomyces cerevisiae MSQSISLKGSTRTVTEFFEYSINSILYQRGVYPAEDFVTVKKYDLTLLKTHDDELKDYIRKILLQVHRWLLGGKCNQLVLCIVDKDEGEVVERWSFNVQHISGNSNGQDDVVDLNTTQSQIRALIRQITSSVTFLPELTKEGGYTFTVLAYTDADAKVPLEWADSNSKEIPDGEVVQFKTFSTNDHKVGAQVSYKY gpa1_yeast Guanine nucleotide-binding protein alpha-1 subunit GPA1 CDC70 DAC1 SCG1 YHR005C protein protein yeast Saccharomyces cerevisiae GCTVSTQTIGDESDPFLQNKRANDVIEQSLQLEKQRDKNEIKLLLLGAGESGKSTVLKQLKLLHQGGFSHQERLQYAQVIWADAIQSMKILIIQARKLGIQLDCDDPINNKDLFACKRILLKAKALDYINASVAGGSDFLNDYVLKYSERYETRRRVQSTGRAKAAFDEDGNISNVKSDTDRDAETVTQNEDADRNNSSRINLQDICKDLNQEGDDQMFVRKTSREIQGQNRRNLIHEDIAKAIKQLWNNDKGIKQCFARSNEFQLEGSAAYYFDNIEKFASPNYVCTDEDILKGRIKTTGITETEFNIGSSKFKVLDAGGQRSERKKWIHCFEGITAVLFVLAMSEYDQMLFEDERVNRMHESIMLFDTLLNSKWFKDTPFILFLNKIDLFEEKVKSMPIRKYFPDYQGRVGDAEAGLKYFEKIFLSLNKTNKPIYVKRTCATDTQTMKFVLSAVTDLIIQQNLKKIGII atg14_yeast Autophagy-related protein 14 ATG14 APG14 YBR128C YBR1003 CVT12 protein protein yeast Saccharomyces cerevisiae MHCPICHHRAHVVYCAHCINTSPSLLLKLKLDLILLKDENKELNGKVEQILNEAMNYDQLDIKRMEKKKDPLMNSLMKLDVLRMKKNNNLIRHRIEQLNERIYSKRNHISELKVEIDNYKCYKVGTGTDKLREQVEISDAKNKLAQVSKICESARDYKLNLLNNWFVIQKLQDNFQIPFAIAFQPLISLKNFRILPLAITNDSINIMWKYISFFSDILMIKLPYTNKICEQPMFEFSDSIQTVVQRLIKLIINILQICRHLKLVPSTPMDIPWLLDQYDVDGLFYNMVKRNKMKCRSVSLYWTFGMLYSMVLDNMNNPQRGHPARRTAPPPTVTGPHDRWYVVG gac1_yeast Protein phosphatase 1 regulatory subunit GAC1 GAC1 YOR178C protein protein yeast Saccharomyces cerevisiae MVIQTATTLSPAKARPSFPHNDLIKSMSDSLISRPTHPPIRKLKSSLKISHPEPISRSKSEIFCTSPEKNVRFAIELTTVKRFDKNAEPSSISNENSPTLSPVDSNTAADDVQLFNNEDCWFNDSSLVTNLLKNEKKFRYMNSLNNMFKLDLYDSEDEDDIDEHINSQAEYGYTYNSLSTRGKTSENKSATSSLATQATNICDWKLHCTDLVPFKIAPPLFTKTLSASDLQGQLTKYLNGQNVKLHSLTQLGDDSSKITGLVYVKNLSFEKYLEIKFTFNSWRDIHYVTANFNRTINSNVDEFKFTIDLNSLKYILLIKRIITMEKNTSSCPLNIELCCRYDVNNETYYDNNNGKNYHLFMTTFKKGGETKEKIPVVVEPASQTDAAMSPKEMKARFVSSNPTLSRFLPQSRKFSEDTDYYNTSPLKHLYHNDTTSWVKPKRLNVVLDKLENATPPPPSSALANDTARTGKITKDKNNVLAPPTASNSIDLPILGSQHQSLYSGSSSYSSSSSSISSSLSFASSNNSSTNSSSASCSFPLTELDNFDYANLYEPNDTFTTANLFNHSLNSLMPEISTPSFFGGFRNENTINNNDSKNLVTSLEDSYEDKQSVITDTTMDENNKTSTINNSTDTLIKPSKENGTVKENKSSANSTSAPSSSQNRASTILNDHSNGKSDLKYVNYQSLLDSHCFYNHPSSPNLQSTSFSSAAPFSGISQASDIFDYENEDSDSNQIAGEIDNNSFPPHFYLDEDDKSACLSDDALIDHHRNTNPFINTFSSSPPILSQEVDRWRL sc160_yeast SCP160 protein SCP160 HX YJL080C J1017 protein protein yeast Saccharomyces cerevisiae MSEEQTAIDSPPSTVEGSVETVTTIDSPSTTASTIAATAEEHPQLEKKPTPLPSLKDLPSLGSNAAFANVKVSWGPNMKPAVSNSPSPSPSAPSLTTGLGAKRMRSKNIQEAFTLDLQSQLSITKPELSRIVQSVKKNHDVSVESTLSKNARTFLVSGVAANVHEAKRELVKKLTKPINAVIEVPSKCKASIIGSGGRTIREISDAYEVKINVSKEVNENSYDEDMDDTTSNVSLFGDFESVNLAKAKILAIVKEETKNATIKLVVEDEKYLPYIDVSEFASDEGDEEVKVQFYKKSGDIVILGPREKAKATKTSIQDYLKKLASNLDEEKVKIPSKFQFLIDAEELKEKYNVIVTFPSTPDDELVSFVGLRDKVGEAITYARSSSKSYVVESLDISKAHSKNLTHAKNLIMYFTKYSVLKGLEESHPNVKISLPSIQSLPTAETVTIHISAKSDEANDIKAVRKELISFVNNIPPSETLVITDLDYELFGGSIKHCLLASESSVAFVQFGDYYPNDNSILLVALTEDEDFKPSIEEIQASLNKANESLNSLRTKQNNMETKTYEFSEEVQDSLFKPSSATWKLIMEDISEQEGHLQIKLHTPEENQLTVRGDEKAAKAANKIFESILNSPSSKSKMTVNIPANSVARLIGNKGSNLQQIREKFACQIDIPNEENNNASKDKTVEVTLTGLEYNLTHAKKYLAAEAKKWADIITKELIVPVKFHGSLIGPHGTYRNRLQEKYNVFINFPRDNEIVTIRGPSRGVNKAHEELKALLDFEMENGHKMVINVPAEHVPRIIGKNGDNINDIRAEYGVEMDFLQKSTDPKAQETGEVELEITGSRQNIKDAAKRVESIVAEASDFVTEVLKIDHKYHKSIVGSGGHILREIISKAGGEEIRNKSVDIPNADSENKDITVQGPQKFVKKVVEEINKIVKDAENSVTKTIDIPAERKGALIGPGGIVRRQLESEFNINLFVPNKDDPSGKITITGAPENVEKAEKKILNEIIRENFDREVDVPASIYEYVSERGAFIQKLRMDLSVNVRFGNTSKKANKLARAPIEIPLEKVCGSTEGENAEKTKFTIEEVGAPTSSEEGDITMRLTYEPIDLSSILSDGEEKEVTKDTSNDSAKKEEALDTAVKLIKERIAKAPSATYAGYVWGADTRRFNMIVGPGGSNIKKIREAADVIINVPRKSDKVNDVVYIRGTKAGVEKAGEMVLKSLRR ybw6_yeast Very hypothetical 20.2 kDa protein in LYS2-TKL2 intergenic region YBR116C YBR0911 protein protein yeast Saccharomyces cerevisiae MQPKNCTILKKSKQELFPCQTFILLTGKVKNTDSLFYQTVFRSCPLKYWLLQAGVSMLINRSDSTNLVVQARGLKFTNCSISQRTVLRQGLKRQSITTKESSCFLLWEELSKSEEVNSSLLFHTSWLMVTCCLKYIYMYDICTCFLFCAFVTSIFIETDYSIFFLLTASRGIAQF q03981_yeast Hypothetical protein CSN9 protein protein yeast Saccharomyces cerevisiae MVMREETIKSLEDPYKYHYKEEWLNTKDPDEQQLFEIFAFGNIKDLPENIILTSLMRSKLEKLTLVTLSEIYNELSYELIKEECQIEDDGIIESHLIQLQNIFKAEMDSVSKSMKFSRRFDCRDVYCHEKELTIIKNPRVTKEYLVQNLRSWETKLKQNILE yhc6_yeast Hypothetical 30.7 kDa protein in RIM1-SNF6 intergenic region precursor YHL026C protein protein yeast Saccharomyces cerevisiae MKSSEPAPATPTGFRNSIWFIIFYLFVIQALGSAIISGGIEFAIAYAMYHSRVDLITLWAFPHTISGDCALSLFIQVGLTWASEEILVGFDDYKRPVFRLNKWITKPSPLKTESNEEIPPPKKRFIVDYFESKDNVVAKQNTLYHKHNWLFGYLEVNRGIIPKGKEATLKGFLTSQFIHDSTQSKFMNFIEWFVQKFIRSMILAIAMFIVIWPVTMGILAGIGHKVGSHDYYFNDYPLPQVMKLIYAVVIAFVCTPVAIIVIVLRNQFHEELYYEGLANGTLQQDQEVCSTGNRSSGSTDQDISTTKQQSQEAVA nat4_yeast Histone-specific N-acetyltransferase NAT4 NAT4 YMR069W YM9916.08 protein protein yeast Saccharomyces cerevisiae MRSSVYSENTYNCIRTSKEHLTERRRVAMAPMFQHFLNLCVEKFPESIEHKDTDGNGNFTTAILEREIIYIPEDDTDSIDSVDSLKCINYKLHKSRGDQVLDACVQLIDKHLGAKYRRASRIMYGNRKPWKANKLAEMKSAGLVYVCYWDNGVLGAFTSFMLTEETGLVEGDALHEVSVPVIYLYEVHVASAHRGHGIGRRLLEHALCDGVARHTRRMCDNFFGVALTVFSDNTRARRLYEALGFYRAPGSPAPASPTIRHTRHGGGRVVVPCDPLYYVYCLHMP gts1_yeast GTS1 protein GTS1 LSR1 YGL181W protein protein yeast Saccharomyces cerevisiae MRFRSSSHSLKHVDRELKELINSSENANKCGECGNFYPTWCSVNLGVFLCGRCASVHRKVFGSRDDDAFSNVKSLSMDRWTREDIDELVSLGGNKGNARFWNPKNVPFPFDGDDDKAIVEHYIRDKYILGKFRYDEIKPEDFGSRMDDFDGESDRFDERNRSRSRSRSHSFYKGGHNRSDYGGSRDSFQSSGSRYSRQLAELKDMGFGDTNKNLDALSSAHGNINRAIDYLEKSSSSRNSVSAAATTSTPPLPRRRATTSGPQPAIFDGTNVITPDFTSNSASFVQAKPAVFDGTLQQYYDPATGMIYVDQQQYAMAMQQQQQQQQQLAVAQAQAQAQAQAQAQVQAQAQAQAQAQAQAQQIQMQQLQMQQQQQAPLSFQQMSQGGNLPQGYFYTQ fre5_yeast Ferric reductase transmembrane component 5 precursor FRE5 YOR384W O6765 protein protein yeast Saccharomyces cerevisiae MLFARLVLLLVYLAPGSLAKPASTKKRTQWDQIAIDACAKELESHKFDTDVKGRHATLCTYEPALGSWLHCAKDVLDSRKKSKKIFEKTFSKINQYCHDYHKDEVVSNEEYYRIFANASLFIRPLDEVKENIRYPVTPNKASLDRWVWAYFGPLDNIDKGNVYGVTICLYWIGVLFIAAVYHFLNFSRLKQTVFKNKVSAFLRGHYVLPALVHNHAMSVGRWFFIGLVPTRLETLVLFGYVLLHGFLLSSYNFDHNELLSDRRSQVLIFLSDRAGILAFAHFPLIVLFGGKNSTMTWLTGIRYTAFITYHKWLGRFMLVDCTIHAIGYTYHAYIENYWKYVKYSDLWTSGRHAMIIVGILVFFSFFFFRRHYYELFVITHIILAIGFFHACWKHCYKLGWGEWIMACALFWIADRILRLIKIAIFGMPWAKLKLCGESMIEVRISKSSKWWKAEPGQYIYLYFLRPKIFWQSHPFTVMDSLVEDGELVVVITVKNGLTKKLQEYLLESEGYTEMRVLAEGPYGQSTRTHLFESLLFIAGGAGVPGPLSMAIKAGRQVKSNDSHQMIKFVWSVRNLDLLEVYRKEIMVLKELNIDTKIYFTGERKDESNTEEGAIANMSTEGRLLTTSKSAEMITDFGRPNIDEIIEEAVSGAKSLLVTCCGSEGFVDKTRELTAKRVLEHGDKWIEYVEEFQNW gln3_yeast Nitrogen regulatory protein GLN3 GLN3 YER040W protein protein yeast Saccharomyces cerevisiae MQDDPENSKLYDLLNSHLDVHGRSNEEPRQTGDSRSQSSGNTGENEEDIAFASGLNGGTFDSMLEALPDDLYFTDFVSPFTAAATTSVTTKTVKDTTPATNHMDDDIAMFDSLATTQPIDIAASNQQNGEIAQLWDFNVDQFNMTPSNSSGSATISAPNSFTSDIPQYNHGSLGNSVSKSSLFPYNSSTSNSNINQPSINNNSNTNAQSHHSFNIYKLQNNNSSSSAMNITNNNNSNNSNIQHPFLKKSDSIGLSSSNTTNSVRKNSLIKPMSSTSLANFKRAASVSSSISNMEPSGQNKKPLIQCFNCKTFKTPLWRRSPEGNTLCNACGLFQKLHGTMRPLSLKSDVIKKRISKKRAKQTDPNIAQNTPSAPATASTSVTTTNAKPIRSRKKSLQQNSLSRVIPEEIIRDNIGNTNNILNVNRGGYNFNSVPSPVLMNSQSYNSSNANFNGASNANLNSNNLMRHNSNTVTPNFRRSSRRSSTSSNTSSSSKSSSRSVVPILPKPSPNSANSQQFNMNMNLMNTTNNVSAGNSVASSPRIISSANFNSNSPLQQNLLSNSFQRQGMNIPRRKMSRNASYSSSFMAASLQQLHEQQQVDVNSNTNTNSNRQNWNSSNSVSTNSRSSNFVSQKPNFDIFNTPVDSPSVSRPSSRKSHTSLLSQQLQNSESNSFISNHKFNNRLSSDSTSPIKYEADVSAGGKISEDNSTKGSSKESSAIADELDWLKFGI yby8_yeast Hypothetical 60.5 kDa protein in ESR1-IRA1 intergenic region YBR138C YBR1014 protein protein yeast Saccharomyces cerevisiae MEKDQIQPRVLESVDTNSLSLLSSNTSSNMNSNTNNKLSIIASDISTGSVLSRPLTPPVVQDIENNSMLQWQFEKKEFIFDSNSTPSKQAKPLQRNSPYQGNSQSENQNQQLLNVRKRRSQCIGAKPKIPSKLYQSVSKLDLIDDKSFTSLPIAPPCNIETNEDDSGNNEYNNNKKRPRLNPVNELRVHNNKRNRYVSYGPSLDTKNYELTENTSQDIPPLVLVEDYIPYTQSKSTKKMVSISDLKSKLSKRRDNHIPLRVKNSYSEINKETNRNSFEPNSLTLIPHILRNTEENRDESNNPLDFIKEEIEISDISIPNSIENMVVNLVNIPSSNKSYDDLYLSELNVHSQLRKCVICEKALYEISSRLLNSGYYKEIVCEQCTVRYEEAAKIFENCEFESSMDESNLSSGTFSDLENSAEPFHLSTDVPKKINRHIEDNKIDLKKEISKKKDSFSKELIERLQLQLLENDKSIKHHFNKDAMGSKSMNWFLEARRKLKWKWRINGLLPHFLRNQNSDRLNFQP yb9q_yeast Hypothetical 55.5 kDa protein in MRPL37-RIF1 intergenic region YBR272C YBR1740 protein protein yeast Saccharomyces cerevisiae MSEKETNYVENLLTQLENELNEDNLPEDINTLLRKCSLNLVTVVSLPDMDVKPLLATIKRFLTSNVSYDSLNYDYLLDVVDKLVPMADFDDVLEVYSAEDLVKALRSEIDPLKVAACRVIENSQPKGLFATSNIIDILLDILFDEKVENDKLITAIEKALERLSTDELIRRRLFDNNLPYLVSVKGRMETVSFVRLIDFLTIEFQFISGPEFKDIIFCFTKEEILKSVEDILVFIELVNYYTKFLLEIRNQDKYWALRHVKKILPVFAQLFEDTENYPDVRAFSTNCLLQLFAEVSRIEEDEYSLFKTMDKDSLKIGSEAKLITEWLELINPQYLVKYHKDVVENYFHVSGYSIGMLRNLSADEECFNAIRNKFSAEIVLRLPYLEQMQVVETLTRYEYTSKFLLNEMPKVMGSLIGDGSAGAIIDLETVHYRNSALRNLLDKGEEKLSVWYEPLLREYSKAVNGKNYSTGSETKIADCR kin3_yeast Serine/threonine-protein kinase KIN3 KIN3 NPK1 YAR018C FUN52 protein protein yeast Saccharomyces cerevisiae MHRRQFFQEYRSPQQQQGHPPRSEYQVLEEIGRGSFGSVRKVIHIPTKKLLVRKDIKYGHMNSKERQQLIAECSILSQLKHENIVEFYNWDFDEQKEVLYLYMEYCSRGDLSQMIKHYKQEHKYIPEKIVWGILAQLLTALYKCHYGVELPTLTTIYDRMKPPVKGKNIVIHRDLKPGNIFLSYDDSDYNINEQVDGHEEVNSNYYRDHRVNSGKRGSPMDYSQVVVKLGDFGLAKSLETSIQFATTYVGTPYYMSPEVLMDQPYSPLSDIWSLGCVIFEMCSLHPPFQAKNYLELQTKIKNGKCDTVPEYYSRGLNAIIHSMIDVNLRTRPSTFELLQDIQIRTARKSLQLERFERKLLDYENELTNIEKILEKQAIEYERELSQLKEQFTQAVEERAREVISGKKVGKVPESINGYYGKKFAKPAYHWQTRYR kns1_yeast Protein kinase KNS1 KNS1 YLL019C protein protein yeast Saccharomyces cerevisiae MSQNIQIGTRKRSRANMNNSTTTGPANNTSSNKTFLDNFEETRTNKLLDEMFARQNSFLTDNLRNSLDLNQADNPLRPRQHQHQLFLDNENAIELDEEPRIINTTINNSNNHNSSRVDEDADDDIIFIKEQPIQFSSPLILPSSSSINNNNNIVTSNNPGCGTAATSNSTYITTPKKFKKQRTISLPQLPLSKLSYQSNYFNVPDQTNAIVPRVTQTENELLHLTGSCAKTLEGNKAVNLTIAHSTSPFSNPPAQIASLPQSNLKKQIGSSLRKFTSNGSSESASSNKSNFKTDKDGHYVYQENDIFGSGGRFVVKDLLGQGTFGKVLKCIDNKYEPNYVAVKVIRAVDRYREAAKTELRILQTILNNDPQGQFQCLLLRECFDYKNHICLVTDLYGRSIYDFMCSNGIARFPGSHIQAIARQLIRSVCFLHDLGIIHTDLKPENILICDETHIAQKLPLKTVQSLSKRRREASKGKRKILKNPEIKIIDFGSAIFHYEYHPPVISTRHYRAPEIVLGLGWSFPCDIWSIACVLVELVIGESLYPIHENLEHMAMMQRINGTPFPTDIIDKMFYKSKHKLGNSPSDLNSTVIKHFDRKTLSLQWPEKNKRGDTITTEKSMKRVLQSCDRLDIYISKVLKQDYGDSLSINWNLPPEKNWSLINSKLAWKRQTHSSSSSTTDELDKETFLFWYWFIDLLRKMFEFDPTKRITAKDALDHEWFNLGILDDGIATYNNTQG nam8_yeast NAM8 protein NAM8 MRE2 YHR086W protein protein yeast Saccharomyces cerevisiae MSYKQTTYYPSRGNLVRNDSSPYTNTISSETNNSSTSVLSLQGASNVSLGTTGNQLYMGDLDPTWDKNTVRQIWASLGEANINVRMMWNNTLNNGSRSSMGPKNNQGYCFVDFPSSTHAANALLKNGMLIPNFPNKKLKLNWATSSYSNSNNSLNNVKSGNNCSIFVGDLAPNVTESQLFELFINRYASTSHAKIVHDQVTGMSKGYGFVKFTNSDEQQLALSEMQGVFLNGRAIKVGPTSGQQQHVSGNNDYNRSSSSLNNENVDSRFLSKGQSFLSNGNNNMGFKRNHMSQFIYPVQQQPSLNHFTDPNNTTVFIGGLSSLVTEDELRAYFQPFGTIVYVKIPVGKCCGFVQYVDRLSAEAAIAGMQGFPIANSRVRLSWGRSAKQTALLQQAMLSNSLQVQQQQPGLQQPNYGYIPSSTCEAPVLPDNNVSSTMLPGCQILNYSNPYANANGLGSNNFSFYSNNNATNTQATSLLADTSSMDLSGTGGQQVIMQGSEAVVNSTNAMLNRLEQGSNGFMFA pan1_yeast PAN1 protein PAN1 MDP3 MIP3 YIR006C YIB6C DIM2 protein protein yeast Saccharomyces cerevisiae MYNPYQQQGMGYQQQQQQQQQQPNGFYPQQQQGQSSNQPQGQPQPQQQMAFNQPQATGIGGMPQSFGNSFSSMPQQPQTGYNNNGNNGSVYGNGNFGQQPQQQQQQAKPQHTGYVPNSSMPMMNTTGTMPPPNPAQQPQLQSIQPQGTGYYQAANTANVHSVQPLQSQGTGYYVSTPNLISSNQTQQPLQAQGTGYYQSQPQQVPPPQQAQSLQPLKPQQTGFYLQPQNQAPLEPLKPTATGFVNSFANNGLNNDIKIPAIRLSFITAQDQAKFETLFRSIVTNGSNTVSGANCRKILMRSGLPPSQLARIWTLCDTSKAGELLFPEFALAMHLINDVLQGDTIPYELDSKTKNEVSSFIDAINLSIANQDSSANDAPKTPFDEFITAGVQNLQPQPTGYMPQTSFGIPLQSQITGGGVASALNPQSTGFMAPTTFNMSMNTGTPGLNPQITGGAPASMQPNITGNALQPQTTGMMPQTTGMMPQTTGMMPQTSFGVNLGPQLTGGALQSQYTGGYGSVMPQQSGPASMPNLSFNQQGLQSQLTGLQPQPTGFLPPSNFSATMPLTAQKTGFGNNEIYTKSNFNNNLIDNSSQDKISTEEKSLFYKIFETFDTQNKGLLDSPTAVEIFRKSGLNRADLEQIWNLCDINNTGQLNKQEFALGMHLVYGKLNGKPIPNVLPSSLIPSSTKLLDNLKNQLKTEPTTTKEKPSFGKIDALSYKNNDDDVLPNYRNRRKVYSAKNEEQSSFSSPSAKSVNHSSSTLQTDDISVDKTVEKKTAKPKYAGFSREINLKNIASLENEIKNISNPENCYDSSIPSDLTSRFDAIIAKLPNLFNEISTIDNEITNAKIQLYRKKNPSSIIGSGPNGEITENDRKKAKSRALLRARMSALTGKSTESEDSLSMEDEQQSAEIKRIQQENGKNQEIIKDIRSSISDISASLKSTMTGSNMISNQEFERWEFGIGLEDGVREFLDDLKSNSNKSVTESSPFVPSSTPTPVDDRSSSPSYSQFKTAEERAAYLKEQAKKRMKEKLAKFDKNRRNVTQSSRSISSENSREQPQQIAGSSNLVEPRATPFQEEKYVEVAQPTQPVQSTQPVQPTQPVQPTQPVQPTQPVQPTQPVQPTQPVQNVYNAKQESDDEDEDDEEKRLQEELKRLKLKKKADKEKRLAALRKQIEDAQNESDEEETNGKDNFGGHVNVPQAAPVAPSAAFSQNSTNAPRSVHAAVTPAAGKNSTGLPSTTMGHNPYFKDASASSTSTFDARAAEMQRRIQRGLDEDEDDGWSDEDESNNRVAVDNKVEEAKIGHPDHARAPPVTAAPLPSVTPVPPAVPVPQANTSNEKSSPIPIAPIPPSVTQEPPVPLAPPLPAVDGFQEPPIPSAPAIATAVQKSGSSTPALAGGVLPPPPPLPTQQASTSEPIIAHVDNYNGAEKGTGAYGSDSDDDVLSIPESVGTDEEEEGAQPVSTAGIPSIPPAGIPPPPPLP rv167_yeast Reduced viability upon starvation protein 167 RVS167 YDR388W D9509.8 protein protein yeast Saccharomyces cerevisiae MSFKGFTKAVSRAPQSFRQKFKMGEQTEDPVYEDAERRFQELEQETKKLSEESKRYSTAVNGMLTHQIGFAKSMEEIFKPISGKMSDPNATIPEDNPQGIEASEQYRAIVAELQETLKPDLALVEEKIVTPCQELLKIITYIRKMATKRNHKKLDLDRHLNTYNKHEKKKEPTAKDEERLYKAQAQVEVAQQEYDYYNDLLKTQLPILFSLEAEFVKPLFVSFYFMQLNIFYTLYNRLQDMKIPYFDLNSDIVESYIAKKGNVEEQTDALTITHFKLGYSKAKLEMTRRKYGVATAEGSPVSGASSGVGYGAGYDPATATSPTPTGYGYGAAAPSYAAQPAAQYGTAAAVGTAAAVGTAAGAAAGAVPGTYPQYAAAQSPPLTGLGFQQSPQQQQGPPPAYSNPLTSPVAGTPAAAVAAAPGVETVTALYDYQAQAAGDLSFPAGAVIEIVQRTPDVNEWWTGRYNGQQGVFPGNYVQLNKN sla1_yeast Cytoskeleton assembly control protein SLA1 SLA1 YBL007C YBL0321 protein protein yeast Saccharomyces cerevisiae MTVFLGIYRAVYAYEPQTPEELAIQEDDLLYLLQKSDIDDWWTVKKRVIGSDSEEPVGLVPSTYIEEAPVLKKVRAIYDYEQVQNADEELTFHENDVFDVFDDKDADWLLVKSTVSNEFGFIPGNYVEPENGSTSKQEQAPAAAEAPAATPAAAPASAAVLPTNFLPPPQHNDRARMMQSKEDQAPDEDEEGPPPAMPARPTATTETTDATAAAVRSRTRLSYSDNDNDDEEDDYYYNSNSNNVGNHEYNTEYHSWNVTEIEGRKKKKAKLSIGNNKINFIPQKGTPHEWSIDKLVSYDNEKKHMFLEFVDPYRSLELHTGNTTTCEEIMNIIGEYKGASRDPGLREVEMASKSKKRGIVQYDFMAESQDELTIKSGDKVYILDDKKSKDWWMCQLVDSGKSGLVPAQFIEPVRDKKHTESTASGIIKSIKKNFTKSPSRSRSRSRSKSNANASWKDDELQNDVVGSAAGKRSRKSSLSSHKKNSSATKDFPNPKKSRLWVDRSGTFKVDAEFIGCAKGKIHLHKANGVKIAVAADKLSNEDLAYVEKITGFSLEKFKANDGSSSRGTDSRDSERERRRRLKEQEEKERDRRLKERELYELKKARELLDEERSRLQEKELPPIKPPRPTSTTSVPNTTSVPPAESSNNNNSSNKYDWFEFFLNCGVDVSNCQRYTINFDREQLTEDMMPDINNSMLRTLGLREGDIVRVMKHLDKKFGRENIASIPTNATGNMFSQPDGSLNVATSPETSLPQQLLPQTTSPAQTAPSTSAETDDAWTVKPASKSESNLLSKKSEFTGSMQDLLDLQPLEPKKAAASTPEPNLKDLEPVKTGGTTVPAAPVSSAPVSSAPAPLDPFKTGGNNILPLSTGFVMMPMITGGDMLPMQRTGGFVVPQTTFGMQSQVTGGILPVQKTGNGLIPISNTGGAMMPQTTFGAAATVLPLQKTGGGLIPIATTGGAQFPQTSFNVQGQQQLPTGSILPVQKTANGLISANTGVSMPTVQRTGGTMIPQTSFGVSQQLTGGAMMTQPQNTGSAMMPQTSFNAVPQITGGAMMPQTSFNALPQVTGGAMMPLQRTGGALNTFNTGGAMIPQTSFSSQAQNTGGFRPQSQFGLTLQKTGGIAPLNQNQFTGGAMNTLSTGGVLQQQQPQTMNTFNTGGVMQELQMMTTFNTGGAMQQPQMMNTFNTDGIMQQPQMMNTFNTGGAMQQPQQQALQNQPTGFGFGNGPQQSRQANIFNATASNPFGF yak1_yeast Protein kinase YAK1 YAK1 YJL141C J0652 protein protein yeast Saccharomyces cerevisiae MNSSNNNDSSSSNSNMNNSLSPTLVTHSDASMGSGRASPDNSHMGRGIWNPSYVNQGSQRSPQQQHQNHHQQQQQQQQQQQQNSQFCFVNPWNEEKVTNSQQNLVYPPQYDDLNSNESLDAYRRRKSSLVVPPARAPAPNPFQYDSYPAYTSSNTSLAGNSSGQYPSGYQQQQQQVYQQGAIHPSQFGSRFVPSLYDRQDFQRRQSLAATNYSSNFSSLNSNTNQGTNSIPVMSPYRRLSAYPPSTSPPLQPPFKQLRRDEVQGQKLSIPQMQLCNSKNDLQPVLNATPKFRRASLNSKTISPLVSVTKSLITTYSLCSPEFTYQTSKNPKRVLTKPSEGKCNNGFDNINSDYILYVNDVLGVEQNRKYLVLDILGQGTFGQVVKCQNLLTKEILAVKVVKSRTEYLTQSITEAKILELLNQKIDPTNKHHFLRMYDSFVHKNHLCLVFELLSNNLYELLKQNKFHGLSIQLIRTFTTQILDSLCVLKESKLIHCDLKPENILLCAPDKPELKIIDFGSSCEEARTVYTYIQSRFYRAPEIILGIPYSTSIDMWSLGCIVAELFLGIPIFPGASEYNQLTRIIDTLGYPPSWMIDMGKNSGKFMKKLAPEESSSSTQKHRMKTIEEFCREYNIVEKPSKQYFKWRKLPDIIRNYRYPKSIQNSQELIDQEMQNRECLIHFLGGVLNLNPLERWTPQQAMLHPFITKQEFTGEWFPPGSSLPGPSEKHDDAKGQQSEYGSANDSSNNAGHNYVYNPSSATGGADSVDIGAISKRKENTSGDISNNFAVTHSVQEGPTSAFNKLHIVEE yaa4_yeast Hypothetical 23.8 kDa protein in SSA1-EFB1 intergenic region YAL004W protein protein yeast Saccharomyces cerevisiae MGVTSGGLNFKDTVFNEQQRDIESTTTQVENQDVFFLTLLVQTVSNGSGGRFVNNTQDIQTSNGTSILGSLSLRIVEVSWDSDDSVIDLGSQVRFGSFLHLTQDHGGDLFWGKVLGFTLKFNLNLRLTVNIDQLEWEVLHVSLHFWVVEVSTDQTLSVENGIRRIHSSLILSSITNQSFSVSESDKRWSGSVTLIVGNNVHTIISKVSNTRVCCT yg54_yeast Hypothetical 64.3 kDa protein in PFK1-TDS4 intergenic region YGR241C G8610 protein protein yeast Saccharomyces cerevisiae MSSLYTKLVKGATKIKMAPPKQKYVDPILSGTSSARGLQEITHALDIRLSDTAWTIVYKALIVLHLMIQQGEKDVTLRHYSHNLDVFQLRKISHTTKWSSNDMRALQRYDEYLKTRCEEYGRLGMDHLRDNYSSLKLGSKNQLSMDEELDHVESLEIQINALIRNKYSVSDLENHLLLYAFQLLVQDLLGLYNALNEGVITLLESFFELSIEHAKRTLDLYKDFVDMTEYVVRYLKIGKAVGLKIPVIKHITTKLINSLEEHLREETKRQRGEPSEPQQDRKPSTAISSTSSHNNNSNDKNKSIAQKKLEQIREQKRLLEQQLQNQQLLISPTVPQDAYNPFGSQQQDLNNDTFSFEPTQPQMTAQVPQPTANPFLIPQQQQQALQLTSASTMPQPSEIQITPNLNNQQTGMYASNLQYTPNFTGSGFGGYTTTENNAIMTGTLDPTKTGSNNPFSLENIAREQQQQNFQNSPNPFTLQQAQTTPILAHSQTGNPFQAQNVVTSPMGTYMTNPVAGQLQYASTGAQQQPQMMQGQQTGYVMVPTAFVPINQQQQQQQHQQENPNLIDI q04401_yeast D9719.16P ACN9 D9719.16 YDR511W protein protein yeast Saccharomyces cerevisiae MNNKLIYRSVRFATHNSQLLLPPLVLYRRILRQHKLLPGPQREMGDQYVRNEFKLHKDIDNPLHIVGFLASWQDYLHMISNGKWKDATLSSETLEKLSPEQTVQLYELMKETQKLHQDNEIESSKDVKRNNKD yen5_yeast Hypothetical 54.6 kDa protein in MEI4-SAP1 intergenic region YER045C protein protein yeast Saccharomyces cerevisiae MDYKHNFATSPDSFLDGRQNPLLYTDFLSSNKELIYKQPSGPGLVDSAYNFHHQNSLHDRSVQENLGPMFQPFGVDISHLPITNPPIFQSSLPAFDQPVYKRRISISNGQISQLGEDLETVENLYNCQPPILSSKAQQNPNPQQVANPSAAIYPSFSSNELQNVPQPHEQATVIPEAAPQTGSKNIYAAMTPYDSNIKLNIPAVAATCDIPSATPSIPSGDSTMNQAYINMQLRLQAQMQTKAWKNAQLNVHPCTPASNSSVSSSSSCQNINDHNIENQSVHSSISHGVNHHTVNNSCQNAELNISSSLPYESKCPDVNLTHANSKPQYKDATSALKNNINSEKDVHTAPFSSMHTTATFQIKQEARPQKIENNTAGLKDGAKAWKRARLLERNRIAASKCRQRKKMSQLQLQREFDQISKENTMMKKKIENYEKLVQKMKKISRLHMQECTINGGNNSYQSLQNKDSDVNGFLKMIEEMIRSSSLYDE yfj4_yeast Hypothetical 40.4 kDa protein in PES4-HIS2 intergenic region YFR024C protein protein yeast Saccharomyces cerevisiae MGINNPIPRSLKSETNFVKPNQVFGADQVIPPDVLKRAKGLAIITILKAGFLFSGRAGSGVIVARLKDGTWSAPSAIAMAGAGAGGMVGIELTDFVFILNTQDAVKSFSEFGTITLGGNVSVSAGPLGRSAEAAASASAGGVAAVFAYSKSKGLFAGVSVEGSAIIERREANRKFYGDNCTAKMILSGRIRPPPAVDPLFRVLESRAFNYRPSNGGRGSFDDDEDDYYDDDDYYNDIPSSFSSTDASSTRPNTRSTRRRAQSGSRYTFDDDDDDDDYGTGYSRNSRLAPTNSGGSGGKLDDPSGASSYYASHRRSGTAQSRARSSRNRWADDEYDDYDDDYESGYRRGNGRDRTKDREVDDLSNRFSKSRISSASTPQTSQGRFTAPTSPSTSSPKAVALYSFAGEESGDLPFRKGDVITILKKSDSQNDWWTGRVNGREGIFPANYVELV yhx7_yeast Hypothetical 51.9 kDa protein in CTR2-STB5 intergenic region YHR177W protein protein yeast Saccharomyces cerevisiae MDISPTCYGYIDDEQDLALVFQGVFNGNLRCIERRPYDAEKVELVNPGNIFVFNEEKSGIKRWTDGFSWSPSRISGKFLVYREYNRLGSTHDLPLHNVPEYNIFERAHRKYFYTGLLKKTFSLKFNMDPTDSTKLETFHLIAYYTEKDIHQGSLRRPSENPFFHKFRPSQKLLDALQKVAVGNGRSNPSKNNERGRTKAHNYKTRRSLSSSPSYCDLLSNYNNHPGNIPVRTAVQLPLTTFNNAPREMHQQQHRQQQQYLLPIDEQNKLPLPYMQHQPQPIGVYNPNYQPGLRRTVSQPMIFCNTYNTLPQQPTAAPYERRGVSPSVIYSSNTLSPIPYQNIDPYSSRSGPECNHSKAPIAPTMMPPVHHILVHDYRQPKPVTDSINPPNVNITTSTTNKNLDGIYILPAPRMNPPAQTQYQMIHAPDSMQHPPTFSKNNTSSNPKSHQYSK yim2_yeast Hypothetical 39.5 kDa protein in SIM1-RPI1 intergenic region YIL122W protein protein yeast Saccharomyces cerevisiae MKQEPHRQSEEKEKPKGPMAVEREQHTSLSSGTTVTASTGDESTNSRPVESSQTEKSLSLRIRILKQLGFDDIQELNACDTGLVEQFLNVRLINDTKELEKIRESNLAKLNQIIDKCMESDKISDSTLNKILDMSMNRDTNNDNNNHLTIPSPITTKKRKINASELASPRGHRRYRSDIPTVSEVETGVGYPQIHQQPGAYTLPMPANQWMSNPYMQPPQPQVQQIMPQYLYPPGMGPQAQLPTMSSNSESQTPVMSSQFLSLNQHGLYQQNIGAHPVMSMGPQANIYGQQHQLQPGQERDQSRKSFSHRRSQSANISMANFRSPMRNPQPASSQRPVNFLIHTPKHPPPT ysc84_yeast Protein YSC84 YHR016C YSC84 LSB4 protein protein yeast Saccharomyces cerevisiae MGINNPIPRSLKSETKKAAKVLRSFVKPNQVFGADQVIPPYVLKRAKGLAIITVLKAGFLFSGRAGSGVIVARLKDGTWSAPSAIAMAGAGAGGMVGVELTDFVFILNSEEAVRSFSEFGTITLGGNVSVSAGPLGRSAEAAASASTGGVSAVFAYSKSKGLFAGVSVEGSAILERREANRKFYGDNCTSKMILSGRVKVPPAADPLLRILESRAFNFTRHDHDDNASGDDFYDDGQYSDNTSHYYDDIPDSFDSTDESSTRPNTRSSRRRGMSLGSRSRYDDDYDDDGYGRGRGYGDFDSEDEDYDYGRSPNRNSSRNRGPQIDRGTKPRANTRWEDDLYDRDTEYSRPNHSGRDYDNTRGNRRGYGRERGYSLGHGPTHPSNMSNVDDLSHKMSKTGLGNESTATNSATPTAVALYNFAGEQPGDLAFKKGDVITILKKSDSQNDWWTGRTNGKEGIFPANYVRVS ku80_yeast Yeast Ku80 protein YKU80 HDF2 YMR106C YM9718.05C protein protein yeast Saccharomyces cerevisiae MSSESTTFIVDVSPSMMKNNNVSKSMAYLEYTLLNKSKKSRKTDWISCYLANCPVSENSQEIPNVFQIQSFLAPVTTTATIGFIKRLKQYCDQHSHDSSNEGLQSMIQCLLVVSLDIKQQFQARKILKQIVVFTDNLDDLDITDEEIDLLTEELSTRIILIDCGKDTQEERKKSNWLKLVEAIPNSRIYNMNELLVEITSPATSVVKPVRVFSGELRLGADILSTQTSNPSGSMQDENCLCIKVEAFPATKAVSGLNRKTAVEVEDSQKKERYVGVKSIIEYEIHNEGNKKNVSEDDQSGSSYIPVTISKDSVTKAYRYGADYVVLPSVLVDQTVYESFPGLDLRGFLNREALPRYFLTSESSFITADTRLGCQSDLMAFSALVDVMLENRKIAVARYVSKKDSEVNMCALCPVLIEHSNINSEKKFVKSLTLCRLPFAEDERVTDFPKLLDRTTTSGVPLKKETDGHQIDELMEQFVDSMDTDELPEIPLGNYYQPIGEVTTDTTLPLPSLNKDQEENKKDPLRIPTVFVYRQQQVLLEWIHQLMINDSREFEIPELPDSLKNKISPYTHKKFDSTKLVEVLGIKKVDKLKLDSELKTELEREKIPDLETLLKRGEQHSRGSPNNSNN lpcp_yeast CPA1 leader peptide YOR302W protein protein yeast Saccharomyces cerevisiae MFSLSNSQYTCQDYISDHIWKTSSH hmt1_yeast HNRNP arginine N-methyltransferase HMT1 ODP1 RMT1 YBR034C YBR0320 protein protein yeast Saccharomyces cerevisiae MSKTAVKDSATEKTKLSESEQHYFNSYDHYGIHEEMLQDTVRTLSYRNAIIQNKDLFKDKIVLDVGCGTGILSMFAAKHGAKHVIGVDMSSIIEMAKELVELNGFSDKITLLRGKLEDVHLPFPKVDIIISEWMGYFLLYESMMDTVLYARDHYLVEGGLIFPDKCSIHLAGLEDSQYKDEKLNYWQDVYGFDYSPFVPLVLHEPIVDTVERNNVNTTSDKLIEFDLNTVKISDLAFKSNFKLTAKRQDMINGIVTWFDIVFPAPKGKRPVEFSTGPHAPYTHWKQTIFYFPDDLDAETGDTIEGELVCSPNEKNNRDLNIKISYKFESNGIDGNSRSRKNEGSYLMH rs23_yeast 40S ribosomal protein S23 RPS23A RPS28A YGR118W G6178 RPS23B RPS28B YPR132W P9659.9 protein protein yeast Saccharomyces cerevisiae MGKGKPRGLNSARKLRVHRRNNRWAENNYKKRLLGTAFKSSPFGGSSHAKGIVLEKLGIESKQPNSAIRKCVRVQLIKNGKKVTAFVPNDGCLNFVDENDEVLLAGFGRKGKAKGDIPGVRFKVVKVSGVSLLALWKEKKEKPRS ymt8_yeast Hypothetical 36.4 kDa protein in NUP116-FAR3 intergenic region YMR048W YM9796.01 protein protein yeast Saccharomyces cerevisiae MDQDFDSLLLGFNDSDSVQKDPTVPNGLDGSVVDPTIADPTAITARKRRPQVKLTAEKLLSDKGLPYVLKNAHKRIRISSKKNSYDNLSNIIQFYQLWAHELFPKAKFKDFMKICQTVGKTDPVLREYRVSLFRDEMGMSFDVGTRETGQDLERQSPMVEEHVTSAEERPIVADSFAQDKRNVNNVDYDNDEDDDIYHLSYRNRRGRVLDERGNNETVLNNVVPPKEDLDALLKTFRVQGPVGLEENEKKLLLGWLDAHRKMEKGSMTEEDVQLIQSLEEWEMNDIEGQHTHYDLLPGGDEFGVDQDELDAMKEMGF hnt1_yeast Hit family protein 1 HNT1 HIT1 YDL125C protein protein yeast Saccharomyces cerevisiae MEPLISAPYLTTTKMSAPATLDAACIFCKIIKSEIPSFKLIETKYSYAFLDIQPTAEGHALIIPKYHGAKLHDIPDEFLTDAMPIAKRLAKAMKLDTYNVLQNNGKIAHQEVDHVHFHLIPKRDEKSGLIVGWPAQETDFDKLGKLHKELLAKLEGSD ptp3_yeast Tyrosine-protein phosphatase 3 PTP3 YER075C protein protein yeast Saccharomyces cerevisiae MKDSVDCPSILPTDRTSVLSETSTLVGSSSHVYSRHAPMNSYHNSMNSNIYHSPKASSPLVSYKTSSPVLLKRATAPVLPSFKPKEQRYNKPQGCSLITAVELGKIIETLPDEKVLLLDVRPFTEHAKSIITNSIHVCLPSTLLRRKNFTFSKLLDNLTPSEQSVLKSKLAIDNLRIIIYDSTANQTESSVSLPCYGIASKLIEFDTNVKKTVSILMCGFPQFKILFPDHINTNTFNSDCISSAEPKSPKTNLMNSLHNTAPHMTATTPLSSPQMNLKLKVPDDSRSDHSNFSSSPSPRNVLSDSPMSSSSPISALFKFQLPAPQTNINQMFKFSQNEEIMGLETYLSAVNIKEEHERWYNNDSAKKSLQNFQFPKNQNSLEKDTNKDKLGFQIRYENLSKNYEKEVIDSVIPEWFQHLMSIPKIELVSQFQKLDFLEKRRLNHSVSFRKKENSFILEKPSSYPEQLTSTSSSTIMPPKFPDVNKVQKRSHSQPIFTQYSKYKSMLSLESDSDSESDDVIISSGVELGAKNRYKDIFPYEHSRVILKKGLQSSKGIKHSHSTSDGGILDNYINANYLSLPRFSVEQNSSFQTTTTTTRRVRYIATQAPMPSTVHDFYTCILNNGVPLVLSLTNDFENGIEKCYRYWQEGNYNGIHVKLLEKKILKMPSTTSMRKNTMGTQNSSLYSAGVQGNSSNYSTDNDNDNDNNNNNNNNSNIPVTAAACDDDDDDDDDAILIRQILLTYHDQEKPYELLQIQVKNWPDLGTLLNPISILQAINVKNHIIDTLFARNYYQNDQLPTILVHCSAGCGRTGTLCTIDSILSNFEMFEMLQKEFVKLKYPAKLFDPISWTINIFRKERISMVQNINQFIFIYDCLLFYFRLRLDDITERTDGDGSNKDNISLSALIEQIEKLEILQTFVDDKLKELPQ rbx1_yeast RING-box protein HRT1 HRT1 RBX1 YOL133W protein protein yeast Saccharomyces cerevisiae MSNEVDRMDVDEDESQNIAQSSNQSAPVETKKKRFEIKKWTAVAFWSWDIAVDNCAICRNHIMEPCIECQPKAMTDTDNECVAAWGVCNHAFHLHCINKWIKTRDACPLDNQPWQLARCGR efg2_yeast Elongation factor G 2, mitochondrial precursor MEF2 YJL102W J0826 D819 protein protein yeast Saccharomyces cerevisiae MWKWNVRRWAGARVNISKNRLSVINVGSRYLSTARSPLSKVRNIGIIAHIDAGKTTTTERMLYYAGISKHIGDVDTGDTITDFLEQERSRGITIQSAAISFPWRNTFAINLIDTPGHIDFTFEVIRALKVIDSCVVILDAVAGVEAQTEKVWKQSKSKPKICFINKMDRMGASFNHTVNDLINKFMRGTTTKPVLVNIPYYRKQPTSNDYVFQGVIDVVNGKRLTWNPENPDEIIVDELDGTSLEQCNRCRESMIETLTEYDEDLVQHFLEEAEGDYSKVSAQFLNASIRKLTMKNMIVPVLCGASFKNIGVQPLLDAIVNYLPSPIEAELPELNDKTVPMKYDPKVGCLVNNNKNLCIALAFKVITDPIRGKQIFIRIYSGTLNSGNTVYNSTTGEKFKLGKLLIPHAGTSQPVNILTAGQIGLLTGSTVENNISTGDTLITHSSKKDGLKSLDKKKELTLKINSIFIPPPVFGVSIEPRTLSNKKSMEEALNTLITEDPSLSISQNDETGQTVLNGMGELHLEIAKDRLVNDLKADVEFGQLMVSYKETINSETNIETYESDDGYRFSLSLLPNSDALPNCLAYPLGVNENFLIMEKNGNWDKEWKYQVSFESILNSIIASCIVGLQRGGKIANFPLYACSIKINSDWSVPPDIETPQEILKITRNLIFKALNDLKPEKYNLLEPIMNLDLTIPQSDVGTVLQDLTGARKAQILSIEDESSVSNSGASTCNSPENSNRIYIPSDAVTTLHATKDKKNTQETSSNVKKIIKAKVPLREITTYTNKLRSLSQGRGEFNIEYSDMEKVTNDRLQSILHDL ybp2_yeast YAP1 binding protein 2 YBP2 YGL060W protein protein yeast Saccharomyces cerevisiae MYNEQVNSGKSIKEKERYLDALLKILKDNPVTLKEIGWDLPKGLLQFFSRKNINVNIHLVFSPLVSSVMECFNELAINGNPKECLLTACELVSTLHIVLTETGDSDEENEDLNDSNRNDASNITDELSVITPEIGHYMAKNTVEFIPNLKIYVLFEFMSLLLKRVDTLYPSKFLAMVTSAIIKYVTTNVQAMDDPHFILRIVYNFCTNYSPAQPSASLTDGISTNDLEKIHDDESALQKKLLANLSVFVISNCLKNHPGNIDKIYFKTLMHKKTDENEIDASVLQICHQYYEYVTSLDVHMKELLEKCLVESRSIYNSLLMNPAASTPEFKEEINQLVYEVSYAYQIKKLADEKNLELDQYGVVILSAIHYSKNGTHLLPQIDIQSAIYLYLRCTTASLFSEIYENKFLESSVRYWLWVSTTETSTEKIKCALQELPGHITTAFLQMLLMKTCNESNNDTKLTEITLLRRLLYLMPESTSFTFIFETLLHCPYITAKIAVLDILRDMMIRSPEAANRDETVGLIEQQNPGNTANSVPIMPTLPPRPYITINEDRMASIHSIALICFSAAKQKKRTQGDLLLVLTYMKFFVSLRNKWDLGLLTLINKEISESFQGEGEPELAFINISNNTLGEYIEEMNIRS yia1_yeast Hypothetical 59.7 kDa protein in BET1-PAN1 intergenic region YIL001W YIA1W protein protein yeast Saccharomyces cerevisiae MADKLMDKNFEELCYSCRTGDMDNVDRLISTGVNVNSVDKFDNSPLFLASLCGHEAVVKLLLQRGAVCDRDRYEGARCIYGALTDTIRDTLLSYDISKAVDVKQPFATHISSMYNDEGFLKRDITFRVSNGKLFTAHKFLLCARSEILAEKMVNEWAKHEIVSLEVRPDIFDIFLKFLYLIPILHQIEPGQYEELIELSSKFDIELLPEFLDKARHTADPTEKSRLMSDYQYKFTEVARSQLLIFVNNCIFRSTVDLANSERRVFSLMNCPAYPDVQLMVKNRNGAIRIYPCHLAVLSRAEYFKVMFTNNFKEKVTYIKAKHVTGKYNSIIPQLTLPNCEFEVAEIILRYLYADNTDIPWMYAVDVLLLADILLEDRLKTIASTIITQSKEFIQQYNVFDVLYLSWEIGVERLEQFAAKFIAIHLQELYKDPEIKRAIMLSSQRISLRQETDTIELVDDIRYYLLRKYSFEPDDVELFENQDDLEYLKQVGYLEYRKDMGMLDNILADLELDV hsl7_yeast Protein arginine N-methyltransferase HSL7 HSL7 YBR133C YBR1008 protein protein yeast Saccharomyces cerevisiae MHSNVFVGVKPGFNHKQHSKKSRFLENVSSHSPELPSNYDYVLLPITTPRYKEIVGQVFKDFQRQSIQNWKPLQIPEPQLQDICIPPFNVKKLDNDDTPSYIGLLSSWLELESRDPNVRDLGLKVLLNECKYARFVGINKLILAPPRDLSNLQLYGQMIYRLLQNRIVFAAPALTISISLPLYEDSDPLATWELWNTVRKQCEYHPSLTISLALPRTRTPSYVLNRWLAEPVSCLLVSSSIFASNQYDYPVLHKFNQNLILKFQKVNGDSQILGNELCVILHGMEKYANNVKGGESAYLEYINYLLKKGDKVLNSNSNHQFLLQEDSRIMPPLKPHSDNLLNSTYLTFEKDLVKYDLYESAILEALQDLAPRASAKRPLVILVAGAGRGPLVDRTFKIISMLFMDSKVSIIAIEKNPQAYLYLQKRNFDCWDNRVKLIKEDMTKWQINEPSEKRIQIDLCISELLGSFGCNELSPECLWSIEKYHSHNDTIFIPRSYSSYIAPISSPLFYQKLSQTNRSLEAPWIVHRVPYCILSSRVNEVWRFEHPMAQKDTVQDEDDFTVEFSQSSLNEFKIKHRGEIHGFIGFFSANLYNNIFLSTLPNDSTVRLKFSEETLMNTRREENLIKKCDHTPNMTSWSPIIFPLKQPISFIDDSELSVLMSRIHSDTEQKVWYEWSLESFIYLMLSNYTSAVTAASMTIPRSIVTDDTKTLAHNRHYSATTNQKLDNQIDLDQDIENEEEQGFLSNLETGWQSVQDIHGLSETAKPDHLDSINKPMFDLKSTKALEPSNELPRHEDLEEDVPEVHVRVKTSVSTLHNVCGRAFSLPL cox4_yeast Cytochrome c oxidase polypeptide IV, mitochondrial precursor COX4 YGL187C G1362 protein protein yeast Saccharomyces cerevisiae MLSLRQSIRFFKPATRTLCSSRYLLQQKPVVKTAQNLAEVNGPETLIGPGAKEGTVPTDLDQETGLARLELLGKLEGIDVFDTKPLDSSRKGTMKDPIIIESYDDYRYVGCTGSPAGSHTIMWLKPTVNEVARCWECGSVYKLNPVGVPNDDHHH q6q5k6_yeast YML058W-A HUG1 protein protein yeast Saccharomyces cerevisiae MTMDQGLNPKQFFLDDVVLQDTLCSMSNRVNKSVKTGYLFPKDHVPSANIIAVERRGGLSDIGKNTSN tup1_yeast Glucose repression regulatory protein TUP1 TUP1 AAR1 AER2 AMM1 CYC9 FLK1 SFL2 UMR7 YCR084C YCR84C protein protein yeast Saccharomyces cerevisiae MTASVSNTQNKLNELLDAIRQEFLQVSQEANTYRLQNQKDYDFKMNQQLAEMQQIRNTVYELELTHRKMKDAYEEEIKHLKLGLEQRDHQIASLTVQQQRQQQQQQQVQQHLQQQQQQLAAASASVPVAQQPPATTSATATPAANTTTGSPSAFPVQASRPNLVGSQLPTTTLPVVSSNAQQQLPQQQLQQQQLQQQQPPPQVSVAPLSNTAINGSPTSKETTTLPSVKAPESTLKETEPENNNTSKINDTGSATTATTTTATETEIKPKEEDATPASLHQDHYLVPYNQRANHSKPIPPFLLDLDSQSVPDALKKQTNDYYILYNPALPREIDVELHKSLDHTSVVCCVKFSNDGEYLATGCNKTTQVYRVSDGSLVARLSDDSAANNHRNSITENNTTTSTDNNTMTTTTTTTITTTAMTSAAELAKDVENLNTSSSPSSDLYIRSVCFSPDGKFLATGAEDRLIRIWDIENRKIVMILQGHEQDIYSLDYFPSGDKLVSGSGDRTVRIWDLRTGQCSLTLSIEDGVTTVAVSPGDGKYIAAGSLDRAVRVWDSETGFLVERLDSENESGTGHKDSVYSVVFTRDGQSVVSGSLDRSVKLWNLQNANNKSDSKTPNSGTCEVTYIGHKDFVLSVATTQNDEYILSGSKDRGVLFWDKKSGNPLLMLQGHRNSVISVAVANGSPLGPEYNVFATGSGDCKARIWKYKKIAPN ynk6_yeast Hypothetical 133.3 kDa protein in CYB5-LEU4 intergenic region YNL106C N2160 protein protein yeast Saccharomyces cerevisiae MKILLSKQQTRKIAIVSETHGLVFRPINSKNSRRSTCAVELVPKAELNGNGFRRLSNHEIYGFIGLIEIEGLMFIATITGKSKVAQPIPNKTVNKIYAVDFFCLNNSKWDFMDIDSSGYPIVTNDGDFAISSPPSISTHSSRSSLRSSSSRSLNAQEQAPKHPCHELRKLLSNGSFYYSTDFDLTCTLQKRGFTEHSLSFDDFDREFMWNSFLMDEIITYRDRLDVTAKELLDQRGFLTTVIRGFAETIFSYINRLKVGLTIISRQSWKRAGTRFNARGIDDDGHVANFVETEMIMYSSQYCYAFTQIRGSLPIFWEQDTSLISPKIQITRSVEATQPTFDEHFIRLFKKYGPVHIINLLSTKSSEIQLSRRYKEQLKNSEKMKIGRDVFLTSFDFHRETSQDGFAAASRIIPKIRNTILDAGYFSYDVKEGRLISEQDGVFRTNCLDCLDRTNLIQQTISLAVFKLFLEDFRLVKPSSFIDDNEFVQKVNALWADNGDQISQIYTGTNALKSSYSRKGKMSFSGALSDATKSVSRMYINNFVDKGKQQNIDTLLGKLPHQQVVELYDPICEYVNERLLESEEKFTTHSNINLFVGTFNVNGNSRRADLSKWLFPIGDKFKPDVVVLGLQEVIELTAGSILNADYTKSSFWETMVTDCLNQYEEKYLLLRVEQMSSLLILFFARSDRAYNIKEVGGSTKKTGFGGITGNKGAVAIRFDYGATSFCFVNTHLSAGASNIDERRNDYNNIYRNITFPRSKTIPHHDSLFWLGDLNYRITLTNDEVRRELRAQKDGYIDRLLQYDQLTQEINEGVVFQGFKEPTLQFRPTYKYDYGTDNYDTSEKARTPSWTDRIIYKGENLHPLAYSDAPLKISDHKPVYAAYRANVKFVDEKEKLNLVEKLYAEYKNTHPEALTTGPDELSHARMEKQKESIPLDATVQSAGIKLIDLDDTSSCVSPLLSGPSPQPSVVGPGGLSNVSPDKSKLNVLPPPPPTSRHNKEPSSKLLSPTKEISIVSVSPRKGESNLPALERHSTPKPLPPVPALSLSKPVSLQKSSSELQHAKETIDNGKIVPRPCPPIRRKSSTAPDEISTSTKNSGVSTTEDPEPAKASTKPEKPPVVKKPHYLSVAANKLNTSQEHSIKVSPSNSKSEEELPCKKKSKPKVPAKNPELEKLSVHPLKPCDPN ptp1_yeast Tyrosine-protein phosphatase 1 PTP1 YDL230W protein protein yeast Saccharomyces cerevisiae MAAAPWYIRQRDTDLLGKFKFIQNQEDGRLREATNGTVNSRWSLGVSIEPRNDARNRYVNIMPYERNRVHLKTLSGNDYINASYVKVNVPGQSIEPGYYIATQGPTRKTWDQFWQMCYHNCPLDNIVIVMVTPLVEYNREKCYQYWPRGGVDDTVRIASKWESPGGANDMTQFPSDLKIEFVNVHKVKDYYTVTDIKLTPTDPLVGPVKTVHHFYFDLWKDMNKPEEVVPIMELCAHSHSLNSRGNPIIVHCSAGVGRTGTFIALDHLMHDTLDFKNITERSRHSDRATEEYTRDLIEQIVLQLRSQRMKMVQTKDQFLFIYHAAKYLNSLSVNQ yet4_yeast Hypothetical 24.4 kDa protein in SSA4-NUP157 intergenic region YER104W protein protein yeast Saccharomyces cerevisiae MYSNHNLNSDDCCFDWNEEKAAELQRTGVSFDRSLTPQSLRTSTRRLSEENKQQSGTMHIDTSPSVVSDIISSRRDRSQDFFGPHSSSPIAPSERQRADQRSRLESMRLTRRRDKMTKVRGGLEKMEEMIMQGEHLREMQRLKQEAQKNALPSDMAEYMEWQNNEDLEDDELLAFIEKQETYKNELEHFLNNANKNVYENNSYPNSHT vps4_yeast Vacuolar protein sorting-associated protein VPS4 VPS4 CSC1 END13 GRD13 VPL4 VPT10 YPR173C P9705.10 DID6 protein protein yeast Saccharomyces cerevisiae MSTGDFLTKGIELVQKAIDLDTATQYEEAYTAYYNGLDYLMLALKYEKNPKSKDLIRAKFTEYLNRAEQLKKHLESEEANAAKKSPSAGSGSNGGNKKISQEEGEDNGGEDNKKLRGALSSAILSEKPNVKWEDVAGLEGAKEALKEAVILPVKFPHLFKGNRKPTSGILLYGPPGTGKSYLAKAVATEANSTFFSVSSSDLVSKWMGESEKLVKQLFAMARENKPSIIFIDEVDALTGTRGEGESEASRRIKTELLVQMNGVGNDSQGVLVLGATNIPWQLDSAIRRRFERRIYIPLPDLAARTTMFEINVGDTPCVLTKEDYRTLGAMTEGYSGSDIAVVVKDALMQPIRKIQSATHFKDVSTEDDETRKLTPCSPGDDGAIEMSWTDIEADELKEPDLTIKDFLKAIKSTRPTVNEDDLLKQEQFTRDFGQEGN mlc2_yeast Myosin light chain 2 MLC2 YPR188C P9677.10 protein protein yeast Saccharomyces cerevisiae MDHSESLTFNQLTQDYINKLKDAFQMLDEDEDGLISRGDLTKIYATLGKTLTDEEWSKMVPDNDTSTAEVGEEGVSFPIFLSIMGKNLSQFPEREELEESLKAIGRGHDLNVPLNEVIDSLKEAGFENPEEEFAKLFKLFTTNQQATEERTFRGKLFLDSITD q08227_yeast S.cerevisiae chromosome XV reading frame ORF YOL065c INP54 protein protein yeast Saccharomyces cerevisiae MNKTNWKVSVTTFNCGKEFPVENSKAIVKQLLFPYDDGISQLELQDLYVLGFQEVVPIWQGSFPAVNRDLIDRITTTAVNCLNEKVSATQGDEQYSCLGVNSLGAITIIVLYNNNALKVKDDILKRNGKCGWFGTHLKGGTLISFQMTRNGEENWERFSYICAHLNANEGVNNRNQRIDDYKRIMSEVCDSEVAKSDHFFFLGDLNFRVTSTYDPTTNYSSTTTLRRLLENHEELNLLRKGEDEPLCKGFQELKITFPPTYKFKLFEKETYNTKRIPSWCDRILYKSYAVPTFAQEGTYHSVPRSNALLFSDHQPVNLTVRLPRSTGTPVPLSLHIEKYPLSWSSGLIGQIGDAVIGYCGWLVTKNVHYWILGSLLLYLLLKIL nup53_yeast Nucleoporin NUP53 NUP53 YMR153W YM8520.02 protein protein yeast Saccharomyces cerevisiae MADLQKQENSSRFTNVSVIAPESQGQHEQQKQQEQLEQQKQPTGLLKGLNGFPSAPQPLFMEDPPSTVSGELNDNPAWFNNPRKRAIPNSIIKRSNGQSLSPVRSDSADVPAFSNSNGFNNVTFGSKKDPRILKNVSPNDNNSANNNAHSSDLGTVVFDSNEAPPKTSLADWQKEDGIFSSKTDNIEDPNLSSNITFDGKPTATPSPFRPLEKTSRILNFFDKNTKTTPNTASSEASAGSKEGASTNWDDHAIIIFGYPETIANSIILHFANFGEILEDFRVIKDFKKLNSKNMSKSPSLTAQKYPIYTGDGWVKLTYKSELSKSRALQENGIIMNGTLIGCVSYSPAALKQLASLKKSEEIINNKTSSQTSLSSKDLSNYRKTEGIFEKAKAKAVTSKVRNAEFKVSKNSTSFKNPRRLEIKDGRSLFLRNRGKIHSGVLSSIESDLKKREQASKSKKSWLNRLNNWLFGWNDL pho86_yeast Inorganic phosphate transporter PHO86 PHO86 YJL117W J0744 protein protein yeast Saccharomyces cerevisiae MAVQQRKKKEGRKSDKNAPSVPQVDASLDKPLDIDAPPTIYSVNLKPEYGTAALNLSADFIRQEQALANKYLFFHPVILVVLTIGLLIYLTPRIVFPIRNTGSVAGWFYQLARINKKVVLSGLVFTAIGASFLFTLLSRVSDSYFKSKINQLVGSKGEKVFGINLNDLVARHETKDPVVNNTHIIVYRETPIALISLAPNMTLSTDENLVMSVTTVGCRRVYVKSGIIEDLIDWAMLHSKNIRSSGKYGETMKLLIDVYSFDSTLKEILKKKGFTYIQSIRVSENRLLGGLFGVKKELWGLQFHFKAEHKD spc1_yeast Microsomal signal peptidase subunit 1 SPC1 YJR010C-A YJR010BW protein protein yeast Saccharomyces cerevisiae MSEILQDVQRKLVFPIDFPSQRKTEKFQQLSLMIGALVACILGFAQQSLKVLLTAYGISCVITLICVLPAYPWYNKQKLRWAQPKIEINVDQYD ipl1_yeast Spindle assembly checkpoint kinase IPL1 YPL209C protein protein yeast Saccharomyces cerevisiae MQRNSLVNIKLNANSPSKKTTTRPNTSRINKPWRISHSPQQRNPNSKIPSPVREKLNRLPVNNKKFLDMESSKIPSPIRKATSSKMIHENKKLPKFKSLSLDDFELGKKLGKGKFGKVYCVRHRSTGYICALKVMEKEEIIKYNLQKQFRREVEIQTSLNHPNLTKSYGYFHDEKRVYLLMEYLVNGEMYKLLRLHGPFNDILASDYIYQIANALDYMHKKNIIHRDIKPENILIGFNNVIKLTDFGWSIINPPENRRKTVCGTIDYLSPEMVESREYDHTIDAWALGVLAFELLTGAPPFEEEMKDTTYKRIAALDIKMPSNISQDAQDLILKLLKYDPKDRMRLGDVKMHPWILRNKPFWENKRL q12405_yeast S.cerevisiae chromosome XV reading frame ORF YOR084w YOR3120w YOR084W protein protein yeast Saccharomyces cerevisiae MEQNRFKKETKTCSASWPRAPQSTLCATDRLELTYDVYTSAERQRRSRTATRLNLVFLHGSGMSKVVWEYYLPRLVAADAEGNYAIDKVLLIDQVNHGDSAVRNRGRLGTNFNWIDGARDVLKIATCELGSIDSHPALNVVIGHSMGGFQALACDVLQPNLFHLLILIEPVVITRKAIGAGRPGLPPDSPQIPENLYNSLRLKTCDHFANESEYVKYMRNGSFFTNAHSQILQNIIDFERTKASGDDEDGGPVRTKMEQAQNLLCYMNMQTFAPFLISNVKFVRKRTIHIVGARSNWCPPQNQLFLQKTLQNYHLDVIPGGSHLVNVEAPDLVIERINHHIHEFVLTSPLQSSHIPQLTLEERAVMFDRAFDSFKNEALVKTTKQKL iqg1_yeast Ras GTPase-activating-like protein IQG1 IQG1 CYK1 YPL242C protein protein yeast Saccharomyces cerevisiae MTAYSGSPSKPGNNNSYLNRYVENLGTNVTPPLRPQSSSKINSSLNIASPSHLKTKTSASNSSATILSKKVESSVSKLKPSLPNKLVGKYTVDLSNYSKIELRYYEFLCRVSEVKIWIEAVIEEALPSEIELCVGDSLRNGVFLAKLTQRINPDLTTVIFPAGDKLQFKHTQNINAFFGLVEHVGVPDSFRFELQDLYNKKNIPQVFETLHILISMINKKWPGKTPALTNVSGQISFTKEEIAACKKAWPRIRDFKSLGTNINTAPASPEEPKEKRSGLIKDFNKFERPNIPVEEILITPRKNITDANCSDFSNTPSPYNEAPKMSNLDVVVEKRKFTPIEPSLLGPTPSLEYSPIKNKSLSYYSPTISKYLTYDTEFYTRRSRAREEDLNYYQTFKYSPSHYSPMRRERMTEEQFLEKVVQLQNICRGVNTRFNLYIQKRLLNLFEQDILRFQACLRGNKFRVLSSMYLPIRRAKIDVPHVEAIQSRIKGSRIRYKYDKLKFTLSRFSCTVELLQAYCRSKLLKTTVNTKLNDIEISHYPLTKLQSYMRASYVRKKVMSLNTKLNDERESIMKFSAIIRGNVVRCSEDAILSAVHDVHKENISKLQSLIRGIFTRSCLASIIYSLGKENCNIIQLSACIRGNAVRHKVQSLFAPENNLSETVHDLQGLVRGILVRYTLDLVDDIVEYNNLALFQAFSRGALVRESLDQKSSFYKRNVRSVIMIQSWIRKSLQRSAYLELLDCPNPSLWAVKKFVHLLNGTATIEEVQNQLESCQASLDSENMKKERLLKSIRQQLNINGVLDKFGLLKDKDHELGISDSTIPKSKYQKYEKLFYMLQVDPSYWKLLYLKEPEFVAKNVYMTFGTVNQRMNDRERSYFTRFVCEMLQNAINEAPSIESFLDNRSQFWQTILQDFLRRESPEFFSIIVPVLDYLSDPVVDFESDPYKIYQEIHGFSSPQHCSPVDDASTKNKFIDNLRCLWHAIEMVAEIYTRKVHTIPVEIRYLCTKIFCYAADKNIEEIDSLRAISSILVNVFVSEYLVNREYYGYKDSNVQKNNQKIDILMKSLATVFEIKNFDGFLDPLNQYANEIKPHIKDVLYNVLVDPEYEQEGDRLIYLDMVSPSPKLELLTEKVLEISGKFEEYLNEFPEADILHDILEKNLDNSSFPRSGRVTLELDASAYRFLVSDDKMRKIYDQVKRAFVYMMQIEDVDTNLYDLSISTILPQDEPNFANFLEQNPKIRDDPMIQKLKPLKYFTLKNVTLKKIHELESTGTFCSSDNKLQNFLNDIANTIKNPNYAIDYVTQEIYITKETLTKISEMNHSLDIELSRLKKHVDHTIKDFQKAKDFSPVHKSKFGNFKNAVKKVQGRERSELQGMKFKWNTKQLYERGVLKTIRGEKLAELTVKVFGSSGPKFPDIIFKISTSDGSRFGIQMIDKRKGPDKRYSDDVDSFSFKDLIKTQVEPKIETWKLFHSNVVVNNSQLLHLIVSFFYKRNAL o13564_yeast Ylr428cp YLR428C protein protein yeast Saccharomyces cerevisiae MTANAPPPEAFQFTAINLPFVFSKLESHALLVTLSFSYCSSFLAAWPKTCLYLEARTNFPLILRPSKWSVSFIPFSLYSFDIRVHESTLFSSRVKIISPKFYLRSKVKNHAQRH yno6_yeast Hypothetical 11.9 kDa protein in RPC8-MFA2 intergenic region YNL146W N1203 N1785 protein protein yeast Saccharomyces cerevisiae MSNTKHTTSHHMELKRIIILTLLFILIMLIFRNSVSFKMTFQELLPRFYKKNSNSVSNNNRPSSIFSENLVDFDDVNMVDKTRLFIFLFFSFIITIPFMV imb2_yeast Importin beta-2 subunit KAP104 YBR017C YBR0224 protein protein yeast Saccharomyces cerevisiae MASTWKPAEDYVLQLATLLQNCMSPNPEIRNNAMEAMENFQLQPEFLNYLCYILIEGESDDVLKQHYSLQDLQNNRATAGMLLKNSMLGGNNLIKSNSHDLGYVKSNIIHGLYNSNNNLVSNVTGIVITTLFSTYYRQHRDDPTGLQMLYQLLELTSNGNEPSIKALSKIMEDSAQFFQLEWSGNTKPMEALLDSFFRFISNPNFSPVIRSESVKCINTVIPLQTQSFIVRLDKFLEIIFQLAQNDENDLVRAQICISFSFLLEFRPDKLVSHLDGIVQFMLHLITTVNEEKVAIEACEFLHAFATSPNIPEHILQPYVKDIVPILLSKMVYNEESIVLLEASNDDDAFLEDKDEDIKPIAPRIVKKKEAGNGEDADDNEDDDDDDDDEDGDVDTQWNLRKCSAATLDVMTNILPHQVMDIAFPFLREHLGSDRWFIREATILALGAMAEGGMKYFNDGLPALIPFLVEQLNDKWAPVRKMTCWTLSRFSPWILQDHTEFLIPVLEPIINTLMDKKKDVQEAAISSVAVFIENADSELVETLFYSQLLTSFDKCLKYYKKKNLIILYDAIGRFAEKCALDETAMQIILPPLIEKWALLSDSDKELWPLLECLSCVASSLGERFMPMAPEVYNRAFRILCHCVELEAKSHQDPTIVVPEKDFIITSLDLIDGLVQGLGAHSQDLLFPQGTKDLTILKIMLECLQDPVHEVRQSCFALLGDIVYFFNSELVIGNLEDFLKLIGTEIMHNDDSDGTPAVINAIWALGLISERIDLNTYIIDMSRIILDLFTTNTQIVDSSVMENLSVTIGKMGLTHPEVFSSGAFANDSNWNKWCLSVNALDDVEEKSSAYMGFLKIINLTSTEVTMSNDTIHKIVTGLSSNVEANVFAQEIYTFLMNHSAQISAINFTPDEISFLQQFTS prp45_yeast Pre-mRNA splicing factor PRP45 YAL032C PRP45 FUN20 protein protein yeast Saccharomyces cerevisiae MFSNRLPPPKHSQGRVSTALSSDRVEPAILTDQIAKNVKLDDFIPKRQSNFELSVPLPTKAEIQECTARTKSYIQRLVNAKLANSNNRASSRYVTETHQAPANLLLNNSHHIEVVSKQMDPLLPRFVGKKARKVVAPTENDEVVPVLHMDGSNDRGEADPNEWKIPAAVSNWKNPNGYTVALERRVGKALDNENNTINDGFMKLSEALENADKKARQEIRSKMELKRLAMEQEMLAKESKLKELSQRARYHNGTPQTGAIVKPKKQTSTVARLKELAYSQGRDVSEKIILGAAKRSEQPDLQYDSRFFTRGANASAKRHEDQVYDNPLFVQQDIESIYKTNYEKLDEAVNVKSEGASGSHGPIQFTKAESDDKSDNYGA kss1_yeast Mitogen-activated protein kinase KSS1 KSS1 YGR040W protein protein yeast Saccharomyces cerevisiae MARTITFDIPSQYKLVDLIGEGAYGTVCSAIHKPSGIKVAIKKIQPFSKKLFVTRTIREIKLLRYFHEHENIISILDKVRPVSIDKLNAVYLVEELMETDLQKVINNQNSGFSTLSDDHVQYFTYQILRALKSIHSAQVIHRDIKPSNLLLNSNCDLKVCDFGLARCLASSSDSRETLVGFMTEYVATRWYRAPEIMLTFQEYTTAMDIWSCGCILAEMVSGKPLFPGRDYHHQLWLILEVLGTPSFEDFNQIKSKRAKEYIANLPMRPPLPWETVWSKTDLNPDMIDLLDKMLQFNPDKRISAAEALRHPYLAMYHDPSDEPEYPPLNLDDEFWKLDNKIMRPEEEEEVPIEMLKDMLYDELMKTME argr2_yeast Arginine metabolism regulation protein II ARGR2 ARG81 YML099C protein protein yeast Saccharomyces cerevisiae MGISSKNGPKKMGRAKTFTGCWTCRGRKVKCDLRHPHCQRCEKSNLPCGGYDIKLRWSKPMQFDPYGVPIPQNSPATTTNLSGSVDEPQYQRRNIDFVRYDEEYVYHEDMDDELTMLHTPPIEKISDNKTWIIKKFGVFKGTDKIDKQYAPRKKRNRKRVAKSLESSASISLSSLPSSSTISFPIRHIEDKLRNKGHVKTGILSANDGVPPTPNLLDYDWNNLNITGYEWISSELRDDALLSAVTLQGHHLGHTQPQEISLEENSNVVSGEEHVNAKEHGCAFEADNQGSSTLPNKAASANDKLYQQNLKLLFQKNSSNSEEPDPQALIDDVFVNIEPRSLPASDLNKITLAPPNEESRMPKSMLELTSYSSDLPPELVDIIPKTDLTVHGLARFLLNHYFNNVADKMTVVVLEKNPWKTLYFPRALMALGDLAGLGQSSNSRNALLNALLAVSCFHLQSKYPRNYKLQKYFLGLGIELRNQASNFLRLCLNTKSSIPEKYKDVLTAILSMNSIDVVWGTMADCQDHLALCEDFVESRMKLRPNISEKTKTLHRIFSFLKLIQDSTALDKVRAKEIVILPSEEDDNYKPLDTSNATTSSSEPRVDVVQEGLFREALNENDGKIHIEFVKEPITNVSADSTPSSTTPPIFTNIATESYYNKSDISKLVSKTDENIIGTDSLYGLPNSLILLFSDCVRIVRHNEYYNLTYLPVPRKFNELSLNFEKRLLKWKSEWNFHQENSEGKSFINSTAEALYHHTMSFYFSLIIYYFTMARSLNCQFLQNYVAKVLDHLNAMEELVDQKKVKIVPLIWQGFMAGCACTDENRQQEFRRWAAKLAESGVGSYWGARQVMLEVWRRRKEDEPGDNWYSVYKDWEMNLMLS las17_yeast Proline-rich protein LAS17 LAS17 YOR181W protein protein yeast Saccharomyces cerevisiae MGLLNSSDKEIIKRALPKASNKIIDVTVARLYIAYPDKNEWQYTGLSGALALVDDLVGNTFFLKLVDINGHRGVIWDQELYVNFEYYQDRTFFHTFEMEECFAGLLFVDINEASHFLKRVQKRERYANRKTLLNKNAVALTKKVREEQKSQVVHGPRGESLIDNQRKRYNYEDVDTIPTTKHKAPPPPPPTAETFDSDQTSSFSDINSTTASAPTTPAPALPPASPEVRKEETHPKHSLPPLPNQFAPLPDPPQHNSPPQNNAPSQPQSNPFPFPIPEIPSTQSATNPFPFPVPQQQFNQAPSMGIPQQNRPLPQLPNRNNRPVPPPPPMRTTTEGSGVRLPAPPPPPRRGPAPPPPPHRHVTSNTLNSAGGNSLLPQATGRRGPAPPPPPRASRPTPNVTMQQNPQQYNNSNRPFGYQTNSNMSSPPPPPVTTFNTLTPQMTAATGQPAVPLPQNTQAPSQATNVPVAPPPPPASLGQSQIPQSAPSAPIPPTLPSTTSAAPPPPPAFLTQQPQSGGAPAPPPPPQMPATSTSGGGSFAETTGDAGRDALLASIRGAGGIGALRKVDKSQLDKPSVLLQEARGESASPPAAAGNGGTPGGPPASLADALAAALNKRKTKVGAHDDMDNGDDW yht3_yeast Hypothetical 32.2 kDa protein in ACT5-YCK1 intergenic region YHR133C protein protein yeast Saccharomyces cerevisiae MGKKKSKNQLNTGGVPNGVHNTKKEAALPPLGNKLGSASFTAINTLTKPALFSFYDDDITKNEGNVYDKALLSNASQLEMVPPSATARHERSLYAKIINTIAAFFILFIAGILFPMISECLFDNDQLAKGDIVSFLKHGIEIKNKIVAEPDMVPDWAVFGTEGVIFGSIVPFIDSFVRYQHQPKTRSSVYKNTLGSFIRCANTLLGLIFGIRKLEWSSSLQAAGAWSLLNIVLWLFFDGTLTVFFPGLVIGALSAFTCSQCFSQLSLALYFIDFYFFGFLMFSKLGRYLFN yjp1_yeast Hypothetical UPF0057 protein YJL151c YJL151C J0630 protein protein yeast Saccharomyces cerevisiae MDRDHINDHDHRMSYSINKDDLLLMVLAVFIPPVAVWKRKGMFNRDTLLNLLLFLLLFFPAIIHACYVVYETSSERSYDLSRRHATAPAVDRDLEAHPAEESQAQPPAYDEDDEAGADVPLMDNKQQLSSGRT q12270_yeast S.cerevisiae chromosome XVI reading frame ORF YPL246c RBD2 protein protein yeast Saccharomyces cerevisiae MNWKSYVFPGGHPPAALTTGLVVFLTAIYLLSFIFALREDLSLAPESLFKLQMSRLSLYPLIHLSLPHLLFNVLAIWAPLNLFEETHGTVYTGVFLNLSALFAGILYCLLGKLLYPEALVAGASGWCFTLFAYYSFKESQIRPRTRIFRTDYSIPTLYTPLVLLVAIAVVIPGSSFWGHFFGLCVGYAIGYKESWFNKITPPGWIITKIEKSLDGLIRLIPWGIKYYRDEDIDRTKDYEPLMSTETPLPLHNDNSGTVLGTA mec3_yeast Checkpoint protein MEC3 MEC3 PIP3 YLR288C L8003.15 protein protein yeast Saccharomyces cerevisiae MKLKLIVNGCEAPDDYKLLRTTINTVASLRKTAILRFNSERLTIISTPKSSLNSSNNGTILRGDTGQLWCTIPHDVFRLYTVISARELNTITMECNCDSLLSVFKRYDRVMNQGSSSNMTIKLQSMPEWNTNNGTLSGGTAGGVDTTSKPNPICALGITFEEIVHTSGPNDAIVMNGGVDEHNGLPTTVGTGNLLASNKVIMHSFKVPVKLLFRAQDTRIQEPMINYIQLMMYKLPPISGEFGSAFHGFIRRVERYSNVNHIHLMGVKKKEHGNEGDDVELKIIVNELDWHLEICWNGPLDSVIQRQEGLTDNPSQNQHIDTDGRQEEGSLPIIEADKPMSSLYTNTRDREMEENIRYDEDLLRIEDSSIADTRGNIYTADTSGDTEFNDISVMVEKAEQESSSTHEVIIRCKDWKVCSKLYAAFEEVVLAISHDESCVFHCSLDRGSLEDSEDVEKPRERGQIIYYIARSKGL atg16_yeast Autophagy-related protein 16 YMR159C YM8520.08C ATG16 APG15 APG16 CVT11 SAP18 protein protein yeast Saccharomyces cerevisiae MGNFIITERKKAKEERSNPQTDSMDDLLIRRLTDRNDKEAHLNELFQDNSGAIGGNIVSHDDALLNTLAILQKELKSKEQEIRRLKEVIALKNKNTERLNDELISGTIENNVLQQKLSDLKKEHSQLVARWLKKTEKETEAMNSEIDGTK rad17_yeast DNA damage checkpoint control protein RAD17 RAD17 YOR368W protein protein yeast Saccharomyces cerevisiae MRINSELANKFSASTVHLEHITTALSCLTPFGSKDDVLIFIDADGLSFVRENNHVIKIQLLLSRELFMSYSYRNETEDHMKLCVKINHILDSVSVMNRNSDDIVECTLSYDGHGSPFVLIFEDSFISERVEYSTYLIKDFDTNGLELDRERISFEAIIKGEALHSALKDLKEIGCKECYVYAKTEANDENVFALISKSQLGFSKIKLPSNRSILEKLQVFDGDSTTVIDGFAVIGFFDFTSFDKIRKSTKIASKVLFRMDVHGVLSVNILSQTDDVIITDTTRPSNNRPGSIRQLQLPKDYPGIVIEVCMLEKESIDEAAQTEIELLMETNELGNRNSFKKSTIRKRYGTDKGNETSNDNLLQLNGKKIKLPSEEENNKNRESEDEENHCKYPTKDIPIFF tfb1_yeast RNA polymerase II transcription factor B subunit 1 TFB1 YDR311W D9740.3 protein protein yeast Saccharomyces cerevisiae MSHSGAAIFEKVSGIIAINEDVSPAELTWRSTDGDKVHTVVLSTIDKLQATPASSEKMMLRLIGKVDESKKRKDNEGNEVVPKPQRHMFSFNNRTVMDNIKMTLQQIISRYKDADIYEEKRRREESAQHTETPMSSSSVTAGTPTPHLDTPQLNNGAPLINTAKLDDSLSKEKLLTNLKLQQSLLKGNKVLMKVFQETVINAGLPPSEFWSTRIPLLRAFALSTSQKVGPYNVLSTIKPVASSENKVNVNLSREKILNIFENYPIVKKAYTDNVPKNFKEPEFWARFFSSKLFRKLRGEKIMQNDRGDVIIDRYLTLDQEFDRKDDDMLLHPVKKIIDLDGNIQDDPVVRGNRPDFTMQPGVDINGNSDGTVDILKGMNRLSEKMIMALKNEYSRTNLQNKSNITNDEEDEDNDERNELKIDDLNESYKTNYAIIHLKRNAHEKTTDNDAKSSADSIKNADLKVSNQQMLQQLSLVMDNLINKLDLNQVVPNNEVSNKINKRVITAIKINAKQAKHNNVNSALGSFVDNTSQANELEVKSTLPIDLLESCRMLHTTCCEFLKHFYIHFQSGEQKQASTVKKLYNHLKDCIEKLNELFQDVLNGDGESMSNTCTAYLKPVLNSITLATHKYDEYFNEYNNNSN tfb3_yeast RNA polymerase II transcription factor B subunit 3 TFB3 RIG2 YDR460W protein protein yeast Saccharomyces cerevisiae MLMDEYEENKDMCPICKTDRYLSPDVKFLVNPECYHRICESCVDRIFSLGPAQCPYKGCDKILRKNKFKTQIFDDVEVEKEVDIRKRVFNVFNKTIDDFNGDLVEYNKYLEEVEDIIYKLDHGIDVAKTEEKLRTYEELNKQLIMNNLERSRTEIESFEQRQKFEKEMKLKKRLLERQIEEEERMNKEWTKKEIVNRLSTTTQDINETIEGVKNTVKLKKSSARRKLEELNRVLKNNPYFNSNVNVQNSRLKDAVPFTPFNGDREAHPRFTLKGSVYNDPFIKDLEHRKEFIASGFNTNYAYERVLTEAFMGLGCVISEEL yji4_yeast Hypothetical 117.2 kDa protein in EXO70-ARP4 intergenic region YJL084C J0934 protein protein yeast Saccharomyces cerevisiae MPMDQSISSPLFPMEKDIDIPLDATPLAQSSSLQLFIHLAEPVVFLQGFDPQKTEYPSVVLRGCLVVRILKPTKLKSISLSFKGYSRTEWPEGIPPKRQEFVEIKDIVDHTWALYPPTEQKSKKKMDASAPNESNNAANNFLTKESGASLYRTLSDNETITSRKNSISGLSSLNLSPLGAPGNSSVNVKDRESRQRSRSSSVTSSNGPSRNLSPINLLKRATSPSVSHHNYKPTTTSIFSDLLNNTFTHNDAASHHGHHIPTSSNHLAMTSNNFTSGSGGEFFVFQPGDYIYAFEELIPQAYPESIKADFGFVEYFLFASIERPGAFKSNISARQVVNIVRTQAHNSVEESEPIIISRDWENQLYYDIVIASKDIILDAFLPITFKFAPLDKVTLHRIRIYVTETMEYYCREKKVHRMEPTKKFLLTEQKGPKLPNLPNDANLSKAKNMGNLLQDPKNGDLVNKEYEYQIFIPSRFNNHQQLHPDTSYENIKANHWIKICLRLSRVVDNKRKHYEISIDSPIHVLHRLCSHANTLLPSYDGHPASFPKETDSSISSILESSDDNINLYHNSNIFFPKEVLSSPVLSPNVQPLDILIPHLPSTSLTRNSRQFNRNSKSHPSDNTIFNSAKLKSNIYQPESLQRELASPQAIPLSPITSPMSNMEVPPPDFDFSSDFISDAASGTTTTEVSSSESSILPRDPPSYKDTVLHDNNQKRRPNSKHPTPPSLKASHPNKNSDKNSSETLNKKESMSKIEENKHKRETTPKKRENRDVKSLSTPQREESKDSTSTGNQSNEKNRKRVLSLSSSLHSSPNNSGFAHSALGNLSNESLRSLNRRESVQDNLPSTIRHDNPFFTDLNQVLIEDELKNHDKNELNRHSTNTSSTPASARSSFDYSGINISKDKLNMEPLLSKTETLTNKVNEDSFLRPNDSYVDLLEPSVDTTIDITAPYARNSSAWHPLQNDNDNNQFSPLLGSNENFLNAANAQNSAESDHNNDIFTQGSGLTESSKNSDSEERFISRLSSPEKVLINTLDNESGLQSINESTL lipb_yeast Lipoate-protein ligase, mitochondrial precursor LIP2 YLR239C L8083.16 protein protein yeast Saccharomyces cerevisiae MSRCIRQSVCTNFNVCRRQCFSTYASALKEMTHPIKPSAQTLRHLQFTQRIPFQKGLEIQETLVRANLDIKDIQSKIERKLIQLDEEYKGTATINDNEKRILDKVMAMKPNPIILTFEFEPTYTGGKRIKKTMTPDQIAAYESFIPETQKDNPRPKFVQVERGGQVTFHGPGQIVIYIILDLKTFQSFPAKCLVSCIEQATIRTLKNTKMCDDTDKPLNLDAMTTKDTGVWVENGKKKVASVGIHVRRSITSHGVAINVNTDLSYMNSFEMCGLKNTLTTSIMEQRPDAVVNVQSVAISFVKEMTKLLGIKTLERMQIDDVNILKKNP met18_yeast DNA repair/transcription protein MET18/MMS19 MET18 MMS19 YIL128W protein protein yeast Saccharomyces cerevisiae MTPDELNSAVVTFMANLNIDDSKANETASTVTDSIVHRSIKLLEVVVALKDYFLSENEVERKKALTCLTTILAKTPKDHLSKNECSVIFQFYQSKLDDQALAKEVLEGFAALAPMKYVSINEIAQLLRLLLDNYQQGQHLASTRLWPFKILRKIFDRFFVNGSSTEQVKRINDLFIETFLHVANGEKDPRNLLLSFALNKSITSSLQNVENFKEDLFDVLFCYFPITFKPPKHDPYKISNQDLKTALRSAITATPLFAEDAYSNLLDKLTASSPVVKNDTLLTLLECVRKFGGSSILENWTLLWNALKFEIMQNSEGNENTLLNPYNKDQQSDDVGQYTNYDACLKIINLMALQLYNFDKVSFEKFFTHVLDELKPNFKYEKDLKQTCQILSAIGSGNVEIFNKVISSTFPLFLINTSEVAKLKLLIMNFSFFVDSYIDLFGRTSKESLGTPVPNNKMAEYKDEIIMILSMALTRSSKAEVTIRTLSVIQFTKMIKMKGFLTPEEVSLIIQYFTEEILTDNNKNIYYACLEGLKTISEIYEDLVFEISLKKLLDLLPDCFEEKIRVNDEENIHIETILKIILDFTTSRHILVKESITFLATKLNRVAKISKSREYCFLLISTIYSLFNNNNQNENVLNEEDALALKNAIEPKLFEIITQESAIVSDNYNLTLLSNVLFFTNLKIPQAAHQEELDRYNELFISEGKIRILDTPNVLAISYAKILSALNKNCQFPQKFTVLFGTVQLLKKHAPRMTETEKLGYLELLLVLSNKFVSEKDVIGLFDWKDLSVINLEVMVWLTKGLIMQNSLESSEIAKKFIDLLSNEEIGSLVSKLFEVFVMDISSLKKFKGISWNNNVKILYKQKFFGDIFQTLVSNYKNTVDMTIKCNYLTALSLVLKHTPSQSVGPFINDLFPLLLQALDMPDPEVRVSALETLKDTTDKHHTLITEHVSTIVPLLLSLSLPHKYNSVSVRLIALQLLEMITTVVPLNYCLSYQDDVLSALIPVLSDKKRIIRKQCVDTRQVYYELGQIPFE mdg1_yeast Signal transduction protein MDG1 YNL173C N1673 MDG1 protein protein yeast Saccharomyces cerevisiae MQSSLPQFTFKWPKGPEAIILTGTFDDWKGTLPMVKDPSGAFEITLPVTFDSPSSKFYFKFIVDGQWLPSKDYKVNIDEGVENNFITEEDVIKQRENGSSTLVPESAGLAVSKNAPLIEPEAEKRAKKLRKFKIKRVIKTNKQTGERSIFSQEVVELPDSEDETQQVNKTGKNADGLSGTTTIIENNVGVNEEKAIKPYEENHPKVNLVKSEGYVTDGLGKTQSSESRLYELSAEDLEKEEEEEDEDKGGGKDTSTSADAEASEDQNKEPLSKSAKFEKPEEKVPVSSITSHAKETSVKPTGKVATETQTYETKQGAPTAAAKKIEAKKATRPSKPKGTKETPNKGVQKNPAKNGGFFKKLAQLLK ym02_yeast Hypothetical 15.2 kDa protein in ILV2-ADE17 intergenic region YMR112C YM9718.11C protein protein yeast Saccharomyces cerevisiae MQVLNTKSETKQENETMQPPYIQERLKSLNDIETQLCSMLQEASQVTFIFGELKRGNESVKPQFENHVKQFYERLDKSTTQLRKEIQLLDENVGTRLLPINVNKKALGQDTEKMEEQLDLLSAILDPSKSK not4_yeast General negative regulator of transcription subunit 4 NOT4 CCL1 MOT2 SIG1 SSF1 YER068W protein protein yeast Saccharomyces cerevisiae MMNPHVQENLQAIHNALSNFDTSFLSEDEEDYCPLCIEPMDITDKNFFPCPCGYQICQFCYNNIRQNPELNGRCPACRRKYDDENVRYVTLSPEELKMERAKLARKEKERKHREKERKENEYTNRKHLSGTRVIQKNLVYVVGINPPVPYEEVAPTLKSEKYFGQYGKINKIVVNRKTPHSNNTTSEHYHHHSPGYGVYITFGSKDDAARCIAQVDGTYMDGRLIKAAYGTTKYCSSYLRGLPCPNPNCMFLHEPGEEADSFNKRELHNKQQAQQQSGGTAFTRSGIHNNISTSTAGSNTNLLSENFTGTPSPAAMRAQLHHDSHTNAGTPVLTPAPVPAGSNPWGVTQSATPVTSINLSKNSSSINLPTLNDSLGHHTTPTTENTITSTTTTTNTNATSHSHGSKKKQSLAAEEYKDPYDALGNAVDFLDARLHSLSNYQKRPISIKSNIIDEETYKKYPSLFSWDKIEASKKSDNTLANKLVEILAIKPIDYTASVVQFLQSVNVGVNDNITITDNTKTPTQPIRLQTVSQQIQPPLNVSTPPPGIFGPQHKVPIQQQQMGDTSSRNSSDLLNQLINGRKIIAGN cwc27_yeast Peptidyl-prolyl isomerase CWC27 CWC27 CYP7 YPL064C protein protein yeast Saccharomyces cerevisiae MSSNIEPQTTAKCILYTTKGNIAIELWAKECPETCKRFLSMLSDGTFTNGEFKELKPTQWLMFNANSTGEYRTVAEEKNPRIRFNRDGLLGWDRRRNTWFITVLADSKHVLNDCNVFGKIVGKSIYIFREILGGEIEASSRDNDVKRFMYPAVLKDVEITIPFFEDIFGSKRRLEDNEKKEQEPAKKLVKSAKVKMVYEDEQEDDDGDVQKLKPRKRMILPAWIKDDSRSEGIKLDASLDQPQEALIREKTELHDNVDEATTKETESQENIKEEPMDKRERETLAMLSKFQERIKNKNILK q08930_yeast S.cerevisiae chromosome XVI reading frame ORF YPL191c YPL191C protein protein yeast Saccharomyces cerevisiae MDLSFTTKSVKINGQNHRILLQNENGPCALLALANILILSPDHTRFSNELIRLVNKGSQISLKELIEVLADIALQVTDKPSTDISELLSLLPRLHEGLNINPEFNGSFENTKEMSIFRLFNVDVVHGWVINSFINENIDEKLSHYSYESAQRILTQAADINCGISQDENSDEVLRDAMHLGLFLNESPTQLTAFGLLRLREKLLHNKFSILFRNDHFSTLFKYEDRLYTLVTDFGYKNCKDIVWQSLDSVDGSCDAFFAGNFSAAEVNGQQLSTDIERDFGTGNLLLEEIQQIENDKELAKQLQEQEQERVTKFEAKRKIHSHKKNSEIHAPVKKDKFKRRSSLLNAKASEKEKSECVVM met30_yeast MET30 protein MET30 YIL046W protein protein yeast Saccharomyces cerevisiae MRRERQRMMSFEDKDKDDLDNSNSNNSSEMTDTAMMPPLKRLLITGSSDDLAQGSSGKKKMTMATRSPSSSPDLATNDSGTRVQPLPEYNFTKFCYRHNPDIQFSPTHTACYKQDLKRTQEINANIAKLPLQEQSDIHHIISKYSNSNDKIRKLILDGILSTSCFPQLSYISSLVTHMIKIDFISILPQELSLKILSYLDCQSLCNATRVCRKWQKLADDDRVWYHMCEQHIDRKCPNCGWGLPLLHMKRARIQQNSTGSSSNADIQTQTTRPWKVIYRERFKVESNWRKGHCRIQEFKGHMDGVLTLQFNYRLLFTGSYDSTIGIWDLFTGKLIRRLSGHSDGVKTLYFDDRKLITGSLDKTIRVWNYITGECISTYRGHSDSVLSVDSYQKVIVSGSADKTVKVWHVESRTCYTLRGHTEWVNCVKLHPKSFSCFSCSDDTTIRMWDIRTNSCLKVFRGHVGQVQKIIPLTIKDVENLATDNTSDGSSPQDDPTMTDGADESDTPSNEQETVLDENIPYPTHLLSCGLDNTIKLWDVKTGKCIRTQFGHVEGVWDIAADNFRIISGSHDGSIKVWDLQSGKCMHTFNGRRLQRETQHTQTQSLGDKVAPIACVCIGDSECFSGDEFGCVKMYKFDLND rpc2_yeast DNA-directed RNA polymerase III 130 kDa polypeptide RPC2 RET1 RPC128 YOR207C protein protein yeast Saccharomyces cerevisiae MVAATKRRKTHIHKHVKDEAFDDLLKPVYKGKKLTDEINTAQDKWHLLPAFLKVKGLVKQHLDSFNYFVDTDLKKIIKANQLILSDVDPEFYLKYVDIRVGKKSSSSTKDYLTPPHECRLRDMTYSAPIYVDIEYTRGRNIIMHKDVEIGRMPIMLRSNKCILYDADESKMAKLNECPLDPGGYFIVNGTEKVILVQEQLSKNRIIVEADEKKGIVQASVTSSTHERKSKTYVITKNGKIYLKHNSIAEEIPIAIVLKACGILSDLEIMQLVCGNDSSYQDIFAVNLEESSKLDIYTQQQALEYIGAKVKTMRRQKLTILQEGIEAIATTVIAHLTVEALDFREKALYIAMMTRRVVMAMYNPKMIDDRDYVGNKRLELAGQLISLLFEDLFKKFNNDFKLSIDKVLKKPNRAMEYDALLSINVHSNNITSGLNRAISTGNWSLKRFKMERAGVTHVLSRLSYISALGMMTRISSQFEKSRKVSGPRALQPSQFGMLCTADTPEGEACGLVKNLALMTHITTDDEEEPIKKLCYVLGVEDITLIDSASLHLNYGVYLNGTLIGSIRFPTKFVTQFRHLRRTGKVSEFISIYSNSHQMAVHIATDGGRICRPLIIVSDGQSRVKDIHLRKLLDGELDFDDFLKLGLVEYLDVNEENDSYIALYEKDIVPSMTHLEIEPFTILGAVAGLIPYPHHNQSPRNTYQCAMGKQAIGAIAYNQFKRIDTLLYLMTYPQQPMVKTKTIELIDYDKLPAGQNATVAVMSYSGYDIEDALVLNKSSIDRGFGRCETRRKTTTVLKRYANHTQDIIGGMRVDENGDPIWQHQSLGPDGLGEVGMKVQSGQIYINKSVPTNSADAPNPNNVNVQTQYREAPVIYRGPEPSHIDQVMMSVSDNDQALIKVLLRQNRRPELGDKFSSRHGQKGVCGIIVKQEDMPFNDQGIVPDIIMNPHGFPSRMTVGKMIELISGKAGVLNGTLEYGTCFGGSKLEDMSKILVDQGFNYSGKDMLYSGITGECLQAYIFFGPIYYQKLKHMVLDKMHARARGPRAVLTRQPTEGRSRDGGLRLGEMERDCVIAYGASQLLLERLMISSDAFEVDVCDKCGLMGYSGWCTTCKSAENIIKMTIPYAAKLLFQELLSMNIAPRLRLEDIFQQ q12020_yeast SMC4 protein SRL2 SMC4 protein protein yeast Saccharomyces cerevisiae MSNFKNFTLNSFEDYYGKPSETPKMEEEKLEVTNVNASSSKKVHKSKKSTSKYDQKNVFRNSMTGIAQILPTKPVKIIEQNIDFANPKSFDLLQSTHTICFNKRINTTNTKLNVETHTSSDIDNDILHVGAPTDLGGNSNDEAETRQLRKFRWSNNKEKSLCEKLTVIYWALLLHTTKRASKRRPILCHQMIAEFFNRVYKEKSRVPITSRYIRDNLVAWVTQGKELHEKGWVGDAKTGDLQEQFNIATVKLYESAEDGRLSIGKDKPFREENTGSDSLVRAEEDSTAVTNENGHISSEKNLKKDRRESIRNQILTLDLNDEDFFQNVMKVLSAIDEPELRQYVIVISELVSMEMDDGKTVREKLRDVELNINRLQVDIKEIKEMLVTLINK q03831_yeast Hypothetical protein protein protein yeast Saccharomyces cerevisiae MRSGNSGSCNHFLVFLRKVVTCHNAAIVRKTTKYNSLKHKTPPLPLALALADALSPQNFFHITSPASLSYSWRRADPGRKGRTQPLPTQGSARRFLHTPQGGVEPCRVIHIITSYMKSISYHIGIHSTKEEKNCNH cwc25_yeast Pre-mRNA splicing factor CWC25 YNL245C N0901 CWC25 protein protein yeast Saccharomyces cerevisiae MGSGDLNLLKSWNPKLMKNRKKVWETEQDLITEQQKLNTRLKEIEKERELNELLNESSKDKPETLKNDLALKKSGLEWMYQDAKLSDEKEDYLLGKKKLDSSILNQPATPPVRAATTISASGAATSISSQKKKSKLLKDDPMSKFKVTKQQRRTPDSTKKRAMSQRGKPLSKPAPDLDY q08500_yeast ORF YOR087w protein protein yeast Saccharomyces cerevisiae MVSANGDLHLPISNEQCMPENNGSLGFEAPTPRQILRVTLNLKYLIDKVVPIVYDPNDIVCDHSEILSPKVVKLAYEACGGNPKDKANKRKYQSVIIFSLLKVCEWYSILATMEVHNAKLYETRNLASQQLCKLLIEREETRDLQFLFMQLLLRRYVINENDEDQEPLNALELATDMHCTTVIGSSGFQRCLKWIWRGWIVQNGLDPTTFIKDDSLAEVSLISHFNPVRLKAPVYQNYLQMIFSFCF rpn11_yeast 26S proteasome regulatory subunit RPN11 RPN11 MPR1 YFR004W protein protein yeast Saccharomyces cerevisiae MERLQRLMMNSKVGSADTGRDDTKETVYISSIALLKMLKHGRAGVPMEVMGLMLGEFVDDYTVNVVDVFAMPQSGTGVSVEAVDDVFQAKMMDMLKQTGRDQMVVGWYHSHPGFGCWLSSVDVNTQKSFEQLNSRAVAVVVDPIQSVKGKVVIDAFRLIDTGALINNLEPRQTTSNTGLLNKANIQALIHGLNRHYYSLNIDYHKTAKETKMLMNLHKEQWQSGLKMYDYEEKEESNLAATKSMVKIAEQYSKRIEEEKELTEEELKTRYVGRQDPKKHLSETADETLENNIVSVLTAGVNSVAIK rpn8_yeast 26S proteasome regulatory subunit RPN8 RPN8 YOR261C protein protein yeast Saccharomyces cerevisiae SLQHEKVTIAPLVLLSALDHYERTQTKENKRCVGVILGDANSSTIRVTNSFALPFEEDEKNSDVWFLDHNYIENMNEMCKKINAKEKLIGWYHSGPKLRASDLKINELFKKYTQNNPLLLIVDVKQQGVGLPTDAYVAIEQVKDDGTSTEKTFLHLPCTIEAEEAEEIGVEHLLRDVRDQAAGGLSIRLTNQLKSLKGLQSKLKDVVEYLDKVINKELPINHTILGKLQDVFNLLPNLGTPDDDEIDVENHDRINISNNLQKALTVKTNDELMVIYISNLVRSIIAFDDLIENKIQNKKIQEQRVKDKQSKVSDDSESESGDKEATAPLIQRKNKKN msb2_yeast MSB2 protein MSB2 YGR014W protein protein yeast Saccharomyces cerevisiae MQFPFACLLSTLVISGSLARASPFDFIFGNGTQQAQSQSESQGQVSFTNEASQDSSTTSLVTAYSQGVHSHQSATIVSATISSLPSTWYDASSTSQTSVSYASQESDYAVNQNSWSASTNQLPSTSTTSYYAPTFSTSADFAASSVNAASDVSTASVPIDTSANSIPFTTTSNIETTTSAPLTSDTPLISTSTMSAADNVFSSANPISASLTTTDSSESFDQTSTAGAIPVQSSADFSSSSEILVQSSADFSSPSSPTTTDISLSAAPLQTSESSSFTTASAALPVSSTDVDGSSASPVVSMSAAGQIASSSSTDNPTMSETFSLTSTEVDGSDVSSTVSALLSAPFLQTSTSNSFSIVSPSVSFVPSQSSSDVASSSTANVVSSSFSDIPPQTSTSGSVVSVAQSASALAFQSSTEVYGASASSTMSSLLSTTSLQSTTLDSSSLASSSASSSDLTDYGVSSTASIPLLSASEQASTSSSFSVVSPSVSFVPSQSSSDVASTSAPSVVSSSFSYTSLQAGGSSMTNPSSSTIVYSSSTGSSEESAASTASATLSGSSSTYMAGNLQSQPPSTSSLLSESQATSTSAVLASSSVSTTSPYTTAGGASTEASSLISSTSAETSQVSYSQSTTALQTSSFASSSTTEGSETSSQGFSTSSVLVQMPSSISSEFSPSQTTTQMNSASSSSQYTISSTGILSQVSDTSVSYTTSSSSVSQVSDTPVSYTTSSSSVSQVSDTPVSYTTSSSSVSQVSDTPVSYTTSSSSVSQVSDTPVSYTTSSSSVSQVSDTSVPSTSSRSSVSQVSDTPVPSTSSRSSVSQTSSSLQPTTTSSQRFTISTHGALSESSSVSQQASEITSSINATASEYHSIQTTAATQSTTLSFTDANSSSASAPLEVATSTPTPSSKASSLLLTPSTSSLSQVATNTNVQTSLTTESTTVLEPSTTNSSSTFSLVTSSDNNWWIPTELITQAPEAASTASSTVGGTQTMTLPHAIAAATQVPEPEGYTLITIGFKKALNYEFVVSEPKSSAQIFGYLPEALNTPFKNVFTNITVLQIVPLQDDSLNYLVSVAEVYFPTAEIEELSNLITNSSSAFYTDGMGTAKSMAAMVDSSIPLTGLLHDSNSNSGGSSDGSSSSNSNSGSSGSGSNSNSGVSSSSGNSYQDAGTLEYSSKSNSNVSTSSKSKKKIIGLVIGVVVGGCLYILFMIFAFKYIIRRRIQSQEIIKNPEISSISSSEFGGEKNYNNEKRMSVQESITQSMRIQNWMDDSYYGHGLTNNDSTPTRHNTSSSIPKISRPIASQNSLGWNEV bni4_yeast Protein BNI4 BNI4 YNL233W N1146 protein protein yeast Saccharomyces cerevisiae MSDSISDSKSSELLNSTFYSSTSINTLDHARTFRNSLILKEISDQSLNSSIKPCESVLDRDVESSVLQRSFGESNARDSEVQTVNMTTSPSLSALADILNERSKYADQKTRKAQNIESSIIEEEEEAEEQNNSINYHEDITGSRLSVREEANENLAMTSPNLIDIDGSNSIQVAPLSLPSFEEPDFLSTPRVKPDSQGPRSKVSTRRTILERDNNLPVKREENTIINSETESTTHSAPFLKEDPKPSPPSSKLYNPKVRLNKAEARKYTDSSAQRTTSAGSVLEDTSMHKKKKSIFSFLKKKEPKPVIGNNSVTNEKNKMSSSSTFSMNIQTSLKTPEKLKKKSHSSSSIFNSFLKGKIETSDSPRKEPMRQKKRTPKSKDKKQDTEQIIDAASVLSTESPLLRKNHDDTPVKIDHVTRSIDQRKPTPLNMDLILGGDKQINTPLQEHVREDDDAKNDLQLPTKDNFLSLDYEAPSPAFSKHDTGEVLFPKFLDNHEVDSIVSLERTRSTKSNKRSSMNSQRRSLTDTLSIKAQSEGMFITEASSVVLSTPDLTKSPASSILKNGRFEYSDNFSREHSYEGTTNEDFLDIKDDSGPLKKDDIFLESIEQKFDQLVMASDEEKTEVERDVPKPREEPLKKDSERQSVFADDDNELISDIMEFASFINFGDDDLNLDLDLGDTTASYATETPEPVGNDEVNRSGTFDTRNNKEDSYKERETQSYSAAGATTYGDERQGQLHTFEQDGSEINDNEFENEDFNKHIEQPIEVTPRNNAYLPEFEPNRPVSMSFKGLKAPRMNTSFIDSMTPDSPVKSDLTSLGEVYVNSNNDQGVRFSSQIILYDTYGEFEYDRHPEISTCNQLTPQLAQMIKLELNELKSAMEVHDDSRCYTHFY gyp3_yeast GTPase-activating protein GYP3 MSB3 GYP3 YNL293W N0470 protein protein yeast Saccharomyces cerevisiae MQNDQQRFSLQNRTVLAHPYKRLGGAFTVKSPSVPNFHDKMHSDHSSSDSALVNGSFRANDHRSVEPSCLGQASPSEHDGNLSVIDLYGDEVESQRAEGEDDDDNNGDNGNEDLEEVHSDDLDLVPDDDNRQRVELEGAASATSANSNGINNTHFDRYGFKKQNNYISEAEYDKWWVEYSQYCVRRKHKWQLLLEKSGLPVTDDSPSRFPSKSERLKRYVRKGIPAEWRGNAWWHFARGQEKLNKNKGVYSQLLRKMKQIKKQNPNEKQVQDLDIIERDLNRTFPDNIHFQSSLHNKEGPPIIKSLRRVLVAFSLYNPKIGYCQSMNFLAGLLLLFLDEERAFWMLVIITSRYLPGVHNINLEGVNIDQGVLMLCVKEYIPEVWSYIKPSIDHHQKNNKTFSPSNKKVLFNMQKNEFLYRLPPITLCTASWFMSCFVGVVPIETTLRIWDCLFYEESHFLFKVSLAVLKLSEHDLSKIKPRNNSLNYSWGSNLNQRGGSMGQEDSDMEIFQVIQTFPKTLLNPNEIFEKIIFKRRFNLNRLDQDEIDRCRKFVAAQRLKFKTYGELLGNSTSEADLPINDNTDNKGIHITSDAVNEALSSEVYGFKKSLAGVHWNNSIKEKVKQMRKKKDKGD msb4_yeast GTPase-activating protein MSB4 MSB4 YOL112W HRC492 protein protein yeast Saccharomyces cerevisiae MIMSSTMSTEAALVPNESVFDTVSSFNEDDANYSVLDLYDDDDEGDDSSTVERKEILTTRELEKAKAFTSLIMADPENFDRYGFSKKGYFISQEEYDKWWTEYNRYTERRKKKWENFLLKNKIELHNDNPLVYPARTDELSKFVRKGIPAEWRGNAWWYFAGGQRQLDANVGVYDRLKSDCREGAVSGKDMEAIERDLYRTFPDNIHFHKESFQNGEPAIIRSLRRVLMAFSVYDKTIGYCQSMNFLVGLLLLFMEEEKAFWMLVIITGKYLPGVYESDLEGANVDQGVLVLCIKEYLPEIWSHIESSYMNGNGSTDQISGPASGEEYLCRLPTLTLCTASWFMSCFVGVVPIETTLRIWDCLFYEESHFLFKVALGILKLSESEFLESKSQKLFRQYSSYTFGGSNDSDSTFKRLKNKIKTQEEADMEILQVIQNFPKRLLNPNDIFEKVLMKKKVALNGITQEKIDRGREYVAMARNRQRASSRPKERRK nog1_yeast Nucleolar GTP-binding protein 1 NOG1 YPL093W LPG15W protein protein yeast Saccharomyces cerevisiae MQLSWKDIPTVAPANDLLDIVLNRTQRKTPTVIRPGFKITRIRAFYMRKVKYTGEGFVEKFEDILKGFPNINDVHPFHRDLMDTLYEKNHYKISLAAISRAKSLVEQVARDYVRLLKFGQSLFQCKQLKRAALGRMATIVKKLRDPLAYLEQVRQHIGRLPSIDPNTRTLLICGYPNVGKSSFLRCITKSDVDVQPYAFTTKSLYVGHFDYKYLRFQAIDTPGILDRPTEEMNNIEMQSIYAIAHLRSCVLYFMDLSEQCGFTIEAQVKLFHSIKPLFANKSVMVVINKTDIIRPEDLDEERAQLLESVKEVPGVEIMTSSCQLEENVMEVRNKACEKLLASRIENKLKSQSRINNVLNKIHVAQPQARDDVKRTPFIPESVKNLKKYDPEDPNRRKLARDIEAENGGAGVFNVNLKDKYLLEDDEWKNDIMPEILDGKNVYDFLDPEIAAKLQALEEEEEKLENEGFYNSDDEEEIYDGFEASEVDDIKEKAAWIRNRQKTMIAEARNRKSLKNKAIMPRSKLTKSFGKMEEHMSTLGHDMSALQDKQNRAARKNRYVERGSDVVFGDQDALTASTENGVKLRQTDRLLDGVADGSMRSKADRMAKMERRERNRHAKQGESDRHNAVSLSKHLFSGKRGVGKTDFR tysy_yeast Thymidylate synthase TMP1 CDC21 YOR074C YOR29-25 protein protein yeast Saccharomyces cerevisiae MTMDGKNKEEEQYLDLCKRIIDEGEFRPDRTGTGTLSLFAPPQLRFSLRDDTFPLLTTKKVFTRGIILELLWFLAGDTDANLLSEQGVKIWDGNGSREYLDKMGFKDRKVGDLGPVYGFQWRHFGAKYKTCDDDYTGQGIDQLKQVIHKLKTNPYDRRIIMSAWNPADFDKMALPPCHIFSQFYVSFPKEGEGSGKPRLSCLLYQRSCDMGLGVPFNIASYALLTRMIAKVVDMEPGEFIHTLGDAHVYKDHIDALKEQITRNPRPFPKLKIKRDVKDIDDFKLTDFEIEDYNPHPRIQMKMSV mcm6_yeast DNA replication licensing factor MCM6 MCM6 YGL201C protein protein yeast Saccharomyces cerevisiae MSSPFPADTPSSNRPSNSSPPPSSIGAGFGSSSGLDSQIGSRLHFPSSSQPHVSNSQTGPFVNDSTQFSSQRLQTDGSATNDMEGNEPARSFKSRALNHVKKVDDVTGEKVREAFEQFLEDFSVQSTDTGEVEKVYRAQIEFMKIYDLNTIYIDYQHLSMRENGALAMAISEQYYRFLAFLQKGLRRVVRKYAPELLNTSDSLKRSEGDEGQADEDEQQDDDMNGSSLPRDSGSSAAPGNGTSAMATRSITTSTSPEQTERVFQISFFNLPTVHRIRDIRSEKIGSLLSISGTVTRTSEVRPELYKASFTCDMCRAIVDNVEQSFKYTEPTFCPNPSCENRAFWTLNVTRSRFLDWQKVRIQENANEIPTGSMPRTLDVILRGDSVERAKPGDRCKFTGVEIVVPDVTQLGLPGVKPSSTLDTRGISKTTEGLNSGVTGLRSLGVRDLTYKISFLACHVISIGSNIGASSPDANSNNRETELQMAANLQANNVYQDNERDQEVFLNSLSSDEINELKEMVKDEHIYDKLVRSIAPAVFGHEAVKKGILLQMLGGVHKSTVEGIKLRGDINICVVGDPSTSKSQFLKYVVGFAPRSVYTSGKASSAAGLTAAVVRDEEGGDYTIEAGALMLADNGICCIDEFDKMDISDQVAIHEAMEQQTISIAKAGIHATLNARTSILAAANPVGGRYNRKLSLRGNLNMTAPIMSRFDLFFVILDDCNEKIDTELASHIVDLHMKRDEAIEPPFSAEQLRRYIKYARTFKPILTKEARSYLVEKYKELRKDDAQGFSRSSYRITVRQLESMIRLSEAIARANCVDEITPSFIAEAYDLLRQSIIRVDVDDVEMDEEFDNIESQSHAASGNNDDNDDGTGSGVITSEPPADIEEGQSEATARPGTSEKKKTTVTYDKYVSMMNMIVRKIAEVDREGAEELTAVDIVDWYLLQKENDLGSLAEYWEERRLAFKVIKRLVKDRILMEIHGTRHNLRDLENEENENNKTVYVIHPNCEVLDQLEPQDSS yae7_yeast Hypothetical 72.1 kDa protein in ACS1-GCV3 intergenic region YAL047C FUN42 protein protein yeast Saccharomyces cerevisiae MVRRWIPSGRHLRNNDNTGDDDDSEFTNSMDSGMSIPSLRDSMTTRSSHNDPIKPALMNDSNKVKNLEKELTNAKIKIQVLYEYIRRIPNKDGNAPSLGNDTDFRNSIIEGLNLEINKLKQDLKAKEVEYQDTLQFVQENLENSESIVNTINHLLSFILTHFNEQDENAHLLDKEERETLEETLELSSDYVLEKMDTLSKFIIQFLQDFLHSKSRAESKQDKEEFLSLAQSSPAGSQLESRDSPSSKEENTDGGYQNDEIHDSNNHIDTENVMANSTSLPISAVESRFEKTLDTQLEIVIEILHKEYDQFINSIRLKFEKSQKLEKIIASKLNEQSHLLDSLELEENSSSVIEKQDHLISQLKEKIESQSVLINNLEKLKEDIIKMKQNEKVLTKELETQTKINKLKENNWDSYINDLEKQINDLQIDKSEEFHVIQNQLDKLDLENYQLKNQLNTLDNQKLILSQYESNFIKFNQNLLLHLDSIFNILQKILQESSIAQFDRKMKSIKSVPNALKNLNLIQPKLESLYTFIETALESIINSYISSLISMETPEQPHQQGNELTATPNKELTLRIEELQRRWISERERRKLDANASEARIKALEQENESLRSKLFNLSINNP q12476_yeast S.cerevisiae chromosome IV reading frame ORF YDL175c AIR2 protein protein yeast Saccharomyces cerevisiae MEKNTAPFVVDTAPTTPPDKLVAPSIEEVNSNPNELRALRGQGRYFGVSDDDKDAIKEAAPKCNNCSQRGHLKKDCPHIICSYCGATDDHYSRHCPKAIQCSKCDEVGHYRSQCPHKWKKVQCTLCKSKKHSKERCPSIWRAYILVDDNEKAKPKVLPFHTIYCYNCGGKGHFGDDCKEKRSSRVPNEDGSAFTGSNLSVELKQEYYRHMNRNSDENEDYQFSESIYDEDPLPRPSHKRHSQNDHSHSGRNKRRASNFHPPPYQKSNVIQPTIRGETLSLNNNISKNSRYQNTKVNVSSISENMYGSRYNPSTYVDNNSISNSSNYRNYNSYQPYRSGTLGKRR nup1_yeast Nucleoporin NUP1 NUP1 YOR098C YOR3182C protein protein yeast Saccharomyces cerevisiae MSSNTSSVMSSPRVEKRSFSSTLKSFFTNPNKKRPSSKKVFSSNLSYANHLEESDVEDTLHVNKRKRVSGTSQHSDSLTQNNNNAPIIIYGTENTERPPLLPILPIQRLRLLREKQRVRNMRELGLIQSTEFPSITSSVILGSQSKSDEGGSYLCTSSTPSPIKNGSCTRQLAGKSGEDTNVGLPILKSLKNRSNRKRFHSQSKGTVWSANFEYDLSEYDAIQKKDNKDKEGNAGGDQKTSENRNNIKSSISNGNLATGPNLTSEIEDLRADINSNRLSNPQKNLLLKGPASTVAKTAPIQESFVPNSERSGTPTLKKNIEPKKDKESIVLPTVGFDFIKDNETPSKKTSPKATSSAGAVFKSSVEMGKTDKSTKTAEAPTLSFNFSQKANKTKAVDNTVPSTTLFNFGGKSDTVTSASQPFKFGKTSEKSENHTESDAPPKSTAPIFSFGKQEENGDEGDDENEPKRKRRLPVSEDTNTKPLFDFGKTGDQKETKKGESEKDASGKPSFVFGASDKQAEGTPLFTFGKKADVTSNIDSSAQFTFGKAATAKETHTKPSETPATIVKKPTFTFGQSTSENKISEGSAKPTFSFSKSEEERKSSPISNEAAKPSFSFPGKPVDVQAPTDDKTLKPTFSFTEPAQKDSSVVSEPKKPSFTFASSKTSQPKPLFSFGKSDAAKEPPGSNTSFSFTKPPANETDKRPTPPSFTFGGSTTNNTTTTSTKPSFSFGAPESMKSTASTAAANTEKLSNGFSFTKFNHNKEKSNSPTSFFDGSASSTPIPVLGKPTDATGNTTSKSAFSFGTANTNGTNASANSTSFSFNAPATGNGTTTTSNTSGTNIAGTFNVGKPDQSIASGNTNGAGSAFGFSSSGTAATGAASNQSSFNFGNNGAGGLNPFTSATSSTNANAGLFNKPPSTNAQNVNVPSAFNFTGNNSTPGGGSVFNMNGNTNANTVFAGSNNQPHQSQTPSFNTNSSFTPSTVPNINFSGLNGGITNTATNALRPSDIFGANAASGSNSNVTNPSSIFGGAGGVPTTSFGQPQSAPNQMGMGTNNGMSMGGGVMANRKIARMRHSKR pur8_yeast Adenylosuccinate lyase ADE13 YLR359W L8039.12 protein protein yeast Saccharomyces cerevisiae MPDYDNYTTPLSSRYASKEMSATFSLRNRFSTWRKLWLNLAIAEKELGLTVVTDEAIEQMRKHVEITDDEIAKASAQEAIVRHDVMAHVHTFGETCPAAAGIIHLGATSCFVTDNADLIFIRDAYDIIIPKLVNVINRLAKFAMEYKDLPVLGWTHFQPAQLTTLGKRATLWIQELLWDLRNFERARNDIGLRGVKGTTGTQASFLALFHGNHDKVEALDERVTELLGFDKVYPVTGQTYSRKIDIDVLAPLSSFAATAHKMATDIRLLANLKEVEEPFEKSQIGSSAMAYKRNPMRCERVCSLARHLGSLFSDAVQTASVQWFERTLDDSAIRRISLPSAFLTADILLSTLLNISSGLVVYPKVIERRIKGELPFMATENIIMAMVEKNASRQEVHERIRVLSHQAAAVVKEEGGENDLIERVKRDEFFKPIWEELDSLLEPSTFVGRAPQQVEKFVQKDVNNALQPFQKYLNDEQVKLNV arp1_yeast Centractin ARP1 ACT3 ACT5 YHR129C protein protein yeast Saccharomyces cerevisiae MDQLSDSYALYNQPVVIDNGSGIIKAGFSGEERPKALEYCLVGNTKYDKVMLEGLQGDTFIGNNAQKLRGLLKLRYPIKHGVVEDWDSMELIWSYVLNEVLQLQNIGEHPLLITEAPMNPLKNREQMAQVLFETFDVSALYVSNPAVLSLYASGRTTGCVVDCGEGYCSTVPIYDGFALPASMMRMDIGGADITEQLQFQLRKSAGVSLFSSSEREIVRTMKEKVCYLAKNIKKEEEKYLQGTQDLISTFKLPDGRCIEVGNDRYRAPEILFSPQIIGLGYDGLSDMCMQSIWKVDLDLRKPLLSSIILSGGTTTLKGFGDRMLWDLEALTKGTSKIKIIAPSERKYTTWIGGSILTGLSTFQRLWTKKSDWLEDSTRVYSNLM dnm1_yeast Dynamin-related protein DNM1 DNM1 YLL001W L1381 protein protein yeast Saccharomyces cerevisiae MASLEDLIPTVNKLQDVMYDSGIDTLDLPILAVVGSQSSGKSSILETLVGRDFLPRGTGIVTRRPLVLQLNNISPNSPLIEEDDNSVNPHDEVTKISGFEAGTKPLEYRGKERNHADEWGEFLHIPGKRFYDFDDIKREIENETARIAGKDKGISKIPINLKVFSPHVLNLTLVDLPGITKVPIGEQPPDIEKQIKNLILDYIATPNCLILAVSPANVDLVNSESLKLAREVDPQGKRTIGVITKLDLMDSGTNALDILSGKMYPLKLGFVGVVNRSQQDIQLNKTVEESLDKEEDYFRKHPVYRTISTKCGTRYLAKLLNQTLLSHIRDKLPDIKTKLNTLISQTEQELARYGGVGATTNESRASLVLQLMNKFSTNFISSIDGTSSDINTKELCGGARIYYIYNNVFGNSLKSIDPTSNLSVLDVRTAIRNSTGPRPTLFVPELAFDLLVKPQIKLLLEPSQRCVELVYEELMKICHKCGSAELARYPKLKSMLIEVISELLRERLQPTRSYVESLIDIHRAYINTNHPNFLSATEAMDDIMKTRRKRNQELLKSKLSQQENGQTNGINGTSSISSNIDQDSAKNSDYDDDGIDAESKQTKDKFLNYFFGKDKKGQPVFDASDKKRSIAGDGNIEDFRNLQISDFSLGDIDDLENAEPPLTEREELECELIKRLIVSYFDIIREMIEDQVPKAVMCLLVNYCKDSVQNRLVTKLYKETLFEELLVEDQTLAQDRELCVKSLGVYKKAATLISNIL dhys_yeast Deoxyhypusine synthase DYS1 YHR068W protein protein yeast Saccharomyces cerevisiae MSDINEKLPELLQDAVLKASVPIPDDFVKVQGIDYSKPEATNMRATDLIEAMKTMGFQASSVGTACEIIDSMRSWRGKHIDELDDHEKKGCFDEEGYQKTTIFMGYTSNLISSGVRETLRYLVQHKMVDAVVTSAGGVEEDLIKCLAPTYLGEFALKGKSLRDQGMNRIGNLLVPNDNYCKFEEWIVPILDKMLEEQDEYVKKHGADCLEANQDVDSPIWTPSKMIDRFGKEINDESSVLYWAHKNKIPIFCPSLTDGSIGDMLFFHTFKASPKQLRVDIVGDIRKINSMSMAAYRAGMIILGGGLIKHHIANACLMRNGADYAVYINTGQEYDGSDAGARPDEAVSWGKIKAEAKSVKLFADVTTVLPLIVAATFASGKPIKKVKN myo2_yeast Myosin-2 MYO2 CDC66 YOR326W O6167 protein protein yeast Saccharomyces cerevisiae MSFEVGTRCWYPHKELGWIGAEVIKNEFNDGKYHLELQLEDDEIVSVDTKDLNNDKDQSLPLLRNPPILEATEDLTSLSYLNEPAVLHAIKQRYSQLNIYTYSGIVLIATNPFDRVDQLYTQDMIQAYAGKRRGELEPHLFAIAEEAYRLMKNDKQNQTIVVSGESGAGKTVSAKYIMRYFASVEEENSATVQHQVEMSETEQKILATNPIMEAFGNAKTTRNDNSSRFGKYLEILFDKDTSIIGARIRTYLLERSRLVYQPPIERNYHIFYQLMAGLPAQTKEELHLTDASDYFYMNQGGDTKINGIDDAKEYKITVDALTLVGITKETQHQIFKILAALLHIGNIEIKKTRNDASLSADEPNLKLACELLGIDAYNFAKWVTKKQIITRSEKIVSNLNYSQALVAKDSVAKFIYSALFDWLVENINTVLCNPAVNDQISSFIGVLDIYGFEHFEKNSFEQFCINYANEKLQQEFNQHVFKLEQEEYVKEEIEWSFIEFNDNQPCIDLIENKLGILSLLDEESRLPAGSDESWTQKLYQTLDKSPTNKVFSKPRFGQTKFIVSHYALDVAYDVEGFIEKNRDTVSDGHLEVLKASTNETLINILEGLEKAAKKLEEAKKLELEQAGSKKPGPIRTVNRKPTLGSMFKQSLIELMNTINSTNVHYIRCIKPNADKEAWQFDNLMVLSQLRACGVLETIRISCAGFPSRWTFEEFVLRYYILIPHEQWDLIFKKKETTEEDIISVVKMILDATVKDKSKYQIGNTKIFFKAGMLAYLEKLRSNKMHNSIVMIQKKIRAKYYRKQYLQISQAIKYLQNNIKGFIIRQRVNDEMKVNCATLLQAAYRGHSIRANVFSVLRTITNLQKKIRKELKQRQLKQEHEYNAAVTIQSKVRTFEPRSRFLRTKKDTVVVQSLIRRRAAQRKLKQLKADAKSVNHLKEVSYKLENKVIELTQNLASKVKENKEMTERIKELQVQVEESAKLQETLENMKKEHLIDIDNQKSKDMELQKTIENNLQSTEQTLKDAQLELEDMVKQHDELKEESKKQLEELEQTKKTLVEYQTLNGDLQNEVKSLKEEIARLQTAMSLGTVTTSVLPQTPLKDVMGGGASNFNNMMLENSDLSPNDLNLKSRSTPSSGNNHIDSLSVDRENGVNATQINEELYRLLEDTEILNQEITEGLLKGFEVPDAGVAIQLSKRDVVYPARILIIVLSEMWRFGLTKQSESFLAQVLTTIQKVVTQLKGNDLIPSGVFWLANVRELYSFVVFALNSILTEETFKNGMTDEEYKEYVSLVTELKDDFEALSYNIYNIWLKKLQKQLQKKAINAVVISESLPGFSAGETSGFLNKIFANTEEYTMDDILTFFNSIYWCMKSFHIENEVFHAVVTTLLNYVDAICFNELIMKRNFLSWKRGLQLNYNVTRLEEWCKTHGLTDGTECLQHLIQTAKLLQVRKYTIEDIDILRGICYSLTPAQLQKLISQYQVADYESPIPQEILRYVADIVKKEAALSSSGNDSKGHEHSSSIFITPETGPFTDPFSLIKTRKFDQVEAYIPAWLSLPSTKRIVDLVAQQVVQDGH rpb6_yeast DNA-directed RNA polymerases I, II, and III 23 kDa polypeptide RPB6 RPO26 YPR187W P9677.8 protein protein yeast Saccharomyces cerevisiae MSDYEEAFNDGNENFEDFDVEHFSDEETYEEKPQFKDGETTDANGKTIVTGGNGPEDFQQHEQIRRKTLKEKAIPKDQRATTPYMTKYERARILGTRALQISMNAPVFVDLEGETDPLRIAMKELAEKKIPLVIRRYLPDGSFEDWSVEELIVDL ubx1_yeast UBX domain-containing protein 1 SHP1 YBL058W YBL0509 YBL0515 UBX1 protein protein yeast Saccharomyces cerevisiae MAEIPDETIQQFMALTNVSHNIAVQYLSEFGDLNEALNSYYASQTDDQKDRREEAHWNRQQEKALKQEAFSTNSSNKAINTEHVGGLCPKPGSSQGSNEYLKRKGSTSPEPTKGSSRSGSGNNSRFMSFSDMVRGQADDDDEDQPRNTFAGGETSGLEVTDPSDPNSLLKDLLEKARRGGQMGAENGFRDDEDHEMGANRFTGRGFRLGSTIDAADEVVEDNTSQSQRRPEKVTREITFWKEGFQVADGPLYRYDDPANSFYLSELNQGRAPLKLLDVQFGQEVEVNVYKKLDESYKAPTRKLGGFSGQGQRLGSPIPGESSPAEVPKNETPAAQEQPMPDNEPKQGDTSIQIRYANGKREVLHCNSTDTVKFLYEHVTSNANTDPSRNFTLNYAFPIKPISNDETTLKDADLLNSVVVQRWA snz1_yeast Pyridoxin biosynthesis protein SNZ1 SNZ1 YMR096W YM6543.03 protein protein yeast Saccharomyces cerevisiae MTGEDFKIKSGLAQMLKGGVIMDVVTPEQAKIAEKSGACAVMALESIPADMRKSGKVCRMSDPKMIKDIMNSVSIPVMAKVRIGHFVEAQIIEALEVDYIDESEVLTPADWTHHIEKDKFKVPFVCGAKDLGEALRRINEGAAMIRTKGEAGTGDVSEAVKHIRRITEEIKACQQLKSEDDIAKVAEEMRVPVSLLKDVLEKGKLPVVNFAAGGVATPADAALLMQLGCDGVFVGSGIFKSSNPVRLATAVVEATTHFDNPSKLLEVSSDLGELMGGVSIESISHASNGVRLSEIGW dhso1_yeast Sorbitol dehydrogenase 1 SOR1 SDH1 YJR159W J2395 protein protein yeast Saccharomyces cerevisiae MSQNSNPAVVLEKVGDIAIEQRPIPTIKDPHYVKLAIKATGICGSDIHYYRSGGIGKYILKAPMVLGHESSGQVVEVGDAVTRVKVGDRVAIEPGVPSRYSDETKEGRYNLCPHMAFAATPPIDGTLVKYYLSPEDFLVKLPEGVSYEEGACVEPLSVGVHSNKLAGVRFGTKVVVFGAGPVGLLTGAVARAFGATDVIFVDVFDNKLQRAKDFGATNTFNSSQFSTDKAQDLADGVQKLLGGNHADVVFECSGADVCIDAAVKTTKVGGTMVQVGMGKNYTNFPIAEVSGKEMKLIGCFRYSFGDYRDAVNLVATGKVNVKPLITHKFKFEDAAKAYDYNIAHGGEVVKTIIFGPE spt23_yeast SPT23 protein SPT23 YKL020C protein protein yeast Saccharomyces cerevisiae MMSGTGNVSSMLHSYSANIQHNDGSPDLDLLESELLDIALLNSGSSLQDPGLLSLNQEKMITAGTTTPGKEDEGELRDDIASLQGLLDRHVQFGRKLPLRTPYANPLDFININPQSLPLSLEIIGLPKVSRVETQMKLSFRIRNAHARKNFFIHLPSDCIAKDKFFTSSDDPTNLTIPNRDINERTLFLDAFLLCASNNNSNNFKQTYVCNRCINREKRRASRRKSGLNDNSIWQNNENKRAIIFNSKQLFIISNNGLSGNSNCINFDLPTRIVCYCRHHKATNGFVVLFLLRDHNGDILAKTITDPIMIMDKKNASNTTTPTSTSNAQVSPMTNDTRSFSSPQSDLNFPSEFPLPSNSKNFVISTNCMLDSNCNNNNNDNDNKNNIKTNTAMMNNNRHFPSPNSSSEDSNHSFSDIHFSNNNDNNLHRSLDSWSSTGFNSSSNPALTTLTSDFSAASARHTGKRQRSVNEPFMSTPNTFSRLPQKFIDSSKDISNHNSVPVALNNKPSIQRVIPAQGSINGGIEVTLLGSKFKQGLIIKFGENIALSSQCWNESTMVTYLPPSSKPGPVLVTIVDPSETSMRNNSNSSVSTSNSTNDILHLNKYTGEKAIFTYVDDTDRQLIELALQIVGLKMNGKLEDARNIAKRIVGSDSSPSNNNAGLHSQNSSLNSYTNMMRNINDEQLITEVIKSFKRNNNLSTVNLSMCDVRGRTLLHLAAFNNWYSLVSLLIKYGSHLNDQDLFGFTPLHMACINGDLRIIRLLLECNVNIMKKTRNGFIAKQFFLMNYTVNKTRYSNYETSLFDDILTRLTKNTTGSSDTQPFERNVSQSSFNSSLFDDDDADHDYVQERKYLLADSAALAPEQSNCNDNTSFSILDSDSGYDISDCESSSDEIALEFFNTHKIKDFSSKPNEIPKTTKTSIEPDGSLWNRMLTRLNDELPKYEDLFPKKPKNWELGSKSVEIGPDNSAQMTVDDSQTSSEDDELEALQVGFNTIFSKKQNFQNDKMLLFFWIPLTLVLLLCFTLSNLGKDDDMFHNLSKIVQEYLRIGLAKVLLGNERMKTSFKMQLSKFQNNNILNDMRVN tps1_yeast Alpha,alpha-trehalose-phosphate synthase [UDP-forming] 56 kDa subunit TPS1 BYP1 CIF1 FDP1 GGS1 GLC6 YBR126C YBR0922 TSS1 protein protein yeast Saccharomyces cerevisiae MTTDNAKAQLTSSSGGNIIVVSNRLPVTITKNSSTGQYEYAMSSGGLVTALEGLKKTYTFKWFGWPGLEIPDDEKDQVRKDLLEKFNAVPIFLSDEIADLHYNGFSNSILWPLFHYHPGEINFDENAWLAYNEANQTFTNEIAKTMNHNDLIWVHDYHLMLVPEMLRVKIHEKQLQNVKVGWFLHTPFPSSEIYRILPVRQEILKGVLSCDLVGFHTYDYARHFLSSVQRVLNVNTLPNGVEYQGRFVNVGAFPIGIDVDKFTDGLKKESVQKRIQQLKETFKGCKIIVGVDRLDYIKGVPQKLHAMEVFLNEHPEWRGKVVLVQVAVPSRGDVEEYQYLRSVVNELVGRINGQFGTVEFVPIHFMHKSIPFEELISLYAVSDVCLVSSTRDGMNLVSYEYIACQEEKKGSLILSEFTGAAQSLNGAIIVNPWNTDDLSDAINEALTLPDVKKEVNWEKLYKYISKYTSAFWGENFVHELYSTSSSSTSSSATKN pyrx_yeast Orotate phosphoribosyltransferase 2 URA10 YMR271C YM8156.13C protein protein yeast Saccharomyces cerevisiae MSASTTSLEEYQKTFLELGLECKALRFGSFKLNSGRQSPYFFNLSLFNSGKLLANLATAYATAIIQSELKFDVIFGPAYKGIPLAAIVCVKLAEIGGTKFQGIQYAFNRKKVKDHGEGGIIVGASLEDKRVLIIDDVMTAGTAINEAFEIISIAQGRVVGCIVALDRQEVIHESDPERTSATQSVSKRYNVPVLSIVSLTQVVQFMGNRLSPEQKSAIENYRKAYGI wtm2_yeast Transcriptional modulator WTM2 WTM2 YOR229W YOR50-19 protein protein yeast Saccharomyces cerevisiae MAKSKSSQGASGARRKPAPSLYQHISSFKPQFSTRVDDVLHFSKTLTWRSEIIPDKSKGTLTTSLLYSQGSDIYEIDTTLPLKTFYDDDDDDDNDDDDEEGNGKTKSAATPNPEYGDAFQDVEGKPLRPKWIYQGETVAKMQYLESSDDSTAIAMSKNGSLAWFRDEIKVPVHIVQEMMGPATRYSSIHSLTRPGSLAVSDFDVSTNMDTVVKSQSNGYEEDSILKIIDNSDRPGDILRTVHVPGTNVAHSVRFFNNHLFASCSDDNILRFWDTRTADKPLWTLSEPKNGRLTSFDSSQVTENLFVTGFSTGVIKLWDARAVQLATTDLTHRQNGEEPIQNEIAKLFHSGGDSVVDILFSQTSATEFVTVGGTGNVYHWDMEYSFSRNDDDNEDEVRVAAPEELQGQCLKFFHTGGTRRSSNQFGKRNTVALHPVINDFVGTVDSDSLVTAYKPFLASDFIGRGYDD pex22_yeast Peroxisome assembly protein 22 PEX22 YAL055W protein protein yeast Saccharomyces cerevisiae MPPPSRSRINKTRTLGIVGTAIAVLVTSYYIYQKVTSAKEDNGARPPEGDSVKENKKARKSKCIIMSKSIQGLPIKWEEYAADEVVLLVPTSHTDGSMKQAIGDAFRKTKNEHKIIYCDSMDGLWSCVRRLGKFQCILNSRDFTSSGGSDAAVVPEDIGRFVKFVVDSDVEDVLIDTLCN q03900_yeast Hypothetical protein YDR132C protein protein yeast Saccharomyces cerevisiae MSNSPTVATLSQEYFDPNIPQILPHEKMYKIQVGKSLFKISGASLSSDGPSFFTEYFSKKRSPSNNDDSNNDTMESNKNEVLFIDRSAEVFEWIYQHLQGYIIEIKDEVQYTMLFADAMYYNLPRLRSLLKETDYYFTNIGGQSFKIAKNLFRREGDSPNYFEIYAATVYIDVEELIISKKLLRPPSHSAPYIPRSSEYFKDLLTLLGGASIDLDDNKRNALIKECRYYRLLNLEQRLIKSHISYNPITRKEEICLLLKDLSKKGITFPASSAFSTSPYFEDDFCSINECDSLSKTREQPANKKIKLDMTEKYNDSWNMLCYKRPFLDKHPRELIFQINSTDCTIILNKESQSIHVDITGESAYKFEALFGSHLPNTPSGAPKLKNYQYRFPSDSTQTKIETHYLLPACIYLCDLDINGIKISQVQTLLTDKNKFNDRVIDVSDPLDLRFCSGLKLYLRKSLWKLAVKDGNIMLIAIKAIAFNGTKEYYKGYEYL pnc1_yeast Nicotinamidase PNC1 YGL037C protein protein yeast Saccharomyces cerevisiae MKTLIVVDMQNDFISPLGSLTVPKGEELINPISDLMQDADRDWHRIVVTRDWHPSRHISFAKNHKDKEPYSTYTYHSPRPGDDSTQEGILWPVHCVKNTWGSQLVDQIMDQVVTKHIKIVDKGFLTDREYYSAFHDIWNFHKTDMNKYLEKHHTDEVYIVGVALEYCVKATAISAAELGYKTTVLLDYTRPISDDPEVINKVKEELKAHNINVVDK ykg1_yeast Hypothetical 13.5 kDa protein in MSN4-FBA1 intergenic region YKL061W YKL321 protein protein yeast Saccharomyces cerevisiae MGEQNKLYYDVEKLVNSLQESFDLDCAQSVSLFTSKSRSNEAWLEELENKFKLKDDVELDDVENLRAEIDMKLNMLEDKVSYYERLYKELEEFQNEIKIKTVVNNRRQSRTPK yk44_yeast Putative 101.8 kDa transcriptional regulatory protein in LAS1-CCP1 intergenic region YKR064W protein protein yeast Saccharomyces cerevisiae MGYDSQVRTKKRHRITVVCTNCKKRKSKCDRTKPCGTCVRLGDVDSCVYLTDSSGQPESSPSLNDADPLRKQSTPAERISPGFIKKRRSSQTRQDEDHWQRVRELENQSSLYYLPIHEETPFFIDLIPNGFYLETKRSADNLFGLFTDRAIENRDPYLQAMVTFRSIAIKKMMDKLGSNGNNVKNGSLPKSFEALSTFDADDERHISDDVVGKGNNFRMHQTIHKSLFNKFAQYRENNAKKFSSETILAKDYLPPLKILESEVLALFEEKIYNMIPIFDMKVLRHEITIFYQNIVEKGNPISIKHYDHMVFCIILLIIKICRLSVQFSKLTPYIYPVLQEIDTSKFLALVKHYLFETKVLRKCNLLQLQCLILLRFLHWCAPEDGDGPETQYCQILMGTIISSCKEMGINWYCFSHPEKYSFKINRHTRPSYDIMKPSDYISVFRKIWSYVLFWDRKMCFISGEECQIGKTLQCHFKEEADTPTWYIRMLTLDNLMKKINDTLNDDPGKVDLNLLHRLINDLKRNFHILKSLSKNEKETMRHFDFEMEWIIDLFSLSLLHGEMIFYEYDCNITKFYKSFQDLWDMVIHISEKCYNYFFNSDALEVDSLTKFYTNRIVEIVANKVLVIVPAFILRGDRFKTIQYADKKKMIEFLYGVSSVYFNEFGFEYYRCFRKMFTAKIAYKILNRSCEKDAWRIILKFLLNELKLEDNGDSYIDYNDMRLNDICPIILEFQETVQKYDGYRPDILSIWNNEFYPIGKYNDDMTGFKFQMRIKEMQEFLDMEKYSDRFNIFSSFYDHASSQLAKHTEVDTNISITNEQVAEIPQKELLQQPLAPALPVNDLIVSEFDVIEDIFDPVDFVSFF q08229_yeast S.cerevisiae chromosome XV reading frame ORF YOL070c YOL070C protein protein yeast Saccharomyces cerevisiae MSEEREENGISRATLNTQRLSAMIDSLNNEKDDRLFPSPTTTRTMITEEKADQSDVFKPPSRLLRSPAGDVSLPPGDNRSSMISNYSGIIQEGVEVSYVVKNRQQTQERRTSKDSNSLYSLKEPVSKNELPSLPMLPSEATLTKHLSDNQSTKSNTNADEIVIKPVTNAKPVGRFNSNTSKKVEGRGSLKLLSSPLRQEKVMRSSIGSGNLASESGSSTYNTKFHQSIQEQLEEEEEGNVSDKLSIVSSVIPELYTTTNEAPKAINPIRSETNDYNPTIPPRSKDRPRSRLFIEEGDGEGDLLTEEILPTPVQPGGHYKNSSQISTVSEQKSESYYSAATSMPPEEETYLTRPLPSTPNEDSRVTSNLKRDDTLKAIHDRANHTSTSTNKQDDDMYEDIIEETPKKTKLKKDTKKKLNKKKSVKELRSFDIDTLNQLLSVTKGTLIGSEFAQLGMKIEEKRALERLVDSLSRLTADMVLDPDRYEEGLKRLDKATKALEGF q06608_yeast Ypr172wp YPR172W protein protein yeast Saccharomyces cerevisiae MAWTSTLPAHLLNLIKNSKYVHVATCSKDCIPSVALMNYIYVPGEKLFGQTDNKNDYIIFVSPQDTQKFYNIKENPKVALLFHDWIIANNLSVGKESISGTPTPTSIPHEEQRQSELLNLLQELNQAELNQMSASIGGETEIVNPESEESKYYKDLILKANPDAKAFIFEKNTAVVKVRIDNARVSNNENRTMFLSKGKS orc3_yeast Origin recognition complex subunit 3 ORC3 OAF1 OIF1 YLL004W L1365 protein protein yeast Saccharomyces cerevisiae MSDLNQSKKMNVSEFADAQRSHYTVYPSLPQSNKNDKHIPFVKLLSGKESEVNVEKRWELYHQLHSHFHDQVDHIIDNIEADLKAEISDLLYSETTQKRRCFNTIFLLGSDSTTKIELKDESSRYNVLIELTPKESPNVRMMLRRSMYKLYSAADAEEHPTIKYEDINDEDGDFTEQNNDVSYDLSLVENFKRLFGKDLAMVFNFKDVDSINFNTLDNFIILLKSAFKYDHVKISLIFNINTNLSNIEKNLRQSTIRLLKRNYHKLDVSSNKGFKYGNQIFQSFLDTVDGKLNLSDRFVEFILSKMANNTNHNLQLLTKMLDYSLMSYFFQNAFSVFIDPVNVDFLNDDYLKILSRCPTFMFFVEGLIKQHAPADEILSLLTNKNRGLEEFFVEFLVRENPINGHAKFVARFLEEELNITNFNLIELYHNLLIGKLDSYLDRWSACKEYKDRLHFEPIDTIFQELFTLDNRSGLLTQSIFPSYKSNIEDNLLSWEQVLPSLDKENYDTLSGDLDKIMAPVLGQLFKLYREANMTINIYDFYIAFRETLPKEEILNFIRKDPSNTKLLELAETPDAFDKVALILFMQAIFAFENMGLIKFQSTKSYDLVEKCVWRGI sua5_yeast SUA5 protein SUA5 YGL169W G1660 protein protein yeast Saccharomyces cerevisiae MYLGRHFLAMTSKALFDTKILKVNPLSIIFSPDAHIDGSLPTITDPETEAALVEAARIIRDTDETVAFPTETVYGLGGSALNDNSVLSIYRAKNRPSDNPLITHVSSIDQLNRKVFNQPHLSGTSLFDNIPSIYRPLISSLWPGPLTILLPVPSSEHSALSKLTTADQPTFAVRIPANPVARALIALSDTPIAAPSANASTRPSPTLASHVYHDLKDKIPIILDGGACKVGVESTVVDGLCNPPTLLRPGGFTYEEIVKLGGEAWSLCKVENKKTVEKGEKVRTPGMKYRHYSPSAKVVLLVPHCEGDGILKGVDRMERLKRLIETELKANSNIKKIAILTSLKLRDSDLQSKIFNEPDFSSKTFIIERLGQSGEEIQTNLFAALRKVDENDKVDLIFVEGINEEGEGLAVMNRLRKAAANNCIQF pau7_yeast PAU7 protein PAU7 YAR020C protein protein yeast Saccharomyces cerevisiae MVKLTSIAAGVAAIAAGASAAATTTLSQSDERVNLVELGVYVSDIRAHLAEYYSF fat2_yeast Peroxisomal-coenzyme A synthetase FAT2 PCS60 YBR222C YBR1512 protein protein yeast Saccharomyces cerevisiae MTSAATVTASFNDTFSVSDNVAVIVPETDTQVTYRDLSHMVGHFQTMFTNPNSPLYGAVFRQDTVAISMRNGLEFIVAFLGATMDAKIGAPLNPNYKEKEFNFYLNDLKSKAICVPKGTTKLQSSEILKSASTFGCFIVELAFDATRFRVEYDIYSPEDNYKRVIYRSLNNAKFVNTNPVKFPGFARSSDVALILHTSGTTSTPKTVPLLHLNIVRSTLNIANTYKLTPLDRSYVVMPLFHVHGLIGVLLSTFRTQGSVVVPDGFHPKLFWDQFVKYNCNWFSCVPTISMIMLNMPKPNPFPHIRFIRSCSSALAPATFHKLEKEFNAPVLEAYAMTEASHQMTSNNLPPGKRKPGTVGQPQGVTVVILDDNDNVLPPGKVGEVSIRGENVTLGYANNPKANKENFTKRENYFRTGDQGYFDPEGFLVLTGRIKELINRGGEKISPIELDGIMLSHPKIDEAVAFGVPDDMYGQVVQAAIVLKKGEKMTYEELVNFLKKHLASFKIPTKVYFVDKLPKTATGKIQRRVIAETFAKSSRNKSKL p87271_yeast YDR455CP YDR455C protein protein yeast Saccharomyces cerevisiae MNNAHEENISSVTGFKSTSGSPAIGSSLPGRSGEGRSSSSSSGSTALLAVVNSTLKAIFSNTLDSIFHMVCTDSDKRLSSEFHCLQSMFNLQLFVNLGCPLS secu_yeast Securin PDS1 YDR113C YD9727.08C protein protein yeast Saccharomyces cerevisiae MMPANEDKENNIVYTGNESSGINFPQTPAHLLKRSHSNILKPPVRLDQLKRDANSNNGNTLKYIQGGKEVSPTKRLHTHAQQQGRLPLAAKDNNRSKSFIFPETSNQSKDADLPQLQNTLSIRKNDQLRKLSQISRSRSRANHNDLLSNSRKLQKYGSVLGYNALPKMKSLVLKDLADSGKNEESSDDDEGNEDSESKLGKKLQSALLKQDSSDGENELNGGLGLFNEQGGLQQLIKNSTKNEQKTKNDKSDKTDDYDIEIAPQRQEPLPYVPEGYSPFQQDDIEKLKTFNSPYKLDLEDEDDTPDKVDLLPLEQIDEEGEKDETECITRNQEEGAALPLLSKNFKEVAAVPTMELVYSEEGLDPEELEDLVT erg25_yeast C-4 methylsterol oxidase ERG25 FET6 YGR060W protein protein yeast Saccharomyces cerevisiae MSAVFNNATLSGLVQASTYSQTLQNVAHYQPQLNFMEKYWAAWYSYMNNDVLATGLMFFLLHEFMYFFRCLPWFIIDQIPYFRRWKLQPTKIPSAKEQLYCLKSVLLSHFLVEAIPIWTFHPMCEKLGITVEVPFPSLKTMALEIGLFFVLEDTWHYWAHRLFHYGVFYKYIHKQHHRYAAPFGLSAEYAHPAETLSLGFGTVGMPILYVMYTGKLHLFTLCVWITLRLFQAVDSHSGYDFPWSLNKIMPFWAGAEHHDLHHHYFIGNYASSFRWWDYCLDTESGPEAKASREERMKKRAENNAQKKTN pt111_yeast PET111 protein, mitochondrial precursor PET111 YMR257C YM9920.11C protein protein yeast Saccharomyces cerevisiae MLQRRFISSSGIKRLLHRESNKVMHTVFFKVRYYSTELIKKKHKEDIEDWVKAQLKDSSTISGVYESRNKLDWMDSITKSPSSLDILKNQYNIVKDKDFGILWKQKFESADPDILMTIISLSTNQKVLFSIQQLLILINSLHFLKRDYDIGQIYTTYEQFTPLLASHTDKGTYGQFIEIMLVVQHNLHHFDVCETLFAEYIKYCKVKPQMISLGLNSFIRSNNTQLAVEFYTQAITNPDTFPITEKQLFEFLRCMERYLDMSSMKHIFYLWLKVKCGDEQSSSTNLPSFKTLAIIHRMLLRFSNTDELNDFLTNPVVLSTGYTSSVQFELIEFCHSLYCIKGDRTKSIDDSILMERVDKFITRLNNNISTRKELYMSVVQAYVSTNNFENLKVILEKIQRDNDISIDGSFHLCISRYFVNTNQFEGLFKYYRSVVKTTDGKTRLRPAFIQQLWSCAVNVYPMLAKEITNDLLVTLKRSQYSKCLTWVYTFLQENAHIHTRKINGGEDSSLSGFNAVDFERFEEFKKKVSHNDVYGAELVISNSLKEGIAPQFSFLYSVLALCLRNSLTGLARVVDVILRTRFRYIPLKVDILWLKWEIISNYRSFEKLSAEHLKELEFKLKEFERVHQKELSVQNYLQLTQICFHTRDFKYACYLISQARKNLDTSNNKQWMMYYMTSLKLASRMHESERFSRILKDWNCNHRASLITPGCIRQIKGFMKYFEKRPAYISTAASIDNKEIKDRIDELVLRYVDYKYQGLENMRKLTLFLKEWFDEEISLLKLEQNERKMKLFEENKKEEE bos1_yeast Vesicular transport protein BOS1 BOS1 YLR078C L9449.9 protein protein yeast Saccharomyces cerevisiae MNALYNHAVKQKNQLQQELARFEKNSVTAPISLQGSISATLVSLEKTVKQYAEHLNRYKEDTNAEEIDPKFANRLATLTQDLHDFTAKFKDLKQSYNENNSRTQLFGSGASHVMDSDNPFSTSETIMNKRNVGGASANGKEGSSNGGGLPLYQGLQKEQSVFERGNAQLDYILEMGQQSFENIVEQNKILSKVQDRMSNGLRTLGVSEQTITSINKRVFKDKLVFWIALILLIIGIYYVLKWLR ltv1_yeast Low-temperature viability protein LTV1 LTV1 YKL143W YKL2 protein protein yeast Saccharomyces cerevisiae MSKKFSSKNSQRYVVVHRPHDDPSFYDTDASAHVLVPVSNPNKTSPEADLRKKDVSSTKPKGRRAHVGEAALYGINFDDSEYDYTQHLKPIGLDPENSIFIASKGNEQKVEKKNIEDLFIEPKYRRDEIEKDDALPVFQRGMAKPEYLLHQQDTTDEIRGFKPDMNPALREVLEALEDEAYVVNDDVVVEDISKKTQLQGDNYGEEEKEDDIFAQLLGSGEAKDEDEFEDEFDEWDIDNVENFEDENYVKEMAQFDNIENLEDLENIDYQADVRRFQKDNSILEKHNSDDEFSNAGLDSVNPSEEEDVLGELPSIQDKSKTGKKKRKSRQKKGAMSDVSGFSMSSSAIARTETMTVLDDQYDQIINGYENYEEELEEDEEQNYQPFDMSAERSDFESMLDDFLDNYELESGGRKLAKKDKEIERLKEAADEVSKGKLSQRRNRERQEKKKLEKVTNTLSSLKF ym74_yeast Hypothetical 26.5 kDa protein in FUS2-RNH1 intergenic region YMR233W YM9959.15 protein protein yeast Saccharomyces cerevisiae MADINKYIPMVDAILSVSNPDEISPKRVRKALQILYSVNLDSQRKLINELILERFGDIQENPRVLIPKNDLISRDQELSLRLQKEEERPLRSTRKRKGKSESKSKRKKKKNDSPDSNSISVRKVLLSAPLQKFLGSEELPRTQVVKMIWQYIKEHDLQNPKDRREILCDEKMEPIFGKKMTMFSMNKLLTKHLFNPDEIVKHEEEQKQTPEKEIKLENESLPNLSG q08601_yeast S.cerevisiae chromosome XV reading frame ORF YOR197w MCA1 protein protein yeast Saccharomyces cerevisiae MKMSLEVYLNYHQRRPTRFTIMYPGSGRYTYNNAGGNNGYQRPMAPPPNQQYGQQYGQQYEQQYGQQYGQQNDQQFSQQYAPPPGPPPMAYNRPVYPPPQFQQEQAKAQLSNGYNNPNVNASNMYGPPQNMSLPPPQTQTIQGTDQPYQYSQCTGRRKALIIGINYIGSKNQLRGCINDAHNIFNFLTNGYGYSSDDIVILTDDQNDLVRVPTRANMIRAMQWLVKDAQPNDSLFLHYSGHGGQTEDLDGDEEDGMDDVIYPVDFETQGPIIDDEMHDIMVKPLQQGVRLTALFDSCHSGTVLDLPYTYSTKGIIKEPNIWKDVGQDGLQAAISYATGNRAALIGSLGSIFKTVKGGMGNNVDRERVRQIKFSAADVVMLSGSKDNQTSADAVEDGQNTGAMSHAFIKVMTLQPQQSYLSLLQNMRKELAGKYSQKPQLSSSHPIDVNLQFIM prof_yeast Profilin PFY1 PFY PRF1 YOR122C O3275 YOR3275C protein protein yeast Saccharomyces cerevisiae MSWQAYTDNLIGTGKVDKAVIYSRAGDAVWATSGGLSLQPNEIGEIVQGFDNPAGLQSNGLHIQGQKFMLLRADDRSIYGRHDAEGVVCVRTKQTVIIAHYPPTVQAGEATKIVEQLADYLIGVQY bnr1_yeast BNI1-related protein 1 BNR1 YIL159W protein protein yeast Saccharomyces cerevisiae MDSSPNKKTYRYPRRSLSLHARDRVSEARKLEELNLNDGLVAAGLQLVGVALEKQGTGSHIYMKQKNFSANDVSSSPMVSEEVNGSEMDFNPKCMPQDASLVERMFDELLKDGTFFWGAAYKNLQNISLRRKWLLICKIRSSNHWGKKKVTSSTTYSTHLATNELAENAHFLDGLVRNLSTGGMKLSKALYKLEKFLRKQSFLQLFLKDEIYLTTLIEKTLPLISKELQFVYLRCFKILMNNPLARIRALHSEPLIRWFTELLTDQNSNLKCQLLSMELLLLLTYVEGSTGCELIWDQLSILFTDWLEWFDKILADDIAIHSSLYLNWNQLKIDYSTTFLLLINSILQGFNNKTALEILNFLKKNNIHNTITFLELAYKDDPNSVVIMEQIKQFKSKESAIFDSMIKTTNDTNSLHPTKDIARIESEPLCLENCLLLKAKDSPVEAPINEIIQSLWKILDSQKPYSESIKLLKLINSLLFYLIDSFQVSTNPSFDETLESAENVDYVFQDSVNKLLDSLQSDEIARRAVTEIDDLNAKISHLNEKLNLVENHDKDHLIAKLDESESLISLKTKEIENLKLQLKATKKRLDQITTHQRLYDQPPSLASSNLSIAGSIIKNNSHGNIIFQNLAKKQQQQQKISLPKRSTSLLKSKRVTSLSSYLTDANNENESQNESEDKSKDSLFQRSTSTINFNIPSMKNITNMQNVSLNSILSELEFSNSLGTQPNYQSSPVLSSVSSSPKLFPRLSSDSLDNGIQLVPEVVKLPQLPPPPPPPPPPPLPQSLLTEAEAKPDGVSCIAAPAPPPLPDLFKTKTCGAVPPPPPPPPLPESLSMNKGPSNHDLVTPPAPPLPNGLLSSSSVSINPTTTDLKPPPTEKRLKQIHWDKVEDIKDTLWEDTFQRQETIKELQTDGIFSQIEDIFKMKSPTKIANKRNAESSIALSSNNGKSSNELKKISFLSRDLAQQFGINLHMFSQLSDMEFVMKVLNCDNDIVQNVNILKFFCKEELVNIPKSMLNKYEPYSQGKDGKAVSDLQRADRIFLELCINLRFYWNARSKSLLTLSTYERDYYDLIFKLQKIDDAISHLNRSPKFKSLMFIITEIGNHMNKRIVKGIKLKSLTKLAFVRSSIDQNVSFLHFIEKVIRIKYPDIYGFVDDLKNIEDLGKISLEHVESECHEFHKKIEDLVTQFQVGKLSKEENLDPRDQIIKKVKFKINRAKTKSELLIGQCKLTLIDLNKLMKYYGEDPKDKESKNEFFQPFIEFLAMFKKCAKENIEKEEMERVYEQRKSLLDMRTSSNKKSNGSDENDGEKVNRDAVDLLISKLREVKKDPEPLRRRKSTKLNEIAINVHEGDVKTRKDEDHVLLERTHAMLNDIQNI plb1_yeast Lysophospholipase 1 precursor PLB1 YMR008C YM8270.10C protein protein yeast Saccharomyces cerevisiae MKLQSLLVSAAVLTSLTENVNAWSPNNSYVPANVTCDDDINLVREASGLSDNETEWLKKRDAYTKEALHSFLNRATSNFSDTSLLSTLFGSNSSNMPKIAVACSGGGYRAMLSGAGMLAAMDNRTDGANEHGLGGLLQGATYLAGLSGGNWLTSTLAWNNWTSVQAIVDNTTESNSIWDISHSILTPDGINIFKTGSRWDDISDDVQDKKDAGFNISLADVWGRALAYNFWPSLHRGGVGYTWSTLREADVFKNGEMPFPITVADGRYPGTTVINLNATLFEFNPFEMGSWDPTLNAFTDVKYLGTNVTNGKPVNKGQCIAGFDNTGFITATSSTLFNQFLLRLNSTDLPSFIANLATDFLEDLSDNSDDIAIYAPNPFKEANFLQKNATSSIIESEYLFLVDGGEDNQNIPLVPLLQKERELDVIFALDNSADTDDYWPDGASLVNTYQRQFGSQGLNLSFPYVPDVNTFVNLGLNKKPTFFGCDARNLTDLEYIPPLIVYIPNSRHSFNGNQSTFKMSYSDSERLGMIKNGFEAATMGNFTDDSDFLGCVGCAIIRRKQQNLNATLPSECSQCFTNYCWNGTIDSRSVSGVGNDDYSSSASLSASAAAASASASASASASASASGSSTHKKNAGNALVNYSNLNTNTFIGVLSVISAVFGLI ppt1_yeast Serine/threonine protein phosphatase T PPT1 YGR123C G6347 protein protein yeast Saccharomyces cerevisiae MSTPTAADRAKALERKNEGNVFVKEKHFLKAIEKYTEAIDLDSTQSIYFSNRAFAHFKVDNFQSALNDCDEAIKLDPKNIKAYHRRALSCMALLEFKKARKDLNVLLKAKPNDPAATKALLTCDRFIREERFRKAIGGAENEAKISLCQTLNLSSFDANADLANYEGPKLEFEQLYDDKNAFKGAKIKNMSQEFISKMVNDLFLKGKYLPKKYVAAIISHADTLFRQEPSMVELENNSTPDVKISVCGDTHGQFYDVLNLFRKFGKVGPKHTYLFNGDFVDRGSWSCEVALLFYCLKILHPNNFFLNRGNHESDNMNKIYGFEDECKYKYSQRIFNMFAQSFESLPLATLINNDYLVMHGGLPSDPSATLSDFKNIDRFAQPPRDGAFMELLWADPQEANGMGPSQRGLGHAFGPDITDRFLRNNKLRKIFRSHELRMGGVQFEQKGKLMTVFSAPNYCDSQGNLGGVIHVVPGHGILQAGRNDDQNLIIETFEAVEHPDIKPMAYSNGGFGL p2a1_yeast Serine/threonine protein phosphatase PP2A-1 catalytic subunit PPH21 YDL134C D2180 protein protein yeast Saccharomyces cerevisiae MDTDLDVPMQDAVTEQLTPTVSEDMDLNNNSSDNNAEEFSVDDLKPGSSGIADHKSSKPLELNNTNINQLDQWIEHLSKCEPLSEDDVARLCKMAVDVLQFEENVKPINVPVTICGDVHGQFHDLLELFKIGGPCPDTNYLFMGDYVDRGYYSVETVSYLVAMKVRYPHRITILRGNHESRQITQVYGFYDECLRKYGSANVWKMFTDLFDYFPITALVDNKIFCLHGGLSPMIETIDQVRELNRIQEVPHEGPMCDLLWSDPDDRGGWGISPRGAGFTFGQDVSEQFNHTNDLSLIARAHQLVMEGYAWSHQQNVVTIFSAPNYCYRCGNQAAIMEVDENHNRQFLQYDPSVRPGEPSVSRKTPDYFL rpb3_yeast DNA-directed RNA polymerase II 45 kDa polypeptide RPB3 YIL021W protein protein yeast Saccharomyces cerevisiae MSEEGPQVKIREASKDNVDFILSNVDLAMANSLRRVMIAEIPTLAIDSVEVETNTTVLADEFIAHRLGLIPLQSMDIEQLEYSRDCFCEDHCDKCSVVLTLQAFGESESTTNVYSKDLVIVSNLMGRNIGHPIIQDKEGNGVLICKLRKGQELKLTCVAKKGIAKEHAKWGPAAAIEFEYDPWNKLKHTDYWYEQDSAKEWPQSKNCEYEDPPNEGDPFDYKAQADTFYMNVESVGSIPVDQVVVRGIDTLQKKVASILLALTQMDQDKVNFASGDNNTASNMLGSNEDVMMTGAEQDPYSNASQMGNTGSGGYDNAW ynb1_yeast Hypothetical 49.9 kDa protein in SPO1-SIS1 intergenic region YNL011C N2862 protein protein yeast Saccharomyces cerevisiae MNVVVCSGGTATNSLTPCFSNISILKGHELTYILPISDNGGSTSEILRIVGGPAIGDIRSRIVRLLQDEQLVELFGHRLPNDKLLAKKEWNEIVEGSHPIWKNISIEVKEMCRSFIIHMQAELLKKIKHSNPFQFESASIGNFFLTGARLFLGSLDASIELMMRIGRCSPLVHVIPCINTNHTHHISALLTNGEMITGQSQISHPSKSVPKDNSIAHSAKFIHLLGSYDDHLKILLDDEEEEAEEEYANPIYILPELKNSQLHFDKLDESQNLPAPVHRILYINPYGEEIKPMGNPRAISKVKKADMVVYSIGSLMTSLLPILILGNLAEVILESNNTKKVLLINNKYDREVFGLDGLHYVQMIIDSMSRAIAGYRQSKGVHSENDDFEWQDFITDIVYLKNGEIEIDETIFEKHSIRCHQIASSDKMESEELEKVLNQIGLKN prp16_yeast Pre-mRNA splicing factor RNA helicase PRP16 PRP16 YKR086W YKR406 protein protein yeast Saccharomyces cerevisiae MGHSGREERIKDIFKELTSKELTPGLLLTLQKLAQKPNTNLEQFIASCKALTKLSSNNPIIFNELLELLKNKSEEDSTGPKKIAPSINKRKKFKIQLDLDDNEDELDSPVQKKPAPTRTLFKRIDKLKAKQLRQYSPTVKDPSPNSEQQTQNGHAETKDYEPTRSEVVEEDREWYDNDDDYGNLVPEPLSELPEEAKLLPVIRNIDNDDALRNTVQLYPIPLKQRMEWIPPFLSKFALENKVPTSIIIGSISETSSQVSALSMVNPFRNPDSEFSANAKRGSKLVALRRINMEHIQQSRDNTTVLNTAMGEVLGLENNNKAKDKSNQKICDDTALFTPSKDDIKHTKEQLPVFRCRSQLLSLIRENQVVVIIGETGSGKTTQLAQYLYEEGYANDRGKSIVVTQPRRVAAISVAKRVAMEMQVPLGKEVGYSIRFEDVTDSECTKLKFVTDGILLRETLLDDTLDKYSCVIIDEAHERSLNTDILLGFFKILLARRRDLKLIITSATMNAKKFSAFFGNAPQFTIPGRTFPVQTIYTSNPVQDYVEAAVSQAVKIHLANDCSSGDILIFMTGQEDIETTFDTLQEKFLQVYSKKFGTANFEEINDIEILPIYSALPADLQFKIFQDLHGTKRKIIIATNIAETSLTIKGIRYVIDCGYSKLKVYNPKIGLDSLVITPISKANADQRSGRAGRTAPGTAYRLYTEDTFKEDMYLQTIPEIQRTNLSNTLLLLKSLDVTDELSKFPFIDKPPLQTFLSSLYELWFIGAIDTSGQLTPLGLQMAKFPLQPSLSKILLIAVRNGCSDEMLTIVSMLSVPQVFYRPKERQKEADIARNKFFIAKSDHLTLLNVFEQWRANNFSSHWCNKHFVQYKSLVRARDIRDQLLTILKSQKIPVISSGKDWDIIKKCICSGFAHQAAKITGLRNYVHLKTGVSVQLHPTSALHGLGDLPPYVVYHELLMTSKEYICCVTSVDPFWLMEYGGLLYDIKRIKNDQEATTTGLFGEHYEHTLDKVEDDIDINIRRCKDMRDSVIQELKMTDNSNKEDKKQKTKKQNILNGKENSMKPFKRRKPFF ccl1_yeast Cyclin CCL1 CCL1 YPR025C YP9367.05C protein protein yeast Saccharomyces cerevisiae MTDIQLNGKSTLDTPSATMSAKEKEAKLKSADENNKPPNYKRISDDDLYRHSSQYRMWSYTKDQLQEKRVDTNARAIAYIEENLLKFREAHNLTEEEIKVLEAKAIPLTMEEELDLVNFYAKKVQVIAQHLNLPTEVVATAISFFRRFFLENSVMQIDPKSIVHTTIFLACKSENYFISVDSFAQKAKSTRDSVLKFEFKLLESLKFSLLNHHPYKPLHGFFLDIQNVLYGKVDLNYMGQIYDRCKKRITAALLTDVVYFYTPPQITLATLLIEDEALVTRYLETKFPSREGSQESVPGNEKEEPQNDASTTEKNKEKSTESEEYSIDSAKLLTIIRECKSIIEDCKPPSTEEAKKIAAKNYYCQNPSTLIQKLKRKLNGEDTSSTVEKKQKT dib1_yeast Spliceosomal protein DIB1 DIB1 CDH1 SNU16 YPR082C P9513.12 protein protein yeast Saccharomyces cerevisiae MASVLLPQLRTGWHVDQAIVTETKRLVVIRFGRKNDRQCMIMDELLSSIAERVRNFAVIYLCDIDEVSDFDEMYELTDPMTVMFFYHNKHMMCDFGTGNNNKLNFIVDDKQEMIDILETIFRGARKNKGLVVSPYDYNHKRVS rrp44_yeast Exosome complex exonuclease RRP44 DIS3 RRP44 YOL021C O2197 protein protein yeast Saccharomyces cerevisiae MSVPAIAPRRKRLADGLSVTQKVFVRSRNGGATKIVREHYLRSDIPCLSRSCTKCPQIVVPDAQNELPKFILSDSPLELSAPIGKHYVVLDTNVVLQAIDLLENPNCFFDVIVPQIVLDEVRNKSYPVYTRLRTLCRDSDDHKRFIVFHNEFSEHTFVERLPNETINDRNDRAIRKTCQWYSEHLKPYDINVVLVTNDRLNREAATKEVESNIITKSLVQYIELLPNADDIRDSIPQMDSFDKDLERDTFSDFTFPEYYSTARVMGGLKNGVLYQGNIQISEYNFLEGSVSLPRFSKPVLIVGQKNLNRAFNGDQVIVELLPQSEWKAPSSIVLDSEHFDVNDNPDIEAGDDDDNNESSSNTTVISDKQRRLLAKDAMIAQRSKKIQPTAKVVYIQRRSWRQYVGQLAPSSVDPQSSSTQNVFVILMDKCLPKVRIRTRRAAELLDKRIVISIDSWPTTHKYPLGHFVRDLGTIESAQAETEALLLEHDVEYRPFSKKVLECLPAEGHDWKAPTKLDDPEAVSKDPLLTKRKDLRDKLICSIDPPGCVDIDDALHAKKLPNGNWEVGVHIADVTHFVKPGTALDAEGAARGTSVYLVDKRIDMLPMLLGTDLCSLKPYVDRFAFSVIWELDDSANIVNVNFMKSVIRSREAFSYEQAQLRIDDKTQNDELTMGMRALLKLSVKLKQKRLEAGALNLASPEVKVHMDSETSDPNEVEIKKLLATNSLVEEFMLLANISVARKIYDAFPQTAMLRRHAAPPSTNFEILNEMLNTRKNMSISLESSKALADSLDRCVDPEDPYFNTLVRIMSTRCMMAAQYFYSGAYSYPDFRHYGLAVDIYTHFTSPIRRYCDVVAHRQLAGAIGYEPLSLTHRDKNKMDMICRNINRKHRNAQFAGRASIEYYVGQVMRNNESTETGYVIKVFNNGIVVLVPKFGVEGLIRLDNLTEDPNSAAFDEVEYKLTFVPTNSDKPRDVYVFDKVEVQVRSVMDPITSKRKAELLLK mthr1_yeast Methylenetetrahydrofolate reductase 1 MET12 YPL023C LPB8C protein protein yeast Saccharomyces cerevisiae MSIRDLYHARASPFISLEFFPPKTELGTRNLMERMHRMTALDPLFITVTWGAGGTTAEKTLTLASLAQQTLNIPVCMHLTCTNTEKAIIDDALDRCYNAGIRNILALRGDPPIGEDWLDSQSNESPFKYAVDLVRYIKQSYGDKFCVGVAAYPEGHCEGEAEGHEQDPLKDLVYLKEKVEAGADFVITQLFYDVEKFLTFEMLFRERISQDLPLFPGLMPINSYLLFHRAAKLSHASIPPAILSRFPPEIQSDDNAVKSIGVDILIELIQEIYQRTSGRIKGFHFYTLNLEKAIAQIVSQSPVLSHIVNESSEEEGEDETSGEIGSIENVPIEDADGDIVLDDSNEETVANRKRRRHSSLDSAKLIFNRAIVTEKGLRYNNENGSMPSKKALISISKGHGTLGRDATWDEFPNGRFGDSRSPAYGEIDGYGPSIKVSKSKALELWGIPKTIGDLKDIFIKYLEGSTDAIPWSDLGLSAETALIQEELIQLNYRGYLTLASQPATNATLSSDKIFGWGPAKGRLYQKAFVEMFIHRQQWETTLKPKLDHYGRRKFSYYAGDSSGSFETNLDPHSSSVVTWGVFPNSPVKQTTIIEEESFKAWRDEAFSIWSEWAKLFPRNTPANILLRLVHKDYCLVSIVHHDFKETDELWEMLLDQA kic1_yeast Serine/threonine-protein kinase KIC1 KIC1 NRK1 YHR102W protein protein yeast Saccharomyces cerevisiae MTTKPQNSKQGLAEGEMDVSSLFKRTEVIGRGKFGVVYKGYNVKTGRVYAIKVLNLDSDSDEVEDVQREIQFLASLKQISNITRYYGSYLKDTSLWIIMEHCAGGSLRSLLRPGKIDEKYIGVIMRELLVALKCIHKDNVIHRDIKAANVLITNEGNVKLCDFGVAAQVNQTSLRRQTMAGTPYWMAPEVIMEGVYYDTKVDIWSLGITTYEIATGNPPYCDVEALRAMQLIIKSKPPRLEDRSYSTSLKEFIALCLDEDPKERLSADDLLKSKFIRAHKATPTSILKELISRYLLFRDKNKNKYKIEGSIPENEPSKPSEAPKPSQNGGGDEAQKSIASNDNEIKRVNEGDVEMKWDFDSLSSSDYIIENNINLDALAEDNNEWATAQHDLFNYAYPDEDSYYFDPTSHNTRPFVYQGTTIGKGYPGTIAQNSTLNAPVTNNYTNSKYPSKMVAGTTNTSGTHTAGPMTSSKRLESKAPKQLLELFEDNEIITAENDVNTEAPKISKSISSLNAGNSSRDDFIPSISNEVNGNINNNKMRPHLPPLSSGNNYYSQSTPALPLLQTKFNKTSKGPPTSGLTTAPTSIEIEIPEELPNSALPTPASADPVLIPSTKARSSTVTAGTPSSSSSIQYKSPSNVPRRLTVSNNRPEHCPSTITNQKLGSAVASNSGISSTPNNSNNYNNNTDSENSRGSSGSNTANSTQMGITNPGNVTKLSTHKASSPSRPLFGVGTSPNRKPAGSPTQNIGHNSTHTNLAPPPTMKPMANSKDNKDILLQPLNSIPSSSTLNTISGNSSNNLTSSNYFSNEKEGSRVNGDFKRNNPNLKLQMPLPTPVVRNKLLDPNTATSQNNNGMPGSAGISTNENINQFGFNTSSASNIPVSMTPISEKHIDFGGKIKRSQSISNRKNSSASEHPLNILGSSVSGNVSGIGNNNVGSNNNSGPNNSVPLSANTGNTTIKANSTTIATSSSAAASTTAPISQQTIPSGTQFNHILSSAATAANSVNSLGFGMCPPPQSLQMEMFLDLESFLPGKQRRVDRKPQVLKELENLLQMFEEGLPCIEHALKEQLISTPIKDNEH ump1_yeast Proteasome maturation factor UMP1 UMP1 YBR173C YBR1234 protein protein yeast Saccharomyces cerevisiae MNIVPQDTFKSQVSTDQDKSVLSSAVPSLPDTLRQQEGGAVPLSTQLNDRHPLESTLKNWETTQRQRQMEQYRQIFGIAEPMKRTMEMEIVNRTDFNPLSTNGSIHRDILLNKECSIDWEDVYPGTGLQASTMVGDDVHSKIEKQLGI yba4_yeast Hypothetical 287.5 kDa protein in PDR3-HTA2 intergenic region YBL004W YBL0101 protein protein yeast Saccharomyces cerevisiae MAKQRQTTKSSKRYRYSSFKARIDDLKIEPARNLEKRVHDYVESSHFLASFDQWKEINLSAKFTEFAAEIEHDVQTLPQILYHDKKIFNSLVSFINFHDEFSLQPLLDLLAQFCHDLGPDFLKFYEEAIKTLINLLDAAIEFESSNVFEWGFNCLAYIFKYLSKFLVKKLVLTCDLLIPLLSHSKEYLSRFSAEALSFLVRKCPVSNLREFVRSVFEKLEGDDEQTNLYEGLLILFTESMTSTQETLHSKAKAIMSVLLHEALTKSSPERSVSLLSDIWMNISKYASIESLLPVYEVMYQDFNDSLDATNIDRILKVLTTIVFSESGRKIPDWNKITILIERIMSQSENCASLSQDKVAFLFALFIRNSDVKTLTLFHQKLFNYALTNISDCFLEFFQFALRLSYERVFSFNGLKFLQLFLKKNWQSQGKKIALFFLEVDDKPELQKVREVNFPEEFILSIRDFFVTAEINDSNDLFEIYWRAIIFKYSKLQNTEIIIPLLERIFSTFASPDNFTKDMVGTLLKIYRKEDDASGNNLLKTILDNYENYKESLNFLRGWNKLVSNLHPSESLKGLMSHYPSLLLSLTDNFMLPDGKIRYETLELMKTLMILQGMQVPDLLSSCMVIEEIPLTLQNARDLTIRIKNVGAEFGKTKTDKLVSSFFLKYLFGLLTVRFSPVWTGVFDTLPNVYTKDEALVWKLVLSFIKLPDENQNLDYYQPLLEDGANKVLWDSSVVRLRDTIDTFSHIWSKYSTQNTSIISTTIERRGNTTYPILIRNQALKVMLSIPQVAENHFVDIAPFVYNDFKTYKDEEDMENERVITGSWTEVDRNVFLKTLSKFKNIKNVYSATELHDHLMVLLGSRNTDVQKLALDALLAYKNPTLNKYRDNLKNLLDDTLFKDEITTFLTENGSQSIKAEDEKVVMPYVLRIFFGRAQVPPTSGQKRSRKIAVISVLPNFKKPYINDFLSLASERLDYNYFFGNSHQINSSKATLKTIRRMTGFVNIVNSTLSVLRTNFPLHTNSVLQPLIYSIAMAYYVLDTESTEEVHLRKMASNLRQQGLKCLSSVFEFVGNTFDWSTSMEDIYAVVVKPRISHFSDENLQQPSSLLRLFLYWAHNPSLYQFLYYDEFATATALMDTISNQHVKEAVIGPIIEAADSIIRNPVNDDHYVDLVTLICTSCLKILPSLYVKLSDSNSISTFLNLLVSITEMGFIQDDHVRSRLISSLISILKGKLKKLQENDTQKILKILKLIVFNYNCSWSDIEELYTTISSLFKTFDERNLRVSLTELFIELGRKVPELESISKLVADLNSYSSSRMHEYDFPRILSTFKGLIEDGYKSYSELEWLPLLFTFLHFINNKEELALRTNASHAIMKFIDFINEKPNLNEASKSISMLKDILLPNIRIGLRDSLEEVQSEYVSVLSYMVKNTKYFTDFEDMAILLYNGDEEADFFTNVNHIQLHRRQRAIKRLGEHAHQLKDNSISHYLIPMIEHYVFSDDERYRNIGNETQIAIGGLAQHMSWNQYKALLRRYISMLKTKPNQMKQAVQLIVQLSVPLRETLRIVRDGAESKLTLSKFPSNLDEPSNFIKQELYPTLSKILGTRDDETIIERMPIAEALVNIVLGLTNDDITNFLPSILTNICQVLRSKSEELRDAVRVTLGKISIILGAEYLVFVIKELMATLKRGSQIHVLSYTVHYILKSMHGVLKHSDLDTSSSMIVKIIMENIFGFAGEEKDSENYHTKVKEIKSNKSYDAGEILASNISLTEFGTLLSPVKALLMVRINLRNQNKLSELLRRYLLGLNHNSDSESESILKFCHQLFQESEMSNSPQIPKKKVKDQVDEKEDFFLVNLESKSYTINSNSLLLNSTLQKFALDLLRNVITRHRSFLTVSHLEGFIPFLRDSLLSENEGVVISTLRILITLIRLDFSDESSEIFKNCARKVLNIIKVSPSTSSELCQMGLKFLSAFIRHTDSTLKDTALSYVLGRVLPDLNEPSRQGLAFNFLKALVSKHIMLPELYDIADTTREIMVTNHSKEIRDVSRSVYYQFLMEYDQSKGRLEKQFKFMVDNLQYPTESGRQSVMELINLIITKANPALLSKLSSSFFLALVNVSFNDDAPRCREMASVLISTMLPKLENKDLEIVEKYIAAWLKQVDNASFLNLGLRTYKVYLKSIGFEHTIELDELAIKRIRYILSDTSVGSEHQWDLVYSALNTFSSYMEATESVYKHGFKDIWDGIITCLLYPHSWVRQSAANLVHQLIANKDKLEISLTNLEIQTIATRILHQLGAPSIPENLANVSIKTLVNISILWKEQRTPFIMDVSKQTGEDLKYTTAIDYMVTRIGGIIRSDEHRMDSFMSKKACIQLLALLVQVLDEDEVIAEGEKILLPLYGYLETYYSRAVDEEQEELRTLSNECLKILEDKLQVSDFTKIYTAVKQTVLESRKERRSKRAILAVNAPQISADKKLRKHARSREKRKHEKDENGYYQRRNKRKRA yg3y_yeast Hypothetical 41.0 kDa protein in YIP1-CBP4 intergenic region YGR173W protein protein yeast Saccharomyces cerevisiae MGIIDKIKAIEEEMARTQKNKATEHHLGLLKGKLARYRQQLLADEAGSGGGGGSGFEVAKSGDARVVLIGYPSVGKSSLLGKITTTKSEIAHYAFTTLTSVPGVLKYQGAEIQIVDLPGIIYGASQGKGRGRQVVATARTADLVLMVLDATKSEHQRASLEKELENVGIRLNKEKPNIYYKKKETGGVKVTFTSPPKTNLTEQAIKMILRDYRIHNAEVLVRDDQCTIDDFIDVINEQHRNYVKCLYVYNKIDAVSLEEVDKLAREPNTVVMSCEMDLGLQDVVEEIWYQLNLSRVYTKKRGVRPVFDDPLVVRNNSTIGDLCHGIHRDFKDKFKYALVWGSSAKHSPQKCGLNHRIDDEDVVSLFAK mdm31_yeast Mitochondrial distribution and morphology protein 31, mitochondrial precursor YHR194W MDM31 protein protein yeast Saccharomyces cerevisiae MSLFTRPFLRSPRQFSVARYVYWARSPALRSNLRIPSIAAASLRAYSNESKTGRDAPPDKKSKKLSNLKYITERDSLLVQTNNIFTKLKINIRWFLKKSTRPFNSDDISAFISWILVSNIFIFIFWTTTFVSLILYLINTVFAQEYLASKIGKFITKNESLSIVFESAIVPDWSSGKISFQKVFVSRRPKVSRGFTKGSQQDALQRAKLALSERILVNQQDFDNGNYTQFDLTIDQVDISLNFRKWINGKGILDEVTINGLRGVIDRTHVVWKKDDDPKNYLNVYQPGDFEISKFTMNDVLCTLYQPNGFRPFQVSIFNCDLPQLRKHWLFYDILNANNINGTYDNSMFTIHKKFRTDDQHQDPTLLWKQMTRFRVDNLDIDHLNAGIEGPFGWINEGRVNMIGDVLLPDDDAASDSLQLTEILTEIGDRLIKKAKRYTSSLPLVGPGFSPAVDEIDPNDYFIMDFSLRLYNVKAEVPLFTSGLTYINSALIRPIVGYINSHRTYIPIKCRIVKKKSDFEGSWTIYDSYLMRDLSAEAYDAFADYVADDEKRTLRLRRVGFWSLQLILQVILMSLGAIA yj40_yeast Hypothetical 36.2 kDa protein in HAM1-PEM2 intergenic region YJR070C J1814 protein protein yeast Saccharomyces cerevisiae MSTNFEKHFQENVDECTLEQLRDILVNKSGKTVLANRFRALFNLKTVAEEFATKPEEAKKAIEYIAESFVNDKSELLKHEVAYVLGQTKNLDAAPTLRHVMLDQNQEPMVRHEAAEALGALGDKDSLDDLNKAAKEDPHVAVRETCELAINRINWTHGGAKDKENLQQSLYSSIDPAPPLPLEKDATIPELQALLNDPKQPLFQRYRAMFRLRDIGTDEAILALATGFSAESSLFKHEIAYVFGQIGSPAAVPSLIEVLGRKEEAPMVRHEAAEALGAIASPEVVDVLKSYLNDEVDVVRESCIVALDMYDYENSNELEYAPTAN ykh5_yeast Hypothetical 52.1 kDa protein in SMY1-MUD2 intergenic region YKL075C protein protein yeast Saccharomyces cerevisiae MAKDLLPKQAANEPSLKDCTCKRCLKLGASKEKKIRRKKKGEEKRERHYGNRRKLTFNFLKHTNMENTNYDVITSVGYLNEKYGLKKSHYIEKFIKCIHRKINIDVSKITDAYVNSLNPWVKVKLFLLLVTLSEKGGPEYWLDKTDGEKNSEASSTDNSLENSTKGADSAGSTALRDEMVKSHKNLFPTLTEQIIQHNINQDFTESTYDEDYVFSSIWANFMEGLINHYLEKVIVPYSEMKVCQQLYKPMMKIISLYNEYNELMVKSEKNGFLPSLQDSENVQGDKGEKESKDDAVSQERLERAQKLLWQAREDIPKTISKELTLLSEMYSTLSADEQDYELDEFVCCAEEYIELEYLPALVDVLFANCGTNNFWKIMLVLEPFFYYIEDVGGDDDEDEDNVDNSEGDEESLLSRNVEGDDNVVERHFKPDPRVITLEKICEVAARQKWI q12354_yeast L2955 protein L2955 YLR118C protein protein yeast Saccharomyces cerevisiae MNGLRVAAKIQPARQTIIFLHGLGDTGSGWGFLAQYLQQRDPAAFQHTNFVFPNAPELHVTANGGALMPAWFDILEWDPSFSKVDSDGFMNSLNSIEKTVKQEIDKGIKPEQIIIGGFSQGAALALATSVTLPWKIGGIVALSGFCSIPGILKQHKNGINVKTPIFHGHGDMDPVVPIGLGIKAKQFYQDSCEIQNYEFKVYKGMAHSTVPDELEDLASFIKKSLSS o13556_yeast Ylr462wp YLR462W protein protein yeast Saccharomyces cerevisiae MKVSDRRKFEKANFDEFESALNNKNDLVHCPSITLFESIPTEVRSFYEDEKSGLIKVVKFRTGAMDRKRSFEKVVISVMVGKNVKKFLTFVEDEPDFQGGPIPSKYLVPKKINLMVYTLFQVHTLKFNRKDYDTLSLFYLNRGYYNELSFRVLERCHEIASARPNDSSTMRTFTDFVSGAPIVRSLQKSTIRKYGYNLAAYT q08226_yeast S.cerevisiae chromosome XV reading frame ORF YOL063c YOL063C protein protein yeast Saccharomyces cerevisiae MPPQIPNENDDLFTRWLKSRAIIQRAVSTRECFDSEVFLASGGWNITNEIITLKKYYQLKWPNSSCNSFHPKTVEFIKERLHNLEEHDSSWKIPNPAYSFKKAFLEDTKSAFSNLEPVWGPSRLLNPAELLLPQDEKLLVQEIPLEFAPFQYTNRFAYGGLQFKNNLFVTYGSYSFLAAGQCVEVHNFDILLNVSSLEICHALLPVIIPDDGDVRNFRNSSYVKFKDTQFNSIPELCSINFMKICNFMHQDFLLACGDNGIVYIWEINKVIKIFNKFTSDILGGKDNSRERYINVDPYMVLRVEESCWSVDVIDINGIIYIAVGHNKPGVTVFAFDKDVKKERRYIRPLDLPSSHNVPCVNFVPNSKDSVGYITLSYCSIFGNVVTVKLKEHDCTILTSFLDTQFFGDDLWTITPLTKKDFAKVDNFELLNLNYQDGFKESMLYSICRDDFLLGYYCDNAYLSGNFGIGTLLNQFQVPVTDLRLTSSAGIPDEVIPLRFTSFDRNYTTTGSIKYEYSREDFALILHAGDLDDMNDAVTKNTSCEQHLHQWTFWEDSGYKHYRATERGFSKYKDIINTFPQLITPSGRNKTSQYQNTSGRKICEPSTYKLTDLENDIEDISREFNRSIRNLKMDKQRQLRTSKEFKSLSSVNHIPNIESGNFLWYNTDAAADWRTLFGKDLNTVLKDPEICSLQLNSTEEDDVNSDPENEESGSSLTSFQRRYRDTEQRAHLKSESQKSWGFHNYVRNVKRLLESAVPGSEDSPLGYQLSEMHDEFFFLTTAHRLVLMKANPLIIISATHHEIFPLDGVVTCASKSLLQALNRINFVCHIKELNCIAVASQLGLISLLRLTEYRGIYSFRQEYILGWEVQDPVNPSPECRCNRNLFDAPMYGADGESSDTYCGVCDVYFPMGDICGLDYTYASDSEELKRKGYATLYVASRGSLRAFKITTEHGTTQQ q02754_yeast Ypl067cp YPL067C protein protein yeast Saccharomyces cerevisiae MQQDIVNDHQEEAQGWKWEQIKEIIESGELARLKRSRQMTDKYHEHKKRTAGLDMNQYVLQKLGWSLDEPQLENAAAKAFSSSTLYAVRANDFPYNFEPGVVHLVLWSKVALPVHSPDKAVREAARARMNAFLQAQPLLRPLLSSGHVAWFVNYPELQSVARIFHAHVLLFFPRERYSAEQVKTTVDDILSHGFEPLA o13575_yeast Ypr177cp YPR177C protein protein yeast Saccharomyces cerevisiae MSSDVAGVKKSSSSSSSTSSPFMFSMLLMFSRSISSTIKISANRILLCCTSSFSTTSGFFKIESNRLTSRSSSGIFSRTACNRSCGNCFSISAVLSFCVAPLCCKSTGRFSSAIYLLIFRSTR zms1_yeast Zinc finger protein ZMS1 ZMS1 YJR127C J2052 protein protein yeast Saccharomyces cerevisiae MEPFAFGRGAPALCILTAAARINLDNFVPCCWALFRLSFFFPLDPAYIRNENKETRTSWISIEFFFFVKHCLSQHTFFSKTLAPKRNFRAKKLKDIGDTRIDRADKDFLLVPEPSMFVNGNQSNFAKPAGQGILPIPKKSRIIKTDKPRPFLCPTCTRGFVRQEHLKRHQHSHTREKPYLCIFCGRCFARRDLVLRHQQKLHAALVGTGDPRRMTPAPNSTSSFASKRRHSVAADDPTDLHIIKIAGNKETILPTPKNLAGKTSEELKEAVVALAKSNNVELPVSAPVMNDKREKTPPSKAGSLGFREFKFSTKGVPVHSASSDAVIDRANTPSSMHKTKRHASFSASSAMTYMSSSNSPHHSITNFELVEDAPHQVGFSTPQMTAKQLMESVSELDLPPLTLDEPPQAIKFNLNLFNNDPSGQQQQQQQQQQNSTSSTIVNSNNGSTVATPGVYLLSSGPSLTDLLTMNSAHAGAGGYMSSHHSPFDLGCFSHDKPTVSEFNLPSSFPNTIPSNSTTASNSYSNLANQTYRQMSNEQPLMSLSPKNPPTTVSDSSSTINFNPGTNNLLEPSMEPNDKDSNIDPAAIDDKWLSEFINNSDPKSTFKINFNHFNDIGFIYSPPSSRSSIPNKSPPNHSATSLNHEKASLSPRLNLSLNGSTDLPSTPQNQLKEPSYSDPISHSSHKRRRDSVMMDYDLSNFFSSRQLDISKVLNGTEQNNSHVNDDVLTLSFPGETDSNATQKQLPVLTPSDLLSPFSVPSVSQVLFTNELRSMMLADNNIDSGAFPTTSQLNDYVTYYKEEFHPFFSFIHLPSIIPNMDSYPLLLSISMVGALYGFHSTHAKVLANAASTQIRKSLKVSEKNPETTELWVIQTLVLLTFYCIFNKNTAVIKGMHGQLTTIIRLLKASRLNLPLESLCQPPIESDHIMEYENSPHMFSKIREQYNAPNQMNKNYQYFVLAQSRIRTCHAVLLISNLFSSLVGADCCFHSVDLKCGVPCYKEELYQCRNSDEWSDLLCQYKITLDSKFSLIELSNGNEAYENCLRFLSTGDSFFYGNARVSLSTCLSLLISIHEKILIERNNARISNNNTNSNNIELDDIEWKMTSRQRIDTMLKYWENLYLKNGGILTPTENSMSTINANPAMRLIIPVYLFAKMRRCLDLAHVIEKIWLKDWSNMNKALEEVCYDMGSLREATEYALNMVDAWTSFFTYIKQGKRRIFNTPVFATTCMFTAVLVISEYMKCVEDWARGYNANNPNSALLDFSDRVLWLKAERILRRLQMNLIPKECDVLKSYTDFLRWQDKDALDLSALNEEQAQRAMDPNTDINETIQLIVAASLSSKCLYLGVQILGDAPIWPIILSFAHGLQSRAIYSVTKKRNTRI q03776_yeast Hypothetical protein PRP42 protein protein yeast Saccharomyces cerevisiae MDKYTALIHDENFSTLTLNVSRYPKSLAYWEKLLNYIVKASAPICKSTEPQLLKLIRCTYSSMLNEFPYLENYYIDFALLEYKLGNVSMSHKIFQRGLQAFNQRSLLLWTSYLKFCNNVISHQKQLFKKYETAEEYVGLHFFSGEFWDLYLEQISSRCTSSKKYWNVLRKILEIPLHSFSKFYALWLQRIDDIMDLKQLSQLTSKDELLKKLKIDINYSGRKGPYLQDAKKKLKKITKEMYMVVQYQVLEIYSIFESKIYINYYTSPETLVSSDEIETWIKYLDYTITLQTDSLTHLNFQRALLPLAHYDLVWIKYSKWLINSKNDLLGAKNVLLMGLKFSLKKTEIIKLLYSVICKLNEYVLLRNLLEKIESSYSDNVENVDDFEIFWDYLQFKTFCQNSLYSSRYSDSQSNGLLNKELFDKVWKRLSCKEKKSGQEILLNNLVQFYSKDTVEFVEKNIFQKIIEFGWEYYLQNGMFWNCYCRLIYFDTSRSYLDKRQYIVRKIWPQIDKKFAQSVLPSLTEFCESYFPEEMDTLEEMFTEEP fob1_yeast DNA replication fork blocking protein FOB1 FOB1 YDR110W YD9727.06 protein protein yeast Saccharomyces cerevisiae MTKPRYNDVLFDDDDSVPSESVTRKSQRRKATSPGESRESSKDRLLILPSMGESYTEYVDSYLNLELLERGERETPIFLESLTRQLTQKIYELIKTKSLTADALQQISDKYDGVVAENKLLFLQRQYYVDDEGNVRDGRNNDKIYCEPKHVYDMVMATHLMNKHLRGKTLHSFLFSHFANISHAIIDWVQQFCSKCNKKGKIKPLKEYKRPDMYDKLLPMERIHIEVFEPFNGEAIEGKYSYVLLCRDYRSSFMWLLPLKSTKFKHLIPVVSSLFLTFARVPIFVTSSTLDKDDLYDICEEIASKYGLRIGLGLKSSARFHTGGILCIQYALNSYKKECLADWGKCLRYGPYRFNRRRNKRTKRKPVQVLLSEVPGHNAKFETKRERVIENTYSRNMFKMAGGKGLIYLEDVNTFALANEADNSCNNNGILHNNNIGNDNFEEEVQKQFDLTEKNYIDEYDDLAHDSSEGEFEPNTLTPEEKPPHNVDEDRIESTGVAAPMQGTEEPEKGDQKESDGASQVDQSVEITRPETSYYQTLESPSTKRQKLDQQGNGDQTRDFGTSMEL mns1_yeast Endoplasmic reticulum mannosyl-oligosaccharide 1,2-alpha-mannosidase MNS1 YJR131W J2110 protein protein yeast Saccharomyces cerevisiae MKNSVGISIATIVAIIAAIYYVPWYEHFERKSPGAGEMRDRIESMFLESWRDYSKHGWGYDVYGPIEHTSHNMPRGNQPLGWIIVDSVDTLMLMYNSSTLYKSEFEAEIQRSEHWINDVLDFDIDAEVNVFETTIRMLGGLLSAYHLSDVLEVGNKTVYLNKAIDLGDRLALAFLSTQTGIPYSSINLHSGQAVKNHADGGASSTAEFTTLQMEFKYLAYLTGNRTYWELVERVYEPLYKNNDLLNTYDGLVPIYTFPDTGKFGASTIRFGSRGDSFYEYLLKQYLLTHETLYYDLYRKSMEGMKKHLLAQSKPSSLWYIGEREQGLHGQLSPKMDHLVCFMGGLLASGSTEGLSIHEARRRPFFSLSLERKSDWDLAKGITDTCYQMYKQSSSGLAPEIVVFNDGNIKQDGWWRSSVGDFFVKPLDRHNLQRPETVESIMFMYHLSHDHKYREWGAEIATSFFENTCVDCNDPKLRRFTSLSDCITLPTKKSNNMESFWLAETLKYLYILFLDEFDLTKVVFNTEAHPFPVLDEEILKSQSLTTGWSL pex19_yeast Farnesylated protein PEX19 PEX19 PAS12 YDL065C protein protein yeast Saccharomyces cerevisiae MPNIQHEVMNENEYDNFDDLDDLLDEDPTKLDEAEPDDVQAKGSVYNDSENKEKNAESKDSDGVQVANESEEDPELKEMMVDLQNEFANLMKNNGNENNVKTEDFNKLISALEEAAKVPHQQMEQGCSSLKSNSTDKGTVNGSNPGFKNIVSNTLDRLKENGNKVDTSLAEETKESQRSGQNNNIDDILSQLLDQMVASGGKESAENQFDLKDGEMDDAITKILDQMTSKEVLYEPMKEMRSEFGVWFQENGENEEHKEKIGTYKRQFNIVDEIVNIYELKDYDELKHKDRVTELLDELEQLGDSPIRSANSPLKHGNEEEELMKMLEIDGNDPNLGNLDKELTDGCKQQ psb7_yeast Proteasome component PUP1 precursor PUP1 YOR157C protein protein yeast Saccharomyces cerevisiae MAGLSFDNYQRNNFLAENSHTQPKATSTGTTIVGVKFNNGVVIAADTRSTQGPIVADKNCAKLHRISPKIWCAGAGTAADTEAVTQLIGSNIELHSLYTSREPRVVSALQMLKQHLFKYQGHIGAYLIVAGVDPTGSHLFSIHAHGSTDVGYYLSLGSGSLAAMAVLESHWKQDLTKEEAIKLASDAIQAGIWNDLGSGSNVDVCVMEIGKDAEYLRNYLTPNVREEKQKSYKFPRGTTAVLKESIVNICDIQEEQVDITA psb3_yeast Proteasome component PUP3 PUP3 YER094C protein protein yeast Saccharomyces cerevisiae MSDPSSINGGIVVAMTGKDCVAIACDLRLGSQSLGVSNKFEKIFHYGHVFLGITGLATDVTTLNEMFRYKTNLYKLKEERAIEPETFTQLVSSSLYERRFGPYFVGPVVAGINSKSGKPFIAGFDLIGCIDEAKDFIVSGTASDQLFGMCESLYEPNLEPEDLFETISQALLNAADRDALSGWGAVVYIIKKDEVVKRYLKMRQD ubp5_yeast Ubiquitin carboxyl-terminal hydrolase 5 UBP5 YER144C protein protein yeast Saccharomyces cerevisiae MGSEQALSEVVESAKERFGRLRHLVQKFLDDDDVPQECLPLLQECAEIWSSYVDACQDITMQAPKEDANRLSKGFLRLNETAFLYYMIVYTLLEDTLPRLKEFSSNKDQNVRNLYGERIQLLHNDPNIERIRNVIENYPKFIQLQTIEPGKLSSMLHFHGDALLLIDVRPRSEFVRAHIKCKNIICIDPASFKDSFTDQQIESVSLITSPHSDITFFSNRDKFKFIILYTDTQLHNNFQQRQTRILAKILSQNSVIKPLSGTKILILENGFSNWVKLGGAYQSSVSETAHLTSSSSTPAFGSPQVPTGLFNQKSLSPNKDKSMPMVSMNTQPLLTTVQRPQLPLYYSDLPIIPQPSPNRNSPTVQKFSPHPPTTLSKLNTPSTIQNKANTVERISPDIRAAQAHAYLPPASNVFSPRIPPLPQQNLSSSRQTILNNSQVLDLDLIVGLENIGNCCYMNCILQCLVGTHDLVRMFLDNTYLNFINFDSSRGSKGLLAKNFAILVNNMHRHGAFTPPNVRTIPVQTIQFKKICGHINPMYSDSMQQDCQEFCQFLLDGLHEDLNQNGSKKHLKQLSDEEERMREKMSIRKASALEWERFLLTDFSAIIDLFQGQYASRLQCQVCEHTSTTYQTFSVLSVPVPRVKTCNILDCFREFTKCERLGVDEQWSCPKCLKKQPSTKQLKITRLPKKLIINLKRFDNQMNKNNVFVQYPYSLDLTPYWARDFNHEAIVNEDIPTRGQVPPFRYRLYGVACHSGSLYGGHYTSYVYKGPKKGWYFFDDSLYRPITFSTEFITPSAYVLFYERIF uap1_yeast UDP-N-acetylglucosamine pyrophosphorylase UAP1 QRI1 YDL103C D2362 protein protein yeast Saccharomyces cerevisiae MTDTKQLFIEAGQSQLFHNWESLSRKDQEELLSNLEQISSKRSPAKLLEDCQNAIKFSLANSSKDTGVEISPLPPTSYESLIGNSKKENEYWRLGLEAIGKGEVAVILMAGGQGTRLGSSQPKGCYDIGLPSKKSLFQIQAEKLIRLQDMVKDKKVEIPWYIMTSGPTRAATEAYFQEHNYFGLNKEQITFFNQGTLPAFDLTGKHFLMKDPVNLSQSPDGNGGLYRAIKENKLNEDFDRRGIKHVYMYCVDNVLSKIADPVFIGFAIKHGFELATKAVRKRDAHESVGLIATKNEKPCVIEYSEISNELAEAKDKDGLLKLRAGNIVNHYYLVDLLKRDLDQWCENMPYHIAKKKIPAYDSVTGKYTKPTEPNGIKLEQFIFDVFDTVPLNKFGCLEVDRCKEFSPLKNGPGSKNDNPETSRLAYLKLGTSWLEDAGAIVKDGVLVEVSSKLSYAGENLSQFKGKVFDRSGIVLEK q05541_yeast Ydr288wp YDR288W NSE3 protein protein yeast Saccharomyces cerevisiae MSSIDNDSDVDLTEDLAVAKIVKENPVARKMVRYILSRGESQNSIITRNKLQSVIHEAAREENIAKPSFSKMFMDINAILYNVYGFELQGLPSKNNMNAGGNGSNSNTNKSMPEPLGHRAQKFILLNNVPHSKNFDDFKILQSAHTYEELIVTGEYIGDDIASGTSNTLESKLSTDRDLVYKGVLSVILCIVFFSKNNILHQELIKFLETFGIPSDGSKIAILNITIEDLIKSLEKREYIVRLEEKSDTDGEVISYRIGRRTQAELGLESLEKLVQEIMGLEKEQTKSLHDDIIKSIGDSYSI qri2_yeast QRI2 protein QRI2 YDL105W D2354 protein protein yeast Saccharomyces cerevisiae MSSTVISRKRRNSTVTEPDSSGETRKQKKSRSDEKSSSSKDGDPQLEFKVLQGYRDLESEMHKGRAQVTRTGDIGVAMDNLNAVDSLFNKVIGIKNNGLFAHDARAMVSISELAQISVRNLKFDDSRSMVNLENIVNSLKRYMLKEHFKLNNIAENRNDLTLAADEQSAADQQEESDGDIDRTPDDNHTDKATSSFKATSMRHSYLQQFSHYNEFSQFNWFRIGALYNTISKNAPITDHLMGPLSIEKKPRVLTQRRRNNDQVGEKITAEKITQHSLNSTQQETTPEQVKKCFKKLSKKLGPEGSINLFKFIIDPNSFSRSIENLFYTSFLIKEGKLLMEHDEEGLPTIKIKQSISHTDSRSKEIERQRRRAAHQNHIIFQMDMPTWRKLIKKYNITSPFLD hsc82_yeast ATP-dependent molecular chaperone HSC82 HSC82 YMR186W YM8010.16 protein protein yeast Saccharomyces cerevisiae AGETFEFQAEITQLMSLIINTVYSNKEIFLRELISNASDALDKIRYQALSDPKQLETEPDLFIRITPKPEEKVLEIRDSGIGMTKAELINNLGTIAKSGTKAFMEALSAGADVSMIGQFGVGFYSLFLVADRVQVISKNNEDEQYIWESNAGGSFTVTLDEVNERIGRGTVLRLFLKDDQLEYLEEKRIKEVIKRHSEFVAYPIQLLVTKEVEKEVPIPEEEKKDEEKKDEDDKKPKLEEVDEEEEEKKPKTKKVKEEVQELEELNKTKPLWTRNPSDITQEEYNAFYKSISNDWEDPLYVKHFSVEGQLEFRAILFIPKRAPFDLFESKKKKNNIKLYVRRVFITDEAEDLIPEWLSFVKGVVDSEDLPLNLSREMLQQNKIMKVIRKNIVKKLIEAFNEIAEDSEQFDKFYSAFAKNIKLGVHEDTQNRAALAKLLRYNSTKSVDELTSLTDYVTRMPEHQKNIYYITGESLKAVEKSPFLDALKAKNFEVLFLTDPIDEYAFTQLKEFEGKTLVDITKDFELEETDEEKAEREKEIKEYEPLTKALKDILGDQVEKVVVSYKLLDAPAAIRTGQFGWSANMERIMKAQALRDSSMSSYMSSKKTFEISPKSPIIKELKKRVDEGGAQDKTVKDLTNLLFETALLTSGFSLEEPTSFASRINRLISLGLNIDEDEETETAPEASTEAPVEEVPADTEMEEVD ssk2_yeast MAP kinase kinase kinase SSK2 SSK2 YNR031C N3276 protein protein yeast Saccharomyces cerevisiae MSHSDYFNYKPYGDSTEKPSSSKMRQSSSSSSSRLRSESLGRNSNTTQARVASSPISPGLHSTQYFRSPNAVYSPGESPLNTVQLFNRLPGIPQGQFFHQNAISGSSSSSARSSRRPSNIGLPLPKNPQQSLPKLSTQPVPVHKKVEASKTESEIIKKPAPVNSNQDPLLTTPTLVISPELASLNTTNTSIMSTPQNITNQTSNKHIPTRSQPNGSTSSSTLQDIVTTNSSQRSVGHHGGSTTSLRTYKKQYVLNEQLYLRKMRNRANDDYYTRGIVASSNFEDDEENFSNKGEDDLELEMDDLLKVEGEDKDNDFNFGYNFITSSTKNNENVVSMSLNYLKGKLDWLRDVNNDQPCEIEDEEWHSILGSEDLLSKLLQNPMVNNRFEWQTMLSKVLKGDIVRNEKTKIANQGKGPGFNTQFSDDIWIELKAWMNGRTVEDQNKSLRIFRDSTDSVFQEIMAFKLEDNMSADEAAETIKSLVDKYYRVLNLWPNIKRMHAEKPITKTEAFRNRIDTLNSWLNFKFNFDTNIAYLKKWIVGNKELESTTEVDNTTVNLDDPAVFATNCKRFAEQIMKEKDIELIFQKKIFFPLAPWILKAKFFFLKYQKTWNELNLSYLDQDLEFLLMFPMRLVKDIILIRLSYAKKIQNPTLMMIDQMMDDFSTYIKLAVQMKFTVASYCNDWFFKVKIDPEFDHTVVEGLEYFFSILELRILYSGKNSFKTSKEPDLLLKYWEMFRNVGYYIDDAGELIAAEFTKLTLRLVHRLHAYLLRQQNTPPKLENEAAAEKWLVQIFEILGSMKRKLNRFTNILTKAFQNFVRYKIEDHNYLLKQLKETGHFLIYTGGYLEQNGTYLIGSPELLGCKDDDILRIIKNSDIGCDLVPKLEINNSLTIYNALDDNWNSNSSLGSDISNDGTPFYYIKNDLTTQPRSYNGNRVNREPDFENSRSTEEEFYELETRLNSLGYVLVLTPQEPLLWEGEMYNLSDNKTIKPEGLNLKVIPNSIDLMCQGSSYALEYQCDRFQQISGSSVSFLEKKSSSETVKNNLQRINKAYFRCTYSVLKNYTKIVTTFKKVSPVNDLLNNIFLFGRDFGLNFLRINVANNEKRSIIILLMMRLSIGWLKFLAEDCDPTDQRVFRWCVTSMEFAMHMVSGWNILALDECQFSSLKQKISECMSLLISHFDIIGARSIEVEKINQQARSNLDLEDVFDDDMMLQVNSEFRVQSIMELEERIKRNPHQTGKVIDDSDKGNKYLVSLASSISNVSMRWQKRNFIGGGTFGRVYSAVDLDNGEILAVKEINIQDSKSMQKIFPLIKEEMSVLEILNHPNIVSYYGVEVHRDKVNIFMEYCEGGSLAALLEHGRIEDEMVTQVYTLQLLEGLAYLHESGIVHRDVKPENILLDFNGVIKYVDFGAAKKIANNGTRLASMNKIENADGEHEDVTHVSDSKAVKNNENALLDMMGTPMYMAPESITGSTTKGKLGADDVWSLGCVVLEMITGRRPWANLDNEWAIMYHVAAGHTPQFPTKDEVSSAGMKFLERCLIQNPSKRASAVELLMDPWIVQIREIAFGDDSSSTDTEERE sti1_yeast Heat shock protein STI1 STI1 YOR027W OR26.17 protein protein yeast Saccharomyces cerevisiae MSLTADEYKQQGNAAFTAKDYDKAIELFTKAIEVSETPNHVLYSNRSACYTSLKKFSDALNDANECVKINPSWSKGYNRLGAAHLGLGDLDEAESNYKKALELDASNKAAKEGLDQVHRTQQARQAQPDLGLTQLFADPNLIENLKKNPKTSEMMKDPQLVAKLIGYKQNPQAIGQDLFTDPRLMTIMATLMGVDLNMDDINQSNSMPKEPETSKSTEQKKDAEPQSDSTTSKENSSKAPQKEESKESEPMEVDEDDSKIEADKEKAEGNKFYKARQFDEAIEHYNKAWELHKDITYLNNRAAAEYEKGEYETAISTLNDAVEQGREMRADYKVISKSFARIGNAYHKLGDLKKTIEYYQKSLTEHRTADILTKLRNAEKELKKAEAEAYVNPEKAEEARLEGKEYFTKSDWPNAVKAYTEMIKRAPEDARGYSNRAAALAKLMSFPEAIADCNKAIEKDPNFVRAYIRKATAQIAVKEYASALETLDAARTKDAEVNNGSSAREIDQLYYKASQQRFQPGTSNETPEETYQRAMKDPEVAAIMQDPVMQSILQQAQQNPAALQEHMKNPEVFKKIQTLIAAGIIRTGR imdh2_yeast Inosine-5'-monophosphate dehydrogenase IMD2 IMD2 PUR5 YHR216W protein protein yeast Saccharomyces cerevisiae MAAIRDYKTALDFTKSLPRPDGLSVQELMDSKIRGGLTYNDFLILPGLVDFASSEVSLQTKLTRNITLNIPLVSSPMDTVTESEMATFMALLGGIGFIHHNCTPEDQADMVRRVKNYENGFINNPIVISPTTTVGEAKSMKEKYGFAGFPVTTDGKRNAKLVGVITSRDIQFVEDNSLLVQDVMTKNPVTGAQGITLSEGNEILKKIKKGRLLVVDEKGNLVSMLSRTDLMKNQNYPLASKSANTKQLLCGASIGTMDADKERLRLLVKAGLDVVILDSSQGNSIFELNMLKWVKESFPGLEVIAGNVVTREQAANLIAAGADGLRIGMGTGSICITQEVMACGRPQGTAVYNVCEFANQFGVPCMADGGVQNIGHITKALALGSSTVMMGGMLAGTTESPGEYFYQDGKRLKAYRGMGSIDAMQKTGTKGNASTSRYFSESDSVLVAQGVSGAVVDKGSIKKFIPYLYNGLQHSCQDIGCRSLTLLKNNVQRGKVRFEFRTASAQLEGGVHNLHSYEKRLHN rad1_yeast DNA repair protein RAD1 RAD1 YPL022W protein protein yeast Saccharomyces cerevisiae MSQLFYQGDSDDELQEELTRQTTQASQSSKIKNEDEPDDSNHLNEVENEDSKVLDDDAVLYPLIPNEPDDIETSKPNINDIRPVDIQLTLPLPFQQKVVENSLITEDALIIMGKGLGLLDIVANLLHVLATPTSINGQLKRALVLVLNAKPIDNVRIKEALEELSWFSNTGKDDDDTAVESDDELFERPFNVVTADSLSIEKRRKLYISGGILSITSRILIVDLLSGIVHPNRVTGMLVLNADSLRHNSNESFILEIYRSKNTWGFIKAFSEAPETFVMEFSPLRTKMKELRLKNVLLWPRFRVEVSSCLNATNKTSHNKVIEVKVSLTNSMSQIQFGLMECLKKCIAELSRKNPELALDWWNMENVLDINFIRSIDSVMVPNWHRISYESKQLVKDIRFLRHLLKMLVTSDAVDFFGEIQLSLDANKPSVSRKYSESPWLLVDEAQLVISYAKKRIFYKNEYTLEENPKWEQLIHILHDISHERMTNHLQGPTLVACSDNLTCLELAKVLNASNKKRGVRQVLLNKLKWYRKQREETKKLVKEVQSQDTFPENATLNVSSTFSKEQVTTKRRRTRGASQVAAVEKLRNAGTNVDMEVVFEDHKLSEEIKKGSGDDLDDGQEENAANDSKIFEIQEQENEILIDDGDAEFDNGELEYVGDLPQHITTHFNKDLWAEHCNEYEYVDRQDEILISTFKSLNDNCSLQEMMPSYIIMFEPDISFIRQIEVYKAIVKDLQPKVYFMYYGESIEEQSHLTAIKREKDAFTKLIRENANLSHHFETNEDLSHYKNLAERKLKLSKLRKSNTRNAGGQQGFHNLTQDVVIVDTREFNASLPGLLYRYGIRVIPCMLTVGDYVITPDICLERKSISDLIGSLQNNRLANQCKKMLKYYAYPTLLIEFDEGQSFSLEPFSERRNYKNKDISTVHPISSKLSQDEIQLKLAKLVLRFPTLKIIWSSSPLQTVNIILELKLGREQPDPSNAVILGTNKVRSDFNSTAKGLKDGDNESKFKRLLNVPGVSKIDYFNLRKKIKSFNKLQKLSWNEINELINDEDLTDRIYYFLRTEKEEQEQESTDENLESPGKTTDDNALHDHHNDVPEAPV cca1_yeast tRNA nucleotidyltransferase, mitochondrial precursor CCA1 TNT1 YER168C protein protein yeast Saccharomyces cerevisiae MLRSTISLLMNSAAQKTMTNSNFVLNAPKITLTKVEQNICNLLNDYTDLYNQKYHNKPEPLTLRITGGWVRDKLLGQGSHDLDIAINVMSGEQFATGLNEYLQQHYAKYGAKPHNIHKIDKNPEKSKHLETATTKLFGVEVDFVNLRSEKYTELSRIPKVCFGTPEEDALRRDATLNALFYNIHKGEVEDFTKRGLQDLKDGVLRTPLPAKQTFLDDPLRVLRLIRFASRFNFTIDPEVMAEMGDPQINVAFNSKISRERVGVEMEKILVGPTPLLALQLIQRAHLENVIFFWHNDSSVVKFNEENCQDMDKINHVYNDNILNSHLKSFIELYPMFLEKLPILREKIGRSPGFQQNFILSAILSPMANLQIIGNPKKKINNLVSVTESIVKEGLKLSKNDAAVIAKTVDSICSYEEILAKFADRSQLKKSEIGIFLRNFNGEWETAHFASLSDAFLKIPKLETKKIELLFQNYNEFYSYIFDNNLNNCHELKPIVDGKQMAKLLQMKPGPWLGKINNEAIRWQFDNPTGTDQELITHLKAILPKYL guf1_yeast GTP-binding protein GUF1 GUF1 YLR289W L8003.7 protein protein yeast Saccharomyces cerevisiae MLKFRIRPVRHIRCYKRHAYFLRYNHTTTPAQKLQAQIEQIPLENYRNFSIVAHVDHGKSTLSDRLLEITHVIDPNARNKQVLDKLEVERERGITIKAQTCSMFYKDKRTGKNYLLHLIDTPGHVDFRGEVSRSYASCGGAILLVDASQGIQAQTVANFYLAFSLGLKLIPVINKIDLNFTDVKQVKDQIVNNFELPEEDIIGVSAKTGLNVEELLLPAIIDRIPPPTGRPDKPFRALLVDSWYDAYLGAVLLVNIVDGSVRKNDKVICAQTKEKYEVKDIGIMYPDRTSTGTLKTGQVGYLVLGMKDSKEAKIGDTIMHLSKVNETEVLPGFEEQKPMVFVGAFPADGIEFKAMDDDMSRLVLNDRSVTLERETSNALGQGWRLGFLGSLHASVFRERLEKEYGSKLIITQPTVPYLVEFTDGKKKLITNPDEFPDGATKRVNVAAFHEPFIEAVMTLPQEYLGSVIRLCDSNRGEQIDITYLNTNGQVMLKYYLPLSHLVDDFFGKLKSVSRGFASLDYEDAGYRISDVVKLQLLVNGNAIDALSRVLHKSEVERVGREWVKKFKEYVKSQLYEVVIQARANNKIIARETIKARRKDVLQKLHASDVSRRKKLLAKQKEGKKHMKTVGNIQINQEAYQAFLRR q05787_yeast Ylr207wp HRD3 YLR207W protein protein yeast Saccharomyces cerevisiae MITLLLYLCVICNAIVLIRADSIADPWPEARHLLNTIAKSRDPMKEAAMEPNADEFVGFYVPMDYSPRNEEKNYQSIWQNEITDSQRHIYELLVQSSEQFNNSEATYTLSQIHLWSQYNFPHNMTLAHKYLEKFNDLTHFTNHSAIFDLAVMYATGGCASGNDQTVIPQDSAKALLYYQRAAQLGNLKAKQVLAYKYYSGFNVPRNFHKSLVLYRDIAEQLRKSYSRDEWDIVFPYWESYNVRISDFESGLLGKGLNSVPSSTVRKRTTRPDIGSPFIAQVNGVQMTLQIEPMGRFAFNGNDGNINGDEDDEDASERRIIRIYYAALNDYKGTYSQSRNCERAKNLLELTYKEFQPHVDNLDPLQVFYYVRCLQLLGHMYFTGEGSSKPNIHMAEEILTTSLEISRRAQGPIGRACIDLGLINQYITNNISQAISYYMKAMKTQANNGIVEFQLSKLATSFPEEKIGDPFNLMETAYLNGFIPAIYEFAVMIESGMNSKSSVENTAYLFKTFVDKNEAIMAPKLRTAFAALINDRSEVALWAYSQLAEQGYETAQVSAAYLMYQLPYEFEDPPRTTDQRKTLAISYYTRAFKQGNIDAGVVAGDIYFQMQNYSKAMALYQGAALKYSIQAIWNLGYMHEHGLGVNRDFHLAKRYYDQVSEHDHRFYLASKLSVLKLHLKSWLTWITREKVNYWKPSSPLNPNEDTQHSKTSWYKQLTKILQRMRHKEDSDKAAEDSHKHRTVVQNGANHRGDDQEEASEILGFQMEDLVTMGCILGIFLLSILMSTLAARRGWNVRFNGAQLNANGNRQQEQQQQQQAQGPPGWDFNVQIFAI q12246_yeast ORF YOR171c LCB4 O3615 protein protein yeast Saccharomyces cerevisiae MVVQKKLRAILTDEGVLIKSQSHHMFNKHGQLRSGDSLSLLSCLSCLDDGTLSSDGGSFDEDDSLELLPLNTTIPFNRILNAKYVNVGQKGFNNGKISSNPFQTENLSSSSENDDVENHSLSNDKAPVSESQSFPKKDKWDTKTNTVKVSPDDSQDNSPSLGIKDNQQLIELTFAVPKGHDVIPQKLTLLIDHVSRKSRANTGEENISSGTVEEILEKSYENSKRNRSILVIINPHGGKGTAKNLFLTKARPILVESGCKIEIAYTKYARHAIDIAKDLDISKYDTIACASGDGIPYEVINGLYRRPDRVDAFNKLAVTQLPCGSGNAMSISCHWTNNPSYAALCLVKSIETRIDLMCCSQPSYMNEWPRLSFLSQTYGVIAESDINTEFIRWMGPVRFNLGVAFNIIQGKKYPCEVFVKYAAKSKKELKVHFLENKDKNKGCLTFEPNPSPNSSPDLLSKNNINNSTKDELSPNFLNEDNFKLKYPMTEPVPRDWEKMDSELTDNLTIFYTGKMPYIAKDTKFFPAALPADGTIDLVITDARIPVTRMTPILLSLDKGSHVLEPEVIHSKILAYKIIPKVESGLFSVDGEKFPLEPLQVEIMPMLCKTLLRNGRYIDTEFESM orc1_yeast Origin recognition complex subunit 1 ORC1 YML065W protein protein yeast Saccharomyces cerevisiae MAKTLKDLQGWEIITTDEQGNIIDGGQKRLRRRGAKTEHYLKRSSDGIKLGRGDSVVMHNEAAGTYSVYMIQELRLNTLNNVVELWALTYLRWFEVNPLAHYRQFNPDANILNRPLNYYNKLFSETANKNELYLTAELAELQLFNFIRVANVMDGSKWEVLKGNVDPERDFTVRYICEPTGEKFVDINIEDVKAYIKKVEPREAQEYLKDLTLPSKKKEIKRGPQKKDKATQTAQISDAETRATDITDNEDGNEDESSDYESPSDIDVSEDMDSGEISADELEEEEDEEEDEDEEEKEARHTNSPRKRGRKIKLGKDDIDASVQPPPKKRGRKPKDPSKPRQMLLISSCRANNTPVIRKFTKKNVARAKKKYTPFSKRFKSIAAIPDLTSLPEFYGNSSELMASRFENKLKTTQKHQIVETIFSKVKKQLNSSYVKEEILKSANFQDYLPARENEFASIYLSAYSAIESDSATTIYVAGTPGVGKTLTVREVVKELLSSSAQREIPDFLYVEINGLKMVKPTDCYETLWNKVSGERLTWAASMESLEFYFKRVPKNKKKTIVVLLDELDAMVTKSQDIMYNFFNWTTYENAKLIVIAVANTMDLPERQLGNKITSRIGFTRIMFTGYTHEELKNIIDLRLKGLNDSFFYVDTKTGNAILIDAAGNDTTVKQTLPEDVRKVRLRMSADAIEIASRKVASVSGDARRALKVCKRAAEIAEKHYMAKHGYGYDGKTVIEDENEEQIYDDEDKDLIESNKAKDDNDDDDDNDGVQTVHITHVMKALNETLNSHVITFMTRLSFTAKLFIYALLNLMKKNGSQEQELGDIVDEIKLLIEVNGSNKFVMEIAKTLFQQGSDNISEQLRIISWDFVLNQLLDAGILFKQTMKNDRICCVKLNISVEEAKRAMNEDETLRNL sfh1_yeast Chromatin structure remodeling complex protein SFH1 SFH1 YLR321C L8543.4 protein protein yeast Saccharomyces cerevisiae MSHQNQLIPQAYISNFHNRLTNEDDGIPIFTMAQQTRQHKRAKVVNYAEYDNDLFDEFNMNGSNFNNADTHYKDNAVSHENTPALTNGVTMDGSEYNVLENMNGADSIISNNKYDAGSNMVVESLSGLNSNNNASNGPSNKAQAQDIGNAVLPDLQDQHHNPFNILRYPKIRDTFINGKVVSPYRLNTDQETKANANSGEAIMIPITLDIEHMGHTIKDQFLWNYNDDSISPEEFASIYCKDLDMTSATLQTQIANIIKEQLKDLENIAATEIMSDLHVIINLTCNLQDRFFEDNFQWNLNDKSLTPERFATSIVQDLGLTREFIPLISQSLHETILKIKKDWVDGHLIQDHVPNDAAFGYLSGIRLDIDELGSNWCPRVEILTKEEIQKREIEKERNLRRLKRETDRLSRRGRRRLDDLETTMRM swr1_yeast Helicase SWR1 SWR1 YDR334W D9651.6 protein protein yeast Saccharomyces cerevisiae MTTSRKSHAKDKKAGGEQDLADLKFRYDLLTNELFHLREFVSLVDYDPTHFNDSESFQKFLRETHLSLEERGEKFTDDVAKKGTNGDLTRRRRNLRTSTVVSSETTNEKKGDIELKLESIAPLVRNKCEELKYKLSDHSNRKSIVPQKRPIQHLKKREAAKSLKFKSERKENPLPLHEHIAEERYDHIAKVEEPSEAFTIKCPSDDSSFENTSEHYSDNFYFTTSSEEEDIKKKRGRKKKKPRIKLVVHPPKQTITNPLHVVKPGYESLHEYIASFKSLEDDLTLEEYNKYIDEQRRLLSRLKKGIENGALKYDKETDSLQPITSKEIKTIITYKPDPISYFYKQQDLQIHTDHLINQGIHMSKLFRSSTKARIARAKKVSQMIEQHFKHVAGAEERKAKEEERHKKSLARFAVQAVKKRWNMAEKAYRILRKDEEEQLKRIEGKQHLSKMLEKSTQLLEAQLNQVNDDGRSSTPSSDSNDVLSESDDDMDDELSTSSDEDEEVDADVGLENSPASTEATPTDESLNLIQLKEKYGHFNGSSTVYDSRNKDEKFPTLDKHESSSSESSVMTGEESSIYSSSENESQNENDRESDDKTPSVGLSALFGKGEESDGDLDLDDSEDFTVNSSSVEGEELEKDQVDNSAATFERAGDFVHTQNENRDDIKDVEEDAETKVQEEQLSVVDVPVPSLLRGNLRTYQKQGLNWLASLYNNHTNGILADEMGLGKTIQTISLLAYLACEKENWGPHLIVVPTSVLLNWEMEFKRFAPGFKVLTYYGSPQQRKEKRKGWNKPDAFHVCIVSYQLVVQDQHSFKRKRWQYMVLDEAHNIKNFRSTRWQALLNFNTQRRLLLTGTPLQNNLAELWSLLYFLMPQTVIDGKKVSGFADLDAFQQWFGRPVDKIIETGQNFGQDKETKKTVAKLHQVLRPYLLRRLKADVEKQMPAKYEHIVYCKLSKRQRFLYDDFMSRAQTKATLASGNFMSIVNCLMQLRKVCNHPNLFEVRPILTSFVLEHCVASDYKDVERTLLKLFKKNNQVNRVDLDFLNLVFTLNDKDLTSYHAEEISKLTCVKNFVEEVNKLRETNKQLQEEFGEASFLNFQDANQYFKYSNKQKLEGTVDMLNFLKMVNKLRCDRRPIFGKNLIDLLTKDRRVKYDKSSIIDNELIKPLQTRVLDNRKIIDTFAVLTPSAVSLDMRKLALGLNDDSSVGENTRLKVMQNCFEVSNPLHQLQTKLTIAFPDKSLLQYDCGKLQKLAILLQQLKDNGHRALIFTQMTKVLDVLEQFLNYHGYLYMRLDGATKIEDRQILTERFNTDSRITVFILSSRSGGLGINLTGADTVIFYDSDWNPAMDKQCQDRCHRIGQTRDVHIYRFVSEHTIESNILKKANQKRQLDNVVIQEGDFTTDYFSKLSVRDLLGSELPENASGGDKPLIADADVAAKDPRQLERLLAQAEDEDDVKAANLAMREVEIDNDDFDESTEKKAANEEEENHAELDEYEGTAHVDEYMIRFIANGYYY avt5_yeast Vacuolar amino acid transporter 5 AVT5 YBL089W YBL0703 protein protein yeast Saccharomyces cerevisiae MPSNVRSGVLTLLHTACGAGVLAMPFAFKPFGLMPGLITLTFCGICSLCGLLLQTRIAKYVPKSENASFAKLTQLINPSISVVFDFAIAVKCFGVGVSYLIIVGDLVPQIVQSIFYRNDDNMSGSQEHHMFLDRRLYITLIIVFVISPLCFKRSLNSLRYASMIAIVSVAYLSGLIIYHFVNRHQLERGQVYFMVPHGDSQSHSPLTTLPIFVFAYTCHHNMFSVINEQVDKSFKVIRRIPIFAIVLAYFLYIIIGGTGYMTFGENIVGNILTLYPNSISTTIGRLAMLLLVMLAFPLQCHPCRSSVKNIIIFIENFRKGKLYDNRASFIPLDNFNSEDPQEAPTQQNNEEPNLRSESLRHINIITLCILLFSYLLAISITSLAKVLAIVGATGSTSISFILPGLFGYKLIGSEFTGTNERVPTSIKIFKYLSLSLFIWGIAVMVASLSAIVFLGTSSH q06677_yeast Ydr320cp SWA2 YDR320C protein protein yeast Saccharomyces cerevisiae MSDPFAHLLTSLKNKDSASASKETTPQSSNSPSITGSAVADVARTDKSPNDSLHSISAPPLIPSPKVDFSAPPLVPTNSTTKSNTANNTPPSALANTDDDFNQLFGMGTVTTTDTIQKPDEDYYGSKEDHLYNGDDALVDEVKDMEIARLMSLGLSIEEATEFYENDVTYERYLEILKSKQKERNDLAIRKKESGIKMEKSGLSNIVGTDSNNLFSMATDFFNKGKKLVDQWTSFPPEANDRLNNYSKTHDKVEDYDLPQVNDSPNRILFEDNEVVENLPPADNPDQDLLTDFETKIDITKRTAPDVSHSSSPTSGILIEENSRRNEPLIEDSLLDFSEGNLTNSKSNEDSTLFNENSNTDSTIPISDIELSGYNEFKAKGTSLFKNGDYINSLQEYEKSLNTLPLNHPLRIIALSNIIASQLKIGEYSKSIENSSMALELFPSSKAKWKNKISNSDPERSFNDIWPKIMIRRAESFEHLESFKKALETYQELIKKNFFDDKIMQGKRRCQDFINPPPVKKSMPVKKKTTTTSPATKKQNLTASSSNSPISVDSTSEIKKRELENAKLALYDKVFEKISSWKDGKDDDIRHLLANLSSLLTWCNWKDVSMQDLVMPKRVKITYMKAVAKTHPDKIPESLSLENKMIAENIFSTLSIAWDKFKLQNDIN yep6_yeast Hypothetical 20.7 kDa Trp-Asp repeats containing protein in ICL1-NOT4 intergenic region YER066W protein protein yeast Saccharomyces cerevisiae MKCLYILSGHTDRIYSTIYDHERKRCISASMDTTIRIWDLENIRNNGECSYATNSASPCAKILGAMYTLRGHRALVGLLGLSDKFLVSASVDGSIRCWDANTYFLKHFFDHTQLNTITALHVSDEVLVSGSEGLLNIYDLNSGLLVRSDTLSGADNVWNVSFKDNTLVAAVERDKRNLLEILDFS ygf0_yeast Hypothetical 30.8 kDa protein in DUP2-TIF4632 intergenic region YGL050W protein protein yeast Saccharomyces cerevisiae MAAQNAFEQKKRAILNEIDSTQPDLSPKGTIDELCLPIIDLINASADMVTTSSCSGRVSVFLEGTKSYNGEVKIGGKGQGGKWLYVTHDREKVIGWLDELKSKSEFSFELSGKEIPTEKVTGSIRYILYKYEPFILHVKCRDFQAASKLYNTAMSCGFRESGIGSNNLVAIRINIKLDVPLGYLDETSGTLKFFVTPEYVSVLDSLSLSKFDENTRKMQALYDRIEKELINCAPDVNSKVNITPIETKEERRERKKREGMERQRQLKSPQNVL yhr2_yeast Hypothetical 42.4 kDa protein in CDC12-ORC6 intergenic region YHR112C protein protein yeast Saccharomyces cerevisiae MVDLSTALIHGDDKDNRVTDVAPPINVSTTFRYDDDDLIPWTERENLDFMEKKPVYSRLAHPNSTRLESIFSEILDGYAVIYSSGLAAFYAAMVHYNPKKIFIGQSYHGVRAIANILTRNYGIEQHPLEDIEKCASEGDIVHLESPVNPYGTSSDIESLARRAHAKGALLIVDSTFASPPLQYAWNFGADIVLYSATKYFGGHSDLLSGVLVVKEEATSRQLKDDRIYLGTNVANLESFMLLRSLRTYEMRITKQSENATKLVRFLSDHQSEFDKVLKTIYHSSLQTEEFVKKQLVGGYGPVFAITLYTKEQCKQLPLKLKYFHHATSLGGIESLVEWRAMTDPYIDQTLIRVSVGCESANDLIKDLASALKELQDAA ykr9_yeast Hypothetical 77.5 kDa protein in RPL17A-STE3 intergenic region YKL179C protein protein yeast Saccharomyces cerevisiae MDTSVYSHALDIWAKADLTNLQRELDADVIEIKDKETLSLNSRKSLATETKKFKKLEPEEKLNNVNKIIKQYQREIDNLTQRSKFSEKVLFDVYEKLSEAPDPQPLLQSSLEKLGKIDDSKELKEKISYLEDKLAKYADYETLKSRLLDLEQSSAKTLAKRLTAKTQEINSTWEEKGRNWKEREADLLKQLTNVQEQNKALEAKISKNIDIEGNGNEDGDQENNQKEVSTRIAEYNLVTQELETTQARIYQLEKRNEELSGALAKATSEAEKETELHAKELKLNQLESENALLSASYEQERKSTSHAINELKEQLNSVVAESESYKSELETVRRKLNNYSDYNKIKEELSALKKIEFGVNEDDSDNDIRSEDKNDNTFESSLLSANKKLQATLAEYRSKSTAQEEERNELKKSVDQLKQQIATLKEANEKLETDLEKVENVSPHFNETASMMSGVTRQMNNRTSHKMSPTSSIIGIPEDGELSGNQSTILPIVTKQRDRFRSRNMDLEKQLRQGNSEKGKLKLEISKLKGDNTKLYERIRYLQSYNNNNAPVNQSTERIDVESQYSRVYDESLHPMANFRQNELNHYKNKKLSALEKLFSSFAKVILQNKMTRMVFLFYCIGLHGLVFMMSMYVINISGYMTPEVGIVQSAKSSSNLNGGLGGAEKVAAGVGSVHGINR q08421_yeast S.cerevisiae chromosome XV reading frame ORF YOR051c YOR29-02 YOR051C protein protein yeast Saccharomyces cerevisiae MAKRPLGLGKQSREKKRKVESVEKKSDEPSRESTPVRSQMSVELDDDADLDDELAQLKGLWSKYFHSDRDDEYVLNGIVHECDRLLRLSEEDKEIKKTLNDIFHGIYALALSELTIFKAGDEEATEEKRKKDVSSFFESAIERVELGLSHFPESQFLKLVLAKIIFQRIPLEYISNLHLKSKDKKLDLVGQLEHGKKHFSIYENDTEFTFEILQMVNDLLDIVENFGREQSIQEGIDSDNEEEEELIDIELEPEHPVYPLQQSLEANYEWLRNHFDKLLDNTNTDVKIYASIANTLGELYLKKAEEPSKVFLSLQYDDGGSEKVSDKEAKNAQETALKHTKKALEYLEKAKLEDDPDTWVQVAEAYIDLGNLLDNESAEQEEAYKTAEEILGKANKASHGKFQDVLDNFLQG q08949_yeast S.cerevisiae chromosome XVI reading frame ORF YPL194w DDC1 protein protein yeast Saccharomyces cerevisiae MSFKATITESGKQNIWFRAIYVLSTIQDDIKITVTTNELIAWSMNETDTTLCQVRFQKSFFEEYEFKPHEIVFGENGVQVIEDTYGNSHKLYSFRVNGRHLTTISRKPDGDGIKSFTIAVNNTSTCPESLANRLIVVIEMDSLIVKEYCPQFQPIKYDPIIINLKYKRRFLDVFGTAASDRNPQEPLDPKLLDVFTNTERELTSALFNEEVESDIRKRNQLTAADEINYICCNSTLLKNFLDNCNVNVTDEVKLEINVHRLSITAFTKAVYGKNNDLLRNALSMSNTISTLDLEHYCLFTTIEDEKQDKRSHSKRREHMKSIIFKLKDFKNFITIGPSWKTTQDGNDNISLWFCHPGDPILMQMQKPGVKLELVEVTDSNINDDILEGKFIKTAISGSKEEAGLKDNKESCESPLKSKTALKRENLPHSVAGTRNSPLKVSYLTPDNGSTVAKTYRNNTARKLFVEEQSQSTNYEQDKRFRQASSVHMNMNREQSFDIGTTHEVACPRNESNSLKRSIADICNETEDPTQQSTFAKRADTTVTWGKALPAADDEVSCSNIDRKGMLKKEKLKHMQGLLNSQNDTSNHKKQDNKEMEDGLGLTQVEKPRGIFD yn92_yeast Putative transcriptional regulatory protein in BIO3-HXT17 intergenic region YNR063W N3531 protein protein yeast Saccharomyces cerevisiae MDRSKDARKRSISLACTVCRKRKLKCDGNKPCGRCIRLNTPKECIYNIDKRKDKRKIKNGSKVFLFKNNTIDNGNNSILENKGLNEDLSSHIYEKEAPKFDSDIDISRFGTNDAVIFNNDGWDTSLPIDFDFDEFNTETTDFDDFLKLLGDNSPSKEQKSLSYSPTATGLSGVVKETESEDNAPTRSRLIDVLFENKLHSVPGISKWHLYELESQYPNLECTEGNSDEKFLLSTVLCLGSLTIRKRELLNHSNIDNRPLLPENSISKLTTDAFKYYNAAKTLVPDLLSHPTIDGFCGLVLMANFMTMMISLEHQLYLSINALQLAVALNLNNNTKCKELLESNSDGIGVILLFWNIWCSSCMLATIHGKNPFITLEQITTPLPCEISPRNKTNKLLIDFMQIRIKLATLQSKIFQRLYTSSTANEVPFVNLEREFEEVSLQITRLKGFPIFEEHLFYRSRVLMLELSCLRAQASFLLYRPYLITGESLQAVTMAKSIIHEIWSQYTKQFPDNEKERHERLDWNFCYPLRTASLTLCISCIILLRYKQVVQFLKGTELFEYILALEILQDLVQVLPIEQNLIDIIKYPISPVQLSGDSFVEFWGRILY rad23_yeast UV excision repair protein RAD23 RAD23 YEL037C SYGP-ORF29 protein protein yeast Saccharomyces cerevisiae MVSLTFKNFKKEKVPLDLEPSNTILETKTKLAQSISCEESQIKLIYSGKVLQDSKTVSECGLKDGDQVVFMVSQKKSTKTKVTEPPIAPESATTPGRENSTEASPSTDASAAPAATAPEGSQPQEEQTATTERTESASTPGFVVGTERNETIERIMEMGYQREEVERALRAAFNNPDRAVEYLLMGIPENLRQPEPQQQTAAAAEQPSTAATTAEQPAEDDLFAQAAQGGNASSGALGTTGGATDAAQGGPPGSIGLTVEDLLSLRQVVSGNPEALAPLLENISARYPQLREHIMANPEVFVSMLLEAVGDNMQDVMEGADDMVEGEDIEVTGEAAAAGLGQGEGEGSFQVDYTPEDDQAISRLCELGFERDLVIQVYFACDKNEEAAANILFSDHAD ubiq_yeast Ubiquitin UBI1 RPL40A YIL148W UBI2 RPL40B YKR094C UBI3 RPS31 YLR167W L9470.14 UBI4 SCD2 YLL039C protein protein yeast Saccharomyces cerevisiae MQIFVKTLTGKTITLEVESSDTIDNVKSKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG rad53_yeast Serine/threonine-protein kinase RAD53 RAD53 MEC2 SAD1 SPK1 YPL153C P2588 protein protein yeast Saccharomyces cerevisiae MENITQPTQQSTQATQRFLIEKFSQEQIGENIVCRVICTTGQIPIRDLSADISQVLKEKRSIKKVWTFGRNPACDYHLGNISRLSNKHFQILLGEDGNLLLNDISTNGTWLNGQKVEKNSNQLLSQGDEITVGVGVESDILSLVIFINDKFKQCLEQNKVDRIRSNLKNTSKIASPGLTSSTASSMVANKTGIFKDFSIIDEVVGQGAFATVKKAIERTTGKTFAVKIISKRKVIGNMDGVTRELEVLQKLNHPRIVRLKGFYEDTESYYMVMEFVSGGDLMDFVAAHGAVGEDAGREISRQILTAIKYIHSMGISHRDLKPDNILIEQDDPVLVKITDFGLAKVQGNGSFMKTFCGTLAYVAPEVIRGKDTSVSPDEYEERNEYSSLVDMWSMGCLVYVILTGHLPFSGSTQDQLYKQIGRGSYHEGPLKDFRISEEARDFIDSLLQVDPNNRSTAAKALNHPWIKMSPLGSQSYGDFSQISLSQSLSQQKLLENMDDAQYEFVKAQRKLQMEQQLQEQDQEDQDGKIQGFKIPAHAPIRYTQPKSIEAETREQKLLHSNNTENVKSSKKKGNGRFLTLKPLPDSIIQESLEIQQGVNPFFIGRSEDCNCKIEDNRLSRVHCFIFKKRHAVGKSMYESPAQGLDDIWYCHTGTNVSYLNNNRMIQGTKFLLQDGDEIKIIWDKNNKFVIGFKVEINDTTGLFNEGLGMLQEQRVVLKQTAEEKDLVKKLTQMMAAQRANQPSASSSSMSAKKPPVSDTNNNGNNSVLNDLVESPINANTGNILKRIHSVSLSQSQIDPSKKVKRAKLDQTSKGPENLQFS cbf1_yeast Centromere-binding protein 1 CBF1 CEP1 CP1 CPF1 YJR060W J1730 protein protein yeast Saccharomyces cerevisiae MNSLANNNKLSTEDEEIHSARKRGYNEEQNYSEARKKQRDQGLLSQESNDGNIDSALLSEGATLKGTQSQYESGLTSNKDEKGSDDEDASVAEAAVAATVNYTDLIQGQEDSSDAHTSNQTNANGEHKDSLNGERAITPSNEGVKPNTSLEGMTSSPMESTQQSKNDMLIPLAEHDRGPEHQQDDEDNDDADIDLKKDISMQPGRRGRKPTTLATTDEWKKQRKDSHKEVERRRRENINTAINVLSDLLPVRESSKAAILACAAEYIQKLKETDEANIEKWTLQKLLSEQNASQLASANEKLQEELGNAYKEIEYMKRVLRKEGIEYEDMHTHKKQENERKSTRSDNPHEA spt21_yeast SPT21 protein SPT21 YMR179W YM8010.09 protein protein yeast Saccharomyces cerevisiae MSELSQMTLKILYTLDNGSNGSYLARSRAPKQVRVANIPSPFPTDSNEQTELRIGAIHLKTILHEIYLNSPEVLDHDTLKDGYDYNLYYRDICEVDEPLVSLGLLSGLRKKFHKNSPYQYTENNIGEEESEERDEVTEEEYEDESFIVTGRVCSNVSALLRRSYSNISNKKGRVVNNQIPEETLEVKLRFTKVITNLRTSGNNTTNSRISCLQMPSSLPSATLPFTPKSQSLFKTNQIKNSRNARTTITINNTNSGTVGRRQTNPMPAPKAVRTQSLPIWNLKPNIANTGFPRNSIAHKIYLADRKTEANQQNNQHQNIAYEINTLQNDNTIQRTKIDDSVSKRFDFMLNKRKSTKKVSPGIATIAKKPASININPKQPPKTSGEKKANDKQTIVKVKNSNSKNSAKSTQAGCRRSSVIEHLNDHDDSILSDILSEPGIEGQKLQQKQKGRKISLTSENDKENIPPQSITSKENKLEGDLDFNAEFPMSDFSDVVFKDEMGWFSNFNCNFFESPTSASASQLNQQNLKPSITLNDPNTCNTIALENEDVSELETAQNNKISLPSDVDKTSPIDSLSIPLIELTHSSSTTNMQRISIKEGSTLNITDSNNATPCDNDIKDRKASVIDSDNTKPQAGLINFSTPADQPASDNNVTASKKLTSMLETQQSKRSHEEVLDEEEEEEALKKQKAIPSSPCGMFNYHQPMELSEDIVEEEQGHNIGDDNESDKTNDLFSTFIHSGIRVSQVVTSPIGEFQSIKH ynu1_yeast Hypothetical 98.1 kDa protein in SPX19-GCR2 intergenic region YNL201C N1366 protein protein yeast Saccharomyces cerevisiae MSLPGTPTTSPTPMDEDTEQAVSVNTEPKRVKVYILENNEWKDTGTGFCIGEVDEGKFAYLVVSDEDSPTETLLKSKLEGNIEYQRQEETLIVWKDLGGKDIALSFEESMGCDTLCEFIVHVQRNIESNISLVTVKSSDNGLGSVHDIITGPVTLPSNDQQQNSQTLLEALKILNENTSFDFLKNETIEFILQSNYIDTLISHFHKAEEEKIPKDLFLLSNIIKTLILYNKRDILESMVEDDRIMGIVGILEYDTEYPTSKANHRKYLGSKGPNFKEVIPLENEDLKIIMKKCFRLQFLKDVVLVRFLDDHNFNLISEIVMDLETCIIDFLQVGTFLDRLIELYDTKTLPESSSEKEKFVQKRKDGIRLLQQCVQMSINLDAVDRSKFYKTLVRKGLFKVLDYAFHMETDSNVRILATDTIITIIEHDILLIHNVQNEDSFKRQHKSAPDDKSSHRKYPQDYSSSTDSKLLLILSTILLSDRSPGLREQVVQALNTLLHPEGCVGNGEGSYDLMGRSNYEAKNTSEDFPSFSYGLNSDSINLNNYHYSSDEMNNLEPESESEFQVMEYFANFYNKIAPILFGPLIKKDITTEMAEIDGQIEKVTKDDLLLIHLVKLVSFVCTEHDRVLSRRFILENGILDSVSKLIGGNHMMQLRLTAVRCIKNLMCLDDKYYHRYMISKNLYAPVFKLFQENIDKNNLANSCIQDFFRIIITECRAYQSDGHNRKEKTNGSYDGNGNDVKTNVNNNRTNFTILNKYLVQTYGDVLRKATDIPFIQDMLETGEENQPDHSSFENSIEGGNDISVNMSTDGFASNHLEDIDIKNVKRLHSEIEHFENDPHYSGDQLAFKKSVDQMNAST ubc2_yeast Ubiquitin-conjugating enzyme E2-20 kDa UBC2 RAD6 YGL058W protein protein yeast Saccharomyces cerevisiae MSTPARRRLMRDFKRMKEDAPPGVSASPLPDNVMVWNAMIIGPADTPYEDGTFRLLLEFDEEYPNKPPHVKFLSEMFHPNVYANGEICLDILQNRWTPTYDVASILTSIQSLFNDPNPASPANVEAATLFKDHKSQYVKRVKETVEKSWEDDMDDMDDDDDDDDDDDDDEAD emp24_yeast Endosomal P24B protein precursor EMP24 YGL200C G1271 protein protein yeast Saccharomyces cerevisiae MASFATKFVIACFLFFSASAHNVLLPAYGRRCFFEDLSKGDELSISFQFGDRNPQSSSQLTGDFIIYGPERHEVLKTVRDTSHGEITLSAPYKGHFQYCFLNENTGIETKDVTFNIHGVVYVDLDDPNTNTLDSAVRKLSKLTREVKDEQSYIVIRERTHRNTAESTNDRVKWWSIFQLGVVIANSLFQIYYLRRFFEVTSLV ykp3_yeast Very hypothetical 19.6 kDa protein in RPS27A-GPM1 intergenic region YKL153W YKL608 protein protein yeast Saccharomyces cerevisiae MEGKRNHQIIHSSDLFLTLVGNSSGTSSGSFWVQVVRWLRWLQVFVQFEDQWNTSWDVQLSNVSIRDTFQVLNQTSQGVTVSGDHDGLTTQQVLGNDILPVWQQSVNDQSQRFSFWQDIWVNVLVSFITLLREWRRSVDWGRWNIEGSSVGVEFFFTELLQSFSLVLTL yhj1_yeast Hypothetical helicase in SLT2-PUT2 intergenic region YHR031C protein protein yeast Saccharomyces cerevisiae MFRSHASGNKKQWSKRSSNGSTPAASASGSHAYRQQTLSSFFMGCGKKSAAASKNSTTIIDLESGDEGNRNITAPPRPRLIRNNSSSLFSQSQGSFGDDDPDAEFKKLVDVPRLNSYKKSSRSLSMTSSLHKTASASTTQKTYHFDEDETLREVTSVKSNSRQLSFTSTINIEDSSMKLSTDSERPAKRSKPSMEFQGLKLTVPKKIKPLLRKTVSNMDSMNHRSASSPVVLTMEQERVVNLIVKKRTNVFYTGSAGTGKSVILQTIIRQLSSLYGKESIAITASTGLAAVTIGGSTLHKWSGIGIGNKTIDQLVKKIQSQKDLLAAWRYTKVLIIDEISMVDGNLLDKLEQIARRIRKNDDPFGGIQLVLTGDFFQLPPVAKKDEHNVVKFCFESEMWKRCIQKTILLTKVFRQQDNKLIDILNAIRYGELTVDIAKTIRNLNRDIDYADGIAPTELYATRREVELSNVKKLQSLPGDLYEFKAVDNAPERYQAILDSSLMVEKVVALKEDAQVMMLKNKPDVELVNGSLGKVLFFVTESLVVKMKEIYKIVDDEVVMDMRLVSRVIGNPLLKESKEFRQDLNARPLARLERLKILINYAVKISPHKEKFPYVRWTVGKNKYIHELMVPERFPIDIPRENVGLERTQIPLMLCWALSIHKAQGQTIQRLKVDLRRIFEAGQVYVALSRAVTMDTLQVLNFDPGKIRTNERVKDFYKRLETLK ras2_yeast Ras-like protein 2 RAS2 ASC1 CTN5 GLC5 YNL098C N2198 protein protein yeast Saccharomyces cerevisiae PLNKSNIREYKLVVVGGGGVGKSALTIQLTQSHFVDEYDPTIEDSYRKQVVIDDEVSILDILDTAGQEEYSAMREQYMRNGEGFLLVYSITSKSSLDELMTYYQQILRVKDTDYVPIVVVGNKSDLENEKQVSYQDGLNMAKQMNAPFLETSAKQAINVEEAFYTLARLVRDEGGKYNKTLTENDNSKQTSQDTKGSGANSVPRNSGGHRKMSNAANGKNVNSSTTVVNARNASIESKTGLAGNQATNGKTQTDRTNIDNSTGQAGQANAQSANTVNNRVNNNSKAGQVSNAKQARKQQAAPGGNTSEASKSGSGGCCIIS sps18_yeast Sporulation protein SPS18 SPS18 SPX18 YNL204C N1354 protein protein yeast Saccharomyces cerevisiae MRLFENSKDMENRKRLLRAKKAAGNNNCFECKSVNPQFVSCSFGIFICVNCANLLRGMGTNIFCVKSITMDNFEEKDVRRVEKSGNNRFGSFLSKNGILQNGIPLREKYDNLFAKSYKRRLANEVRSNDINRNMYLGFNNFQQYTNGATSQIRDRTLREISNNSNASEGAEFVLPEKVLGSDNFQDCERFPACLSSERNLDENNVTSATSTLTIEKFQNDPIGTISRSWQLLSDALYKSYEDFKGSVVQPTIENIQQRNLPNDIKRSFVHFNEKLHETPHLPSPVFSCFTGGDILPPEFN reg2_yeast REG2 protein REG2 YBR050C YBR0504 protein protein yeast Saccharomyces cerevisiae MTLSNCDSLDNLFQDPPEEEESSKFVEAVRTLMNRNDMGYPPAAANGTYCLKKIKSLNAKQWKINKKRMCMLPAVKKKNFDFHEQRSLILNLNLWKFIKFINCSSKNNYNKNNKHVRSSNNTVKNENVLPLQKHKKVDNDQRLENLFWRSWFKARKRRDIMGKPRERHIKFNDNVEQCIITDEHFIQRLPSTRLNSTDEQRPCSKSELDPCIGNAASKRSFYDYNSVYVASDAIITTAAATAIISSNSGDYQRGHDVRDVPRNVLLQAGETDFSSVLRVDSDLKLSNISHHSPVKPSSTSSHSTFIFESETDTDTDTDAETENDIDAYIDTSIPNLLL pop2_yeast POP2 protein POP2 CAF1 YNR052C N3470 protein protein yeast Saccharomyces cerevisiae MQSMNVQPRVLAVGGEQFFSQRQASEQHQQQNMGPQVYSPKVNRARMFPQGMPVNTINGSVNQEMNNAYLLKQKNEPLLTQQQQQQQQQQQPFNIGTPVSVASLPPGLNVLQQQQQQQQQQQQQQQGVGLNRPLASQLPKHLTNQSMPPIFLPPPNYLFVRDVWKSNLYSEFAVIRQLVSQYNHVSISTEFVGTLARPIGTFRSKVDYHYQTMRANVDFLNPIQLGLSLSDANGNKPDNGPSTWQFNFEFDPKKEIMSTESLELLRKSGINFEKHENLGIDVFEFSQLLMDSGLMMDDSVTWITYHAAYDLGFLINILMNDSMPNNKEDFEWWVHQYMPNFYDLNLVYKIIQEFKNPQLQQSSQQQQQQQYSLTTLADELGLPRFSIFTTTGGQSLLMLLSFCQLSKLSMHKFPNGTDFAKYQGVIYGIDGDQ rga1_yeast Rho-type GTPase-activating protein 1 RGA1 DBM1 THE1 YOR127W O3290 YOR3290W protein protein yeast Saccharomyces cerevisiae MASTAPNEQFPSCVRCKEFITTGHAYELGCDRWHTHCFACYKCEKPLSCESDFLVLGTGALICFDCSDSCKNCGKKIDDLAIILSSSNEAYCSDCFKCCKCGENIADLRYAKTKRGLFCLSCHEKLLAKRKYYEEKKRRLKKNLPSLPTPVIDNGHTDEVSASAVLPEKTFSRPASLVNEIPSGSEPSKDIETNSSDIVPHFITGYNDSDDNSGSSKFGSNVSIDVIGPEENSTEHVNDDVKEEAEAPSANMSLNVATDPTLSCKEPPSHSRNLLNKTPLRNSSGQYLAKSPSSYRQGIIVNDSLEESDQIDPPNNSSRNASELLTSVLHSPVSVNMKNPKGSNTDIFNTGEISQMDPSLSRKVLNNIVEETNALQRPVVEVVKEDRSVPDLAGVQQEQAEKYSYSNNSGKGRKISRSLSRRSKDLMINLKSRATGKQDSNVKLSPASKVTSRRSQDLMRDNDSHTGLDTPNSNSTSLDILVNNQKSLNYKRFTDNGTLRVTSGKETALEEQKNHSFKSPSPIDHLLQSPATPSNVSMYRTPPLDSSLTFDRRNGSSYSNQNYSIPSWQKTPKTQLENSDNFEEQKETLYENSESRNDPSLDKEIVTAEHYLKQLKINLKELESQREELMKEITEMKSMKEALRRHIESYNSEKNKLYLDSNELSNNPPMINEISLGESPPVKHVATASSVARSSVKPKFWKFFSSAKPQTEQSIQGVSTNNTNSIVKSAPVLLSAPSSGSNSGRLEISPPVLQNPNEFSDVRLVPIENDANMGQSKDGEEYLDGSNLYGSSLVARCNYENNEIPMILSVCIDFIESDEENMRSEGIYRKSGSQLVIEEIEKQFSAWKVQQNTETPNILTEQDLNVVTGVLKRYLRKLPNPIFTFQIYEPLMRLVKSKKMMENLPFVGGKLSLEAKNSDTYMSSKSALKNILEDLPREHYRVLRVLSEHIEKVTRYSHWNRMTLYNLALVFAPGLIRDFSGEKDIIDMKERNYIVAFIFGNYKDILT rho1_yeast RHO1 protein RHO1 YPR165W P9325.3 protein protein yeast Saccharomyces cerevisiae SQQVGNSIRRKLVIVGDGACGKTCLLIVFSKGQFPEVYVPTVFENYVADVEVDGRRVELALWDTAGQEDYDRLRPLSYPDSNVVLICFSIDLPDSLENVQEKWIAEVLHFCQGVPIILVGCKVDLRNDPQTIEQLRQEGQQPVTSQEGQSVADQIGATGYYECSAKTGYGVREVFEAATRASLMGKSKTNGKAKKNTTEKKKKKCVLL rgt2_yeast High-affinity glucose transporter RGT2 RGT2 YDL138W D2160 protein protein yeast Saccharomyces cerevisiae MNDSQNCLRQREENSHLNPGNDFGHHQGAECTINHNNMPHRNAYTESTNDTEAKSIVMCDDPNAYQISYTNNEPAGDGAIETTSILLSQPLPLRSNVMSVLVGIFVAVGGFLFGYDTGLINSITDMPYVKTYIAPNHSYFTTSQIAILVSFLSLGTFFGALIAPYISDSYGRKPTIMFSTAVIFSIGNSLQVASGGLVLLIVGRVISGIGIGIISAVVPLYQAEAAQKNLRGAIISSYQWAITIGLLVSSAVSQGTHSKNGPSSYRIPIGLQYVWSSILAVGMIFLPESPRYYVLKDELNKAAKSLSFLRGLPIEDPRLLEELVEIKATYDYEASFGPSTLLDCFKTSENRPKQILRIFTGIAIQAFQQASGINFIFYYGVNFFNNTGVDNSYLVSFISYAVNVAFSIPGMYLVDRIGRRPVLLAGGVIMAIANLVIAIVGVSEGKTVVASKIMIAFICLFIAAFSATWGGVVWVVSAELYPLGVRSKCTAICAAANWLVNFTCALITPYIVDVGSHTSSMGPKIFFIWGGLNVVAVIVVYFAVYETRGLTLEEIDELFRKAPNSVISSKWNKKIRKRCLAFPISQQIEMKTNIKNAGKLDNNNSPIVQDDSHNIIDVDGFLENQIQSNDHMIAADKGSGSLVNIIDTAPLTSTEFKPVEHPPVNYVDLGNGLGLNTYNRGPPSIISDSTDEFYEENDSSYYNNNTERNGANSVNTYMAQLINSSSTTSNDTSFSPSHNSNARTSSNWTSDLASKHSQYTSPQ bpt1_yeast Bile pigment transporter 1 BPT1 YLL015W L1313 protein protein yeast Saccharomyces cerevisiae MSSLEVVDGCPYGYRPYPDSGTNALNPCFISVISAWQAVFFLLIGSYQLWKLYKNNKVPPRFKNFPTLPSKINSRHLTHLTNVCFQSTLIICELALVSQSSDRVYPFILKKALYLNLLFNLGISLPTQYLAYFKSTFSMGNQLFYYMFQILLQLFLILQRYYHGSSNERLTVISGQTAMILEVLLLFNSVAIFIYDLCIFEPINELSEYYKKNGWYPPVHVLSYITFIWMNKLIVETYRNKKIKDPNQLPLPPVDLNIKSISKEFKANWELEKWLNRNSLWRAIWKSFGRTISVAMLYETTSDLLSVVQPQFLRIFIDGLNPETSSKYPPLNGVFIALTLFVISVVSVFLTNQFYIGIFEAGLGIRGSLASLVYQKSLRLTLAERNEKSTGDILNLMSVDVLRIQRFFENAQTIIGAPIQIIVVLTSLYWLLGKAVIGGLVTMAIMMPINAFLSRKVKKLSKTQMKYKDMRIKTITELLNAIKSIKLYAWEEPMMARLNHVRNDMELKNFRKIGIVSNLIYFAWNCVPLMVTCSTFGLFSLFSDSPLSPAIVFPSLSLFNILNSAIYSVPSMINTIIETSVSMERLKSFLLSDEIDDSFIERIDPSADERALPAIEMNNITFLWKSKEVLTSSQSGDNLRTDEESIIGSSQIALKNIDHFEAKRGDLVCVVGRVGAGKSTFLKAILGQLPCMSGSRDSIPPKLIIRSSSVAYCSQESWIMNASVRENILFGHKFDQDYYDLTIKACQLLPDLKILPDGDETLVGEKGISLSGGQKARLSLARAVYSRADIYLLDDILSAVDAEVSKNIIEYVLIGKTALLKNKTIILTTNTVSILKHSQMIYALENGEIVEQGNYEDVMNRKNNTSKLKKLLEEFDSPIDNGNESDVQTEHRSESEVDEPLQLKVTESETEDEVVTESELELIKANSRRASLATLRPRPFVGAQLDSVKKTAQKAEKTEVGRVKTKIYLAYIKACGVLGVVLFFLFMILTRVFDLAENFWLKYWSESNEKNGSNERVWMFVGVYSLIGVASAAFNNLRSIMMLLYCSIRGSKKLHESMAKSVIRSPMTFFETTPVGRIINRFSSDMDAVDSNLQYIFSFFFKSILTYLVTVILVGYNMPWFLVFNMFLVVIYIYYQTFYIVLSRELKRLISISYSPIMSLMSESLNGYSIIDAYDHFERFIYLNYEKIQYNVDFVFNFRSTNRWLSVRLQTIGATIVLATAILALATMNTKRQLSSGMVGLLMSYSLEVTGSLTWIVRTTVTIETNIVSVERIVEYCELPPEAQSINPEKRPDENWPSKGGIEFKNYSTKYRENLDPVLNNINVKIEPCEKVGIVGRTGAGKSTLSLALFRILEPTEGKIIIDGIDISDIGLFDLRSHLAIIPQDAQAFEGTVKTNLDPFNRYSEDELKRAVEQAHLKPHLEKMLHSKPRGDDSNEEDGNVNDILDVKINENGSNLSVGQRQLLCLARALLNRSKILVLDEATASVDMETDKIIQDTIRREFKDRTILTIAHRIDTVLDSDKIIVLDQGSVREFDSPSKLLSDKTSIFYSLCEKGGYLK imp2_yeast Mitochondrial inner membrane protease subunit 2 IMP2 YMR035W YM9973.09 protein protein yeast Saccharomyces cerevisiae MFRAGSSKRFLRNTLIAISWVPVLLTINNNVVHIAQVKGTSMQPTLNPQTETLATDWVLLWKFGVKNPSNLSRDDIILFKAPTNPRKVYCKRVKGLPFDTIDTKFPYPKPQVNLPRGHIWVEGDNYFHSIDSNTFGPISSGLVIGKAITIVWPPSRWGTDLKLSTGRDCISKRAILE kes1_yeast Protein KES1 KES1 OSH4 YPL145C LPI3C P2614 protein protein yeast Saccharomyces cerevisiae MSQYASSSSWTSFLKSIASFNGDLSSLSAPPFILSPISLTEFSQYWAEHPELFLEPSFINDDNYKEHCLIDPEVESPELARMLAVTKWFISTLKSQYCSRNESLGSEKKPLNPFLGELFVGKWENKEHPEFGETVLLSEQVSHHPPVTAFSIFNDKNKVKLQGYNQIKASFTKSLMLTVKQFGHTMLDIKDESYLVTPPPLHIEGILVASPFVELEGKSYIQSSTGLLCVIEFSGRGYFSGKKNSFKARIYKDSKDSKDKEKALYTISGQWSGSSKIIKANKKEESRLFYDAARIPAEHLNVKPLEEQHPLESRKAWYDVAGAIKLGDFNLIAKTKTELEETQRELRKEEEAKGISWQRRWFKDFDYSVTPEEGALVPEKDDTFLKLASALNLSTKNAPSGTLVGDKEDRKEDLSSIHWRFQRELWDEEKEIVL yjs6_yeast Hypothetical 67.3 kDa protein in SWE1-ATP12 intergenic region YJL186W J0409 protein protein yeast Saccharomyces cerevisiae MLIRLKKRKILQVIVSAVVLILFFCSVHNDVSSSWLYGKKLRLPVLTRSNLKNNFYTTLVQAIVENKPADSSPDLSKLHGAEGCSFANNVAAHDSGHDSDLSYESLSKCYNLNKTVQESLREVHSKFTDTLSGKLNFSIPQREALFSGSEGIVTIGGGKYSVLAYTMIKKLRDTGTTLPIEVIIPPQDEGEDDFCKNWLPKFNGKCIYFSDIVPSKPLSDLKLTHFQLKVFGLIISSFKRIIFLDADNYAVKNLDLAFNTTSFNDTGLILWPDFWRRVTPPAFYNIIGSSINIGKRVRFVSDDISPVSRYDPFVSNSNDYTPKERQEHFLKHVPLHDLDGTMPDLSSESGQMVIDKIRHFNTLLLALYYNVYGPTWYYKMISQGTAGEGDKDTFFAAAHALNMPYYQVRTNFEFDGFFYQKDDYKGLALLQHDFEQDYKQYQKAQQKVKANIEEFSKLDPDYTLDNGFLKTLMVNDDGSDLDIMFIHASFYKADPWTLYHENRFIGPNGEQVRGFRKPHRYGMDFELFLFNDMRGSFCTTPKSQVIKFKYFTDKVNTPEWDAMCEYLTNHVNYLESTHKEAMGEKN rt05_yeast Probable mitochondrial 40S ribosomal protein S5 MRPS5 YBR251W YBR1704 protein protein yeast Saccharomyces cerevisiae MFKRQLSTSVRYLQHYDESLLSRYYPESLLKSIKLAQQTIPEDTKFRVSRNVEFAPPYLDDFTKIHPFWDYKPGMPHLHAQEENNNFSIFRWDQVQQPLPGEGNILPPGVSLPNDGGRKSKSADVAAGLHKQTGVDPDYITRKLTMKPLVMKRVSNQTGKGKIASFYALVVVGDKNGMVGLGEGKSREEMSKAIFKAHWDAVRNLKEIPRYENRTIYGDIDFRYHGVKLHLRSAKPGFGLRVNHVIFEICECAGIKDLSGKVYKSRNDMNIAKGTIEAFTKAQKTLDEVALGRGKKLVDVRKVYYSS nhpx_yeast NHP2/L7aE family protein YEL026W YEL026W protein protein yeast Saccharomyces cerevisiae MSAPNPKAFPLADAALTQQILDVVQQAANLRQLKKGANEATKTLNRGISEFIIMAADCEPIEILLHLPLLCEDKNVPYVFVPSRVALGRACGVSRPVIAASITTNDASAIKTQIYAVKDKIETLLI q06160_yeast Ylr313cp SPH1 YLR313C protein protein yeast Saccharomyces cerevisiae MISSELTNDQIIDLISDYKNFKRIIEASVPEDDRRRNQNRQNRNKDLTKLSNVQFWQLTTDVNDELMKRLTDSGADASLNDLDLKRGKAQSKLSRLKDAKFHKLILDIFTEIERRNLHHLDMGTHNNGLDEGDLNFYLNDTLFESFKINDDFMSVNGIISIEVFRELKTQFTLYFQNTLHRIDPVDTTTTRLPILLETIIKIAKLIGDLLPVLSSVSLQSSLENEIVYLKSALSHAITSTRYFLTYGDLIPRIVAQSSISEVIFAFCNIAQIVKIKSTSRDDISRNEGELSDIEAGMKPLKIIEKVKNEKNGKDISSLGDSGSTAVSFPSSGKPITKKSDMPVVVASPSISIIEKSESSIRESGKVRNNTSGETNLASVSPLKNTKNSSRITSEPSPREGLPLKVVSNSRSPSPQGNTLPLIGKFRQDYQASPPKKVITKPVAETAKPYANIPPAADVLYSPTVTKMRKFREKVQKFAPNSGLGLRISTSEENLNNSDVNSTTHNANINNLVEFVESKSMVVLPMAQGILNDVQASKSKLFKSARSVSRLCQNSIEIIPILESVIDMTTKAMVQKSFKLDLGEHCKEIIERLTDCSQKLSELCTYGCDSTKLGKKRFYQKLADILMEVTKRTRELVECVKMANRQTLSQDLSSFFNYRSVQ ycw6_yeast Hypothetical 26.8 kDa protein in ERS1-PAT1 intergenic region YCR076C YCR76C protein protein yeast Saccharomyces cerevisiae MIENKVELVAELVLESIGKTEVVSRHTEGTKSCQVSFRIKDSPSEKGSTSFLSELVVIQTLDDNDKYTVVIRHGTSITMACVVGYSDFKLPTELKWPLERESLPVEPDLKPIMTQLKRQTAGSADMPKFDDEYQAQARQNQGTAPLNPYPGLTVTEPSFANPAGGYADGDLYPVGTSHPDWSGGLPNPLGNPSSQGGMIFDPNRRPAPRREDMPPGWMPGSKYDEPFGPGSGGFGGSGSGGFGGSGSGFI eaf3_yeast Chromatin modification-related protein EAF3 EAF3 YPR023C YP9367.03C protein protein yeast Saccharomyces cerevisiae MVDLEQEFALGGRCLAFHGPLMYEAKILKIWDPSSKMYTSIPNDKPGGSSQATKEIKPQKLGEDESIPEEIINGKCFFIHYQGWKSSWDEWVGYDRIRAYNEENIAMKKRLANEAKEAKKSLLEQQKKKKLSTSLGGPSNGGKRKGDSRSNASISKSTSQSFLTSSVSGRKSGRSSANSLHPGSSLRSSSDQNGNDDRRRSSSLSPNMLHHIAGYPTPKISLQIPIKLKSVLVDDWEYVTKDKKICRLPADVTVEMVLNKYEHEVSQELESPGSQSQLSEYCAGLKLYFDKCLGNMLLYRLERLQYDELLKKSSKDQKPLVPIRIYGAIHLLRLISVLPELISSTTMDLQSCQLLIKQTEDFLVWLLMHVDEYFNDKDPNRSDDALYVNTSSQYEGVALGM o13583_yeast Ypr077cp YPR077C protein protein yeast Saccharomyces cerevisiae MSGLLLICSALKRVVLKITAVVCSVFSIRVLILATKIKKTCHECGTHLEIIWEGKFIFCKEDSKNGLQSIKILRRANLVKMKTPLPFPYHHLIRERKHSWKLNSVLCPNQVISLWYKHNRVKG q06815_yeast Ypr079wp MRL1 YPR079W protein protein yeast Saccharomyces cerevisiae MLKRSSLIYLSCVLIITIPILLHVYNGPGLSHEANEHRASHKQKRTLANPDKPKSENDEDLFCAVTNPVTGSYIDLSQLSSTPNKLREGQKQISGNNKHESSKTKWSVRGWGYDTNFTLGICSSPVGEAESQQLSNLTGAFYVDQLNENNLVSIGDFSTRPALVGGSTAKKLTLKYENGSMCPNGKDKKATLLNFVCDKEIQSKAQISYIGNLHNCSYFFEVRSIHACPTSNKKNEVNVLGIFIGIFAIFFLVEFAGRRWIYAKLNRHLKNDDELHDISPSLNEQPHWDLIEDGSRWSKFFNGIIKTTRRFTKSLMRSLVRGRNSRQGGIRLRSSPSASSSSLANREFFRDMEAQNEIIDSLDINSHTTESDHPTLADNSV rho5_yeast RHO5 protein RHO5 YNL180C N1644 protein protein yeast Saccharomyces cerevisiae MRSIKCVIIGDGAVGKTSLLISYTTNSFPTDYVPTVFDNYSTTIAIPNGTASSPLELDNGNDKRGSLSSASSSPSTDRKLYKINLWDTAGQEDYDRLRPLCYPQTDIFLICFSVSEHASFANVTEKWLPELKQTSNIEGTSLYTKLGKYPILLVGTKSDLRDDPATQKKLQEANSDYVSQEEIDELVQRCGFMGYTECSAATQAGVREVFEQAVRYAIYEPESPNQKSANHTLTDELTTATTNTNGDKNIREQKQQPHHNNSTDSTLPKGSLQQEKEALNIKPTKKGQKDKIHEQSKSKGSKIASNNHHNKQAKPKTRNDKKKKKSKCVIL q07843_yeast S.cerevisiae chromosome XII reading frame ORF YLL033w YLL033W protein protein yeast Saccharomyces cerevisiae MRKPSITITTAKAIITPDYTLIKSHSKYQLPSRFQKLDADSPERSTVVKLFYRRFMRLKPFISNVKMVKDTYRDYVRYKFMKENYELKRYLVFNPDGLRSKINLELLSNTKCCERILPVTEMQRTLEFVLKSCSYLPETKVQKWDIARDNTYCRQILKNLLTMQYEKYRSILHRGIGHDELDVKFSHLKTTSSPLTKLNKTEKKKIPLFKVFSDFDTTLIYLNETLGTRL rs28b_yeast 40S ribosomal protein S28-B RPS28B RPS33B YLR264W L8479.5 protein protein yeast Saccharomyces cerevisiae MDSKTPVTLAKVIKVLGRTGSRGGVTQVRVEFLEDTSRTIVRNVKGPVRENDILVLMESEREARRLR yab8_yeast Hypothetical 37.0 kDa protein in ATS1-TPD3 intergenic region YAL018C YAL003 protein protein yeast Saccharomyces cerevisiae MSFTGSLALAGIGGLVYKFGGGQSYEKLPYVNIPFNQYLDKVYKKHFSKVMSRTRYVLMNFFKDAFTGGAFMYPFKGFLEFNTNKSSYSTTMLGILSSYLIMFALVSFVYWATITPMYTAFLIVLGPIGLFIAIFHSFLQANVFTLLFMRLSHFNNHLVEVCLEKNGLEENLSEVKPIKYYAPINSIYFWAYYFPFKLVKYMLGLSVLFVLLVISFFPLIGPILFHILISPFITQIYFTKVLRLQNFDNIQRRENIYLHAGQYASFGFLAGLIESVPILAGFAISTNTIGSVLFNLDHPMVPENLVETQAEIEAAPQDINQQPNQ ykr6_yeast Hypothetical 93.4 kDa protein in STE3-GIN10 intergenic region YKL176C YKL642 protein protein yeast Saccharomyces cerevisiae MLGNLLRNKTSSSGFEKSSEHSDFSSVVPNVPVYCKAASTGTTKTAAGALLDTAVNVEKPSEMLSTTSPPILDHISDDLKLKLFGSRDIPYSRPIDTLQNNGGLGTDKITSINEKTYAFRILIIEEAGQMACRNNYRDIFDYTTSKISNSMEQIRPSELKEYIFGSPVRSSDLTQCDKIRTIPNSDLVLITRIFYYTHQYNRIAISLCIPRILLPVVAESWSSISSWLTQTQKMLIGFLTKNRIMQENTGNYSNNSVIKLSNIDIRTHYPKEIEIMVQTLQKRVIPGLRSMSEIPRLFLYPETFKEFVHVWFKSIFNWIEIKDGPKLGFLPLLMAMIISDYRHTIRELKTSKIVILSGNMVVANKLLFILSALLEPKYKGQITIRRENIRSDSSAVSRNKSNNNFVDKPETELSTLTSTDNLLSRTENNSNHNYNNSNVSSNSIGSPNFHSLRKGWQIPNRRNSNTSVSVSSSESLAEVIQPSSFKSGSSSLHYLSSSISSQPGSYGSWFNKRPTISQFFQPSPSLKHNESWERLQTTAGNMQRTSSSSSLQQATSRLSLTTPQQSPSISEYDEYPWMGTPGSPNVGDVSHAPPLVKNISYKFPLKNVELKRDCQRISQDDLLDEAFERICQPSLADLNSTYEIFPGNSSYADILTTDSDIDDGLMNKPLELLPKYTMYLTHFNNFFQLQACPAGQESESRITNSMKIDLLKADYTRSLLVSLRSRDIRDVALKREFTGNNNNNSNQNIYDENFVGKRKYVLKQKTRKIFSCGKIGKLSTSLENCVNFVENSIKSAMMLYDDNGIDSELRDSEALRIFSSLVHYCNAG rrn10_yeast RNA polymerase I specific transcription initiation factor RRN10 RRN10 YBL025W YBL0426 protein protein yeast Saccharomyces cerevisiae MDRNVYEACSNIIKEFGTHVVSADEVLAEKIDNAVPIPFKTREEIDADVEKDRNEGVFEGNIIPDIDLRVVHYYATQLCLNKYPHLINAFDETSLITLGLLIEKWVKDYLTSIQTEQGRQSKVIGKGPCEFISKHIDYRHAPGNI adb2_yeast Probable beta-adaptin APL2 YKL135C protein protein yeast Saccharomyces cerevisiae MPPLDKRIKKFLKDSIRIAPKISGKGELSELRTGLVSQYPQTRKDAIKKTIQQMTLGKDVSSLFPDVLKNIATIDVEQKKLVYLYVMNYAETHPELCILAVNTFITDAQDPNPLIRCMAIRTMSMIRVDKILEYIETPLRRTLHDDNAYVRKTAVICVAKLFQLNKDLCVELGVVEDLVNALDDSNPLVIANATAALIEIHNMDMDAVDLSSLIQSHVSQFLLALNECTEWARIIILGTLSEYSAKDSLEAQDIIDRVTAHLQHVNPAVVLATIKVIVRNLPQIEYSSNSLIMKRLSSAFVSLMSTPPEMQYVALKNIRIILEKYPELLTKELRIFYVKFNDPLYVKLEKIDILVRLVDPSNLKQCTLLLTELKEYAMEYEPEFVSRAIQALSQLGIKYAQESFVSKVLDILLELLERQDTIKDDCCISLCDLLRHCPGNDKMAKQVCAVFNTWSNPEVLLQSDIAKCNYVWLLGQHPNNFSDLESKINIFIENFVQEEALTQMSLLMTIVRLHATLTGSMLQSVLELATQQTHELDVRDMAMMYWRCLSMPNNESLVNDLCQNKLPMISNTLEKFSPEVLEKLLMELGTISSIYFKPDSNRRKGKKYVQNIVKGKHIEELESMAKNEISSKANDDVLLDFDERDDVTNTNAGMLNTLTTLGDLDDLFDFGPSEDATQINTNDTKAVQGLKELKLGGDSNGISSGGKNNPDVSGGNIVSQDLLDLF rsr1_yeast Ras-related protein RSR1 RSR1 BUD1 YGR152C G6658 protein protein yeast Saccharomyces cerevisiae MRDYKLVVLGAGGVGKSCLTVQFVQGVYLDTYDPTIEDSYRKTIEIDNKVFDLEILDTAGIAQFTAMRELYIKSGMGFLLVYSVTDRQSLEELMELREQVLRIKDSDRVPMVLIGNKADLINERVISVEEGIEVSSKWGRVPFYETSALLRSNVDEVFVDLVRQIIRNEMESVAVKDARNQSQQFSKIESPSTRLPSSAKQDTKQSNNKQSSKGLYNKSSQGQAKVKQSTPVNEKHKPSHAVPKSGSSNRTGISATSQQKKKKKNASTCTIL cul8_yeast Cullin-8 CUL8 RTT101 YJL047C J1166 protein protein yeast Saccharomyces cerevisiae MINESVSKREGFHESISRETSASNALGLYNKFNDERNPRYRTMIAELHEFFHLTLAETITETDVKELECNKEKAAKFRKLMPKMLNNCRELTQRKSYIPYNSEFNGNDEKQKKFQLLHQHQIVLSFQEFCDELAKLIIDAHVLSFLTRCDYSYEIIPKNWTSFYKLFQYVMGAVGPIISYVPVNYPMIRKELGFETLTIFQYYDSKLFECMKSHFGREFSTLVSATIHHYIHMFPITNTMLEKEVPMLRIMSNCNFSIEGLSPKDFYMKTLRQYYCEESNLRPRLETFKNFKVLLTRNALLASLFSPEWVSDANDLFISHLLLNKKSISEYIEIGKDTYDEEKERYFKTETHFSLLMFRNAFEAKNMLSKFKEFCDDAVSEKLKAAYGSNHDTERLFDEVVQLANVDHLKIYSDSIEYHLCNLLGSTSKAIEQYVKYFESHLFIIVRKIKTTKKDLPRDMKIKYLNENLPILRLKFVNLPTFPNFFERSIFRKTILQSDQNSSFIKDILPVYKDSLMELFKQRIITNVSQEDEMRYRDQYQPYLSQFFQPVEVMADLRIKYASFLSFYENIEAAVKFGKTYNENNSKSFFPLIFDRERIPKVFQQSNEVKKNFVLPQEMDDTWNQFLRNYHEQNKVEDSDASKKELYPMWNLHHCEVESPYIIQDGTNLIFELTLFQTCVLTLFNESDHLTLQVISEQTKLAYKDLALVLKSFCNYKILTRDIDNTYSINESFKPDMKKVKNGKLRVVLPRTASLQSSNTGGERTSSAHHEGSNSQWTQELLKACITRSVKSERNGLDYDHLFETVKQQIKGFSVGEFKDALAKLLRDKFITRDESTATYKY pem2_yeast Methylene-fatty-acyl-phospholipid synthase PEM2 OPI3 YJR073C J1824 protein protein yeast Saccharomyces cerevisiae MKESVQEIIQQLIHSVDLQSSKFQLAIVCTMFNPIFWNIVARMEYHKHSLTKMCGGARKGCYMLAATIFSLGIVRDMVYESALREQPTCSLITGENWTKLGVALFGLGQVLVLSSMYKLGITGTYLGDYFGILMDERVTGFPFNVSNNPMYQGSTLSFLGIALYKGKPAGLVVSAVVYFMYKIALRWEEPFTAMIYANRDKAKKNM q12168_yeast S.cerevisiae chromosome XII reading frame ORF YLR144c ACF2 YLR144C protein protein yeast Saccharomyces cerevisiae MCYSRQAIPPPVPNRPGGTTNRGPPPLPPRANVQPPVCSSENSSKPRENRVAGESLRTPSSSNPLADSQVNSDNIFQSPVLSNLKAPPSVFNKVQHPVPKPNIDDQSVDPLETNKFYTNMLLDDNTQPIWTHPYSIWFSRDPELFGLAANHTLASQRVFDTTTNPPRFYFNPTNIKSFVFKAREFVSSNDIKLEFRDMKHMSMCLLMSLSSSQFIEFPLVQGMGFVTAIYHDLGFELRSAVGFRSLERISVNERYGKYNIQLENNRNWILYLTSPDYSFPQDFQISLLDSNTIISSHKINGLICQLSADSVPSIDMAAGCYPVYCDLSGQTVDEHFTNYRFNYTVAGYSQSGTTLMYALPHHKAAFTPEMQEREIASSLDSTVKGLMTGYLTNSFDMQVQVPQELGFEPVALSLNKKADYSQEKLSKIREAAVQEVQLSDPQQESNIDSMYFSGKILAKYAWILYVTHYILHDENLTKELLSKLTIAMERFISNQQVLPLNYDVSWKGIISSGSSSQDFGNSYYNDHHFHYSYHVITAAIISLVDSDLSGVTNNSWLENNRDWVECLIRDYSGVDNDDPYFPQFRSFDWFNGHSWAKGLFPSGDGKDEESTSEDVNSCYAIKLWGLVTGNSKLTDIANLQLGIMRNVFQSYFLYESNNTVQPKEFIGNKVSGILFENKIDHATYFGMEPQYIHMIHAIPITSASSWVRTPNFVKEEWEEKMQPIIDQVNDGWKGIIMLNMALLDPKFSYDFFSQPDFNRNFLDNGQSLTWSLAYSGAFS rv161_yeast Reduced viability upon starvation protein 161 RVS161 END6 SPE161 YCR009C YCR9C protein protein yeast Saccharomyces cerevisiae MSWEGFKKAINRAGHSVIIKNVDKTIDKEYDMEERRYKVLQRAGEALQKEAKGFLDSLRAVTASQTTIAEVISNLYDDSKYVAGGGYNVGNYYLQCVQDFDSETVKQLDGPLRETVLDPITKFSTYFKEIEEAIKKRDHKKQDFDAAKAKVRRLVDKPAKDASKLPRAEKELSLAKDIFENLNNQLKTELPQLVSLRVPYFDPSFEALIKIQLRFCTDGYTRLAQIQQYLDQQSRDDYANGLLDTKIEELLGQMTSLDICALGIK ybv8_yeast Protein YBR108W YBR108W YBR0901 protein protein yeast Saccharomyces cerevisiae MGFWENNKDSITSGLKSAGKYGYQGTKYVAKTGYKASKKHYNNSKARRERKSGKKNSSDEEYDSEDEMEYERKPTDIRSLKDPKSFPPPPLKPGQKTYTGQQQQQMPNGQASYAFQGAYQGQPGAGSTEQSQYAQPQYNQYPQQQLQQGVMPQQQQLQQGVVPQQPPIYGEQVPPYGSNSNATSYQSLPQQNQPQNAIPSQVSLNSASQQSTGFVSQNLQYGTQSSNPAPSPSFQNGLQCHQQPQYVSHGSTNLGQSQFPSGQQQQPTTQFGQQVLPSPAQPQQQQQGQPLPPPRGQVILPAPGEPLSNGFGQQQQQQQQQQQPLNQNNALLPQMNVEGVSGMAAVQPVYGQAMSSTTNMQDSNPSYGASPMQGQPPVGGQPPVPVRMQPQPPQPMQQGNIYPIEPSLDSTGSTPHFEVTPFDPDAPAPKPKIDIPTVDVSSLPPPPTHRDRGAVVHQEPAPSGKIQPNTTSSAASLPAKHSRTTTADNERNSGNKENDESTSKSSILGHYDVDANIMPPPKPFRHGLDSVPSEHTTKNAPERAVPILPPRNNVEPPPPPSRGNFERTESVLSTNAANVQEDPISNFLPPPKPFRHTETKQNQNSKASPVEMKGEVLPGHPSEEDRNVEPSLVPQSKPQSQSQFRRAHMETQPIQNFQPPPKPFRRSQSSNSSDSSYTIDGPEANHGRGRGRIAKHHDGDEYNPKSENSTENGRLGDAPNSFIRKRAPTPPAPSRSEKLHEGTITSEVDSSKDANKYEKSIPPVTSSIQAQQSTKKAPPPVVKPKPRNFSLKANEYPKELTREATGQDEVLNSITNELSHIKLRKTNVNLEKLGGSKKVKDSSPVPSDLDEKYVSASGSITPPRPPPSRSSPKKVPPVVPKKNDNLKKKPPVVPKKKPLLKSLEPRPIEMERAYSGDISAADDNLNPFERYKRNVVPQEDDRLHKLK yg5m_yeast Hypothetical protein YGR268C YGR268C protein protein yeast Saccharomyces cerevisiae MSKDTHDDELPSYEDVIKEEERLQSQPPRPPRPAANLAQGHQSRPHQRPSTMPATSSSQTYAHSHSYTPTSSQPRPPPRPQQNPSLPWTYPPRFYCSKCGNTGYKLKNGRSCKSCWRRFAPQNNVVSAPTYYTNYTMPVYTNAWQGNRPLYVQPGDPRLGGVLCGECRGSGRTRFLLDEDICPLCHGVGRIITQPQRY yj53_yeast Hypothetical 35.5 kDa protein in MIR1-STE18 intergenic region YJR083C J1857 protein protein yeast Saccharomyces cerevisiae MSEDQRVISQPIELHKLSIVDKHSQGQQQQPHQKQHEVQPESKSPRVTTPLKPKRLAIPISSPQRSTTNQSPVSDHASPISTDQDLIYKLAAKHREINELSFKLEVAQKELKQLELQFKDTLPRNGQQKLGNQNPSEYLSTFTKRIQQTFVDVNNSPNMLKGKKSINDFFSKPNNNVNSNINNTLPNRKPNPPPNRSQRMQNIAPSRSSESTPTSGPPLLPPRNTMKNANTTATAGENTPFLQRILNKFNQMNMEEDEFDDLLEKRKSKKDHYYIKENLGYEYDEVRSEDEDDEEFEPMGDIPVHLFKR ym52_yeast Hypothetical 82.1 kDa protein in SGS1-MRPL24 intergenic region YMR192W YM9646.04 protein protein yeast Saccharomyces cerevisiae MNSNEDIHEERIEVPRTPHQTQPEKDSDRIALRDEISVPEGDEKAYSDEKVEMATTNASSNFGSNESAKDGESIGAFSNPHEALMQSKLREESQSKTILPSDDLSQQLETEESKVEEALKRITSPPLPPRADCIEESASALKSSLPPVLAGNKNDQAPLDRPQLPPRQVVNAETLHLKAPHGNATPSKSPTSAVGNSSSSTPPTLPPRRIEDPLDLAAQKHFLASTFKRNMLFYKSEDNSIKCDLDKNILNLKEDSKKINNNEIPEEVSSFWLKVIGDYQNILINDIETLHFQLSRGIPAAYRLVVWQLVSYAKSKSFDPIYETYLTEMAPFDVQEFENQLKMMDEVPSEYVKRISNVLKAYLLFDPECEFSTDIAYIINMILDVCEEEANAFGLLVRLMKVYGLRLLFLPSASEIDILCYKFDRLVEEFYPEIHNHMVEKGVRSSMFLPGFFTTLFQKKLPTEIQPRIGDMVFLEGIDSIMRILATLLSNSRDHLLKMGFDDMLELLKSGLLDAYIKQNDGTRGDTLLSNECMDKLLQDSMMKVAITPKTMKKYSSEYEEIHRLDNEKEVQYKSITEKNLHLQKHVRKLENDYTSLNREHVTIANELVKNRLNIESVLNENNGYKLQILDLKKKLDSEKKKQVLGVYVPNDLKKDLEETMKKNTQVMDENLKLQDRISELERLIEEIKTANKNGTLFEYSNSKNNPLGAGWSGFKKVFK yni6_yeast Hypothetical 11.5 kDa protein in TOP2-MKT1 intergenic region YNL086W N2254 protein protein yeast Saccharomyces cerevisiae MAGDSISADGTGVHPVELSVYSVLSTDLDGLYQSINELRESQALLILMLRKVRDKLRREGQVLYDPEPFKPTMDKLADLSARVRILSQRYEELQGNARALNN psa6_yeast Proteasome component C7-alpha PRS2 PRC2 SCL1 YGL011C protein protein yeast Saccharomyces cerevisiae MSGAAAASAAGYDRHITIFSPEGRLYQVEYAFKATNQTNINSLAVRGKDCTVVISQKKVPDKLLDPTTVSYIFCISRTIGMVVNGPIPDARNAALRAKAEAAEFRYKYGYDMPCDVLAKRMANLSQIYTQRAYMRPLGVILTFVSVDEELGPSIYKTDPAGYYVGYKATATGPKQQEITTNLENHFKKSKIDHINEESWEKVVEFAITHMIDALGTEFSKNDLEVGVATKDKFFTLSAENIEERLVAIAEQD sec17_yeast Vesicular-fusion protein SEC17 SEC17 YBL050W YBL0517 YBL0505 protein protein yeast Saccharomyces cerevisiae SDPVELLKRAEKKGVPSSGFMKLFSGSDSYKFEEAADLCVQAATIYRLRKELNLAGDSFLKAADYQKKAGNEDEAGNTYVEAYKCFKSGGNSVNAVDSLENAIQIFTHRGQFRRGANFKFELGEILENDLHDYAKAIDCYELAGEWYAQDQSVALSNKCFIKCADLKALDGQYIEASDIYSKLIKSSMGNRLSQWSLKDYFLKKGLCQLAATDAVAAARTLQEGQSEDPNFADSRESNFLKSLIDAVNEGDSEQLSEHCKEFDNFMRLDKWKITILNKIKESIQQQEDDLL ast2_yeast AST2 protein AST2 YER101C protein protein yeast Saccharomyces cerevisiae MAEKILENKDPKLEAMTVDHEVSAPKPIPVDEPTLTRVARPLRHVRHIPVKSLVFHSKHGPITFSYENKIKLPISKNKLVVQVNYVGLNPVDMKIRNGYTKPIYGEAGIGREYSGVITHVGDNLTNRWNVGDDVYGIYYHPKLAIGALQSSLLIDPRVDPILMRPKNTLSPEKAAGSLFCLGTALNLLAQLKEKDQLNTESNVLINGGTSSVGMFAIQLLKRYYKVSKKLVVVTSGNGAAVLSEHFPDLKDEIIFINYLSCRGKSSKPLRRMLDTGKVVDYDDFNTLKETEDYTQGKFNVVLDFIGGYDILSHSSSLIHAKGAYITTVGDYVGNYKKDVFDSWDNPSANARKMFGSMLWSYDYSHFYFDPNIKIIPKKNDWIHECGKLLNEGVVDCVVDKVYSWKNFKEAFSYMATQRAQGKLIMKVEGF cox17_yeast Cytochrome c oxidase copper chaperone COX17 YLL009C protein protein yeast Saccharomyces cerevisiae TETDKKQEQENHAECEDKPKPCCVCKPEKEERDTCILFNGQDSEKCKEFIEKYKECMKGYGFEVPSAN med7_yeast RNA polymerase II mediator complex subunit 7 MED7 YOL135C protein protein yeast Saccharomyces cerevisiae MSNDPGNEVSSLYPPPPPYVKFFTQSNLEKLPKYKEKKAASAKQTAPNNSNGGSEEEITCALDYLIPPPMPKNQQYRAFGSIWQVKDQLPDLESMGLTQLYKKSTENESTNYQYKIQELRKLLKSLLLNYLELIGVLSINPDMYERKVENIRTILVNIHHLLNEYRPHQSRESLIMLLEEQLEYKRGEIREIEQVCKQVHDKLTSIQDTLRTGSQSPPSSSQ rtpt_yeast 40S ribosomal protein PET123, mitochondrial precursor PET123 YOR158W protein protein yeast Saccharomyces cerevisiae MGKGAAKYGFKSGVFPTTRSILKSPTTKQTDIINKVKSPKPKGVLGIGYAKGVKHPKGSHRLSPKVNFIDVDNLIAKTVAEPQSIKSSNGSAQKVRLQKAELRRKFLIEAFRKEEARLLHKHEYLQKRTKELEKAKELELEKLNKEKSSDLTIMTLDKMMSQPLLRNRSPEESELLKLKRNYNRSLLNFQAHKKKLNELLNLYHVANEFIVTESQLLKKIDKVFNDETEEFTDAYDVTSNFTQFGNRKLLLSGNTTLQTQINNAIMGSLSNEKFFDISLVDSYLNKDLKNISNKIDSKLNPTSNGAGNNGNNNNTTNL adt2_yeast ADP,ATP carrier protein 2 AAC2 PET9 YBL030C YBL0421 protein protein yeast Saccharomyces cerevisiae MSSNAQVKTPLPPAPAPKKESNFLIDFLMGGVSAAVAKTAASPIERVKLLIQNQDEMLKQGTLDRKYAGILDCFKRTATQEGVISFWRGNTANVIRYFPTQALNFAFKDKIKAMFGFKKEEGYAKWFAGNLASGGAAGALSLLFVYSLDYARTRLAADSKSSKKGGARQFNGLIDVYKKTLKSDGVAGLYRGFLPSVVGIVVYRGLYFGMYDSLKPLLLTGSLEGSFLASFLLGWVVTTGASTCSYPLDTVRRRMMMTSGQAVKYDGAFDCLRKIVAAEGVGSLFKGCGANILRGVAGAGVISMYDQLQMILFGKKFK pig1_yeast Protein phosphatase 1 regulatory subunit PIG1 PIG1 YLR273C L9328.2 protein protein yeast Saccharomyces cerevisiae MPYSHGKKLKPSLKLAKTISTSSFVSSTTSNSFSPLEDSTSASSSTSSSSSGKSVRFAAHLYTVKKFNTKLAPISISEKAASNLTRNLHNNAIPLTFPFIGGEDHRYSLDILDYSDLEYDNKDVEYDNESDVEDNAMLMHDRSMFIEKEILCFGEEETFDMADWKLVSNNLNPFKSDYKVDVTGLEDKIFKYLNGQNIKVHSLELSDPVSYEDICSNNFGNCQIWGLIFVNNLNFEKKIEIKFTLNNWADIHYINAHYNKSVTPHVDEFKFIIDISALKLNLISKNLIYTNFFERKTTCLLNLQFCCRYDVNGFEYRSFYDNNDYKNYEITISLSAINLNRAVSNSSIFNSNLGPSKMGASNAEVTMSKNNENSKKPLRKFIKDTDYYNDSPLKHKFYQSFETKAACKTEPVSQTFKAETIDCEIEPFNYFFEPPDSQTNEDMSDSSYDLSLQDFNYWEFSNHGLGKALADSDILQFKNYPKPEPFSRPPIIDDTFTLNTDDRTLGSKTQKLEDNLAKEWKSAKTRTTLNETPLHDDEHRTSFTYTTWNNSTDTLMKRKEERPVESASCSQLSIATIKAEEDLLYQDYINSGRESSSPEISPLNTTTSLPFFPGDNMSDSSGEYEERTSLSPNKIHIFRDYFYKSPSP sly41_yeast SLY41 protein SLY41 YOR307C O5663 protein protein yeast Saccharomyces cerevisiae MIQTQSTAIKRRNSVHKNLFDPSLYQIPEPPRGGFQHQKKEYSKETFSNQVFGYDITSLKKRFTQLFPSNIQGYLPEVDLRITIICSIWYVTSSISSNLSKAILRTFNHPIALTELQFLVSAVLCVGFASIVNLFRLPRLKHTKFSKALNSFPDGILPEYLDGNFRSSILHKFLVPSKLVLMTTFPMGIFQFIGHITSHKAVSMIPVSLVHSVKALSPIITVGYYKFFEHRYYNSMTYYTLLLLIFGVMTTCWSTHGSKRASDNKSGSSLIGLLFAFISMIIFVAQNIFAKNILTIRRKVGILPSSSTDDVTSKEGQPSLDKTRFSPLQVDKITILFYCSCIGFSLTLLPFLTGELMHGGSVINDLTLETVALVAIHGIAHFFQAMLAFQLIGLLSSINYSVANIMKRIVVISVALFWETKLNFFQVFGVILTIAGLYGYDKWGLSKKDGRQA sn114_yeast 114 kDa U5 small nuclear ribonucleoprotein component SNU114 GIN10 YKL173W YKL637 protein protein yeast Saccharomyces cerevisiae MEGDDLFDEFGNLIGVDPFDSDEEESVLDEQEQYQTNTFEGSGNNNEIESRQLTSLGSKKELGISLEHPYGKEVEVLMETKNTQSPQTPLVEPVTERTKLQEHTIFTQLKKNIPKTRYNRDYMLSMANIPERIINVGVIGPLHSGKTSLMDLLVIDSHKRIPDMSKNVELGWKPLRYLDNLKQEIDRGLSIKLNGSTLLCTDLESKSRMINFLDAPGHVNFMDETAVALAASDLVLIVIDVVEGVTFVVEQLIKQSIKNNVAMCFVINKLDRLILDLKLPPMDAYLKLNHIIANINSFTKGNVFSPIDNNIIFASTKLGFTFTIKEFVSYYYAHSIPSSKIDDFTTRLWGSVYYHKGNFRTKPFENVEKYPTFVEFILIPLYKIFSYALSMEKDKLKNLLRSNFRVNLSQEALQYDPQPFLKHVLQLIFRQQTGLVDAITRCYQPFELFDNKTAHLSIPGKSTPEGTLWAHVLKTVDYGGAEWSLVRIYSGLLKRGDTVRILDTSQSESRQKRQLHDISKTETSNEDEDEDDETPSCEVEEIGLLGGRYVYPVHEAHKGQIVLIKGISSAYIKSATLYSVKSKEDMKQLKFFKPLDYITEAVFKIVLQPLLPRELPKLLDALNKISKYYPGVIIKVEESGEHVILGNGELYMDCLLYDLRASYAKIEIKISDPLTVFSESCSNESFASIPVSNSISRLGEENLPGLSISVAAEPMDSKMIQDLSRNTLGKGQNCLDIDGIMDNPRKLSKILRTEYGWDSLASRNVWSFYNGNVLINDTLPDEISPELLSKYKEQIIQGFYWAVKEGPLAEEPIYGVQYKLLSISVPSDVNIDVMKSQIIPLMKKACYVGLLTAIPILLEPIYEVDITVHAPLLPIVEELMKKRRGSRIYKTIKVAGTPLLEVRGQVPVIESAGFETDLRLSTNGLGMCQLYFWHKIWRKVPGDVLDKDAFIPKLKPAPINSLSRDFVMKTRRRKGISTGGFMSNDGPTLEKYISAELYAQLRENGLVP ssy1_yeast Putative amino-acid permease SSY1 SSY1 SHR10 YDR160W YD8358.14 protein protein yeast Saccharomyces cerevisiae MSSVNQIYDLFPNKHNIQFTDSHSQEHDTSSSLAKNDTDGTISIPGSIDTGILKSIIEEQGWNDAELYRSSIQNQRFFLTDKYTKKKHLTMEDMLSPEEEQIYQEPIQDFQTYNKRVQREYELRERMEEFFRQNTKNDLHILNEDSLNQQYSPLGPADYVLPLDRYSRMKHIASNFFRKKLGIPRKLKRRSHYNPNAEGHTKGNSSILSSTTDVIDNASYRNIAIDENVDITHKEHAIDEINEQGASGSESVVEGGSLLHDIEKVFNRSRATRKYHIQRKLKVRHIQMLSIGACFSVGLFLTSGKAFSIAGPFGTLLGFGLTGSIILATMLSFTELSTLIPVSSGFSGLASRFVEDAFGFALGWTYWISCMLALPAQVSSSTFYLSYYNNVNISKGVTAGFITLFSAFSIVVNLLDVSIMGEIVYVAGISKVIIAILMVFTMIILNAGHGNDIHEGVGFRYWDSSKSVRNLTYGLYRPTFDLADAGEGSKKGISGPKGRFLATASVMLISTFAFSGVEMTFLASGEAINPRKTIPSATKRTFSIVLISYVFLIFSVGINIYSGDPRLLSYFPGISEKRYEAIIKGTGMDWRLRTNCRGGIDYRQISVGTGYSSPWVVALQNFGLCTFASAFNAILIFFTATAGISSLFSCSRTLYAMSVQRKAPPVFEICSKRGVPYVSVIFSSLFSVIAYIAVDQTAIENFDVLANVSSASTSIIWMGLNLSFLRFYYALKQRKDIISRNDSSYPYKSPFQPYLAIYGLVGCSLFVIFMGYPNFIHHFWSTKAFFSAYGGLMFFFISYTAYKVLGTSKIQRLDQLDMDSGRREMDRTDWTEHSQYLGTYRERAKKLVTWLI clf1_yeast Pre-mRNA splicing factor CLF1 CLF1 NTC77 YLR117C SYF3 L2952 protein protein yeast Saccharomyces cerevisiae MDTLEPTAVDTHVSAEQILRDVYKKGQKARGSTNIDILDLEELREYQRRKRTEYEGYLKRNRLDMGQWIRYAQFEIEQHDMRRARSIFERALLVDSSFIPLWIRYIDAELKVKCINHARNLMNRAISTLPRVDKLWYKYLIVEESLNNVEIVRSLYTKWCSLEPGVNAWNSFVDFEIRQKNWNGVREIYSKYVMAHPQMQTWLKWVRFENRHGNTEFTRSVYSLAIDTVANLQNLQIWSDMEVAKLVNSFAHWEAAQQEYERSSALYQIAIEKWPSNQLLKAGLLDFEKQFGDINSIEETISYKRKMEYETILSNNAYDYDTWWLYLDLISESFPKQIMQTFEKAIVDSRPKELSKNVQWKRYIYLWMRYICYVELELENSLLEEELFQRLIDDIIPHKHFTFSKIWLMYAKFLIRHDDVPKARKILGKAIGLCPKAKTFKGYIELEVKLKEFDRVRKIYEKFIEFQPSDLQIWSQYGELEENLGDWDRVRGIYTIALDENSDFLTKEAKIVLLQKYITFETESQEFEKARKLYRRYLELNQYSPQSWIEFAMYQTSTPTEQQLLDLAKLQSENVDEDIEFEITDENKLEARKVFEEAIVFFKEKDDKQGRLSILEALKDYEETYGTELDQETVKKRFPKVIKKVRLQNGVEEEFVDYIFPDDIDDDKPKPSKFLELAKKWKQEQAL yac8_yeast Hypothetical 58.8 kDa protein in MYO4-DRS2 intergenic region YAL028W protein protein yeast Saccharomyces cerevisiae MQNAQIKSSSKGSGIDGTDRNSKDGVEKRPLEDVKQMIDAGTPDVGHKSTVETKPNVGWQASHSNLAALHEKEQKYEMEHHHARHKLHRQVIPDYTSASTAMFSDCMFNAAPDKVRSLSTMKSSGLSPKHPFNVVATFKGPFPQHSVESKPLDGGYSAKDHFPSFKMLQAQQHPAHRHYKDNDKYGLKSPSRSFVKDKKRLVHRFLKSMEPSSSGQSKDSSALAPAFDPILPNVISKPSKRPTHHSHSSDGSSSTQTDISLQSLLYHDLESSPKKHVSPSRPPSVASESSPAVANPIGLSPKDACNASFSQSSSSSLSSSSSSSSSTSFSQSVAVDPLEPPGNITYSSSNLSLNSDELDYYQRHIGLQLQQTEALLKHSLKDEVLKDENDLVKNIANFDKIVKELRDLRSRTIGWKELVEEDYLMNLKQDFDKENPESFEARLSDTINTNVAKLQDLEKRMASCKDRLASRKEVMRKMESLLSLENSLMISKKNVTFASKYRNEALDIVFLIIIIVICYTFKHLVSHK ycx2_yeast Hypothetical 15.1 kDa protein in SRB8-TRX3 intergenic region YCR082W YCR82W protein protein yeast Saccharomyces cerevisiae MITPKGTHDAVAKFQKTDLHQDLDYIVLQQRRTQLETLINERESFVKNLCSLFHKIQNTKNYQEFVDVLAENRDLLREIFTVENGFQKQKWISNDDIPQIDWDKFALDINAYIAENDQLLALYEDGLL q12516_yeast D2185 protein D2185 YDL133W protein protein yeast Saccharomyces cerevisiae MGDSNSSQEAYSDTTSTNASRIADQNQLNLNVDLEKNQTVRKSGSLEALQNAKIHVPKHSDGSPLDYPKLNTYTFVPTTVPPYVLEAQFDKLRLQDKGTVDGNVTDDKNLPKEFKWGQFASTIGCHSAYTRDQNYNPSHKSYDGYSLSSSTSSKNAALREILGDMCSEWGGEERLEGVLHSEIGANLEFNTTEERKEWLQYIEKVKDFYYGDNKKNPESPESVHNKVYKSDWVNELNKEREKWRRLKQRKLQQWRPPLTSLLLDNQYLILGLRIFTGILSCISLALAIKIFQNSRSNNTISESKIGQQPSTIMAICVNAVAIAYIIYIAHDEFAGKPVGLRNPLSKLKLILLDLLFIIFSSANLALAFNTRFDKEWVCTSIRRSNGSTYGYPKIPRICRKQEALSAFLFVALFMWVITFSISIVRVVEKVSSITNRN q12515_yeast ORF YDL173w YDL173W protein protein yeast Saccharomyces cerevisiae MATFNPQNEMENQARVQEYKVSTGRGGAGNIHKSMSKPSPVLLPLKSNSKTVANNNNNGSNQEKVPRFAIGRGGAGNIFHDPHLTRSAQQLDSNDNINYNDVINDIDDYISPITSDMVDEGGSNPVTNTRSRISATRSHQSLHATTSSPNNNAPIVVGRGGAGNIFFNKKKVASNGGNEEDEIRGGNIEDEDTINANEDNLFVVTSNGNALAAIKSTSKKPKNKLKGKSAPEKFAIGRGGAGNIISPKSSRNTINHNLNDDDEDKFNLKDDNGKEKKKKKKKKSGFFSSLKTMFN cue2_yeast CUE2 protein CUE2 YKL090W protein protein yeast Saccharomyces cerevisiae MSMDNNDDHESKLSILMDMFPAISKSKLQVHLLENNNDLDLTIGLLLKENDDKSTVDNELHQLYDMFPQLDCSVIKDQFVINEKSVESTISDLLNYETLQKLKDNQANSPDSVKRNEKKNNWESTNDHIESIIKFTDAPKNIAQEYLAENGFDTVKAIIKIILDYYDKRDFKKDVDTFKVKRSPNTTVRGGRVQSSTGLAHVLKKGKESANVAQESLKRPRSYKHSLDSPQMVELNELVADNRDLKAINHEFLQKCLQFYDGDVVKVLNISSLLIEDDKNITKTWNFDEGFTLTSRDNCKQHLPKFSTPQISRRNEVGNTYKLPLHDKETPEGAVPVINNLFQTYRLDFHGFLPSEAVSTLKLALNKWWSKEVAERELNSHNINSYGSKVQFVSPLIVVTGRGIHSIGGISKVRLQVKSFLEKNHYIFWEESSYFRIEGKKKK rcl1_yeast RNA 3'-terminal phosphate cyclase-like protein RCL1 RTC1 YOL010W protein protein yeast Saccharomyces cerevisiae MSSSAPKYTTFQGSQNFRLRIVLATLSGKPIKIEKIRSGDLNPGLKDYEVSFLRLIESVTNGSVIEISYTGTTVIYRPGIIVGGASTHICPSSKPVGYFVEPMLYLAPFSKKKFSILFKGITASHNDAGIEAIKWGLMPVMEKFGVRECALHTLKRGSPPLGGGEVHLVVDSLIAQPITMHEIDRPIISSITGVAYSTRVSPSLVNRMIDGAKKVLKNLQCEVNITADVWRGENSGKSPGWGITLVAQSKQKGWSYFAEDIGDAGSIPEELGEKVACQLLEEISKSAAVGRNQLPLAIVYMVIGKEDIGRLRINKEQIDERFIILLRDIKKIFNTEVFLKPVDEADNEDMIATIKGIGFTNTSKKIA q08202_yeast S.cerevisiae chromosome XV reading frame ORF YOL032w YOL032W protein protein yeast Saccharomyces cerevisiae MFAAIASGNPLQLSVEVPNSNGLQHTIVLSRTKPKLYSHITLFILPNVTFPQDYIATVYFKLSPQEEFKLFGYLSSEKPSAIFKVQIPSSKKDAGDTSDGLGEIDMDVDDGSGAADPFTDTNGSSSNNISELIIGISIEPREQGMMKLEEWKASMNAEAQKNNSLILSRPNLGIIRNITTAGQLAQVYPSLTQELAAKIVQHAYNYLSGFLDAQGNVPIKRFDTWWDKFRNRLANDGTFLDEVTKN q08206_yeast ORF YOL036w YOL036W protein protein yeast Saccharomyces cerevisiae MEHQDSSPPRFRNSGSNRVTVYNGTTLPTMPKSATPTSSSTTVTTHLQNIKEEETNDDELTQVDRSSPRVLGRISSTSSSSSNIDLRDNLDMLHEIEKSNTNISLSAPNLHEELGVLSDKGNSKEELALLPPLPHTGEMEITPQFDINEAIFERDDISHSSRLEPDDVLTKLANSTRDATGEDQGFVVMTHGHDASTNDDSQLSATILDNQTSFDLSKALEMTSHSNISNIINSSGSEGRRSRTPVSNSTLKPNLSSPESAEREANTTSSSSTSDHGATMQYDPKKIITPIPVLPSSVREQQQNNAPLRERSRSNSSALASTLRDTIISGLPQNINSVERKLSRKSNRSRKNTVTFEDRLQKLPPLSTQISNQYAKVAPAENNIALHFHNLPTPVSNTQTPVTFQSESGLTGGEKKMPFLRRASSALLRKTSAKNCSNLTRTNTPTLSTSSTFESDLNARQPMLIRRSSTIDNKLPRRQLSCSKLYSRLNSDSKFANSSRASEEVLVSTPNDTEHVYRKTSLGSKIKRGFTRILSDSNNSKEILTLSPKSMVTTGPTELSFSSLSTVGGHPTTPVSKENDRVSIDGVSTFNRASTSLPESSTDDISPLREEGKINVPKRTSSRKILSKNSSKKNVLPEQQTKPSEIYLDKEALQSFVPVLSVTEGTHRINRSSLQTQSTIGLCITNLRNKEGMKLNAKEYVEILAQQQRKEDERYAVLERKFASCRWCSDKDLQYLKKKRISMNKIWSDYVRFYRGKLNNP q08650_yeast S.cerevisiae chromosome XV reading frame ORF YOR245c DGA1 protein protein yeast Saccharomyces cerevisiae MSGTFNDIRRRKKEEGSPTAGITERHENKSLSSIDKREQTLKPQLESCCPLATPFERRLQTLAVAWHTSSFVLFSIFTLFAISTPALWVLAIPYMIYFFFDRSPATGEVVNRYSLRFRSLPIWKWYCDYFPISLIKTVNLKPTFTLSKNKRVNEKNYKIRLWPTKYSINLKSNSTIDYRNQECTGPTYLFGYHPHGIGALGAFGAFATEGCNYSKIFPGIPISLMTLVTQFHIPLYRDYLLALGISSVSRKNALRTLSKNQSICIVVGGARESLLSSTNGTQLILNKRKGFIKLAIQTGNINLVPVFAFGEVDCYNVLSTKKDSVLGKMQLWFKENFGFTIPIFYARGLFNYDFGLLPFRAPINVVVGRPIYVEKKITNPPDDVVNHFHDLYIAELKRLYYENREKYGVPDAELKIVG q08931_yeast S.cerevisiae chromosome XVI reading frame ORF YPL192c PRM3 protein protein yeast Saccharomyces cerevisiae MTAMKEDNAALITLKKNNDQEKLRVHKLTDASSNSADGFVINKAKNGGPLNKKSLVNNEQHIKKAVSPGRVRKHKTTTSSTKSRTKSKKKDASESKVQRENKGSFYQGAIFGSFLGAAVTTVLSNLAVKALQN zrt2_yeast Zinc-regulated transporter 2 ZRT2 YLR130C L9606.9 L3120 protein protein yeast Saccharomyces cerevisiae MVDLIARDDSVDTCQASNGYNGHAGLRILAVFIILISSGLGVYFPILSSRYSFIRLPNWCFFIAKFFGSGVIVATAFVHLLQPAAEALGDECLGGTFAEYPWAFGICLMSLFLLFFTEIITHYFVAKTLGHDHGDHGEVTSIDVDAPSSGFVIRNMDSDPVSFNNEAAYSIHNDKTPYTTRNEEIVATPIKEKEPGSNVTNYDLEPGKTESLANELVPTSSHATNLASVPGKDHYSHENDHQDVSQLATRIEEEDKEQYLNQILAVFILEFGIIFHSVFVGLSLSVAGEEFETLFIVLTFHQMFEGLGLGTRVAETNWPESKKYMPWLMGLAFTLTSPIAVAVGIGVRHSWIPGSRRALIANGVFDSISSGILIYTGLVELMAHEFLYSNQFKGPDGLKKMLSAYLIMCCGAALMALLGKWA sky1_yeast Serine/threonine-protein kinase SKY1 YMR216C YM8261.10C SKY1 protein protein yeast Saccharomyces cerevisiae MGSSINYPGFVTKSAHLADTSTDASISCEEATSSQEAKKNFFQRDYNMMKKAPAPTKSKLSLALQTSKSSSSANGTVQEDTSSKTEDFSTKSIKKKPDSGVESHVSIQSDSGPQSDSDLDSDSSISSCDERNEESLKDYRPGGYHPAFKGEPYKDARYILVRKLGWGHFSTVWLAKDMVNNTHVAMKIVRGDKVYTEAAEDEIKLLQRVNDADNTKEDSMGANHILKLLDHFNHKGPNGVHVVMVFEVLGENLLALIKKYEHRGIPLIYVKQISKQLLLGLDYMHRRCGIIHTDIKPENVLMEIGDVEGIVQMVEALDKQKREAKRLQRHVSRSSDITANDSSDEKWAECQTSMPCGSSSNSKSRSIEKDLSKRCFRRPRRHTIITGSQPLPSPISSSNFFEMRAHFCGSSHNSFSSVSGNRNIPSSINNNSINNGIGIKNSNNSFLNSVPHSVTRMFINEDSNDNNNNDNSKNKNNNNNNSNNNNNEDIMNTPLHEEQLADSLSTFDISNISQSSDTNGPYISNTMDSNSNVSTDINSPENLIQIKIADLGNACWYDEHYTNSIQTREYRSPEVLLGAPWGCGADIWSTACLIFELITGDFLFEPDEGHSYTKDDDHIAQIIELLGELPSYLLRNGKYTRTFFNSRGLLRNISKLKFWPLEDVLTEKYKFSKDEAKEISDFLSPMLQLDPRKRADAGGLVNHPWLKDTLGMEEIRVPDRELYGSGSDIPGWFEEVRDHKRH yho7_yeast Hypothetical 12.0 kDa protein in NAM8-GAR1 intergenic region YHR087W protein protein yeast Saccharomyces cerevisiae MSTVTKYFYKGENTDLIVFAASEELVDEYLKNPSIGKLSEVVELFEVFTPQDGRGAEGELGAASKAQVENEFGKGKKIEEVIDLILRNGKPNSTTSSLKTKGGNAGTKAYN mpc54_yeast Meiotic plaque component protein 54 MPC54 YOR177C protein protein yeast Saccharomyces cerevisiae MPEDTSYSNSFEDYYNNSHAISPYKDSFYKEMTPSKPNVRFGDDDVNIFDQRKKVNEINKNNTVKRSIPSSISTTITPNKSSLKSPRGKRASKNSFDNETKLESKNETLKEVNDAVNRCYALCNIPTKHVSINSISDLAQTFETLAVGITHETNRKAECERSKNAIDSLYYHEQLEKKELNEKSLQMAIDHLLKVTKQNLRQADDGNKLKETEALKSFIEEIEEVDDNKISINSLQQQLLEEKTANNILRRDYYKLQERGRRLCHEFQELQDDYSKQMKQKEYEVQKLKNEIKVLLNMNDNLKAEKAHYSQKEKQYFQKYTYIEKYMNHVKEEYNRKEDECKKLNFIIDKSMKKIEHLERSLQTQFTAQNSFSTAMIQEEGPKDAHLKDRYHKVKEFMEQKLQTSKINDPSCSEAEALDNVLCLIESSMKTLDKNSKCYPIATKKCIKYVTDSPRLKENEHVTN ecm25_yeast Extracellular matrix protein 25 YJL201W J0325 ECM25 protein protein yeast Saccharomyces cerevisiae MIDINVNNIFFRSYSVDPNSGHAIYVFDSTYLPASDEIGDKQVYDLLINALMDRLVMKLPQAPYSLVIFSSGFSQRKISWVYGIKMFAKLPKETKFYLQKIFIVHESFFVRSVYQVISNAMNFNFLDSKDSQHDFPSLVHVLDLTSLSELIDITRLRISLNVYLYDYQIREHINVPEEYYNRLTPLAIRQYRQLVFDKIFKKLQNDALLCELIFQKPGNYKKVNIFLDIIKRNNYIDLSQWDIYSLASVWLNYFIKNKAKPLIPIELIPLPIVDDLKFTSETFRKIIKFNQYQDLFMVIIPFFNRIIAHGESTKHDSRTLSKALTPALCKEKLSMMTNDRLAIGSRYIKNLLDFFPEIAKEISSPPSSVSSSSTIPVLPKPRKSSPTRYSELGCLTLPRSRSPSPQRSVTSPTYTPVALQNTPVLKPKSSSRNVSSPSFNAKPPLPIKAVTRPQLSLTSNSNTDLALASSSTDTLSSPTKTPSADSLPLSNSSTDLTISDNIKEMVKDEPAKDKNSVETDIFVQQFESLTLVQNAKIKKFDKELQEKKKKNETTSKTADKFSQKGYSDIKASNKVSRLAALYEERLQGLQVMNEMKQRW mms4_yeast Class II crossover junction endonuclease MMS4 MMS4 SLX2 YBR098W/YBR100W YBR0826/YBR0829 protein protein yeast Saccharomyces cerevisiae MSQIVDFVEDKDSRNDASIQIIDGPSNVEIIALSESMDQDECKRAHVSSAEMIPSSPQRKSVSNDVENVDLNKSIELSAPFFQDISISKLDDFSTTVNSIIDSSLRNENNAKGNAKKLLDDLISDEWSADLESSGKKHNKSQYNLRDIAEKWGVQSLKNPEPIAVDCEYKTQGIGKTNSDISDSPKSQIGAADILFDFPLSPVKHENPTEEKHNSIANENSSPDNSLKPAGKQNHGEDGTSMAKRVYNKGEDEQEHLPKGKKRTIALSRTLINSTKLPDTVELNLSKFLDSSDSITTDVLSTPAKGSNIVRTGSQPIFSNANCFQEAKRSKTLTAEDPKCTKNTAREVSQLENYIAYGQYYTREDSKNKIRHLLKENKNAFKRVNQIYRDNIKARSQMIIEFSPSLLQLFKKGDSDLQQQLAPAVVQSSYNDSMPLLRFLRKCDSIYDFSNDFYYPCDPKIVEENVLILYYDAQEFFEQYTSQKKELYRKIRFFSKNGKHVILILSDINKLKRAIFQLENEKYKARVEQRLSGTEEALRPRSKKSSQVGKLGIKKFDLEQRLRFIDREWHVKIHTVNSHMEFINSLPNLVSLIGKQRMDPAIRYMKYAHLNVKSAQDSTETLKKTFHQIGRMPEMKANNVVSLYPSFQSLLEDIEKGRLQSDNEGKYLMTEAVEKRLYKLFTCTDPNDTIE sla2_yeast SLA2 protein SLA2 END4 MOP2 UFG1 YNL243W N1102 protein protein yeast Saccharomyces cerevisiae MSRIDSDLQKALKKACSVEETAPKRKHVRACIVYTWDHQSSKAVFTTLKTLPLANDEVQLFKMLIVLHKIIQEGHPSALAEAIRDRDWIRSLGRVHSGGSSYSKLIREYVRYLVLKLDFHAHHRGFNNGTFEYEEYVSLVSVSDPDEGYETILDLMSLQDSLDEFSQIIFASIQSERRNTECKISALIPLIAESYGIYKFITSMLRAMHRQLNDAEGDAALQPLKERYELQHARLFEFYADCSSVKYLTTLVTIPKLPVDAPDVFLINDVDESKEIKFKKREPSVTPARTPARTPTPTPPVVAEPAISPRPVSQRTTSTPTGYLQTMPTGATTGMMIPTATGAANAIFPQATAQMQPDFWANQQAQFANEQNRLEQERVQQLQQQQAQQELFQQQLQKAQQDMMNMQLQQQNQHQNDLIALTNQYEKDQALLQQYDQRVQQLESEITTMDSTASKQLANKDEQLTALQDQLDVWERKYESLAKLYSQLRQEHLNLLPRFKKLQLKVNSAQESIQKKEQLEHKLKQKDLQMAELVKDRDRARLELERSINNAEADSAAATAAAETMTQDKMNPILDAILESGINTIQESVYNLDSPLSWSGPLTPPTFLLSLLESTSENATEFATSFNNLIVDGLAHGDQTEVIHCVSDFSTSMATLVTNSKAYAVTTLPQEQSDQILTLVKRCAREAQYFFEDLMSENLNQVGDEEKTDIVINANVDMQEKLQELSLAIEPLLNIQSVKSNKETNPHSELVATADKIVKSSEHLRVDVPKPLLSLALMIIDAVVALVKAAIQCQNEIATTTSIPLNQFYLKNSRWTEGLISAAKAVAGATNVLITTASKLITSEDNENTSPEQFIVASKEVAASTIQLVAASRVKTSIHSKAQDKLEHCSKDVTDACRSLGNHVMGMIEDDHSTSQQQQPLDFTSEHTLKTAEMEQQVEILKLEQSLSNARKRLGEIRRHAYYNQDDD sly1_yeast SLY1 protein SLY1 YDR189W YD9395.22 YD9346.01 protein protein yeast Saccharomyces cerevisiae MAVEEIASRKDISLRDMQISAILKMLFLNKDLNNNDNITTITDDIFNQQEIIWKVLILDIKSTATISSVLRVNDLLKAGITVHSLIKQDRSPLPDVPAIYFVSPTKENIDIIVNDLKSDKYSEFYINFTSSLPRNLLEDLAQQVSITGKSDKIKQVYDQYLDFIVTEPELFSLEISNAYLTLNDPKTTEEEITGLCANIADGLFNTVLTINSIPIIRAAKGGPAEIIAEKLGTKLRDFVINTNSSSTSTLQGNDSLERGVLIILDRNIDFASMFSHSWIYQCMVFDIFKLSRNTVTIPLESKENGTDNTTAKPLATKKYDIEPNDFFWMENSHLPFPEAAENVEAALNTYKEEAAEITRKTGVTNISDLDPNSNNDTVQIQEVVKKLPELTAKKNTIDTHMNIFAALLSQLESKSLDTFFEVEQDPGSTKTRSRFLDILKDGKTNNLEDKLRSFIVLYLTSTTGLPKDFVQNVENYFKENDYDINALKYVYKLREFMQLSNMSLQNKSLEDGSDSAFKPSNLTLSGIYGLTEGKLQGGVGSLISGIKKLLPEKKTIPITNVVDAIMDPLNSSQKNLETTDSYLYIDPKITRGSHTRKPKRQSYNKSLVFVVGGGNYLEYQNLQEWAHSQLHNPKKVMYGSTAITTPAEFLNEISRLGASNSSNNDA blh1_yeast Cysteine proteinase 1 BLH1 GAL6 LAP3 YCP1 YNL239W N1118 protein protein yeast Saccharomyces cerevisiae MSSSIDISKINSWNKEFQSDLTHQLATTVLKNYNADDALLNKTRLQKQDNRVFNTVVSTDSTPVTNQKSSGRCWLFAATNQLRLNVLSELNLKEFELSQAYLFFYDKLEKANYFLDQIVSSADQDIDSRLVQYLLAAPTEDGGQYSMFLNLVKKYGLIPKDLYGDLPYSTTASRKWNSLLTTKLREFAETLRTALKERSADDSIIVTLREQMQREIFRLMSLFMDIPPVQPNEQFTWEYVDKDKKIHTIKSTPLEFASKYAKLDPSTPVSLINDPRHPYGKLIKIDRLGNVLGGDAVIYLNVDNETLSKLVVKRLQNNKAVFFGSHTPKFMDKKTGVMDIELWNYPAIGYNLPQQKASRIRYHESLMTHAMLITGCHVDETSKLPLRYRVENSWGKDSGKDGLYVMTQKYFEEYCFQIVVDINELPKELASKFTSGKEEPIVLPIWDPMGALAK ufe1_yeast Protein UFE1 UFE1 YOR075W YOR29-26 protein protein yeast Saccharomyces cerevisiae MMSDLTPIFRKYVAVIDDARNEQNGIDDHVERKQEDFGNSNETCEMFRDSFIKECARLLKFLVELNKVIKQIEKNYLDDFNMSDAEKDEFDMECRLQIQQYFKKFEFLENYEMERHNLSLKRFQSKSHRWSKILSNKNDNTKHVIHPQDIENGVYEFRLGVLRCLNLWIKYVSSKFTTIQQERLILENKMNFNSTPMPTLSNNADDFSADAIDISVSQSAPVETVQDEVKHYEETISKLTQEQLQVLETEHSELLNQKNEQLKKVETINKTILDIVNIQNELSNHLTVQSQNINLMLNNQDDIELNIKKGNKELRKAKRAAGRTAKMTTYGAIIMGVFILFLDYVG spc97_yeast Spindle pole body component SPC97 SPC97 YHR172W protein protein yeast Saccharomyces cerevisiae MEIKEVDDRAELLRYTNNIPLLGKLVNHQPLWSTNPKLKSFSLEKISAPDQRRVQEALVVKDLLNVLIGLEGTYIRYFNDYEPSDPETPIEFKIAKKMDPSFKTFSRRIVRYGKQYMILTRAYEKWSDTSFGMVLQRFAYEIRRFLEDVYLKTLVERLERDFNKVPNFSIRELEQIINETEVNKQMELLYNIYEEIFREIEERRTNQSSQEDFNNFMDSMKNESSLHLRLMVAFDTTVYPVPKGGAILKIFQQKILENLGDRSSVMFLKKLLNNISQDYCTMLYEWLTQGILNDPYQEFMTYDDLEGKTDNIFDTRDRAWDTQYFIRKDVLLRDCDSEEDKNLLFKMLRTGILLKVVRASLQIPTIPSNSSDITIQEINDFADLMEGSNLELYVDKCYSRANEIFLKLFFQGYDLINVLKHLQQIFLGYQSGHNVLKFLTKNMGELTKHYRNDNNANYDKLLQNFELERQSENPNNLMRQLLMIQFDTETLPQVLSHYLQIYPEVPENNSANDDSDPLMHANNFKNMNAILFDELSKERTGAYHGSNLELYTPKSAIYHLKFDINIPYPLNIIISRTCMIKYQIILRYQLVLQYHSRLLDETWMDLNKTPSWKYRGYSHTVKRRIVRATRVLHAKMNHFIKTIMEYFNQNVIDKEVYSLEKCYRNPTLAVAIQNELEGGLTNIMTNRCLSDLIPLQLQIFDIVYKFCKFIKSMRAKLCQLDPVLYEKHKSGMMKTLNEGYRTNNGGQEDVGYQEDAALELIQKLIEYISNASSIFRKCLINFTQELSTEKFDFYDSSSVDAAGIERVLYSIVPPRSASASSQR spc98_yeast Spindle pole body component SPC98 SPC98 YNL126W N1222 N1879 protein protein yeast Saccharomyces cerevisiae MELEPTLFGIIEALAPQLLSQSHLQTFVSDVVNLLRSSTKSATQLGPLIDFYKLQSLDSPETTIMWHKIEKFLDALFGIQNTDDMVKYLSVFQSLLPSNYRAKIVQKSSGLNMENLANHEHLLSPVRAPSIYTEASFENMDRFSERRSMVSSPNRYVPSSTYSSVTLRQLSNPYYVNTIPEEDILKYVSYTLLATTSALFPFDHEQIQIPSKIPNFESGLLHLIFEAGLLYQSLGYKVEKFRMLNISPMKKALIIEISEELQNYTAFVNNLVSSGTVVSLKSLYREIYENIIRLRIYCRFTEHLEELSGDTFLIELNIFKSHGDLTIRKIATNLFNSMISLYYEYLMNWLTKGLLRATYGEFFIAENTDTNGTDDDFIYHIPIEFNQERVPAFIPKELAYKIFMIGKSYIFLEKYCKEVQWTNEFSKKYHVLYQSNSYRGISTNFFEIINDQYSEIVNHTNQILNQKFHYRDVVFALKNILLMGKSDFMDALIEKANDILATPSDSLPNYKLTRVLQEAVQLSSLRHLMNSPRNSSVINGLDARVLDLGHGSVGWDVFTLDYILYPPLSLVLNVNRPFGRKEYLRIFNFLWRFKKNNYFYQKEMLKSNDIIRSFKKIRGYNPLIRDIINKLSRISILRTQFQQFNSKMESYYLNCIIEENFKEMTRKLQRTENKSQNQFDLIRLNNGTIELNGILTPKAEVLTKSSSSKPQKHAIEKTLNIDELESVHNTFLTNILSHKLFATNTSEISVGDYSGQPYPTSLVLLLNSVYEFVKVYCNLNDIGYEIFIKMNLNDHEASNGLLGKFNTNLKEIVSQYKNFKDRLYIFRADLKNDGDEELFLLSKSLR tbg_yeast Tubulin gamma chain TUB4 YLR212C L8167.21 protein protein yeast Saccharomyces cerevisiae MGGEIITLQAGQCGNHVGKFLWSQLAKEHAIGTDGLSQLPDSSTERDDDTKPFFRENSRNKFTPRAIMMDSEPSVIADVENTFRGFFDPRNTWVASDGASAGNSWANGYDIGTRNQDDILNKIDKEIDSTDNFEGFQLLHSVAGGTGSGLGSNLLEALCDRYPKKILTTYSVFPARSSEVVVQSYNTILALRRLIEDSDATVVFDNASLLNISGKVFRNPNIDLQHTNQLISTIISSVTNSIRFPSYMYSSMSSIYSTLIPSPELHFLSPSFTPFTSDYIHDDIAHKGHSSYDVMLDLLDPSNSLVSTAMNNPTYFNVYNTIIGNVEPRQISRAMTKLQQRIKFPSWSSSAMHVNIGRRSPYLPLQPNENEVSGMMLSNMSTVVNVFENACNTFDKVFAKGAFLNNYNVGDLFQSMQNVQDEFAESREVVQSLMEDYVAAEQDSYLDDVLVDDENMVGELEEDLDADGDHKLV spo1_yeast Sporulation-specific protein 1 SPO1 YNL012W N2858 protein protein yeast Saccharomyces cerevisiae MQKLLFVFSVLLTVVLATAPFQVQCPSSPLIREAKHELCPEETLYLKKKKIKTKNKLIQFLKSLTEAKFSSKFYKRVLKDPPKIGIAISGGGYRSMLVGTGFISQMNDYGLFEYSDYIAGLSGGSWILMDLVVQNFEVKSLLQEWDLEEDLLLGIPEFDISEEEIVTNAKKEYNDNDLKMKKRQGGSLITSSSNFYEQIEEIMNSIEEIPEDYMITKRNLNPLARLKKIFFPNNTFTGTDAKIETFKKVLDFYKSLHLKIKPKKMEGFQISFTDYWGKAIVQRLKKNFDDDPNHSFSFSKLVNSSKKFKECSVPIPIFVANCKNGLLSNVIFEFTPFEFGSWENILRLFVKLPYLGSKIVSGKAEKCINNFDDLGFITATSSSIFNNVLIFIWNLASQSSREAMKALNMVMGIFGLGKEEIFSISKDSSRLETDYAVYQPNPFYLYPEKDNVLTNKNHLYLVDGGEDGENIPLRTLVIPERELDVIFVLDSSSDIDNYPNGSKLKRIFEKLDEENVHYQFPNNVKTFTHPIVIGCNATKRTGHDSFLPIIIYHANANHGNASNTSTFKITYNQSEVSSMLPTGRGVFSNDYDLYYKNCLGCILTKRTMDRLPRKKKFSPFCLQCFKDYCYS ddr2_yeast DDR2 protein precursor DDR2 YOL052C-A YOL052BC YOL053C-A protein protein yeast Saccharomyces cerevisiae MKVSQVFISAISVFGLATSVNAQNASNTTSNAAPALHAQNGQLLNAGVVGAAVGGALAFLI pet8_yeast Putative mitochondrial carrier protein PET8 PET8 YNL003C N2012 protein protein yeast Saccharomyces cerevisiae MNTFFLSLLSGAAAGTSTDLVFFPIDTIKTRLQAKGGFFANGGYKGIYRGLGSAVVASAPGASLFFISYDYMKVKSRPYISKLYSQGSEQLIDTTTHMLSSSIGEICACLVRVPAEVVKQRTQVHSTNSSWQTLQSILRNDNKEGLRKNLYRGWSTTIMREIPFTCIQFPLYEYLKKTWAKANGQSQVEPWKGAICGSIAGGIAAATTTPLDFLKTRLMLNKTTASLGSVIIRIYREEGPAVFFSGVGPRTMWISAGGAIFLGMYETVHSLLSKSFPTAGEMRA sas5_yeast Something about silencing protein 5 SAS5 YOR213C protein protein yeast Saccharomyces cerevisiae MDHSIEVTFRVKTQQVIIPEQNIRGNELPLRRWQMELLMLDATGKEVEPTILSKCIYHLHSSFKQPKRRLNSLPFFIKETGWGEFNLKIECFFIGNAGKFSIEHDLTFEDDAYAVDYTVDVPHEFSHLNSELSKYFDLPWKVVSPEEEMSLRIADLPWIKSLALIDEDMMTDVVQMILNDPAVQRAIENHPRREQFFMFITQLPDDLLMKIQAFLKLPNKNSTKQERTNFGSDAIHKDEPVKAHNKLK spp1_yeast COMPASS component SPP1 SPP1 CPS40 SAF41 YPL138C protein protein yeast Saccharomyces cerevisiae MSLPQWCPPHSTLKRNPTTGEDVYCICKRPDYGELMVGCDGCDDWFHFTCLHIPEQFKDLVFSFYCPYCQAGITGKNKDAIINGEGSLPKTLWKRKCRISDCYKPCLQDSKYCSEEHGREFVNDIWSRLKTDEDRAVVKKMVEQTGHIDKFKKFGQLDFIDNNIVVKTDDEKEIFDQIVVRDMTLKTLEDDLQEVQEISLPLFKKKLELLEVYLGWLDNVYTEMRKLDDDAASHVECGKEDSKGTKRKKKKNSSRSRARKNICGYCSTYERIPCSVEEFVRDFGSNEEATKIHEVCTKWKCNRHLDWVSTNQEQYLQQIDSLESMQERLQHLIQARKKQLNIQYYEEILRRGL sni2_yeast SNI2 protein SNI2 SRO77 YBL106C YBL0806 protein protein yeast Saccharomyces cerevisiae MFKKSRHLKNVSNAIKSARVHDVSNGINSKFFDTKKICTYGINGRITVTTFDYTQSLLAVATTAGEIHVYGQKQIEVVFTLKNRPQIKHMRFIKGIYLIAVDEKSNIIVLSVHSKQILTTVFCPNSITCFETDPPLDWMLIGLESGSILIYDVDRNQMSKLKIENFQKSVFLPKERLSPVISIQWNPRDIGTILISYEHITVIYSFIDYKVKQHFFYQLEPYAPGGDLSTNIEKKRTPKVIQSLYHPNSLHILTVHEDNALVFWDVNSGKLIHARSIFETHVNFPNPALKDCSFTETPAIFKVSWLCQRNPEYTSLLIATKATENPCLPQEITMIDLGGTPMYSVTSFDAMSKYYAKPVQQKLFSLIGKAPLINFLPLPKASPYFGGCHDTNLILLLLEDGELETLIYPAGSFSSKASIFPRSLAWVRPTVTTCIAQSVQKNLWLGMMTIAQSESFLKGGIPATRNIRRHETRSALLTGHSNGSVRIWDASHSEVTDNAVFEVNTAKVLNRATNLAIKNISFASETLELAVSSEVGDVILFKFETNKFYGQLPKSDALQLKFSRFSLDDSKTILVDVSDRGPTNVKQGFIPSTVIHAKKGAVSAIMNSNIGFVAVGFIEGTLIILDRRGPAIIFNENIRVISKAGSSYVSTVHFCVMEYGDDGFSSILMLCGTDIGELMTFKILPATNGRFEVKFTDATKTNNQGKILGINSFAKDTGYSCSATISKMQGLSKGIAIPGFVTISGANDIRLVSPGKSKDTHALFKYPIATSGLSFIPIIDGKGERKLSTIMIVLLINGDIKVLTVPELKEVKNLRCPVPLSAQYVENSSILENVDIVIRTGKFQASLISVLNESATGSNHTADISQHTPIDTLYNPDLKIGYRPQVNSLQWARGTIYCTPYQLDELLGGIERPESKYEESAIARGCISSSSSNAARKLPPGTKDHRYARPVRSSGRSNGYGVLKSVSRAIETRLDTVETTINDYATTMGQTMNDAMEETGRDMMKSAVGF nfs1_yeast Cysteine desulfurase, mitochondrial precursor NFS1 SPL1 YCL017C YCL17C protein protein yeast Saccharomyces cerevisiae MLKSTATRSITRLSQVYNVPAATYRACLVSRRFYSPPAAGVKLDDNFSLETHTDIQAAAKAQASARASASGTTPDAVVASGSTAMSHAYQENTGFGTRPIYLDMQATTPTDPRVLDTMLKFYTGLYGNPHSNTHSYGWETNTAVENARAHVAKMINADPKEIIFTSGATESNNMVLKGVPRFYKKTKKHIITTRTEHKCVLEAARAMMKEGFEVTFLNVDDQGLIDLKELEDAIRPDTCLVSVMAVNNEIGVIQPIKEIGAICRKNKIYFHTDAAQAYGKIHIDVNEMNIDLLSISSHKIYGPKGIGAIYVRRRPRVRLEPLLSGGGQERGLRSGTLAPPLVAGFGEAARLMKKEFDNDQAHIKRLSDKLVKGLLSAEHTTLNGSPDHRYPGCVNVSFAYVEGESLLMALRDIALSSGSACTSASLEPSYVLHALGKDDALAHSSIRFGIGRFSTEEEVDYVVKAVSDRVKFLRELSPLWEMVQEGIDLNSIKWSGH sfb3_yeast SED5-binding protein 3 SFB3 LST1 YHR098C protein protein yeast Saccharomyces cerevisiae MSQQNILAASVSALSLDESTVHTGGASSKKSRRPHRAYHNFSSGTVPTLGNSPYTTPQLNQQDGFQQPQAFTPKQFGGFNNGSGSVMSTPVMVSQERFGASEASSPYGQSMLDMTAPQPTSHIVPTQRFEDQAQYLQRSFETCRDSVPPLPTTQFYCVDQGSCDPHLMSLSMYNIPESEHLRAATKLPLGLTIQPFSTLTPNDAEVPTIPLPMDGTPLRCRRCRAYANPKFQFTYDSSVICNICRVKMQVPGEHFAPMGPNGQRSDLNEKSELLHGTVDFLVPSIYNAIQEKELLPLHYVFLIDVSLLANENGSSLAMVEGVRSCIEYISDFQPNCEVAIIVYDNKLRFFNLRPDLDNAQEYIVSELDDVFLPFYNGLFVKPGNSMKIINDTLIKISGYISTDKYSHVPQVCYGSALQAAKLALDTVTGGQGGKIICSLNSLPTIGNGNLSLKRDNAHIAHVKCDNGFYKKLASDFLKSYISLDLYVTNAGFIDMATVGHPVEMTSGILKYYPHFQQETDAFTLVNDMVTNVSNIVGYQALLKVRCSTGLSVEQYYCDSSDNTDHDPIIPVLTRDTTLDVLLKYDSKIKTGTDVHFQTALLYTDIDGVRKVRSINTSGAVSNNIREIFKFINQNPVMRIMIKDVIKTLGDCDFVKIRRLIDDKMVEILTQYRGLVSSNSSTQLILPDSIKTLPAYMLAFEKSELMKPNAQSTRGNERIYDLLKYDSLNSAQLCYKLYPQIVPFHVLLEETDLTFYDANDKLLQINSSSINNLSVRASHSNFINGGCYLIFQGDTIYLWFNENTNRMLLQDLLSVDESLPVSQISLFSGTLPETGTSINQKASNVIKNWQQVVNKSSLPLVLLRPNVDQYYSNVMSQLLCEDKTVNRIESYDNYLVIMHKKIQEKLQKDDFIKVSTAATHENIHQKFVQF kapr_yeast cAMP-dependent protein kinase regulatory subunit BCY1 REG1 SRA1 YIL033C protein protein yeast Saccharomyces cerevisiae VSSLPKESQAELQLFQNEINAANPSDFLQFSANYFNKRLEQQRAFLKAREPEFKAKNIVLFPEPEESFSRPQSAQSQSRSRSSVMFKSPFVNEDPHSNVFKSGFNLDPHEQDTHQQAQEEQQHTREKTSTPPLPMHFNAQRRTSVSGETLQPNNFDDWTPDHYKEKSEQQLQRLEKSIRNNFLFNKLDSDSKRLVINCLEEKSVPKGATIIKQGDQGDYFYVVEKGTVDFYVNDNKVNSSGPGSSFGELALMYNSPRAATVVATSDCLLWALDRLTFRKILLGSSFKKRLMYDDLLKSMPVLKSLTTYDRAKLADALDTKIYQPGETIIREGDQGENFYLIEYGAVDVSKKGQGVINKLKDHDYFGEVALLNDLPRQATVTATKRTKVATLGKSGFQRLLGPAVDVLKLNDPTRH yipa_yeast YIP1 protein YIP1 YGR172C protein protein yeast Saccharomyces cerevisiae MSFYNTSNNANNGGGFYQPSAQFAVPQGSMSFQNTVGSSNTGNDNNLGVAPDPLPVGILHALSTKGYPHEPPLLEEIGINFDHIITKTKMVLIPIRFGSGVPQEILNDSDLAGPLIFFLLFGLFLLMAGKVHFGYIYGVALFGTISLHNLSKLMSNNDTSTQTNLQFFNTASILGYCFLPLCFLSLLGIFHGLNNTTGYVVSVLFVIWSTWTSSGFLNSLLQLQNARLLIAYPLLIFYSVFALMVIFV yk10_yeast Hypothetical 32.0 kDa protein in SAP190-SPO14 intergenic region YKR030W protein protein yeast Saccharomyces cerevisiae MSYLPTYSNDLPAGPQGQRRRNNGNENDARQGYGQQSVPMVIRRLFKTPKNLDLETASWEMFHLIFHPRKAYRSIYYQRQTKNQWARDDPSFFIFQIALISLSSIIWSIYNSGFNNDSDMGALSIIGHFFKSLVMMVILDFFIFGFIMATIFYLLLNRSHFKFKSSQNSVVEWAYCFDVHCNSFLIILLCLYFIQFLLLPIINLQNWISLLIGNSLYCFAIGHYFILTFYGYNQLPFLKNLNFILLPTLGLSIIYLISLFGIDLSKKLSFYNY yhn0_yeast Hypothetical 56.5 kDa protein in DYS1-PCL5 intergenic region YHR070W protein protein yeast Saccharomyces cerevisiae MKIALPVFQKFNRLISSCKMSGVFPYNPPVNRQMRELDRSFFITKIPMCAVKFPEPKNISVFSKNFKNCILRVPRIPHVVKLNSSKPKDELTSVQNKKLKTADGNNTPVTKGVLLHESIHSVEDAYGKLPEDALAFLKENSAEIVPHEYVLDYDFWKAEEILRAVLPEQFLEEVPTGFTITGHIAHLNLRTEFKPFDSLIGQVILDKNNKIECVVDKVSSIATQFRTFPMKVIAGKSDSLVVEQKESNCTFKFDFSKVYWNSRLHTEHERLVKQYFQPGQVVCDVFAGVGPFAVPAGKKDVIVLANDLNPESYKYLKENIALNKVAKTVKSFNMDGADFIRQSPQLLQQWIQDEEGGKITIPLPLKKRHRSQQHNDQQPPQPRTKELIIPSHISHYVMNLPDSAISFLGNFRGIFAAHTKGATDTIQMPWVHVHCFEKYPPGDQVTEDELHARVHARIIAALKVTADDLPLNAVSLHLVRKVAPTKPMYCASFQLPANV sso2_yeast SSO2 protein SSO2 YMR183C YM8010.13C protein protein yeast Saccharomyces cerevisiae MSNANPYENNNPYAENYEMQEDLNNAPTGHSDGSDDFVAFMNKINSINANLSRYENIINQIDAQHKDLLTQVSEEQEMELRRSLDDYISQATDLQYQLKADIKDAQRDGLHDSNKQAQAENCRQKFLKLIQDYRIIDSNYKEESKEQAKRQYTIIQPEATDEEVEAAINDVNGQQIFSQALLNANRRGEAKTALAEVQARHQELLKLEKTMAELTQLFNDMEELVIEQQENVDVIDKNVEDAQQDVEQGVGHTNKAVKSARKARKNKIRCLIICFIIFAIVVVVVVVPSVVETRK atg7_yeast Autophagy-related protein 7 ATG7 APG7 CVT2 YHR171W protein protein yeast Saccharomyces cerevisiae MSSERVLSYAPAFKSFLDTSFFQELSRLKLDVLKLDSTCQPLTVNLDLHNIPKSADQVPLFLTNRSFEKHNNKRTNEVPLQGSIFNFNVLDEFKNLDKQLFLHQRALECWEDGIKDINKCVSFVIISFADLKKYRFYYWLGVPCFQRPSSTVLHVRPEPSLKGLFSKCQKWFDVNYSKWVCILDADDEIVNYDKCIIRKTKVLAIRDTSTMENVPSALTKNFLSVLQYDVPDLIDFKLLIIRQNEGSFALNATFASIDPQSSSSNPDMKVSGWERNVQGKLAPRVVDLSSLLDPLKIADQSVDLNLKLMKWRILPDLNLDIIKNTKVLLLGAGTLGCYVSRALIAWGVRKITFVDNGTVSYSNPVRQALYNFEDCGKPKAELAAASLKRIFPLMDATGVKLSIPMIGHKLVNEEAQHKDFDRLRALIKEHDIIFLLVDSRESRWLPSLLSNIENKTVINAALGFDSYLVMRHGNRDEQSSKQLGCYFCHDVVAPTDSLTDRTLDQMCTVTRPGVAMMASSLAVELMTSLLQTKYSGSETTVLGDIPHQIRGFLHNFSILKLETPAYEHCPACSPKVIEAFTDLGWEFVKKALEHPLYLEEISGLSVIKQEVERLGNDVFEWEDDESDEIA fip1_yeast FIP1 protein FIP1 YJR093C J1911 protein protein yeast Saccharomyces cerevisiae MSSSEDEDDKFLYGSDSELALPSSKRSRDDEADAGASSNPDIVKRQKFDSPVEETPATARDDRSDEDIYSDSSDDDSDSDLEVIISLGPDPTRLDAKLLDSYSTAATSSSKDVISVATDVSNTITKTSDERLITEGEANQGVTATTVKATESDGNVPKAMTGSIDLDKEGIFDSVGITTIDPEVLKEKPWRQPGANLSDYFNYGFNEFTWMEYLHRQEKLQQDYNPRRILMGLLSLQQQGKLNSANDTDSNLGNIIDNNNNVNNANMSNLNSNMGNSMSGTPNPPAPPMHPSFPPLPMFGSFPPFPMPGMMPPMNQQPNQNQNQNSK hpa2_yeast Histone acetyltransferase HPA2 HPA2 YPR193C P9677.12 protein protein yeast Saccharomyces cerevisiae MSNTSEDNITVRFVTENDKEGWQRLWKSYQDFYEVSFPDDLDDFNFGRFLDPNIKMWAAVAVESSSEKIIGMINFFNHMTTWDFKDKIYINDLYVDENSRVKGAGGKLIQFVYDEADKLGTPSVYWCTDESNHRAQLLYVKVGYKAPKILYKRKGY nab4_yeast Nuclear polyadenylated RNA-binding protein 4 NAB4 HRP1 NAB5 YOL123W protein protein yeast Saccharomyces cerevisiae MSSDEEDFNDIYGDDKPTTTEEVKKEEEQNKAGSGTSQLDQLAALQALSSSLNKLNNPNSNNSSSNNSNQDTSSSKQDGTANDKEGSNEDTKNEKKQESATSANANANASSAGPSGLPWEQLQQTMSQFQQPSSQSPPQQQVTQTKEERSKADLSKESCKMFIGGLNWDTTEDNLREYFGKYGTVTDLKIMKDPATGRSRGFGFLSFEKPSSVDEVVKTQHILDGKVIDPKRAIPRDEQDKTGKIFVGGIGPDVRPKEFEEFFSQWGTIIDAQLMLDKDTGQSRGFGFVTYDSADAVDRVCQNKFIDFKDRKIEIKRAEPRHMQQKSSNNGGNNGGNNMNRRGGNFGNQGDFNQMYQNPMMGGYNPMMNPQAMTDYYQKMQEYYQQMQKQTGMDYTQMYQQQMQQMAMMMPGFAMPPNAMTLNQPQQDSNATQGSPAPSDSDNNKSNDVQTIGNTSNTDSGSPPLNLPNGPKGPSQYNDDHNSGYGYNRDRGDRDRNDRDRDYNHRSGGNHRRNGRGGRGGYNRRNNGYHPYNR ifh1_yeast IFH1 protein IFH1 RRP3 YLR223C L8083.9 protein protein yeast Saccharomyces cerevisiae MAGKKSPRKSTINHSTHSGKLPANIKRLIKKGESDTKSRQSPPTLSTTRPRRFSLIYSSESSLSDVSDSDKNKSTNPHKIKRKAKNISNNSQGKKSKLIQRQIDNDDEGTESSDYQAVTDGEESENEEEESEEEEEDDDEDDDDDDDDGSDSDSDSETSSDDENIDFVKLTAQRKKRAMKALSAMNTNSNTLYSSRENSNKNKSVKLSPKKENEEEQKEEKEKEKEEQQKQQESNKKEVNGSGTTTTQQALSFKFKKEDDGISFGNGNEGYNEDIGEEVLDLKNKENNGNEEDKLDSKVMLGNNDELRFPNISESDESEYDIDQDAYFDVINNEDSHGEIGTDLETGEDDLPILEEEEQNIVSELQNDDELSFDGSIHEEGSDPVEDAENKFLQNEYNQENGYDEEDDEEDEIMSDFDMPFYEDPKFANLYYYGDGSEPKLSLSTSLPLMLNDEKLSKLKKKEAKKREQEERKQRRKLYKKTQKPSTRTTSNVDNDEYIFNVFFQSDDENSGHKSKKGRHKSGKSHIEHKNKGSNLIKSNDDLEPSTHSTVLNSGKYDSSDDEYDNILLDVAHMPSDDECSESETSHDADTDEELRALDSDSLDIGTELDDDYEDDDDDSSVTNVFIDIDDLDPDSFYFHYDSDGSSSLISSNSDKENSDGSKDCKHDLLETVVYVDDESTDEDDNLPPPSSRSKNIGSKAKEIVSSNVVGLRPPKLGTWETDNKPFSIIDGLSTKSLYALIQEHQQLREQHQRAQTPDVKREGSSNGNNGDELTLNELLNMSELEDDSPSHTDDMENNYNDAINSKSTNGHAADWYEVPKVPLSAFRNKGINAYEEDEYMIPANSNRKVPIGYIGNERTRKKIDKMKELQRKKTEKKRQLKKKKKLLKIRKQRQKAIKEQETMNLQLGINGHEIIGNNNSHSDINTGTDFTTNENTPMNELPSHAPEDASLIPHNSDLAVDSNTRKNSTKSVGLDEIHEILGKDENDLLSVGDINGYDAQEGHVIEDTDADILASLTAPVQFDNTLSHENSNSMWRRRQSMVEAAAENLRFTKNGLFSESALADIEGIMGNDVNHSFEFNDVLQ mak3_yeast L-A virus GAG protein N-acetyltransferase MAK3 YPR051W YP9499.08 protein protein yeast Saccharomyces cerevisiae MEIVYKPLDIRNEEQFASIKKLIDADLSEPYSIYVYRYFLNQWPELTYIAVDNKSGTPNIPIGCIVCKMDPHRNVRLRGYIGMLAVESTYRGHGIAKKLVEIAIDKMQREHCDEIMLETEVENSAALNLYEGMGFIRMKRMFRYYLNEGDAFKLILPLTEKSCTRSTFLMHGRLAT mus81_yeast Class II crossover junction endonuclease MUS81 MUS81 SLX3 YDR386W D9509.6 protein protein yeast Saccharomyces cerevisiae MELSSNLKDLYIEWLQELVDGLTPKQEQLKIAYEKAKRNLQNAEGSFYYPTDLKKVKGIGNTIIKRLDTKLRNYCKIHHISPVEAPSLTQTSSTRPPKRTTTALRSIVNSCENDKNEAPEEKGTKKRKTRKYIPKKRSGGYAILLSLLELNAIPRGVSKEQIIEVAGKYSDHCMTPNFSTKEFYGAWSSIAALKKHSLVLEEGRPKRYSLTEEGVELTKSLKTADGISFPKENEEPNEYSVTRNESSEFTANLTDLRGEYGKEEEPCDINNTSFMLDITFQDLSTPQRLQNNVFKNDRLNSQTNISSHKLEEVSDDQTVPDSALKAKSTIKRRRYNGVSYELWCSGDFEVFPIIDHREIKSQSDREFFSRAFERKGMKSEIRQLALGDIIWVAKNKNTGLQCVLNTIVERKRLDDLALSIRDNRFMEQKNRLEKSGCEHKYYLIEETMSGNIGNMNEALKTALWVILVYYKFSMIRTCNSDETVEKIHALHTVISHHYSQKDLIVIFPSDLKSKDDYKKVLLQFRREFERKGGIECCHNLECFQELMGKGDLKTVGELTIHVLMLVKGISLEKAVAIQEIFPTLNKILMAYKTCSSEEEAKLLMFNVLGDAPGAKKITKSLSEKIYDAFGKL ntg2_yeast DNA base excision repair N-glycosylase 2 NTG2 YOL043C protein protein yeast Saccharomyces cerevisiae MREESRSRKRKHIPVDIEEVEVRSKYFKKNERTVELVKENKINKDLQNYGGVNIDWIKALKPIEYFEWIESRTCDDPRTWGRPITKEEMINDSGAKVPESFLPIYNRVRLMRSKVKTPVDAMGCSMIPVLVSNKCGIPSEKVDPKNFRLQFLIGTMLSAQTRDERMAQAALNITEYCLNTLKIAEGITLDGLLKIDEPVLANLIRCVSFYTRKANFIKRTAQLLVDNFDSDIPYDIEGILSLPGVGPKMGYLTLQKGWGLIAGICVDVHVHRLCKMWNWVDPIKCKTAEHTRKELQVWLPHSLWYEINTVLVGFGQLICMARGKRCDLCLANDVCNARNEKLIESSKFHQLEDKEDIEKVYSHWLDTVTNGITTERHKKK pep12_yeast Syntaxin PEP12 PEP12 VPS6 VPT13 YOR036W OR26.29 protein protein yeast Saccharomyces cerevisiae MSEDEFFGGDNEAVWNGSRFSDSPEFQTLKEEVAAELFEINGQISTLQQFTATLKSFIDRGDVSAKVVERINKRSVAKIEEIGGLIKKVNTSVKKMDAIEEASLDKTQIIAREKLVRDVSYSFQEFQGIQRQFTQVMKQVNERAKESLEASEMANDAALLDEEQRQNSSKSTRIPGSQIVIERDPINNEEFAYQQNLIEQRDQEISNIERGITELNEVFKDLGSVVQQQGVLVDNIEANIYTTSDNTQLASDELRKAMRYQKRTSRWRVYLLIVLLVMLLFIFLIMKL rrn9_yeast RNA polymerase I specific transcription initiation factor RRN9 RRN9 YMR270C YM8156.12C protein protein yeast Saccharomyces cerevisiae MSDLDEESQIETQIDAPIEDIIRGSELTTTTADKETLKSANELLDSLEHSHRVDLSLHLYSAYLLKRLLYKANEKKHFYEVNQFVKTQIKDNWTSWPNPNTIIDPSVDKLYEDIPEGIANVSVQPGEISNRALMHASDMMRVELDAQWQKFLSKSALDHDVTLDVDELNIPNEISRNILVKLDSLFEGLHDKIAKENEFDVRQDKHSNNIRANQIDDEPMQANRRIKYTYHDLVSRGCEMNEDMTDIYMKSLELYNDIPEKYKKRKFRLPKQILKKYHQPKKTSSYLKELLSKTREDFIPVEKLLKDKRLTSKDKSKLQRLNREETEDALNKRTFFQVKGYLEDENEISDYELDDCLIELPNGNI ruxf_yeast Small nuclear ribonucleoprotein F SMX3 YPR182W P9705.4 protein protein yeast Saccharomyces cerevisiae MSESSDISAMQPVNPKPFLKGLVNHRVGVKLKFNSTEYRGTLVSTDNYFNLQLNEAEEFVAGVSHGTLGEIFIRCNNVLYIRELPN med21_yeast RNA polymerase II mediator complex subunit 21 SRB7 YDR308C D9740.17 MED21 protein protein yeast Saccharomyces cerevisiae MTDRLTQLQICLDQMTEQFCATLNYIDKNHGFERLTVNEPQMSDKHATVVPPEEFSNTIDELSTDIILKTRQINKLIDSLPGVDVSAEEQLRKIDMLQKKLVEVEDEKIEAIKKKEKLLRHVDSLIEDFVDGIANSKKST syf1_yeast Pre-mRNA splicing factor SYF1 SYF1 NTC90 YDR416W protein protein yeast Saccharomyces cerevisiae MSAYIAMKGVITNVDENIRNDEDVAFEYEIQKTPQNILTWKRYIEYWKEEGRTDKQIRWLYERFCSQFVTDTSIWEDYIRWESTKEVVETSRIFWLFQRCLKSCVRDCDRICLSYLELAIEQYDLAMIRHALASSLMKMEREMHRKVWDPVIKFVEEKVLPLTQLDSTQEDEEESTDEAELINVLLVKGFTKGGFISEEISENGSRGDIWSSHILERYLKVAPQQKRNESLATLALTRDNITIKSVYEKYLPQDENSGKYLPSSELPFELNFNYLASLEKLGLDNQYEEFMRQMNGIYPDKWLFLILSLAKYYISRGRLDSCGDLLKKSLQQTLRYSDFDRIYNFYLLFEQECSQFILGKLKENDSKFFNQKDWTEKLQAHMATFESLINLYDIYLNDVALRQDSNLVETWMKRVSLQKSAAEKCNVYSEAILKIDPRKVGTPGSFGRLWCSYGDLYWRSNAISTARELWTQSLKVPYPYIEDLEEIYLNWADRELDKEGVERAFSILEDALHVPTNPEILLEKYKNGHRKIPAQTVLFNSLRIWSKYIDYLEAYCPKDANSSDKIFNKTKMAYNTVIDLRLITPAMAENFALFLQNHYEVMESFQVYEKTIPLFPPEIQYELWIEYLEVATSHQLSSLSPEHIRFLFEKALKNLCSNGIDCKTIFIAYSVFEERISGLISKSIEILRRGAVIGTVSVSTHLESRLQLWRMCISKAESTLGPSVTRELYQECIQILPNSKAVEFVIKFSDFESSIGETIRAREILAYGAKLLPPSRNTELWDSFEIFELKHGDKETYKDMLKMKKVLESNMLIDSASVSHEEGNINFVAAATSHAPNSHTLTQSTSSYSINPDEIELDI vatd_yeast Vacuolar ATP synthase subunit D VMA8 YEL051W SYGP-ORF11 protein protein yeast Saccharomyces cerevisiae MSGNREQVFPTRMTLGLMKTKLKGANQGYSLLKRKSEALTKRFRDITKRIDDAKQKMGRVMQTAAFSLAEVSYATGENIGYQVQESVSTARFKVRARQENVSGVYLSQFESYIDPEINDFRLTGLGRGGQQVQRAKEIYSRAVETLVELASLQTAFIILDEVIKVTNRRVNAIEHVIIPRTENTIAYINSELDELDREEFYRLKKVQEKKQNETAKLDAEMKLKRDRAEQDASEVAADEEPQGETLVADQEDDVIF vph1_yeast Vacuolar ATP synthase 95 kDa subunit VPH1 YOR270C protein protein yeast Saccharomyces cerevisiae AEKEEAIFRSAEMALVQFYIPQEISRDSAYTLGQLGLVQFRDLNSKVRAFQRTFVNEIRRLDNVERQYRYFYSLLKKHDIKLYEGDTDKYLDGSGELYVPPSGSVIDDYVRNASYLEERLIQMEDATDQIEVQKNDLEQYRFILQSGDEFFLKGDNTDSTSYMDEDMIDANGENIAAAIGASVNYVTGVIARDKVATLEQILWRVLRGNLFFKTVEIEQPVYDVKTREYKHKNAFIVFSHGDLIIKRIRKIAESLDANLYDVDSSNEGRSQQLAKVNKNLSDLYTVLKTTSTTLESELYAIAKELDSWFQDVTREKAIFEILNKSNYDTNRKILIAEGWIPRDELATLQARLGEMIARLGIDVPSIIQVLDTNHTPPTFHRTNKFTAGFQSICDCYGIAQYREINAGLPTIVTFPFMFAIMFGDMGHGFLMTLAALSLVLNEKKINKMKRGEIFDMAFTGRYIILLMGVFSMYTGFLYNDIFSKTMTIFKSGWKWPDHWKKGESITATSVGTYPIGLDWAWHGTENALLFSNSYKMKLSILMGFIHMTYSYFFSLANHLYFNSMIDIIGNFIPGLLFMQGIFGYLSVCIVYKWAVDWVKDGKPAPGLLNMLINMFLSPGTIDDELYPHQAKVQVFLLLMALVCIPWLLLVKPLHFKFTHKKKSHEPLPSTEADASSEDLEAQQLISAMDADDAEEEEVGSGSHGEDFGDIMIHQVIHTIEFCLNCVSHTASYLRLWALSLAHAQLSSVLWTMTIQIAFGFRGFVGVFMTVALFAMWFALTCAVLVLMEGTSAMLHSLRLHWVESMSKFFVGEGLPYEPFAFEYKDMEVAVASASSSASS vps30_yeast Vacuolar protein sorting protein 30 VPS30 APG6 VPT30 YPL120W LPH7 ATG6 protein protein yeast Saccharomyces cerevisiae MKCQTCHLPLQLDPSLEGLSLTQRNLLLSNNSIITATNENVISNKGIEAADNCGPQIPKERLRRLGEIQNIKDLNLKDDKLITDSFVFLNHDDDDNANITSNSREDQRYGNANGNDNKKANSDTSDGTSTFRDHDEEEQEATDEDENQQIQLNSKTLSTQVNAMTNVFNILSSQTNIDFPICQDCCNILINRLKSEYDDAIKERDTYAQFLSKLESQNKEISESNKEKQYSHNLSEKENLKKEEERLLDQLLRLEMTDDDLDGELVRLQEKKVQLENEKLQKLSDQNLMDLNNIQFNKNLQSLKLQYELSLNQLDKLRKINIFNATFKISHSGPFATINGLRLGSIPESVVPWKEINAALGQLILLLATINKNLKINLVDYELQPMGSFSKIKKRMVNSVEYNNSTTNAPGDWLILPVYYDENFNLGRIFRKETKFDKSLETTLEIISEITRQLSTIASSYSSQTLTTSQDESSMNNANDVENSTSILELPYIMNKDKINGLSVKLHGSSPNLEWTTAMKFLLTNVKWLLAFSSNLLSKSITLSPTVNYNDKTISGN q12115_yeast ORF YDL016c D2860 protein protein yeast Saccharomyces cerevisiae MPPIMLNRFTLRNFYLNLSLCKYVSTFKILFPKKRKLFQTSSNLSLCYSDIRRTSLSSKSASLELTTSSSSVLSPSSKYVFSFNSLKNGVFSKSSAELRF ady3_yeast Accumulates dyads protein 3 ADY3 YDL239C protein protein yeast Saccharomyces cerevisiae MNHWLAFLNKPESLKEQNSDCDQQGEMRHVTDGTLTKSPESKPFRERRSQTWIDSEVPTSTEKSNVQESISSDIISKLSNRRSRRNRSESWAGSEASSPSGNISTLENATEKNTLKSPNKFLQRGGLPTVGIGSQALSPAGKPSTLGNVSPGKFTTYKVHNSIEVNRFSSTPTKLLTNPHKVAAISNDEHYVVSNESLEENIEVAHLENVFRSSKTPDEEQSEYMKLGEIRLSSSSYGGSISKENSLPKVLDELQSQNEEIKALRQKLEEKDDRIQELEELNSMNDAKLQRIEDLQKEFHNERKAASKRLNIVQDRFRKEIKKIREEKITDFQNKNASKKEKNEVTSAKTKCKAFSQRNILVSELYRKQKQILNLQQENDKFLKDINESNNSIVKLRSEVEILKSNLQLSQDENKKLHDNGSFYEKRLNDVYSYMQNLSLFEKDLGKFILEEMKCGHSPSMFQNGFAKLYPDFQDIKNLENMEQYKQLKGKIELLEKNDRIRLEKIISVFKLINERLHFMQQQHSHKIKYLQKEALTKEQQFRLEKRRWHDILNLKEENFQKLKSELKGKLILSEKIQKNAEDKLNDYMNEHQEIVEKLQNQALIASRWSTQIQESENTHKKITDELAGKQSEILKLEETILSLKEDVFQEKLNLKKLYGDPSTELNFETVGKSFPHITKEKYDSLGLDILTDLTYVQSQNLIKNLLIVLDIPLKTFLKIVPTIVIQLRCELTLLTKFANDLNLKVFGKQLDFKSRRKVAMNEFLNNHDIAEVKHPLEYDLQALFKYFFS vps51_yeast Vacuolar protein sorting protein 51 YKR020W VPS51 API3 VPS67 WHI6 protein protein yeast Saccharomyces cerevisiae MAEQISHKKSLRVSSLNKDRRLLLREFYNLENEPNKGRQEARIGEKASEAHSGEEQVTDVNIDTEANTEKPVKDDELSATEEDLKEGSEDAEEEIKNLPFKRLVQIHNKLLGKETETNNSIKNTIYENYYDLIKVNDLLKEITNANEDQINKLKQTVESLIKEL q07887_yeast S.cerevisiae chromosome XII reading frame ORF YLL049w YLL049W protein protein yeast Saccharomyces cerevisiae MPGLKLVEALEYRCDRLERLIGAGYSANSDVSVQLDELYNQLHRLYFQGLKYSQDLLQLFNTFMAEDIENVGAPDDICIFASCFDDIYTLYSAFDELNSQYMEFCQISKSSLDQISFKDANIETKQLKKLPELVDNCNIMILRSIAILNRFIDWNIEVNGFFQFQKKRLLNLQKVIYST ycw9_yeast Protein phophatase 2C-like protein YCR079W YCR079W YCR79W YCR79C protein protein yeast Saccharomyces cerevisiae MRLGNAYAYCKPSQNVGLKLDLLRGLPGYVGHATSRINRLENQDNYSIKMMRSWPNAYGSALNCSVFDGHGEKGAQLSQLLADKLCSSLDFPEPSWDKQDLKKLVQEYARRFPEGNYWKHKLSTFEKFYNKFIKNCNSKQELLLMKEGDSAILGQNGGRMIFDKMGNIIDKIALLTELDRLRLFYGFARFDLDQCCGLGTAAGSTASSIFLYPYDDPNAPIDEGKDDDSWIISHSGLLKLIVTQVGDSKIILCDQDGIAHALTTTHHINSSRERHRLSIDPSRLDPDAFGETRFLNNFANTRSFGDVAGKPYGISSEPDIFSFLVGNTLHLPRSERSKLPFNGDECFLALVTDGITNKLADQEVVDLITSTVNSWGLKKATPQFVAEETIKFIQAIATKHSDNATCVVVRLSNWGNWPNVDRTGPQRETKLMNAQSNETKLN swi5_yeast Transcriptional factor SWI5 SWI5 YDR146C YD8358.03C protein protein yeast Saccharomyces cerevisiae MDTSNSWFDASKVQSLNFDLQTNSYYSNARGSDPSSYAIEGEYKTLATDDLGNILNLNYGETNEVIMNEINDLNLPLGPLSDEKSVKVSTFSELIGNDWQSMNFDLENNSREVTLNATSLLNENRLNQDSGMTVYQKTMSDKPHDEKKISMADNLLSTINKSEINKGFDRNLGELLLQQQQELREQLRAQQEANKKLELELKQTQYKQQQLQATLENSDGPQFLSPKRKISPASENVEDVYANSLSPMISPPMSNTSFTGSPSRRNNRQKYCLQRKNSSGTVGPLCFQELNEGFNDSLISPKKIRSNPNENLSSKTKFITPFTPKSRVSSATSNSANITPNNLRLDFKINVEDQESEYSEKPLGLGIELLGKPGPSPTKSVSLKSASVDIMPTIPGSVNNTPSVNKVSLSSSYIDQYTPRGKQLHFSSISENALGINAATPHLKPPSQQARHREGVFNDLDPNVLTKNTDNEGDDNEENEPESRFVISETPSPVLKSQSKYEGRSPQFGTHIKEINTYTTNSPSKITRKLTTLPRGSIDKYVKEMPDKTFECLFPGCTKTFKRRYNIRSHIQTHLEDRPYSCDHPGCDKAFVRNHDLIRHKKSHQEKAYACPCGKKFNREDALVVHRSRMICSGGKKYENVVIKRSPRKRGRPRKDGTSSVSSSPIKENINKDHNGQLMFKLEDQLRRERSYDGNGTGIMVSPMKTNQR mei5_yeast Meiosis protein 5 MEI5 YPL121C LPH6C protein protein yeast Saccharomyces cerevisiae MHNQEEWLDKDKTLVNEEENTCINHSYTKKDTNNYRVGKSGIKDLKKPTNQKEIAIKNRELTKQLTLLRQENNHLQQACKILSENKIIENRKSIEKWRTICEMELSFILNSTLIKINRMGGYKDFLEKEMEAKKRRLEYQIDNGMEDQICEIKESDDFRQLSEVEKQEWESQMNEQLKELEKKKIAELEKLNKVLHDSEGKDFGMAELCTRLKLDYSLIFPQ ycx7_yeast Very hypothetical 19.8 kDa protein in ABP1 5'region YCR087W YCR87W protein protein yeast Saccharomyces cerevisiae MSIYLHIKFRLFLCIPDLPLRIHNQTFQEGLFCPFILHGFQNFVQRLALVKLDTVRGLFHFLCLLDHRLLHFLCRSCHWLVLVLLLLLLLLLLLLLLLVALVQRFLVLLVLADARRVILVTHAIFKRLGAIYACIVRVRTSIIMLFGILLGHSIITHLTVERNHPVITNIS tcpa_yeast T-complex protein 1, alpha subunit CCT1 TCP1 YDR212W YD8142.13 YD8142B.04 protein protein yeast Saccharomyces cerevisiae MSQLFNNSRSDTLFLGGEKISGDDIRNQNVLATMAVANVVKSSLGPVGLDKMLVDDIGDFTVTNDGATILSLLDVQHPAGKILVELAQQQDREIGDGTTSVVIIASELLKRANELVKNKIHPTTIITGFRVALREAIRFINEVLSTSVDTLGKETLINIAKTSMSSKIIGADSDFFSNMVVDALLAVKTQNSKGEIKYPVKAVNVLKAHGKSATESLLVPGYALNCTVASQAMPKRIAGGNVKIACLDLNLQKARMAMGVQINIDDPEQLEQIRKREAGIVLERVKKIIDAGAQVVLTTKGIDDLCLKEFVEAKIMGVRRCKKEDLRRIARATGATLVSSMSNLEGEETFESSYLGLCDEVVQAKFSDDECILIKGTSKHSSSSIILRGANDYSLDEMERSLHDSLSVVKRTLESGNVVPGGGCVEAALNIYLDNFATTVGSREQLAIAEFAAALLIIPKTLAVNAAKDSSELVAKLRSYHAASQMAKPEDVKRRSYRNYGLDLIRGKIVDEIHAGVLEPTISKVKSLKSALEACVAILRIDTMITVDPEPPKEDPHDH tem1_yeast Protein TEM1 TEM1 YML064C protein protein yeast Saccharomyces cerevisiae MATPSTGANNSIPAVRNQVEVQVGLVGDAQVGKTSLMVKYVQNIYDKEYTQTLGVNFLKRKVSIRSTDIIFSIMDLGGQREFINMLPIATVGSSVIIFLFDLTRPETLSSIKEWYRQAYGLNDSAIPILVGTKYDLLIDLDPEYQEQISRTSMKYAQVMNAPLIFCSTAKSINIQKIFKIALAKIFNLTLTIPEINEIGDPLLIYKHLGGQQHRHHNKSQDRKSHNIRKPSSSPSSKAPSPGVNT nif3_yeast NGG1-interacting factor 3 NIF3 YGL221C protein protein yeast Saccharomyces cerevisiae MSRAITRAQLDKLVRSITKFYPQKYADKSWDNTGLLIDCSTAQVTTADANAKTKVLLTVDLTKSVAQEAVDANCNVIVAYHPFIFPSWNRLSPHTNPQHETAIKLIQYGISVYCPHTAVDAARGGVNDWLVRGLNNGENVAKSYALETVSGETDDLIGYGRFVEFNKDISLEQIVKNVKRVLRVPYVQVASLAAPSAWNQLKIKKVAVCAGSGSGVFKQLKEDVDLYYTGEMSHHEVLKWKEMGKTVIVCNHSNTERGFLQDVMKGLLQDEGHEVVVSKMDCDPLTVA top3_yeast DNA topoisomerase III TOP3 EDR1 YLR234W L8083.3 protein protein yeast Saccharomyces cerevisiae MKVLCVAEKNSIAKAVSQILGGGRSTSRDSGYMYVKNYDFMFSGFPFARNGANCEVTMTSVAGHLTGIDFSHDSHGWGKCAIQELFDAPLNEIMNNNQKKIASNIKREARNADYLMIWTDCDREGEYIGWEIWQEAKRGNRLIQNDQVYRAVFSHLERQHILNAARNPSRLDMKSVHAVGTRIEIDLRAGVTFTRLLTETLRNKLRNQATMTKDGAKHRGGNKNDSQVVSYGTCQFPTLGFVVDRFERIRNFVPEEFWYIQLVVENKDNGGTTTFQWDRGHLFDRLSVLTFYETCIETAGNVAQVVDLKSKPTTKYRPLPLTTVELQKNCARYLRLNAKQSLDAAEKLYQKGFISYPRTETDTFPHAMDLKSLVEKQAQLDQLAAGGRTAWASYAASLLQPENTSNNNKFKFPRSGSHDDKAHPPIHPIVSLGPEANVSPVERRVYEYVARHFLACCSEDAKGQSMTLVLDWAVERFSASGLVVLERNFLDVYPWARWETTKQLPRLEMNALVDIAKAEMKAGTTAPPKPMTESELILLMDTNGIGTDATIAEHIDKIQVRNYVRSEKVGKETYLQPTTLGVSLVHGFEAIGLEDSFAKPFQRREMEQDLKKICEGHASKTDVVKDIVEKYRKYWHKTNACKNTLLQVYDRVKASM rl1_yeast 60S ribosomal protein L1 RPL1A SSM1 SSM1A YPL220W RPL1B SSM1B SSM2 YGL135W G2834 protein protein yeast Saccharomyces cerevisiae MSKITSSQVREHVKELLKYSNETKKRNFLETVELQVGLKNYDPQRDKRFSGSLKLPNCPRPNMSICIFGDAFDVDRAKSCGVDAMSVDDLKKLNKNKKLIKKLSKKYNAFIASEVLIKQVPRLLGPQLSKAGKFPTPVSHNDDLYGKVTDVRSTIKFQLKKVLCLAVAVGNVEMEEDVLVNQILMSVNFFVSLLKKNWQNVGSLVVKSSMGPAFRLY twf1_yeast Twinfilin A TWF1 YGR080W protein protein yeast Saccharomyces cerevisiae MSTQSGIVAEQALLHSLNENLSADGIVIIIAKISPDSTSVHQTQVARSFEELVQLASQEREPLYIFYKPEGLDKYFFVSFIPDGSPVRSRMLYASTKNTLARQVGSNSLSTEQPLITDAQDLVDLKNFDSARPAGQNKPLTHDEEMQIEINKQQALLRKNTSVKLVSQDSASPLSLTFRVNSEKPINEILDSEGKNLIIFQIDPSNETIQIVQSDTCPSVDELYIDLPGPSYTIFRQGDSSFFIYSCPSGSKVKDRMIYASNKNGFINYLKNDQKIAFSKVVEIGDFVELDKSLLMATNKEDSLDHGSNPDLPNKSNLKFNKPKGPLRKRRT q05350_yeast S.cerevisiae chromosome IX cosmid 9877. protein protein yeast Saccharomyces cerevisiae ALTIQTKEQLEHAQIEMETNNNQRRKPLLLNIGDHVLVHRDAYFKKGAYMKVQQIYVGPFRVVKKINDNAYELDLNSHKKKHRVINVQFLKSLYTVQTRTQRINQSAPLRELREHTKLLHS ubc12_yeast NEDD8-conjugating enzyme UBC12 UBC12 YLR306W L2142.3 protein protein yeast Saccharomyces cerevisiae MLKLRQLQKKKQKENENSSSIQPNLSAARIRLKRDLDSLDLPPTVTLNVITSPDSADRSQSPKLEVIVRPDEGYYNYGSINFNLDFNEVYPIEPPKVVCLKKIFHPNIDLKGNVCLNILREDWSPALDLQSIITGLLFLFLEPNPNDPLNKDAAKLLCEGEKEFAEAVRLTMSGGSIEHVKYDNIVSP sip1_yeast SIP1 protein SIP1 YDR422C D9461.11 protein protein yeast Saccharomyces cerevisiae MVDISDTSGYLHKQGVLPSVSFICTSFFACGLTSWKVELSYYIVVAAAMGNSPSTQDPSHSTKKEHGHHFHDAFNKDRQGSITSQLFNNRKSTHKRRASHTSEHNGAIPPRMQLLASHDPSTDCDGRMSSDTTIDKGPSHLFKKDYSLSSAADVNDTTLANLTLSDDHDVGAPEEQVKSPSFLSPGPSMATVKRTKSDLDDLSTLNYTMVDETTENERNDKPHHERHRSSIIALKKNLLESSATASPSPTRSSSVHSASLPALTKTDSIDIPVRQPYSKKPSIHAYQYQYLNNDETFSENSQMDKEGNSDSVDAEAGVLQSEDMVLNQSLLQNALKKDMQRLSRVNSSNSMYTAERISHANNNGNIENNTRNKGNAGGSNDDFTAPISATAKMMMKLYGDKTLMERDLNKHHNKTKKAQNKKIRSVSNSRRSSFASLHSLQSRKSILTNGLNLQPLHPLHPIINDNESQYSAPQHREISHHSNSMSSMSSISSTNSTENTLVVLKWKDDGTVAATTEVFIVSTDIASALKEQRELTLDENASLDSEKQLNPRIRMVYDDVHKEWFVPDLFLPAGIYRLQFSINGILTHSNFLPTATDSEGNFVNWFEVLPGYHTIEPFRNEADIDSQVEPTLDEELPKRPELKRFPSSSRKSSYYSAKGVERPSTPFSDYRGLSRSSSINMRDSFVRLKASSLDLMAEVKPERLVYSNEIPNLFNIGDGSTISVKGDSDDVHPQEPPSFTHRVVDCNQDDLFATLQQGGNIDAETAEAVFLSRYPVPDLPIYLNSSYLNRILNQSNQNSESHERDEGAINHIIPHVNLNHLLTSSIRDEIISVACTTRYEGKFITQVVYAPCYYKTQKSQISN ubc6_yeast Ubiquitin-conjugating enzyme E2-28.4 kDa UBC6 DOA2 YER100W protein protein yeast Saccharomyces cerevisiae MATKQAHKRLTKEYKLMVENPPPYILARPNEDNILEWHYIITGPADTPYKGGQYHGTLTFPSDYPYKPPAIRMITPNGRFKPNTRLCLSMSDYHPDTWNPGWSVSTILNGLLSFMTSDEATTGSITTSDHQKKTLARNSISYNTFQNVRFKLIFPEVVQENVETLEKRKLDEGDAANTGDETEDPFTKAAKEKVISLEEILDPEDRIRAEQALRQSENNSKKDGKEPNDSSSMVYIGIAIFLFLVGLFMK upf3_yeast Nonsense-mediated mRNA decay protein 3 UPF3 SUA6 YGR072W protein protein yeast Saccharomyces cerevisiae MSNVAGELKNSEGKKKGRGNRYHNKNRGKSKNETVDPKKNENKVNNATNATHNNSKGRRNNKKRNREYYNYKRKARLGKSTENEGFKLVIRLLPPNLTADEFFAILRDNNNDDGDKQDIQGKLKYSDWCFFEGHYSSKVFKNSTYSRCNFLFDNLSDLEKCANFIKTCKFIDNKDNITIPDMKLSPYVKKFTQTSKKDAALVGTIEEDEIFKTFMNSMKQLNENDEYSFQDFSVLKSLEKEFSKSIELENKIAERTERVLTELVGTGDKVKNKNKKKKNKNAKKKFKEEEASAKIPKKKRNRGKKKRENREKSTISKTKNSNVVIIEEAGKEVLKQRKKKMLLQEKLKISNSSQPQSSSAQTQPSFQPKENLFVPRVKILHRDDTKK nmd2_yeast Nonsense-mediated mRNA decay protein 2 NMD2 IFS1 SUA1 UPF2 YHR077C protein protein yeast Saccharomyces cerevisiae MDDGRKKELHDLNTRAWNGEEVFPLKSKKLDSSIKRNTGFIKKLKKGFVKGSESSLLKDLSEASLEKYLSEIIVTVTECLLNVLNKNDDVIAAVEIISGLHQRFNGRFTSPLLGAFLQAFENPSVDIESERDELQRITRVKGNLRVFTELYLVGVFRTLDDIESKDAIPNFLQKKTGRKDPLLFSILREILNYKFKLGFTTTIATAFIKKFAPLFRDDDNSWDDLIYDSKLKGALQSLFKNFIDATFARATELHKKVNKLQREHQKCQIRTGKLRDEYVEEYDKLLPIFIRFKTSAITLGEFFKLEIPELEGASNDDLKETASPMITNQILPPNQRLWENEDTRKFYEILPDISKTVEESQSSKTEKDSNVNSKNINLFFTDLEMADCKDIIDDLSNRYWSSYLDNKATRNRILKFFMETQDWSKLPVYSRFIATNSKYMPEIVSEFINYLDNGFRSQLHSNKINVKNIIFFSEMIKFQLIPSFMIFHKIRTLIMYMQVPNNVEILTVLLEHSGKFLLNKPEYKELMEKMVQLIKDKKNDRQLNMNMKSALENIITLLYPPSVKSLNVTVKTITPEQQFYRILIRSELSSLDFKHIVKLVRKAHWDDVAIQKVLFSLFSKPHKISYQNIPLLTKVLGGLYSYRRDFVIRCIDQVLENIERGLEINDYGQNMHRISNVRYLTEIFNFEMIKSDVLLDTIYHIIRFGHINNQPNPFYLNYSDPPDNYFRIQLVTTILLNINRTPAAFTKKCKLLLRFFEYYTFIKEQPLPKETEFRVSSTFKKYENIFGNTKFERSENLVESASRLESLLKSLNAIKSKDDRVKGSSASIHNGKESAVPIESITEDDEDEDDENDDGVDLLGEDEDAEISTPNTESAPGKHQAKQDESEDEDDEDDDEDDDDDDDDDDDDGEEGDEDDDEDDDDEDDDDEEEEDSDSDLEYGGDLDADRDIEMKRMYEEYERKLKDEEERKAEEELERQFQKMMQESIDARKSEKVVASKIPVISKPVSVQKPLLLKKSEEPSSSKETYEELSKPKKIAFTFLTKSGKKTQSRILQLPTDVKFVSDVLEEEEKLKTERNKIKKIVLKRSFD yhu9_yeast Hypothetical 81.8 kDa protein in IMP3-SPO12 intergenic region YHR149C protein protein yeast Saccharomyces cerevisiae MYHTHMHESLISVTSTVSVSDASYAYARLTRRDDSDSSSSSASSTKNSKSAECTGSKQQCQLPTDSSHSTSVTVGVAVAVPVGVIIIVLAVILCIVYRRSKKEAEEDNDPDFEGDSEFLPTMKDYSPGINHLYSSDSQQDFMEKTLQQPPSDPFVGSMHSSKYNVRSATPPAIGRSWYVDPFQLPQESNDSNSLRDFAMRVQEDGLGGYKVAAESRNASQTSLHPDNFSNCTPIRASSRFQESESFRSHGSPIHNNQLSRGSATEGANKQFTFPNEDNDSSSVSEEAEVLNESNESASNDAFEFELDNSSEKTHERNLRFGKDDDNYELQDIREAEHMNDRSSSKSQDDDYYVSLLSPNEEEDIKRMKSIYQVYLDRAKTMKKEEDKADNANDISQEENRVDNIVQNPLPSIKINNNDNIDNNEVPEAKHLVKEALPLNNTNLAEYGPEMAQSQKQYPVQDTLTVNDTEAAPSNRIASSIYSEAIQPLNYQDQYQQQEQSPVYNGHTQYPGNGYSGNPQQQGYTAQFVQNPQWYGVPTPQQQQHNHPQTLETIGELPTPAYLAQSASSHSLTSFKRPNKQQLLQLQTARLNGTALNPVDHPEMFYSPTNDAYYAPQQQGQYMKFNENGAVPSPYQLRQSVVMTNPSDLTAKPSYKPAGSFRSVSATNSRNNSLTTQNNIYLQQQQQQLYNSRVSGILEETDVVQPPSVGGILPHSGSQDDLRKQLGSSHNYTVN psd9_yeast Probable 26S proteasome regulatory subunit p27 NAS2 YIL007C protein protein yeast Saccharomyces cerevisiae MEEEELSKLLANVKIDPSLTSRISQIDSFKLSELMVLKTDIETQLEAYFSVLEQQGIGMDSALVTPDGYPRSDVDVLQVTMIRKNVNMLKNDLNHLLQRSHVLLNQHFDNMNVKSNQDARRNNDDQAIQYTIPFAFISEVVPGSPSDKADIKVDDKLISIGNVHAANHSKLQNIQMVVMKNEDRPLPVLLLREGQILKTSLTPSRNWNGRGLLGCRIQEL ady1_yeast Prospore formation at selected spindle poles protein 1 PFS1 ADY1 YHR185C protein protein yeast Saccharomyces cerevisiae MNQGYTQLSAPELKETKTSKLNKMNNFRSSPIAEIINKIPPDCGKIQNTTFPEFNPALRRRQHEQWPAYEKPIRVTDSMSPQLSSINCLPNLYPHGTLPLPNPYLSYLNHIEKVNCQDVKFSNWSVLHNSNNGFEIPTYFSPRTTQNMPCSEKVESWLERLPIFVGFDGYLFTNCFDYEYMLDWEETEFTFEKTSCMETDYSKALTDTDIIYIQEKKIEALIRNQYLKEYEFSQKDF rpn4_yeast 26S proteasome regulatory subunit RPN4 RPN4 SON1 UFD5 YDL020C D2840 protein protein yeast Saccharomyces cerevisiae MASTELSLKRTLTDILEDELYHTNPGHSQFTSHYQNYHPNASITPYKLVNKNKENNTFTWNHSLQHQNESSAASIPPQQTYHFPIFNKYADPTLTTTTSFTTSEATANDRQINNVHLIPNEIKGASETPLQKTVNLKNIMKVSDPYVPTRNTFNYDVKISNDFFDNGDNLYGNDEEVLFYEDNYNPKMQWSLQDNSAAINNEDARAIFNNEFDSDDDDISDDEEDEIEENCLQQEQHQEEPLLSLDVTPISMFGSDQKTGRAKSSSHLFNEYSYVDSNMDSISSVVSEDLLDERGHEKIEDEDEDNDLDEDDIYDISLLKNRRKQSFVLNKNTIDFERFPSPSTSANVPSTATTGKRKPAKSSSNRSCVSNSNENGTLERIKKPTSAVVSSNASRRKLINYTKKHLSSHSSTNSNSKPSTASPSAHTSSSDGNNEIFTCQIMNLITNEPCGAQFSRSYDLTRHQNTIHAKRKIVFRCSECIKILGSEGYQKTFSRLDALTRHIKSKHEDLSLEQRQEVTKFAKANIGYVMG rsd1_yeast Recessive suppressor of secretory defect RSD1 SAC1 YKL212W protein protein yeast Saccharomyces cerevisiae MTGPIVYVQNADGIFFKLAEGKGTNDAVIHLANQDQGVRVLGAEEFPVQGEVVKIASLMGFIKLKLNRYAIIANTVEETGRFNGHVFYRVLQHSIVSTKFNSRIDSEEAEYIKLLELHLKNSTFYFSYTYDLTNSLQRNEKVGPAASWKTADERFFWNHYLTEDLRNFAHQDPRIDSFIQPVIYGYAKTVDAVLNATPIVLGLITRRSIFRAGTRYFRRGVDKDGNVGNFNETEQILLAENPESEKIHVFSFLQTRGSVPIYWAEINNLKYKPNLVLGENSLDATKKHFDQQKELYGDNYLVNLVNQKGHELPVKEGYESVVHALNDPKIHYVYFDFHHECRKMQWHRVKLLIDHLEKLGLSNEDFFHKVIDSNGNTVEIVNEQHSVVRTNCMDCLDRTNVVQSVLAQWVLQKEFESADVVATGSTWEDNAPLLTSYQNLWADNADAVSVAYSGTGALKTDFTRTGKRTRLGAFNDFLNSASRYYQNNWTDGPRQDSYDLFLGGFRPHTASIKSPFPDRRPVYIQLIPMIICAALTVLGATIFFPKDRFTSSKNLLYFAGASIVLALSTKFMFKNGIQFVNWPKLVDVGFLVVHQTHDKEQQFKGLKYAQSPKFSKPDPLKRD atg17_yeast Autophagy-related protein 17 ATG17 APG17 YLR423C protein protein yeast Saccharomyces cerevisiae MNEADVTKFVNNARKTLTDAQLLCSSANLRIVDIKKKLSSWQLSISKLNFLIVGLRQQGKFLYTILKEGIGTKLIQKQWNQAVLVVLVDEMKYWQYEITSKVQRLDGIVNELSISEKDDTDPSKLGDYISRDNVNLLNDKLKEVPVIERQIENIKLQYENMVRKVNKELIDTKLTDVTQKFQSKFGIDNLMETNVAEQFSRELTDLEKDLAEIMNSLTQHFDKTLLLQDKKIDNDEREELFKVVQGDDKELYNIFKTLHEVIDDVDKTILNLGQFLQAKIKEKTELHSEVSEIINDFNRNLEYLLIFKDISNLIDSFKNSCTQDIQTTKELCEFYDNFEESYGNLVLEAKRRKDVANRMKTILKDCEKQLQNLDAQDQEERQNFIAENGTYLPETIWPGKIDDFSSLYTLNYNVKNP dad2_yeast DASH complex subunit DAD2 YKR083C YKR403 DAD2 HSK1 protein protein yeast Saccharomyces cerevisiae MDSIDEQIAIKRKELQSLQKITSLTDGLKIQLTELNEQIKEMGMNADSVAQLMNNWDSIINNISQASLGLLQYAEGDYEIGPWKDSKKKESEQSNETGLEAQENDKNDEDNDEDEDLVPLPETMVRIRVDGNE src1_yeast SRC1 protein SRC1 YML034W/YML033W protein protein yeast Saccharomyces cerevisiae MNSDLEYLEDGFDPNSMKVATLRRILVENNVDFPSNARKNALVGLFDEKVKPQIPQLRKMYLNVRPSDEGIVKMDRPSSSPSIASPRRSRRARREKSASPMAKQFKKNRILDDVSNDDDDDDDDDDDNDKKDDPLIVPSGTDTDEVDDEEDDVITSSSNKSDTNDFQQNSDTRKKRKDPDSDDWSESNSKENKIDNKHLNLLSSDSEIEQDYQKAKKRKTSDLNQEHGNGSAILGKLSVKTPIKNTNRKPVSMDNFNDSLTSSGTENDPFVPNIRHNPKELGTANGTGHSTPLSKLKVSASFADKLPQKEVPSTILVPEVEQQEPSQSERTPSLFSSEGSGSESEAPLLPEITTPGPHQPMGNTSNNVVEMIDTDSSNLVSDEDEVLVPTRIETPQLPTEKDVEKCEARVQELQEEVNEQLEHENGSEFDVKQGSGKVGNRHKFKRALKFLSKSLLALFLFCIFIVIPLLFGLWYREQRLLIGYCGHEVPSHRVSGNSFEFIQKLDNLLQDYRPKCIPCPPNGICYPYLKLKCKPDYKLAPSRLDFLEIIPAQGKCVKDDKKQQLVSEVVEKSLEFLRAKNAQISCGDGKDDIESGMTEDALYQIFNEARAPWIRDDEFEDLWIQVIKDLTEEPEILWRQLSPTDNNIGGNSNNIIKTNDVPRQKRHLPEKFISKTRNFRSTSKKYIGMKCRFEREIYQTYKKFQRPIWLMFLLIVISKVIEIKLKNYYRKKARIEELVTQTMEKLKFQKIKSMSDPKENAYLSIVQLRDIFLSDIVDLKYKNQLWSEVVKYLEHNNSNIKSNLTEIRGEIMKCWEWIGPMELNEPKDSAENKI dsk2_yeast Ubiquitin-like protein DSK2 DSK2 SHE4 YMR276W YM8021.02 protein protein yeast Saccharomyces cerevisiae MSLNIHIKSGQDKWEVNVAPESTVLQFKEAINKANGIPVANQRLIYSGKILKDDQTVESYHIQDGHSVHLVKSQPKPQTASAAGANNATATGAAAGTGATPNMSSGQSRGFNPLADLTSARYAGYLNMPSADMFGPDGGALNNDSNNQDELLRMMENPIFQSQMNEMLSNPQMLDFMIQSNPQLQAMGPQARQMLQSPMFRQMLTNPDMIRQSMQFARMMDPNAGMGSAGGAASAFPAPGGDAPEEGSNTNTTSSSNTGNNAGTNAGTNAGANTAANPFASLLNPALNPFANAGNRASTGMPAFDPALLASMFQPPVQASQAEDTRPPEERYEHQLRQLNDMGFFDFDRNVAALRRSGGSVQGALDSLLNGDV sld5_yeast DNA replication complex GINS protein SLD5 SLD5 YDR489W protein protein yeast Saccharomyces cerevisiae MDINIDDILAELDKETTAVDSTKITQGSSSTTHRDANTIVGSSLDLNDKTQIYVSPQQDFSDLMKSWKNERCSPELLPYPHQLMKRLLNRISMQSQLIENISMGFLDMQNASNANPPMPNESKLPLLCMETELERLKFVIRSYIRCRLSKIDKFSLYLRQLNEDENSLISLTDLLSKDEIKYHDTHSLIWLKLVNDSILKYMPEELQAINDTEGSVNMIDEPDWNKFVFIHVNGPPDGKWNEDPLLQENEFGKPCYTVTIPDLKEEVELTIGSIYVMRYEVIRDLLRDDKVALI q05899_yeast Ylr297wp YLR297W protein protein yeast Saccharomyces cerevisiae MVEGDFVDEQSNIALLSSKSMCGDHHSVKNSIGDEIFKLLTKILNSDEKASGDVHTLVSGTPDLSNFNLDNEPLENILAVFIISFIIVVVGVLLLGLIGMIFISLRSGSSNDKKLQSNDEEKQALAEKA q08914_yeast S.cerevisiae chromosome XV reading frame ORF YOR391c HSP33 protein protein yeast Saccharomyces cerevisiae MTPKRALISLTSYHGPFYKDGAKTGVFVVEILRSFDTFEKHGFEVDFVSETGGFGWDEHYLPKSFIGGEDKMNFETKNSAFNKALARIKTANEVNASDYKVFFASAGHGALFDYPKAKNLQDIASKIYANGGVIAAICHGPLLFDGLIDIKTTRPLIEGKAITGFPLEGEIALGVDDILRSRKLTTVERVANKNGAKYLAPIHPWDDYSITDGKLVTGVNANSSYSTTIRAINALYS ynk0_yeast Hypothetical 27.0 kDa protein in POL1-RAS2 intergenic region YNL100W N2190 protein protein yeast Saccharomyces cerevisiae MVNFYDDVDESKSHGEFPLIPVVLQNSSELSVRTIPTGNEIIESVHLTKWLRKYRNALASQLDRYEKGWQSKIANFRLQVQHVINYSRKNIFNVDSENKHTVVPGSLIALGAFFAGSIAVNRSNWGAKRLIFGHKSSILEKLCTSLPSRILLPWVLAAATFKYWAPQTSQNLVNATENDLLPADFVKSYHNTWKRIYEEGYVAKKCDLKRQIDQTLQKNIRYAREQLYEKLEQA q08992_yeast S.cerevisiae chromosome XVI reading frame ORF YPL280w HSP32 protein protein yeast Saccharomyces cerevisiae MTPKRALISLTSYHGPFYKDGAKTGVFVVEILRSFDTFEKHGFEVDFVSETGGFGWDEHYLPKSFIGGEDKMNFETKNSAFNKALARIKTANEVNASDYKIFFASAGHGALFDYPKAKNLQDIASKIYANGGVIAAICHGPLLFDGLIDIKTTRPLIEGKAITGFPLEGEIALGVDDILRSRKLTTVERVANKNGAKYLAPIHPWDDYSITDGKLVTGVNANSSYSTTIRAINALYS ypt31_yeast GTP-binding protein YPT31/YPT8 YPT31 YPT8 YER031C protein protein yeast Saccharomyces cerevisiae SSEDYGYDYDLLFKIVLIGDSGVGKSNLLSRFTKNEFNMDSKSTIGVEFATRTLEIDGKRIKAQIWDTAGQERYRAITSAYYRGAVGALIVYDISKSSSYENCNHWLSELRENADDNVAVGLIGNKSDLAHLRAVPTEESKTFAQENQLLFTETSALNSENVDKAFEELINTIYQKVSKHQMDLGDSSANGNANGASAPNGPTISLTPTPNENKKANGNNCC rpc6_yeast DNA-directed RNA polymerase III 36 kDa polypeptide RPC34 YNR003C N2031 protein protein yeast Saccharomyces cerevisiae MSGMIENGLQLSDNAKTLHSQMMSKGIGALFTQQELQKQMGIGSLTDLMSIVQELLDKNLIKLVKQNDELKFQGVLESEAQKKATMSAEEALVYSYIEASGREGIWSKTIKARTNLHQHVVLKCLKSLESQRYVKSVKSVKFPTRKIYMLYSLQPSVDITGGPWFTDGELDIEFINSLLTIVWRFISENTFPNGFKNFENGPKKNVFYAPNVKNYSTTQEILEFITAAQVANVELTPSNIRSLCEVLVYDDKLEKVTHDCYRVTLESILQMNQGEGEPEAGNKALEDEEEFSIFNYFKMFPASKHDKEVVYFDEWTI pra1_yeast Prenylated Rab acceptor 1 YIP3 PRA1 YNL044W N2650 protein protein yeast Saccharomyces cerevisiae MNQLGALAQVSRFTQNFSMENIKSEFQSFQSKLATLRTPQEFFNFKKISKPQNFGEVQSRVAYNLKYFSSNYGLIIGCLSIYTLLTNLLLLFVIVLVVAGIVGINKLKGEELVTPFGSFKTNQLYTGLVCVAVPIGFLASPISTLLWLIGASAVSVFGHASLMEKPIETVFDEETV q12520_yeast S.cerevisiae chromosome XVI reading frame ORF YPL244c HUT1 protein protein yeast Saccharomyces cerevisiae MAGSTSSLVICAIGIYATFLTWALVQEPLATRTWPNSMGKFQFPNVISLIQASVAMMMGYLYLNWKKVEYPPRKMIKDHWKQLMLISFTQSSSGPLATTSLKHVDYLTYMLAKSCKMIPVLLVHLLLYRTPIASQKKVVALLVSLGVTIFTIGGNDGKKLKRSFNESGNDNKLQGFGLLFSSLFLDGLTNATQDKLLKANKAKEKGKQTLITGAHLMFTLNLFVILWNILYFIVIDCKQWDNAVSVLTMDPQVWGYLMLYSFCGAMGQCFIFYTLEQFGSLVLIMITVTRKMVSMILSIIVFGKSVRFQQWVGMFIVFGGITWEALNKKKANIPKAKSA ypt53_yeast GTP-binding protein YPT53 YPT53 YNL093W N2223 protein protein yeast Saccharomyces cerevisiae MDKHTAAIPTLTIKVVLLGESAVGKSSIVLRFVSDDFKESKEPTIGAAFLTKRITRDGKVIKFEIWDTAGQERFAPLAPMYYRNAQAALVVFDVTNEGSFYKAQNWVEELHEKVGHDIVIALVGNKMDLLNNDDENENRAMKAPAVQNLCERENLLYFEASAKTGENIYQIFQTLGEKVPCPEQNTRQSSTHDRTITDNQRIDLESTTVESTRETGGCNC ym9c_yeast Hypothetical protein YMR325W/YOR394W/YPL282C precursor YMR325W YM9924.17 YOR394W YPL282C protein protein yeast Saccharomyces cerevisiae MVKLTSIAAGVAAIAAGVAAAPATTTLSPSDERVNLVELGVYVSDIRAHLAQYYLFQAAHPTETYPVEIAEAVFNYGDFTTMLTGIPAEQVTRVITGVPWYSTRLRPAISSALSKDGIYTAIPK ypt6_yeast GTP-binding protein YPT6 YPT6 YLR262C L8479.11 protein protein yeast Saccharomyces cerevisiae MSRSGKSLTKYKIVFLGEQGVGKTSLITRFMYDTFDDHYQATIGIDFLSKTMYLDDKTIRLQLWDTAGQERFRSLIPSYIRDSRVAIIVYDITKRKSFEYIDKWIEDVKNERGDENVILCIVGNKSDLSDERQISTEEGEKKAKLLGAKIFMETSTKAGYNVKALFKKIAKSLPEFQNSESTPLDSENANSANQNKPGVIDISTAEEQEQSACQC yj9c_yeast Hypothetical 81.2 kDa protein in NMD5-HOM6 intergenic region YJR134C J2120 protein protein yeast Saccharomyces cerevisiae MSKKLSLEERLSLATKKGRKKNKRSTSNLSSPSPVVLSNNEQESARTSIDDAAAGVVSIDNAENIDDPAVRSESTVEGDTGKADSIAVDDVVHPDHNRTDCFDDTMVSLPTWLPKNYTEFTVEELVKEISPEYLRLNKQIDDLTNELNRKSQIETTDSSFFKLIKEKDDLIDQLRKEGAKLAETELRQSNQIKALRTKVKDLEYEVSELNDSSAQSVENYNELQSLYHNIQGQLAEATNKLKDADKQKESLETLEKNIKEKDDLITILQQSLDNMRTLLEKEKSEFQTEKKALQEATVDQVTTLETKLEQLRIELDSSTQNLDAKSNRDFVDDQQSYEEKQHASFQYNRLKEQLESSKANWDSIEYALNTKIVNLENRFESTMKEKNDIEEKYQTALRSSETLGKQLEKEKENHSKAVLEVKDLERRAETLKSSLQSISDDYNLLKKKYEIQRSQLEQKENELKPHQENSNEKIIDKIPVELTDSLNSMEGNIEDEWTLPQENSMLSLSMSKLGELESDPSLKPIYNESHETICSEESQHFDRKNVDFSIDDIPEEAAALQAIREGESMNSLNNTSIPYRRASVQLSNSNGHISAHLVNKLSTELKRLEGELSASKELYDNLLKEKTKANDEILRLLEENDKFNEVNKQKDDLLKRVEQMQSKLETSLQLLGEKTEQVEELENDVSDLKEMMHQQVQQMVEMQGKMR zds1_yeast Protein ZDS1 ZDS1 CES1 CKM1 HST1 NRC1 OSS1 STM2 YMR273C YM8156.15C protein protein yeast Saccharomyces cerevisiae MSNRDNESMLRTTSSDKAIASQRDKRKSEVLIAAQSLDNEIRSVKNLKRLSIGSMDLLIDPELDIKFGGESSGRRSWSGTTSSSASMPSDTTTVNNTRYSDPTPLENLHGRGNSGIESSNKTKQGNYLGIKKGVHSPSRKLNANVLKKNLLWVPANQHPNVKPDNFLELVQDTLQNIQLSDNGEDNDGNSNENNDIEDNGEDKESQSYENKENNTINLNRGLSRHGNASLIRRPSTLRRSYTEFDDNEDDDNKGDSASETVNKVEERISKIKERPVSLRDITEELTKISNSAGLTDNDAITLARTLSMAGSYSDKKDQPQPEGHYDEGDIGFSTSQANTLDDGEFASNMPINNTMTWPERSSLRRSRFNTYRIRSQEQEKEVEQSVDEMKNDDEERLKLTKNTIKVEIDPHKSPFRQQDEDSENMSSPGSIGDFQDIYNHYRQSSGEWEQEMGIEKEAEEVPVKVRNDTVEQDLELREGTTDMVKPSATDDNKETKRHRRRNGWTWLNNKMSREDDNEENQGDDENEENVDSQRMELDNSKKHYISLFNGGEKTEVSNKEEMNNSSTSTATSQTRQKIEKTFANLFRRKPHHKHDASSSPSSSPSSSPSIPNNDAVHVRVRKSKKLGNKSGREPVEPIVLRNRPRPHRHHHSRHGSQKISVKTLKDSQPQQQIPLQPQLEGAIEIEKKEESDSESLPQLQPAVSVSSTKSNSRDREEEEAKKKNKKRSNTTEISNQQHSKHVQKENTDEQKAQLQAPAQEQVQTSVPVQASAPVQNSAPVQTSAPVEASAQTQAPAAPPLKHTSILPPRKLTFADVKKPDKPNSPVQFTDSAFGFPLPLLTVSTVIMFDHRLPINVERAIYRLSHLKLSNSKRGLREQVLLSNFMYAYLNLVNHTLYMEQVAHDKEQQQQQQQQP bni1_yeast BNI1 protein BNI1 PPF3 SHE5 YNL271C N0646 protein protein yeast Saccharomyces cerevisiae MLKNSGSKHSNSKESHSNSSSGIFQNLKRLANSNATNSNTGSPTYASQQQHSPVGNEVSTSPASSSSFRKLNAPSRSTSTEARPLNKKSTLNTQNLSQYMNGKLSGDVPVSSQHARSHSMQSKYSYSKRNSSQASNKLTRQHTGQSHSASSLLSQGSLTNLSKFTTPDGKIYLEMPSDPYEVEVLFEDIMYKRNIFQSLSEDKQEALMGYSIEKKWLIVKQDLQNELKKMRANTTSSSTASRTSMASDHHPILTANSSLSSPKSVLMTSASSPTSTVYSNSLNHSTTLSSVGTSTSKGKKLVSGSLKKQPSLNNIYRGGAENNTSASTLPGDRTNRPPIHYVQRILADKLTSDEMKDLWVTLRTEQLDWVDAFIDHQGHIAMANVLMNSIYKTAPRENLTKELLEKENSFFKCFRVLSMLSQGLYEFSTHRLMTDTVAEGLFSTKLATRKMATEIFVCMLEKKNKSRFEAVLTSLDKKFRIGQNLHMIQNFKKMPQYFSHLTLESHLKIIQAWLFAVEQTLDGRGKMGSLVGASDEFKNGGGENAILEYCQWTMVFINHLCSCSDNINQRMLLRTKLENCGILRIMNKIKLLDYDKVIDQIELYDNNKLDDFNVKLEANNKAFNVDLHDPLSLLKNLWDICKGTENEKLLVSLVQHLFLSSSKLIEENQNSSKLTKQLKLMDSLVTNVSVASTSDEETNMNMAIQRLYDAMQTDEVARRAILESRALTKKLEEIQAERDSLSEKLSKAEHGLVGQLEDELHERDRILAKNQRVMQQLEAELEELKKKHLLEKHQQEVELRKMLTILNSRPEESFNKNEGTRGMNSSLNSSEKANIQKVLQDGLSRAKKDYKDDSKKFGMTLQPNKRLKMLRMQMENIENEARQLEMTNFAEFEKDRLEPPIHIKKPKVKKMKNKDRKPLVKPQEADVNKLNDLRRALTEIQMESNDISKFNVEERVNELFNEKKSLALKRLKELETKYKGFGIDFNVDEIMDSPKKNTGDVETEEDANYASLDPKTYQKKLDEINRITDQLLDIQTQTEHEIQVEEDGESDLSSSSSDDESEEIYQDASPTQELRSEHSELSSGSGPGSFLDALSQKYGTGQNVTASAAFGENNNGSGIGPLHSKVEKTFMNRLRKSTVSSAPYLEELTQKVNKVEPYEQNEDEGLDKKSLPENSTASAASAFDKAEKDMRQHVENGKQGRVVNHEEDKTADFSAVSKLNNTDGAEDLSTQSSVLSSQPPPPPPPPPPVPAKLFGESLEKEKKSEDDTVKQETTGDSPAPPPPPPPPPPPPMALFGKPKGETPPPPPLPSVLSSSTDGVIPPAPPMMPASQIKSAVTSPLLPQSPSLFEKYPRPHKKLKQLHWEKLDCTDNSIWGTGKAEKFADDLYEKGVLADLEKAFAAREIKSLASKRKEDLQKITFLSRDISQQFGINLHMYSSLSVADLVKKILNCDRDFLQTPSVVEFLSKSEIIEVSVNLARNYAPYSTDWEGVRNLEDAKPPEKDPNDLQRADQIYLQLMVNLESYWGSRMRALTVVTSYEREYNELLAKLRKVDKAVSALQESDNLRNVFNVILAVGNFMNDTSKQAQGFKLSTLQRLTFIKDTTNSMTFLNYVEKIVRLNYPSFNDFLSELEPVLDVVKVSIEQLVNDCKDFSQSIVNVERSVEIGNLSDSSKFHPLDKVLIKTLPVLPEARKKGDLLEDEVKLTIMEFESLMHTYGEDSGDKFAKISFFKKFADFINEYKKAQAQNLAAEEEERLYIKHKKIVEEQQKRAQEKEKQKENSNSPSSEGNEEDEAEDRRAVMDKLLEQLKNAGPAKSDPSSARKRALVRKKYLSEKDNAPQLLNDLDTEEGSILYSPEAMDPTADTVIHAESPTPLATRGVMNTSEDLPSPSKTSALEDQEEISDRARMLLKELRGSDTPVKQNSILDEHLEKLRARKERSIGEASTGNRLSFK spr6_yeast Sporulation-specific protein SPR6 YER115C protein protein yeast Saccharomyces cerevisiae MAVSNIWQSYSSSNLHWIYPLYTNNCSQNVKSSFTAEILLKRRCNDIQDILNDRMIELLLQGACDPNKQQNYLQGMSPSRKKKTHVKKFLKKQKKSRKPITLEHGCLSGPVTLRFGNFAGIRDLRGTRCPLHGIKHGVHPKPGERCACQQATLFPSPLARFSCDQSAVLGCAASSTRVYDSIADEFSSLYF yec3_yeast Hypothetical 78.3 kDa protein in RIP1-GEA2 intergenic region YEL023C protein protein yeast Saccharomyces cerevisiae MDSFNYIHGKYKKNGTGGDRSINPSSHSSSGKNIILCFDGTRENFGPQPFTNILKLYNLLENGDSSEQICYYQPGIGSVGFDAVVDVRRRLTISHLQNLLDSMFAFSLDNHICSAYLFLMKYFEPGDRIYMFGFSRGAFIARVLAGMIERVGLLSKGLEEMVKMAWQIYEKWEYDSQPNELQYTSTLAEEFKKTFSRDYEVKIHFQGLFDSVNSVGILRDRLFPCTQRSNIVEHVRHCVSLDERRGKFKQLCFTPMPYIPKLFSLTYCNHITDQCSPVPTSNALMRDLTPENPLIKYTLKSGAHSISNPSPLIPDNPGRLLSSKSEETTELLLDLNSFLEGNSYARDTECSTRGIEAIFQLQSIQGSGTSSRMTMTPDLIEKWFPGDHSDVGGGWAPDCETEENLSNLTLRWILAEAIKFGVKFKPGAIHDFATKHTSIGSLFADTHDYLSFNSPKKCSLLGVSDNEDGAREDKSGRNERMEDCLKNIKETRLSLKDEKEKVKDAFTLKCGHANKFMRLVWWVLELLPIGIRMENKEGKWQNFHTPNLGRSRYVPEYVSLHWSVYWRIKFDRRYRPDNMPEYVRQLFQDLEGIDLKSNKVSNKYDKQDNSNGSEINGGFFDNEEGQELHMGQKASYFATTYNSRLFDSKYSQLKKKFMDWDSNSWTDIPDDLKIYLQQDESL abp1-cla4 2 4 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation abp1-hua2-1 2 4 unspecified role unspecified role bait bait 10 unspecified role unspecified role prey prey physical interaction physical interaction aggregation act1-srv2 2 13 unspecified role unspecified role prey prey 15 unspecified role unspecified role bait bait physical interaction physical interaction aggregation 0.0 aip1-srv2 2 18 unspecified role unspecified role bait bait 13 unspecified role unspecified role prey prey physical interaction physical interaction aggregation arf2-trp1 2 22 unspecified role unspecified role bait bait 24 unspecified role unspecified role prey prey physical interaction physical interaction aggregation arl3-q6q5f3 2 27 unspecified role unspecified role bait bait 29 unspecified role unspecified role prey prey physical interaction physical interaction aggregation arl3-yer044c 2 27 unspecified role unspecified role bait bait 33 unspecified role unspecified role prey prey physical interaction physical interaction aggregation arl3-ygl183c 2 27 unspecified role unspecified role bait bait 37 unspecified role unspecified role prey prey physical interaction physical interaction aggregation arl3-ygr242w 2 27 unspecified role unspecified role bait bait 41 unspecified role unspecified role prey prey physical interaction physical interaction aggregation asf1-ymr200w 2 44 unspecified role unspecified role bait bait 46 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bdf1-yil002c 2 49 unspecified role unspecified role bait bait 51 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bdf1-ste14 2 49 unspecified role unspecified role bait bait 55 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bdf1-sui1 2 49 unspecified role unspecified role bait bait 59 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bdf1-yor338w 2 49 unspecified role unspecified role bait bait 63 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-cdc24 2 66 unspecified role unspecified role bait bait 68 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-far1 2 66 unspecified role unspecified role bait bait 72 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-sec15 2 66 unspecified role unspecified role bait bait 76 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-swe1 2 66 unspecified role unspecified role bait bait 80 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-yel043w 2 66 unspecified role unspecified role bait bait 84 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem1-ygr134w 2 66 unspecified role unspecified role bait bait 88 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem3-apl6 2 91 unspecified role unspecified role bait bait 93 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem3-cla4 2 91 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-cdc11 2 99 unspecified role unspecified role bait bait 101 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-cdc12 2 99 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-dna43 2 99 unspecified role unspecified role bait bait 109 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-ent4 2 99 unspecified role unspecified role bait bait 113 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-sap1 2 99 unspecified role unspecified role bait bait 117 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-spr28 2 99 unspecified role unspecified role bait bait 121 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-ubc9 2 99 unspecified role unspecified role bait bait 125 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bem4-yer158c 2 99 unspecified role unspecified role bait bait 129 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bob1-zds2 2 132 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-bem1 2 137 unspecified role unspecified role bait bait 66 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-cla4 2 137 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-mrs6 2 137 unspecified role unspecified role bait bait 145 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-msb1 2 137 unspecified role unspecified role bait bait 149 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-yel043w 2 137 unspecified role unspecified role bait bait 84 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-yer124c 2 137 unspecified role unspecified role bait bait 156 unspecified role unspecified role prey prey physical interaction physical interaction aggregation boi2-yir039c 2 137 unspecified role unspecified role bait bait 160 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bub3-bub1-2 2 163 unspecified role unspecified role bait bait 165 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud2-cln2 2 168 unspecified role unspecified role bait bait 170 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud2-yil117c 2 168 unspecified role unspecified role bait bait 174 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud2-ypl095c 2 168 unspecified role unspecified role bait bait 178 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud7-ste20 2 181 unspecified role unspecified role bait bait 183 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud7-vps45 2 181 unspecified role unspecified role bait bait 187 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud7-ykl082c 2 181 unspecified role unspecified role bait bait 191 unspecified role unspecified role prey prey physical interaction physical interaction aggregation bud7-ymr293c 2 181 unspecified role unspecified role bait bait 195 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cap1-cap2 2 198 unspecified role unspecified role bait bait 200 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cap1-gic2 2 198 unspecified role unspecified role bait bait 204 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cap1-bsp1 2 198 unspecified role unspecified role bait bait 208 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc11-cdc12-1 2 101 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc11-spr28-1 2 101 unspecified role unspecified role bait bait 121 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc11-hua2 2 101 unspecified role unspecified role bait bait 10 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 cdc12-cdc11-1 2 105 unspecified role unspecified role bait bait 101 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc12-cdc12 2 105 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc12-ybr130c 2 105 unspecified role unspecified role bait bait 227 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-bem1 2 68 unspecified role unspecified role bait bait 66 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-cct8 2 68 unspecified role unspecified role bait bait 234 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-ent2 2 68 unspecified role unspecified role bait bait 238 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-far1 2 68 unspecified role unspecified role bait bait 72 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-swe1 2 68 unspecified role unspecified role bait bait 80 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-ygr221c 2 68 unspecified role unspecified role bait bait 248 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc24-yil079c 2 68 unspecified role unspecified role bait bait 252 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-cak1 2 255 unspecified role unspecified role bait bait 257 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-cln1 2 255 unspecified role unspecified role bait bait 261 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-cln3 2 255 unspecified role unspecified role bait bait 265 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-yer059w 2 255 unspecified role unspecified role bait bait 269 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-yil050w 2 255 unspecified role unspecified role bait bait 273 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-stb1 2 255 unspecified role unspecified role bait bait 277 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-ykl014c 2 255 unspecified role unspecified role bait bait 281 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-ykr077w 2 255 unspecified role unspecified role bait bait 285 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-ypl014w 2 255 unspecified role unspecified role bait bait 289 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc28-muk1 2 255 unspecified role unspecified role bait bait 293 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc48-rtg3 2 296 unspecified role unspecified role bait bait 298 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc53-cbf3d-1 2 301 unspecified role unspecified role bait bait 303 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 cdc53-erg27-1 2 301 unspecified role unspecified role bait bait 307 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc53-ylr128w-1 2 301 unspecified role unspecified role bait bait 311 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc53-mdm30-1 2 301 unspecified role unspecified role bait bait 315 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc53-ygl249w-1 2 301 unspecified role unspecified role bait bait 319 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cdc53-ydr274c 2 301 unspecified role unspecified role bait bait 323 unspecified role unspecified role prey prey physical interaction physical interaction aggregation chk1-rad3 2 326 unspecified role unspecified role bait bait 328 unspecified role unspecified role prey prey physical interaction physical interaction aggregation chk1-rad9 2 326 unspecified role unspecified role bait bait 332 unspecified role unspecified role prey prey physical interaction physical interaction aggregation chk1-sds3 2 326 unspecified role unspecified role bait bait 336 unspecified role unspecified role prey prey physical interaction physical interaction aggregation chk1-snx4 2 326 unspecified role unspecified role bait bait 340 unspecified role unspecified role prey prey physical interaction physical interaction aggregation chk1-ynl234w 2 326 unspecified role unspecified role bait bait 344 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cka2-cka1 2 347 unspecified role unspecified role bait bait 349 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cka2-ckb2-2 2 347 unspecified role unspecified role bait bait 353 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb1-cka2 2 356 unspecified role unspecified role bait bait 347 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb1-ckb2 2 356 unspecified role unspecified role bait bait 353 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb1-ynl087w 2 356 unspecified role unspecified role bait bait 364 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb1-ynl234w 2 356 unspecified role unspecified role bait bait 344 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb2-cka1 2 353 unspecified role unspecified role bait bait 349 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb2-cka2 2 353 unspecified role unspecified role bait bait 347 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb2-ckb2 2 353 unspecified role unspecified role bait bait 353 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ckb2-nip80 2 353 unspecified role unspecified role bait bait 380 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cla4-cdc12 2 6 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cla4-nup100 2 6 unspecified role unspecified role bait bait 387 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-cdc28 2 390 unspecified role unspecified role bait bait 255 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-pip1 2 390 unspecified role unspecified role bait bait 395 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-fus2 2 390 unspecified role unspecified role bait bait 399 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-kar9 2 390 unspecified role unspecified role bait bait 403 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-kin1 2 390 unspecified role unspecified role bait bait 407 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-mih1 2 390 unspecified role unspecified role bait bait 411 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-nup157 2 390 unspecified role unspecified role bait bait 415 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-stb1 2 390 unspecified role unspecified role bait bait 277 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-fin1 2 390 unspecified role unspecified role bait bait 422 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-yjl048c 2 390 unspecified role unspecified role bait bait 426 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-ykr077w 2 390 unspecified role unspecified role bait bait 285 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-yor066w 2 390 unspecified role unspecified role bait bait 433 unspecified role unspecified role prey prey physical interaction physical interaction aggregation clb5-dse3 2 390 unspecified role unspecified role bait bait 437 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cln3-cdc28 2 265 unspecified role unspecified role bait bait 255 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cln3-nmd5 2 265 unspecified role unspecified role bait bait 444 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cln3-pac1 2 265 unspecified role unspecified role bait bait 448 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cln3-spa2 2 265 unspecified role unspecified role bait bait 452 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cln3-ypl014w 2 265 unspecified role unspecified role bait bait 289 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cmd1-yml094c_a 2 458 unspecified role unspecified role bait bait 460 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cmd1-ymr111c 2 458 unspecified role unspecified role bait bait 464 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cna1-ydl186w 2 467 unspecified role unspecified role bait bait 469 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cna1-yhr182w 2 467 unspecified role unspecified role bait bait 473 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cna1-yor324c 2 467 unspecified role unspecified role bait bait 477 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cns1-stp1-1 2 480 unspecified role unspecified role bait bait 482 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cpr6-vma10 2 485 unspecified role unspecified role bait bait 487 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cpr6-nup120 2 485 unspecified role unspecified role bait bait 491 unspecified role unspecified role prey prey physical interaction physical interaction aggregation crn1-svl3 2 494 unspecified role unspecified role bait bait 496 unspecified role unspecified role prey prey physical interaction physical interaction aggregation crn1-ynl094w 2 494 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl027w-nmd5 2 503 unspecified role unspecified role bait bait 444 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl027w-scs2 2 503 unspecified role unspecified role bait bait 508 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl027w-yhr207c 2 503 unspecified role unspecified role bait bait 512 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl027w-ynr018w 2 503 unspecified role unspecified role bait bait 516 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ctf8-tfg2 2 519 unspecified role unspecified role bait bait 521 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ycr054c-cyk2 2 524 unspecified role unspecified role bait bait 526 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ycr054c-rpn6 2 524 unspecified role unspecified role bait bait 530 unspecified role unspecified role prey prey physical interaction physical interaction aggregation dmc1-rhb1 2 533 unspecified role unspecified role bait bait 535 unspecified role unspecified role prey prey physical interaction physical interaction aggregation dmc1-ynl013c 2 533 unspecified role unspecified role bait bait 539 unspecified role unspecified role prey prey physical interaction physical interaction aggregation dun1-kar9 2 542 unspecified role unspecified role bait bait 403 unspecified role unspecified role prey prey physical interaction physical interaction aggregation dun1-ktr3 2 542 unspecified role unspecified role bait bait 547 unspecified role unspecified role prey prey physical interaction physical interaction aggregation dun1-ydr051c 2 542 unspecified role unspecified role bait bait 551 unspecified role unspecified role prey prey physical interaction physical interaction aggregation elm1-yjr113c 2 554 unspecified role unspecified role bait bait 556 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ybr102c-sec15 2 559 unspecified role unspecified role bait bait 76 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ybr102c-ynr046w 2 559 unspecified role unspecified role bait bait 564 unspecified role unspecified role prey prey physical interaction physical interaction aggregation far3-vps64 2 567 unspecified role unspecified role bait bait 569 unspecified role unspecified role prey prey physical interaction physical interaction aggregation far3-yfr008w-1 2 567 unspecified role unspecified role bait bait 573 unspecified role unspecified role prey prey physical interaction physical interaction aggregation far3-yjl184w 2 567 unspecified role unspecified role bait bait 577 unspecified role unspecified role prey prey physical interaction physical interaction aggregation frq1-pex14 2 580 unspecified role unspecified role bait bait 582 unspecified role unspecified role prey prey physical interaction physical interaction aggregation fus1-yml058w 2 585 unspecified role unspecified role bait bait 587 unspecified role unspecified role prey prey physical interaction physical interaction aggregation fus1-yir014w 2 585 unspecified role unspecified role bait bait 591 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gbp2-mob2 2 594 unspecified role unspecified role bait bait 596 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-bem4 2 599 unspecified role unspecified role bait bait 99 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-bub2 2 599 unspecified role unspecified role bait bait 604 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-cdc12 2 599 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-cla4 2 599 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-ymr238w 2 599 unspecified role unspecified role bait bait 614 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-gic2 2 599 unspecified role unspecified role bait bait 204 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-ste50 2 599 unspecified role unspecified role bait bait 621 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-ycr086w 2 599 unspecified role unspecified role bait bait 625 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-ykl082c 2 599 unspecified role unspecified role bait bait 191 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic1-zds2 2 599 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-bem4 2 204 unspecified role unspecified role bait bait 99 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-bub2 2 204 unspecified role unspecified role bait bait 604 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-cdc12 2 204 unspecified role unspecified role bait bait 105 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-cla4 2 204 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-ymr238w 2 204 unspecified role unspecified role bait bait 614 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-ste50 2 204 unspecified role unspecified role bait bait 621 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-ycr086w 2 204 unspecified role unspecified role bait bait 625 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-ykl082c 2 204 unspecified role unspecified role bait bait 191 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gic2-zds2 2 204 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation glo3-mad2 2 661 unspecified role unspecified role bait bait 663 unspecified role unspecified role prey prey physical interaction physical interaction aggregation glo3-nmd5 2 661 unspecified role unspecified role bait bait 444 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-apg14 2 669 unspecified role unspecified role bait bait 671 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-gac1 2 669 unspecified role unspecified role bait bait 675 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-scp160 2 669 unspecified role unspecified role bait bait 679 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-ybr116c 2 669 unspecified role unspecified role bait bait 683 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-csn9 2 669 unspecified role unspecified role bait bait 687 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-yhl026c 2 669 unspecified role unspecified role bait bait 691 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gpa1-ymr069w 2 669 unspecified role unspecified role bait bait 695 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-fre5 2 698 unspecified role unspecified role bait bait 700 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-gln3 2 698 unspecified role unspecified role bait bait 704 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-ybr138c 2 698 unspecified role unspecified role bait bait 708 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-ybr272c 2 698 unspecified role unspecified role bait bait 712 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-kin3 2 698 unspecified role unspecified role bait bait 716 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-kns1 2 698 unspecified role unspecified role bait bait 720 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-nam8 2 698 unspecified role unspecified role bait bait 724 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-pan1 2 698 unspecified role unspecified role bait bait 728 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-rvs167 2 698 unspecified role unspecified role bait bait 732 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-sap1 2 698 unspecified role unspecified role bait bait 117 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-sla1 2 698 unspecified role unspecified role bait bait 739 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yak1 2 698 unspecified role unspecified role bait bait 743 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yal004w 2 698 unspecified role unspecified role bait bait 747 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-ygr241c 2 698 unspecified role unspecified role bait bait 751 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-acn9 2 698 unspecified role unspecified role bait bait 755 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yer045c 2 698 unspecified role unspecified role bait bait 759 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yfr024c 2 698 unspecified role unspecified role bait bait 763 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yhr177w-1 2 698 unspecified role unspecified role bait bait 767 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yil122w-1 2 698 unspecified role unspecified role bait bait 771 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-hua2 2 698 unspecified role unspecified role bait bait 10 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-bsp1 2 698 unspecified role unspecified role bait bait 208 unspecified role unspecified role prey prey physical interaction physical interaction aggregation gts1-yhr016c 2 698 unspecified role unspecified role bait bait 781 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hdf2-yor302w 2 784 unspecified role unspecified role bait bait 786 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hmt1-rps23a 2 789 unspecified role unspecified role bait bait 791 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hmt1-ymr048w 2 789 unspecified role unspecified role bait bait 795 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hnt1-ptp3 2 798 unspecified role unspecified role bait bait 800 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hrt1-mef2 2 803 unspecified role unspecified role bait bait 805 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hrt1-yak1-1 2 803 unspecified role unspecified role bait bait 743 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hrt1-ygl060w 2 803 unspecified role unspecified role bait bait 812 unspecified role unspecified role prey prey physical interaction physical interaction aggregation hrt1-yil001w-1 2 803 unspecified role unspecified role bait bait 816 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ybr133c-cox4 2 819 unspecified role unspecified role bait bait 821 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ybr133c-ynl094w 2 819 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation q6q5k6-tup1 2 827 unspecified role unspecified role bait bait 829 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl106c-ptp1 2 832 unspecified role unspecified role bait bait 834 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl106c-yer104w 2 832 unspecified role unspecified role bait bait 838 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl106c-svl3 2 832 unspecified role unspecified role bait bait 496 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl106c-vps4 2 832 unspecified role unspecified role bait bait 845 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl106c-mlc2 2 832 unspecified role unspecified role bait bait 849 unspecified role unspecified role prey prey physical interaction physical interaction aggregation inp54-ymr153w 2 852 unspecified role unspecified role bait bait 854 unspecified role unspecified role prey prey physical interaction physical interaction aggregation inp54-pho86 2 852 unspecified role unspecified role bait bait 858 unspecified role unspecified role prey prey physical interaction physical interaction aggregation inp54-spc1 2 852 unspecified role unspecified role bait bait 862 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ipl1-yor084w 2 865 unspecified role unspecified role bait bait 867 unspecified role unspecified role prey prey physical interaction physical interaction aggregation iqg1-ent4 2 870 unspecified role unspecified role bait bait 113 unspecified role unspecified role prey prey physical interaction physical interaction aggregation iqg1-fus1 2 870 unspecified role unspecified role bait bait 585 unspecified role unspecified role prey prey physical interaction physical interaction aggregation iqg1-ylr428c 2 870 unspecified role unspecified role bait bait 878 unspecified role unspecified role prey prey physical interaction physical interaction aggregation iqg1-ynl146w 2 870 unspecified role unspecified role bait bait 882 unspecified role unspecified role prey prey physical interaction physical interaction aggregation kap104-yal032c 2 885 unspecified role unspecified role bait bait 887 unspecified role unspecified role prey prey physical interaction physical interaction aggregation kss1-argr2 2 890 unspecified role unspecified role bait bait 892 unspecified role unspecified role prey prey physical interaction physical interaction aggregation las17-act1 2 895 unspecified role unspecified role bait bait 15 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 las17-rvs167-1 2 895 unspecified role unspecified role bait bait 732 unspecified role unspecified role prey prey physical interaction physical interaction aggregation las17-yhr133c 2 895 unspecified role unspecified role bait bait 903 unspecified role unspecified role prey prey physical interaction physical interaction aggregation las17-yjl151c 2 895 unspecified role unspecified role bait bait 907 unspecified role unspecified role prey prey physical interaction physical interaction aggregation las17-rbd2 2 895 unspecified role unspecified role bait bait 911 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-ymr159c-2 2 914 unspecified role unspecified role bait bait 916 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-dna43 2 914 unspecified role unspecified role bait bait 109 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-rad17 2 914 unspecified role unspecified role bait bait 923 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-tfb1 2 914 unspecified role unspecified role bait bait 927 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-tfb3 2 914 unspecified role unspecified role bait bait 931 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-yjl084c 2 914 unspecified role unspecified role bait bait 935 unspecified role unspecified role prey prey physical interaction physical interaction aggregation mec3-lip2-1 2 914 unspecified role unspecified role bait bait 939 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met18-ynl173c 2 942 unspecified role unspecified role bait bait 944 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met18-ymr112c-1 2 942 unspecified role unspecified role bait bait 948 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met18-not4 2 942 unspecified role unspecified role bait bait 952 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met18-cwc27 2 942 unspecified role unspecified role bait bait 956 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met18-ypl191c 2 942 unspecified role unspecified role bait bait 960 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met30-rpc2 2 963 unspecified role unspecified role bait bait 965 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met30-srl2-1 2 963 unspecified role unspecified role bait bait 969 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met30-ydr095c 2 963 unspecified role unspecified role bait bait 973 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met30-ynl245c 2 963 unspecified role unspecified role bait bait 977 unspecified role unspecified role prey prey physical interaction physical interaction aggregation met30-yor087w 2 963 unspecified role unspecified role bait bait 981 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rpn11-rpn8-1 2 984 unspecified role unspecified role bait bait 986 unspecified role unspecified role prey prey physical interaction physical interaction aggregation msb2-bni4 2 989 unspecified role unspecified role bait bait 991 unspecified role unspecified role prey prey physical interaction physical interaction aggregation msb2-cla4 2 989 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl293w-spa2 2 997 unspecified role unspecified role bait bait 452 unspecified role unspecified role prey prey physical interaction physical interaction aggregation msb4-spa2 2 1001 unspecified role unspecified role bait bait 452 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-tmp1 2 1005 unspecified role unspecified role bait bait 1007 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-ckb2 2 1005 unspecified role unspecified role bait bait 353 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-kin3 2 1005 unspecified role unspecified role bait bait 716 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-mcm6 2 1005 unspecified role unspecified role bait bait 1017 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-yal047c 2 1005 unspecified role unspecified role bait bait 1021 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-ycr086w 2 1005 unspecified role unspecified role bait bait 625 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-air2 2 1005 unspecified role unspecified role bait bait 1028 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nog1-yor324c 2 1005 unspecified role unspecified role bait bait 477 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ade13 2 1034 unspecified role unspecified role bait bait 1036 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ymr159c 2 1034 unspecified role unspecified role bait bait 916 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-arp1 2 1034 unspecified role unspecified role bait bait 1043 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-dnm1 2 1034 unspecified role unspecified role bait bait 1047 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-dys1 2 1034 unspecified role unspecified role bait bait 1051 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-cyk2 2 1034 unspecified role unspecified role bait bait 526 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-mrs6 2 1034 unspecified role unspecified role bait bait 145 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-myo2 2 1034 unspecified role unspecified role bait bait 1061 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-rpb6 2 1034 unspecified role unspecified role bait bait 1065 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-shp1 2 1034 unspecified role unspecified role bait bait 1069 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-snz1 2 1034 unspecified role unspecified role bait bait 1073 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-sor1 2 1034 unspecified role unspecified role bait bait 1077 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-spt23 2 1034 unspecified role unspecified role bait bait 1081 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-tps1 2 1034 unspecified role unspecified role bait bait 1085 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ura10 2 1034 unspecified role unspecified role bait bait 1089 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-wtm2 2 1034 unspecified role unspecified role bait bait 1093 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-yal055w 2 1034 unspecified role unspecified role bait bait 1097 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ycr086w 2 1034 unspecified role unspecified role bait bait 625 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ydr132c 2 1034 unspecified role unspecified role bait bait 1104 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ygl037c 2 1034 unspecified role unspecified role bait bait 1108 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ykl061w 2 1034 unspecified role unspecified role bait bait 1112 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ykr064w 2 1034 unspecified role unspecified role bait bait 1116 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-yol070c 2 1034 unspecified role unspecified role bait bait 1120 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nup1-ypr172w 2 1034 unspecified role unspecified role bait bait 1124 unspecified role unspecified role prey prey physical interaction physical interaction aggregation orc3-sua5 2 1127 unspecified role unspecified role bait bait 1129 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pau7-fat2 2 1132 unspecified role unspecified role bait bait 1134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pau7-ydr455c 2 1132 unspecified role unspecified role bait bait 1138 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pds1-erg25 2 1141 unspecified role unspecified role bait bait 1143 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pet111-bos1 2 1146 unspecified role unspecified role bait bait 1148 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pet111-ltv1 2 1146 unspecified role unspecified role bait bait 1152 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pet111-nam8 2 1146 unspecified role unspecified role bait bait 724 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pet111-ymr233w 2 1146 unspecified role unspecified role bait bait 1159 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pet111-mca1 2 1146 unspecified role unspecified role bait bait 1163 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pfy1-act1 2 1166 unspecified role unspecified role bait bait 15 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 pfy1-bnr1 2 1166 unspecified role unspecified role bait bait 1171 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pfy1-srv2 2 1166 unspecified role unspecified role bait bait 13 unspecified role unspecified role prey prey physical interaction physical interaction aggregation plb1-ppt1 2 1177 unspecified role unspecified role bait bait 1179 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pph21-rpb3 2 1182 unspecified role unspecified role bait bait 1184 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ppt1-yer045c 2 1179 unspecified role unspecified role bait bait 759 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ppt1-ynl011c 2 1179 unspecified role unspecified role bait bait 1191 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ccl1 2 1194 unspecified role unspecified role bait bait 1196 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-dib1 2 1194 unspecified role unspecified role bait bait 1200 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-dis3 2 1194 unspecified role unspecified role bait bait 1204 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-iqg1 2 1194 unspecified role unspecified role bait bait 870 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-met12 2 1194 unspecified role unspecified role bait bait 1211 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-nrk1 2 1194 unspecified role unspecified role bait bait 1215 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ump1 2 1194 unspecified role unspecified role bait bait 1219 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ybl004w 2 1194 unspecified role unspecified role bait bait 1223 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ygr173w 2 1194 unspecified role unspecified role bait bait 1227 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-yhr194w 2 1194 unspecified role unspecified role bait bait 1231 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-yjr070c 2 1194 unspecified role unspecified role bait bait 1235 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ykl075c 2 1194 unspecified role unspecified role bait bait 1239 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ylr118c 2 1194 unspecified role unspecified role bait bait 1243 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ylr462w 2 1194 unspecified role unspecified role bait bait 1247 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-mor1 2 1194 unspecified role unspecified role bait bait 1251 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ypl067c 2 1194 unspecified role unspecified role bait bait 1255 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-ypr177c 2 1194 unspecified role unspecified role bait bait 1259 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp16-zms1 2 1194 unspecified role unspecified role bait bait 1263 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp42-fob1 2 1266 unspecified role unspecified role bait bait 1268 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp42-mns1 2 1266 unspecified role unspecified role bait bait 1272 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp42-pex19 2 1266 unspecified role unspecified role bait bait 1276 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prp42-ynl094w 2 1266 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pup1-pup3-1 2 1282 unspecified role unspecified role bait bait 1284 unspecified role unspecified role prey prey physical interaction physical interaction aggregation pup1-ubp5 2 1282 unspecified role unspecified role bait bait 1288 unspecified role unspecified role prey prey physical interaction physical interaction aggregation uap1-ydr288w 2 1291 unspecified role unspecified role bait bait 1293 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-cpr6 2 1296 unspecified role unspecified role bait bait 485 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-hsc82 2 1296 unspecified role unspecified role bait bait 1301 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-ssk2 2 1296 unspecified role unspecified role bait bait 1305 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-sti1 2 1296 unspecified role unspecified role bait bait 1309 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-tup1 2 1296 unspecified role unspecified role bait bait 829 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-ydr288w 2 1296 unspecified role unspecified role bait bait 1293 unspecified role unspecified role prey prey physical interaction physical interaction aggregation qri2-imd2 2 1296 unspecified role unspecified role bait bait 1319 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-cca1 2 1322 unspecified role unspecified role bait bait 1324 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-guf1 2 1322 unspecified role unspecified role bait bait 1328 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-hrd3 2 1322 unspecified role unspecified role bait bait 1332 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-lcb4 2 1322 unspecified role unspecified role bait bait 1336 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-orc1 2 1322 unspecified role unspecified role bait bait 1340 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-sfh1 2 1322 unspecified role unspecified role bait bait 1344 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-ydr334w 2 1322 unspecified role unspecified role bait bait 1348 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-ybl089w 2 1322 unspecified role unspecified role bait bait 1352 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-swa2 2 1322 unspecified role unspecified role bait bait 1356 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-yer066w 2 1322 unspecified role unspecified role bait bait 1360 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-ygl050w 2 1322 unspecified role unspecified role bait bait 1364 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-yhr112c 2 1322 unspecified role unspecified role bait bait 1368 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-ykl179c 2 1322 unspecified role unspecified role bait bait 1372 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad1-yor051c 2 1322 unspecified role unspecified role bait bait 1376 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad17-ddc1 2 923 unspecified role unspecified role bait bait 1380 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad17-mec3-1 2 923 unspecified role unspecified role bait bait 914 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad17-ynl094w 2 923 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad17-ynr063w 2 923 unspecified role unspecified role bait bait 1390 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad23-ubi1 2 1393 unspecified role unspecified role bait bait 1395 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 spk1-cbf1 2 1398 unspecified role unspecified role bait bait 1400 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spk1-fob1 2 1398 unspecified role unspecified role bait bait 1268 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spk1-spt21 2 1398 unspecified role unspecified role bait bait 1407 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spk1-ynl201c 2 1398 unspecified role unspecified role bait bait 1411 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ubc2-emp24 2 1414 unspecified role unspecified role bait bait 1416 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ubc2-ykl153w 2 1414 unspecified role unspecified role bait bait 1420 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad9-chk1 2 332 unspecified role unspecified role bait bait 326 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad9-spk1 2 332 unspecified role unspecified role bait bait 1398 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rad9-yhr031c 2 332 unspecified role unspecified role bait bait 1430 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ras2-rtg3 2 1433 unspecified role unspecified role bait bait 298 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ras2-sps18 2 1433 unspecified role unspecified role bait bait 1438 unspecified role unspecified role prey prey physical interaction physical interaction aggregation reg2-pop2 2 1441 unspecified role unspecified role bait bait 1443 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rga1-cla4 2 1446 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rga1-gic2 2 1446 unspecified role unspecified role bait bait 204 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rga1-rho1 2 1446 unspecified role unspecified role bait bait 1454 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-bpt1 2 1457 unspecified role unspecified role bait bait 1459 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-imp2 2 1457 unspecified role unspecified role bait bait 1463 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-kes1 2 1457 unspecified role unspecified role bait bait 1467 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-yjl186w 2 1457 unspecified role unspecified role bait bait 1471 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-mrps5 2 1457 unspecified role unspecified role bait bait 1475 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-yel026w 2 1457 unspecified role unspecified role bait bait 1479 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-sph1 2 1457 unspecified role unspecified role bait bait 1483 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-ycr076c 2 1457 unspecified role unspecified role bait bait 1487 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-eaf3 2 1457 unspecified role unspecified role bait bait 1491 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-ypr077c 2 1457 unspecified role unspecified role bait bait 1495 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-mrl1 2 1457 unspecified role unspecified role bait bait 1499 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rgt2-yir039c 2 1457 unspecified role unspecified role bait bait 160 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ynl180c-yll033w 2 1505 unspecified role unspecified role bait bait 1507 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rps28a-rps28a 2 1510 unspecified role unspecified role bait bait 1510 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rps28a-yal018c 2 1510 unspecified role unspecified role bait bait 1515 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rps28a-ykl176c 2 1510 unspecified role unspecified role bait bait 1519 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rrn10-apl2 2 1522 unspecified role unspecified role bait bait 1524 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rsr1-bem4 2 1527 unspecified role unspecified role bait bait 99 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yjl047c-pem2 2 1531 unspecified role unspecified role bait bait 1533 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-acf2 2 732 unspecified role unspecified role bait bait 1537 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-act1 2 732 unspecified role unspecified role bait bait 15 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 rvs167-rvs161-2 2 732 unspecified role unspecified role bait bait 1544 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-rvs167 2 732 unspecified role unspecified role bait bait 732 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-ybr108w 2 732 unspecified role unspecified role bait bait 1551 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-ygr268c 2 732 unspecified role unspecified role bait bait 1555 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-yjr083c 2 732 unspecified role unspecified role bait bait 1559 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-ymr192w 2 732 unspecified role unspecified role bait bait 1563 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-ynl086w 2 732 unspecified role unspecified role bait bait 1567 unspecified role unspecified role prey prey physical interaction physical interaction aggregation rvs167-ynl094w 2 732 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation prs2-ump1 2 1573 unspecified role unspecified role bait bait 1219 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ast2 2 1577 unspecified role unspecified role bait bait 1579 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-cox17 2 1577 unspecified role unspecified role bait bait 1583 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ybr272c 2 1577 unspecified role unspecified role bait bait 712 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-med7 2 1577 unspecified role unspecified role bait bait 1590 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-pet123 2 1577 unspecified role unspecified role bait bait 1594 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-aac2 2 1577 unspecified role unspecified role bait bait 1598 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-pig1 2 1577 unspecified role unspecified role bait bait 1602 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-sds3 2 1577 unspecified role unspecified role bait bait 336 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-sly41 2 1577 unspecified role unspecified role bait bait 1609 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-snu114 2 1577 unspecified role unspecified role bait bait 1613 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-sps18 2 1577 unspecified role unspecified role bait bait 1438 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ssy1 2 1577 unspecified role unspecified role bait bait 1620 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-clf1 2 1577 unspecified role unspecified role bait bait 1624 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-yal028w 2 1577 unspecified role unspecified role bait bait 1628 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ycr082w 2 1577 unspecified role unspecified role bait bait 1632 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ydl133w 2 1577 unspecified role unspecified role bait bait 1636 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ydl173w 2 1577 unspecified role unspecified role bait bait 1640 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-ykl090w 2 1577 unspecified role unspecified role bait bait 1644 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-rcl1 2 1577 unspecified role unspecified role bait bait 1648 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-yol032w 2 1577 unspecified role unspecified role bait bait 1652 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-yol036w 2 1577 unspecified role unspecified role bait bait 1656 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-dga1 2 1577 unspecified role unspecified role bait bait 1660 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-prm3 2 1577 unspecified role unspecified role bait bait 1664 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sec17-zrt2 2 1577 unspecified role unspecified role bait bait 1668 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ymr216c-mcm6 2 1671 unspecified role unspecified role bait bait 1017 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ymr216c-yhr087w 2 1671 unspecified role unspecified role bait bait 1676 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ymr216c-yil079c 2 1671 unspecified role unspecified role bait bait 252 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ymr216c-mpc54 2 1671 unspecified role unspecified role bait bait 1683 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla1-yjl201w 2 739 unspecified role unspecified role bait bait 1687 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla1-ybr098w 2 739 unspecified role unspecified role bait bait 1691 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla1-yjl151c 2 739 unspecified role unspecified role bait bait 907 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla1-bsp1 2 739 unspecified role unspecified role bait bait 208 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla2-cla4 2 1700 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla2-ynl094w 2 1700 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla2-hua2 2 1700 unspecified role unspecified role bait bait 10 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sla2-yhr016c 2 1700 unspecified role unspecified role bait bait 781 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sly1-blh1 2 1713 unspecified role unspecified role bait bait 1715 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sly1-ufe1 2 1713 unspecified role unspecified role bait bait 1719 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spc97-spc98 2 1722 unspecified role unspecified role bait bait 1724 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spc97-tub4 2 1722 unspecified role unspecified role bait bait 1728 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spc98-tub4 2 1724 unspecified role unspecified role bait bait 1728 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spo1-ddr2 2 1734 unspecified role unspecified role bait bait 1736 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spt21-pet8 2 1407 unspecified role unspecified role bait bait 1740 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spt21-sas5 2 1407 unspecified role unspecified role bait bait 1744 unspecified role unspecified role prey prey physical interaction physical interaction aggregation spt21-spp1 2 1407 unspecified role unspecified role bait bait 1748 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-ent2 2 1751 unspecified role unspecified role bait bait 238 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-kin3 2 1751 unspecified role unspecified role bait bait 716 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-nfs1 2 1751 unspecified role unspecified role bait bait 1759 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-nip80 2 1751 unspecified role unspecified role bait bait 380 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-sfb3 2 1751 unspecified role unspecified role bait bait 1766 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-reg1 2 1751 unspecified role unspecified role bait bait 1770 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-yip1 2 1751 unspecified role unspecified role bait bait 1774 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-ykr030w 2 1751 unspecified role unspecified role bait bait 1778 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-ynl094w 2 1751 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sni2-mca1 2 1751 unspecified role unspecified role bait bait 1163 unspecified role unspecified role prey prey physical interaction physical interaction aggregation srv2-act1 2 13 unspecified role unspecified role bait bait 15 unspecified role unspecified role prey prey physical interaction physical interaction aggregation 0.0 srv2-srv2 2 13 unspecified role unspecified role bait bait 13 unspecified role unspecified role prey prey physical interaction physical interaction aggregation srv2-yhr070w 2 13 unspecified role unspecified role bait bait 1794 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sso2-apg7 2 1797 unspecified role unspecified role bait bait 1799 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-fip1 2 621 unspecified role unspecified role bait bait 1803 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-gln3 2 621 unspecified role unspecified role bait bait 704 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-hpa2 2 621 unspecified role unspecified role bait bait 1810 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-nab4 2 621 unspecified role unspecified role bait bait 1814 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ifh1 2 621 unspecified role unspecified role bait bait 1818 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-mak3 2 621 unspecified role unspecified role bait bait 1822 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-mus81 2 621 unspecified role unspecified role bait bait 1826 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ntg2 2 621 unspecified role unspecified role bait bait 1830 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-pep12 2 621 unspecified role unspecified role bait bait 1834 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-rrn9 2 621 unspecified role unspecified role bait bait 1838 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-sap1 2 621 unspecified role unspecified role bait bait 117 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-sec15 2 621 unspecified role unspecified role bait bait 76 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-smx3 2 621 unspecified role unspecified role bait bait 1848 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-yal047c 2 621 unspecified role unspecified role bait bait 1021 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-srb7 2 621 unspecified role unspecified role bait bait 1855 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-syf1 2 621 unspecified role unspecified role bait bait 1859 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-vma8 2 621 unspecified role unspecified role bait bait 1863 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-vph1 2 621 unspecified role unspecified role bait bait 1867 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-apg6 2 621 unspecified role unspecified role bait bait 1871 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ycr082w 2 621 unspecified role unspecified role bait bait 1632 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ydl016c 2 621 unspecified role unspecified role bait bait 1878 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ady3 2 621 unspecified role unspecified role bait bait 1882 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ykl061w 2 621 unspecified role unspecified role bait bait 1112 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ykr020w 2 621 unspecified role unspecified role bait bait 1889 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-yll049w 2 621 unspecified role unspecified role bait bait 1893 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ste50-ynl086w 2 621 unspecified role unspecified role bait bait 1567 unspecified role unspecified role prey prey physical interaction physical interaction aggregation sui1-ycr079w 2 59 unspecified role unspecified role bait bait 1900 unspecified role unspecified role prey prey physical interaction physical interaction aggregation swe1-ynl094w 2 80 unspecified role unspecified role bait bait 500 unspecified role unspecified role prey prey physical interaction physical interaction aggregation swi5-mei5 2 1906 unspecified role unspecified role bait bait 1908 unspecified role unspecified role prey prey physical interaction physical interaction aggregation swi5-ycr087w 2 1906 unspecified role unspecified role bait bait 1912 unspecified role unspecified role prey prey physical interaction physical interaction aggregation cct1-yor324c 2 1915 unspecified role unspecified role bait bait 477 unspecified role unspecified role prey prey physical interaction physical interaction aggregation tem1-ymr159c 2 1919 unspecified role unspecified role bait bait 916 unspecified role unspecified role prey prey physical interaction physical interaction aggregation tem1-blh1 2 1919 unspecified role unspecified role bait bait 1715 unspecified role unspecified role prey prey physical interaction physical interaction aggregation tem1-nif3-1 2 1919 unspecified role unspecified role bait bait 1927 unspecified role unspecified role prey prey physical interaction physical interaction aggregation top3-dun1 2 1930 unspecified role unspecified role bait bait 542 unspecified role unspecified role prey prey physical interaction physical interaction aggregation tup1-rpl1a 2 829 unspecified role unspecified role bait bait 1935 unspecified role unspecified role prey prey physical interaction physical interaction aggregation twf1-yil080w 2 1938 unspecified role unspecified role bait bait 1940 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ubc12-sip1 2 1943 unspecified role unspecified role bait bait 1945 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ubc6-arp1 2 1948 unspecified role unspecified role bait bait 1043 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ubc9-ubc9-1 2 125 unspecified role unspecified role bait bait 125 unspecified role unspecified role prey prey physical interaction physical interaction aggregation upf3-nmd2 2 1955 unspecified role unspecified role bait bait 1957 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yhr149c-cla4 2 1960 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yhr149c-zds2 2 1960 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nas2-yhr185c-2 2 1967 unspecified role unspecified role bait bait 1969 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nas2-rpn4 2 1967 unspecified role unspecified role bait bait 1973 unspecified role unspecified role prey prey physical interaction physical interaction aggregation nas2-rsd1 2 1967 unspecified role unspecified role bait bait 1977 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ykr077w-ynl087w 2 285 unspecified role unspecified role bait bait 364 unspecified role unspecified role prey prey physical interaction physical interaction aggregation apg17-ykr083c-1 2 1983 unspecified role unspecified role bait bait 1985 unspecified role unspecified role prey prey physical interaction physical interaction aggregation src1-dsk2 2 1988 unspecified role unspecified role bait bait 1990 unspecified role unspecified role prey prey physical interaction physical interaction aggregation src1-sld5-1 2 1988 unspecified role unspecified role bait bait 1994 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yor066w-ylr297w 2 433 unspecified role unspecified role bait bait 1998 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yor391c-ynl100w 2 2001 unspecified role unspecified role bait bait 2003 unspecified role unspecified role prey prey physical interaction physical interaction aggregation yor391c-ypl280w 2 2001 unspecified role unspecified role bait bait 2007 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt31-mrs6 2 2010 unspecified role unspecified role bait bait 145 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt31-rpc34 2 2010 unspecified role unspecified role bait bait 2015 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt31-yip3 2 2010 unspecified role unspecified role bait bait 2019 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt31-ynl234w 2 2010 unspecified role unspecified role bait bait 344 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt31-hut1 2 2010 unspecified role unspecified role bait bait 2026 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt53-ymr325w 2 2029 unspecified role unspecified role bait bait 2031 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt6-yjr134c 2 2034 unspecified role unspecified role bait bait 2036 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt6-ydl173w 2 2034 unspecified role unspecified role bait bait 1640 unspecified role unspecified role prey prey physical interaction physical interaction aggregation ypt6-prm3 2 2034 unspecified role unspecified role bait bait 1664 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds1-zds2 2 2045 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-bni1 2 134 unspecified role unspecified role bait bait 2050 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-cdc11 2 134 unspecified role unspecified role bait bait 101 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-cla4 2 134 unspecified role unspecified role bait bait 6 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-spr6 2 134 unspecified role unspecified role bait bait 2060 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-yal004w 2 134 unspecified role unspecified role bait bait 747 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-ycr086w 2 134 unspecified role unspecified role bait bait 625 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-yel023c 2 134 unspecified role unspecified role bait bait 2070 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-ykl082c 2 134 unspecified role unspecified role bait bait 191 unspecified role unspecified role prey prey physical interaction physical interaction aggregation zds2-zds2 2 134 unspecified role unspecified role bait bait 134 unspecified role unspecified role prey prey physical interaction physical interaction aggregation XML/inst/examples/xpath.xml0000644000176000001440000000021211741563530015403 0ustar ripleyusers Some text Other text More text XML/inst/examples/xpath.R0000644000176000001440000000132011741563530015005 0ustar ripleyusersxpathExprCollector = function(targetAttributes = c("test", "select")) { # Collect a list of attributes for each element. tags = list() # frequency table for the element names counts = integer() start = function(name, attrs, ...) { attrs = attrs[ names(attrs) %in% targetAttributes ] if(length(attrs) == 0) return(TRUE) tags[names(attrs)] <<- lapply(names(attrs), function(id) c(tags[[id]] , attrs[id])) } list(.startElement = start, .getEntity = function(x, ...) "xxx", .getParameterEntity = function(x, ...) "xxx", result = function() lapply(tags, function(x) sort(table(x), decreasing = TRUE))) } XML/inst/examples/xmlTree.R0000644000176000001440000000034211741563530015304 0ustar ripleyuserstt = xmlTree("doc") # Shows that we can create the children within the call to create # a parent. tt$addTag("a", tt$addTag("b", tt$addTag("c")), tt$addTag("d", tt$addTag("e"))) XML/inst/examples/xmlTags.xml0000644000176000001440000002011411741563530015701 0ustar ripleyusers
    Introduction This is a short document that does a quick empirical study of the use of Docbook and XSL elements and attribute in some actual uses of these. The idea is to give a sense of what are the most common elements in use and help people who are new to those technologies get a sense of what to focus on. This also illustrates how we can use the XML package in R to extract this information relatively easily and efficiently using the SAX parser.
    Subversion Book This part finds the Docbook elements used in the collection of chapters of the SVN book. The SVN book can be downloaded from Unzip this and find the XML files in tags/en-1.4-final/src/en/book. (Before being able to process the files, you will have to make them readable as for some reason the permissions on all the files are all removed.)
    We can look at one of the documents from the KDE documentation project and get the same information: xmlElementSummary("http://l10n.kde.org/docs/translation-howto//translation-howto.docbook") If we check out the documentation from the KDE SVN repository, we can examine those also. kde.files = list.files("~/Downloads/KDE-doc", "\\.docbook$", recursive = TRUE, full.names = TRUE) i = grep("/entities/|dolphin|man-template", kde.files) if(length(i)) kde.files = kde.files[ - i ] kde = xmlElementSummary(kde.files)
    bazaar = xmlElementSummary("http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.xml")
    The book Dive into Python by Mark Pilgrim was written in Docbook and the Docbook files are available for download. You have to slightly change the file diveintopython.xml to define entities before you parse the file. Also, the author uses external entities to perform the includes and many of the XML files have more than one top-level node. This means that our SAX-based XML parser raises errors and so we cannot use the the xmlEventParse function that is key to our xmlElementSummary function. Instead, we what we do is to read the entire document into memory as a regular DOM. Then, we use a very general XPath query to get all nodes. And then we extract the names and attributes as we want. The code to do this is relatively straightforward: dive = xmlInternalTreeParse("~/Downloads/diveintopython-5.4/xml/diveintopython-orig.xml", replaceEntities = TRUE) nodes = getNodeSet(dive, "//*") nodeNames = sapply(nodes, xmlName, full = TRUE) nodeCounts = sort(table(nodeNames), decreasing = TRUE) attributes = tapply(nodes, nodeNames, function(nodes) table(unlist(lapply(nodes, function(node) { attrs = xmlAttrs(node) if(length(attrs)) names(attrs) else character() })))) list(nodeCounts = nodeCounts, attributes = attributes) Note that this code is also quite general and can be used on an single XML document. It does not use handlers and cannot be run across multiple separate XML documents with the built-in effect of cumulating the results. But it can be run separately on each file and the results aggregated quite easily.
    XSL and Docbook In this part, we look at the XSL files in the IDynDocs package. These include our own XSL files for generating HTML, FO, LaTeX from our extended Docbook elements, as well as the docbook source for HTML, XHTML and FO. Instead of using xmlElementSummary, we use our own instance of the SAX handlers to collect the results. This could also be done by finding all the files first and then using xmlElementSummary. Or we could also perform the summaries on each directory to see how the usage change.
    XPath What do we need to know about XPath? There are lots of good features of XPath, but the commonly used ones can be found perhaps by looking at the use in XSL documents. So again, we will look at those XSL files in XDynDocs, including the Docbook XSL files it contains. We define a function to collect all the XPath attributes we can easily identify within the nodes in the XSL document. These are mainly the test and select attributes. So all we need is a handler for the start of a generic element in the SAX parser and extract the test and select attributes. We may end up with non-XPath attributes, but for the moment, this is fine. Now we can use this function and extract the XPath expressions from the XSL files in XDynDocs. dir = "~/Classes/StatComputing/XDynDocs/inst/XSL" all.files = lapply(c(dir, paste(dir, c("OmegahatXSL", "docbook-xsl-1.73.2/html", "docbook-xsl-1.73.2/fo"), sep = .Platform$file.sep)), list.files, pattern = "\\.xsl$", full.names = TRUE) h = xpathExprCollector() invisible(lapply(unlist(all.files), xmlEventParse, h)) summary(h$result()) Now we have all the expressions, but there are too many of them. Somewhat remarkably, we can take a look at the top 40 in each and see the common patterns: the values of variables (e.g. $content) and XPath paths (e.g. info/subtitle) in select, and function calls and variable references in test. lapply(h$result(), "[", 1:40) To undertand these further, we have to parse the expressions and look at the types of expressions rather than the actual values. But this is more complex. We can find all XPath expressions that count for more than 1%, say, of all the XPath expressions in that group as simply as top = lapply(h$result(), function(x) x[x/sum(x) >= .01])
    XML/inst/examples/xmlSource.R0000644000176000001440000001502211741563530015646 0ustar ripleyusersxmlSource <- # # This is equivalent to source() but works # on an XML file with special tags. # See xml2tex.Sxml or promptXML.Sxml # for an early example. # function(file, env = globalenv(), include=character(0), validate = F, ..., trim=F) { # This handler will convert a XMLNode tag .... # into one with the additional class XMLFragmentNode, and # a reference to a fragment # to an object of class XMLFragmentRefNode h <- list(fragment=function(x, attr){ class(x) <- c("XMLFragmentNode", class(x)) x }, fragmentRef=function(x, attr){ class(x) <- c("XMLFragmentRefNode", class(x)) x }, defRef=function(x, attr){ class(x) <- c("XMLFunctionDefNode", class(x)) x }, Sexpression=function(x, attr){ class(x) <- c("XMLSExpressionNode", class(x)) x }) # Parse the tree, using the handlers above. doc <- xmlTreeParse(file, handlers=h, validate=as.logical(validate), ..., trim=trim, asTree=T) r <- xmlRoot(doc) # Get all the top-level fragment elements from the document # and massage them into a usable form. This means forming # a named list whose elements are the fragment contents/definitions # and whose names are the ids of the fragments. fragments <- xmlChildren(r)[names(r) == "fragment"] tmp <- sapply(fragments, function(x) xmlAttrs(x)["id"]) # fragments <- sapply(fragments, function(x) xmlValue(x[[1]])) names(fragments) <- tmp # Process all the children in the document. An apply..? # Perhaps a closure so that we can append the # functions that are defined to a list.... funs <- character(0) for(i in xmlChildren(r)[names(r) != "fragment"]) { # if the node is a processing instruction for R (), # evaluate its contents as an R expression. if(inherits(i, "XMLProcessingInstruction") & xmlName(i) == "R") eval(parse(text=xmlValue(i))) else if(inherits(i, "XMLTextNode")) { # Otherwise, if it is a text node, just print it. print(xmlValue(i)); cat("\n") } else if(inherits(i, "XMLSExpressionNode")) { xmlExpressionEval(i, r, env, fragments) } else { # Now, let's handle the other tags via switch statment. # Function definitions are handed to xmlFunctionDef() along # with the document itself, the list of fragments in which # chunk/fragment references can be resolved and finally the # environment in which to assign the function definition. obj <- switch(xmlName(i), "function" = xmlFunctionDef(i, r, env, fragments, include)) funs <- c(funs, obj) } } invisible(list(doc=r, defs = funs, file=file)) } xmlExpressionEval <- # # Need to resolve the references here. # function(node, root, env = globalenv(), fragments = NULL) { txt <- paste(unlist(xmlSApply(node, xmlValue)), collapse=" ") eval(parse(text=txt), envir=env) } xmlFunctionDef <- # # This takes a function definition in XML form and # resolves any fragment references and so generates # a complete textual version of the function body and # argument list. # It grabs the name from the tag assumed to be # at the top of the function definition. # # # Needs to handle cross-references. # That's why we need the entire document here. # function(node, root, env = globalenv(), fragments = NULL, includes=character(0)) { # First determine if this can run or not. isR <- length(xmlAttrs(node)) == 0 | is.na(match("lang", names(xmlAttrs(node)))) if(!isR) { lang <- xmlAttrs(node)["lang"] isR <- lang== "S" | lang=="R" } if(!isR){ warning(paste("Skipping function", xmlAttrs(node)["lang"])) return(F) } # What about multiple chunks within the definition def <- node[["def"]] if(is.null(def)) return(NULL) def <- xmlFunctionDef.XMLFunctionDefNode(def, root, env, fragments) if(!is.na(match("sname", names(node)))) { name <- xmlValue(node[["sname"]][[1]]) if(length(includes)) { if(is.na(match(name, includes))) warning(paste("Skipping function", name)) } # cat("Defining function",name,"\n") assign(name, def, envir=env) return(name) } else { return(def) } } xmlFunctionDef.XMLFunctionDefNode <- # # This attempts to convert the contents of a ... # element into a function definition. It does so by converting each # element within this to text, resolving any fragment references # and converting them to text recursively. # function(node, root, env = globalenv(), fragments = NULL) { txt <- character(0) for(i in xmlChildren(node)) { if(inherits(i, "XMLFragmentRefNode")) txt <- c(txt, xmlResolveFragmentRefs(i, root, fragments)) else { txt <- c(txt, " ", xmlValue(i)) } } #cat("Parsing.... ",paste(txt, collapse=""), "\n") obj <- eval(parse(text=paste(txt, collapse="")), envir = env) invisible(obj) } xmlResolveFragmentRefs <- function(body, root, fragments = NULL) { UseMethod("xmlResolveFragmentRefs") } xmlResolveFragmentRefs.XMLFragmentRefNode <- function(body, root, fragments = NULL) { id <- xmlAttrs(body)["id"] v <- xmlValue(fragments[[id]][[1]]) return(v) } xmlResolveFragmentRefs.XMLNode <- function(body, root, fragments = NULL) { v <- xmlSApply(body, function(x, fragments) { if(inherits(x, "XMLFragmentRefNode")) { id <- xmlAttrs(x)["id"] # print(class(fragments[[id]]));print(xmlSize(fragments[[id]]));print(fragments[[id]]) v <- xmlSApply(fragments[[id]], function(x, root, fragments) { print(class(x)) if(inherits(x,"XMLFragmentRefNode")) { print(x) xmlResolveFragmentRefs(x, root, fragments) } else if(inherits(x,"XMLNode")) xmlValue(x) else x }, root=root, fragments=fragments) v <- paste(as.character(unlist(v)), collapse=" ") #print(v) } else v <- c("\n",xmlValue(x)) v }, fragments = fragments) paste(as.character(unlist(v)), collapse="") } XML/inst/examples/xml2tex.Sxml0000644000176000001440000000404011741563530016010 0ustar ripleyusers ]> The functions in this file are an initial attempt to define some filters for an XML document to produce &Latex; output by translating the contents of the XML document. Note that using XSL is slightly problematic because the result needs to be a valid XML document, which no &Latex; document ever is. xml2tex function(node, mappings=.XMLTexMappings) { n &sgets; 10 x &sgets; print(x+10) x } cat("Got to here\n") xml2texUnderline function(node, tex) { } xml2texCode &sgets; function(node, tex) { } xxx seq(1,n) + 10 xml2tex.map &sgets; list("i"="textit", "b"="textbf", "sfunction"="SFunction", "item"="item", "label"=c("[", "]"), "cite"=function(x) { paste("\cite{", xmlAttrs(x)["id"], "}", collapse="")}, "bibitem"="", "bibliography"="" ) mapXML2TeX function(node, attr) { name &sgets; xmlName(node) el &sgets; xml2tex.map[[name]] if(!is.null(el)) { if(mode(el) == "character") { } else if(mode(el) == "function") { el(node) } } } XML/inst/examples/writeExamples.S0000644000176000001440000000056311741563530016523 0ustar ripleyusersfoo <- function(x= 10, b="asd") { if(x) 1 else if(T) 2 else 4 } bar <- function(x) { for(i in 1:length(x)) { print(x[[i]]) } return(T) } single <- function(x) T While <- function() { while(f(x)) { print(f(x)) break } repeat { x <- x + 1 break } } Logic <- function() { if(x < 1 && y > 10) { x | y & z } } XML/inst/examples/wordML.R0000644000176000001440000000117611741563530015076 0ustar ripleyuserslibrary(XML) #tt = xmlTree("w:wordDocument", namespaces = c(w = "http://schemas.microsoft.com/office/word/2003/wordml")) tt = xmlTree(namespaces = c(w = "http://schemas.microsoft.com/office/word/2003/wordml")) tt$addPI("mso-application", "progid='Word.Document'") tt$addTag("wordDocument", namespace = "w", close = FALSE) # XXX if we put this first, we don't get the body. Need to then add the body # as a sibling of the PI. v = tt$addTag("w:body", tt$addTag("w:p", tt$addTag("w:r", tt$addTag("w:t", "Hello World!")))) tt$closeTag() cat(saveXML(tt)) XML/inst/examples/valueFilterDataFrameEvent.R0000644000176000001440000000472411741563530020725 0ustar ripleyusers# # A closure for use with xmlEventParse # and for reading a data frame using the DatasetByRecord.dtd # DTD in $OMEGA_HOME/XML/DTDs. # To test # xmlEventParse("mtcars.xml", handler()) # valueDataFrameFilter <- function(accept) { data <- NULL # Private or local variables used to store information across # method calls from the event parser numRecords <- 0 varNames <- NULL meta <- NULL expectingVariableName <- F rowNames <- NULL currentColumn <- 1 currentRowName <- NULL numCols <- 1 # read the attributes from the dataset dataset <- function(x, atts) { numRecords <<- as.integer(atts[["numRecords"]]) # store these so that we can put these as attributes # on data when we create it. meta <<- atts } variables <- function(x, atts) { # From the DTD, we expect a count attribute telling us the number # of variables. # data <<- matrix(0., numRecords, as.integer(atts[["count"]])) data <<- list() numCols <- as.integer(atts[["count"]]) # set the XML attributes from the dataset element as R # attributes of the data. # attributes(data) <<- meta } # when we see the start of a variable tag, then we are expecting # its name next, so handle text accordingly. variable <- function(x,...) { expectingVariableName <<- T } record <- function(x,atts) { currentRowName <<- atts[["id"]] } text <- function(x,...) { if(x == "") return(NULL) if(expectingVariableName) { varNames <<- c(varNames, x) if(length(varNames) >= numCols) { expectingVariableName <<- F #dimnames(data) <<- list(NULL, varNames) } } else { e <- gsub("[ \t]*",",",x) els <- strsplit(e,",")[[1]] names(els) <- varNames if(accept(els)) { data[[length(data)+1]] <<- els rowNames <<- c(rowNames, currentRowName) } } } endElement <- function(x,...) { if(x == "dataset") { data <<- data.frame(matrix(unlist(data),length(data),length(varNames), byrow=T)) names(data) <<- varNames dimnames(data)[[1]] <<- rowNames } else if(x == "record") { currentColumn <<- 1 } } return(list(variable = variable, variables = variables, dataset=dataset, text = text, record= record, endElement = endElement, data = function() {data }, rowNames = function() rowNames )) } XML/inst/examples/trademe_cars.R0000644000176000001440000000520211741563530016315 0ustar ripleyusers# e.g. # getTradeMeCarData("http://www.trademe.co.nz/Trade-Me-Motors/Cars/Subaru/mcat-0001-0268-0332-.htm") getTradeMeCarPage = function(url, base = NULL) { tmp = parseURI(url) if(tmp$server == "") url = paste(base$scheme, "://", base$server, url, sep = "") d = htmlTreeParse(url, useInternal = TRUE) n = getNodeSet(d, "//table[@class='listings']") n = n[[1]] if(xmlName(n[[1]]) == "tbody") { rows = n[[1]] } else rows = n list(doc = d, rows = rows) } if(FALSE) { tbody = getTradeMeCarPage("~/TradeMe.cars.subaru.html")$tbody # the children of tbody are all tr elements table(xmlSApply(tbody, xmlName)) # And the first one has two elements and the remainder are the actual car listings xmlSApply(tbody, xmlSize) } getTradeMeCarData = function(url = "~/TradeMe.cars.subaru.html", data = NULL, numPages = 1) { uri = parseURI(url) doc = getTradeMeCarPage(url) rows = doc$rows if(is.null(data)) { # The first row has an entry of the form 1234 listings, showing 1 to 50" # so we get this number via regular expressions and gsub on the content # of that first cell. num = as.integer(gsub("^([0-9]+) .*", "\\1", xmlValue(rows[[1]][[1]]))) if(is.na(num) || numPages == 1) num = xmlSize(rows) - 1 # type/description, kms, amount, # bids, data = data.frame(description = I(character(num)), kms = integer(num), askingPrice = integer(num), numBid = as.integer(rep(NA, num)), auctionExpiration = I(character(num)), year = integer(num) ) } page = 1 cur = 1 while(page <= numPages) { tbody = rows for(i in 2:xmlSize(tbody)) { r = tbody[[i]] data[cur, 1] = xmlValue(r[[2]]) data[cur, "year"] = as.integer(gsub(".* ([0-9]{4})", "\\1", strsplit(data[cur, 1], "\302\240")[[1]][1])) data[cur, 2] = as.integer(gsub(",", "", xmlValue(r[[3]][[1]]))) data[cur, 3] = as.integer(gsub("[,$]", "", xmlValue(r[[4]]))) bids = xmlValue(r[[6]]) if(bids != "-") data[cur, 4] = as.integer(bids) data[cur, 5] = xmlValue(r[[7]]) cur = cur + 1 } nxt = getNodeSet(doc$doc, "//table//a/font/b[text() = 'Next']") if(length(nxt) == 0) { browser() print("no next page") break } # Get the element for the Next a = xmlParent(xmlParent(nxt[[1]])) doc = getTradeMeCarPage(xmlGetAttr(a, "href"), base = uri) tbody = doc$tbody } data[1:(cur-1), ] # invisible(data) } XML/inst/examples/tags.Sxml0000644000176000001440000000246511741563530015354 0ustar ripleyusers ]> This file defines some S functions for computing information about an XML tree. We start by defining a recursive function that computes the list of unique tags within a document. This is useful for defining translations from these tags to another format, e.g. &TeX;. This identifies the names of the tags that one has to map to the TeX macros or environments. xmlTags function(node, exclude=c("XMLEntityRef")) { if(inherits(node, exclude)) { return(character(0)) } if(xmlSize(node) > 0) { which &sgets; xmlSApply(node, function(x, excludes) !inherits(x, excludes), excludes = exclude) vals &sgets; names(node)[which] vals &sgets; unique(c(vals, unlist(sapply(xmlChildren(node)[which], xmlTags, exclude )))) } else vals &sgets; character(0) vals } XML/inst/examples/svg.R0000644000176000001440000000746311741563530014476 0ustar ripleyusers# # An example of processing an SVG document # See the example in the parallel directory data/svg.xml. # # # xmlplot <- xmlTreeParse("data/svg.xml") # x11() # svgRender(xmlplot) # # See also: mathml.R # # # need support for the general SVG tags and attributes # desc # path # image # viewbox # stroke # transform matrix # svgRender <- function(doc) { UseMethod("svgRender",doc) } svgRender.default <- function(doc) { svgRender(doc$doc$children$svg) } svgRender.XMLNode <- # # This processes an XML node assumed to come from an # SVG document and either # a) renders the corresponding element # and potentially recursively operates on its children, or # b) stores the settings specified in a group tag ( or ) # for use in the processing of the sub-nodes. # # This has basic support for circles, rectangles, polygons, # text # function(top, settings = NULL) { if(is.null(settings)) { settings <- SVGSettings() } if(top$name == "svg") { dims <- top$attributes frame() par(usr=c(0, as.integer(dims[["width"]]) + 1, 0, as.integer(dims[["height"]])+1)) } else if(top$name == "g") { if(!is.na(match("style", names(top$attributes)))) { settings$fill <- properties(top$attributes[["style"]])[["fill"]] } } for(i in top$children) { if(class(i) == "XMLComment") next ats <- i$attributes if(i$name == "rect") { if(!is.na(match("style", names(ats)))) { col <- properties(ats[["style"]])[["fill"]] } else { col <- settings$fill } rect(as.integer(ats[["x"]]), as.integer(ats[["y"]]), as.integer(ats[["x"]]) + as.integer(ats[["width"]]), as.integer(ats[["y"]]) + as.integer(ats[["width"]]), col = col) } else if(i$name == "text") { # need to gather up all the children in case the text # is split into different components. val <- i$children[[1]]$value text(as.integer(ats[["x"]]), as.integer(ats[["y"]]), val, adj=1.0) } else if(i$name == "polygon") { # read the points attribute as a integer vector data <- scan.string(ats[["points"]]) idx <- seq(1,length(data), by=2) x <- data[idx] y <- data[idx+1] if(!is.na(match("style", names(ats)))) { col <- properties(ats[["style"]])[["fill"]] } else { col <- settings$fill } polygon(x,y, col) } else if(i$name == "ellipse") { if(!is.na(match("style", names(ats)))) { col <- properties(ats[["style"]])[["fill"]] } else { col <- settings$fill } r <- min(as.integer(ats[["rx"]]), as.integer(ats[["ry"]])) symbols(as.integer(ats[["cx"]]), as.integer(ats[["cy"]]), circles=as.integer(r),inches=F, add=T) } else if(i$name == "g") { svgRender(i, settings) } } invisible(return(T)) } SVGSettings <- # # This class of object is used for storing the # "global" or currently active settings for within # an SVG group. This includes things such as color # fill style and color, font, etc. function() { val <- list(fill=NULL, font=NULL, fg=NULL, bg=NULL) class(val) <- "SVGSettings" val } # # The following are very simple (inefficient and potentially inconsistent with R) # ways of manipulating strings. These would be implemented using textConnection # objects in S4. # scan.string <- function(data) { # This could use string split # strsplit(data, rx) cmd <- paste("perl -e '$x = join(\"\n\", split(/ /, $ARGV[0])); printf \"$x\n\";'", paste("'",data,"'", collapse="",sep="")) els <- system(cmd, intern=T) vals <- as.integer(sapply(els, as.integer)) return(vals) } properties <- function(str) { cmd <- paste("perl -e '$x = join(\"\n\", split(/ /, $ARGV[0])); printf \"$x\n\";'", paste("'",str,"'", collapse="",sep="")) els <- system(cmd, intern=T) idx <- seq(1,length(els), by=2) vals <- els[idx+1] names(vals) <- els[idx] return(vals) } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������XML/inst/examples/schemas.xml�����������������������������������������������������������������������0000644�0001760�0000144�00000000332�11741563530�015705� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������XML/inst/examples/schemaEg.xml����������������������������������������������������������������������0000644�0001760�0000144�00000000503�11741563530�015776� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Bog Hopper Wee Beastie Count Zero ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������XML/inst/examples/schema.xsd������������������������������������������������������������������������0000644�0001760�0000144�00000000613�11741563530�015522� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������������������������������������������������������������XML/inst/examples/sbmlSAX.S�������������������������������������������������������������������������0000644�0001760�0000144�00000005640�11741563530�015204� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MathMLOperations = c("power" = "^", "times" = "*", "plus" = "+" ) handlers = function(operations = MathMLOperations) { current = list() state = character() start = function(x, atts, ...) { # Handle the opening tags and set the stack appropriately. if(x == "apply") { # Make a call with a silly name that we will change when we read the next element # giving the operation. current <<- c(call(""), current) state <<- c("call", state) } else if(x == 'ci') { # Expecting the next text contents to be a name of a variable. state <<- c("name", state) current <<- c("", current) } else if(!is.na(idx <- match(x, names(operations)))) { # If we are dealing with a call and the name of this element being opened # matches our operation names, then insert the S name of the corrresponding # function into the previously created call. if(length(state) && state[1] == "call") current[[1]][[1]] <<- as.name(operations[idx]) # make certain that we add something to state stack so that when we close the # tag, we remove it, not the previously active element on the stack. state <<- c("<>", state) } } text = function(x, atts, ...) { if(x == "") return(FALSE) if(length(state) && state[1] == "name") { current[[1]] <<- paste(current[[1]], x, sep = "") } } end = function(x, atts, ...) { # If there is nothing on the stack, then nothing to close. if(length(state)) { if(state[1] == "call" && length(current) > 1) { # If ending an apply (call) and we have 2 or more things # on the stack, then fold this call (current[[1]]) into the argument of the # of the previous call (current[[2]]) at the end. e = current[[1]] f = current[[2]] # Should check f is a call or state[2] == "call" f[[length(f) + 1]] = e current[[2]] = f current <<- current[-1] } else if(state[1] == "name") { # ending a so we have a name, then put this into the # current call. if(length(state) > 1 && state[2] == "call") { # this is very similar to the previous block for call # except we have a as.name(). Could easily consolidate by doing # this coercion first. Left like this for clarity of concept. e = current[[2]] e[[length(e) + 1]] = as.name(current[[1]]) current[[2]] = e # Remove the elements from the top of the stacks. current <<- current[-1] } } state <<- state[-1] } } list(startElement = start, endElement = end, text = text, state = function() state, current = function() current) } ������������������������������������������������������������������������������������������������XML/inst/examples/sbml.xml��������������������������������������������������������������������������0000644�0001760�0000144�00000003164�11741563530�015225� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ aada ATP fada4 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������XML/inst/examples/reorder.xml�����������������������������������������������������������������������0000644�0001760�0000144�00000000612�11741563530�015725� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ doc = xmlInternalTreeParse("examples/reorder.xml") bs = getNodeSet(doc, "//b") length(bs) # [1] 4 xmlName(xmlRoot(doc)[[1]]) # [1] "a" a = xmlRoot(doc)[[1]] addChildren(a, kids = bs) saveXML(doc) addChildren(a, kids = bs, at = 0) XML/inst/examples/redirection.R0000644000176000001440000000202411741563530016172 0ustar ripleyusers# This is an example of downloading data that is accessible via a text file # that is identified via a link in an HTML document that is returned from # a form submission. # The original form is available via the SWISSPROT site which is redirected # to www.expasy.org. # # This example illustrates the use of the FOLLOWLOCATION options in libcurl and hence # RCurl. # # The example was raised by Linda Tran at UC Davis. # Works as of May 12, 2006 # tt = getForm("http://www.expasy.org/cgi-bin/search", db = "sptrde", SEARCH = "fmod_bovin", .opts = list("FOLLOWLOCATION" = TRUE)) # Then, find the link node which has "raw text" # in the text of the link h = function() { link = "" a = function(node, ...) { v = xmlValue(node) if(length(grep("raw text", v))) link <<- xmlGetAttr(node, "href") node } list(a = a, .link = function() link) } a = h() htmlTreeParse(tt, asText = TRUE, handlers = a) a$.link() u = paste("http://www.expasy.org", a$.link(), sep = "") getURL(u) XML/inst/examples/rcode.xsl0000644000176000001440000000000011741563530015354 0ustar ripleyusersXML/inst/examples/rcode.xml0000644000176000001440000000021211741563530015353 0ustar ripleyusers x = 1:10 plot(x) sum(x) 55 XML/inst/examples/promptXML.Sxml0000644000176000001440000001151011741563530016307 0ustar ripleyusers ]> Here we define some prompt.xml this is the name of the file into which the documentation is placed. In the future, this will be a connection object. this is text that is to be placed immediately after the ]]> string emitted as the first part of the text. In the future, we will want to append/insert content into existing documents and so we will have to recognize not to add this PI again, etc. 0) { arg.names <- names(argls) } xml$addTag("sname", name,sep="") for (i in s) { xml$addTag("arg", xml$tagString("argName", arg.names[i]), close=F) if(!is.missing.arg(argls[[i]])) { xml$addTag("defaultValue", deparse(argls[[i]]),sep="") } xml$closeTag("arg") if(i < n) xml$addTag("next") } xml$add("") xml$addTag("arguments", close=F) for(i in arg.names) { xml$addTag("argument", xml$tagString("argDescriptionName", i), "\n", "~~Describe ",i," here~~", "") } xml$add("") xml$addTag("details"," ~~ If necessary, more details than the __description__ above ~~") xml$addTag("value", "~Describe the value returned", " If it is a LIST, use", " \\item{comp1 }{Description of `comp1'}", " \\item{comp2 }{Description of `comp2'}", " ...") xml$addTag("references", ifelse(!is.null(local$references), local$references, "")) xml$addTag("author", ifelse(!is.null(local$author), local$author, "")) xml$addTag("note") xml$addTag("seeAlso", xml$tagString("a", attrs=list("href"="\"\""))) xml$addTag("examples", xml$tagString("example")) xml$addTag("keywords", xml$tagString("keyword")) if(!is.null(footer)) xml$add(footer) val <- xml$value() if(!missing(file)) cat(val, file=file) val } ]]> # Always start with the perverse one! xmlPrompt(xmlPrompt) xmlWriteBuffer Want to check with the DTD whether a tag is legitimate attributes are valid, etc. Add an indentation level. Need to escape characters via entities: %sgets; < => %lt; > => %gt; ]]> etc. " add <- function(..., sep="\n") { buf <<- paste(buf, paste0(...), sep=sep) } tagString <- function(tag, ..., attrs, close=F) { tmp <- "" if(!missing(attrs)) { tmp <- paste(" ", paste(names(attrs), attrs,sep="=", collapse=" "),sep="") } return(paste0("<", tag,tmp, ">",...,"")) } addTag <- function(tag, ..., attrs=NULL, sep="\n", close=T) { tmp <- "" if(!missing(attrs)) { tmp <- paste(" ", paste(names(attrs), attrs,sep="=", collapse=" "),sep="") } add(paste("<",tag, tmp, ">", sep="")) if(length(list(...)) > 0) { add(..., sep=sep) } if(close) { add(paste("", sep=""), sep="") } NULL } closeTag <- function(name) { add("\n", "", sep="") } list( value=function() {buf}, add = add, addTag = addTag, closeTag = closeTag, tagString = tagString ) } ]]> XML/inst/examples/promptXML.R0000644000176000001440000000460211741563530015571 0ustar ripleyusers# Requires xmlOutputBuffer prompt.xml <- function(object, file = NULL, ..., header='\n\n',footer="") { local <- list(...) name <- substitute(object) # Taken from prompt.default is.missing.arg <- function(arg) typeof(arg) == "symbol" && deparse(arg) == "" if (is.language(name) && !is.name(name)) name <- eval(name) name <- as.character(name) fn <- get(name) xml <- xmlOutputBuffer(nameSpace = "shelp") if(!is.null(header)) xml$add(header) xml$addTag("sname",name) xml$addTag("alias",name) xml$addTag("title"," ~~function to do ... ~~ ") xml$addTag("description","~~ A concise (1-5 lines) description of what the function does. ~~") xml$addTag("usage", close=F) # Now handle arguments and generate the call. s <- seq(length = n <- length(argls <- formals(fn))) if (n > 0) { arg.names <- names(argls) } xml$addTag("sname", name,sep="") for (i in s) { xml$addTag("arg", xml$tagString("argName", arg.names[i]), close=F) if(!is.missing.arg(argls[[i]])) { xml$addTag("defaultValue", deparse(argls[[i]]),sep="") } xml$closeTag("arg") if(i < n) xml$addTag("next") } xml$add("") xml$addTag("arguments", close=F) for(i in arg.names) { xml$addTag("argument", xml$tagString("argDescriptionName", i), "\n", "~~Describe ",i," here~~", "") } xml$add("") xml$addTag("details"," ~~ If necessary, more details than the __description__ above ~~") xml$addTag("value", "~Describe the value returned", " If it is a LIST, use", " \\item{comp1 }{Description of `comp1'}", " \\item{comp2 }{Description of `comp2'}", " ...") xml$addTag("references", ifelse(!is.null(local$references), local$references, "")) xml$addTag("author", ifelse(!is.null(local$author), local$author, "")) xml$addTag("note") xml$addTag("seeAlso", xml$tagString("a", attrs=list("href"="\"\""))) xml$addTag("examples", xml$tagString("example")) xml$addTag("keywords", xml$tagString("keyword")) if(!is.null(footer)) xml$add(footer) val <- xml$value() if(!missing(file)) cat(val, file=file) val } XML/inst/examples/prompt.xml0000644000176000001440000000350511741563530015610 0ustar ripleyusers prompt.xml prompt.xml ~~function to do ... ~~ ~~ A concise (1-5 lines) description of what the function does. ~~ prompt.xml object file NULL ... header footer object ~~Describe objecthere~~ file ~~Describe filehere~~ ... ~~Describe ...here~~ header ~~Describe headerhere~~ footer ~~Describe footerhere~~
    ~~ If necessary, more details than the __description__ above ~~
    ~Describe the value returned If it is a LIST, use \item{comp1 }{Description of `comp1'} \item{comp2 }{Description of `comp2'} ... http://www.omegahat.org Duncan Temple Lang
    x %sgets function(a=1, b=2, ...) { ..... } XML/inst/examples/pmml.R0000644000176000001440000000307211741563530014634 0ustar ripleyusers # See http://www.dmg.org/v3-0/GeneralStructure.html setOldClass("rpart") setClass("PMMLTree", contains = "XMLInternalNode") setGeneric("getPMMLArrayType", function(x) standardGeneric("getPMMLArrayType")) PMMLArrayTypes = c("integer" = "int", "numeric" = "real", "logical" = "int", "character" = "string") setMethod("getPMMLArrayType", "vector", function(x) { as.character(PMMLArrayTypes[class(x)]) }) setAs("vector", "PMMLTree", function(from) { type = getPMMLArrayType(from) # put quotes around strings text = if(is.character(from)) paste('"', from, '"', sep = "", collapse = " ") else paste(from, collapse = " ") newXMLNode("Array", text, attrs = c(type = type, n = length(from))) }) setAs("logical", "PMMLTree", function(from) { as(as.integer(from), "PMMLTree") }) setAs("rpart", "PMMLTree", function(from) { tt = xmlTree("PMML", attrs = c(version = "3.0"), namespaces = "http://www.dmg.org/PMML-3_0") tt$addNode("Header", attrs = c(copyright = "?"), tt$addNode("Application", attrs = c(name = "R", version = paste(version$major, version$minor, sep = "."))), tt$addNode("Annotation", "Generated via the XML package"), tt$addNode("Timestamp", date())) tt$addNode("DataDictionary") xmlRoot(tt$value()) }) library(rpart) fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis) cat(saveXML( as(fit, "PMMLTree") )) XML/inst/examples/pi.xml0000644000176000001440000000036311741563530014676 0ustar ripleyusers Hello World XML/inst/examples/oop.S0000644000176000001440000000235611741563530014471 0ustar ripleyusersk <- defineClass("LiterateXMLHandler") k$defineFields(chunks = "list") k$defineMethod("startElement", function(node) { id <- xmlGetAttr(node, "id") if(!is.null(id)) chunks[[id]] <<- node node }) k$defineMethod("chunk", function(node) { if(is.null(name <- xmlGetAttr(node, "name"))) stop("Chunk with no name") if(is.na(match(name, names(chunks)))) stop("No chunk defined named", name,". Is it a forward chunk reference?") nnode <- chunks[[name]] if(xmlName(nnode) == "code") code(nnode, FALSE) }) k$defineMethod("code", function(node, checkId = TRUE) { if(checkId) startElement(node) node }) oopXMLHandlers <- function(obj) { startElement <- function(node) { m <- findOOPMethod(OOPClassDef(obj), xmlName(node), mustFind = FALSE) if(is.null(m)) { m <- findOOPMethod(OOPClassDef(obj), "startElement", mustFind = FALSE) name <- "startElement" } else name <- xmlName(node) if(!is.null(m)) { m <- completeForObject(obj, name, FALSE) m(node) } else node } list(startElement = startElement, value = function() obj) } XML/inst/examples/newNodes.R0000644000176000001440000000050111741563530015443 0ustar ripleyusersb = newXMLNode("k:bob", namespace = c(r = "http://www.r-project.org", omg = "http://www.omegahat.org", "")) addAttributes(b, a = 1, b = "xyz", "r:efg" = "2.4.1", "omg:len" = 3) xmlName(b) xmlName(b) <- "jane" saveXML(b) removeAttributes(b, "r:efg") removeAttributes(b, "a", "b") # or .attrs = c("a", "b") saveXML(b) XML/inst/examples/namespaces1.S0000644000176000001440000000021111741563530016060 0ustar ripleyusers XML/inst/examples/namespaces.S0000644000176000001440000000130511741563530016004 0ustar ripleyusers library(XML) gg <- xmlTree("abc", dtd = "ggobi.dtd", namespaces = list(ggobi="http://www.ggobi.org", r = "http://www.r-project.org")) gg$addTag("ggobidata", attrs = c(count=1), namespace = "ggobi", close = FALSE) gg$addTag("data", attrs = c(name="cube6"), close = FALSE) gg$addTag("description", "A simple dataset") gg$addTag("variables", attrs = c(count="2"), close = FALSE) gg$addTag("realvariable", attrs = c(name="D1"), namespace = "r") gg$addTag("realvariable", attrs = c(name="D2"), namespace = "r") gg$closeTag() # variables gg$closeTag() # data gg$closeTag() # ggobidata # or gg$closeTag(3) # or gg$closeTag("ggobidata") cat(saveXML(gg)) XML/inst/examples/modified_itunes_sax.R0000644000176000001440000000276511741563530017721 0ustar ripleyusers# Read XML data using a low-level streaming model to be able to handle # very large data. # We'll just pick out Total Time # Use a modified version if iTunes format to make it a less generic format. #Need a state machine #Whenever we see the start of an XML element named Total_Time, #prepare to store the next pieces of text #Then when we see the end of the Total_Time, stop collecting. create = function(verbose = FALSE) { times <- character() inTotalTimeElement = FALSE # called for start of element, # so always set inTotalTime to TRUE tt = function(name, ...) { if(verbose) cat("In tt\n") inTotalTimeElement <<- TRUE } # If we are in a Total_Time element, # put the x into the times vector collect = function(x) { if(verbose) cat("in collect\n") if(inTotalTimeElement) times <<- c(times, x) } # Need to turn inTotalTimeElement off if it is on. endElement = function(name, ...) { # if(name == "Total_Time") if(verbose) cat("end Total_Time\n") inTotalTimeElement <<- FALSE } # return a list of functions which are used by the SAX parser # and also .result which gives us the values list("Total_Time" = tt, "/Total_Time" = endElement, .text = collect, .result = function() as.numeric(times)) } # if(FALSE) { h = create(verbose = TRUE) o = xmlEventParse("http://eeyore.ucdavis.edu/itunes-short.xml", handlers = h, saxVersion = 2) h$.result() } XML/inst/examples/mi1.R0000644000176000001440000000024311741563530014352 0ustar ripleyuserssystem.time(z <- xmlTreeParse("~/mi1.xml", useInternal = TRUE)) nn = getNodeSet(z, "/*/molecule/name") length(nn) ids = sapply(nn,function(x) xmlValue(x[[1]])) XML/inst/examples/mexico.xml0000644000176000001440000000164111741563530015552 0ustar ripleyusers 57.9332 53.4599 54.8241 55.7852 55.008 54.9579 53.3819 54.1589 53.3658 58.4322 57.9332 53.4599 54.8241 55.7852 55.008 54.9579 53.3819 54.1589 53.3658 58.4322 24.9125 24.0581 24.9128 25.5737 24.4704 25.697 26.1449 25.9035 25.4705 24.0121 24.9125 24.0581 24.9128 25.5737 24.4704 25.697 26.1449 25.9035 25.4705 24.012 30.0 28.0 16.0 28.0 31.0 34.0 32.0 24.0 32.0 28.0 30.0 28.0 16.0 28.0 31.0 34.0 32.0 24.0 32.0 28.0 XML/inst/examples/mexico.R0000644000176000001440000000062011741563530015147 0ustar ripleyusers# An example posed by Herve Richard at INRIA. variable = function(node) { # Get the values. vals = scan(textConnection(xmlValue(node))) # Need the name attribute structure(list(vals), names = xmlGetAttr(node, "name")) } handlers = list(variable = variable) ans = xmlRoot(xmlTreeParse("mexico.xml", handlers = handlers, asTree = TRUE)) as.data.frame(xmlChildren(ans[["date"]])) XML/inst/examples/metlin.R0000644000176000001440000000125511741563530015160 0ustar ripleyusersreadMetlin = function(url = "http://metlin.scripps.edu/download/MSMS_test.XML", what = c("molid" = "integer", name = "character", formula = "character", mass = "numeric", mz = "numeric")) { doc = xmlTreeParse(url, useInternal = TRUE) z = xmlChildren(xmlRoot(doc)) nodes = z[ sapply(z, inherits, "XMLInternalElementNode") ] if(length(nodes) > 1) { } nodes = nodes[[1]] n = xmlSize(nodes) ans = as.data.frame(lapply(what, function(x) get(x)(n))) for(i in 1:n) { node = nodes[[i]] sapply(names(what), function(id) { ans[i, id] <<- as(xmlValue(node[[id]]), what[id]) }) } ans } XML/inst/examples/mathmlPlot.R0000644000176000001440000001306511741563530016013 0ustar ripleyusers# # Functions to illustrate how to convert a MathML tree # to an R expression that can be used to annotate a plot # as an argument to plotmath. # # # mchar # mfrac # !=, ==, <=, >=, etc.to the # sqrt, # sub-, super-script [], ^ # times %*% # %~~% # %subset%, %subseteq% # %supset%, %supseteq% # %in% # %notin% # hat # tilde # group("(",list(a, b),"]") # inf(S) # sum(x[i],i==1,n) # # # # mathmlPlot <- function(node) { UseMethod("mathmlPlot",node) } mathmlPlot.XMLDocument <- function(doc) { return(mathmlPlot(doc$doc$children)) } mathmlPlot.default <- function(children) { expr <- expression() i <- 1 ok <- (i <= length(children)) while(ok) { #cat(i,"\n") child <- children[[i]] if(is.null(child)) { i <- i+1 ok <- (i <= length(children)) next } if(!is.null(class(child)) && class(child) == "XMLComment") { i <- i+1 ok <- (i <= length(children)) next } # if(inherits(child,"XMLNode")) {} #if(is.null(class(child))) cat("Null child:",child,"\n") if(xmlName(child) == "mo") { op <- child$children[[1]]$value if(op == "sum") { # needs to get operand. tmp <- c(as.name(op), quote(x[i]),mathmlPlot(children[[i+1]]), mathmlPlot(children[[i+2]])) expr <- c(expr, tmp) i <- i+2 } else { expr <- c(mathmlPlot(child), expr , mathmlPlot(children[[i+1]])) } mode(expr) <- "call" i <- i+1 } else { expr <- c(expr, mathmlPlot(child)) } i <- i+1 ok <- (i <= length(children)) #cat(i,length(children),"\n") } return(expr) } mathmlPlot.XMLEntityRef <- function(node) { nm <- xmlName(node) val <- switch(nm, PlusMinus=as.name("%+-%"), InvisibleTimes=as.name("*"), int=as.name("integral"), infty = as.name("infinity"), NULL ) if(is.null(val)) { val <- as.name(nm) } return(val) } mathmlPlot.XMLNode <- function(node) { nm <- name(node) if(nm == "mi" || nm == "ci") { val <- c(as.name("italic"),mathmlPlot(node$children)) mode(val) <- "call" } else if(nm == "msqrt") { val <- c(as.name("sqrt"), mathmlPlot(node$children)) mode(val) <- "call" } else if(nm == "msubsup") { tmp <- c(as.name("^"), mathmlPlot(node$children[[1]]),mathmlPlot(node$children[[2]])) mode(tmp) <- "call" val <- c(as.name("["), tmp, mathmlPlot(node$children[[3]])) mode(val) <- "call" } else if(nm == "mrow") { val <- mathmlPlot(node$children) } else if(nm == "text") { val <- node$value } else if(nm == "mo") { if(inherits(node$children[[1]],"XMLEntityRef")) val <- mathmlPlot(node$children[[1]]) else { op <- node$children[[1]]$value tmp <- switch(op, "=" = "==", op) val <- as.name(tmp) } } else if(nm == "mfrac") { val <- list(as.name("frac"), mathmlPlot(node$children[[1]]), mathmlPlot(node$children[[2]])) mode(val) <- "call" } else if(nm == "msup" || nm == "msub") { op <- switch(nm, "msup" = "^", "msub"="[") val <- c(as.name(op), mathmlPlot(node$children[[1]]), mathmlPlot(node$children[[2]])) mode(val) <- "call" } else if(nm == "mn" || nm == "cn") { val <- as.numeric(node$children[[1]]$value) } else if(nm == "mstyle") { val <- mathmlPlot(node$children) } else if(nm == "munderover") { val <- mathmlPlot(node$children) } else if(nm == "mroot") { val <- c(as.name("sqrt"), mathmlPlot(node$children[[1]]), mathmlPlot(node$children[[2]])) mode(val) <- "call" } else if(nm == "reln") { val <- mathmlPlot(node$children) mode(val) <- "call" } else if(nm == "eq") { val <- as.name("==") } else if(nm == "geq") { val <- as.name(">=") } else if(nm == "set") { # This looks for a tag and takes # everything before that as preceeding the `|' n <- min( (1:length(node$children))[sapply(node$children, xmlName) == "condition"]) cat("Condition @",n,"\n") args <- c(mathmlPlot(node$children[1:(n-1)]), "|", mathmlPlot(node$children[n:length(node$children)])) args <- c(as.name("paste"), args) mode(args) <- "call" val <- list(as.name("group"),"{", args,"}") mode(val) <- "call" } else if(nm == "bvar") { val <- mathmlPlot(node$children) } else if(nm == "condition") { val <- mathmlPlot(node$children) } else if(nm == "interval") { sep <- xmlAttrs(node)[["closure"]] sep <- switch(sep, open=c("(",")"), closed=c("[","]"), "closed-open"=c("[",")"), "open-closed"=c("(","]"), ) els <- mathmlPlot(node$children) els <- c(as.name("paste"), els[[1]],",",els[[2]]) mode(els) <- "call" val <- list(as.name("group"),sep[1], els ,sep[2]) mode(val) <- "call" } else if(nm == "power") { val <- c(as.name("^"), mathmlPlot(node$children[[1]]), mathmlPlot(node$children[[2]])) # mode(val) <- "call" } else if(nm == "plus") { val <- as.name("+") } else if(nm == "apply") { val <- mathmlPlot.apply(node) } return(val) } mathmlPlot.apply <- function(node) { sub <- mathmlPlot(node$children) nm <- xmlName(node$children[[1]]) print(node$children[[1]]) if(nm == "plus" || nm == "minus" || nm == "times" || nm == "div" ) { print(sub[[1]]) val <- c(mathmlPlot(node$children[[1]]), sub[[2]], sub[[3]]) mode(val) <- "call" for(i in 4:length(sub)) { tmp <- c(mathmlPlot(node$children[[1]]), val, sub[[i]]) mode(tmp) <- "call" val <- tmp } } else { val <- sub mode(val) <- "call" } return(val) } XML/inst/examples/mathml.R0000644000176000001440000001072011741563530015147 0ustar ripleyusers# # Functions to illustrate how to convert a MathML tree an # R expression. # # mathml <- # generic method that converts an XMLNode # object to an R/S expression. function(node) { UseMethod("mathml", node) } mathml.XMLDocument <- function(doc) { return(mathml(doc$doc$children)) } mathml.default <- # # Attempts to create an expression from the Math ML # document tree given to it. # This is an example using the mathml.xml and is not # in any way intended to be a general MathML "interpreter" # for R/S. # function(children) { expr <- list() for(i in children) { if(class(i) == "XMLComment") next expr <- c(expr, mathml(i)) } return(expr) } mergeMathML <- # # This takes a list of objects previously converted to R terms # from MathML and aggregates them by collapsing elements # such as # term operator term # into R calls. # # see mathml.XMLNode # function(els) { #cat("Merging",length(els)); #print(els) ans <- list() more <- T ctr <- 1 while(more) { i <- els[[ctr]] if(inherits(i, "MathMLOperator")) { ans <- c(i, ans, els[[ctr+1]]) mode(ans) <- "call" ctr <- ctr + 1 } else if(inherits(i,"MathMLGroup")) { #print("MathMLGroup") ans <- c(ans, i) mode(ans) <- "call" } else ans <- c(ans, i) ctr <- ctr + 1 more <- (ctr <= length(els)) } #cat("Merged: "); print(ans) return(ans) } mathml.XMLNode <- # # Interprets a MathML node and converts it # to an R expression term. This handles tags # such as mi, mo, mn, msup, mfrac, mrow, mfenced, # msqrt, mroot # # Other tags include: # msub # msubsup # munder # mover # munderover # mmultiscripts # # mtable # mtr # mtd # # set, interval, vector, matrix # cn # matrix, matrixrow # transpose # Attributes for mfenced: open, close "[" function(node) { nm <- name(node) if(nm == "msup" || nm == "mfrac") { op <- switch(nm, msup="^", mfrac="/") a <- mathml(node$children[[1]]) b <- mathml(node$children[[2]]) expr <- list(as.name(op), a, b) mode(expr) <- "call" val <- expr } else if(nm == "mi" || nm == "ci") { # display in italics if(!is.null(node$children[[1]]$value)) val <- as.name(node$children[[1]]$value) } else if(nm == "mo") { if(inherits(node$children[[1]],"XMLEntityRef")) { # node$children[[1]]$value val <- as.name("*") class(val) <- "MathMLOperator" } else { # operator tmp <- node$children[[1]]$value if(!is.null(tmp)) { if(tmp == "=") { # or we could use "==" # to indicate equality, not assignment. tmp <- "<-" } val <- as.name(tmp) class(val) <- "MathMLOperator" } } } else if(nm == "text") { val <- node$value } else if(nm == "matrix"){ val <- mathml.matrix(node) } else if(nm == "vector"){ val <- mathml.vector(node) } else if(nm == "mn" || nm == "cn") { # number tag. if(!is.null(node$children[[1]]$value)) val <- as.numeric(node$children[[1]]$value) } else if(nm == "mrow" || nm == "mfenced" || nm == "msqrt" || nm == "mroot") { # group of elements (displayed in a single row) ans <- vector("list", length(node$children)) ctr <- 1 for(i in node$children) { ans[[ctr]] <- mathml(i) #cat(ctr,i$name,length(ans),"\n") ctr <- ctr + 1 } ans <- mergeMathML(ans) # if this is an mfenced, msqrt or mroot element, add the # enclosing parentheses or function call. # .... if(nm == "msqrt") { ans <- c(as.name("sqrt"), ans) mode(ans) <- "call" } else if(nm == "mfenced") { class(ans) <- "MathMLGroup" } val <- ans } else if(nm == "reln") { val <- mathml(node$children) mode(val) <- "call" } else if(nm == "eq") { val <- as.name("==") } else if(nm == "apply") { val <- mathml(node$children) cat("apply:",length(val),"\n") print(val) mode(val) <- "call" } else if(nm == "times") { val <- as.name("%*%") } else if(nm == "transpose") { val <- as.name("t") } return(val) } mathml.matrix <- # # # # function(node) { m <- matrix(character(1), length(node$children), length(node$children[[1]]$children)) i <- 1 for(row in node$children) { j <- 1 for(cell in row$children) { tmp <- mathml(cell) m[i,j] <- as.character((tmp)) j <- j + 1 } i <- i + 1 } print(m) return(m) } mathml.vector <- function(node) { ans <- character(length(node$children)) for(i in 1:length(node$children)) { tmp <- mathml(node$children[[i]]) ans[i] <- as.character(tmp) } print(ans) return(ans) } XML/inst/examples/itunesSax2.R0000644000176000001440000000116611741563530015736 0ustar ripleyusers# This version works on the generic plist form # We want the dict/dict/dict depth = 0 count = 0 songs = vector("list", 1300) songNode = function(parser, node) { count <<- count + 1 songs[[count]] <<- node } class(songNode) = c("XMLParserContextFunction", "SAXBranchFunction") dict = function(parser, node, ...) { print(depth) if(depth == 2) { # return the songNode function so that it will be used as a branch # function for this node, i.e. will be invoked return(songNode) } else depth <<- depth + 1 TRUE } xmlEventParse("~/itunes.xml", handlers = list(dict = dict), saxVersion = 2L) XML/inst/examples/itunesSax1.R0000644000176000001440000000076111741563530015735 0ustar ripleyusers# This works on the transformed version that has # the value form # rather than the generic # name12.... # for of a property/p list. # count = 0 songs = vector("list", 100) song = function(parser, node, ...) { count <<- count + 1 if(count == length(songs)) xmlStopParser(parser) songs[[count]] <<- node TRUE } class(song) = "XMLParserContextFunction" xmlEventParse("itunes.xml", branches = list(song = song)) XML/inst/examples/itunesSax.R0000644000176000001440000000276411741563530015661 0ustar ripleyuserssaxHandlers = function() { tracks = list() dictLevel = 0L key = NA value = character() track = list() text = function(val) { value <<- paste(value, val, sep = "") } startElement = function(name, attrs) { if(name %in% c("integer", "string", "date", "key")) value <<- character() if(name == "dict") dictLevel <<- dictLevel + 1L } convertValue = function(value, textType) { switch(textType, integer = as.numeric(value), string = value, date = as.POSIXct(strptime(value, "%Y-%m-%dT%H:%M:%S")), default = value) } endElement = function(name) { if(name %in% c("integer", "string", "date")) track[[key]] <<- convertValue(value, name) else if(name == "key") key <<- value else if(name == "dict" && dictLevel == 3) { class(track) = "iTunesTrackInfo" tracks[[ length(tracks) + 1]] <<- track track <<- list() dictLevel <<- 2 } } list(startElement = startElement, endElement = endElement, text = text, tracks = function() tracks) } h = saxHandlers() #xmlEventParse(path.expand(fileName), handlers = h) # 5.9 seconds. But this is parsing and processing into tracks. # system.time({dd = xmlEventParse(path.expand(fileName), handlers = h, addContext = FALSE)}) # 5.93 seconds on average (SD of .09) # sax = replicate(10, system.time({dd = xmlEventParse(path.expand(fileName), handlers = h, addContext = FALSE)})) XML/inst/examples/itunes.xsl0000644000176000001440000000126611741563530015606 0ustar ripleyusers XML/inst/examples/itunes.xml0000644000176000001440000455646411741563530015623 0ustar ripleyusers 358Don't Know WhyNorah JonesJesse HarrisCome Away With MeJazzAAC audio file30314111861521111420022007-02-05T11:46:04Z2005-08-22T22:14:30Z128441002832938482622008-05-16T17:51:02ZD7F9F158A4A48E53Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/01%20Don't%20Know%20Why.m4a-1-1359Seven YearsNorah JonesLee AlexanderCome Away With MeJazzAAC audio file23765461452621121420022007-02-05T11:46:05Z2005-08-22T22:14:49Z128441002732938484072008-05-16T17:53:27ZD7F9F158A4A48E54Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/02%20Seven%20Years.m4a-1-1360Cold Cold HeartNorah JonesHank WilliamsCome Away With MeJazzAAC audio file35513012185911131420022007-02-05T11:46:06Z2005-08-22T22:15:14Z128441002732938486262008-05-16T17:57:06ZD7F9F158A4A48E58Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/03%20Cold%20Cold%20Heart.m4a41361Feelin' The Same WayNorah JonesLee AlexanderCome Away With MeJazzAAC audio file28910621773521141420022007-02-05T11:46:07Z2005-08-22T22:15:32Z128441002832938488032008-05-16T18:00:03ZD7F9F158A4A48E59Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/04%20Feelin'%20The%20Same%20Way.m4a-1-1362Come Away With MeNorah JonesNorah JonesCome Away With MeJazzAAC audio file32242011982041151420022007-02-05T11:46:08Z2005-08-22T22:15:46Z128441002832938490012008-05-16T18:03:21ZD7F9F158A4A48E5AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/05%20Come%20Away%20With%20Me.m4a41363Shoot The MoonNorah JonesJesse HarrisCome Away With MeJazzAAC audio file38433292368181161420022007-02-05T11:46:10Z2005-08-22T22:16:01Z128441002832938492382008-05-16T18:07:18ZD7F9F158A4A48E5BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/06%20Shoot%20The%20Moon.m4a41364Turn Me OnNorah JonesJ.D. LoudermilkCome Away With MeJazzAAC audio file25288501547821171420022007-02-05T11:46:11Z2005-08-22T22:16:43Z128441002932938493932008-05-16T18:09:53ZD7F9F158A4A48E5CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/07%20Turn%20Me%20On.m4a41365LonestarNorah JonesLee AlexanderCome Away With MeJazzAAC audio file30307961860831181420022007-02-05T11:46:12Z2005-08-22T22:16:59Z128441002932938495792008-05-16T18:12:59ZD7F9F158A4A48E5DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/08%20Lonestar.m4a41366I've Got To See You AgainNorah JonesJesse HarrisCome Away With MeJazzAAC audio file41070812533281191420022007-02-05T11:46:13Z2005-08-22T22:17:38Z128441002932938498322008-05-16T18:17:12ZD7F9F158A4A48E5EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/09%20I've%20Got%20To%20See%20You%20Again.m4a41367Painter SongNorah JonesLee Alexander,J.C. HopkinsCome Away With MeJazzAAC audio file264426216202711101420022007-02-05T11:46:14Z2005-08-22T22:17:58Z128441002932938499942008-05-16T18:19:54ZD7F9F158A4A48E5FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/10%20Painter%20Song.m4a-1-1368One Flight DownNorah JonesJesse HarrisCome Away With MeJazzAAC audio file302439218571111111420022007-02-05T11:46:15Z2005-08-22T22:18:15Z128441002932938501802008-05-16T18:23:00ZD7F9F158A4A48E60Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/11%20One%20Flight%20Down.m4a41369NightingaleNorah JonesNorah JonesCome Away With MeJazzAAC audio file409016925219011121420022007-02-05T11:46:16Z2005-08-22T22:18:29Z128441002732938504322008-05-16T18:27:12ZD7F9F158A4A48E61Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/12%20Nightingale.m4a41370The Long Day Is OverNorah JonesJesse Harris,Norah JonesCome Away With MeJazzAAC audio file268965216479011131420022007-02-05T11:46:17Z2005-08-22T22:18:39Z128441002832938505972008-05-16T18:29:57ZLong Day Is OverD7F9F158A4A48E62Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/13%20The%20Long%20Day%20Is%20Over.m4a41371The Nearness Of YouNorah JonesHoagy Carmichael,Ned WashingtonCome Away With MeJazzAAC audio file305452218775511141420022007-02-05T11:46:18Z2005-08-22T22:18:48Z128441002832938507842008-05-16T18:33:04ZNearness Of YouD7F9F158A4A48E63Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/14%20The%20Nearness%20Of%20You.m4a41372Rough God Goes RidingVan MorrisonVan MorrisonThe Healing GameRockAAC audio file60904973797141111019972007-02-05T11:57:54Z2005-09-02T20:59:51Z128441002432947999362008-05-27T18:12:16ZHealing GameAFECFC8346839C17Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/01%20Rough%20God%20Goes%20Riding.m4a41373Fire In The BellyVan MorrisonVan MorrisonThe Healing GameRockAAC audio file63463183943191121019972007-02-05T11:57:56Z2005-09-02T21:00:30Z128441002432948003302008-05-27T18:18:50ZHealing GameAFECFC8346839C18Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/02%20Fire%20In%20The%20Belly.m4a-1-1374This WeightVan MorrisonVan MorrisonThe Healing GameRockAAC audio file44536372774071131019972007-02-05T11:57:58Z2005-09-02T21:01:04Z128441002332948006082008-05-27T18:23:28ZHealing GameAFECFC8346839C19Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/03%20This%20Weight.m4a41375Waiting GameVan MorrisonVan MorrisonThe Healing GameRockAAC audio file57281293560531141019972007-02-05T11:58:00Z2005-09-02T21:01:25Z128441002432948009642008-05-27T18:29:24ZHealing GameAFECFC8346839C1AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/04%20Waiting%20Game.m4a41376Piper At The Gates Of DawnVan MorrisonVan MorrisonThe Healing GameRockAAC audio file37314052331261151019972007-02-05T11:58:02Z2005-09-02T21:01:50Z128441002332948011972008-05-27T18:33:17ZHealing GameAFECFC8346839C1BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/05%20Piper%20At%20The%20Gates%20Of%20Dawn.m4a41377Burning GroundVan MorrisonVan MorrisonThe Healing GameRockAAC audio file54239153380341161019972007-02-05T11:58:03Z2005-09-02T21:02:06Z128441002332948015352008-05-27T18:38:55ZHealing GameAFECFC8346839C1CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/06%20Burning%20Ground.m4a41378It Once Was My LifeVan MorrisonVan MorrisonThe Healing GameRockAAC audio file49908933107511171019972007-02-05T11:58:05Z2005-09-02T21:02:28Z128441002232916599812008-04-21T09:59:41ZHealing GameAFECFC8346839C1DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/07%20It%20Once%20Was%20My%20Life.m4a41379Sometimes We CryVan MorrisonVan MorrisonThe Healing GameRockAAC audio file50359833146981181019972007-02-05T11:58:07Z2005-09-02T21:02:46Z128441002232916602962008-04-21T10:04:56ZHealing GameAFECFC8346839C1EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/08%20Sometimes%20We%20Cry.m4a-1-1380If You Love MeVan MorrisonVan MorrisonThe Healing GameRockAAC audio file48235913014631191019972007-02-05T11:58:09Z2005-09-02T21:03:04Z128441002232916605972008-04-21T10:09:57ZHealing GameAFECFC8346839C1FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/09%20If%20You%20Love%20Me.m4a41381The Healing GameVan MorrisonVan MorrisonThe Healing GameRockAAC audio file512076931688111101019972007-02-05T11:58:11Z2005-09-02T21:03:21Z128441002132916609142008-04-21T10:15:14ZHealing GameHealing GameAFECFC8346839C20Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/The%20Healing%20Game/10%20The%20Healing%20Game.m4a41382I Feel FreeCreamJack Bruce/Pete BrownThe Cream Of ClaptonRockAAC audio file27980831729171111919662007-02-05T11:35:44Z2005-09-02T21:05:41Z128441002232933924902008-05-11T11:14:50ZCream Of ClaptonAFECFC8346839C36Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cream/The%20Cream%20Of%20Clapton/01%20I%20Feel%20Free.m4a41383Sunshine Of Your LoveCreamEric Clapton/Jack Bruce/Pete BrownThe Cream Of ClaptonRockAAC audio file40664122518181121919672007-02-05T11:35:46Z2005-09-02T21:05:58Z128441002132933927422008-05-11T11:19:02ZCream Of ClaptonAFECFC8346839C37Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cream/The%20Cream%20Of%20Clapton/02%20Sunshine%20Of%20Your%20Love.m4a41384White RoomCreamJack Bruce/Pete BrownThe Cream Of ClaptonRockAAC audio file48314723004641131919682007-02-05T11:35:47Z2005-09-02T21:06:19Z128441002132933930422008-05-11T11:24:02ZCream Of ClaptonAFECFC8346839C38Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cream/The%20Cream%20Of%20Clapton/03%20White%20Room.m4a41385CrossroadsCreamRobert JohnsonThe Cream Of ClaptonRockAAC audio file41451902566251141919682007-02-05T11:35:49Z2005-09-02T21:06:42Z128441002132933932992008-05-11T11:28:19ZCream Of ClaptonAFECFC8346839C39Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cream/The%20Cream%20Of%20Clapton/04%20Crossroads.m4a41386BadgeCreamEric Clapton/George HarrisonThe Cream Of ClaptonRockAAC audio file26883581666711151919692007-02-05T11:35:50Z2005-09-02T21:07:01Z128441002232933934662008-05-11T11:31:06ZCream Of ClaptonAFECFC8346839C3AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cream/The%20Cream%20Of%20Clapton/05%20Badge.m4a41387Presence Of The LordBlind FaithEric ClaptonThe Cream Of ClaptonRockAAC audio file46813702903171161919692007-02-05T11:28:21Z2005-09-02T21:07:12Z128441001132933705912008-05-11T05:09:51ZCream Of ClaptonAFECFC8346839C3BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Blind%20Faith/The%20Cream%20Of%20Clapton/06%20Presence%20Of%20The%20Lord.m4a41388Blues PowerEric ClaptonEric Clapton/Leon RussellThe Cream Of ClaptonRockAAC audio file30740851907271171919702007-02-05T11:39:44Z2005-09-02T21:07:31Z128441001532829288042008-01-11T08:40:04ZCream Of ClaptonAFECFC8346839C3CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/07%20Blues%20Power.m4a41389After MidnightEric ClaptonJ.J. CaleThe Cream Of ClaptonRockAAC audio file27872451737991181919702007-02-05T11:39:45Z2005-09-02T21:07:43Z128441001732829289782008-01-11T08:42:58ZCream Of ClaptonAFECFC8346839C3DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/08%20After%20Midnight.m4a41390Let It RainEric ClaptonBonnie Bramlett/Eric ClaptonThe Cream Of ClaptonRockAAC audio file48820753039241191919702007-02-05T11:39:47Z2005-09-02T21:07:53Z128441001632829292822008-01-11T08:48:02ZCream Of ClaptonAFECFC8346839C3EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/09%20Let%20It%20Rain.m4a-1-1391Bell Bottom BluesDerek & The DominosEric ClaptonThe Cream Of ClaptonRockAAC audio file488034030352911101919702007-02-05T11:38:35Z2005-09-02T21:08:11Z128441001232681836842007-07-24T16:48:04ZCream Of ClaptonAFECFC8346839C3FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Derek%20&%20The%20Dominos/The%20Cream%20Of%20Clapton/10%20Bell%20Bottom%20Blues.m4a41392LaylaDerek & The DominosEric Clapton/Jim GordonThe Cream Of ClaptonRockAAC audio file685464742562011111919702007-02-05T11:38:37Z2005-09-02T21:08:27Z128441001232681841102007-07-24T16:55:10ZCream Of ClaptonAFECFC8346839C40Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Derek%20&%20The%20Dominos/The%20Cream%20Of%20Clapton/11%20Layla.m4a41393I Shot The SheriffEric ClaptonBob MarleyThe Cream Of ClaptonRockAAC audio file427070826407911121919742007-02-05T11:39:48Z2005-09-02T21:08:49Z128441001632829295462008-01-11T08:52:26ZCream Of ClaptonAFECFC8346839C41Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/12%20I%20Shot%20The%20Sheriff.m4a41394Let It GrowEric ClaptonEric ClaptonThe Cream Of ClaptonRockAAC audio file482941630030211131919742007-02-05T11:39:50Z2005-09-02T21:09:02Z128441001932829298462008-01-11T08:57:26ZCream Of ClaptonAFECFC8346839C42Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/13%20Let%20It%20Grow.m4a41395Knockin' On Heaven's DoorEric ClaptonBob DylanThe Cream Of ClaptonRockAAC audio file424598526321911141919752007-02-05T11:39:52Z2005-09-02T21:09:17Z128441001932829301102008-01-11T09:01:50ZCream Of ClaptonAFECFC8346839C43Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/14%20Knockin'%20On%20Heaven's%20Door.m4a41396Hello Old FriendEric ClaptonEric ClaptonThe Cream Of ClaptonRockAAC audio file348472121629211151919762007-02-05T11:39:53Z2005-09-02T21:09:29Z128441001832829303262008-01-11T09:05:26ZCream Of ClaptonAFECFC8346839C44Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/15%20Hello%20Old%20Friend.m4a41397CocaineEric ClaptonJ.J. CaleThe Cream Of ClaptonRockAAC audio file356158821968211161919772007-02-05T11:39:54Z2005-09-02T21:09:39Z128441001932829305462008-01-11T09:09:06ZCream Of ClaptonAFECFC8346839C45Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/16%20Cocaine.m4a41398Wonderful TonightEric ClaptonEric ClaptonThe Cream Of ClaptonRockAAC audio file360632522205011171919772007-02-05T11:39:55Z2005-09-02T21:09:49Z128441001932829307682008-01-11T09:12:48ZCream Of ClaptonAFECFC8346839C46Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/17%20Wonderful%20Tonight.m4a41399PromisesEric ClaptonRichard Feldman/Roger LinnThe Cream Of ClaptonRockAAC audio file295229418123011181919782007-02-05T11:39:56Z2005-09-02T21:10:20Z128441001932829309492008-01-11T09:15:49ZCream Of ClaptonAFECFC8346839C47Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/18%20Promises.m4a41400I Can't Stand ItEric ClaptonEric ClaptonThe Cream Of ClaptonRockAAC audio file404145224931111191919812007-02-05T11:39:58Z2005-09-02T21:10:43Z128441001932829311982008-01-11T09:19:58ZCream Of ClaptonAFECFC8346839C48Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Eric%20Clapton/The%20Cream%20Of%20Clapton/19%20I%20Can't%20Stand%20It.m4a41401By His GraceVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file25766891576852211119922007-02-05T11:57:05Z2005-09-02T21:23:04Z128441001932916639092008-04-21T11:05:09ZAFECFC8346839C56Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-01%20By%20His%20Grace.m4a41402All Saints DayVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file24885431521822221119912007-02-05T11:57:06Z2005-09-02T21:23:22Z128441001932916640622008-04-21T11:07:42ZAFECFC8346839C57Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-02%20All%20Saints%20Day.m4a-1-1403Hymns To The SilenceVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file94544345834232231119912007-02-05T11:57:09Z2005-09-02T21:23:37Z128441001832916646452008-04-21T11:17:25ZAFECFC8346839C58Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-03%20Hymns%20To%20The%20Silence.m4a41404On Hyndford StreetVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file52143873216872241119912007-02-05T11:57:11Z2005-09-02T21:24:27Z128441001832916649672008-04-21T11:22:47ZAFECFC8346839C59Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-04%20On%20Hyndford%20Street.m4a41405Be Thou My VisionVan MorrisonTrad.Hymns To The Silence (Disc 2)RockAAC audio file37635942317802251119912007-02-05T11:57:12Z2005-09-02T21:24:51Z128441001932916651982008-04-21T11:26:38ZAFECFC8346839C5AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-05%20Be%20Thou%20My%20Vision.m4a41406Carrying A TorchVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file43549172686302261119912007-02-05T11:57:14Z2005-09-02T21:25:06Z128441001832916654672008-04-21T11:31:07ZAFECFC8346839C5BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-06%20Carrying%20A%20Torch.m4a41407Green MansionsVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file36109072222592271119912007-02-05T11:57:15Z2005-09-02T21:25:24Z128441001932916656892008-04-21T11:34:49ZAFECFC8346839C5CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-07%20Green%20Mansions.m4a-1-1408Pagan StreamsVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file35832662205182281119912007-02-05T11:57:16Z2005-09-02T21:25:39Z128441001832916659102008-04-21T11:38:30ZAFECFC8346839C5DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-08%20Pagan%20Streams.m4a41409Quality StreetVan MorrisonMack Rebennack & Van MorrisonHymns To The Silence (Disc 2)RockAAC audio file38892582396512291119912007-02-05T11:57:18Z2005-09-02T21:26:40Z128441001832916661492008-04-21T11:42:29ZAFECFC8346839C5EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-09%20Quality%20Street.m4a41410It Must Be YouVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file407115325098322101119912007-02-05T11:57:19Z2005-09-02T21:27:00Z128441001832916664002008-04-21T11:46:40ZAFECFC8346839C5FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-10%20It%20Must%20Be%20You.m4a41411I Need Your Kind Of LovingVan MorrisonVan MorrisonHymns To The Silence (Disc 2)RockAAC audio file438872927078922111119912007-02-05T11:57:21Z2005-09-02T21:27:14Z128441001832916666712008-04-21T11:51:11ZAFECFC8346839C60Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%202)/2-11%20I%20Need%20Your%20Kind%20Of%20Loving.m4a41412Born To RunBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file43839332704641111819752007-02-05T11:29:20Z2005-09-02T21:32:23Z128441002232933807752008-05-11T07:59:35Z80AFECFC8346839C75Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/01%20Born%20To%20Run.m4a41413Thunder RoadBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file46769992886921121819752007-02-05T11:29:22Z2005-09-02T21:32:49Z128441002132933810642008-05-11T08:04:24Z80AFECFC8346839C76Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/02%20Thunder%20Road.m4a41414BadlandsBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file39306242429721131819782007-02-05T11:29:23Z2005-09-02T21:33:12Z128441001932933813072008-05-11T08:08:27Z80AFECFC8346839C77Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/03%20Badlands.m4a41415The RiverBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file48529583007431141819802007-02-05T11:29:25Z2005-09-02T21:33:30Z128441004132933816082008-05-11T08:13:28Z8080RiverAFECFC8346839C78Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/04%20The%20River.m4a-1-1416Hungry HeartBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file32276642002931151819802007-02-05T11:29:26Z2005-09-02T21:33:52Z128441001932933818082008-05-11T08:16:48Z80AFECFC8346839C79Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/05%20Hungry%20Heart.m4a41417Atlantic CityBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file38434132369111161819822007-02-05T11:29:28Z2005-09-02T21:34:05Z128441001832933820452008-05-11T08:20:45Z80AFECFC8346839C7AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/06%20Atlantic%20City.m4a41418Dancing In The DarkBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file39340292431811171819842007-02-05T11:29:29Z2005-09-02T21:34:20Z128441001832933822882008-05-11T08:24:48Z80AFECFC8346839C7BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/07%20Dancing%20In%20The%20Dark.m4a41419Born In The U.S.ABruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file45252612810991181819842007-02-05T11:29:31Z2005-09-02T21:34:35Z128441001832933825692008-05-11T08:29:29Z80AFECFC8346839C7CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/08%20Born%20In%20The%20U.S.A.m4a41420My HometownBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file40648592527241191819842007-02-05T11:29:32Z2005-09-02T21:34:51Z128441003932933828222008-05-11T08:33:42Z8080AFECFC8346839C7DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/09%20My%20Hometown.m4a41421Glory DaysBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file370542922917911101819842007-02-05T11:29:33Z2005-09-02T21:35:05Z128441001632933830512008-05-11T08:37:31Z80AFECFC8346839C7EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/10%20Glory%20Days.m4a41422Brilliant DisguiseBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file413603025571911111819872007-02-05T11:29:35Z2005-09-02T21:35:17Z128441001632933833072008-05-11T08:41:47Z80AFECFC8346839C7FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/11%20Brilliant%20Disguise.m4a41423Human TouchBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file501231431005411121819922007-02-05T11:29:37Z2005-09-02T21:35:30Z128441003332933836172008-05-11T08:46:57Z8080AFECFC8346839C80Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/12%20Human%20Touch.m4a-1-1424Better DaysBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file363790722486011131819922007-02-05T11:29:38Z2005-09-02T21:35:46Z128441001632933838422008-05-11T08:50:42Z80AFECFC8346839C81Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/13%20Better%20Days.m4a41425Streets Of PhiladelphiaBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file317981719674111141819942007-02-05T11:29:39Z2005-09-02T21:35:57Z128441004532933840392008-05-11T08:53:59Z8080AFECFC8346839C82Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/14%20Streets%20Of%20Philadelphia.m4a41426Secret GardenBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file432509726788711151819952007-02-05T11:29:40Z2005-09-02T21:36:06Z128441004132933843062008-05-11T08:58:26Z8080AFECFC8346839C83Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/15%20Secret%20Garden.m4a-1-1427Murder IncorporatedBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file384931423786311161819952007-02-05T11:29:42Z2005-09-02T21:36:19Z128441001832933845442008-05-11T09:02:24Z80AFECFC8346839C84Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/16%20Murder%20Incorporated.m4a-1-1428Blood BrothersBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file442773027427211171819952007-02-05T11:29:43Z2005-09-02T21:36:29Z128441001932933848192008-05-11T09:06:59Z80AFECFC8346839C85Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/17%20Blood%20Brothers.m4a41429This Hard LandBruce SpringsteenBruce SpringsteenGreatest HitsRockAAC audio file472064029359111181819952007-02-05T11:29:45Z2005-09-02T21:36:42Z128441004032933851122008-05-11T09:11:52Z8080AFECFC8346839C86Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bruce%20Springsteen/Greatest%20Hits/18%20This%20Hard%20Land.m4a41430Bright Side Of The RoadVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file36807252266481112019792007-02-05T11:55:21Z2005-09-02T21:44:46Z128441002932947847552008-05-27T13:59:15ZAFECFC8346839C9DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/01%20Bright%20Side%20Of%20The%20Road.m4a41431GloriaVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file25771851577541122019662007-02-05T11:55:22Z2005-09-02T21:45:08Z128441002932947849122008-05-27T14:01:52ZAFECFC8346839C9EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/02%20Gloria.m4a41432MoondanceVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file44189602726241132019712007-02-05T11:55:23Z2005-09-02T21:45:21Z128441003032947851852008-05-27T14:06:25ZAFECFC8346839C9FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/03%20Moondance.m4a41433Baby Please Don't GoVan MorrisonBig Joe WilliamsBest Of Van MorrisonRockAAC audio file26595831628861142019662007-02-05T11:55:24Z2005-09-02T21:45:42Z128441002932947853482008-05-27T14:09:08ZAFECFC8346839CA0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/04%20Baby%20Please%20Don't%20Go.m4a-1-1434Have I Told You LatelyVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file42155992600381152019892007-02-05T11:55:26Z2005-09-02T21:45:54Z128441003032947856082008-05-27T14:13:28ZAFECFC8346839CA1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/05%20Have%20I%20Told%20You%20Lately.m4a-1-1435Brown Eyed GirlVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file29960911854791162019672007-02-05T11:55:27Z2005-09-02T21:46:12Z128441003032947857932008-05-27T14:16:33ZAFECFC8346839CA2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/06%20Brown%20Eyed%20Girl.m4a41436Sweet ThingVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file42593532627781172019712007-02-05T11:55:29Z2005-09-02T21:46:24Z128441002832947860562008-05-27T14:20:56ZAFECFC8346839CA3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/07%20Sweet%20Thing.m4a-1-1437Warm LoveVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file32926782033121182019732007-02-05T11:55:30Z2005-09-02T21:46:41Z128441002832947862592008-05-27T14:24:19ZAFECFC8346839CA4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/08%20Warm%20Love.m4a41438Wonderful RemarkVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file38764662388621192019832007-02-05T11:55:31Z2005-09-02T21:46:53Z128441002732947864982008-05-27T14:28:18ZAFECFC8346839CA5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/09%20Wonderful%20Remark.m4a41439Jackie Wilson SaidVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file290554817825811102019722007-02-05T11:55:32Z2005-09-02T21:47:07Z128441002832947866772008-05-27T14:31:17ZAFECFC8346839CA6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/10%20Jackie%20Wilson%20Said.m4a41440Full Force GaleVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file317534419511511112019722007-02-05T11:55:33Z2005-09-02T21:47:17Z128441002932947868722008-05-27T14:34:32ZAFECFC8346839CA7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/11%20Full%20Force%20Gale.m4a41441And It Stoned MeVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file437276826976711122019712007-02-05T11:55:35Z2005-09-02T21:47:28Z128441002732947871412008-05-27T14:39:01ZAFECFC8346839CA8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/12%20And%20It%20Stoned%20Me.m4a41442Here Comes The NightVan MorrisonBert BernsBest Of Van MorrisonRockAAC audio file272613816706611132019662007-02-05T11:55:36Z2005-09-02T21:47:43Z128441002732947873082008-05-27T14:41:48ZAFECFC8346839CA9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/13%20Here%20Comes%20The%20Night.m4a41443DominoVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file302228318554911142019712007-02-05T11:55:37Z2005-09-02T21:47:51Z128441002732947874942008-05-27T14:44:54ZAFECFC8346839CAAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/14%20Domino.m4a41444Did Ye Get Healed?Van MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file400534224691911152019872007-02-05T11:55:39Z2005-09-02T21:48:01Z128441002832947877412008-05-27T14:49:01ZAFECFC8346839CABFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/15%20Did%20Ye%20Get%20Healed_.m4a41445Wild NightVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file347579621385411162019712007-02-05T11:55:40Z2005-09-02T21:48:12Z128441002832947879552008-05-27T14:52:35ZAFECFC8346839CACFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/16%20Wild%20Night.m4a-1-1446Cleaning WindowsVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file457218128209711172019822007-02-05T11:55:42Z2005-09-02T21:48:23Z128441002632947882372008-05-27T14:57:17ZAFECFC8346839CADFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/17%20Cleaning%20Windows.m4a41447Whenever God Shines His LightVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file476911629421811182019892007-02-05T11:55:43Z2005-09-02T21:48:36Z128441002632947885312008-05-27T15:02:11ZAFECFC8346839CAEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/18%20Whenever%20God%20Shines%20His%20Light.m4a41448Queen Of The SlipstreamVan MorrisonVan MorrisonBest Of Van MorrisonRockAAC audio file478296729510011192019872007-02-05T11:55:45Z2005-09-02T21:48:49Z128441002532947888262008-05-27T15:07:06ZAFECFC8346839CAFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/19%20Queen%20Of%20The%20Slipstream.m4a41449Dweller On The ThresholdVan MorrisonHugh Murphy/Van MorrisonBest Of Van MorrisonRockAAC audio file460793528479111202019822007-02-05T11:55:47Z2005-09-02T21:49:02Z128441002532947891112008-05-27T15:11:51ZAFECFC8346839CB0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison/20%20Dweller%20On%20The%20Threshold.m4a-1-1450This House Is On FireNatalie MerchantNatalie MerchantMotherlandRockAAC audio file45912662832811111220012007-02-05T11:45:06Z2005-09-02T21:54:20Z128441001732938383252008-05-16T15:05:25ZAFECFC8346839CBFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/01%20This%20House%20Is%20On%20Fire.m4a-1-1451MotherlandNatalie MerchantNatalie MerchantMotherlandRockAAC audio file46349442859981121220012007-02-05T11:45:08Z2005-09-02T21:54:49Z128441001932938386112008-05-16T15:10:11ZAFECFC8346839CC0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/02%20Motherland.m4a41452Saint JudasNatalie MerchantNatalie MerchantMotherlandRockAAC audio file56056593459521131220012007-02-05T11:45:10Z2005-09-02T21:55:13Z128441001832938389562008-05-16T15:15:56ZAFECFC8346839CC1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/03%20Saint%20Judas.m4a41453Put The Law On YouNatalie MerchantNatalie MerchantMotherlandRockAAC audio file48880543016251141220012007-02-05T11:45:12Z2005-09-02T21:55:40Z128441001832938392582008-05-16T15:20:58ZAFECFC8346839CC2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/04%20Put%20The%20Law%20On%20You.m4a41454Build A LeveeNatalie MerchantNatalie MerchantMotherlandRockAAC audio file46514562870201151220012007-02-05T11:45:13Z2005-09-02T21:56:02Z128441001832938395452008-05-16T15:25:45ZAFECFC8346839CC3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/05%20Build%20A%20Levee.m4a-1-1455Golden BoyNatalie MerchantNatalie MerchantMotherlandRockAAC audio file40873672520741161220012007-02-05T11:45:15Z2005-09-02T21:56:21Z128441001832938397972008-05-16T15:29:57ZAFECFC8346839CC4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/06%20Golden%20Boy.m4a41456Henry DargerNatalie MerchantNatalie MerchantMotherlandRockAAC audio file43204242665861171220012007-02-05T11:45:16Z2005-09-02T21:56:37Z128441001932938400642008-05-16T15:34:24ZAFECFC8346839CC5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/07%20Henry%20Darger.m4a41457The Worst ThingNatalie MerchantNatalie MerchantMotherlandRockAAC audio file56413973481581181220012007-02-05T11:45:18Z2005-09-02T21:56:53Z128441001832938404122008-05-16T15:40:12ZWorst ThingAFECFC8346839CC6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/08%20The%20Worst%20Thing.m4a41458Tell YourselfNatalie MerchantNatalie MerchantMotherlandRockAAC audio file50859663137931191220012007-02-05T11:45:20Z2005-09-02T21:57:13Z128441001932938407262008-05-16T15:45:26ZAFECFC8346839CC7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/09%20Tell%20Yourself.m4a41459Just Can't LastNatalie MerchantNatalie MerchantMotherlandRockAAC audio file440403027174111101220012007-02-05T11:45:22Z2005-09-02T21:57:30Z128441001932938409972008-05-16T15:49:57ZAFECFC8346839CC8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/10%20Just%20Can't%20Last.m4a41460Not In This LifeNatalie MerchantNatalie MerchantMotherlandRockAAC audio file524222932349811111220012007-02-05T11:45:24Z2005-09-02T21:57:44Z128441001932938413212008-05-16T15:55:21ZAFECFC8346839CC9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/11%20Not%20In%20This%20Life.m4a41461I'm Not Gonna BegNatalie MerchantNatalie MerchantMotherlandRockAAC audio file357836622035511121220012007-02-05T11:45:25Z2005-09-02T21:58:01Z128441001932938415412008-05-16T15:59:01ZAFECFC8346839CCAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Motherland/12%20I'm%20Not%20Gonna%20Beg.m4a41462The LarkMoving HeartsTrad.; Donal Lunny; Donal Lunny; Donal Lunny; Trad.; Trad.; Trad.The StormWorldAAC audio file126914767832541619852007-02-05T11:44:30Z2005-09-02T22:02:24Z128441002232938321552008-05-16T13:22:35ZStormLarkAFECFC8346839CD3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/01%20The%20Lark.m4a41463The Titanic=An Irishman In Brittany; A Breton In ParisMoving HeartsEoghan O'Neill; Donal LunnyThe StormWorldAAC audio file53879063323922619852007-02-05T11:44:32Z2005-09-02T22:03:37Z128441002432938324872008-05-16T13:28:07ZStormTitanic=An Irishman In Brittany; A Breton In ParisAFECFC8346839CD4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/02%20The%20Titanic=An%20Irishman%20In%20Brittany%3B%20A%20Breton%20In%20Paris.m4a-1-1464The Storm=The Storm In The Teashirt; The Staff In The BaggotMoving HeartsDavy Spillane; Donal LunnyThe StormWorldAAC audio file41276712545123619852007-02-05T11:44:34Z2005-09-02T22:04:01Z128441002432938979972008-05-17T07:39:57ZStormStorm=The Storm In The Teashirt; The Staff In The BaggotAFECFC8346839CD5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/03%20The%20Storm=The%20Storm%20In%20The%20Teashirt%3B%20The%20Staff%20In%20The%20Baggot.m4a41465FinoreMoving HeartsDavy SpillaneThe StormWorldAAC audio file23523951436834619852007-02-05T11:44:34Z2005-09-02T22:04:19Z128441002532938981402008-05-17T07:42:20ZStormAFECFC8346839CD6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/04%20Finore.m4a-1-1466Tribute To Peadar O'DonnellMoving HeartsDonal LunnyThe StormWorldAAC audio file91928625672855619852007-02-05T11:44:38Z2005-09-02T22:04:30Z128441002332938334522008-05-16T13:44:12ZStormAFECFC8346839CD7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/05%20Tribute%20To%20Peadar%20O'Donnell.m4a41467May Morning DewMoving HeartsTrad.The StormWorldAAC audio file32028951968346619852007-02-05T11:44:39Z2005-09-02T22:05:05Z128441002332938336492008-05-16T13:47:29ZStormAFECFC8346839CD8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Moving%20Hearts/The%20Storm/06%20May%20Morning%20Dew.m4a41468Busted StuffDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file36965812276461111120022007-02-05T11:37:09Z2005-09-02T22:07:12Z128441001332934109262008-05-11T16:22:06ZAFECFC8346839CE6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/01%20Busted%20Stuff.m4a41469Grey StreetDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file49846983075701121120022007-02-05T11:37:11Z2005-09-02T22:07:37Z128441001332934112342008-05-11T16:27:14ZAFECFC8346839CE7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/02%20Grey%20Street.m4a41470Where Are You GoingDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file37790112328011131120022007-02-05T11:37:13Z2005-09-02T22:08:05Z128441001332934114662008-05-11T16:31:06ZAFECFC8346839CE8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/03%20Where%20Are%20You%20Going.m4a-1-1471You Never KnowDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file57285993534991141120022007-02-05T11:37:15Z2005-09-02T22:08:25Z128441001332934118202008-05-11T16:37:00ZAFECFC8346839CE9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/04%20You%20Never%20Know.m4a41472CaptainDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file36698012259981151120022007-02-05T11:37:16Z2005-09-02T22:08:52Z128441001332934120462008-05-11T16:40:46ZAFECFC8346839CEAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/05%20Captain.m4a41473RavenDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file54718773376631161120022007-02-05T11:37:18Z2005-09-02T22:09:08Z128441001332934123842008-05-11T16:46:24ZAFECFC8346839CEBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/06%20Raven.m4a41474Grace Is GoneDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file45120172783591171120022007-02-05T11:37:20Z2005-09-02T22:09:30Z128441001332934126622008-05-11T16:51:02ZAFECFC8346839CECFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/07%20Grace%20Is%20Gone.m4a-1-1475Kit Kat JamDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file34493432148291181120022007-02-05T11:37:21Z2005-09-02T22:09:48Z128441001332934128772008-05-11T16:54:37ZAFECFC8346839CEDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/08%20Kit%20Kat%20Jam.m4a41476Digging A DitchDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file46554392872061191120022007-02-05T11:37:23Z2005-09-02T22:10:01Z128441001332934131642008-05-11T16:59:24ZAFECFC8346839CEEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/09%20Digging%20A%20Ditch.m4a41477Big Eyed FishDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file493704530448111101120022007-02-05T11:37:25Z2005-09-02T22:10:18Z128441001332934134682008-05-11T17:04:28ZAFECFC8346839CEFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/10%20Big%20Eyed%20Fish.m4a41478BartenderDave Matthews BandDave Matthews BandBusted StuffRockAAC audio file829205151171911111120022007-02-05T11:37:27Z2005-09-02T22:10:35Z128441001332934139802008-05-11T17:13:00ZAFECFC8346839CF0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Busted%20Stuff/11%20Bartender.m4a-1-1479The City Of ChicagoChristy MooreBarry MooreRide OnWorldAAC audio file22045871398751111219842007-02-05T11:29:47Z2005-09-02T22:12:44Z128441002132933898822008-05-11T10:31:22ZCity Of ChicagoAFECFC8346839CFFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/01%20The%20City%20Of%20Chicago.m4a41480Ride OnChristy MooreJimmy MacCarthyRide OnWorldAAC audio file39458022479871121219842007-02-05T11:29:48Z2005-09-02T22:13:00Z128441002232933901302008-05-11T10:35:30ZAFECFC8346839D00Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/02%20Ride%20On.m4a41481Vive La Quinte BrigadaChristy MooreChristy MooreRide OnWorldAAC audio file53018813331811131219842007-02-05T11:29:51Z2005-09-02T22:13:23Z128441002632933904632008-05-11T10:41:03ZAFECFC8346839D01Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/03%20Vive%20La%20Quinte%20Brigada.m4a-1-1482Songs Of Wandering AongusChristy MooreW B Yeats & Christy MooreRide OnWorldAAC audio file36365432266481141219842007-02-05T11:29:52Z2005-09-02T22:13:52Z128441002532933906902008-05-11T10:44:50ZAFECFC8346839D02Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/04%20Songs%20Of%20Wandering%20Aongus.m4a41483McIlhattonChristy MooreBobby SandsRide OnWorldAAC audio file29180631802311151219842007-02-05T11:29:53Z2005-09-02T22:14:10Z128441002532933908702008-05-11T10:47:50ZAFECFC8346839D03Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/05%20McIlhatton.m4a41484LisdoonvarnaChristy MooreChristy MooreRide OnWorldAAC audio file43149232698841161219842007-02-05T11:29:55Z2005-09-02T22:14:23Z128441002532933911402008-05-11T10:52:20ZAFECFC8346839D04Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/06%20Lisdoonvarna.m4a41485Among The Wicklow HillsChristy MoorePearse TurnerRide OnWorldAAC audio file27217971688541171219842007-02-05T11:29:56Z2005-09-02T22:14:42Z128441002532933913092008-05-11T10:55:09ZAFECFC8346839D05Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/07%20Among%20The%20Wicklow%20Hills.m4a41486Sonny's DreamChristy MooreRon HynesRide OnWorldAAC audio file31089101930491181219842007-02-05T11:29:57Z2005-09-02T22:14:53Z128441002432933915022008-05-11T10:58:22ZAFECFC8346839D06Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/08%20Sonny's%20Dream.m4a41487The Dying SoldierChristy MooreGer CostelloRide OnWorldAAC audio file26474121669261191219842007-02-05T11:29:58Z2005-09-02T22:15:06Z128441002432933916692008-05-11T11:01:09ZDying SoldierAFECFC8346839D07Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/09%20The%20Dying%20Soldier.m4a41488El SalvadorChristy MooreJohnny DuhanRide OnWorldAAC audio file350376521898511101219842007-02-05T11:29:59Z2005-09-02T22:15:17Z128441002332933918882008-05-11T11:04:48ZAFECFC8346839D08Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/10%20El%20Salvador.m4a41489Back Home In DerryChristy MooreBobby SandsRide OnWorldAAC audio file363861422790211111219842007-02-05T11:30:00Z2005-09-02T22:15:30Z128441002332933921162008-05-11T11:08:36ZAFECFC8346839D09Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/11%20Back%20Home%20In%20Derry.m4a41490The Least We Can DoChristy MooreGerry MurrayRide OnWorldAAC audio file327858720152411121219842007-02-05T11:30:02Z2005-09-02T22:15:43Z128441002332933923172008-05-11T11:11:57ZLeast We Can DoAFECFC8346839D0AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Christy%20Moore/Ride%20On/12%20The%20Least%20We%20Can%20Do.m4a41491Building A MysterySarah McLachlanPierre MarchandSurfacingRockAAC audio file40104452472441111019972007-02-05T11:50:26Z2005-09-02T22:42:52Z128441005632918244462008-04-23T07:40:46ZAFECFC8346839D17Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/01%20Building%20A%20Mystery%201.m4a41492I Love YouSarah McLachlanSarah McLachlanSurfacingRockAAC audio file46058612841411121019972007-02-05T11:50:28Z2005-09-02T22:43:17Z128441005832918247302008-04-23T07:45:30ZAFECFC8346839D18Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/02%20I%20Love%20You%201.m4a-1-1493Sweet SurrenderSarah McLachlanSarah McLachlanSurfacingRockAAC audio file38894752405571131019972007-02-05T11:50:29Z2005-09-02T22:43:41Z128441005832918249712008-04-23T07:49:31ZAFECFC8346839D19Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/03%20Sweet%20Surrender%201.m4a41494AdiaSarah McLachlanPierre MarchandSurfacingRockAAC audio file39628112445971141019972007-02-05T11:50:31Z2005-09-02T22:44:00Z128441005832918252152008-04-23T07:53:35ZAFECFC8346839D1AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/04%20Adia%201.m4a41495Do What You Have To DoSarah McLachlanColeen WolstenholmeSurfacingRockAAC audio file36824012267181151019972007-02-05T11:50:32Z2005-09-02T22:44:18Z128441005832918254422008-04-23T07:57:22ZAFECFC8346839D1BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/05%20Do%20What%20You%20Have%20To%20Do%201.m4a-1-1496WitnessSarah McLachlanPierre MarchandSurfacingRockAAC audio file46287302877401161019972007-02-05T11:50:34Z2005-09-02T22:44:33Z128441005832918257302008-04-23T08:02:10ZAFECFC8346839D1CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/06%20Witness%201.m4a41497AngelSarah McLachlanSarah McLachlanSurfacingRockAAC audio file43796922703941171019972007-02-05T11:50:35Z2005-09-02T22:44:52Z128441005932918260002008-04-23T08:06:40ZAFECFC8346839D1DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/07%20Angel%201.m4a41498Black & WhiteSarah McLachlanSarah McLachlanSurfacingRockAAC audio file49042203024611181019972007-02-05T11:50:37Z2005-09-02T22:45:09Z128441005732918263022008-04-23T08:11:42ZAFECFC8346839D1EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/08%20Black%20&%20White%201.m4a41499Full Of GraceSarah McLachlanSarah McLachlanSurfacingRockAAC audio file35493102210981191019972007-02-05T11:50:39Z2005-09-02T22:45:27Z128441005732918265242008-04-23T08:15:24ZAFECFC8346839D1FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/09%20Full%20Of%20Grace%201.m4a41500Last DanceSarah McLachlanSarah McLachlanSurfacingRockAAC audio file247487715222811101019972007-02-05T11:50:40Z2005-09-02T22:45:39Z128441005732918266762008-04-23T08:17:56ZAFECFC8346839D20Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Surfacing/10%20Last%20Dance%201.m4a41501ChopinImpromptu #4 In C Sharp Minor, Op. 66, "Fantasie-Impromptu"Frederic ChopinChopin Piano FavouritesClassicalAAC audio file52778783293271111520002007-02-05T11:40:44Z2005-09-02T22:47:36Z128441001132829442432008-01-11T12:57:23ZAFECFC8346839D32Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Impromptu%20%234%20In%20C%20Sharp%20Minor,%20Op.%2066,%20_Fantasie-Impromptu_/Chopin%20Piano%20Favourites/01%20Chopin.m4a41502ChopinMazurka #5 in B flat, Op.7/1Frederic ChopinChopin Piano FavouritesClassicalAAC audio file43682252719971121520002007-02-05T11:43:22Z2005-09-02T22:48:07Z128441001132938197132008-05-16T09:55:13ZAFECFC8346839D33Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mazurka%20%235%20in%20B%20flat,%20Op.7_1/Chopin%20Piano%20Favourites/02%20Chopin.m4a41503ChopinMazurka #23 in D, Op. 33/2Frederic ChopinChopin Piano FavouritesClassicalAAC audio file60440643769971131520002007-02-05T11:43:19Z2005-09-02T22:48:29Z128441001132938200902008-05-16T10:01:30ZAFECFC8346839D34Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mazurka%20%2323%20in%20D,%20Op.%2033_2/Chopin%20Piano%20Favourites/03%20Chopin.m4a-1-1504ChopinMazurka #41 in C sharp minor, Op. 63/3Frederic ChopinChopin Piano FavouritesClassicalAAC audio file37871982359821141520002007-02-05T11:43:20Z2005-09-02T22:48:55Z128441001132938203262008-05-16T10:05:26ZAFECFC8346839D35Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mazurka%20%2341%20in%20C%20sharp%20minor,%20Op.%2063_3/Chopin%20Piano%20Favourites/04%20Chopin.m4a41505ChopinBallade #1 in G minor, Op. 23Frederic ChopinChopin Piano FavouritesClassicalAAC audio file17318461079941151520002007-02-05T11:28:02Z2005-09-02T22:49:35Z12844100832907637582008-04-11T01:02:38ZAFECFC8346839D36Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ballade%20%231%20In%20G%20Minor,%20Op.%2023/Chopin%20Piano%20Favourites/05%20Chopin.m4a-1-1506ChopinPrelude #4 in E minor, Op. 28/4Frederic ChopinChopin Piano FavouritesClassicalAAC audio file53501653369891161520002007-02-05T11:48:48Z2005-09-02T22:49:49Z128441003732925934622008-05-02T05:17:42ZAFECFC8346839D37Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Prelude%20%234%20in%20E%20minor,%20Op.%2028_4/Chopin%20Piano%20Favourites/06%20Chopin.m4a41507ChopinPrelude #15 in D flat, Op. 28/15Frederic ChopinChopin Piano FavouritesClassicalAAC audio file89338315569981171520002007-02-05T11:48:43Z2005-09-02T22:50:15Z128441003832925940192008-05-02T05:26:59ZAFECFC8346839D38Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Prelude%20%2315%20in%20D%20flat,%20Op.%2028_15/Chopin%20Piano%20Favourites/07%20Chopin.m4a41508ChopinPrelude #17 in A flat, Op. 28/17Frederic ChopinChopin Piano FavouritesClassicalAAC audio file25297061599841181520002007-02-05T11:48:44Z2005-09-02T22:50:46Z128441003932925941792008-05-02T05:29:39ZAFECFC8346839D39Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Prelude%20%2317%20in%20A%20flat,%20Op.%2028_17/Chopin%20Piano%20Favourites/08%20Chopin.m4a41509ChopinPrelude #20 in C minor, Op. 28/20Frederic ChopinChopin Piano FavouritesClassicalAAC audio file62361903889791191520002007-02-05T11:48:46Z2005-09-02T22:50:55Z128441003832925945682008-05-02T05:36:08ZAFECFC8346839D3AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Prelude%20%2320%20in%20C%20minor,%20Op.%2028_20/Chopin%20Piano%20Favourites/09%20Chopin.m4a41510ChopinPiano Sonata #2 in B flat minor, Op. 35, "Funeral March"Frederic ChopinChopin Piano FavouritesClassicalAAC audio file702698143999311101520002007-02-05T11:48:35Z2005-09-02T22:51:15Z128441003632925904452008-05-02T04:27:25ZAFECFC8346839D3BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Piano%20Sonata%20%232%20in%20B%20flat%20minor,%20Op.%2035,%20_Funeral%20March_/Chopin%20Piano%20Favourites/10%20Chopin.m4a41511ChopinPolonaise #3 in A, Op. 40/1, "Military"Frederic ChopinChopin Piano FavouritesClassicalAAC audio file565465135498511111520002007-02-05T11:48:37Z2005-09-02T22:51:37Z128441003632925908002008-05-02T04:33:20ZAFECFC8346839D3CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Polonaise%20%233%20in%20A,%20Op.%2040_1,%20_Military_/Chopin%20Piano%20Favourites/11%20Chopin.m4a-1-1512ChopinPolonaise #6 in A flat, Op. 53, "Heroic"Frederic ChopinChopin Piano FavouritesClassicalAAC audio file175173710899311121520002007-02-05T11:48:37Z2005-09-02T22:51:54Z128441003732925909092008-05-02T04:35:09ZAFECFC8346839D3DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Polonaise%20%236%20in%20A%20flat,%20Op.%2053,%20_Heroic_/Chopin%20Piano%20Favourites/12%20Chopin.m4a41513ChopinBerceuse in D flat, Op. 57Frederic ChopinChopin Piano FavouritesClassicalAAC audio file438075727399411131520002007-02-05T11:28:07Z2005-09-02T22:51:59Z128441001032907659552008-04-11T01:39:15ZAFECFC8346839D3EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Berceuse%20in%20D%20flat,%20Op.%2057/Chopin%20Piano%20Favourites/13%20Chopin.m4a41514ChopinScherzo #2 in B flat minor, Op. 31Frederic ChopinChopin Piano FavouritesClassicalAAC audio file285999518199611141520002007-02-05T11:50:41Z2005-09-02T22:52:12Z128441005332918268582008-04-23T08:20:58ZAFECFC8346839D3FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Scherzo%20%232%20in%20B%20flat%20minor,%20Op.%2031/Chopin%20Piano%20Favourites/14%20Chopin.m4a41515ChopinBallade #1 In G Minor, Op. 23Frederic ChopinChopin Piano FavouritesClassicalAAC audio file966145859628611151520002007-02-05T11:28:05Z2005-09-02T22:52:20Z12844100832907643542008-04-11T01:12:34ZAFECFC8346839D40Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ballade%20%231%20In%20G%20Minor,%20Op.%2023/Chopin%20Piano%20Favourites/15%20Chopin.m4a41516Got To Go BackVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file48633023009521111019862007-02-05T11:57:36Z2005-09-02T22:53:57Z128441002432916781762008-04-21T15:02:56ZAFECFC8346839D4DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/01%20Got%20To%20Go%20Back.m4a41517Oh The Warm FeelingVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file31937771990161121019862007-02-05T11:57:37Z2005-09-02T22:54:28Z128441002232916783752008-04-21T15:06:15ZAFECFC8346839D4EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/02%20Oh%20The%20Warm%20Feeling.m4a41518Foreign WindowVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file51928963228251131019862007-02-05T11:57:39Z2005-09-02T22:54:46Z128441002232916786982008-04-21T15:11:38ZAFECFC8346839D4FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/03%20Foreign%20Window.m4a41519A Town Called ParadiseVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file60440503756501141019862007-02-05T11:57:41Z2005-09-02T22:55:13Z128441002132916790732008-04-21T15:17:53ZTown Called ParadiseAFECFC8346839D50Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/04%20A%20Town%20Called%20Paradise.m4a41520In The GardenVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file56139963480651151019862007-02-05T11:57:43Z2005-09-02T22:55:41Z128441002132916794212008-04-21T15:23:41ZAFECFC8346839D51Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/05%20In%20The%20Garden.m4a41521Tir Na NogVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file70350254369281161019862007-02-05T11:57:46Z2005-09-02T22:56:05Z128441002132916798582008-04-21T15:30:58ZAFECFC8346839D52Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/06%20Tir%20Na%20Nog.m4a41522Here Comes The KnightVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file35889152232581171019862007-02-05T11:57:47Z2005-09-02T22:56:33Z128441002132916800822008-04-21T15:34:42ZAFECFC8346839D53Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/07%20Here%20Comes%20The%20Knight.m4a41523Thanks For The InformationVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file70631574383911181019862007-02-05T11:57:49Z2005-09-02T22:56:47Z128441002232916805202008-04-21T15:42:00ZAFECFC8346839D54Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/08%20Thanks%20For%20The%20Information.m4a-1-1524One Irish RoverVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file34150822124841191019862007-02-05T11:57:51Z2005-09-02T22:57:12Z128441002132916807322008-04-21T15:45:32ZAFECFC8346839D55Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/09%20One%20Irish%20Rover.m4a41525Ivory TowerVan MorrisonVan MorrisonNo Guru, No Method, No TeacherRockAAC audio file347447021406311101019862007-02-05T11:57:52Z2005-09-02T22:57:24Z128441002132916809462008-04-21T15:49:06ZAFECFC8346839D56Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/No%20Guru,%20No%20Method,%20No%20Teacher/10%20Ivory%20Tower.m4a-1-1526Who Will Save Your SoulJewelKilcher, JewelPieces Of YouRockAAC audio file39063292411141111419942007-02-05T11:41:30Z2005-09-03T03:15:49Z128441001932937963612008-05-16T03:26:01ZAFECFC8346839D67Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/01%20Who%20Will%20Save%20Your%20Soul.m4a41527Pieces Of YouJewelKilcher, JewelPieces Of YouRockAAC audio file41436312565551121419942007-02-05T11:41:32Z2005-09-03T03:16:14Z128441002032937966172008-05-16T03:30:17ZAFECFC8346839D68Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/02%20Pieces%20Of%20You.m4a41528Little SisterJewelKilcher, JewelPieces Of YouRockAAC audio file24409751512531131419942007-02-05T11:41:33Z2005-09-03T03:16:38Z128441002032937967682008-05-16T03:32:48ZAFECFC8346839D69Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/03%20Little%20Sister.m4a41529Foolish GamesJewelKilcher, JewelPieces Of YouRockAAC audio file54887563406581141419942007-02-05T11:41:35Z2005-09-03T03:16:51Z128441002132937971092008-05-16T03:38:29ZAFECFC8346839D6AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/04%20Foolish%20Games.m4a41530Near You AlwaysJewelKilcher, JewelPieces Of YouRockAAC audio file30601151890081151419942007-02-05T11:41:36Z2005-09-03T03:17:18Z128441002132937972982008-05-16T03:41:38ZAFECFC8346839D6BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/05%20Near%20You%20Always.m4a41531PaintersJewelKilcher, JewelPieces Of YouRockAAC audio file65389564048611161419942007-02-05T11:41:38Z2005-09-03T03:17:31Z128441002132937977032008-05-16T03:48:23ZAFECFC8346839D6CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/06%20Painters.m4a41532Morning SongJewelKilcher, JewelPieces Of YouRockAAC audio file34908432158281171419942007-02-05T11:41:39Z2005-09-03T03:17:59Z128441002132937979192008-05-16T03:51:59ZAFECFC8346839D6DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/07%20Morning%20Song.m4a41533AdrianJewelKilcher, JewelPieces Of YouRockAAC audio file68449144231121181419942007-02-05T11:41:41Z2005-09-03T03:18:13Z128441002032937983422008-05-16T03:59:02ZAFECFC8346839D6EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/08%20Adrian.m4a41534I'm SensitiveJewelKilcher, JewelPieces Of YouRockAAC audio file28404411766791191419942007-02-05T11:41:42Z2005-09-03T03:18:39Z128441002132937985192008-05-16T04:01:59ZAFECFC8346839D6FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/09%20I'm%20Sensitive.m4a41535You Were Meant For MeJewelKilcher, JewelPieces Of YouRockAAC audio file410223125404811101419942007-02-05T11:41:44Z2005-09-03T03:18:49Z128441002032937987732008-05-16T04:06:13ZAFECFC8346839D70Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/10%20You%20Were%20Meant%20For%20Me.m4a-1-1536Don'tJewelKilcher, JewelPieces Of YouRockAAC audio file348430721698911111419942007-02-05T11:41:45Z2005-09-03T03:19:03Z128441001932937989902008-05-16T04:09:50ZAFECFC8346839D71Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/11%20Don't.m4a41537DaddyJewelKilcher, JewelPieces Of YouRockAAC audio file372464823115311121419942007-02-05T11:41:46Z2005-09-03T03:19:15Z128441001932937992212008-05-16T04:13:41ZAFECFC8346839D72Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/12%20Daddy.m4a41538Angel Standing ByJewelKilcher, JewelPieces Of YouRockAAC audio file257965715975111131419942007-02-05T11:41:47Z2005-09-03T03:19:27Z128441001932937993812008-05-16T04:16:21ZAFECFC8346839D73Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/13%20Angel%20Standing%20By.m4a41539AmenJewelKilcher, JewelPieces Of YouRockAAC audio file441578327262411141419942007-02-05T11:41:49Z2005-09-03T03:19:35Z128441001832937996532008-05-16T04:20:53ZAFECFC8346839D74Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Jewel/Pieces%20Of%20You/14%20Amen.m4a41540No More "I Love You's"Annie LennoxD. Freeman & J. HughesMedusaPopAAC audio file47363172928251111019952007-02-05T11:27:30Z2005-09-03T03:20:22Z12844100832907579212008-04-10T23:25:21ZAFECFC8346839D81Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/01%20No%20More%20_I%20Love%20You's_.m4a41541Take Me To The RiverAnnie LennoxA. Green/M. HodgesMedusaPopAAC audio file34586132132731121019952007-02-05T11:27:31Z2005-09-03T03:20:51Z12844100932907581342008-04-10T23:28:54ZAFECFC8346839D82Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/02%20Take%20Me%20To%20The%20River.m4a41542A Whiter Shade Of PaleAnnie LennoxG. Brooker & K. ReidMedusaPopAAC audio file51322473166491131019952007-02-05T11:27:33Z2005-09-03T03:21:09Z12844100932907584512008-04-10T23:34:11ZWhiter Shade Of PaleAFECFC8346839D83Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/03%20A%20Whiter%20Shade%20Of%20Pale.m4a41543Don't Let It Bring You DownAnnie LennoxNeil YoungMedusaPopAAC audio file35347192187761141019952007-02-05T11:27:34Z2005-09-03T03:21:32Z12844100932907586702008-04-10T23:37:50ZAFECFC8346839D84Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/04%20Don't%20Let%20It%20Bring%20You%20Down.m4a41544Train In VainAnnie LennoxJones & StrummerMedusaPopAAC audio file45880942844661151019952007-02-05T11:27:36Z2005-09-03T03:21:48Z12844100832907589542008-04-10T23:42:34ZAFECFC8346839D85Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/05%20Train%20In%20Vain.m4a41545I Can't Get Next To YouAnnie LennoxB. Strong & N. WhitfieldMedusaPopAAC audio file30751391888461161019952007-02-05T11:27:37Z2005-09-03T03:22:07Z12844100932907591432008-04-10T23:45:43ZAFECFC8346839D86Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/06%20I%20Can't%20Get%20Next%20To%20You.m4a41546Downtown LightsAnnie LennoxP. BuchananMedusaPopAAC audio file65337654045131171019952007-02-05T11:27:39Z2005-09-03T03:22:19Z12844100732907595482008-04-10T23:52:28ZAFECFC8346839D87Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/07%20Downtown%20Lights.m4a41547Thin Line Between Love And HateAnnie LennoxJ. Members/R. PoindexterMedusaPopAAC audio file47841982953331181019952007-02-05T11:27:41Z2005-09-03T03:22:43Z12844100832907598432008-04-10T23:57:23ZAFECFC8346839D88Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/08%20Thin%20Line%20Between%20Love%20And%20Hate.m4a41548Waiting In VainAnnie LennoxBob MarleyMedusaPopAAC audio file55216993407281191019952007-02-05T11:27:43Z2005-09-03T03:23:00Z12844100732907601842008-04-11T00:03:04ZAFECFC8346839D89Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/09%20Waiting%20In%20Vain.m4a41549Something So RightAnnie LennoxPaul SimonMedusaPopAAC audio file382072323579711101019952007-02-05T11:27:44Z2005-09-03T03:23:19Z12844100732907604192008-04-11T00:06:59ZAFECFC8346839D8AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Medusa/10%20Something%20So%20Right.m4a41550La SitieraOmara PortuondoRafael LópezBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file38455522369811111120002007-02-05T11:46:37Z2005-09-03T03:24:51Z128441003532938542652008-05-16T19:31:05ZAFECFC8346839D98Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/01%20La%20Sitiera.m4a41551He Perdido ContigoOmara PortuondoLuis Cardenas/María Teresa VeraBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file37240702293881121120002007-02-05T11:46:38Z2005-09-03T03:25:14Z128441003632938544942008-05-16T19:34:54ZAFECFC8346839D99Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/02%20He%20Perdido%20Contigo.m4a-1-1552¿Dónde Estabas Tú?Omara PortuondoErnesto DuarteBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file36939302274381131120002007-02-05T11:46:39Z2005-09-03T03:25:25Z128441003632938547212008-05-16T19:38:41ZAFECFC8346839D9AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/03%20%C2%BFDo%CC%81nde%20Estabas%20Tu%CC%81_.m4a-1-1553Mariposita De PrimaveraOmara PortuondoMiguel MatamorosBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file28436071743571141120002007-02-05T11:46:40Z2005-09-03T03:25:44Z128441003632938548962008-05-16T19:41:36ZAFECFC8346839D9BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/04%20Mariposita%20De%20Primavera.m4a-1-1554Canta Lo SentimentalOmara PortuondoUrbano Gómez MontielBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file33532192061911151120002007-02-05T11:46:42Z2005-09-03T03:25:59Z128441003532938551022008-05-16T19:45:02ZAFECFC8346839D9CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/05%20Canta%20Lo%20Sentimental.m4a41555Ella Y YoOmara PortuondoOscar HernándezBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file33246442044271161120002007-02-05T11:46:43Z2005-09-03T03:26:14Z128441003632938553062008-05-16T19:48:26ZAFECFC8346839D9DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/06%20Ella%20Y%20Yo.m4a41556No Me Vayas A Engañar.Omara PortuondoOsvaldo FarrésBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file28233461731491171120002007-02-05T11:46:44Z2005-09-03T03:26:28Z128441003532938554792008-05-16T19:51:19ZAFECFC8346839D9EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/07%20No%20Me%20Vayas%20A%20Engan%CC%83ar..m4a41557No Me Llores MásOmara PortuondoArsenio RodríguezBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file48539882995121181120002007-02-05T11:46:45Z2005-09-03T03:26:40Z128441003532938557792008-05-16T19:56:19ZAFECFC8346839D9FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/08%20No%20Me%20Llores%20Ma%CC%81s.m4a41558Veinte AñosOmara PortuondoMaría Teresa VeraBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file45962312835831191120002007-02-05T11:46:47Z2005-09-03T03:27:00Z128441003532938560622008-05-16T20:01:02ZAFECFC8346839DA0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/09%20Veinte%20An%CC%83os.m4a41559El Hombre Que Yo Amé (The Man I Love)Omara PortuondoGeorge & Ira GershwinBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file311595619135411101120002007-02-05T11:46:48Z2005-09-03T03:27:17Z128441003532938562542008-05-16T20:04:14ZAFECFC8346839DA1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/10%20El%20Hombre%20Que%20Yo%20Ame%CC%81%20(The%20Man%20I%20Love).m4a-1-1560Siempre En Mi CorazónOmara PortuondoErnesto LecuonaBuena Vista Social Club Presents Omara PortuondoLatinAAC audio file361978522288611111120002007-02-05T11:46:49Z2005-09-03T03:27:29Z128441003532938564772008-05-16T20:07:57ZAFECFC8346839DA2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Omara%20Portuondo/Buena%20Vista%20Social%20Club%20Presents%20Omara%20Portuondo/11%20Siempre%20En%20Mi%20Corazo%CC%81n.m4a-1-1561Helter SkelterU2John Lennon/Paul McCartneyRattle And HumRockAAC audio file30731831885911111719882007-02-05T11:53:36Z2005-09-03T03:55:50Z128441004432947803702008-05-27T12:46:10ZAFECFC8346839E3EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/01%20Helter%20Skelter.m4a41562Van Diemen's LandU2The Edge/U2Rattle And HumRockAAC audio file30069851845501121719882007-02-05T11:53:37Z2005-09-03T03:56:07Z128441004432947805552008-05-27T12:49:15ZEdge/U2AFECFC8346839E3FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/02%20Van%20Diemen's%20Land.m4a41563DesireU2Bono/U2Rattle And HumRockAAC audio file29023131793951131719882007-02-05T11:53:39Z2005-09-03T03:56:24Z128441004432947807342008-05-27T12:52:14ZAFECFC8346839E40Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/03%20Desire.m4a41564Hawkmoon 269U2Bono/U2Rattle And HumRockAAC audio file61861573824071141719882007-02-05T11:53:41Z2005-09-03T03:56:38Z128441004432947811172008-05-27T12:58:37ZAFECFC8346839E41Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/04%20Hawkmoon%20269.m4a-1-1565All Along The WatchtowerU2Bob DylanRattle And HumRockAAC audio file42830512641021151719882007-02-05T11:53:42Z2005-09-03T03:57:05Z128441004232947813812008-05-27T13:03:01ZAFECFC8346839E42Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/05%20All%20Along%20The%20Watchtower.m4a41566I Still Haven't Found What I'm Looking forU2Bono/U2Rattle And HumRockAAC audio file57487823545901161719882007-02-05T11:53:44Z2005-09-03T03:57:23Z128441004332947817352008-05-27T13:08:55ZAFECFC8346839E43Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/06%20I%20Still%20Haven't%20Found%20What%20I'm%20Looking%20for.m4a41567Freedom For My PeopleU2Bobby Robinson/Macie Mabins/Sterling MageeRattle And HumRockAAC audio file644103370571171719882007-02-05T11:53:45Z2005-09-03T03:57:45Z128441004232947817722008-05-27T13:09:32ZAFECFC8346839E44Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/07%20Freedom%20For%20My%20People.m4a41568Silver And GoldU2Bono/U2Rattle And HumRockAAC audio file56907163509911181719882007-02-05T11:53:47Z2005-09-03T03:57:48Z128441004232947821232008-05-27T13:15:23ZAFECFC8346839E45Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/08%20Silver%20And%20Gold.m4a41569Pride (In The Name Of Love)U2Bono/U2Rattle And HumRockAAC audio file43125832664701191719882007-02-05T11:53:48Z2005-09-03T03:58:08Z128441004432947823902008-05-27T13:19:50ZAFECFC8346839E46Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/09%20Pride%20(In%20The%20Name%20Of%20Love).m4a-1-1570Angel Of HarlemU2Bono/U2Rattle And HumRockAAC audio file372491422936511101719882007-02-05T11:53:50Z2005-09-03T03:58:23Z128441004432947826192008-05-27T13:23:39ZAFECFC8346839E47Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/10%20Angel%20Of%20Harlem.m4a41571Love Rescue MeU2Bob Dylan/Bono/U2Rattle And HumRockAAC audio file620713738447411111719882007-02-05T11:53:52Z2005-09-03T03:58:35Z128441004232947830042008-05-27T13:30:04ZAFECFC8346839E48Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/11%20Love%20Rescue%20Me.m4a-1-1572When Love Comes To TownU2Bono/U2Rattle And HumRockAAC audio file411916325576611121719882007-02-05T11:53:53Z2005-09-03T03:58:55Z128441004332947832592008-05-27T13:34:19ZAFECFC8346839E49Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/12%20When%20Love%20Comes%20To%20Town.m4a41573HeartlandU2Bono/U2Rattle And HumRockAAC audio file490183630327411131719882007-02-05T11:53:55Z2005-09-03T03:59:07Z128441004232947835632008-05-27T13:39:23ZAFECFC8346839E4AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/13%20Heartland.m4a41574God Part IIU2Bono/U2Rattle And HumRockAAC audio file318471819564911141719882007-02-05T11:53:56Z2005-09-03T03:59:21Z128441004132947837582008-05-27T13:42:38ZAFECFC8346839E4BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/14%20God%20Part%20II.m4a41575The Star Spangled BannerU2TraditionalRattle And HumRockAAC audio file7405174302511151719882007-02-05T11:53:56Z2005-09-03T03:59:31Z128441004132947838012008-05-27T13:43:21ZStar Spangled BannerAFECFC8346839E4CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/15%20The%20Star%20Spangled%20Banner.m4a41576Bullet The Blue SkyU2Bono/U2Rattle And HumRockAAC audio file546123933692011161719882007-02-05T11:53:58Z2005-09-03T03:59:33Z128441004132947841382008-05-27T13:48:58ZAFECFC8346839E4DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/16%20Bullet%20The%20Blue%20Sky.m4a41577All I Want Is YouU2Bono/U2Rattle And HumRockAAC audio file631961238993111171719882007-02-05T11:54:00Z2005-09-03T03:59:48Z128441004032947845282008-05-27T13:55:28ZAFECFC8346839E4EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/U2/Rattle%20And%20Hum/17%20All%20I%20Want%20Is%20You.m4a41578Sweet Baby JamesJames TaylorJames TaylorLive (Disc 1)RockAAC audio file41107602533511211519932007-02-05T11:40:47Z2005-09-03T04:00:44Z128441001632937890852008-05-16T01:24:45ZAFECFC8346839E60Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-01%20Sweet%20Baby%20James.m4a41579Traffic JamJames TaylorJames TaylorLive (Disc 1)RockAAC audio file21445391306571221519932007-02-05T11:40:48Z2005-09-03T04:01:09Z128441001432936018752008-05-13T21:24:35ZAFECFC8346839E61Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-02%20Traffic%20Jam.m4a41580Handy ManJames TaylorJimmy Jones, Otis BlackwellLive (Disc 1)RockAAC audio file34395402114621231519932007-02-05T11:40:49Z2005-09-03T04:01:20Z128441001432937893102008-05-16T01:28:30ZAFECFC8346839E62Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-03%20Handy%20Man.m4a41581Your Smiling FaceJames TaylorJames TaylorLive (Disc 1)RockAAC audio file29930921835981241519932007-02-05T11:40:50Z2005-09-03T04:01:36Z128441001432937894942008-05-16T01:31:34ZAFECFC8346839E63Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-04%20Your%20Smiling%20Face.m4a41582Secret O' LifeJames TaylorJames TaylorLive (Disc 1)RockAAC audio file36712412259281251519932007-02-05T11:40:52Z2005-09-03T04:01:50Z128441001432937897202008-05-16T01:35:20ZAFECFC8346839E64Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-05%20Secret%20O'%20Life.m4a41583Shed A Little LightJames TaylorJames TaylorLive (Disc 1)RockAAC audio file44225182727161261519932007-02-05T11:40:53Z2005-09-03T04:02:06Z128441001632937899932008-05-16T01:39:53ZAFECFC8346839E65Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-06%20Shed%20A%20Little%20Light.m4a41584Everybody Has The BluesJames TaylorJames TaylorLive (Disc 1)RockAAC audio file25167291538531271519932007-02-05T11:40:54Z2005-09-03T04:02:25Z128441001432937901462008-05-16T01:42:26ZAFECFC8346839E66Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-07%20Everybody%20Has%20The%20Blues.m4a41585SteamrollerJames TaylorJames TaylorLive (Disc 1)RockAAC audio file53569503303951281519932007-02-05T11:40:56Z2005-09-03T04:02:35Z128441001432937904772008-05-16T01:47:57ZAFECFC8346839E67Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-08%20Steamroller.m4a41586MexicoJames TaylorJames TaylorLive (Disc 1)RockAAC audio file34467042119961291519932007-02-05T11:40:58Z2005-09-03T04:02:55Z128441001532937906892008-05-16T01:51:29ZAFECFC8346839E68Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-09%20Mexico.m4a41587MillworkerJames TaylorJames TaylorLive (Disc 1)RockAAC audio file430719826558812101519932007-02-05T11:40:59Z2005-09-03T04:03:07Z128441001532937909542008-05-16T01:55:54ZAFECFC8346839E69Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-10%20Millworker.m4a41588Country RoadJames TaylorJames TaylorLive (Disc 1)RockAAC audio file558217034430412111519932007-02-05T11:41:01Z2005-09-03T04:03:22Z128441001432937912982008-05-16T02:01:38ZAFECFC8346839E6AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-11%20Country%20Road.m4a41589Fire And RainJames TaylorJames TaylorLive (Disc 1)RockAAC audio file461289328455912121519932007-02-05T11:41:03Z2005-09-03T04:03:40Z128441001532937915832008-05-16T02:06:23ZAFECFC8346839E6BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-12%20Fire%20And%20Rain.m4a41590Shower The PeopleJames TaylorJames TaylorLive (Disc 1)RockAAC audio file460061328369912131519932007-02-05T11:41:04Z2005-09-03T04:04:11Z128441001632937918672008-05-16T02:11:07ZAFECFC8346839E6CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-13%20Shower%20The%20People.m4a41591How Sweet It Is (To Be Loved By You)James TaylorBrian Holland, Lamont Dozier, Edward Holland Jr.Live (Disc 1)RockAAC audio file728613144951312141519932007-02-05T11:41:07Z2005-09-03T04:04:43Z128441001632937923162008-05-16T02:18:36ZAFECFC8346839E6DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-14%20How%20Sweet%20It%20Is%20(To%20Be%20Loved%20By%20You).m4a41592New HymnJames TaylorJames Taylor, Reynolds PriceLive (Disc 1)RockAAC audio file294439418081212151519932007-02-05T11:41:08Z2005-09-03T04:05:06Z128441001532937924972008-05-16T02:21:37ZAFECFC8346839E6EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%201)/1-15%20New%20Hymn.m4a-1-1593DriveR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file43834842713231111219922007-02-05T11:48:57Z2005-09-03T04:05:56Z128441004132919844532008-04-25T04:07:33ZAFECFC8346839E7DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/01%20Drive.m4a41594Try Not To BreatheR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file37261782305721121219922007-02-05T11:48:59Z2005-09-03T04:06:24Z128441004132919846842008-04-25T04:11:24ZAFECFC8346839E7EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/02%20Try%20Not%20To%20Breathe.m4a41595The Sidewinder Sleeps ToniteR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file39921472493571131219922007-02-05T11:49:00Z2005-09-03T04:06:45Z128441004132919849332008-04-25T04:15:33ZSidewinder Sleeps ToniteAFECFC8346839E7FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/03%20The%20Sidewinder%20Sleeps%20Tonite.m4a41596Everybody HurtsR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file51349903202481141219922007-02-05T11:49:02Z2005-09-03T04:07:06Z128441004432919852532008-04-25T04:20:53ZAFECFC8346839E80Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/04%20Everybody%20Hurts.m4a-1-1597New Orleans Instrumental No. 1R.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file21766651356491151219922007-02-05T11:49:03Z2005-09-03T04:07:31Z128441004332919853892008-04-25T04:23:09ZAFECFC8346839E81Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/05%20New%20Orleans%20Instrumental%20No.%201.m4a41598Sweetness FollowsR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file42019952615711161219922007-02-05T11:49:04Z2005-09-03T04:07:40Z128441004232919856512008-04-25T04:27:31ZAFECFC8346839E82Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/06%20Sweetness%20Follows.m4a-1-1599Monty Got A Raw DealR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file31993431976931171219922007-02-05T11:49:06Z2005-09-03T04:07:59Z128441004232919858482008-04-25T04:30:48ZAFECFC8346839E83Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/07%20Monty%20Got%20A%20Raw%20Deal.m4a41600IgnorelandR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file42857992674451181219922007-02-05T11:49:07Z2005-09-03T04:08:12Z128441004132919861162008-04-25T04:35:16ZAFECFC8346839E84Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/08%20Ignoreland.m4a41601Star Me KittenR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file31746481961831191219922007-02-05T11:49:08Z2005-09-03T04:08:29Z128441004232919893232008-04-25T05:28:43ZAFECFC8346839E85Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/09%20Star%20Me%20Kitten.m4a41602Man On The MoonR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file506815231416411101219922007-02-05T11:49:10Z2005-09-03T04:08:41Z128441004132919896372008-04-25T05:33:57ZAFECFC8346839E86Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/10%20Man%20On%20The%20Moon.m4a41603NightswimmingR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file415064025806511111219922007-02-05T11:49:12Z2005-09-03T04:09:00Z128441004132919898962008-04-25T05:38:16ZAFECFC8346839E87Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/11%20Nightswimming.m4a41604Find The RiverR.E.M.Bill Berry, Peter Buck, Mike Mills, Michael StipeAutomatic For The PeopleAlternative & PunkAAC audio file372780722971311121219922007-02-05T11:49:13Z2005-09-03T04:09:14Z128441004132919901252008-04-25T05:42:05ZAFECFC8346839E88Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Automatic%20For%20The%20People/12%20Find%20The%20River.m4a41605Is This LoveBob Marley & The WailersBob MarleyLegendReggaeAAC audio file37617622323601111419782007-02-05T11:28:58Z2005-09-03T04:10:29Z128441002032933769992008-05-11T06:56:39ZAFECFC8346839E99Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/01%20Is%20This%20Love.m4a41606No Woman No Cry (Live)Bob Marley & The WailersVincent FordLegendReggaeAAC audio file69186294274081121419742007-02-05T11:29:01Z2005-09-03T04:10:52Z128441002332933774272008-05-11T07:03:47ZAFECFC8346839E9AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/02%20No%20Woman%20No%20Cry%20(Live).m4a-1-1607Could You Be LovedBob Marley & The WailersBob MarleyLegendReggaeAAC audio file38162342351231131419802007-02-05T11:29:02Z2005-09-03T04:11:26Z128441002032933776622008-05-11T07:07:42ZAFECFC8346839E9BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/03%20Could%20You%20Be%20Loved.m4a41608Three Little BirdsBob Marley & The WailersBob MarleyLegendReggaeAAC audio file29356091800921141419772007-02-05T11:29:03Z2005-09-03T04:11:43Z128441002132933778422008-05-11T07:10:42ZAFECFC8346839E9CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/04%20Three%20Little%20Birds.m4a41609Buffalo SoldierBob Marley & The WailersBob Marley/N.G. WilliamsLegendReggaeAAC audio file41502842573451151419832007-02-05T11:29:05Z2005-09-03T04:11:56Z128441002032933780992008-05-11T07:14:59ZAFECFC8346839E9DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/05%20Buffalo%20Soldier.m4a-1-1610Get Up Stand UpBob Marley & The WailersBob Marley/Peter ToshLegendReggaeAAC audio file32023911967641161419732007-02-05T11:29:06Z2005-09-03T04:12:12Z128441002032933782962008-05-11T07:18:16ZAFECFC8346839E9EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/06%20Get%20Up%20Stand%20Up.m4a41611Stir It UpBob Marley & The WailersBob MarleyLegendReggaeAAC audio file53746223335531171419732007-02-05T11:29:08Z2005-09-03T04:12:25Z128441002032933786302008-05-11T07:23:50ZAFECFC8346839E9FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/07%20Stir%20It%20Up.m4a41612One Love/People Get ReadyBob Marley & The WailersBob Marley - Curtis MayfieldLegendReggaeAAC audio file27923291715701181419772007-02-05T11:29:09Z2005-09-03T04:12:45Z128441002332933788012008-05-11T07:26:41ZAFECFC8346839EA0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/08%20One%20Love_People%20Get%20Ready.m4a41613I Shot The SheriffBob Marley & The WailersBob MarleyLegendReggaeAAC audio file45395642811921191419732007-02-05T11:29:10Z2005-09-03T04:12:54Z128441002032933790822008-05-11T07:31:22ZAFECFC8346839EA1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/09%20I%20Shot%20The%20Sheriff.m4a41614Waiting In VainBob Marley & The WailersBob MarleyLegendReggaeAAC audio file412790225571911101419772007-02-05T11:29:12Z2005-09-03T04:13:10Z128441002132933793382008-05-11T07:35:38ZAFECFC8346839EA2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/10%20Waiting%20In%20Vain.m4a41615Redemption SongBob Marley & The WailersBob MarleyLegendReggaeAAC audio file369313422927211111419802007-02-05T11:29:13Z2005-09-03T04:13:24Z128441002632933795672008-05-11T07:39:27ZAFECFC8346839EA3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/11%20Redemption%20Song.m4a-1-1616Satisfy My SoulBob Marley & The WailersBob MarleyLegendReggaeAAC audio file438048127153211121419782007-02-05T11:29:14Z2005-09-03T04:13:36Z128441002432933798392008-05-11T07:43:59ZAFECFC8346839EA4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/12%20Satisfy%20My%20Soul.m4a41617ExodusBob Marley & The WailersBob MarleyLegendReggaeAAC audio file737686045517911131419772007-02-05T11:29:17Z2005-09-03T04:13:49Z128441002132933802942008-05-11T07:51:34ZAFECFC8346839EA5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/13%20Exodus.m4a41618JammingBob Marley & The WailersBob MarleyLegendReggaeAAC audio file343301421111411141419772007-02-05T11:29:19Z2005-09-03T04:14:11Z128441002132933805052008-05-11T07:55:05ZAFECFC8346839EA6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Marley%20&%20The%20Wailers/Legend/14%20Jamming.m4a41619Solsbury HillPeter GabrielPeter GabrielShaking The TreeRockAAC audio file42269032609901111619772007-02-05T11:48:07Z2005-09-03T04:19:43Z128441004232925856262008-05-02T03:07:06ZAFECFC8346839EB9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/01%20Solsbury%20Hill.m4a41620I Don't RememberPeter GabrielPeter GabrielShaking The TreeRockAAC audio file37082022283201121619802007-02-05T11:48:08Z2005-09-03T04:20:08Z128441004232925858542008-05-02T03:10:54ZAFECFC8346839EBAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/02%20I%20Don't%20Remember.m4a-1-1621SledgehammerPeter GabrielPeter GabrielShaking The TreeRockAAC audio file47713882959131131619862007-02-05T11:48:10Z2005-09-03T04:20:27Z128441004232925861502008-05-02T03:15:50ZAFECFC8346839EBBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/03%20Sledgehammer.m4a41622Family SnapshotPeter GabrielPeter GabrielShaking The TreeRockAAC audio file43024672654251141619802007-02-05T11:48:11Z2005-09-03T04:20:48Z128441004332925864152008-05-02T03:20:15ZAFECFC8346839EBCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/04%20Family%20Snapshot.m4a41623Mercy StreetPeter GabrielPeter GabrielShaking The TreeRockAAC audio file45858612835831151619862007-02-05T11:48:13Z2005-09-03T04:21:07Z128441004432925866992008-05-02T03:24:59ZAFECFC8346839EBDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/05%20Mercy%20Street.m4a41624Shaking The TreePeter Gabriel Feat. Youssou N'DourPeter Gabriel & Youssou N'DourShaking The TreeRockAAC audio file62285743842881161619902007-02-05T11:48:32Z2005-09-03T04:21:26Z128441004432925900052008-05-02T04:20:05ZAFECFC8346839EBEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel%20Feat.%20Youssou%20N'Dour/Shaking%20The%20Tree/06%20Shaking%20The%20Tree.m4a41625Don't Give UpPeter GabrielPeter GabrielShaking The TreeRockAAC audio file57538053559141171619862007-02-05T11:48:15Z2005-09-03T04:21:49Z128441004532939001302008-05-17T08:15:30ZAFECFC8346839EBFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/07%20Don't%20Give%20Up.m4a-1-1626San JacintoPeter GabrielPeter GabrielShaking The TreeRockAAC audio file64922444005651181619822007-02-05T11:48:17Z2005-09-03T04:22:10Z128441004432939005312008-05-17T08:22:11ZAFECFC8346839EC0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/08%20San%20Jacinto.m4a41627Here Comes The FloodPeter GabrielPeter GabrielShaking The TreeRockAAC audio file43877282713231191619902007-02-05T11:48:19Z2005-09-03T04:22:31Z128441004432939008022008-05-17T08:26:42ZAFECFC8346839EC1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/09%20Here%20Comes%20The%20Flood.m4a-1-1628Red RainPeter GabrielPeter GabrielShaking The TreeRockAAC audio file543208133580511101619862007-02-05T11:48:20Z2005-09-03T04:22:46Z128441004432925880622008-05-02T03:47:42ZAFECFC8346839EC2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/10%20Red%20Rain.m4a41629Games Without FrontiersPeter GabrielPeter GabrielShaking The TreeRockAAC audio file385133223726011111619802007-02-05T11:48:22Z2005-09-03T04:23:26Z128441004432925883002008-05-02T03:51:40ZAFECFC8346839EC3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/11%20Games%20Without%20Frontiers.m4a41630Shock The MonkeyPeter GabrielPeter GabrielShaking The TreeRockAAC audio file382972623730611121619822007-02-05T11:48:23Z2005-09-03T04:24:21Z128441004332925885372008-05-02T03:55:37ZAFECFC8346839EC4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/12%20Shock%20The%20Monkey.m4a41631I Have The TouchPeter GabrielPeter GabrielShaking The TreeRockAAC audio file365218722481411131619822007-02-05T11:48:24Z2005-09-03T04:24:41Z128441004332925887622008-05-02T03:59:22ZAFECFC8346839EC5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/13%20I%20Have%20The%20Touch.m4a41632Big TimePeter GabrielPeter GabrielShaking The TreeRockAAC audio file429269726556511141619862007-02-05T11:48:26Z2005-09-03T04:24:51Z128441004332925890272008-05-02T04:03:47ZAFECFC8346839EC6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/14%20Big%20Time.m4a41633ZaarPeter GabrielPeter GabrielShaking The TreeRockAAC audio file287909017858311151619892007-02-05T11:48:27Z2005-09-03T04:25:03Z128441004332925892062008-05-02T04:06:46ZAFECFC8346839EC7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/15%20Zaar.m4a41634BikoPeter GabrielPeter GabrielShaking The TreeRockAAC audio file671005941493911161619802007-02-05T11:48:29Z2005-09-03T04:25:11Z128441004532939015292008-05-17T08:38:49ZAFECFC8346839EC8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peter%20Gabriel/Shaking%20The%20Tree/16%20Biko.m4a-1-1635Sultans Of SwingDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file56780733503871211619982007-02-05T11:34:12Z2005-09-03T04:26:01Z128441002232859510092008-02-15T08:10:09ZAFECFC8346839EDBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-01%20Sultans%20Of%20Swing.m4a41636Lady WriterDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file37181542290161221619982007-02-05T11:34:13Z2005-09-03T04:26:33Z128441002032849130542008-02-03T07:50:54ZAFECFC8346839EDCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-02%20Lady%20Writer.m4a41637Romeo And JulietDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file59140413649931231619982007-02-05T11:34:15Z2005-09-03T04:26:51Z128441002132849128252008-02-03T07:47:05ZAFECFC8346839EDDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-03%20Romeo%20And%20Juliet.m4a41638Tunnel Of LoveDire StraitsRichard Rodgers, Oscar Hammerstein II, Mark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file80135414945131241619982007-02-05T11:34:18Z2005-09-03T04:27:17Z128441002132849124602008-02-03T07:41:00ZAFECFC8346839EDEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-04%20Tunnel%20Of%20Love.m4a41639Private InvestigationDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file57442473544271251619982007-02-05T11:34:20Z2005-09-03T04:27:50Z128441002332912954762008-04-17T04:44:36ZAFECFC8346839EDFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-05%20Private%20Investigation.m4a41640Twisting By The PoolDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file35114672160601261619982007-02-05T11:34:21Z2005-09-03T04:28:12Z128441002432912956922008-04-17T04:48:12ZAFECFC8346839EE0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-06%20Twisting%20By%20The%20Pool.m4a41641Love Over Gold (Live)Dire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file35868942207501271619982007-02-05T11:34:22Z2005-09-03T04:28:25Z128441002432912959132008-04-17T04:51:53ZAFECFC8346839EE1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-07%20Love%20Over%20Gold%20(Live).m4a41642So Far AwayDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file39499322434591281619982007-02-05T11:34:24Z2005-09-03T04:28:37Z128441002432912961572008-04-17T04:55:57ZAFECFC8346839EE2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-08%20So%20Far%20Away.m4a41643Money For NothingDire StraitsMark Knopfler, StingSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file40499852497051291619982007-02-05T11:34:25Z2005-09-03T04:28:50Z128441002532912964062008-04-17T05:00:06ZAFECFC8346839EE3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-09%20Money%20For%20Nothing.m4a41644Brothers In ArmsDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file478309229507712101619982007-02-05T11:34:27Z2005-09-03T04:29:03Z128441002532912967012008-04-17T05:05:01ZAFECFC8346839EE4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-10%20Brothers%20In%20Arms.m4a41645Walk Of LifeDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file409429625244512111619982007-02-05T11:34:28Z2005-09-03T04:29:18Z128441002332912969542008-04-17T05:09:14ZAFECFC8346839EE5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-11%20Walk%20Of%20Life.m4a41646Calling ElvisDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file456427828156312121619982007-02-05T11:34:30Z2005-09-03T04:29:31Z128441002332912972352008-04-17T05:13:55ZAFECFC8346839EE6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-12%20Calling%20Elvis.m4a41647Heavy FuelDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file489114930174112131619982007-02-05T11:34:32Z2005-09-03T04:29:44Z128441002332912975372008-04-17T05:18:57ZAFECFC8346839EE7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-13%20Heavy%20Fuel.m4a41648On Every StreetDire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file452564127919512141619982007-02-05T11:34:33Z2005-09-03T04:29:58Z128441002232912978162008-04-17T05:23:36ZAFECFC8346839EE8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-14%20On%20Every%20Street.m4a41649Your Latest Trick (Live)Dire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file553664934163312151619982007-02-05T11:34:36Z2005-09-03T04:30:10Z128441002232912981582008-04-17T05:29:18ZAFECFC8346839EE9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-15%20Your%20Latest%20Trick%20(Live).m4a-1-1650Local Hero/Wild Theme (Live)Dire StraitsMark KnopflerSultans Of Swing (Disc 1) [Special Edition]RockAAC audio file427749126400912161619982007-02-05T11:34:37Z2005-09-03T04:30:25Z128441002232912984222008-04-17T05:33:42ZAFECFC8346839EEAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sultans%20Of%20Swing%20(Disc%201)%20%5BSpecial%20Edition%5D/1-16%20Local%20Hero_Wild%20Theme%20(Live).m4a41651Nobody But YouLoggins & MessinaJ. MessinaSittin' InRockAAC audio file2906971180324111919722007-02-05T11:33:13Z2005-09-03T04:35:25Z128441001732938071742008-05-16T06:26:14Z100AFECFC8346839EF6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/01%20Nobody%20But%20You.m4a41652Danny's SongLoggins & MessinaK. LogginsSittin' InRockAAC audio file4135713256486112919722007-02-05T11:33:15Z2005-09-03T04:35:43Z128441003932938074302008-05-16T06:30:30Z100100AFECFC8346839EF7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/02%20Danny's%20Song.m4a-1-1653Vahevala_Loggins & MessinaD. Loggins/D. LottermoserSittin' InRockAAC audio file4630498287299113919722007-02-05T11:33:16Z2005-09-03T04:36:04Z128441002032938077182008-05-16T06:35:18Z100AFECFC8346839EF8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/03%20Vahevala_.m4a41654Trilogy: Lovin' Me/To Make A Woman Feel Wanted/Peace Of MindLoggins & Messina(Lovin' Me: J. Messina/K. Loggins), (Peace of Mind: J. Messina)/M. MacLeod), (To Make a Woman Feel Wanted: J. MessinaSittin' InRockAAC audio file10890731673911114919722007-02-05T11:33:20Z2005-09-03T04:36:26Z128441001932938083922008-05-16T06:46:32Z100AFECFC8346839EF9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/04%20Trilogy_%20Lovin'%20Me_To%20Make%20A%20Woman%20Feel%20Wanted_Peace%20Of%20Mind.m4a41655Back To GeorgiaLoggins & MessinaK. LogginsSittin' InRockAAC audio file3218636199248115919722007-02-05T11:33:22Z2005-09-03T04:37:11Z128441002032938085912008-05-16T06:49:51Z100AFECFC8346839EFAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/05%20Back%20To%20Georgia.m4a41656House At Pooh CornerLoggins & MessinaK. LogginsSittin' InRockAAC audio file4254613265356116919722007-02-05T11:33:23Z2005-09-03T04:37:24Z128441003632938088562008-05-16T06:54:16Z100100AFECFC8346839EFBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/06%20House%20At%20Pooh%20Corner.m4a41657Listen To A Country SongLoggins & MessinaA. Garth/J. MessinaSittin' InRockAAC audio file2747022169759117919722007-02-05T11:33:24Z2005-09-03T04:37:39Z128441001932938090262008-05-16T06:57:06Z100AFECFC8346839EFCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/07%20Listen%20To%20A%20Country%20Song.m4a-1-1658Same Old WineLoggins & MessinaJ. MessinaSittin' InRockAAC audio file8031343497346118919722007-02-05T11:33:27Z2005-09-03T04:37:49Z128441001932938095232008-05-16T07:05:23Z100AFECFC8346839EFDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/08%20Same%20Old%20Wine.m4a41659Rock 'N' Roll MoodLoggins & MessinaK. Loggins/M. OmartianSittin' InRockAAC audio file3006456184643119919722007-02-05T11:33:28Z2005-09-03T04:38:15Z128441001932938097082008-05-16T07:08:28Z100AFECFC8346839EFEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Sittin'%20In/09%20Rock%20'N'%20Roll%20Mood.m4a-1-1660FallenSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file36857152269961111020032007-02-05T11:49:49Z2005-09-03T04:43:37Z128441005032919739132008-04-25T01:11:53ZAFECFC8346839F0BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/01%20Fallen.m4a41661World On FireSarah McLachlanPierre MarchandAfterglowAlternative & PunkAAC audio file42515982622441121020032007-02-05T11:49:50Z2005-09-03T04:44:02Z128441005232919741762008-04-25T01:16:16ZAFECFC8346839F0CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/02%20World%20On%20Fire.m4a41662StupidSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file33051402038921131020032007-02-05T11:49:52Z2005-09-03T04:44:27Z128441005532919743802008-04-25T01:19:40ZAFECFC8346839F0DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/03%20Stupid.m4a41663DriftingSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file33063412031731141020032007-02-05T11:49:53Z2005-09-03T04:44:44Z128441005432919745832008-04-25T01:23:03ZAFECFC8346839F0EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/04%20Drifting.m4a-1-1664Train WreckSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file44719892764081151020032007-02-05T11:49:54Z2005-09-03T04:45:01Z128441006132919748592008-04-25T01:27:39ZAFECFC8346839F0FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/05%20Train%20Wreck.m4a-1-1665PushSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file38253052356341161020032007-02-05T11:49:56Z2005-09-03T04:45:21Z128441005632919750952008-04-25T01:31:35ZAFECFC8346839F10Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/06%20Push.m4a-1-1666AnswerSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file38599462377941171020032007-02-05T11:49:57Z2005-09-03T04:45:37Z128441005632919753332008-04-25T01:35:33ZAFECFC8346839F11Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/07%20Answer.m4a41667TimeSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file40128562474071181020032007-02-05T11:49:58Z2005-09-03T04:45:53Z128441005432919755802008-04-25T01:39:40ZAFECFC8346839F12Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/08%20Time.m4a41668Perfect GirlSarah McLachlanPierre MarchandAfterglowAlternative & PunkAAC audio file45884082830491191020032007-02-05T11:50:00Z2005-09-03T04:46:09Z128441005432919758632008-04-25T01:44:23ZAFECFC8346839F13Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/09%20Perfect%20Girl.m4a41669Dirty Little SecretSarah McLachlanSarah McLachlanAfterglowAlternative & PunkAAC audio file380231223428711101020032007-02-05T11:50:01Z2005-09-03T04:46:26Z128441005432919760972008-04-25T01:48:17ZAFECFC8346839F14Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Afterglow/10%20Dirty%20Little%20Secret.m4a41670Radio Free Europe [Edit]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file31082811914471112019942007-02-05T11:49:14Z2005-09-03T04:55:18Z128441004332918069742008-04-23T02:49:34ZAFECFC8346839F41Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/01%20Radio%20Free%20Europe%20%5BEdit%5D.m4a41671There She Goes AgainR.E.M.L. ReedSingles CollectedRockAAC audio file27433561690631122019942007-02-05T11:49:15Z2005-09-03T04:55:39Z128441004332918071432008-04-23T02:52:23ZAFECFC8346839F42Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/02%20There%20She%20Goes%20Again.m4a41672So. Central RainR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file31686331958581132019942007-02-05T11:49:16Z2005-09-03T04:55:55Z128441004232918073382008-04-23T02:55:38ZAFECFC8346839F43Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/03%20So.%20Central%20Rain.m4a41673King Of The RoadR.E.M.R. MillerSingles CollectedRockAAC audio file46079762858121142019942007-02-05T11:49:18Z2005-09-03T04:56:12Z128441004532918076242008-04-23T03:00:24ZAFECFC8346839F44Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/04%20King%20Of%20The%20Road.m4a-1-1674Rockville (Don't Go Back To) [Edit]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file37889162348211152019942007-02-05T11:49:19Z2005-09-03T04:56:36Z128441004432918078592008-04-23T03:04:19ZAFECFC8346839F45Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/05%20Rockville%20(Don't%20Go%20Back%20To)%20%5BEdit%5D.m4a-1-1675Catapult [Live]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file39520612456881162019942007-02-05T11:49:21Z2005-09-03T04:56:53Z128441004432918081052008-04-23T03:08:25ZAFECFC8346839F46Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/06%20Catapult%20%5BLive%5D.m4a41676Can't Get There From Here [Edit]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file31316721936521172019942007-02-05T11:49:22Z2005-09-03T04:57:11Z128441004432918082982008-04-23T03:11:38ZAFECFC8346839F47Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/07%20Can't%20Get%20There%20From%20Here%20%5BEdit%5D.m4a41677BandwagonR.E.M.Berry, Buck, Mills, L. Stipe, M. StipeSingles CollectedRockAAC audio file22231011366241182019942007-02-05T11:49:23Z2005-09-03T04:57:24Z128441004332918084352008-04-23T03:13:55ZAFECFC8346839F48Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/08%20Bandwagon.m4a41678Wendell GeeR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file29388291823441192019942007-02-05T11:49:24Z2005-09-03T04:57:33Z128441004432918086172008-04-23T03:16:57ZAFECFC8346839F49Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/09%20Wendell%20Gee.m4a41679CrazyR.E.M.Bewley, Briscoe, Crowe, LachowskiSingles CollectedRockAAC audio file294559718276211102019942007-02-05T11:49:25Z2005-09-03T04:57:45Z128441004332918088002008-04-23T03:20:00ZAFECFC8346839F4AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/10%20Crazy.m4a41680Fall On MeR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file277010517277811112019942007-02-05T11:49:26Z2005-09-03T04:57:56Z128441004232918089732008-04-23T03:22:53ZAFECFC8346839F4BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/11%20Fall%20On%20Me.m4a41681Rotary TenR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file197415812171711122019942007-02-05T11:49:26Z2005-09-03T04:58:07Z128441004232918090952008-04-23T03:24:55ZAFECFC8346839F4CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/12%20Rotary%20Ten.m4a41682SupermanR.E.M.G. Zeckley, M. BottlerSingles CollectedRockAAC audio file265667016397711132019942007-02-05T11:49:27Z2005-09-03T04:58:14Z128441004232918092592008-04-23T03:27:39ZAFECFC8346839F4DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/13%20Superman.m4a41683White TornadoR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file181849511094311142019942007-02-05T11:49:28Z2005-09-03T04:58:24Z128441004332918093692008-04-23T03:29:29ZAFECFC8346839F4EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/14%20White%20Tornado.m4a41684The One I LoveR.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file319697419762311152019942007-02-05T11:49:29Z2005-09-03T04:58:30Z128441004232918095672008-04-23T03:32:47ZOne I LoveAFECFC8346839F4FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/15%20The%20One%20I%20Love.m4a41685Maps And Legends [Live]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file318327219771611162019942007-02-05T11:49:30Z2005-09-03T04:58:41Z128441004332918097652008-04-23T03:36:05ZAFECFC8346839F50Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/16%20Maps%20And%20Legends%20%5BLive%5D.m4a-1-1686It's The End Of The World As We Know It (And I Feel Fine) [Edit]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file309887419186511172019942007-02-05T11:49:31Z2005-09-03T04:58:52Z128441004332918099572008-04-23T03:39:17ZAFECFC8346839F51Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/17%20It's%20The%20End%20Of%20The%20World%20As%20We%20Know%20It%20(And%20I%20Feel%20Fine)%20%5BEdit%5D.m4a41687Last DateR.E.M.F. CramerSingles CollectedRockAAC audio file224324313794811182019942007-02-05T11:49:32Z2005-09-03T04:59:02Z128441004332918100952008-04-23T03:41:35ZAFECFC8346839F52Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/18%20Last%20Date.m4a41688Finest Worksong [Other Mix]R.E.M.Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file366483222625311192019942007-02-05T11:49:33Z2005-09-03T04:59:09Z128441004332918103212008-04-23T03:45:21ZAFECFC8346839F53Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/19%20Finest%20Worksong%20%5BOther%20Mix%5D.m4a-1-1689Time After Time Etc. [Live]R.E.M.Gabriel, Berry, Buck, Mills, StipeSingles CollectedRockAAC audio file811783450092211202019942007-02-05T11:49:37Z2005-09-03T04:59:21Z128441004132918108222008-04-23T03:53:42ZAFECFC8346839F54Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/R.E.M_/Singles%20Collected/20%20Time%20After%20Time%20Etc.%20%5BLive%5D.m4a41690Alone TogetherOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file62486223854491111019582007-02-05T11:46:52Z2005-09-03T05:00:41Z128441004832938568622008-05-16T20:14:22ZAFECFC8346839F61Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/01%20Alone%20Together.m4a41691How About YouOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file49905413077791121019582007-02-05T11:46:54Z2005-09-03T05:01:21Z128441004832938571702008-05-16T20:19:30ZAFECFC8346839F62Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/02%20How%20About%20You.m4a41692The Surrey With The Fringe On TopOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file44732192758511131019582007-02-05T11:46:55Z2005-09-03T05:01:48Z128441004732938574462008-05-16T20:24:06ZSurrey With The Fringe On TopAFECFC8346839F63Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/03%20The%20Surrey%20With%20The%20Fringe%20On%20Top.m4a41693Music Box SuiteOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file114679567093681141019582007-02-05T11:46:59Z2005-09-03T05:02:09Z128441004732938581552008-05-16T20:35:55ZAFECFC8346839F64Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/04%20Music%20Box%20Suite.m4a41694A Foggy DayOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file75980764687391151019582007-02-05T11:47:02Z2005-09-03T05:03:00Z128441004632938586242008-05-16T20:43:44ZFoggy DayAFECFC8346839F65Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/05%20A%20Foggy%20Day.m4a41695Gypsy In My SoulOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file61688013805031161019582007-02-05T11:47:04Z2005-09-03T05:03:29Z128441004732938590042008-05-16T20:50:04ZAFECFC8346839F66Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/06%20Gypsy%20In%20My%20Soul.m4a41696My Funny ValentineOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file51012433146051171019582007-02-05T11:47:06Z2005-09-03T05:03:52Z128441004632938593192008-05-16T20:55:19ZAFECFC8346839F67Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/07%20My%20Funny%20Valentine.m4a41697PatriciaOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file48607162997681181019582007-02-05T11:47:08Z2005-09-03T05:04:10Z128441004732938596192008-05-16T21:00:19ZAFECFC8346839F68Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/08%20Patricia.m4a-1-1698PogoOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file54958253390331191019582007-02-05T11:47:10Z2005-09-03T05:04:26Z128441004632938599582008-05-16T21:05:58ZAFECFC8346839F69Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/09%20Pogo.m4a41699TenderlyOscar Peterson, piano; Herb Ellis, guitar; Ray Brown, bass;Tenderly (1958)JazzAAC audio file417655225760011101019582007-02-05T11:47:11Z2005-09-03T05:04:43Z128441004532938602152008-05-16T21:10:15ZAFECFC8346839F6AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Oscar%20Peterson,%20piano%3B%20Herb%20Ellis,%20guitar%3B%20Ray%20Brown,%20bass%3B/Tenderly%20(1958)/10%20Tenderly.m4a41700Blowin' In The Wind (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file44062752717182211119792007-02-05T11:28:40Z2005-09-03T05:07:04Z128441001732933739792008-05-11T06:06:19ZAFECFC8346839F78Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-01%20Blowin'%20In%20The%20Wind%20(Live).m4a41701Just Like A Woman (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file49665163062922221119792007-02-05T11:28:42Z2005-09-03T05:07:31Z128441001832933742852008-05-11T06:11:25ZAFECFC8346839F79Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-02%20Just%20Like%20A%20Woman%20(Live).m4a41702Oh, Sister (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file47136812906892231119792007-02-05T11:28:44Z2005-09-03T05:07:55Z128441002132933745762008-05-11T06:16:16ZAFECFC8346839F7AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-03%20Oh,%20Sister%20(Live).m4a41703Simple Twist Of Fate (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file43310682670742241119792007-02-05T11:28:46Z2005-09-03T05:08:16Z128441002132933748432008-05-11T06:20:43ZAFECFC8346839F7BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-04%20Simple%20Twist%20Of%20Fate%20(Live).m4a41704All Along The Watchtower (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file33589242064232251119792007-02-05T11:28:47Z2005-09-03T05:08:35Z128441002132933750492008-05-11T06:24:09ZAFECFC8346839F7CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-05%20All%20Along%20The%20Watchtower%20(Live).m4a-1-1705I Want You (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file25661391569422261119792007-02-05T11:28:48Z2005-09-03T05:08:48Z128441002332933752062008-05-11T06:26:46ZAFECFC8346839F7DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-06%20I%20Want%20You%20(Live).m4a41706All I Really Want To Do (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file37091442282972271119792007-02-05T11:28:49Z2005-09-03T05:08:58Z128441002232933754342008-05-11T06:30:34ZAFECFC8346839F7EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-07%20All%20I%20Really%20Want%20To%20Do%20(Live).m4a41707Knockin' On Heaven's Door (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file39512132433902281119792007-02-05T11:28:51Z2005-09-03T05:09:11Z128441002332933756782008-05-11T06:34:38ZAFECFC8346839F7FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-08%20Knockin'%20On%20Heaven's%20Door%20(Live).m4a-1-1708It's All Right, Ma (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file59492293669432291119792007-02-05T11:28:53Z2005-09-03T05:09:25Z128441002332933760452008-05-11T06:40:45ZAFECFC8346839F80Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-09%20It's%20All%20Right,%20Ma%20(Live).m4a41709Forever Young (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file635554839204422101119792007-02-05T11:28:55Z2005-09-03T05:09:46Z128441002332933764372008-05-11T06:47:17ZAFECFC8346839F81Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-10%20Forever%20Young%20(Live).m4a41710The Times They Are A-Changin' (Live)Bob DylanBob DylanBob Dylan At Budokan [Disc 2]RockAAC audio file535276433037222111119792007-02-05T11:28:57Z2005-09-03T05:10:06Z128441002232933767672008-05-11T06:52:47ZTimes They Are A-Changin' (Live)AFECFC8346839F82Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%202%5D/2-11%20The%20Times%20They%20Are%20A-Changin'%20(Live).m4a41711OpheliaNatalie MerchantNatalie MerchantOpheliaRockAAC audio file50303883104491111119982007-02-05T11:45:27Z2005-09-03T05:16:12Z128441002932938418522008-05-16T16:04:12ZAFECFC8346839F90Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/01%20Ophelia.m4a41712Life Is SweetNatalie MerchantNatalie MerchantOpheliaRockAAC audio file50624113124231121119982007-02-05T11:45:29Z2005-09-03T05:16:44Z128441003032938421642008-05-16T16:09:24ZAFECFC8346839F91Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/02%20Life%20Is%20Sweet.m4a41713Kind & GenerousNatalie MerchantNatalie MerchantOpheliaRockAAC audio file40157732475231131119982007-02-05T11:45:30Z2005-09-03T05:17:12Z128441003232938424112008-05-16T16:13:31ZAFECFC8346839F92Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/03%20Kind%20&%20Generous.m4a-1-1714Frozen CharlotteNatalie MerchantNatalie MerchantOpheliaRockAAC audio file52347103229411141119982007-02-05T11:45:32Z2005-09-03T05:17:32Z128441003132938427342008-05-16T16:18:54ZAFECFC8346839F93Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/04%20Frozen%20Charlotte.m4a41715My SkinNatalie MerchantNatalie MerchantOpheliaRockAAC audio file53923853327171151119982007-02-05T11:45:34Z2005-09-03T05:17:56Z128441003132938430672008-05-16T16:24:27ZAFECFC8346839F94Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/05%20My%20Skin.m4a-1-1716Break Your HeartNatalie MerchantNatalie MerchantOpheliaRockAAC audio file46725112883201161119982007-02-05T11:45:35Z2005-09-03T05:18:19Z128441003132938433552008-05-16T16:29:15ZAFECFC8346839F95Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/06%20Break%20Your%20Heart.m4a41717King Of MayNatalie MerchantNatalie MerchantOpheliaRockAAC audio file40440172492871171119982007-02-05T11:45:37Z2005-09-03T05:18:37Z128441003132938436052008-05-16T16:33:25ZAFECFC8346839F96Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/07%20King%20Of%20May.m4a41718Thick As ThievesNatalie MerchantNatalie MerchantOpheliaRockAAC audio file67672644175391181119982007-02-05T11:45:39Z2005-09-03T05:18:53Z128441003232938440222008-05-16T16:40:22ZAFECFC8346839F97Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/08%20Thick%20As%20Thieves.m4a41719EffigyNatalie MerchantNatalie MerchantOpheliaRockAAC audio file24561581501611191119982007-02-05T11:45:40Z2005-09-03T05:19:17Z128441003132938441722008-05-16T16:42:52ZAFECFC8346839F98Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/09%20Effigy.m4a-1-1720The LivingNatalie MerchantNatalie MerchantOpheliaRockAAC audio file322342719806411101119982007-02-05T11:45:41Z2005-09-03T05:19:25Z128441003232938443702008-05-16T16:46:10ZLivingAFECFC8346839F99Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/10%20The%20Living.m4a41721When They Ring The Golden BellsNatalie MerchantDion de MarbelleOpheliaRockAAC audio file928467457315911111119982007-02-05T11:45:44Z2005-09-03T05:19:36Z128441002932938449432008-05-16T16:55:43ZAFECFC8346839F9AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Ophelia/11%20When%20They%20Ring%20The%20Golden%20Bells.m4a41722Dearg DoomHorslipsElectric ReelsFolkAAC audio file30241221866861142007-02-05T11:31:14Z2005-09-03T05:21:23Z128441001832928707312008-05-05T10:18:51ZAFECFC8346839FABFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/01%20Dearg%20Doom.m4a-1-1723Davy's ReelsDavy SpillaneElectric ReelsFolkAAC audio file34947492166872142007-02-05T11:31:15Z2005-09-03T05:21:43Z128441001432928709482008-05-05T10:22:28ZAFECFC8346839FACFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/02%20Davy's%20Reels.m4a41724Raggle Taggle GypsyThe WaterboysElectric ReelsFolkAAC audio file29183821816253142007-02-05T11:31:17Z2005-09-03T05:22:04Z128441002332928711292008-05-05T10:25:29ZWaterboysAFECFC8346839FADFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/03%20Raggle%20Taggle%20Gypsy.m4a41725RiverdanceThis LandElectric ReelsFolkAAC audio file55909843476244142007-02-05T11:31:19Z2005-09-03T05:22:19Z128441002532928714772008-05-05T10:31:17ZAFECFC8346839FAEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/04%20Riverdance.m4a41726Cavan PotholesSharon ShannonElectric ReelsFolkAAC audio file40417182521205142007-02-05T11:31:20Z2005-09-03T05:22:46Z128441004132928717292008-05-05T10:35:29ZAFECFC8346839FAFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/05%20Cavan%20Potholes.m4a41727Leis And SoulTecnogueElectric ReelsFolkAAC audio file37784582351936142007-02-05T11:31:22Z2005-09-03T05:23:05Z128441002532928719642008-05-05T10:39:24ZAFECFC8346839FB0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/06%20Leis%20And%20Soul.m4a41728Jack Palance's ReelNollaig Casey & Arty MC GlynnElectric ReelsFolkAAC audio file43233742680267142007-02-05T11:31:24Z2005-09-03T05:23:21Z128441001832928722322008-05-05T10:43:52ZAFECFC8346839FB1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/07%20Jack%20Palance's%20Reel.m4a41729The Storm Featuring: 1. The Storm In The Teashirt 2. The Staff In The BaggotMoving HeartsElectric ReelsFolkAAC audio file40839712538858142007-02-05T11:31:25Z2005-09-03T05:23:39Z128441001332928724862008-05-05T10:48:06ZStorm Featuring: 1. The Storm In The Teashirt 2. The Staff In The BaggotAFECFC8346839FB2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/08%20The%20Storm%20Featuring_%201.%20The%20Storm%20In%20The%20Teashirt%202.%20The%20Staff%20In%20The%20Baggot.m4a41730The Rossclogher JigsStockton's WingElectric ReelsFolkAAC audio file33605612108829142007-02-05T11:31:26Z2005-09-03T05:23:55Z128441002932928726972008-05-05T10:51:37ZRossclogher JigsAFECFC8346839FB3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/09%20The%20Rossclogher%20Jigs.m4a41731Soldier BootsThe Big GeraniumsElectric ReelsFolkAAC audio file389942824037110142007-02-05T11:31:28Z2005-09-03T05:24:07Z128441001232928729372008-05-05T10:55:37ZBig GeraniumsAFECFC8346839FB4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/10%20Soldier%20Boots.m4a41732TickelledKilaElectric ReelsFolkAAC audio file544678533900911142007-02-05T11:31:30Z2005-09-03T05:24:21Z128441001432928732762008-05-05T11:01:16ZAFECFC8346839FB5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/11%20Tickelled.m4a41733Dark Haired Lass/ Biddy Froom Muckross/ Sean Maguire's (Reels)AltanElectric ReelsFolkAAC audio file277650417182612142007-02-05T11:31:31Z2005-09-03T05:24:40Z128441001432928734482008-05-05T11:04:08ZAFECFC8346839FB6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/12%20Dark%20Haired%20Lass_%20Biddy%20Froom%20Muckross_%20Sean%20Maguire's%20(Reels).m4a41734The Old Bush, Crooked Road Dublin, Man Of The House, Dublin ReelNa ConnerysElectric ReelsFolkAAC audio file381467923828113142007-02-05T11:31:32Z2005-09-03T05:24:49Z128441001632928736872008-05-05T11:08:07ZOld Bush, Crooked Road Dublin, Man Of The House, Dublin ReelAFECFC8346839FB7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/13%20The%20Old%20Bush,%20Crooked%20Road%20Dublin,%20Man%20Of%20The%20House,%20Dublin%20Reel.m4a41735Sportling Nell/ The 8th Of October/ Ali AliDeisealElectric ReelsFolkAAC audio file469538429161714142007-02-05T11:31:33Z2005-09-03T05:25:02Z128441001332928739782008-05-05T11:12:58ZAFECFC8346839FB8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Electric%20Reels/14%20Sportling%20Nell_%20The%208th%20Of%20October_%20Ali%20Ali.m4a41736These Are Days10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file47596162935211111419932007-02-05T11:26:51Z2005-09-03T05:40:56Z12844100932928602692008-05-05T07:24:29ZAFECFC8346839FC9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/01%20These%20Are%20Days.m4a41737Eat For Two10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file42564762625001121419932007-02-05T11:26:53Z2005-09-03T05:41:24Z12844100932928605312008-05-05T07:28:51ZAFECFC8346839FCAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/02%20Eat%20For%20Two.m4a-1-1738Candy Everybody Wants10,000 ManiacsDennis Drew/Natalie MerchantMTV UnpluggedRockAAC audio file32484041995971131419932007-02-05T11:26:54Z2005-09-03T05:41:45Z128441001032928607312008-05-05T07:32:11ZAFECFC8346839FCBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/03%20Candy%20Everybody%20Wants.m4a-1-1739I'm Not The Man10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file36765602263461141419932007-02-05T11:26:55Z2005-09-03T05:42:00Z128441001132928609572008-05-05T07:35:57ZAFECFC8346839FCCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/04%20I'm%20Not%20The%20Man.m4a41740Don't Talk10,000 ManiacsDrew, Dennis & Merchant, NatalieMTV UnpluggedRockAAC audio file52186163218961151419932007-02-05T11:26:57Z2005-09-03T05:42:16Z12844100932928612792008-05-05T07:41:19ZAFECFC8346839FCDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/05%20Don't%20Talk.m4a-1-1741Hey Jack Kerouac10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file37148202287381161419932007-02-05T11:26:58Z2005-09-03T05:42:38Z128441001032928615082008-05-05T07:45:08ZAFECFC8346839FCEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/06%20Hey%20Jack%20Kerouac.m4a41742What's The Matter Here ?10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file47124682906191171419932007-02-05T11:27:00Z2005-09-03T05:42:52Z128441001032928617982008-05-05T07:49:58ZAFECFC8346839FCFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/07%20What's%20The%20Matter%20Here%20_.m4a-1-1743Gold Rush Brides10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file40843082517261181419932007-02-05T11:27:01Z2005-09-03T05:43:21Z128441001232928620502008-05-05T07:54:10ZAFECFC8346839FD0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/08%20Gold%20Rush%20Brides.m4a-1-1744Like The Weather10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file41359002549301191419932007-02-05T11:27:03Z2005-09-03T05:44:10Z128441001332928623052008-05-05T07:58:25ZAFECFC8346839FD1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/09%20Like%20The%20Weather.m4a-1-1745Trouble Me10,000 ManiacsDrew, Dennis & Merchant, NatalieMTV UnpluggedRockAAC audio file358652922072711101419932007-02-05T11:27:04Z2005-09-03T05:44:24Z128441001232928625262008-05-05T08:02:06ZAFECFC8346839FD2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/10%20Trouble%20Me.m4a-1-1746Jezebel10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file427789326387011111419932007-02-05T11:27:06Z2005-09-03T05:44:36Z128441001232928627892008-05-05T08:06:29ZAFECFC8346839FD3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/11%20Jezebel.m4a-1-1747Because The Night10,000 ManiacsSpringsteen, Bruce & Smith, PattiMTV UnpluggedRockAAC audio file362988822335111121419932007-02-05T11:27:07Z2005-09-03T05:44:49Z128441001232928630132008-05-05T08:10:13ZAFECFC8346839FD4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/12%20Because%20The%20Night.m4a-1-1748Stockton Gala Days10,000 ManiacsDrew, Dennis/Jerome Augustyniak/Merchant, Natalie/Rob Buck/Steven GustafsonMTV UnpluggedRockAAC audio file533627432918711131419932007-02-05T11:27:09Z2005-09-03T05:45:00Z128441001132928633422008-05-05T08:15:42ZAFECFC8346839FD5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/13%20Stockton%20Gala%20Days.m4a-1-1749Noah's Dove10,000 ManiacsMerchant, NatalieMTV UnpluggedRockAAC audio file498459730759311141419932007-02-05T11:27:11Z2005-09-03T05:45:16Z128441001032928636502008-05-05T08:20:50ZAFECFC8346839FD6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/10,000%20Maniacs/MTV%20Unplugged/14%20Noah's%20Dove.m4a41750Virginia PlainBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file29098541784901112019892007-02-05T11:33:44Z2005-09-03T05:47:02Z128441002432933852912008-05-11T09:14:51ZAFECFC8346839FEDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/01%20Virginia%20Plain.m4a41751A Hard Rain's A-Gonna FallBryan Ferry & Roxy Musicbob dylanStreet Life - Greatest HitsAlternative & PunkAAC audio file41462802556501122019732007-02-05T11:33:46Z2005-09-03T05:47:20Z128441002432933855462008-05-11T09:19:06ZHard Rain's A-Gonna FallAFECFC8346839FEEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/02%20A%20Hard%20Rain's%20A-Gonna%20Fall.m4a41752PyjamaramaBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file28120811723831132019892007-02-05T11:33:47Z2005-09-03T05:47:41Z128441002432933857192008-05-11T09:21:59ZAFECFC8346839FEFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/03%20Pyjamarama.m4a41753Do The StrandBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file36782462264621142019892007-02-05T11:33:48Z2005-09-03T05:47:54Z128441002432933859452008-05-11T09:25:45ZAFECFC8346839FF0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/04%20Do%20The%20Strand.m4a41754These Foolish ThingsBryan Ferry & Roxy Musiceric maschwitz/jack stracheyStreet Life - Greatest HitsAlternative & PunkAAC audio file47029482918961152019732007-02-05T11:33:50Z2005-09-03T05:48:10Z128441002432933862372008-05-11T09:30:37ZAFECFC8346839FF1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/05%20These%20Foolish%20Things.m4a41755Street LifeBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file33689432071431162019892007-02-05T11:33:51Z2005-09-03T05:48:33Z128441002332933864442008-05-11T09:34:04ZAFECFC8346839FF2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/06%20Street%20Life.m4a41756Let's Stick TogetherBryan Ferry & Roxy Musicwilbert harrisonStreet Life - Greatest HitsAlternative & PunkAAC audio file29225531791861172019892007-02-05T11:33:52Z2005-09-03T05:48:47Z128441002332933866232008-05-11T09:37:03ZAFECFC8346839FF3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/07%20Let's%20Stick%20Together.m4a41757Smoke Gets In Your EyesBryan Ferry & Roxy Musicjerome kern/otto harbachStreet Life - Greatest HitsAlternative & PunkAAC audio file28346381737991182019892007-02-05T11:33:53Z2005-09-03T05:48:58Z128441002332933867972008-05-11T09:39:57ZAFECFC8346839FF4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/08%20Smoke%20Gets%20In%20Your%20Eyes.m4a41758Love Is The DrugBryan Ferry & Roxy Musicandy mackay/bryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file39744592449221192019752007-02-05T11:33:55Z2005-09-03T05:49:08Z128441002332933870422008-05-11T09:44:02ZAFECFC8346839FF5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/09%20Love%20Is%20The%20Drug.m4a41759Sign Of The TimesBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file240347414849011102019892007-02-05T11:33:55Z2005-09-03T05:49:23Z128441002232933871902008-05-11T09:46:30ZAFECFC8346839FF6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/10%20Sign%20Of%20The%20Times.m4a41760Dance AwayBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file365180222481411112019892007-02-05T11:33:57Z2005-09-03T05:49:31Z128441002232933874152008-05-11T09:50:15ZAFECFC8346839FF7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/11%20Dance%20Away.m4a41761Angel EyesBryan Ferry & Roxy Musicandy mackay/bryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file279844517152411122019892007-02-05T11:33:58Z2005-09-03T05:49:44Z128441002232933875872008-05-11T09:53:07ZAFECFC8346839FF8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/12%20Angel%20Eyes.m4a41762Oh YeahBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file447794727622311132019892007-02-05T11:34:00Z2005-09-03T05:49:53Z128441002332933878632008-05-11T09:57:43ZAFECFC8346839FF9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/13%20Oh%20Yeah.m4a41763Over YouBryan Ferry & Roxy Musicbryan ferry/phil manzaneraStreet Life - Greatest HitsAlternative & PunkAAC audio file336032120660911142019892007-02-05T11:34:01Z2005-09-03T05:50:07Z128441002332933880692008-05-11T10:01:09ZAFECFC8346839FFAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/14%20Over%20You.m4a41764Same Old SceneBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file382845323802611152019892007-02-05T11:34:02Z2005-09-03T05:50:17Z128441002232933883072008-05-11T10:05:07ZAFECFC8346839FFBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/15%20Same%20Old%20Scene.m4a41765In The Midnight HourBryan Ferry & Roxy Musicsteve cropper/wilson pickettStreet Life - Greatest HitsAlternative & PunkAAC audio file306631118826511162019892007-02-05T11:34:03Z2005-09-03T05:50:28Z128441002332933884962008-05-11T10:08:16ZAFECFC8346839FFCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/16%20In%20The%20Midnight%20Hour.m4a41766More Than ThisBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file405936025026311172019892007-02-05T11:34:05Z2005-09-03T05:50:37Z128441002132933887462008-05-11T10:12:26ZAFECFC8346839FFDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/17%20More%20Than%20This.m4a-1-1767AvalonBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file415488825620711182019892007-02-05T11:34:06Z2005-09-03T05:50:49Z128441002132933890022008-05-11T10:16:42ZAFECFC8346839FFEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/18%20Avalon.m4a41768Slave To LoveBryan Ferry & Roxy Musicbryan ferryStreet Life - Greatest HitsAlternative & PunkAAC audio file417965825778611192019892007-02-05T11:34:08Z2005-09-03T05:51:00Z128441002132933892602008-05-11T10:21:00ZAFECFC8346839FFFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/19%20Slave%20To%20Love.m4a41769Jealous GuyBryan Ferry & Roxy Musicjohn lennonStreet Life - Greatest HitsAlternative & PunkAAC audio file477845129551811202019892007-02-05T11:34:10Z2005-09-03T05:51:12Z128441002132933895552008-05-11T10:25:55ZAFECFC834683A000Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Street%20Life%20-%20Greatest%20Hits/20%20Jealous%20Guy.m4a41770IntroMiles DavisPalle MikkelborgAuraJazzAAC audio file43168042679801111019892007-02-05T11:43:48Z2005-09-03T06:00:58Z128441001432938249492008-05-16T11:22:29ZAFECFC834683A00DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/01%20Intro.m4a41771WhiteMiles DavisPalle MikkelborgAuraJazzAAC audio file58782393669891121019892007-02-05T11:43:51Z2005-09-03T06:01:25Z128441001432938253162008-05-16T11:28:36ZAFECFC834683A00EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/02%20White.m4a41772YellowMiles DavisPalle MikkelborgAuraJazzAAC audio file65743194093891131019892007-02-05T11:43:53Z2005-09-03T06:01:56Z128441001532938257252008-05-16T11:35:25ZAFECFC834683A00FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/03%20Yellow.m4a-1-1773OrangeMiles DavisPalle MikkelborgAuraJazzAAC audio file83462265168051141019892007-02-05T11:43:56Z2005-09-03T06:02:26Z128441001332938262422008-05-16T11:44:02ZAFECFC834683A010Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/04%20Orange.m4a41774RedMiles DavisPalle MikkelborgAuraJazzAAC audio file96340605971921151019892007-02-05T11:44:00Z2005-09-03T06:03:01Z128441001432938268392008-05-16T11:53:59ZAFECFC834683A011Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/05%20Red.m4a41775GreenMiles DavisPalle MikkelborgAuraJazzAAC audio file42152102645891161019892007-02-05T11:44:01Z2005-09-03T06:03:37Z128441001332938271042008-05-16T11:58:24ZAFECFC834683A012Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/06%20Green.m4a-1-1776BlueMiles DavisPalle MikkelborgAuraJazzAAC audio file63821263976631171019892007-02-05T11:44:03Z2005-09-03T06:03:52Z128441001332938275012008-05-16T12:05:01ZAFECFC834683A013Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/07%20Blue.m4a-1-1777Electric RedMiles DavisPalle MikkelborgAuraJazzAAC audio file41621752586221181019892007-02-05T11:44:05Z2005-09-03T06:04:12Z128441001332938277602008-05-16T12:09:20ZAFECFC834683A014Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/08%20Electric%20Red.m4a41778IndigoMiles DavisPalle MikkelborgAuraJazzAAC audio file58159573612541191019892007-02-05T11:44:07Z2005-09-03T06:04:26Z128441001432938281212008-05-16T12:15:21ZAFECFC834683A015Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/09%20Indigo.m4a41779VioletMiles DavisPalle MikkelborgAuraJazzAAC audio file877309454165011101019892007-02-05T11:44:10Z2005-09-03T06:04:44Z128441001232938286632008-05-16T12:24:23ZAFECFC834683A016Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Aura/10%20Violet.m4a41780RespectAretha FranklinOtis ReddingThe Very BestR&BAAC audio file23760711451691111619942007-02-05T11:27:45Z2005-09-03T06:06:11Z128441001132933680162008-05-11T04:26:56ZVery BestAFECFC834683A029Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/01%20Respect.m4a-1-1781Baby I Love YouAretha FranklinRonnie ShannonThe Very BestR&BAAC audio file26755011638611121619942007-02-05T11:27:46Z2005-09-03T06:06:26Z128441001232933681802008-05-11T04:29:40ZVery BestAFECFC834683A02AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/02%20Baby%20I%20Love%20You.m4a-1-1782I Never Loved A Man (The Way I Love You)Aretha FranklinRonnie ShannonThe Very BestR&BAAC audio file28005861716631131619942007-02-05T11:27:47Z2005-09-03T06:06:40Z128441001032907610622008-04-11T00:17:42ZVery BestAFECFC834683A02BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/03%20I%20Never%20Loved%20A%20Man%20(The%20Way%20I%20Love%20You).m4a41783Chain Of FoolsAretha FranklinDon CovayThe Very BestR&BAAC audio file27565591689231141619942007-02-05T11:27:48Z2005-09-03T06:06:55Z128441001032907612312008-04-11T00:20:31ZVery BestAFECFC834683A02CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/04%20Chain%20Of%20Fools.m4a41784Do Right Woman, Do Right ManAretha FranklinDan Penn - Chips MomamThe Very BestR&BAAC audio file31799581953481151619942007-02-05T11:27:49Z2005-09-03T06:07:08Z128441001032907614262008-04-11T00:23:46ZVery BestAFECFC834683A02DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/05%20Do%20Right%20Woman,%20Do%20Right%20Man.m4a41785(You Make Me Feel Like) A Natural WomanAretha FranklinGerry Goffin - Carol King - Jerry WexlerThe Very BestR&BAAC audio file26899161647671161619942007-02-05T11:27:50Z2005-09-03T06:07:21Z128441001032907615912008-04-11T00:26:31ZVery BestAFECFC834683A02EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/06%20(You%20Make%20Me%20Feel%20Like)%20A%20Natural%20Woman.m4a41786(Sweet Sweet Baby) Since You've Been GoneAretha FranklinAretha Franklin - Ted WhiteThe Very BestR&BAAC audio file23886821459591171619942007-02-05T11:27:51Z2005-09-03T06:07:33Z128441001032907617372008-04-11T00:28:57ZVery BestAFECFC834683A02FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/07%20(Sweet%20Sweet%20Baby)%20Since%20You've%20Been%20Gone.m4a41787Ain't No WayAretha FranklinCarolyn FranklinThe Very BestR&BAAC audio file41232102542331181619942007-02-05T11:27:53Z2005-09-03T06:07:43Z128441001032907619912008-04-11T00:33:11ZVery BestAFECFC834683A030Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/08%20Ain't%20No%20Way.m4a-1-1788ThinkAretha FranklinAretha Franklin - Ted WhiteThe Very BestR&BAAC audio file22834171393871191619942007-02-05T11:27:54Z2005-09-03T06:08:00Z128441001032907621302008-04-11T00:35:30ZVery BestAFECFC834683A031Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/09%20Think.m4a41789See SawAretha FranklinSteve Cropper - Don CovayThe Very BestR&BAAC audio file270982116599811101619942007-02-05T11:27:54Z2005-09-03T06:08:08Z128441001132907622962008-04-11T00:38:16ZVery BestAFECFC834683A032Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/10%20See%20Saw.m4a41790The House That Jack BuiltAretha FranklinBob Lance - Fran RobbinsThe Very BestR&BAAC audio file233633614268511111619942007-02-05T11:27:55Z2005-09-03T06:08:18Z128441001032907624392008-04-11T00:40:39ZVery BestHouse That Jack BuiltAFECFC834683A033Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/11%20The%20House%20That%20Jack%20Built.m4a-1-1791I Say A Little PrayerAretha FranklinBurt Bacharach - Hal DavidThe Very BestR&BAAC audio file351170921606011121619942007-02-05T11:27:57Z2005-09-03T06:08:27Z128441001032907626552008-04-11T00:44:15ZVery BestAFECFC834683A034Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/12%20I%20Say%20A%20Little%20Prayer.m4a41792The WeightAretha FranklinJaime RobertsonThe Very BestR&BAAC audio file285071717479811131619942007-02-05T11:27:58Z2005-09-03T06:08:39Z128441001032907628302008-04-11T00:47:10ZVery BestWeightAFECFC834683A035Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/13%20The%20Weight.m4a41793Eleanor RigbyAretha FranklinJohn Lennon & Paul McCartneyThe Very BestR&BAAC audio file258147415798711141619942007-02-05T11:27:59Z2005-09-03T06:08:49Z128441001032907629882008-04-11T00:49:48ZVery BestAFECFC834683A036Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/14%20Eleanor%20Rigby.m4a41794Share Your Love With MeAretha FranklinAl Braggs - Deadric MaloneThe Very BestR&BAAC audio file326965320096711151619942007-02-05T11:28:00Z2005-09-03T06:08:57Z128441001032907631892008-04-11T00:53:09ZVery BestAFECFC834683A037Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/15%20Share%20Your%20Love%20With%20Me.m4a41795Call MeAretha FranklinAretha FranklinThe Very BestR&BAAC audio file382920023607511161619942007-02-05T11:28:01Z2005-09-03T06:09:08Z128441001032907634252008-04-11T00:57:05ZVery BestAFECFC834683A038Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Aretha%20Franklin/The%20Very%20Best/16%20Call%20Me.m4a41796You Gotta Make It Through The WorldVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file5023309311145111719772007-02-05T11:54:02Z2005-09-03T06:10:35Z128441003132916838742008-04-21T16:37:54ZAFECFC834683A042Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/01%20You%20Gotta%20Make%20It%20Through%20The%20World.m4a41797It Fills You UpVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file4449800279264112719772007-02-05T11:54:04Z2005-09-03T06:11:08Z128441003132916841532008-04-21T16:42:33ZAFECFC834683A043Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/02%20It%20Fills%20You%20Up.m4a-1-1798The Eternal Kansas CityVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file5288272327399113719772007-02-05T11:54:06Z2005-09-03T06:11:33Z128441003232916844812008-04-21T16:48:01ZEternal Kansas CityAFECFC834683A044Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/03%20The%20Eternal%20Kansas%20City.m4a-1-1799Joyous SoundVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file2741864170781114719772007-02-05T11:54:07Z2005-09-03T06:12:00Z128441003032916846522008-04-21T16:50:52ZAFECFC834683A045Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/04%20Joyous%20Sound.m4a-1-1800Flamingos FlyVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file4553077286695115719772007-02-05T11:54:08Z2005-09-03T06:12:12Z128441002932916849382008-04-21T16:55:38ZAFECFC834683A046Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/05%20Flamingos%20Fly.m4a41801Heavy ConnectionVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file5251129326865116719772007-02-05T11:54:10Z2005-09-03T06:12:33Z128441002932916852652008-04-21T17:01:05ZAFECFC834683A047Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/06%20Heavy%20Connection.m4a-1-1802Cold Wind In AugustVan MorrisonVan Morrison1977-A Period Of TransitionRockAAC audio file5634040347740117719772007-02-05T11:54:12Z2005-09-03T06:12:55Z128441002932916856132008-04-21T17:06:53ZAFECFC834683A048Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/1977-A%20Period%20Of%20Transition/07%20Cold%20Wind%20In%20August.m4a41803Professional JealousyVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file36841462268341211019912007-02-05T11:56:49Z2005-09-03T06:13:48Z128441001932916611412008-04-21T10:19:01ZAFECFC834683A055Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-01%20Professional%20Jealousy.m4a41804I'm Not Feeling It AnymoreVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file64211573961771221019912007-02-05T11:56:51Z2005-09-03T06:14:12Z128441001932916615372008-04-21T10:25:37ZAFECFC834683A056Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-02%20I'm%20Not%20Feeling%20It%20Anymore.m4a41805Ordinary LifeVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file34842022143411231019912007-02-05T11:56:52Z2005-09-03T06:14:48Z128441001932916617512008-04-21T10:29:11ZAFECFC834683A057Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-03%20Ordinary%20Life.m4a-1-1806Some Peace Of MindVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file62854123877951241019912007-02-05T11:56:54Z2005-09-03T06:15:06Z128441002032916621392008-04-21T10:35:39ZAFECFC834683A058Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-04%20Some%20Peace%20Of%20Mind.m4a41807So ComplicatedVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file32884272021281251019912007-02-05T11:56:55Z2005-09-03T06:15:35Z128441001932916623412008-04-21T10:39:01ZAFECFC834683A059Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-05%20So%20Complicated.m4a41808I Can't Stop Loving YouVan MorrisonDon GibsonHymns To The Silence (Disc 1)RockAAC audio file38636612380261261019912007-02-05T11:56:57Z2005-09-03T06:15:49Z128441001932916625792008-04-21T10:42:59ZAFECFC834683A05AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-06%20I%20Can't%20Stop%20Loving%20You.m4a41809Why Must I Always Explain?Van MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file37880432333121271019912007-02-05T11:56:58Z2005-09-03T06:16:05Z128441001832916628122008-04-21T10:46:52ZAFECFC834683A05BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-07%20Why%20Must%20I%20Always%20Explain_.m4a41810Village IdiotVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file31995051965781281019912007-02-05T11:57:00Z2005-09-03T06:16:20Z128441001932916630092008-04-21T10:50:09ZAFECFC834683A05CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-08%20Village%20Idiot.m4a41811See Me Through Part II (Just A Closer Walk With Thee)Van MorrisonTrad. arr. by Van MorrisonHymns To The Silence (Disc 1)RockAAC audio file31430671930491291019912007-02-05T11:57:01Z2005-09-03T06:16:32Z128441001932916632022008-04-21T10:53:22ZAFECFC834683A05DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-09%20See%20Me%20Through%20Part%20II%20(Just%20A%20Closer%20Walk%20With%20Thee).m4a-1-1812Take Me BackVan MorrisonVan MorrisonHymns To The Silence (Disc 1)RockAAC audio file890928754987012101019912007-02-05T11:57:04Z2005-09-03T06:16:44Z128441002032916637522008-04-21T11:02:32ZAFECFC834683A05EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Hymns%20To%20The%20Silence%20(Disc%201)/1-10%20Take%20Me%20Back.m4a41813One Sweet World (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file55640713431891211219992007-02-05T11:36:20Z2005-09-03T06:17:54Z128441001332933986392008-05-11T12:57:19ZAFECFC834683A06DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-01%20One%20Sweet%20World%20(Live).m4a-1-1814#41 (Live)Dave MatthewsDave Matthews, C. Beauford, S. Lessard, L. Moore, B. TinsleyLive At Luther College (Disc 1)RockAAC audio file54772953379181221219992007-02-05T11:36:22Z2005-09-03T06:18:27Z128441001432933989772008-05-11T13:02:57ZAFECFC834683A06EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-02%20%2341%20(Live).m4a41815Tripping Billies (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file56596613490871231219992007-02-05T11:36:24Z2005-09-03T06:18:53Z128441001432933993262008-05-11T13:08:46ZAFECFC834683A06FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-03%20Tripping%20Billies%20(Live).m4a41816Jimi Thing (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file79935854931671241219992007-02-05T11:36:27Z2005-09-03T06:19:18Z128441001332933998192008-05-11T13:16:59ZAFECFC834683A070Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-04%20Jimi%20Thing%20(Live).m4a-1-1817Satellite (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file45392422799381251219992007-02-05T11:36:29Z2005-09-03T06:19:50Z128441001232934000992008-05-11T13:21:39ZAFECFC834683A071Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-05%20Satellite%20(Live).m4a41818Crash Into Me (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file54056523333901261219992007-02-05T11:36:31Z2005-09-03T06:20:08Z128441001232934004322008-05-11T13:27:12ZAFECFC834683A072Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-06%20Crash%20Into%20Me%20(Live).m4a41819Deed Is Done (Live)Dave MatthewsDave Matthews, C. Beauford, S. Lessard, L. Moore, B. TinsleyLive At Luther College (Disc 1)RockAAC audio file47291992916641271219992007-02-05T11:36:33Z2005-09-03T06:20:27Z128441001332934007242008-05-11T13:32:04ZAFECFC834683A073Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-07%20Deed%20Is%20Done%20(Live).m4a41820Lover Lay Down (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file54115143337851281219992007-02-05T11:36:35Z2005-09-03T06:20:43Z128441001232934010572008-05-11T13:37:37ZAFECFC834683A074Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-08%20Lover%20Lay%20Down%20(Live).m4a41821What Would You Say (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file49769223069661291219992007-02-05T11:36:36Z2005-09-03T06:21:00Z128441001332934013642008-05-11T13:42:44ZAFECFC834683A075Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-09%20What%20Would%20You%20Say%20(Live).m4a-1-1822Minarets (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file682171242081312101219992007-02-05T11:36:39Z2005-09-03T06:21:16Z128441001132934017852008-05-11T13:49:45ZAFECFC834683A076Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-10%20Minarets%20(Live).m4a41823Cry Frredom (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file549520833898612111219992007-02-05T11:36:41Z2005-09-03T06:21:36Z128441001132934021242008-05-11T13:55:24ZAFECFC834683A077Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-11%20Cry%20Frredom%20(Live).m4a-1-1824Dancing Nancies (Live)Dave MatthewsDave MatthewsLive At Luther College (Disc 1)RockAAC audio file705476643532612121219992007-02-05T11:36:44Z2005-09-03T06:21:52Z128441001132934025592008-05-11T14:02:39ZAFECFC834683A078Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews/Live%20At%20Luther%20College%20(Disc%201)/1-12%20Dancing%20Nancies%20(Live).m4a41825And It Stoned MeVan MorrisonVan MorrisonMoondanceRockAAC audio file43943302739701111019702007-02-05T11:57:22Z2005-09-03T06:22:51Z128441001732916669452008-04-21T11:55:45ZAFECFC834683A085Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/01%20And%20It%20Stoned%20Me.m4a41826MoondanceVan MorrisonVan MorrisonMoondanceRockAAC audio file44394262766641121019702007-02-05T11:57:24Z2005-09-03T06:23:17Z128441001632916672222008-04-21T12:00:22ZAFECFC834683A086Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/02%20Moondance.m4a41827Crazy LoveVan MorrisonVan MorrisonMoondanceRockAAC audio file25274161568261131019702007-02-05T11:57:25Z2005-09-03T06:23:40Z128441001832939060822008-05-17T09:54:42ZAFECFC834683A087Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/03%20Crazy%20Love.m4a41828CaravanVan MorrisonVan MorrisonMoondanceRockAAC audio file48276793025311141019702007-02-05T11:57:27Z2005-09-03T06:23:51Z128441001632916676812008-04-21T12:08:01ZAFECFC834683A088Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/04%20Caravan.m4a41829Into the MysticVan MorrisonVan MorrisonMoondanceRockAAC audio file33848522103941151019702007-02-05T11:57:28Z2005-09-03T06:24:13Z128441001632916678912008-04-21T12:11:31ZAFECFC834683A089Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/05%20Into%20the%20Mystic.m4a-1-1830Come RunningVan MorrisonVan MorrisonMoondanceRockAAC audio file24596571524371161019702007-02-05T11:57:29Z2005-09-03T06:24:27Z128441001632916680442008-04-21T12:14:04ZAFECFC834683A08AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/06%20Come%20Running.m4a41831These Dreams of YouVan MorrisonVan MorrisonMoondanceRockAAC audio file37456652338931171019702007-02-05T11:57:30Z2005-09-03T06:24:37Z128441001632916682782008-04-21T12:17:58ZAFECFC834683A08BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/07%20These%20Dreams%20of%20You.m4a41832Brand New DayVan MorrisonVan MorrisonMoondanceRockAAC audio file49887313107971181019702007-02-05T11:57:32Z2005-09-03T06:24:51Z128441001532916685892008-04-21T12:23:09ZAFECFC834683A08CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/08%20Brand%20New%20Day.m4a41833EveryoneVan MorrisonVan MorrisonMoondanceRockAAC audio file34415592145041191019702007-02-05T11:57:33Z2005-09-03T06:25:11Z128441001532916688032008-04-21T12:26:43ZAFECFC834683A08DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/09%20Everyone.m4a41834Glad TidingsVan MorrisonVan MorrisonMoondanceRockAAC audio file361005222235211101019702007-02-05T11:57:34Z2005-09-03T06:25:23Z128441001532916690252008-04-21T12:30:25ZAFECFC834683A08EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Moondance/10%20Glad%20Tidings.m4a41835(Da Le) YaleoSantanaCarlos Santana/S. RaSupernaturalRockAAC audio file57301443535921111319992007-02-05T11:34:39Z2005-09-03T06:26:08Z128441003332928918892008-05-05T16:11:29ZAFECFC834683A09EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/01%20(Da%20Le)%20Yaleo.m4a41836Love Of My LifeSantana Feat. Dave MatthewsCarlos Santana & Dave MatthewsSupernaturalRockAAC audio file56366893478101121319992007-02-05T11:34:41Z2005-09-03T06:26:41Z128441004032947426572008-05-27T02:17:37ZAFECFC834683A09FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/02%20Love%20Of%20My%20Life.m4a-1-1837Put Your Lights OnSantana Feat. EverlastE. ShrodySupernaturalRockAAC audio file46226902851621131319992007-02-05T11:34:43Z2005-09-03T06:27:08Z128441003932947429422008-05-27T02:22:22ZAFECFC834683A0A0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/03%20Put%20Your%20Lights%20On.m4a-1-1838Africa BambaSantanaCarlos Santana/I. Toure/K. Perazzo/S. Tidiane ToureSupernaturalRockAAC audio file45796002825151141319992007-02-05T11:34:45Z2005-09-03T06:27:28Z128441003732947432242008-05-27T02:27:04ZAFECFC834683A0A1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/04%20Africa%20Bamba.m4a41839SmoothSantana Feat. Rob ThomasItaal Shur/Rob ThomasSupernaturalRockAAC audio file48306412980491151319992007-02-05T11:34:46Z2005-09-03T06:27:46Z128441003832947435222008-05-27T02:32:02ZAFECFC834683A0A2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/05%20Smooth.m4a-1-1840Do You Like The WaySantana Feat. Lauryn Hill & Cee-LoLauryn HillSupernaturalRockAAC audio file57497163547991161319992007-02-05T11:34:48Z2005-09-03T06:28:05Z128441003832947438772008-05-27T02:37:57ZAFECFC834683A0A3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/06%20Do%20You%20Like%20The%20Way.m4a41841Maria MariaSantana Feat. The Project G&BCarlos Santana/J. Duplessis/K. Perazzo/R. Rekow/W. JeanSupernaturalRockAAC audio file42553052625461171319992007-02-05T11:34:50Z2005-09-03T06:28:26Z128441004032947441402008-05-27T02:42:20ZAFECFC834683A0A4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/07%20Maria%20Maria.m4a-1-1842MigraSantanaCarlos Santana/R. Taha/T. LindsaySupernaturalRockAAC audio file53310813289321181319992007-02-05T11:34:52Z2005-09-03T06:28:41Z128441003432947444692008-05-27T02:47:49ZAFECFC834683A0A5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/08%20Migra.m4a41843Corazon EspinadoSantana Feat. ManáF. OliveraSupernaturalRockAAC audio file44757582761531191319992007-02-05T11:34:53Z2005-09-03T06:28:58Z128441003832947447452008-05-27T02:52:25ZAFECFC834683A0A6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/09%20Corazon%20Espinado.m4a41844Wishing It WasSantana Feat. Eagle-Eye CherryEagle-Eye Cherry/J. King/M. Nishita/M. SimpsonSupernaturalRockAAC audio file474264729259311101319992007-02-05T11:34:55Z2005-09-03T06:29:13Z128441003832947450372008-05-27T02:57:17ZAFECFC834683A0A7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/10%20Wishing%20It%20Was.m4a41845El FarolSantanaCarlos Santana/KC PorterSupernaturalRockAAC audio file471686629106011111319992007-02-05T11:34:57Z2005-09-03T06:29:27Z128441003432947453282008-05-27T03:02:08ZAFECFC834683A0A8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/11%20El%20Farol.m4a41846PrimaveraSantanaJB Eckl/KC PorterSupernaturalRockAAC audio file613775137871611121319992007-02-05T11:34:59Z2005-09-03T06:29:41Z128441003532947457072008-05-27T03:08:27ZAFECFC834683A0A9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/12%20Primavera.m4a41847The CallingSantana Feat. Eric ClaptonC. Thompson/Carlos SantanaSupernaturalRockAAC audio file1194069074782011131319992007-02-05T11:35:03Z2005-09-03T06:29:58Z128441003832947464552008-05-27T03:20:55ZCallingAFECFC834683A0AAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Supernatural/13%20The%20Calling.m4a41848Mr. Tambourine ManBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file49210453034831211119872007-02-05T11:28:22Z2005-09-03T07:51:12Z128441001532933708942008-05-11T05:14:54ZAFECFC834683A0B8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-01%20Mr.%20Tambourine%20Man.m4a41849Shelter From The StormBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file45277082792181221119872007-02-05T11:28:24Z2005-09-03T07:51:41Z128441001932933711732008-05-11T05:19:33ZAFECFC834683A0B9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-02%20Shelter%20From%20The%20Storm.m4a-1-1850Love Minus Zero / No LimitBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file38556802374221231119872007-02-05T11:28:26Z2005-09-03T07:52:03Z128441002032933714112008-05-11T05:23:31ZAFECFC834683A0BAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-03%20Love%20Minus%20Zero%20_%20No%20Limit.m4a41851Ballad Of A Thin ManBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file47572482933591241119872007-02-05T11:28:27Z2005-09-03T07:52:20Z128441002132933717042008-05-11T05:28:24ZAFECFC834683A0BBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-04%20Ballad%20Of%20A%20Thin%20Man.m4a41852Don't Think Twice, Its All RightBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file49015453022751251119872007-02-05T11:28:29Z2005-09-03T07:52:41Z128441001932933720062008-05-11T05:33:26ZAFECFC834683A0BCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-05%20Don't%20Think%20Twice,%20Its%20All%20Right.m4a41853Maggie's FarmBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file52773593255191261119872007-02-05T11:28:31Z2005-09-03T07:53:00Z128441001832933723322008-05-11T05:38:52ZAFECFC834683A0BDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-06%20Maggie's%20Farm.m4a41854One More Cup Of Coffee (Valley Below)Bob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file34209272103011271119872007-02-05T11:28:32Z2005-09-03T07:53:20Z128441001832933725422008-05-11T05:42:22ZAFECFC834683A0BEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-07%20One%20More%20Cup%20Of%20Coffee%20(Valley%20Below).m4a41855Like A Rolling StoneBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file64272023964561281119872007-02-05T11:28:34Z2005-09-03T07:53:32Z128441001832933729382008-05-11T05:48:58ZAFECFC834683A0BFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-08%20Like%20A%20Rolling%20Stone.m4a41856I Shall Be ReleasedBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file42792762638701291119872007-02-05T11:28:36Z2005-09-03T07:53:53Z128441001832933732022008-05-11T05:53:22ZAFECFC834683A0C0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-09%20I%20Shall%20Be%20Released.m4a41857Is Your Love In VainBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file393474624236812101119872007-02-05T11:28:37Z2005-09-03T07:54:07Z128441001832933734452008-05-11T05:57:25ZAFECFC834683A0C1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-10%20Is%20Your%20Love%20In%20Vain.m4a41858Going, Going, GoneBob DylanBob DylanBob Dylan At Budokan [Disc 1]RockAAC audio file425429226268512111119872007-02-05T11:28:39Z2005-09-03T07:54:20Z128441001832933737072008-05-11T06:01:47ZAFECFC834683A0C2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Bob%20Dylan/Bob%20Dylan%20At%20Budokan%20%5BDisc%201%5D/1-11%20Going,%20Going,%20Gone.m4a41859WhyAnnie LennoxAl Dubin/Annie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file47614692937301111119922007-02-05T11:27:12Z2005-09-03T07:55:04Z128441001232907549212008-04-10T22:35:21ZAFECFC834683A0D0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/01%20Why.m4a-1-1860Walking On Broken GlassAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file41076642532581121119922007-02-05T11:27:14Z2005-09-03T07:55:33Z128441001332907551742008-04-10T22:39:34ZAFECFC834683A0D1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/02%20Walking%20On%20Broken%20Glass.m4a41861PreciousAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file50000783084521131119922007-02-05T11:27:16Z2005-09-03T07:55:54Z128441001332907554822008-04-10T22:44:42ZAFECFC834683A0D2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/03%20Precious.m4a41862Legend In My Living RoomAnnie LennoxPeter-John VetteseDivaPopAAC audio file36672732257661141119922007-02-05T11:27:17Z2005-09-03T07:56:17Z128441001332907557082008-04-10T22:48:28ZAFECFC834683A0D3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/04%20Legend%20In%20My%20Living%20Room.m4a-1-1863ColdAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file42412502616171151119922007-02-05T11:27:19Z2005-09-03T07:56:33Z128441001232907559702008-04-10T22:52:50ZAFECFC834683A0D4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/05%20Cold.m4a-1-1864Money Can't Buy ItAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file48611582998841161119922007-02-05T11:27:20Z2005-09-03T07:56:50Z128441001132907562692008-04-10T22:57:49ZAFECFC834683A0D5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/06%20Money%20Can't%20Buy%20It.m4a41865Little BirdAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file44969282793811171119922007-02-05T11:27:22Z2005-09-03T07:57:09Z128441001132907565492008-04-10T23:02:29ZAFECFC834683A0D6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/07%20Little%20Bird.m4a41866PrimitiveAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file42046952593191181119922007-02-05T11:27:24Z2005-09-03T07:57:25Z128441001132907568082008-04-10T23:06:48ZAFECFC834683A0D7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/08%20Primitive.m4a41867Stay By MeAnnie LennoxAnnie Lennox/Harry Warren/Paul Buchanan/Paul Joseph Moore/Peter-John Vettese/Robert BellDivaPopAAC audio file62992413886541191119922007-02-05T11:27:26Z2005-09-03T07:57:40Z128441001132907571972008-04-10T23:13:17ZAFECFC834683A0D8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/09%20Stay%20By%20Me.m4a-1-1868The GiftAnnie LennoxPaul Buchanan/Paul Joseph Moore/Robert BellDivaPopAAC audio file475342929465911101119922007-02-05T11:27:27Z2005-09-03T07:58:01Z128441001132907574912008-04-10T23:18:11ZGiftAFECFC834683A0D9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/10%20The%20Gift.m4a41869Keep Young And BeautifulAnnie LennoxHarry WarrenDivaPopAAC audio file224577113706511111119922007-02-05T11:27:28Z2005-09-03T07:58:17Z128441001132907576282008-04-10T23:20:28ZAFECFC834683A0DAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Annie%20Lennox/Diva/11%20Keep%20Young%20And%20Beautiful.m4a-1-1870Telling Me LiesDolores KeaneThompson & CookSolid GroundFolkAAC audio file373294623203511119932007-02-05T11:38:39Z2005-09-03T07:58:59Z128441002132912986542008-04-17T05:37:34ZAFECFC834683A0E8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/01%20Telling%20Me%20Lies.m4a-1-1871Storm In My HeartDolores KeaneFaulknerSolid GroundFolkAAC audio file438670227262421119932007-02-05T11:38:40Z2005-09-03T07:59:24Z128441002532912989262008-04-17T05:42:06ZAFECFC834683A0E9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/02%20Storm%20In%20My%20Heart.m4a-1-1872Never Be The SunDolores KeaneLongSolid GroundFolkAAC audio file358558922323531119932007-02-05T11:38:42Z2005-09-03T07:59:49Z128441002332912991502008-04-17T05:45:50ZAFECFC834683A0EAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/03%20Never%20Be%20The%20Sun.m4a41873Solid GroundDolores KeaneDougie MacLeanSolid GroundFolkAAC audio file375572523412541119932007-02-05T11:38:43Z2005-09-03T08:00:08Z128441002132912993842008-04-17T05:49:44ZAFECFC834683A0EBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/04%20Solid%20Ground.m4a41874Emigrant EyesDolores KeaneClark & StannahSolid GroundFolkAAC audio file411040225595251119932007-02-05T11:38:45Z2005-09-03T08:00:27Z128441002432912996402008-04-17T05:54:00ZAFECFC834683A0ECFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/05%20Emigrant%20Eyes.m4a-1-1875Nothing To ShowDolores KeaneHalpinSolid GroundFolkAAC audio file376021623503061119932007-02-05T11:38:46Z2005-09-03T08:00:45Z128441002132912998752008-04-17T05:57:55ZAFECFC834683A0EDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/06%20Nothing%20To%20Show.m4a-1-1876I Courted A SoldierDolores KeaneFrank McGuinness & Shaun DaveySolid GroundFolkAAC audio file434498527051171119932007-02-05T11:38:47Z2005-09-03T08:01:02Z128441002332913001452008-04-17T06:02:25ZAFECFC834683A0EEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/07%20I%20Courted%20A%20Soldier.m4a41877Summer Of My DreamsDolores KeaneDavid MalletSolid GroundFolkAAC audio file389296224248481119932007-02-05T11:38:49Z2005-09-03T08:01:20Z128441002132913003882008-04-17T06:06:28ZAFECFC834683A0EFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/08%20Summer%20Of%20My%20Dreams.m4a41878Tonight As We DanceDolores KeaneFaulknerSolid GroundFolkAAC audio file418424225982991119932007-02-05T11:38:50Z2005-09-03T08:01:35Z128441002132913006482008-04-17T06:10:48ZAFECFC834683A0F0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/09%20Tonight%20As%20We%20Dance.m4a41879The Finer ThingsDolores KeaneWinwood & JenningsSolid GroundFolkAAC audio file3827322237863101119932007-02-05T11:38:52Z2005-09-03T08:01:50Z128441002132913008852008-04-17T06:14:45ZFiner ThingsAFECFC834683A0F1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/10%20The%20Finer%20Things.m4a41880Until We Meet AgainDolores KeaneDougie MacLeanSolid GroundFolkAAC audio file2398630147050111119932007-02-05T11:38:52Z2005-09-03T08:02:04Z128441002232939682852008-05-18T03:11:25ZAFECFC834683A0F2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dolores%20Keane/Solid%20Ground/11%20Until%20We%20Meet%20Again.m4a41881The Sound of ChristmasJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file404557424938011119902007-02-05T11:35:05Z2005-09-03T08:02:39Z128441001632937999032008-05-16T04:25:03ZSounds of Christmas From Around the WorldSound of ChristmasAFECFC834683A100Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/01%20The%20Sound%20of%20Christmas.m4a41882Noel Nouvelet-II Est Ne.Le Divin EnfantJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file461072528441921119902007-02-05T11:35:07Z2005-09-03T08:03:05Z128441001632938001872008-05-16T04:29:47ZSounds of Christmas From Around the WorldAFECFC834683A101Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/02%20Noel%20Nouvelet-II%20Est%20Ne.Le%20Divin%20Enfant.m4a41883Silent NightJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file453177927954331119902007-02-05T11:35:08Z2005-09-03T08:03:31Z128441001832938004672008-05-16T04:34:27ZSounds of Christmas From Around the WorldAFECFC834683A102Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/03%20Silent%20Night.m4a-1-1884A European Lullaby MedleyJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file741752845768741119902007-02-05T11:35:11Z2005-09-03T08:04:13Z128441001832938009242008-05-16T04:42:04ZSounds of Christmas From Around the WorldEuropean Lullaby MedleyAFECFC834683A103Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/04%20A%20European%20Lullaby%20Medley.m4a41885Ding Dong Merrily on HighJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file351765221645451119902007-02-05T11:35:12Z2005-09-03T08:04:57Z128441001632925155292008-05-01T07:38:49ZSounds of Christmas From Around the WorldAFECFC834683A104Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/05%20Ding%20Dong%20Merrily%20on%20High.m4a41886This is ChristmasJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file453142228019361119902007-02-05T11:35:14Z2005-09-03T08:05:12Z128441001632925158092008-05-01T07:43:29ZSounds of Christmas From Around the WorldAFECFC834683A105Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/06%20This%20is%20Christmas.m4a41887Jesu Joy of Man's DesiringJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file319825119648571119902007-02-05T11:35:15Z2005-09-03T08:05:30Z128441001632925160062008-05-01T07:46:46ZSounds of Christmas From Around the WorldAFECFC834683A106Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/07%20Jesu%20Joy%20of%20Man's%20Desiring.m4a-1-1888Sweet Little Jesus BoyJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file344220121171881119902007-02-05T11:35:16Z2005-09-03T08:05:44Z128441001632925162182008-05-01T07:50:18ZSounds of Christmas From Around the WorldAFECFC834683A107Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/08%20Sweet%20Little%20Jesus%20Boy.m4a41889The Dance of the Sugar Plumb FairyJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file201017512232191119902007-02-05T11:35:17Z2005-09-03T08:05:57Z128441001632925163402008-05-01T07:52:20ZSounds of Christmas From Around the WorldDance of the Sugar Plumb FairyAFECFC834683A108Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/09%20The%20Dance%20of%20the%20Sugar%20Plumb%20Fairy.m4a41890Have Yourself a Merry Little ChristmasJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file4688665289226101119902007-02-05T11:35:18Z2005-09-03T08:06:04Z128441001632925166292008-05-01T07:57:09ZSounds of Christmas From Around the WorldAFECFC834683A109Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/10%20Have%20Yourself%20a%20Merry%20Little%20Christmas.m4a-1-1891Sleigh RideJulie AndrewsThe Sounds of Christmas From Around the WorldHolidayAAC audio file4616756284814111119902007-02-05T11:35:20Z2005-09-03T08:06:20Z128441001632925169142008-05-01T08:01:54ZSounds of Christmas From Around the WorldAFECFC834683A10AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20Sounds%20of%20Christmas%20From%20Around%20the%20World/11%20Sleigh%20Ride.m4a41892RhiannonFleetwood MacStevie NicksGreatest HitsRockAAC audio file40652032515631111619752007-02-05T11:39:59Z2005-09-03T08:07:10Z128441001532829319352008-01-11T09:32:15ZAFECFC834683A11DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/01%20Rhiannon.m4a41893Don't StopFleetwood MacChristine McVieGreatest HitsRockAAC audio file31157941919811121619772007-02-05T11:40:00Z2005-09-03T08:07:37Z128441001532829321272008-01-11T09:35:27ZAFECFC834683A11EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/02%20Don't%20Stop.m4a41894Go Your Own WayFleetwood MacLindsey BuckinghamGreatest HitsRockAAC audio file35419732185441131619772007-02-05T11:40:02Z2005-09-03T08:07:55Z128441001632829323462008-01-11T09:39:06ZAFECFC834683A11FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/03%20Go%20Your%20Own%20Way.m4a41895Hold MeFleetwood MacRobbie Patton & Christine McVieGreatest HitsRockAAC audio file36574492254871141619822007-02-05T11:40:03Z2005-09-03T08:08:13Z128441001632829325712008-01-11T09:42:51ZAFECFC834683A120Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/04%20Hold%20Me.m4a41896EverywhereFleetwood MacChristine McVieGreatest HitsRockAAC audio file36014782223521151619872007-02-05T11:40:04Z2005-09-03T08:08:30Z128441001432829327942008-01-11T09:46:34ZAFECFC834683A121Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/05%20Everywhere.m4a41897GypsyFleetwood MacStevie NicksGreatest HitsRockAAC audio file42887292648911161619822007-02-05T11:40:06Z2005-09-03T08:08:46Z128441001432829330592008-01-11T09:50:59ZAFECFC834683A122Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/06%20Gypsy.m4a41898You Make Loving FunFleetwood MacChristine McVieGreatest HitsRockAAC audio file34294402115321171619772007-02-05T11:40:07Z2005-09-03T08:09:04Z128441001432829332702008-01-11T09:54:30ZAFECFC834683A123Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/07%20You%20Make%20Loving%20Fun.m4a41899As Long As You FollowFleetwood MacEddy Quintela & Christine McVieGreatest HitsRockAAC audio file40490672502861181619882007-02-05T11:40:08Z2005-09-03T08:09:18Z128441001532829335202008-01-11T09:58:40ZAFECFC834683A124Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/08%20As%20Long%20As%20You%20Follow.m4a41900DreamsFleetwood MacStevie NicksGreatest HitsRockAAC audio file41266832546281191619772007-02-05T11:40:10Z2005-09-03T08:09:33Z128441001332829337752008-01-11T10:02:55ZAFECFC834683A125Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/09%20Dreams.m4a41901Say You Love MeFleetwood MacChristine McVieGreatest HitsRockAAC audio file405961925028611101619752007-02-05T11:40:11Z2005-09-03T08:09:49Z128441001432829340252008-01-11T10:07:05ZAFECFC834683A126Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/10%20Say%20You%20Love%20Me.m4a41902TuskFleetwood MacLindsey BuckinghamGreatest HitsRockAAC audio file341546721016211111619792007-02-05T11:40:12Z2005-09-03T08:10:03Z128441001332829342352008-01-11T10:10:35ZAFECFC834683A127Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/11%20Tusk.m4a41903Little LiesFleetwood MacEddy Quintela & Christine McVieGreatest HitsRockAAC audio file353943421801011121619872007-02-05T11:40:14Z2005-09-03T08:10:15Z128441001332829344532008-01-11T10:14:13ZAFECFC834683A128Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/12%20Little%20Lies.m4a41904SaraFleetwood MacStevie NicksGreatest HitsRockAAC audio file620165938266311131619792007-02-05T11:40:16Z2005-09-03T08:10:27Z128441001432829348362008-01-11T10:20:36ZAFECFC834683A129Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/13%20Sara.m4a41905Big LoveFleetwood MacLindsey BuckinghamGreatest HitsRockAAC audio file355573421882311141619872007-02-05T11:40:18Z2005-09-03T08:10:46Z128441001432829350552008-01-11T10:24:15ZAFECFC834683A12AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/14%20Big%20Love.m4a41906Over My HeadFleetwood MacChristine McVieGreatest HitsRockAAC audio file348338621464311151619752007-02-05T11:40:19Z2005-09-03T08:10:57Z128441001332829352692008-01-11T10:27:49ZAFECFC834683A12BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/15%20Over%20My%20Head.m4a41907No Questions AskedFleetwood MacStevie Nicks & Kelly JohnstonGreatest HitsRockAAC audio file455348628091311161619882007-02-05T11:40:20Z2005-09-03T08:11:07Z128441001432829355502008-01-11T10:32:30ZAFECFC834683A12CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Fleetwood%20Mac/Greatest%20Hits/16%20No%20Questions%20Asked.m4a41908Take TenPaul DesmondPaul DesmondTake TenJazzAAC audio file31186041917951111119632007-02-05T11:47:29Z2005-09-03T08:11:49Z128441005832939834082008-05-18T07:23:28ZAFECFC834683A13AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/01%20Take%20Ten.m4a-1-1909El PrincePaul DesmondPaul DesmondTake TenJazzAAC audio file35426102179871121119632007-02-05T11:47:30Z2005-09-03T08:12:10Z128441005732939836262008-05-18T07:27:06ZAFECFC834683A13BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/02%20El%20Prince.m4a41910Alone TogetherPaul DesmondArthur Schwartz, Howard DietzTake TenJazzAAC audio file66892484127331131119632007-02-05T11:47:33Z2005-09-03T08:12:31Z128441005432939840392008-05-18T07:33:59ZAFECFC834683A13CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/03%20Alone%20Together.m4a41911EmbarcaderoPaul DesmondPaul DesmondTake TenJazzAAC audio file39319902473371141119632007-02-05T11:47:34Z2005-09-03T08:13:06Z128441005332938642142008-05-16T22:16:54ZAFECFC834683A13DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/04%20Embarcadero.m4a41912The Theme From Black OrpheusPaul DesmondLuiz Bonfa, Luigi Creatore, Hugo Peretti, Antonio MariaTake TenJazzAAC audio file41276052545121151119632007-02-05T11:47:36Z2005-09-03T08:13:24Z128441005632938644682008-05-16T22:21:08ZTheme From Black OrpheusAFECFC834683A13EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/05%20The%20Theme%20From%20Black%20Orpheus.m4a41913NancyPaul DesmondPhil Silvers, Jimmy Van HeusenTake TenJazzAAC audio file59257043655961161119632007-02-05T11:47:38Z2005-09-03T08:13:43Z128441005532938648342008-05-16T22:27:14ZAFECFC834683A13FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/06%20Nancy.m4a-1-1914Samba De OrpheuPaul DesmondLuiz BonfaTake TenJazzAAC audio file43703662695821171119632007-02-05T11:47:39Z2005-09-03T08:14:07Z128441005532938651042008-05-16T22:31:44ZAFECFC834683A140Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/07%20Samba%20De%20Orpheu.m4a-1-1915The One I Love Belongs To Somebody ElsePaul DesmondIsham Jones, Gus KahnTake TenJazzAAC audio file54817433533591181119632007-02-05T11:47:41Z2005-09-03T08:14:25Z128441005532938654572008-05-16T22:37:37ZOne I Love Belongs To Somebody ElseAFECFC834683A141Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/08%20The%20One%20I%20Love%20Belongs%20To%20Somebody%20Else.m4a-1-1916Out Of Nowhere (Bonus Track)Paul DesmondEdward Heyman, Johnny GreenTake TenJazzAAC audio file65921734089481191119632007-02-05T11:47:44Z2005-09-03T08:14:46Z128441005132938658662008-05-16T22:44:26ZAFECFC834683A142Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/09%20Out%20Of%20Nowhere%20(Bonus%20Track).m4a41917Embarcadero (Alternate Take)Paul DesmondPaul DesmondTake TenJazzAAC audio file479673929742211101119632007-02-05T11:47:45Z2005-09-03T08:15:09Z128441005132938661632008-05-16T22:49:23ZAFECFC834683A143Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/10%20Embarcadero%20(Alternate%20Take).m4a41918El Prince (Alternate Take)Paul DesmondPaul DesmondTake TenJazzAAC audio file543263833534111111119632007-02-05T11:47:47Z2005-09-03T08:15:25Z128441005132938664992008-05-16T22:54:59ZAFECFC834683A144Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Desmond/Take%20Ten/11%20El%20Prince%20(Alternate%20Take).m4a41919Fisherman's BluesThe WaterboysMike ScottFisherman's BluesRockAAC audio file42834382667491111319882007-02-05T11:52:58Z2005-09-03T08:16:13Z128441002532928569682008-05-05T06:29:28ZWaterboysAFECFC834683A154Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/01%20Fisherman's%20Blues.m4a41920We Will Not Be LoversThe WaterboysMike ScottFisherman's BluesRockAAC audio file68336154231121121319882007-02-05T11:53:00Z2005-09-03T08:16:39Z128441002332928573912008-05-05T06:36:31ZWaterboysAFECFC834683A155Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/02%20We%20Will%20Not%20Be%20Lovers.m4a41921Strange BoatThe WaterboysMike ScottFisherman's BluesRockAAC audio file30186111869651131319882007-02-05T11:53:01Z2005-09-03T08:17:14Z128441002332928575782008-05-05T06:39:38ZWaterboysAFECFC834683A156Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/03%20Strange%20Boat.m4a41922World PartyThe WaterboysMike ScottFisherman's BluesRockAAC audio file38754192411841141319882007-02-05T11:53:03Z2005-09-03T08:17:27Z128441002332928578192008-05-05T06:43:39ZWaterboysAFECFC834683A157Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/04%20World%20Party.m4a41923Sweet ThingThe WaterboysMike ScottFisherman's BluesRockAAC audio file69859794347221151319882007-02-05T11:53:05Z2005-09-03T08:17:44Z128441002332928582542008-05-05T06:50:54ZWaterboysAFECFC834683A158Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/05%20Sweet%20Thing.m4a41924Jimmy Hickey's WaltzThe WaterboysMike ScottFisherman's BluesRockAAC audio file20556601266861161319882007-02-05T11:53:06Z2005-09-03T08:18:13Z128441002432928583802008-05-05T06:53:00ZWaterboysAFECFC834683A159Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/06%20Jimmy%20Hickey's%20Waltz.m4a-1-1925And A Bang On The EarThe WaterboysMike ScottFisherman's BluesRockAAC audio file72792304529501171319882007-02-05T11:53:08Z2005-09-03T08:18:20Z128441002432928588332008-05-05T07:00:33ZWaterboysAFECFC834683A15AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/07%20And%20A%20Bang%20On%20The%20Ear.m4a-1-1926Has Anybody Here Seen Hank?The WaterboysMike ScottFisherman's BluesRockAAC audio file31967131994571181319882007-02-05T11:53:09Z2005-09-03T08:18:46Z128441002232928590332008-05-05T07:03:53ZWaterboysAFECFC834683A15BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/08%20Has%20Anybody%20Here%20Seen%20Hank_.m4a41927When Will We Be Married?The WaterboysMike ScottFisherman's BluesRockAAC audio file28955921809981191319882007-02-05T11:53:11Z2005-09-03T08:18:58Z128441002432928592142008-05-05T07:06:54ZWaterboysAFECFC834683A15CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/09%20When%20Will%20We%20Be%20Married_.m4a41928When Ye Go AwayThe WaterboysMike ScottFisherman's BluesRockAAC audio file361319622546411101319882007-02-05T11:53:12Z2005-09-03T08:19:07Z128441002232928594392008-05-05T07:10:39ZWaterboysAFECFC834683A15DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/10%20When%20Ye%20Go%20Away.m4a-1-1929Dunford's FancyThe WaterboysMike ScottFisherman's BluesRockAAC audio file10474126417811111319882007-02-05T11:53:12Z2005-09-03T08:19:19Z128441002032928595032008-05-05T07:11:43ZWaterboysAFECFC834683A15EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/11%20Dunford's%20Fancy.m4a-1-1930The Stolen ChildThe WaterboysMike ScottFisherman's BluesRockAAC audio file664891641572811121319882007-02-05T11:53:15Z2005-09-03T08:19:22Z128441002632928599192008-05-05T07:18:39ZWaterboysStolen ChildAFECFC834683A15FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/12%20The%20Stolen%20Child.m4a-1-1931This Land Is Your LandThe WaterboysMike ScottFisherman's BluesRockAAC audio file9444695612111131319882007-02-05T11:53:15Z2005-09-03T08:19:43Z128441002532928599752008-05-05T07:19:35ZWaterboysAFECFC834683A160Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Waterboys/Fisherman's%20Blues/13%20This%20Land%20Is%20Your%20Land.m4a41932Scarborough Fair/CanticleSimon & GarfunkelTraditional, Arranged by Martin Carthy, Original Counter-Melody by Paul Simon & Art GarfunkelParsley Sage, Rosemary and ThymeRockAAC audio file30800611926541111219692007-02-05T11:50:42Z2005-09-03T08:20:19Z128441006032918283242008-04-23T08:45:24ZAFECFC834683A16FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/01%20Scarborough%20Fair_Canticle.m4a41933PatternsSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file26390851649991121219692007-02-05T11:50:43Z2005-09-03T08:20:38Z128441005832918284892008-04-23T08:48:09ZAFECFC834683A170Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/02%20Patterns.m4a41934CloudySimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file21651131351851131219692007-02-05T11:50:43Z2005-09-03T08:20:52Z128441005632918286252008-04-23T08:50:25ZAFECFC834683A171Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/03%20Cloudy.m4a41935Homeward BoundSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file24223531518101141219692007-02-05T11:50:44Z2005-09-03T08:21:04Z128441005832918287762008-04-23T08:52:56ZAFECFC834683A172Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/04%20Homeward%20Bound.m4a41936The Big Bright Green Pleasure MachineSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file26466061658581151219692007-02-05T11:50:45Z2005-09-03T08:21:15Z128441005332918289422008-04-23T08:55:42ZBig Bright Green Pleasure MachineAFECFC834683A173Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/05%20The%20Big%20Bright%20Green%20Pleasure%20Machine.m4a41937The 59th Street Bridge Song (Feelin' Groovy)Simon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file17099681071581161219692007-02-05T11:50:46Z2005-09-03T08:21:28Z128441005532918290492008-04-23T08:57:29Z59th Street Bridge Song (Feelin' Groovy)AFECFC834683A174Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/06%20The%2059th%20Street%20Bridge%20Song%20(Feelin'%20Groovy).m4a41938The Dangling ConversationSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file25690731608661171219692007-02-05T11:50:47Z2005-09-03T08:21:35Z128441005432918292102008-04-23T09:00:10ZDangling ConversationAFECFC834683A175Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/07%20The%20Dangling%20Conversation.m4a41939Flowers Never Bend With The RainfallSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file21431691340701181219692007-02-05T11:50:48Z2005-09-03T08:21:46Z128441006032918293442008-04-23T09:02:24ZAFECFC834683A176Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/08%20Flowers%20Never%20Bend%20With%20The%20Rainfall.m4a-1-1940A Simple Desultory PhilippicSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file21773721359281191219692007-02-05T11:50:48Z2005-09-03T08:21:55Z128441005332918294802008-04-23T09:04:40ZSimple Desultory PhilippicAFECFC834683A177Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/09%20A%20Simple%20Desultory%20Philippic.m4a41941For Emily, Whenever I May Find HerSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file202801312619911101219692007-02-05T11:50:49Z2005-09-03T08:22:04Z128441005332918296062008-04-23T09:06:46ZAFECFC834683A178Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/10%20For%20Emily,%20Whenever%20I%20May%20Find%20Her.m4a41942A Poem On The Underground WallSimon & GarfunkelPaul SimonParsley Sage, Rosemary and ThymeRockAAC audio file187693811691111111219692007-02-05T11:50:50Z2005-09-03T08:22:12Z128441005532918297232008-04-23T09:08:43ZPoem On The Underground WallAFECFC834683A179Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/11%20A%20Poem%20On%20The%20Underground%20Wall.m4a419437 O'Clock News/Silent NightSimon & GarfunkelSeven O’Clock News: Paul Simon & Art Garfunkel. Silent Night: Music by Franz Xaver Gruber, Original lyric by Joseph Mohr, Translation by John Freeman Young.Parsley Sage, Rosemary and ThymeRockAAC audio file198063012051011121219692007-02-05T11:50:50Z2005-09-03T08:22:20Z128441005632918298442008-04-23T09:10:44ZAFECFC834683A17AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Simon%20&%20Garfunkel/Parsley%20Sage,%20Rosemary%20and%20Thyme/12%207%20O'Clock%20News_Silent%20Night.m4a41944Jumpin' With Symphony Sid [Live]Van MorrisonKing Pleasure/Lester YoungA Night In San Francisco [Live](Disc 2)RockAAC audio file4680086288622221819942007-02-05T11:54:41Z2005-09-03T08:23:14Z128441003132916739172008-04-21T13:51:57ZNight In San Francisco [Live](Disc 2)AFECFC834683A185Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-01%20Jumpin'%20With%20Symphony%20Sid%20%5BLive%5D.m4a41945It Fills You Up [Live]Van MorrisonVan MorrisonA Night In San Francisco [Live](Disc 2)RockAAC audio file4580007282422222819942007-02-05T11:54:42Z2005-09-03T08:23:41Z128441003032916741992008-04-21T13:56:39ZNight In San Francisco [Live](Disc 2)AFECFC834683A186Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-02%20It%20Fills%20You%20Up%20%5BLive%5D.m4a41946I'll Take Care Of You/It's A Man's, Man's, Man's, Man's World [Live]Van MorrisonBetty Jean Newsome/Brook Benton; James BrownA Night In San Francisco [Live](Disc 2)RockAAC audio file15929014983038223819942007-02-05T11:54:48Z2005-09-03T08:24:03Z128441002932916751822008-04-21T14:13:02ZNight In San Francisco [Live](Disc 2)AFECFC834683A187Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-03%20I'll%20Take%20Care%20Of%20You_It's%20A%20Man's,%20Man's,%20Man's,%20Man's%20World%20%20%5BLive%5D.m4a41947Lonely Avenue/4 O'Clock In The Morning [Live]Van MorrisonDoc Pomus; Gene Vincent/Tex Davis; Van Morrison; Sly Stewart; traditional; Mike Vernon, Bob Ross, Gary Shaw; Roy OrbisonA Night In San Francisco [Live](Disc 2)RockAAC audio file14433436890739224819942007-02-05T11:54:53Z2005-09-03T08:25:10Z128441002732916760732008-04-21T14:27:53ZNight In San Francisco [Live](Disc 2)AFECFC834683A188Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-04%20Lonely%20Avenue_4%20O'Clock%20In%20The%20Morning%20%20%5BLive%5D.m4a41948So Quiet In Here/That's Where It's At [Live]Van MorrisonJames W. Alexander/Van Morrison; Sam CookeA Night In San Francisco [Live](Disc 2)RockAAC audio file4872006300487225819942007-02-05T11:54:55Z2005-09-03T08:26:00Z128441002832916763732008-04-21T14:32:53ZNight In San Francisco [Live](Disc 2)AFECFC834683A189Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-05%20So%20Quiet%20In%20Here_That's%20Where%20It's%20At%20%5BLive%5D.m4a41949In The Garden/You Send Me/Allegheny [Live]Van MorrisonVan Morrison, Sam Cooke, Bill StainesA Night In San Francisco [Live](Disc 2)RockAAC audio file9411227580683226819942007-02-05T11:54:59Z2005-09-03T08:26:16Z128441002732916769542008-04-21T14:42:34ZNight In San Francisco [Live](Disc 2)AFECFC834683A18AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-06%20In%20The%20Garden_You%20Send%20Me_Allegheny%20%5BLive%5D.m4a41950Have Told You Lately That I Love You? [Live]Van MorrisonVan MorrisonA Night In San Francisco [Live](Disc 2)RockAAC audio file3751997230967227819942007-02-05T11:55:00Z2005-09-03T08:26:44Z128441003032916771852008-04-21T14:46:25ZNight In San Francisco [Live](Disc 2)AFECFC834683A18BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-07%20Have%20Told%20You%20Lately%20That%20I%20Love%20You_%20%5BLive%5D.m4a41951Shakin' All Over/Gloria [Live]Van MorrisonJohnny Kidd; Van MorrisonA Night In San Francisco [Live](Disc 2)RockAAC audio file11180323690211228819942007-02-05T11:55:04Z2005-09-03T08:26:55Z128441002632916778752008-04-21T14:57:55ZNight In San Francisco [Live](Disc 2)AFECFC834683A18CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20%5BLive%5D(Disc%202)/2-08%20Shakin'%20All%20Over_Gloria%20%5BLive%5D.m4a41952Walking ManJames TaylorJames TaylorLive (Disc 2)RockAAC audio file44598392750622211519932007-02-05T11:41:09Z2005-09-03T08:28:02Z128441001532937927722008-05-16T02:26:12ZAFECFC834683A19EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-01%20Walking%20Man.m4a41953Riding On A RailroadJames TaylorCarole King, James TaylorLive (Disc 2)RockAAC audio file26448201618642221519932007-02-05T11:41:10Z2005-09-03T08:28:29Z128441001532937929342008-05-16T02:28:54ZAFECFC834683A19FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-02%20Riding%20On%20A%20Railroad.m4a41954Something In The Way She MovesJames TaylorJames TaylorLive (Disc 2)RockAAC audio file38840382392102231519932007-02-05T11:41:12Z2005-09-03T08:28:43Z128441001732937931732008-05-16T02:32:53ZAFECFC834683A1A0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-03%20Something%20In%20The%20Way%20She%20Moves.m4a41955Sun On The MoonJames TaylorJames TaylorLive (Disc 2)RockAAC audio file38013692340552241519932007-02-05T11:41:13Z2005-09-03T08:29:01Z128441001632937934072008-05-16T02:36:47ZAFECFC834683A1A1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-04%20Sun%20On%20The%20Moon.m4a41956Up On The RoofJames TaylorGerry Goffin, Carole KingLive (Disc 2)RockAAC audio file40697912508202251519932007-02-05T11:41:14Z2005-09-03T08:29:18Z128441001632937936582008-05-16T02:40:58ZAFECFC834683A1A2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-05%20Up%20On%20The%20Roof.m4a41957Don't Let Me Be Lonely TonightJames TaylorJames TaylorLive (Disc 2)RockAAC audio file35280812170122261519932007-02-05T11:41:16Z2005-09-03T08:29:36Z128441001432937938752008-05-16T02:44:35ZAFECFC834683A1A3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-06%20Don't%20Let%20Me%20Be%20Lonely%20Tonight.m4a41958She Thinks I Still CareJames TaylorDickey LeeLive (Disc 2)RockAAC audio file33932122085832271519932007-02-05T11:41:17Z2005-09-03T08:29:50Z128441001432937940832008-05-16T02:48:03ZAFECFC834683A1A4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-07%20She%20Thinks%20I%20Still%20Care.m4a41959CopperlineJames TaylorJames Taylor, Reynolds PriceLive (Disc 2)RockAAC audio file45910402831192281519932007-02-05T11:41:19Z2005-09-03T08:30:03Z128441001532937943662008-05-16T02:52:46ZAFECFC834683A1A5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-08%20Copperline.m4a41960Slap LeatherJames TaylorJames TaylorLive (Disc 2)RockAAC audio file21618121317252291519932007-02-05T11:41:20Z2005-09-03T08:30:20Z128441001432937944982008-05-16T02:54:58ZAFECFC834683A1A6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-09%20Slap%20Leather.m4a41961Only OneJames TaylorJames TaylorLive (Disc 2)RockAAC audio file456587228156322101519932007-02-05T11:41:21Z2005-09-03T08:30:31Z128441001632937947802008-05-16T02:59:40ZAFECFC834683A1A7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-10%20Only%20One.m4a41962You Make It EasyJames TaylorJames TaylorLive (Disc 2)RockAAC audio file495891530585122111519932007-02-05T11:41:23Z2005-09-03T08:30:47Z128441001432937950852008-05-16T03:04:45ZAFECFC834683A1A8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-11%20You%20Make%20It%20Easy.m4a41963Carolina In My MindJames TaylorJames TaylorLive (Disc 2)RockAAC audio file494442230492222121519932007-02-05T11:41:25Z2005-09-03T08:31:02Z128441001432937953902008-05-16T03:09:50ZAFECFC834683A1A9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-12%20Carolina%20In%20My%20Mind.m4a41964I Will FollowJames TaylorJames TaylorLive (Disc 2)RockAAC audio file412052325397822131519932007-02-05T11:41:26Z2005-09-03T08:31:19Z128441001532937956442008-05-16T03:14:04ZAFECFC834683A1AAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-13%20I%20Will%20Follow.m4a41965You've Got A FriendJames TaylorCarole KingLive (Disc 2)RockAAC audio file501278030921822141519932007-02-05T11:41:28Z2005-09-03T08:31:31Z128441001432937959542008-05-16T03:19:14ZAFECFC834683A1ABFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-14%20You've%20Got%20A%20Friend.m4a41966That Lonesome RoadJames TaylorJames Taylor, Don GrolnickLive (Disc 2)RockAAC audio file270822016604422151519932007-02-05T11:41:29Z2005-09-03T08:31:46Z128441001632937961202008-05-16T03:22:00ZAFECFC834683A1ACFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/Live%20(Disc%202)/2-15%20That%20Lonesome%20Road.m4a41967When We DanceStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file58226893592801111419942007-02-05T11:51:41Z2005-09-03T08:32:28Z128441004532947687952008-05-27T09:33:15ZAFECFC834683A1BDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/01%20When%20We%20Dance.m4a41968If You Love Somebody Set Them FreeStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file41120302557891121419942007-02-05T11:51:42Z2005-09-03T08:33:02Z128441004132947690512008-05-27T09:37:31ZAFECFC834683A1BEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/02%20If%20You%20Love%20Somebody%20Set%20Them%20Free.m4a-1-1969Fields Of GoldStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file35582712189851131419942007-02-05T11:51:44Z2005-09-03T08:33:22Z128441004132947692692008-05-27T09:41:09ZAFECFC834683A1BFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/03%20Fields%20Of%20Gold.m4a41970All This TimeStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file47698672954491141419942007-02-05T11:51:45Z2005-09-03T08:33:38Z128441003932947695652008-05-27T09:46:05ZAFECFC834683A1C0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/04%20All%20This%20Time.m4a41971Fortress Around Your HeartStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file44869132767801151419942007-02-05T11:51:47Z2005-09-03T08:33:58Z128441004032947698422008-05-27T09:50:42ZAFECFC834683A1C1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/05%20Fortress%20Around%20Your%20Heart.m4a41972Be Still My Beating HeartStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file53919693326471161419942007-02-05T11:51:49Z2005-09-03T08:34:16Z128441003732947701742008-05-27T09:56:14ZAFECFC834683A1C2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/06%20Be%20Still%20My%20Beating%20Heart.m4a41973They Dance AloneStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file69771344309141171419942007-02-05T11:51:51Z2005-09-03T08:34:37Z128441003932947706052008-05-27T10:03:25ZAFECFC834683A1C3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/07%20They%20Dance%20Alone.m4a-1-1974If I Ever Lose My Faith In YouStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file43971342719041181419942007-02-05T11:51:53Z2005-09-03T08:35:00Z128441003832947708772008-05-27T10:07:57ZAFECFC834683A1C4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/08%20If%20I%20Ever%20Lose%20My%20Faith%20In%20You.m4a41975FragileStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file37871862332661191419942007-02-05T11:51:54Z2005-09-03T08:35:16Z128441003832947711102008-05-27T10:11:50ZAFECFC834683A1C5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/09%20Fragile.m4a-1-1976Why Should I Cry For You?StingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file470396229017811101419942007-02-05T11:51:56Z2005-09-03T08:35:28Z128441003732947714002008-05-27T10:16:40ZAFECFC834683A1C6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/10%20Why%20Should%20I%20Cry%20For%20You_.m4a41977Englishman In New YorkStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file433197426721311111419942007-02-05T11:51:57Z2005-09-03T08:35:43Z128441003732947716682008-05-27T10:21:08ZAFECFC834683A1C7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/11%20Englishman%20In%20New%20York.m4a-1-1978We'll Be TogetherStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file372877623099011121419942007-02-05T11:51:59Z2005-09-03T08:36:12Z128441003732947718992008-05-27T10:24:59ZAFECFC834683A1C8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/12%20We'll%20Be%20Together.m4a41979RussiansStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file384012723844411131419942007-02-05T11:52:00Z2005-09-03T08:36:23Z128441003732947721372008-05-27T10:28:57ZAFECFC834683A1C9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/13%20Russians.m4a41980This Cowboy SongStingStingFields Of Gold: The Best Of Sting 1984-1994RockAAC audio file486925730039511141419942007-02-05T11:52:02Z2005-09-03T08:36:34Z128441003732947724372008-05-27T10:33:57ZAFECFC834683A1CAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/Fields%20Of%20Gold_%20The%20Best%20Of%20Sting%201984-1994/14%20This%20Cowboy%20Song.m4a-1-1981The Boy In The BubblePaul SimonForere Motloheloa/Paul SimonGracelandRockAAC audio file38653312390241111119862007-02-05T11:47:49Z2005-09-03T08:37:25Z128441004232925826262008-05-02T02:17:06ZBoy In The BubbleAFECFC834683A1D8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/01%20The%20Boy%20In%20The%20Bubble.m4a41982GracelandPaul SimonSimon, PaulGracelandRockAAC audio file46940462909211121119862007-02-05T11:47:50Z2005-09-03T08:37:50Z128441004532925829172008-05-02T02:21:57ZAFECFC834683A1D9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/02%20Graceland.m4a41983I Know What I KnowPaul SimonGeneral M. D. Shirinda/Paul SimonGracelandRockAAC audio file31278691931651131119862007-02-05T11:47:51Z2005-09-03T08:38:17Z128441004532925831102008-05-02T02:25:10ZAFECFC834683A1DAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/03%20I%20Know%20What%20I%20Know.m4a-1-1984GumbootsPaul SimonJonhjon Mkhalali/Lulu Masilela/Paul SimonGracelandRockAAC audio file26690241647901141119862007-02-05T11:47:53Z2005-09-03T08:38:33Z128441004332925832752008-05-02T02:27:55ZAFECFC834683A1DBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/04%20Gumboots.m4a41985Diamonds On The Soles Of Her ShoesPaul SimonSimon, Paul; LadysmithGracelandRockAAC audio file56144723483901151119862007-02-05T11:47:55Z2005-09-03T08:38:46Z128441004332925836232008-05-02T02:33:43ZAFECFC834683A1DCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/05%20Diamonds%20On%20The%20Soles%20Of%20Her%20Shoes.m4a-1-1986You Can Call Me AlPaul SimonSimon, PaulGracelandRockAAC audio file45260862801471161119862007-02-05T11:47:56Z2005-09-03T08:39:12Z128441004232925839032008-05-02T02:38:23ZAFECFC834683A1DDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/06%20You%20Can%20Call%20Me%20Al.m4a41987Under African SkiesPaul SimonSimon, PaulGracelandRockAAC audio file35025292171051171119862007-02-05T11:47:57Z2005-09-03T08:39:31Z128441004132925841212008-05-02T02:42:01ZAFECFC834683A1DEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/07%20Under%20African%20Skies.m4a41988HomelessPaul SimonSimon, Paul; Joseph ShabalalaGracelandRockAAC audio file36966952280181181119862007-02-05T11:47:59Z2005-09-03T08:39:45Z128441004132925843492008-05-02T02:45:49ZAFECFC834683A1DFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/08%20Homeless.m4a41989Crazy Love, Vol. IIPaul SimonSimon, PaulGracelandRockAAC audio file41994312589931191119862007-02-05T11:48:00Z2005-09-03T08:39:59Z128441004032925846082008-05-02T02:50:08ZAFECFC834683A1E0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/09%20Crazy%20Love,%20Vol.%20II.m4a41990That Was Your MotherPaul SimonSimon, PaulGracelandRockAAC audio file281448217249911101119862007-02-05T11:48:01Z2005-09-03T08:40:16Z128441004032925847802008-05-02T02:53:00ZAFECFC834683A1E1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/10%20That%20Was%20Your%20Mother.m4a41991All Around The World Or The Myth Of FingerprintsPaul SimonSimon, PaulGracelandRockAAC audio file317015419495311111119862007-02-05T11:48:02Z2005-09-03T08:40:26Z128441003932925849752008-05-02T02:56:15ZAFECFC834683A1E2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Paul%20Simon/Graceland/11%20All%20Around%20The%20World%20Or%20The%20Myth%20Of%20Fingerprints.m4a41992San Andreas FaultNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file38758512387921111119952007-02-05T11:45:46Z2005-09-03T08:41:10Z128441003032938451822008-05-16T16:59:42ZAFECFC834683A1F0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/01%20San%20Andreas%20Fault.m4a-1-1993WonderNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file43316982672371121119952007-02-05T11:45:47Z2005-09-03T08:41:36Z128441003032938454492008-05-16T17:04:09ZAFECFC834683A1F1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/02%20Wonder.m4a41994Beloved WifeNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file49064193026701131119952007-02-05T11:45:49Z2005-09-03T08:42:00Z128441003032938457522008-05-16T17:09:12ZAFECFC834683A1F2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/03%20Beloved%20Wife.m4a41995RiverNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file53822243321601141119952007-02-05T11:45:51Z2005-09-03T08:42:25Z128441003032938460842008-05-16T17:14:44ZAFECFC834683A1F3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/04%20River.m4a41996CarnivalNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file58230343592571151119952007-02-05T11:45:53Z2005-09-03T08:42:50Z128441002832938464432008-05-16T17:20:43ZAFECFC834683A1F4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/05%20Carnival.m4a-1-1997I May Know The WordNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file79181314885921161119952007-02-05T11:45:56Z2005-09-03T08:43:15Z128441002832938469322008-05-16T17:28:52ZAFECFC834683A1F5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/06%20I%20May%20Know%20The%20Word.m4a41998The LetterNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file21658621320501171119952007-02-05T11:45:56Z2005-09-03T08:43:46Z128441002932938470642008-05-16T17:31:04ZLetterAFECFC834683A1F6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/07%20The%20Letter.m4a41999Cowboy RomanceNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file45226502790551181119952007-02-05T11:45:58Z2005-09-03T08:43:54Z128441002832938473432008-05-16T17:35:43ZAFECFC834683A1F7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/08%20Cowboy%20Romance.m4a-1-11000JealousyNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file26378611615161191119952007-02-05T11:45:59Z2005-09-03T08:44:10Z128441002832938475042008-05-16T17:38:24ZAFECFC834683A1F8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/09%20Jealousy.m4a411001Where I GoNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file390171424041711101119952007-02-05T11:46:01Z2005-09-03T08:44:20Z128441003032938477452008-05-16T17:42:25ZAFECFC834683A1F9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/10%20Where%20I%20Go.m4a411002Seven YearsNatalie MerchantNatalie MerchantTigerlilyRockAAC audio file535744433072011111119952007-02-05T11:46:03Z2005-09-03T08:44:32Z128441002932938480762008-05-16T17:47:56ZAFECFC834683A1FAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Merchant/Tigerlily/11%20Seven%20Years.m4a411003Building A MysterySarah McLachlanPierre J. MarchandMirrorballRockAAC audio file40016572468031111419992007-02-05T11:50:03Z2005-09-03T08:48:58Z128441005232918204832008-04-23T06:34:43ZAFECFC834683A217Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/01%20Building%20A%20Mystery.m4a411004Hold OnSarah McLachlanSarah McLachlanMirrorballRockAAC audio file51639383184831121419992007-02-05T11:50:05Z2005-09-03T08:49:49Z128441005232918208012008-04-23T06:40:01ZAFECFC834683A218Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/02%20Hold%20On.m4a411005Good EnoughSarah McLachlanSarah McLachlanMirrorballRockAAC audio file50409673115871131419992007-02-05T11:50:07Z2005-09-03T08:50:14Z128441005332918211132008-04-23T06:45:13ZAFECFC834683A219Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/03%20Good%20Enough.m4a411006I Will Remember YouSarah McLachlanEgan/MerendaMirrorballRockAAC audio file36202132239551141419992007-02-05T11:50:08Z2005-09-03T08:50:37Z128441005232918213372008-04-23T06:48:57ZAFECFC834683A21AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/04%20I%20Will%20Remember%20You.m4a411007AdiaSarah McLachlanPierre J. MarchandMirrorballRockAAC audio file38636842390471151419992007-02-05T11:50:10Z2005-09-03T08:50:53Z128441005232918215762008-04-23T06:52:56ZAFECFC834683A21BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/05%20Adia.m4a411008I Love YouSarah McLachlanSarah McLachlanMirrorballRockAAC audio file43720022706501161419992007-02-05T11:50:11Z2005-09-03T08:51:09Z128441005232918218462008-04-23T06:57:26ZAFECFC834683A21CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/06%20I%20Love%20You.m4a411009Do What You Have To DoSarah McLachlanWolstenholmeMirrorballRockAAC audio file40555402510991171419992007-02-05T11:50:13Z2005-09-03T08:51:26Z128441005232918220982008-04-23T07:01:38ZAFECFC834683A21DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/07%20Do%20What%20You%20Have%20To%20Do.m4a411010Path Of ThornsSarah McLachlanSarah McLachlanMirrorballRockAAC audio file58904253638321181419992007-02-05T11:50:15Z2005-09-03T08:51:40Z128441005232918224612008-04-23T07:07:41ZAFECFC834683A21EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/08%20Path%20Of%20Thorns.m4a411011FearSarah McLachlanSarah McLachlanMirrorballRockAAC audio file48820263021591191419992007-02-05T11:50:17Z2005-09-03T08:52:00Z128441005432918227642008-04-23T07:12:44ZAFECFC834683A21FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/09%20Fear.m4a411012PossessionSarah McLachlanSarah McLachlanMirrorballRockAAC audio file508474031476811101419992007-02-05T11:50:18Z2005-09-03T08:52:17Z128441005132918230782008-04-23T07:17:58ZAFECFC834683A220Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/10%20Possession.m4a411013Sweet SurrenderSarah McLachlanSarah McLachlanMirrorballRockAAC audio file387475423969811111419992007-02-05T11:50:20Z2005-09-03T08:52:33Z128441005232918233182008-04-23T07:21:58ZAFECFC834683A221Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/11%20Sweet%20Surrender.m4a411014Ice CreamSarah McLachlanSarah McLachlanMirrorballRockAAC audio file296839118285511121419992007-02-05T11:50:21Z2005-09-03T08:52:45Z128441005132918235012008-04-23T07:25:01ZAFECFC834683A222Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/12%20Ice%20Cream.m4a411015Fumbling Towards EcstasySarah McLachlanPierre J. MarchandMirrorballRockAAC audio file563522234887811131419992007-02-05T11:50:23Z2005-09-03T08:52:54Z128441005132918238502008-04-23T07:30:50ZAFECFC834683A223Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/13%20Fumbling%20Towards%20Ecstasy.m4a411016AngelSarah McLachlanSarah McLachlanMirrorballRockAAC audio file565873234913311141419992007-02-05T11:50:25Z2005-09-03T08:53:09Z128441005032918241992008-04-23T07:36:39ZAFECFC834683A224Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sarah%20McLachlan/Mirrorball/14%20Angel.m4a411017Did Ye Get Healed?Van MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file42019442590631211419942007-02-05T11:54:14Z2005-09-03T08:54:06Z128441002932916692842008-04-21T12:34:44ZNight In San Francisco (Disc 1)AFECFC834683A235Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-01%20Did%20Ye%20Get%20Healed_.m4a411018It's All In The Game/Make It Real One More TimeVan MorrisonDawes & Sigman & Van MorrisonA Night In San Francisco (Disc 1)RockAAC audio file42094332595271221419942007-02-05T11:54:15Z2005-09-03T08:54:31Z128441003132916695442008-04-21T12:39:04ZNight In San Francisco (Disc 1)AFECFC834683A236Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-02%20It's%20All%20In%20The%20Game_Make%20It%20Real%20One%20More%20Time.m4a411019I've Been WorkingVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file33070982031961231419942007-02-05T11:54:16Z2005-09-03T08:54:52Z128441002932916697472008-04-21T12:42:27ZNight In San Francisco (Disc 1)AFECFC834683A237Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-03%20I've%20Been%20Working.m4a411020I Forgot That Love ExistedVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file61212303775781241419942007-02-05T11:54:19Z2005-09-03T08:55:07Z128441003032916701252008-04-21T12:48:45ZNight In San Francisco (Disc 1)AFECFC834683A238Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-04%20I%20Forgot%20That%20Love%20Existed.m4a411021Vanlose Stairway/Trans-Euro Train/Fool For YouVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file67306304151941251419942007-02-05T11:54:21Z2005-09-03T08:55:34Z128441003032916705402008-04-21T12:55:40ZNight In San Francisco (Disc 1)AFECFC834683A239Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-05%20Vanlose%20Stairway_Trans-Euro%20Train_Fool%20For%20You.m4a-1-11022You Make Me Feel So FreeVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file31544131936761261419942007-02-05T11:54:22Z2005-09-03T08:56:00Z128441003032916707332008-04-21T12:58:53ZNight In San Francisco (Disc 1)AFECFC834683A23AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-06%20You%20Make%20Me%20Feel%20So%20Free.m4a411023Beautiful VisionVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file40725012509831271419942007-02-05T11:54:24Z2005-09-03T08:56:12Z128441003032916709842008-04-21T13:03:04ZNight In San Francisco (Disc 1)AFECFC834683A23BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-07%20Beautiful%20Vision.m4a411024See Me Through/Soldier Of Fortune/Thank You Faletinme Be MicVan MorrisonVan Morrison & StewartA Night In San Francisco (Disc 1)RockAAC audio file100091426175791281419942007-02-05T11:54:27Z2005-09-03T08:56:27Z128441002932916716022008-04-21T13:13:22ZNight In San Francisco (Disc 1)AFECFC834683A23CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-08%20See%20Me%20Through_Soldier%20Of%20Fortune_Thank%20You%20Faletinme%20Be%20Mic.m4a411025Ain't That Loving You Baby?Van MorrisonHunter & OtisA Night In San Francisco (Disc 1)RockAAC audio file46083302841871291419942007-02-05T11:54:29Z2005-09-03T08:57:02Z128441002932916718862008-04-21T13:18:06ZNight In San Francisco (Disc 1)AFECFC834683A23DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-09%20Ain't%20That%20Loving%20You%20Baby_.m4a411026Stormy Monday/Have You Ever Loved A Woman?/No Rollin' BluesVan MorrisonWalker & Myles & WitherspoonA Night In San Francisco (Disc 1)RockAAC audio file597527236856812101419942007-02-05T11:54:31Z2005-09-03T08:57:16Z128441002932916722552008-04-21T13:24:15ZNight In San Francisco (Disc 1)AFECFC834683A23EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-10%20Stormy%20Monday_Have%20You%20Ever%20Loved%20A%20Woman__No%20Rollin'%20Blues.m4a411027Help MeVan MorrisonBass/Sonny Boy WilliamsonA Night In San Francisco (Disc 1)RockAAC audio file598553036919512111419942007-02-05T11:54:33Z2005-09-03T08:57:34Z128441002832916726242008-04-21T13:30:24ZNight In San Francisco (Disc 1)AFECFC834683A23FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-11%20Help%20Me.m4a-1-11028Good Morning Little School GirlVan MorrisonSonny Boy WilliamsonA Night In San Francisco (Disc 1)RockAAC audio file346304621292512121419942007-02-05T11:54:34Z2005-09-03T08:57:51Z128441002832916728372008-04-21T13:33:57ZNight In San Francisco (Disc 1)AFECFC834683A240Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-12%20Good%20Morning%20Little%20School%20Girl.m4a411029Tupelo HoneyVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file392588524181112131419942007-02-05T11:54:36Z2005-09-03T08:58:01Z128441003132916730792008-04-21T13:37:59ZNight In San Francisco (Disc 1)AFECFC834683A241Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-13%20Tupelo%20Honey.m4a411030Moondance/My Funny ValentineVan MorrisonVan MorrisonA Night In San Francisco (Disc 1)RockAAC audio file890160454945212141419942007-02-05T11:54:39Z2005-09-03T08:58:12Z128441003032916736282008-04-21T13:47:08ZNight In San Francisco (Disc 1)AFECFC834683A242Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Night%20In%20San%20Francisco%20(Disc%201)/1-14%20Moondance_My%20Funny%20Valentine.m4a-1-11031Watermelon ManHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file6972180431587111919622007-02-05T11:40:23Z2005-09-03T08:59:08Z128441001732829396022008-01-11T11:40:02ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A24EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/01%20Watermelon%20Man.m4a411032Driftin'Herbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file6776525421092112919622007-02-05T11:40:25Z2005-09-03T08:59:48Z128441001632829400232008-01-11T11:47:03ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A24FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/02%20Driftin'.m4a411033Maiden VoyageHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file7717397478259113919622007-02-05T11:40:28Z2005-09-03T09:00:20Z128441001632829405012008-01-11T11:55:01ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A250Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/03%20Maiden%20Voyage.m4a411034Dolphin DanceHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file9062003559970114919622007-02-05T11:40:31Z2005-09-03T09:00:52Z128441001732829410612008-01-11T12:04:21ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A251Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/04%20Dolphin%20Dance.m4a411035One Finger SnapHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file7109057440457115919622007-02-05T11:40:34Z2005-09-03T09:01:27Z128441001732829415012008-01-11T12:11:41ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A252Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/05%20One%20Finger%20Snap.m4a411036Cantaloupe IslandHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file5381750334110116919622007-02-05T11:40:36Z2005-09-03T09:01:51Z128441001732829418352008-01-11T12:17:15ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A253Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/06%20Cantaloupe%20Island.m4a-1-11037RiotHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file4497334279357117919622007-02-05T11:40:37Z2005-09-03T09:02:09Z128441001732829421152008-01-11T12:21:55ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A254Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/07%20Riot.m4a411038Speak Like A ChildHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file7572646469018118919622007-02-05T11:40:40Z2005-09-03T09:02:23Z128441001832829425842008-01-11T12:29:44ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A255Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/08%20Speak%20Like%20A%20Child.m4a411039King CobraHerbie HancockHerbie HancockThe Best Of Herbie Hancock: The Blue Note YearsJazzAAC audio file6702623413615119919622007-02-05T11:40:42Z2005-09-03T09:02:46Z128441001732829429972008-01-11T12:36:37ZBest Of Herbie Hancock: The Blue Note YearsAFECFC834683A256Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Herbie%20Hancock/The%20Best%20Of%20Herbie%20Hancock_%20The%20Blue%20Note%20Years/09%20King%20Cobra.m4a411040The Very Thought Of YouNatalie ColeRay NobleUnforgettable With LoveJazzAAC audio file41573152563931112219912007-02-05T11:44:40Z2005-09-03T09:03:39Z128441002032938339052008-05-16T13:51:45ZVery Thought Of YouAFECFC834683A26FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/01%20The%20Very%20Thought%20Of%20You.m4a411041Paper MoonNatalie ColeHarold ArlenUnforgettable With LoveJazzAAC audio file33435902055881122219912007-02-05T11:44:41Z2005-09-03T09:04:03Z128441002032938991422008-05-17T07:59:02ZAFECFC834683A270Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/02%20Paper%20Moon.m4a411042Route 66Natalie ColeBobb TroupUnforgettable With LoveJazzAAC audio file29514701810901132219912007-02-05T11:44:42Z2005-09-03T09:04:20Z128441001832938342922008-05-16T13:58:12ZAFECFC834683A271Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/03%20Route%2066.m4a411043Mona LisaNatalie ColeRay EvansUnforgettable With LoveJazzAAC audio file36723462260911142219912007-02-05T11:44:44Z2005-09-03T09:04:33Z128441002032938345182008-05-16T14:01:58ZAFECFC834683A272Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/04%20Mona%20Lisa.m4a411044L-O-V-ENatalie ColeBert Kaempfert & Milt GablerUnforgettable With LoveJazzAAC audio file24823711518101152219912007-02-05T11:44:45Z2005-09-03T09:04:50Z128441001932938346702008-05-16T14:04:30ZAFECFC834683A273Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/05%20L-O-V-E.m4a411045This Can't Be LoveNatalie ColeRichard RodgersUnforgettable With LoveJazzAAC audio file21968631339771162219912007-02-05T11:44:45Z2005-09-03T09:05:01Z128441002032938987892008-05-17T07:53:09ZAFECFC834683A274Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/06%20This%20Can't%20Be%20Love.m4a411046SmileNatalie ColeCharles ChaplinUnforgettable With LoveJazzAAC audio file35481502183591172219912007-02-05T11:44:47Z2005-09-03T09:05:09Z128441001932938350222008-05-16T14:10:22ZAFECFC834683A275Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/07%20Smile.m4a-1-11047Lush LifeNatalie ColeBilly StrayhornUnforgettable With LoveJazzAAC audio file42239052605491182219912007-02-05T11:44:48Z2005-09-03T09:05:24Z128441001932938352832008-05-16T14:14:43ZAFECFC834683A276Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/08%20Lush%20Life.m4a411048That Sunday That SummerNatalie ColeGeo Devid Weiss and Joe ShermanUnforgettable With LoveJazzAAC audio file34405742116481192219912007-02-05T11:44:49Z2005-09-03T09:05:39Z128441001932938354942008-05-16T14:18:14ZAFECFC834683A277Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/09%20That%20Sunday%20That%20Summer.m4a411049Orange Colored SkyNatalie ColeMilton Delugg and Willie SteinUnforgettable With LoveJazzAAC audio file240806814716611102219912007-02-05T11:44:50Z2005-09-03T09:05:52Z128441001932938356422008-05-16T14:20:42ZAFECFC834683A278Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/10%20Orange%20Colored%20Sky.m4a411050A Medley: For Sentimental Reasons, Tenderly, Autumn LeavesNatalie ColeWilliam Best, Gross & Lawrence, Joseph KosmaUnforgettable With LoveJazzAAC audio file734031545292611112219912007-02-05T11:44:53Z2005-09-03T09:06:00Z128441001932938360942008-05-16T14:28:14ZMedley: For Sentimental Reasons, Tenderly, Autumn LeavesAFECFC834683A279Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/11%20A%20Medley_%20For%20Sentimental%20Reasons,%20Tenderly,%20Autumn%20Leaves.m4a-1-11051Straighten Up And Fly RightNatalie ColeNat King Cole & Irving MillsUnforgettable With LoveJazzAAC audio file261987716042511122219912007-02-05T11:44:54Z2005-09-03T09:06:24Z128441001832938362552008-05-16T14:30:55ZAFECFC834683A27AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/12%20Straighten%20Up%20And%20Fly%20Right.m4a411052AvalonNatalie ColeRose, Jolson & DeSilvaUnforgettable With LoveJazzAAC audio file183655611150011132219912007-02-05T11:44:54Z2005-09-03T09:06:32Z128441001932938363662008-05-16T14:32:46ZAFECFC834683A27BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/13%20Avalon.m4a411053Don't Get Around Much AnymoreNatalie ColeDuke EllingtonUnforgettable With LoveJazzAAC audio file252700515462011142219912007-02-05T11:44:55Z2005-09-03T09:06:38Z128441001832938365212008-05-16T14:35:21ZAFECFC834683A27CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/14%20Don't%20Get%20Around%20Much%20Anymore.m4a411054Too YoungNatalie ColeSid LippmanUnforgettable With LoveJazzAAC audio file442008627269311152219912007-02-05T11:44:57Z2005-09-03T09:06:46Z128441001832938367942008-05-16T14:39:54ZAFECFC834683A27DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/15%20Too%20Young.m4a-1-11055Nature BoyNatalie ColeEden AhbezUnforgettable With LoveJazzAAC audio file332271920431011162219912007-02-05T11:44:58Z2005-09-03T09:07:00Z128441001832938369982008-05-16T14:43:18ZAFECFC834683A27EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/16%20Nature%20Boy.m4a411056Darling, Je Vous Aime BeaucoupNatalie ColeAnna SosenkoUnforgettable With LoveJazzAAC audio file333591520514611172219912007-02-05T11:45:00Z2005-09-03T09:07:09Z128441001832938372032008-05-16T14:46:43ZAFECFC834683A27FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/17%20Darling,%20Je%20Vous%20Aime%20Beaucoup.m4a-1-11057Almost Like Being In LoveNatalie ColeLerner & LoeweUnforgettable With LoveJazzAAC audio file215583813142311182219912007-02-05T11:45:00Z2005-09-03T09:07:19Z128441001832938373342008-05-16T14:48:54ZAFECFC834683A280Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/18%20Almost%20Like%20Being%20In%20Love.m4a411058Thou SwellNatalie ColeRichard RodgersUnforgettable With LoveJazzAAC audio file182349111068811192219912007-02-05T11:45:01Z2005-09-03T09:07:25Z128441001832938374452008-05-16T14:50:45ZAFECFC834683A281Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/19%20Thou%20Swell.m4a411059Non DimenticarNatalie ColeP.G. RediUnforgettable With LoveJazzAAC audio file289318017749111202219912007-02-05T11:45:02Z2005-09-03T09:07:30Z128441001832938376232008-05-16T14:53:43ZAFECFC834683A282Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/20%20Non%20Dimenticar.m4a411060Our Love Is Here To StayNatalie ColeGeorge GershwinUnforgettable With LoveJazzAAC audio file341162520986011212219912007-02-05T11:45:03Z2005-09-03T09:07:38Z128441001832938378322008-05-16T14:57:12ZAFECFC834683A283Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/21%20Our%20Love%20Is%20Here%20To%20Stay.m4a411061UnforgettableNatalie ColeIrving GordonUnforgettable With LoveJazzAAC audio file339713220893111222219912007-02-05T11:45:05Z2005-09-03T09:07:47Z128441001832938380412008-05-16T15:00:41ZAFECFC834683A284Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Natalie%20Cole/Unforgettable%20With%20Love/22%20Unforgettable.m4a411062Pretty Good YearTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file33382572061911111219942007-02-05T11:53:17Z2005-09-03T09:08:33Z128441004532947769782008-05-27T11:49:38ZAFECFC834683A293Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/01%20Pretty%20Good%20Year.m4a-1-11063GodTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file38619452394891121219942007-02-05T11:53:18Z2005-09-03T09:08:53Z128441004332947772182008-05-27T11:53:38ZAFECFC834683A294Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/02%20God.m4a-1-11064Bells for HerTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file51949503220121131219942007-02-05T11:53:20Z2005-09-03T09:09:14Z128441004532947775402008-05-27T11:59:00ZAFECFC834683A295Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/03%20Bells%20for%20Her.m4a-1-11065Past the MissionTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file39964662463151141219942007-02-05T11:53:21Z2005-09-03T09:09:38Z128441004532947777862008-05-27T12:03:06ZAFECFC834683A296Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/04%20Past%20the%20Mission.m4a-1-11066Baker BakerTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file32358411988541151219942007-02-05T11:53:22Z2005-09-03T09:09:55Z128441004532947779852008-05-27T12:06:25ZAFECFC834683A297Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/05%20Baker%20Baker.m4a-1-11067The Wrong BandTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file29822231830641161219942007-02-05T11:53:23Z2005-09-03T09:10:09Z128441006132947781682008-05-27T12:09:28ZWrong BandAFECFC834683A298Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/06%20The%20Wrong%20Band.m4a-1-11068The WaitressTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file30870691904251171219942007-02-05T11:53:25Z2005-09-03T09:10:20Z128441005032947783582008-05-27T12:12:38ZWaitressAFECFC834683A299Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/07%20The%20Waitress.m4a-1-11069Cornflake GirlTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file49746413075461181219942007-02-05T11:53:26Z2005-09-03T09:10:32Z128441005032947786662008-05-27T12:17:46ZAFECFC834683A29AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/08%20Cornflake%20Girl.m4a411070IcicleTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file56264063471131191219942007-02-05T11:53:28Z2005-09-03T09:10:50Z128441005132947790132008-05-27T12:23:33ZAFECFC834683A29BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/09%20Icicle.m4a-1-11071Cloud My TongueTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file459871228363011101219942007-02-05T11:53:30Z2005-09-03T09:11:10Z128441004932947792972008-05-27T12:28:17ZAFECFC834683A29CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/10%20Cloud%20My%20Tongue.m4a411072Space DogTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file503745931235311111219942007-02-05T11:53:32Z2005-09-03T09:11:24Z128441004832947796092008-05-27T12:33:29ZAFECFC834683A29DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/11%20Space%20Dog.m4a411073Yes, AnastasiaTori AmosTori AmosUnder the PinkAlternative & PunkAAC audio file928363957304311121219942007-02-05T11:53:35Z2005-09-03T09:11:40Z128441004632947801822008-05-27T12:43:02ZAFECFC834683A29EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Tori%20Amos/Under%20the%20Pink/12%20Yes,%20Anastasia.m4a411074The Fatal ImpactDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file32797882018721111419842007-02-05T11:38:09Z2005-09-03T09:12:57Z128441001032849155702008-02-03T08:32:50ZFatal ImpactAFECFC834683A2AFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/01%20The%20Fatal%20Impact.m4a411075The TrialDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file36232102230261121419842007-02-05T11:38:10Z2005-09-03T09:13:18Z128441001032849153682008-02-03T08:29:28ZTrialAFECFC834683A2B0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/02%20The%20Trial.m4a411076FrontierDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file31427501930721131419842007-02-05T11:38:11Z2005-09-03T09:13:38Z128441001032849151452008-02-03T08:25:45ZAFECFC834683A2B1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/03%20Frontier.m4a411077FortuneDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file36934812274611141419842007-02-05T11:38:12Z2005-09-03T09:13:54Z128441001032849149522008-02-03T08:22:32ZAFECFC834683A2B2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/04%20Fortune.m4a411078OceanDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file32568962016631151419842007-02-05T11:38:14Z2005-09-03T09:14:11Z128441001032849147252008-02-03T08:18:45ZAFECFC834683A2B3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/05%20Ocean.m4a411079East Of EdenDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file33013432029871161419842007-02-05T11:38:15Z2005-09-03T09:14:26Z128441001032849145232008-02-03T08:15:23ZAFECFC834683A2B4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/06%20East%20Of%20Eden.m4a411080ThresholdDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file34848362143881171419842007-02-05T11:38:16Z2005-09-03T09:14:41Z128441001032849143202008-02-03T08:12:00ZAFECFC834683A2B5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/07%20Threshold.m4a411081A Passage In TimeDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file39563452438311181419842007-02-05T11:38:18Z2005-09-03T09:14:54Z128441001332849141062008-02-03T08:08:26ZPassage In TimeAFECFC834683A2B6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/08%20A%20Passage%20In%20Time.m4a411082Wild In The WoodsDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file36792252265781191419842007-02-05T11:38:19Z2005-09-03T09:15:10Z128441001232849138622008-02-03T08:04:22ZAFECFC834683A2B7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/09%20Wild%20In%20The%20Woods.m4a411083Musica Eternal Garden Of The Arcane DelightsDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file374946823124611101419842007-02-05T11:38:20Z2005-09-03T09:15:24Z128441001032849136362008-02-03T08:00:36ZAFECFC834683A2B8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/10%20Musica%20Eternal%20Garden%20Of%20The%20Arcane%20Delights.m4a411084Garden Of The Arcane Delights: Carnival Of LightDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file344660221199611111419842007-02-05T11:38:22Z2005-09-03T09:15:37Z12844100832681814852007-07-24T16:11:25ZAFECFC834683A2B9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/11%20Garden%20Of%20The%20Arcane%20Delights_%20Carnival%20Of%20Light.m4a411085Garden Of The Arcane Delights: In Power We Entrust The Love AdvocatedDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file404002425114511121419842007-02-05T11:38:23Z2005-09-03T09:15:49Z12844100832681817362007-07-24T16:15:36ZAFECFC834683A2BAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/12%20Garden%20Of%20The%20Arcane%20Delights_%20In%20Power%20We%20Entrust%20The%20Love%20Advocated.m4a411086Garden Of The Arcane Delights: The ArcaneDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file370335322915611131419842007-02-05T11:38:24Z2005-09-03T09:16:03Z12844100932681819652007-07-24T16:19:25ZAFECFC834683A2BBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/13%20Garden%20Of%20The%20Arcane%20Delights_%20The%20Arcane.m4a411087Garden Of The Arcane Delights: Flowers Of The SeaDead Can DanceDead Can DanceDead Can DanceAlternative & PunkAAC audio file337654620895411141419842007-02-05T11:38:26Z2005-09-03T09:16:16Z12844100832681821742007-07-24T16:22:54ZAFECFC834683A2BCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dead%20Can%20Dance/Dead%20Can%20Dance/14%20Garden%20Of%20The%20Arcane%20Delights_%20Flowers%20Of%20The%20Sea.m4a-1-11088'Round MidnightCharles BrownBernie Hanighen, Cootie Williams, Thelonious MonkJazz For A Rainy AfternoonJazzAAC audio file34763142165941111119982007-02-05T11:31:35Z2005-09-03T09:16:58Z128441001232928741952008-05-05T11:16:35ZAFECFC834683A2CAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/01%20'Round%20Midnight.m4a411089Spring Can Really Get You DownHouston Person & Ron CarterFrances Landesman, Thomas J. Wolf Jr.Jazz For A Rainy AfternoonJazzAAC audio file49941553107511121119982007-02-05T11:31:36Z2005-09-03T09:17:21Z128441001332928745062008-05-05T11:21:46ZAFECFC834683A2CBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/02%20Spring%20Can%20Really%20Get%20You%20Down.m4a411090Everything Must ChangeDavid NewmanBernard IghnerJazz For A Rainy AfternoonJazzAAC audio file42033982618261131119982007-02-05T11:31:38Z2005-09-03T09:17:50Z128441001232928747672008-05-05T11:26:07ZAFECFC834683A2CCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/03%20Everything%20Must%20Change.m4a411091A Tribute To A RoseJimmy PonderJimmy PonderJazz For A Rainy AfternoonJazzAAC audio file21800631355101141119982007-02-05T11:31:39Z2005-09-03T09:18:11Z128441001432928749032008-05-05T11:28:23ZTribute To A RoseAFECFC834683A2CDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/04%20A%20Tribute%20To%20A%20Rose.m4a411092Blue In GreenWallace RoneyBill EvansJazz For A Rainy AfternoonJazzAAC audio file55598063455811151119982007-02-05T11:31:41Z2005-09-03T09:18:21Z128441001832928752482008-05-05T11:34:08ZAFECFC834683A2CEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/05%20Blue%20In%20Green.m4a411093Talk Of The TownHouston PersonMarty Symes, Al J. Neiberg, Jerry LivingstonJazz For A Rainy AfternoonJazzAAC audio file67364904187931161119982007-02-05T11:31:43Z2005-09-03T09:18:46Z128441001232928756672008-05-05T11:41:07ZAFECFC834683A2CFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/06%20Talk%20Of%20The%20Town.m4a411094Ruby, My DearHank JonesThelonious MonkJazz For A Rainy AfternoonJazzAAC audio file37656622349841171119982007-02-05T11:31:44Z2005-09-03T09:19:15Z128441001432928759022008-05-05T11:45:02ZAFECFC834683A2D0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/07%20Ruby,%20My%20Dear.m4a411095I Can't Get StartedWarren VachéVernon Duke, Ira GershwinJazz For A Rainy AfternoonJazzAAC audio file61976803850781181119982007-02-05T11:31:47Z2005-09-03T09:19:29Z128441001932928762872008-05-05T11:51:27ZAFECFC834683A2D1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/08%20I%20Can't%20Get%20Started.m4a411096My IdealSonny CrissRichard Whiting, Newell Chase, L. RobinJazz For A Rainy AfternoonJazzAAC audio file36125702249991191119982007-02-05T11:31:48Z2005-09-03T09:19:52Z128441003332928765122008-05-05T11:55:12ZAFECFC834683A2D2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/09%20My%20Ideal.m4a411097St. Louis BluesJohnny LytleWilliam C. HandyJazz For A Rainy AfternoonJazzAAC audio file679598542190511101119982007-02-05T11:31:50Z2005-09-03T09:20:05Z128441001332928769342008-05-05T12:02:14ZAFECFC834683A2D3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/10%20St.%20Louis%20Blues.m4a411098ImaginationWoody ShawJimmy Van Heusen, Johnny BurkeJazz For A Rainy AfternoonJazzAAC audio file720628344482311111119982007-02-05T11:31:53Z2005-09-03T09:20:27Z128441001932928773792008-05-05T12:09:39ZAFECFC834683A2D4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Jazz%20For%20A%20Rainy%20Afternoon/11%20Imagination.m4a411099Twenty-Four Hours A DayBillie HolidaySwing! Brother, Swing!JazzAAC audio file29413131832501122007-02-05T11:28:08Z2005-09-03T09:21:26Z128441001632933683842008-05-11T04:33:04ZAFECFC834683A2E3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/01%20Twenty-Four%20Hours%20A%20Day.m4a-1-11100Life Begins When You're In LoveBillie HolidaySwing! Brother, Swing!JazzAAC audio file29714991851772122007-02-05T11:28:09Z2005-09-03T09:22:17Z128441001632933685692008-05-11T04:36:09ZAFECFC834683A2E4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/02%20Life%20Begins%20When%20You're%20In%20Love.m4a411101They Can't Take That Away From MeBillie HolidaySwing! Brother, Swing!JazzAAC audio file29536741839003122007-02-05T11:28:10Z2005-09-03T09:23:08Z128441001632933687532008-05-11T04:39:13ZAFECFC834683A2E5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/03%20They%20Can't%20Take%20That%20Away%20From%20Me.m4a411102Don't Know If I'm Coming Or GoingBillie HolidaySwing! Brother, Swing!JazzAAC audio file26790461669964122007-02-05T11:28:11Z2005-09-03T09:23:47Z128441001532933689202008-05-11T04:42:00ZAFECFC834683A2E6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/04%20Don't%20Know%20If%20I'm%20Coming%20Or%20Going.m4a411103The Moon Looks Down And LaughsBillie HolidaySwing! Brother, Swing!JazzAAC audio file28359301766555122007-02-05T11:28:12Z2005-09-03T09:24:05Z128441001732933690972008-05-11T04:44:57ZMoon Looks Down And LaughsAFECFC834683A2E7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/05%20The%20Moon%20Looks%20Down%20And%20Laughs.m4a-1-11104Forget If You CanBillie HolidaySwing! Brother, Swing!JazzAAC audio file27170041692256122007-02-05T11:28:13Z2005-09-03T09:24:20Z128441001532933692662008-05-11T04:47:46ZAFECFC834683A2E8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/06%20Forget%20If%20You%20Can.m4a411105I Wish I Had YouBillie HolidaySwing! Brother, Swing!JazzAAC audio file27253951697137122007-02-05T11:28:14Z2005-09-03T09:24:32Z128441001532933694362008-05-11T04:50:36ZAFECFC834683A2E9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/07%20I%20Wish%20I%20Had%20You.m4a-1-11106You're So DesirableBillie HolidaySwing! Brother, Swing!JazzAAC audio file27630821722448122007-02-05T11:28:15Z2005-09-03T09:24:45Z128441001432933696082008-05-11T04:53:28ZAFECFC834683A2EAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/08%20You're%20So%20Desirable.m4a411107You're Gonna See A Lot Of MeBillie HolidaySwing! Brother, Swing!JazzAAC audio file28682051786999122007-02-05T11:28:16Z2005-09-03T09:24:57Z128441001532933697872008-05-11T04:56:27ZAFECFC834683A2EBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/09%20You're%20Gonna%20See%20A%20Lot%20Of%20Me.m4a-1-11108Hello, My DarlingBillie HolidaySwing! Brother, Swing!JazzAAC audio file264746516474410122007-02-05T11:28:17Z2005-09-03T09:25:09Z128441001432933699522008-05-11T04:59:12ZAFECFC834683A2ECFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/10%20Hello,%20My%20Darling.m4a411109Let's Dream In The MoonlightBillie HolidaySwing! Brother, Swing!JazzAAC audio file279648117421711122007-02-05T11:28:18Z2005-09-03T09:25:20Z128441001432933701262008-05-11T05:02:06ZAFECFC834683A2EDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/11%20Let's%20Dream%20In%20The%20Moonlight.m4a-1-11110Swing! Brother, Swing!Billie HolidaySwing! Brother, Swing!JazzAAC audio file284658217454212122007-02-05T11:28:19Z2005-09-03T09:25:31Z128441001432933703002008-05-11T05:05:00ZAFECFC834683A2EEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Billie%20Holiday/Swing!%20Brother,%20Swing!/12%20Swing!%20Brother,%20Swing!.m4a411111Gustav MahlerSymphony No. 5 in C sharp minor: IV: AdagiettoNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file11632611717889182007-02-05T11:52:16Z2005-09-03T09:26:19Z128441003532947744972008-05-27T11:08:17ZAFECFC834683A2F9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphony%20No.%205%20in%20C%20sharp%20minor_%20IV_%20Adagietto/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/01%20Gustav%20Mahler.m4a411112Pyotr Il'yich TchaikovskyThe Nutcracker, Op. 71: Waltz of thNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file7447242459521282007-02-05T11:52:38Z2005-09-03T09:27:20Z128441003132938540282008-05-16T19:27:08ZNutcracker, Op. 71: Waltz of thAFECFC834683A2FAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Nutcracker,%20Op.%2071_%20Waltz%20of%20th/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/02%20Pyotr%20Il'yich%20Tchaikovsky.m4a-1-11113Ludwig van BeethovenSymphony No. 6 in F major, Op. 68: II: ANational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file14012177864779382007-02-05T11:52:21Z2005-09-03T09:27:52Z128441003332947753622008-05-27T11:22:42ZAFECFC834683A2FBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphony%20No.%206%20in%20F%20major,%20Op.%2068_%20II_%20A/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/03%20Ludwig%20van%20Beethoven.m4a411114Wolfgang Amadeus MozartThe Marriage of Figaro, K. 492: OvertNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file4458711275038482007-02-05T11:52:35Z2005-09-03T09:28:44Z128441001132938103072008-05-16T07:18:27ZMarriage of Figaro, K. 492: OvertAFECFC834683A2FCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Marriage%20of%20Figaro,%20K.%20492_%20Overt/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/04%20Wolfgang%20Amadeus%20Mozart.m4a411115Amilcare PonchelliLa Goiconda: Dance of the HoursNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file10189383628794582007-02-05T11:42:24Z2005-09-03T09:28:59Z128441001432938069942008-05-16T06:23:14ZAFECFC834683A2FDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/La%20Goiconda_%20Dance%20of%20the%20Hours/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/05%20Amilcare%20Ponchelli.m4a411116Alexander BorodinPrince Igor: Polovtsian DancesNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file11997463740413682007-02-05T11:48:56Z2005-09-03T09:29:32Z128441003932918038502008-04-23T01:57:30ZAFECFC834683A2FEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Prince%20Igor_%20Polovtsian%20Dances/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/06%20Alexander%20Borodin.m4a411117Claude DebussyPrélude à l'après-midi d'un fauneNational Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file11148039687982782007-02-05T11:48:52Z2005-09-03T09:30:10Z128441003932925952562008-05-02T05:47:36ZAFECFC834683A2FFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Pre%CC%81lude%20a%CC%80%20l'apre%CC%80s-midi%20d'un%20faune/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/07%20Claude%20Debussy.m4a-1-11118Edward ElgarPomp and Circumstance March No. 1National Symphony Orchestra of Ireland - Classical FavouritesClassicalAAC audio file6454650399892882007-02-05T11:48:40Z2005-09-03T09:30:40Z128441003532925913092008-05-02T04:41:49ZAFECFC834683A300Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Pomp%20and%20Circumstance%20March%20No.%201/National%20Symphony%20Orchestra%20of%20Ireland%20-%20Classical%20Favourites/08%20Edward%20Elgar.m4a411119RossiniThe Barber Of Seville: OvertureNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file680480541986111119982007-02-05T11:52:30Z2005-09-03T09:31:39Z12844100632907647742008-04-11T01:19:34ZBarber Of Seville: OvertureAFECFC834683A30EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Barber%20Of%20Seville_%20Overture/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/01%20Rossini.m4a411120Edvard GriegPeer Ynt Suite No. 1, Op 46 "Morning"National Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file406149925037921119982007-02-05T11:48:05Z2005-09-03T09:32:19Z128441003532925853652008-05-02T03:02:45ZAFECFC834683A30FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peer%20Ynt%20Suite%20No.%201,%20Op%2046%20_Morning_/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/02%20Edvard%20Grieg.m4a411121Ludwig Van BeethovenSymphony No. 5 In C Minor, Op 67: I: Allegro Con BrioNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file708575543720731119982007-02-05T11:52:12Z2005-09-03T09:32:40Z128441003732947737792008-05-27T10:56:19ZAFECFC834683A310Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphony%20No.%205%20In%20C%20Minor,%20Op%2067_%20I_%20Allegro%20Con%20Brio/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/03%20Ludwig%20Van%20Beethoven.m4a-1-11122Jacques OffenbachThe Tales Of Hoffman: BarcarolleNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file361102022225941119982007-02-05T11:52:56Z2005-09-03T09:33:12Z128441003132947767722008-05-27T11:46:12ZTales Of Hoffman: BarcarolleAFECFC834683A311Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Tales%20Of%20Hoffman_%20Barcarolle/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/04%20Jacques%20Offenbach.m4a-1-11123Antonin DvorakSlavonic Dance No. 1 In C Major, Op 46National Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file418647625818151119982007-02-05T11:51:12Z2005-09-03T09:33:27Z128441005132918301022008-04-23T09:15:02ZAFECFC834683A312Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Slavonic%20Dance%20No.%201%20In%20C%20Major,%20Op%2046/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/05%20Antonin%20Dvorak.m4a411124Wolfgang Amadeus MozartSymphony No. 40 In G Minor, K.550: I: Molto AllegroNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file664896441024861119982007-02-05T11:52:09Z2005-09-03T09:33:44Z128441003232947765502008-05-27T11:42:30ZAFECFC834683A313Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphony%20No.%2040%20In%20G%20Minor,%20K.550_%20I_%20Molto%20Allegro/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/06%20Wolfgang%20Amadeus%20Mozart.m4a411125MascagniCavalleria Rusticana: IntermezzoNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file304383318684971119982007-02-05T11:29:46Z2005-09-03T09:34:09Z128441001632933897422008-05-11T10:29:02ZAFECFC834683A314Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Cavalleria%20Rusticana_%20Intermezzo/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/07%20Mascagni.m4a411126Edvard GriegPeer Gynt Suite No. 1, Op 46: In The Hall Of The Mountain KingNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file228199113929581119982007-02-05T11:48:04Z2005-09-03T09:34:20Z128441003632925851142008-05-02T02:58:34ZAFECFC834683A315Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Peer%20Gynt%20Suite%20No.%201,%20Op%2046_%20In%20The%20Hall%20Of%20The%20Mountain%20King/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/08%20Edvard%20Grieg.m4a411127Antonin DvorakSymphony No. 9 In E Minor, Op 95, "From The New World": II: LargoNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file1260616277798391119982007-02-05T11:52:26Z2005-09-03T09:34:28Z128441003432947761402008-05-27T11:35:40ZAFECFC834683A316Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphony%20No.%209%20In%20E%20Minor,%20Op%2095,%20_From%20The%20New%20World__%20II_%20Largo/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/09%20Antonin%20Dvorak.m4a411128Johann Strauss IIThe Beautiful Blue DanubeNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file10004682617393101119982007-02-05T11:52:34Z2005-09-03T09:35:09Z12844100832907653912008-04-11T01:29:51ZBeautiful Blue DanubeAFECFC834683A317Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Beautiful%20Blue%20Danube/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/10%20Johann%20Strauss%20II.m4a411129Paul DukasThe Sorcerer's ApprenticeNational Symphony Orchestra Of Ireland - Classical FavouritesClassicalAAC audio file11159955690954111119982007-02-05T11:52:42Z2005-09-03T09:35:47Z128441005132918330992008-04-23T10:04:59ZSorcerer's ApprenticeAFECFC834683A318Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Sorcerer's%20Apprentice/National%20Symphony%20Orchestra%20Of%20Ireland%20-%20Classical%20Favourites/11%20Paul%20Dukas.m4a411130Rhapsody In BlueSlovak PhilharmonicGeorge GershwinRhapsody In Blue { American In ParisClassicalAAC audio file16013480997249111319852007-02-05T11:33:03Z2005-09-03T09:37:12Z128441004132928872672008-05-05T14:54:27ZAFECFC834683A31EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Rhapsody%20In%20Blue%20%7B%20American%20In%20Paris/01%20Rhapsody%20In%20Blue.m4a411131An American In ParisSlovac PhilharmonicGeorge GershwinRhapsody In Blue { American In ParisClassicalAAC audio file174803901083859112319852007-02-05T11:33:09Z2005-09-03T09:38:43Z128441004432928883512008-05-05T15:12:31ZAmerican In ParisAFECFC834683A31FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Rhapsody%20In%20Blue%20%7B%20American%20In%20Paris/02%20An%20American%20In%20Paris.m4a411132Lullaby for StringsPhilarte QuartetGeorge GershwinRhapsody In Blue { American In ParisClassicalAAC audio file9006114556232113319852007-02-05T11:33:12Z2005-09-03T09:39:55Z128441003132928889072008-05-05T15:21:47ZAFECFC834683A320Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Rhapsody%20In%20Blue%20%7B%20American%20In%20Paris/03%20Lullaby%20for%20Strings.m4a411133SunriseNorah JonesLee Alexander, Norah JonesFeels Like HomePopAAC audio file32520142006181111320042007-02-05T11:46:20Z2005-09-03T09:41:20Z128441003032938509852008-05-16T18:36:25ZAFECFC834683A330Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/01%20Sunrise.m4a411134What Am I To You?Norah JonesNorah JonesFeels Like HomePopAAC audio file33913672099991121320042007-02-05T11:46:21Z2005-09-03T09:41:41Z128441003132938511952008-05-16T18:39:55ZAFECFC834683A331Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/02%20What%20Am%20I%20To%20You_.m4a-1-11135Those Sweet WordsNorah JonesLee Alexander, Richard JulianFeels Like HomePopAAC audio file32746232026391131320042007-02-05T11:46:22Z2005-09-03T09:41:59Z128441003032938513982008-05-16T18:43:18ZAFECFC834683A332Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/03%20Those%20Sweet%20Words.m4a411136Carnival TownNorah JonesNorah Jones, Lee AlexanderFeels Like HomePopAAC audio file31263601919571141320042007-02-05T11:46:23Z2005-09-03T09:42:16Z128441003032938515892008-05-16T18:46:29ZAFECFC834683A333Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/04%20Carnival%20Town.m4a411137In The MorningNorah JonesAdam LevyFeels Like HomePopAAC audio file39877172473141151320042007-02-05T11:46:25Z2005-09-03T09:42:31Z128441003032938518372008-05-16T18:50:37ZAFECFC834683A334Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/05%20In%20The%20Morning.m4a411138Be Here To Love MeNorah JonesTownes Van ZandtFeels Like HomePopAAC audio file33762742088621161320042007-02-05T11:46:26Z2005-09-03T09:42:49Z128441003032938520462008-05-16T18:54:06ZAFECFC834683A335Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/06%20Be%20Here%20To%20Love%20Me.m4a411139Creepin' InNorah JonesLee AlexanderFeels Like HomePopAAC audio file29339091838301171320042007-02-05T11:46:27Z2005-09-03T09:43:03Z128441003532938994472008-05-17T08:04:07ZAFECFC834683A336Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/07%20Creepin'%20In.m4a411140ToesNorah JonesLee Alexander, Norah JonesFeels Like HomePopAAC audio file36764162265781181320042007-02-05T11:46:28Z2005-09-03T09:43:16Z128441003432938524562008-05-16T19:00:56ZAFECFC834683A337Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/08%20Toes.m4a411141Humble MeNorah JonesKevin BreitFeels Like HomePopAAC audio file44585122763391191320042007-02-05T11:46:30Z2005-09-03T09:43:30Z128441003432938527322008-05-16T19:05:32ZAFECFC834683A338Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/09%20Humble%20Me.m4a411142Above GroundNorah JonesAdrew Borger, Daru OdaFeels Like HomePopAAC audio file360327522383811101320042007-02-05T11:46:32Z2005-09-03T09:43:46Z128441003432938529562008-05-16T19:09:16ZAFECFC834683A339Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/10%20Above%20Ground.m4a411143The Long Way HomeNorah JonesKathleen Brennan, Tom WaitsFeels Like HomePopAAC audio file312191719321111111320042007-02-05T11:46:33Z2005-09-03T09:44:00Z128441003632938996482008-05-17T08:07:28ZLong Way HomeAFECFC834683A33AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/11%20The%20Long%20Way%20Home.m4a411144The Prettiest ThingNorah JonesNorah Jones, Lee Alexander, Richard JulianFeels Like HomePopAAC audio file373462723178011121320042007-02-05T11:46:34Z2005-09-03T09:44:11Z128441003532938533812008-05-16T19:16:21ZPrettiest ThingAFECFC834683A33BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/12%20The%20Prettiest%20Thing.m4a411145Don't Miss You At AllNorah JonesDuke EllingtonFeels Like HomePopAAC audio file304361518691911131320042007-02-05T11:46:35Z2005-09-03T09:44:23Z128441003532938535682008-05-16T19:19:28ZAFECFC834683A33CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Feels%20Like%20Home/13%20Don't%20Miss%20You%20At%20All.m4a411146Real Real GoneVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file36212362229101111519902007-02-05T11:55:48Z2005-09-03T09:45:07Z128441002532947893342008-05-27T15:15:34ZAFECFC834683A34EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/01%20Real%20Real%20Gone.m4a411147When Will I Ever Learn To Live In GodVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file55012133394511121519892007-02-05T11:55:50Z2005-09-03T09:45:29Z128441002532947896732008-05-27T15:21:13ZAFECFC834683A34FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/02%20When%20Will%20I%20Ever%20Learn%20To%20Live%20In%20God.m4a411148Sometimes I Feel Like A Motherless ChildVan MorrisonTraditional air, arranged by Van MorrisonBest Of Van Morrison Volume TwoRockAAC audio file43275922669811131519872007-02-05T11:55:52Z2005-09-03T09:45:56Z128441002532947899402008-05-27T15:25:40ZAFECFC834683A350Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/03%20Sometimes%20I%20Feel%20Like%20A%20Motherless%20Child.m4a411149In The GardenVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file56124063463241141519862007-02-05T11:55:54Z2005-09-03T09:46:16Z128441002532947902862008-05-27T15:31:26ZAFECFC834683A351Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/04%20In%20The%20Garden.m4a411150A Sense Of WonderVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file70060404322841151519842007-02-05T11:55:56Z2005-09-03T09:46:40Z128441002632947907192008-05-27T15:38:39ZSense Of WonderAFECFC834683A352Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/05%20A%20Sense%20Of%20Wonder.m4a411151I'll Tell Me MaVan MorrisonPaddy Moloney/Traditional air, arranged by Van MorrisonBest Of Van Morrison Volume TwoRockAAC audio file24254781510901161519882007-02-05T11:55:57Z2005-09-03T09:47:07Z128441002632947908702008-05-27T15:41:10ZAFECFC834683A353Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/06%20I'll%20Tell%20Me%20Ma.m4a-1-11152Coney IslandVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file20014131238301171519892007-02-05T11:55:58Z2005-09-03T09:47:16Z128441002632947909942008-05-27T15:43:14ZAFECFC834683A354Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/07%20Coney%20Island.m4a-1-11153EnlightenmentVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file39838752475461181519902007-02-05T11:55:59Z2005-09-03T09:47:23Z128441002532947912412008-05-27T15:47:21ZAFECFC834683A355Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/08%20Enlightenment.m4a411154Rave On John Donne/Rave On Part Two (Live)Van MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file90358185576481191519842007-02-05T11:56:02Z2005-09-03T09:47:38Z128441002632947917992008-05-27T15:56:39ZAFECFC834683A356Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/09%20Rave%20On%20John%20Donne_Rave%20On%20Part%20Two%20(Live).m4a-1-11155Don't Look BackVan MorrisonJohn Lee HookerBest Of Van Morrison Volume TwoRockAAC audio file325887220031711101519652007-02-05T11:56:04Z2005-09-03T09:48:07Z128441002532947919992008-05-27T15:59:59ZAFECFC834683A357Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/10%20Don't%20Look%20Back.m4a-1-11156It's All Over Now, Baby BlueVan MorrisonBob DylanBest Of Van Morrison Volume TwoRockAAC audio file375900323150111111519662007-02-05T11:56:05Z2005-09-03T09:48:17Z128441002432947922312008-05-27T16:03:51ZAFECFC834683A358Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/11%20It's%20All%20Over%20Now,%20Baby%20Blue.m4a411157One Irish RoverVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file338770920832711121519862007-02-05T11:56:06Z2005-09-03T09:48:29Z128441002432947924392008-05-27T16:07:19ZAFECFC834683A359Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/12%20One%20Irish%20Rover.m4a411158The MysteryVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file514170731725211131519872007-02-05T11:56:08Z2005-09-03T09:48:39Z128441002332947927562008-05-27T16:12:36ZMysteryAFECFC834683A35AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/13%20The%20Mystery.m4a411159Hymns To The SilenceVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file925110757381011141519912007-02-05T11:56:12Z2005-09-03T09:48:56Z128441002332947933302008-05-27T16:22:10ZAFECFC834683A35BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/14%20Hymns%20To%20The%20Silence.m4a-1-11160Evening MeditationVan MorrisonVan MorrisonBest Of Van Morrison Volume TwoRockAAC audio file413441225495311151519842007-02-05T11:56:13Z2005-09-03T09:49:23Z128441002332947935852008-05-27T16:26:25ZAFECFC834683A35CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Best%20Of%20Van%20Morrison%20Volume%20Two/15%20Evening%20Meditation.m4a-1-11161FragileStingStingAll This Time (Live)RockAAC audio file44677132758511111520012007-02-05T11:51:19Z2005-09-03T09:50:04Z128441005332947650112008-05-27T08:30:11ZAFECFC834683A36EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/01%20Fragile.m4a-1-111621000 YearsStingSting & KipperAll This Time (Live)RockAAC audio file29694621822051121520012007-02-05T11:51:20Z2005-09-03T09:50:33Z128441005132947651932008-05-27T08:33:13ZAFECFC834683A36FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/02%201000%20Years.m4a411163Perfect Love Gone WrongStingStingAll This Time (Live)RockAAC audio file40747082511221131520012007-02-05T11:51:21Z2005-09-03T09:50:50Z128441005032947654442008-05-27T08:37:24ZAFECFC834683A370Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/03%20Perfect%20Love%20Gone%20Wrong.m4a411164All This TimeStingStingAll This Time (Live)RockAAC audio file51977643205731141520012007-02-05T11:51:23Z2005-09-03T09:51:12Z128441004932947657652008-05-27T08:42:45ZAFECFC834683A371Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/04%20All%20This%20Time.m4a411165Hounds Of WinterStingStingAll This Time (Live)RockAAC audio file43745142697911151520012007-02-05T11:51:25Z2005-09-03T09:51:36Z128441004932947660352008-05-27T08:47:15ZAFECFC834683A372Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/05%20Hounds%20Of%20Winter.m4a411166Don't Stand So Close To MeStingStingAll This Time (Live)RockAAC audio file22246821356261161520012007-02-05T11:51:26Z2005-09-03T09:51:55Z128441004932947661702008-05-27T08:49:30ZAFECFC834683A373Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/06%20Don't%20Stand%20So%20Close%20To%20Me.m4a411167When We DanceStingStingAll This Time (Live)RockAAC audio file47339772919891171520012007-02-05T11:51:27Z2005-09-03T09:52:05Z128441005032947664622008-05-27T08:54:22ZAFECFC834683A374Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/07%20When%20We%20Dance.m4a411168DiendaStingSting & Kenny KirklandAll This Time (Live)RockAAC audio file31345051924221181520012007-02-05T11:51:28Z2005-09-03T09:52:24Z128441005032947666552008-05-27T08:57:35ZAFECFC834683A375Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/08%20Dienda.m4a411169RoxanneStingStingAll This Time (Live)RockAAC audio file35214702165941191520012007-02-05T11:51:30Z2005-09-03T09:52:37Z128441004932947668712008-05-27T09:01:11ZAFECFC834683A376Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/09%20Roxanne.m4a411170(If You Love Somebody) Set Them FreeStingStingAll This Time (Live)RockAAC audio file481510529700411101520012007-02-05T11:51:31Z2005-09-03T09:52:50Z128441004932947671682008-05-27T09:06:08ZAFECFC834683A377Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/10%20(If%20You%20Love%20Somebody)%20Set%20Them%20Free.m4a411171Brand New DayStingStingAll This Time (Live)RockAAC audio file464379428646311111520012007-02-05T11:51:33Z2005-09-03T09:53:08Z128441004932947674552008-05-27T09:10:55ZAFECFC834683A378Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/11%20Brand%20New%20Day.m4a411172Fields Of GoldStingStingAll This Time (Live)RockAAC audio file373867323013111121520012007-02-05T11:51:34Z2005-09-03T09:53:24Z128441004832947676852008-05-27T09:14:45ZAFECFC834683A379Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/12%20Fields%20Of%20Gold.m4a-1-11173Moon Over Bourbon StreetStingStingAll This Time (Live)RockAAC audio file286250017544811131520012007-02-05T11:51:35Z2005-09-03T09:53:36Z128441004932947678602008-05-27T09:17:40ZAFECFC834683A37AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/13%20Moon%20Over%20Bourbon%20Street.m4a411174If I Ever Loose My Faith In YouStingStingAll This Time (Live)RockAAC audio file439551527104511141520012007-02-05T11:51:37Z2005-09-03T09:53:45Z128441004632947681312008-05-27T09:22:11ZAFECFC834683A37BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/14%20If%20I%20Ever%20Loose%20My%20Faith%20In%20You.m4a411175Every Breath You TakeStingStingAll This Time (Live)RockAAC audio file492818330424911151520012007-02-05T11:51:39Z2005-09-03T09:53:59Z128441004532947684352008-05-27T09:27:15ZAFECFC834683A37CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Sting/All%20This%20Time%20(Live)/15%20Every%20Breath%20You%20Take.m4a411176So WhatMiles DavisMiles DavisKind Of BlueJazzAAC audio file8796300545597111519622007-02-05T11:44:13Z2005-09-03T09:54:45Z128441001532938292082008-05-16T12:33:28ZAFECFC834683A384Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Kind%20Of%20Blue/01%20So%20What.m4a411177Freddie FreeloaderMiles DavisMiles DavisKind Of BlueJazzAAC audio file9288757575783112519622007-02-05T11:44:16Z2005-09-03T09:55:33Z128441001432938297842008-05-16T12:43:04ZAFECFC834683A385Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Kind%20Of%20Blue/02%20Freddie%20Freeloader.m4a411178Blue In GreenMiles DavisMiles DavisKind Of BlueJazzAAC audio file5304964328653113519622007-02-05T11:44:18Z2005-09-03T09:56:14Z128441001432938301132008-05-16T12:48:33ZAFECFC834683A386Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Kind%20Of%20Blue/03%20Blue%20In%20Green.m4a411179All BluesMiles DavisMiles DavisKind Of BlueJazzAAC audio file11199107693787114519622007-02-05T11:44:22Z2005-09-03T09:56:35Z128441001432938308072008-05-16T13:00:07ZAFECFC834683A387Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Kind%20Of%20Blue/04%20All%20Blues.m4a411180Flamenco SketchesMiles DavisMiles DavisKind Of BlueJazzAAC audio file9150315564684115519622007-02-05T11:44:26Z2005-09-03T09:57:15Z128441001432938313712008-05-16T13:09:31ZAFECFC834683A388Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Miles%20Davis/Kind%20Of%20Blue/05%20Flamenco%20Sketches.m4a411181Pantala Naga PampaDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file706663408881111119982007-02-05T11:36:44Z2005-09-03T09:58:59Z128441001532934065192008-05-11T15:08:39ZAFECFC834683A396Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/01%20Pantala%20Naga%20Pampa.m4a411182RapunzelDave Matthews BandDavid J. Matthews, Lessard, BeaufordBefore These Crowded StreetsRockAAC audio file58410063602791121119982007-02-05T11:36:46Z2005-09-03T09:59:04Z128441001432934068792008-05-11T15:14:39ZAFECFC834683A397Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/02%20Rapunzel.m4a411183The Last StopDave Matthews BandDavid J. Matthews, LessardBefore These Crowded StreetsRockAAC audio file67711834177951131119982007-02-05T11:36:48Z2005-09-03T09:59:36Z128441001432934072972008-05-11T15:21:37ZLast StopAFECFC834683A398Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/03%20The%20Last%20Stop.m4a411184Don't Drink the WaterDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file68301804214171141119982007-02-05T11:36:51Z2005-09-03T10:00:08Z128441001332934077192008-05-11T15:28:39ZAFECFC834683A399Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/04%20Don't%20Drink%20the%20Water.m4a411185Stay (Wasting Time)Dave Matthews BandDavid J. Matthews, Lessared, MooreBefore These Crowded StreetsRockAAC audio file54333013352251151119982007-02-05T11:36:53Z2005-09-03T10:00:37Z128441001232934080542008-05-11T15:34:14ZAFECFC834683A39AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/05%20Stay%20(Wasting%20Time).m4a411186HalloweenDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file49929093079181161119982007-02-05T11:36:54Z2005-09-03T10:00:57Z128441001232934083622008-05-11T15:39:22ZAFECFC834683A39BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/06%20Halloween.m4a411187The StoneDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file72712964487001171119982007-02-05T11:36:57Z2005-09-03T10:01:16Z128441001232934088102008-05-11T15:46:50ZStoneAFECFC834683A39CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/07%20The%20Stone.m4a411188CrushDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file79292114893121181119982007-02-05T11:37:00Z2005-09-03T10:01:41Z128441001332934093002008-05-11T15:55:00ZAFECFC834683A39DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/08%20Crush.m4a411189The Dreaming TreeDave Matthews BandDavid J. Matthews, LessardBefore These Crowded StreetsRockAAC audio file85571935281131191119982007-02-05T11:37:03Z2005-09-03T10:02:06Z128441001232934098282008-05-11T16:03:48ZDreaming TreeAFECFC834683A39EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/09%20The%20Dreaming%20Tree.m4a411190PigDave Matthews BandDavid J. Matthews, Lessard, Beauford, Moore, TinsleyBefore These Crowded StreetsRockAAC audio file676871641765511101119982007-02-05T11:37:05Z2005-09-03T10:02:31Z128441001232934102452008-05-11T16:10:45ZAFECFC834683A39FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/10%20Pig.m4a411191SpoonDave Matthews BandDavid J. MatthewsBefore These Crowded StreetsRockAAC audio file734370445320511111119982007-02-05T11:37:08Z2005-09-03T10:02:51Z128441001332934106982008-05-11T16:18:18ZAFECFC834683A3A0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Before%20These%20Crowded%20Streets/11%20Spoon.m4a-1-11192All Revved Up With No Place To GoMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file1097362653391111819992007-02-05T11:43:22Z2005-09-03T10:03:38Z128441001332938203922008-05-16T10:06:32ZAFECFC834683A3B5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/01%20All%20Revved%20Up%20With%20No%20Place%20To%20Go.m4a411193Life Is A Lemon And I Want My Money BackMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file59315653658521121819992007-02-05T11:43:24Z2005-09-03T10:03:45Z128441001232938207572008-05-16T10:12:37ZAFECFC834683A3B6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/02%20Life%20Is%20A%20Lemon%20And%20I%20Want%20My%20Money%20Back.m4a411194Story - Written Just For YouMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file17574051064851131819992007-02-05T11:43:25Z2005-09-03T10:04:21Z128441001332938208642008-05-16T10:14:24ZAFECFC834683A3B7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/03%20Story%20-%20Written%20Just%20For%20You.m4a411195You Took The Words Right Out Of My Mouth (Hot Summer Nights)Meat LoafJim SteinmanVH-1 StorytellersRockAAC audio file47034972900621141819992007-02-05T11:43:27Z2005-09-03T10:04:32Z128441001932938211542008-05-16T10:19:14ZAFECFC834683A3B8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/04%20You%20Took%20The%20Words%20Right%20Out%20Of%20My%20Mouth%20(Hot%20Summer%20Nights).m4a411196Story - What I Won't DoMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file1437851864921151819992007-02-05T11:43:27Z2005-09-03T10:04:56Z128441001332938212402008-05-16T10:20:40ZAFECFC834683A3B9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/05%20Story%20-%20What%20I%20Won't%20Do.m4a411197I'd Do Anything For Love (But I Won't Do That)Meat LoafJim SteinmanVH-1 StorytellersRockAAC audio file61988533823611161819992007-02-05T11:43:29Z2005-09-03T10:05:02Z128441002132938216232008-05-16T10:27:03ZAFECFC834683A3BAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/06%20I'd%20Do%20Anything%20For%20Love%20(But%20I%20Won't%20Do%20That).m4a411198Lawyers, Guns And MoneyMeat LoafWarren ZevonVH-1 StorytellersRockAAC audio file48172112970741171819992007-02-05T11:43:31Z2005-09-03T10:05:28Z128441001232938219202008-05-16T10:32:00ZAFECFC834683A3BBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/07%20Lawyers,%20Guns%20And%20Money.m4a411199Story - Working For Jim Steinman In New YorkMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file19104921159821181819992007-02-05T11:43:32Z2005-09-03T10:05:47Z128441001232938220362008-05-16T10:33:56ZAFECFC834683A3BCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/08%20Story%20-%20Working%20For%20Jim%20Steinman%20In%20New%20York.m4a411200More Than You DeserveMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file37279872294581191819992007-02-05T11:43:33Z2005-09-03T10:05:54Z128441001132938222652008-05-16T10:37:45ZAFECFC834683A3BDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/09%20More%20Than%20You%20Deserve.m4a411201Story - Peter PanMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file8179794778511101819992007-02-05T11:43:33Z2005-09-03T10:06:07Z128441001332938223132008-05-16T10:38:33ZAFECFC834683A3BEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/10%20Story%20-%20Peter%20Pan.m4a411202Heaven Can WaitMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file486955630030211111819992007-02-05T11:43:35Z2005-09-03T10:06:10Z128441001532938226132008-05-16T10:43:33ZAFECFC834683A3BFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/11%20Heaven%20Can%20Wait.m4a411203Story - Paradise In The OfficeMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file301650618506111121819992007-02-05T11:43:36Z2005-09-03T10:06:27Z128441001032938227982008-05-16T10:46:38ZAFECFC834683A3C0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/12%20Story%20-%20Paradise%20In%20The%20Office.m4a411204Paradise By The Dashboard LightMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file925051457074511131819992007-02-05T11:43:39Z2005-09-03T10:06:37Z128441001532938233692008-05-16T10:56:09ZAFECFC834683A3C1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/13%20Paradise%20By%20The%20Dashboard%20Light.m4a411205Story - Performing On TelevisionMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file5997053417811141819992007-02-05T11:43:40Z2005-09-03T10:07:05Z128441001332938234032008-05-16T10:56:43ZAFECFC834683A3C2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/14%20Story%20-%20Performing%20On%20Television.m4a411206Two Out Of Three Ain't BadMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file466761428783311151819992007-02-05T11:43:41Z2005-09-03T10:07:07Z128441001332938236912008-05-16T11:01:31ZAFECFC834683A3C3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/15%20Two%20Out%20Of%20Three%20Ain't%20Bad.m4a-1-11207Story - Bat Out Of PsychoMeat LoafMeat LoafVH-1 StorytellersRockAAC audio file3974742161611161819992007-02-05T11:43:41Z2005-09-03T10:07:21Z128441001232938237122008-05-16T11:01:52ZAFECFC834683A3C4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/16%20Story%20-%20Bat%20Out%20Of%20Psycho.m4a411208Bat Out Of HellMeat LoafJim SteinmanVH-1 StorytellersRockAAC audio file1102770368512611171819992007-02-05T11:43:45Z2005-09-03T10:07:22Z128441001732938243982008-05-16T11:13:18ZAFECFC834683A3C5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/17%20Bat%20Out%20Of%20Hell.m4a411209Is Nothing Sacred (New Single Version - Duet With Patti Russo)Meat LoafJim Steinman, John BlackVH-1 StorytellersRockAAC audio file459128428332811181819992007-02-05T11:43:47Z2005-09-03T10:07:53Z128441001732938246812008-05-16T11:18:01ZAFECFC834683A3C6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Meat%20Loaf/VH-1%20Storytellers/18%20Is%20Nothing%20Sacred%20(New%20Single%20Version%20-%20Duet%20With%20Patti%20Russo).m4a411210Perfect FitVan MorrisonVan MorrisonDays Like ThisRockAAC audio file44364612753401111219952007-02-05T11:56:29Z2005-09-03T10:08:48Z128441002432947963462008-05-27T17:12:26ZAFECFC834683A3D5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/01%20Perfect%20Fit.m4a-1-11211Russian RoulettVan MorrisonVan MorrisonDays Like ThisRockAAC audio file38415302400461121219952007-02-05T11:56:30Z2005-09-03T10:09:16Z128441002332947965862008-05-27T17:16:26ZAFECFC834683A3D6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/02%20Russian%20Roulett.m4a411212RaincheckVan MorrisonVan MorrisonDays Like ThisRockAAC audio file57320803546601131219952007-02-05T11:56:32Z2005-09-03T10:09:38Z128441002432947969402008-05-27T17:22:20ZAFECFC834683A3D7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/03%20Raincheck.m4a411213You Don't Know MeVan MorrisonArnold/WalkerDays Like ThisRockAAC audio file44197122757121141219952007-02-05T11:56:34Z2005-09-03T10:10:06Z128441002332947972162008-05-27T17:26:56ZAFECFC834683A3D8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/04%20You%20Don't%20Know%20Me.m4a411214No ReligionVan MorrisonVan MorrisonDays Like ThisRockAAC audio file50971843175311151219952007-02-05T11:56:36Z2005-09-03T10:10:35Z128441002332947975342008-05-27T17:32:14ZAFECFC834683A3D9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/05%20No%20Religion.m4a411215Underliyng DepressionVan MorrisonVan MorrisonDays Like ThisRockAAC audio file44698562767801161219952007-02-05T11:56:37Z2005-09-03T10:11:00Z128441002332947978102008-05-27T17:36:50ZAFECFC834683A3DAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/06%20Underliyng%20Depression.m4a411216SongwriterVan MorrisonVan MorrisonDays Like ThisRockAAC audio file27856101713151171219952007-02-05T11:56:38Z2005-09-03T10:11:20Z128441002332947979822008-05-27T17:39:42ZAFECFC834683A3DBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/07%20Songwriter.m4a411217Days Like ThisVan MorrisonVan MorrisonDays Like ThisRockAAC audio file31536971971121181219952007-02-05T11:56:39Z2005-09-03T10:11:30Z128441002432947981792008-05-27T17:42:59ZAFECFC834683A3DCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/08%20Days%20Like%20This.m4a-1-11218I'll Never Be FreeVan MorrisonBenjamin/WeissDays Like ThisRockAAC audio file35418302215631191219952007-02-05T11:56:41Z2005-09-03T10:11:43Z128441002332947984002008-05-27T17:46:40ZAFECFC834683A3DDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/09%20I'll%20Never%20Be%20Free.m4a-1-11219MeloncholiaVan MorrisonVan MorrisonDays Like ThisRockAAC audio file386820023842111101219952007-02-05T11:56:42Z2005-09-03T10:11:57Z128441002332947986392008-05-27T17:50:39ZAFECFC834683A3DEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/10%20Meloncholia.m4a411220Ancient HighwayVan MorrisonVan MorrisonDays Like ThisRockAAC audio file864838753531111111219952007-02-05T11:56:45Z2005-09-03T10:12:10Z128441002532947991742008-05-27T17:59:34ZAFECFC834683A3DFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/11%20Ancient%20Highway.m4a411221In The AfternoonVan MorrisonVan MorrisonDays Like ThisRockAAC audio file619128438205911121219952007-02-05T11:56:47Z2005-09-03T10:12:38Z128441002332947995562008-05-27T18:05:56ZAFECFC834683A3E0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Days%20Like%20This/12%20In%20The%20Afternoon.m4a411222Tore Down a la RimbaudVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file40340162522601111019842007-02-05T11:55:05Z2005-09-03T10:13:29Z128441002632916811992008-04-21T15:53:19ZSense Of WonderAFECFC834683A3EDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/01%20Tore%20Down%20a%20la%20Rimbaud.m4a411223Ancient Of DaysVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file35353452220501121019842007-02-05T11:55:07Z2005-09-03T10:13:55Z128441002632916814212008-04-21T15:57:01ZSense Of WonderAFECFC834683A3EEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/02%20Ancient%20Of%20Days.m4a411224Evening MeditationVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file41142832560211131019842007-02-05T11:55:08Z2005-09-03T10:14:15Z128441002732916816772008-04-21T16:01:17ZSense Of WonderAFECFC834683A3EFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/03%20Evening%20Meditation.m4a-1-11225The Master's EyesVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file39151052437611141019842007-02-05T11:55:10Z2005-09-03T10:14:37Z128441002732916819212008-04-21T16:05:21ZSense Of WonderMaster's EyesAFECFC834683A3F0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/04%20The%20Master's%20Eyes.m4a411226What Would I DoVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file50309783129801151019842007-02-05T11:55:12Z2005-09-03T10:14:56Z128441002732916822332008-04-21T16:10:33ZSense Of WonderAFECFC834683A3F1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/05%20What%20Would%20I%20Do.m4a411227A Sense Of WonderVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file69606124311461161019842007-02-05T11:55:14Z2005-09-03T10:15:19Z128441002732916826652008-04-21T16:17:45ZSense Of WonderSense Of WonderAFECFC834683A3F2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/06%20A%20Sense%20Of%20Wonder.m4a411228Boffyflow And SpikeVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file30303331886601171019842007-02-05T11:55:15Z2005-09-03T10:15:48Z128441002732916828532008-04-21T16:20:53ZSense Of WonderAFECFC834683A3F3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/07%20Boffyflow%20And%20Spike.m4a411229If You Only KnewVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file28709641781181181019842007-02-05T11:55:16Z2005-09-03T10:16:00Z128441002732916830312008-04-21T16:23:51ZSense Of WonderAFECFC834683A3F4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/08%20If%20You%20Only%20Knew.m4a411230Let The SlaveVan MorrisonMike Westbrook/William BlakeA Sense Of WonderRockAAC audio file52891463298841191019842007-02-05T11:55:18Z2005-09-03T10:16:11Z128441002732916833612008-04-21T16:29:21ZSense Of WonderAFECFC834683A3F5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/09%20Let%20The%20Slave.m4a411231A New Kind Of ManVan MorrisonVan MorrisonA Sense Of WonderRockAAC audio file326832220175611101019842007-02-05T11:55:19Z2005-09-03T10:16:30Z128441002632916835632008-04-21T16:32:43ZSense Of WonderNew Kind Of ManAFECFC834683A3F6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/A%20Sense%20Of%20Wonder/10%20A%20New%20Kind%20Of%20Man.m4a-1-11232´Carmen´ Suite 1 Prelude (Prelude Act 1)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file1372933828701162007-02-05T11:30:02Z2005-09-03T10:17:10Z128441001532928675782008-05-05T09:26:18ZAFECFC834683A409Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/01%20_Carmen_%20Suite%201%20Prelude%20(Prelude%20Act%201).m4a411233´Carmen´ Suite 1 Aragonaise (Prelude Act 4)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file21362041331182162007-02-05T11:30:03Z2005-09-03T10:17:19Z128441001432928677112008-05-05T09:28:31ZAFECFC834683A40AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/02%20_Carmen_%20Suite%201%20Aragonaise%20(Prelude%20Act%204).m4a411234´Carmen´ Suite 1 Intermezzo (Prelude Act 3)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file26031931614463162007-02-05T11:30:04Z2005-09-03T10:17:33Z128441001432928678732008-05-05T09:31:13ZAFECFC834683A40BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/03%20_Carmen_%20Suite%201%20Intermezzo%20(Prelude%20Act%203).m4a-1-11235´Carmen´ Suite 1 Seguedille (Prelude Act 1)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file18332391132654162007-02-05T11:30:05Z2005-09-03T10:17:48Z128441001432928679862008-05-05T09:33:06ZAFECFC834683A40CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/04%20_Carmen_%20Suite%201%20Seguedille%20(Prelude%20Act%201).m4a411236´Carmen´ Suite 1 Les Dragons d´Alcala (Prelude Act 2)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file1586280975225162007-02-05T11:30:05Z2005-09-03T10:17:58Z128441001432928680832008-05-05T09:34:43ZAFECFC834683A40DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/05%20_Carmen_%20Suite%201%20Les%20Dragons%20d_Alcala%20(Prelude%20Act%202).m4a-1-11237´Carmen´ Suite 1 Les Toreadors (Intoduction Act 1)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file22043831416866162007-02-05T11:30:06Z2005-09-03T10:18:07Z128441001432928682252008-05-05T09:37:05ZAFECFC834683A40EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/06%20_Carmen_%20Suite%201%20Les%20Toreadors%20(Intoduction%20Act%201).m4a411238´Carmen´ Suite 2 Marche des ContrebandiersGeorge Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file38068432380727162007-02-05T11:30:07Z2005-09-03T10:18:18Z128441001532928684632008-05-05T09:41:03ZAFECFC834683A40FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/07%20_Carmen_%20Suite%202%20Marche%20des%20Contrebandiers.m4a-1-11239´Carmen´ Suite 2 Habanera (Act 1)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file20880931318188162007-02-05T11:30:08Z2005-09-03T10:18:37Z128441001632928685952008-05-05T09:43:15ZAFECFC834683A410Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/08%20_Carmen_%20Suite%202%20Habanera%20(Act%201).m4a-1-11240´Carmen´ Suite 2 Noctune (Aria de Michaela Act 3)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file40239312500549162007-02-05T11:30:10Z2005-09-03T10:18:47Z128441001532928688452008-05-05T09:47:25ZAFECFC834683A411Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/09%20_Carmen_%20Suite%202%20Noctune%20(Aria%20de%20Michaela%20Act%203).m4a411241´Carmen´ Suite 2 Chanson du Toreador (Act 2)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file256672415993710162007-02-05T11:30:10Z2005-09-03T10:19:12Z128441001532928690052008-05-05T09:50:05ZAFECFC834683A412Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/10%20_Carmen_%20Suite%202%20Chanson%20du%20Toreador%20(Act%202).m4a-1-11242´Carmen´ Suite 2 La Garde Montante (Act 1)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file370688223305711162007-02-05T11:30:12Z2005-09-03T10:19:24Z128441001532928692382008-05-05T09:53:58ZAFECFC834683A413Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/11%20_Carmen_%20Suite%202%20La%20Garde%20Montante%20(Act%201).m4a411243´Carmen´ Suite 2 Danse Bohème (Act 2)George Bizet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file437139227777812162007-02-05T11:30:13Z2005-09-03T10:19:38Z128441001532928695162008-05-05T09:58:36ZAFECFC834683A414Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/12%20_Carmen_%20Suite%202%20Danse%20Bohe%CC%80me%20(Act%202).m4a411244Orchestral Suite 4 ´Scènes Pittoresques´ MarcheJules Massenet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file361533422297913162007-02-05T11:30:15Z2005-09-03T10:19:56Z128441001332928697392008-05-05T10:02:19ZAFECFC834683A415Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/13%20Orchestral%20Suite%204%20_Sce%CC%80nes%20Pittoresques_%20Marche.m4a411245Orchestral Suite 4 ´Scènes Pittoresques´ Air de BalletJules Massenet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file262513616109814162007-02-05T11:30:16Z2005-09-03T10:20:09Z128441001332928699002008-05-05T10:05:00ZAFECFC834683A416Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/14%20Orchestral%20Suite%204%20_Sce%CC%80nes%20Pittoresques_%20Air%20de%20Ballet.m4a-1-11246Orchestral Suite 4 ´Scènes Pittoresques´ AngelusJules Massenet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file498075130766215162007-02-05T11:30:17Z2005-09-03T10:20:18Z128441001332928702082008-05-05T10:10:08ZAFECFC834683A417Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/15%20Orchestral%20Suite%204%20_Sce%CC%80nes%20Pittoresques_%20Angelus.m4a411247Orchestral Suite 4 ´Scènes Pittoresques´ Fête BohèmeJules Massenet´Carmen´ Suites 1 & 2 - Scènes PittoresquesClassicalAAC audio file545417133694316162007-02-05T11:30:19Z2005-09-03T10:20:35Z128441001332928705442008-05-05T10:15:44ZAFECFC834683A418Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/_Carmen_%20Suites%201%20&%202%20-%20Sce%CC%80nes%20Pittoresques/16%20Orchestral%20Suite%204%20_Sce%CC%80nes%20Pittoresques_%20Fe%CC%82te%20Bohe%CC%80me.m4a411248The Best Of What's AroundDave Matthews BandUnder The Table And DreamingRockAAC audio file41707152576231113419942007-02-05T11:37:47Z2005-09-03T10:21:36Z128441001532934172942008-05-11T18:08:14ZBest Of What's AroundAFECFC834683A43DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/01%20The%20Best%20Of%20What's%20Around.m4a-1-11249What Would You SayDave Matthews BandUnder The Table And DreamingRockAAC audio file36102152222591123419942007-02-05T11:37:48Z2005-09-03T10:22:02Z128441001432934175162008-05-11T18:11:56ZAFECFC834683A43EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/02%20What%20Would%20You%20Say.m4a411250SatelliteDave Matthews BandUnder The Table And DreamingRockAAC audio file47256432915941133419942007-02-05T11:37:50Z2005-09-03T10:22:23Z128441001432934178082008-05-11T18:16:48ZAFECFC834683A43FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/03%20Satellite.m4a411251Rhyme & ReasonDave Matthews BandUnder The Table And DreamingRockAAC audio file51194953158821143419942007-02-05T11:37:52Z2005-09-03T10:22:46Z128441001432934181242008-05-11T18:22:04ZAFECFC834683A440Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/04%20Rhyme%20&%20Reason.m4a-1-11252Typical SituationDave Matthews BandUnder The Table And DreamingRockAAC audio file58207493591181153419942007-02-05T11:37:54Z2005-09-03T10:23:09Z128441001432934184832008-05-11T18:28:03ZAFECFC834683A441Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/05%20Typical%20Situation.m4a411253Dancing NanciesDave Matthews BandUnder The Table And DreamingRockAAC audio file59194143653181163419942007-02-05T11:37:56Z2005-09-03T10:23:33Z128441001432934188482008-05-11T18:34:08ZAFECFC834683A442Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/06%20Dancing%20Nancies.m4a411254Ants MarchingDave Matthews BandUnder The Table And DreamingRockAAC audio file43950782711611173419942007-02-05T11:37:57Z2005-09-03T10:23:56Z128441001332934191192008-05-11T18:38:39ZAFECFC834683A443Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/07%20Ants%20Marching.m4a411255Lover Lay DownDave Matthews BandUnder The Table And DreamingRockAAC audio file54762343378481183419942007-02-05T11:37:59Z2005-09-03T10:24:12Z128441001332934194572008-05-11T18:44:17ZAFECFC834683A444Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/08%20Lover%20Lay%20Down.m4a411256Jimi ThingDave Matthews BandUnder The Table And DreamingRockAAC audio file57882253571441193419942007-02-05T11:38:02Z2005-09-03T10:24:56Z128441001332934198142008-05-11T18:50:14ZAFECFC834683A445Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/09%20Jimi%20Thing.m4a411257WarehouseDave Matthews BandUnder The Table And DreamingRockAAC audio file690678042622411103419942007-02-05T11:38:04Z2005-09-03T10:26:19Z128441001132934202412008-05-11T18:57:21ZAFECFC834683A446Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/10%20Warehouse.m4a411258Pay For What You GetDave Matthews BandUnder The Table And DreamingRockAAC audio file442257327285611113419942007-02-05T11:38:06Z2005-09-03T10:26:46Z128441001132934205132008-05-11T19:01:53ZAFECFC834683A447Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/11%20Pay%20For%20What%20You%20Get.m4a-1-11259#34Dave Matthews BandUnder The Table And DreamingRockAAC audio file483253030041811343419942007-02-05T11:38:07Z2005-09-03T10:27:22Z128441001232934208142008-05-11T19:06:54ZAFECFC834683A45EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Under%20The%20Table%20And%20Dreaming/34%20%2334.m4a411260Stolen MomentsDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file3148672193397221919812007-02-05T11:36:05Z2005-09-03T10:28:10Z128441001932933960372008-05-11T12:13:57ZInnocent Age (Disc 2)AFECFC834683A46AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-01%20Stolen%20Moments.m4a411261The Lion's ShareDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file5045569311262222919812007-02-05T11:36:07Z2005-09-03T10:28:29Z128441001932933963482008-05-11T12:19:08ZInnocent Age (Disc 2)Lion's ShareAFECFC834683A46BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-02%20The%20Lion's%20Share.m4a411262Only The Heart May KnowDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file4072248251052223919812007-02-05T11:36:09Z2005-09-03T10:28:56Z128441002032933965992008-05-11T12:23:19ZInnocent Age (Disc 2)AFECFC834683A46CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-03%20Only%20The%20Heart%20May%20Know.m4a411263The ReachDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file6387795395527224919812007-02-05T11:36:11Z2005-09-03T10:29:16Z128441002032933969952008-05-11T12:29:55ZInnocent Age (Disc 2)ReachAFECFC834683A46DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-04%20The%20Reach.m4a411264Aireshire LamentDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file90679053381225919812007-02-05T11:36:11Z2005-09-03T10:29:58Z128441001832933970482008-05-11T12:30:48ZInnocent Age (Disc 2)AFECFC834683A46EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-05%20Aireshire%20Lament.m4a411265Times Like TheseDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file3003270184318226919812007-02-05T11:36:12Z2005-09-03T10:30:07Z128441001832933972332008-05-11T12:33:53ZInnocent Age (Disc 2)AFECFC834683A46FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-06%20Times%20Like%20These.m4a411266Hard To SayDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file3894595239953227919812007-02-05T11:36:14Z2005-09-03T10:30:20Z128441001832933974732008-05-11T12:37:53ZInnocent Age (Disc 2)AFECFC834683A470Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-07%20Hard%20To%20Say.m4a411267Empty CagesDan FogelbergMichael Utley/Norman Putnam/Russ KunkelThe Innocent Age (Disc 2)RockAAC audio file6305692389048228919812007-02-05T11:36:16Z2005-09-03T10:30:38Z128441001932933978622008-05-11T12:44:22ZInnocent Age (Disc 2)AFECFC834683A471Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-08%20Empty%20Cages.m4a411268GhostsDan FogelbergDan FogelbergThe Innocent Age (Disc 2)RockAAC audio file7015152433956229919812007-02-05T11:36:18Z2005-09-03T10:31:01Z128441001832933982962008-05-11T12:51:36ZInnocent Age (Disc 2)AFECFC834683A472Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age%20(Disc%202)/2-09%20Ghosts.m4a411269Past The Point Of RescueMary BlackThe Best OfWorldAAC audio file33831062080261142007-02-05T11:42:58Z2005-09-03T10:31:53Z128441001932947608832008-05-27T07:21:23ZBest OfAFECFC834683A483Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/01%20Past%20The%20Point%20Of%20Rescue.m4a411270KatieMary BlackThe Best OfWorldAAC audio file37092622283902142007-02-05T11:43:00Z2005-09-03T10:32:16Z128441001832939680112008-05-18T03:06:51ZBest OfAFECFC834683A484Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/02%20Katie.m4a411271Song For IrelandMary BlackThe Best OfWorldAAC audio file48213522974223142007-02-05T11:43:01Z2005-09-03T10:32:37Z128441001832938139732008-05-16T08:19:33ZBest OfAFECFC834683A485Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/03%20Song%20For%20Ireland.m4a411272Lovin' YouMary BlackThe Best OfWorldAAC audio file26964031651624142007-02-05T11:43:02Z2005-09-03T10:33:03Z128441001732938141382008-05-16T08:22:18ZBest OfAFECFC834683A486Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/04%20Lovin'%20You.m4a411273Ellis IslandMary BlackThe Best OfWorldAAC audio file52798133257285142007-02-05T11:43:04Z2005-09-03T10:33:16Z128441001632938144642008-05-16T08:27:44ZBest OfAFECFC834683A487Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/05%20Ellis%20Island.m4a411274I Just Want To Dance With YouMary BlackThe Best OfWorldAAC audio file28474651745896142007-02-05T11:43:05Z2005-09-03T10:33:40Z128441001732938146382008-05-16T08:30:38ZBest OfAFECFC834683A488Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/06%20I%20Just%20Want%20To%20Dance%20With%20You.m4a411275CrusaderMary BlackThe Best OfWorldAAC audio file46964492897137142007-02-05T11:43:07Z2005-09-03T10:33:52Z128441001632938149282008-05-16T08:35:28ZBest OfAFECFC834683A489Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/07%20Crusader.m4a411276Carolina RuaMary BlackThe Best OfWorldAAC audio file25794651578718142007-02-05T11:43:08Z2005-09-03T10:34:12Z128441001632938150862008-05-16T08:38:06ZBest OfAFECFC834683A48AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/08%20Carolina%20Rua.m4a411277Anachie GordonMary BlackThe Best OfWorldAAC audio file63497083917659142007-02-05T11:43:10Z2005-09-03T10:34:22Z128441001632938154772008-05-16T08:44:37ZBest OfAFECFC834683A48BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/09%20Anachie%20Gordon.m4a411278No FrontiersMary BlackThe Best OfWorldAAC audio file367276122611410142007-02-05T11:43:11Z2005-09-03T10:34:46Z128441001632938157042008-05-16T08:48:24ZBest OfAFECFC834683A48CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/10%20No%20Frontiers.m4a411279Strange ThingMary BlackThe Best OfWorldAAC audio file348094321413211142007-02-05T11:43:13Z2005-09-03T10:34:59Z128441001532938159182008-05-16T08:51:58ZBest OfAFECFC834683A48DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/11%20Strange%20Thing.m4a411280Once In A Very Blue MoonMary BlackThe Best OfWorldAAC audio file257885615782412142007-02-05T11:43:13Z2005-09-03T10:35:11Z128441001732947611202008-05-27T07:25:20ZBest OfAFECFC834683A48EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/12%20Once%20In%20A%20Very%20Blue%20Moon.m4a411281By The Time It Gets DarkMary BlackThe Best OfWorldAAC audio file372632822945813142007-02-05T11:43:15Z2005-09-03T10:35:21Z128441001632947613502008-05-27T07:29:10ZBest OfAFECFC834683A48FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/13%20By%20The%20Time%20It%20Gets%20Dark.m4a411282Without The FanfareMary BlackThe Best OfWorldAAC audio file493722730459714142007-02-05T11:43:16Z2005-09-03T10:35:34Z128441001632947616542008-05-27T07:34:14ZBest OfAFECFC834683A490Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/The%20Best%20Of/14%20Without%20The%20Fanfare.m4a411283Born For MePaul WesterbergNick Hornby's SongbookPopAAC audio file389567624104411120022007-02-05T11:32:18Z2005-09-03T10:36:33Z128441002732928794252008-05-05T12:43:45ZAFECFC834683A49EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/01%20Born%20For%20Me.m4a411284Your Love Is The Place Where I Come FromTeenage FanclubNick Hornby's SongbookPopAAC audio file341228021174121120022007-02-05T11:32:19Z2005-09-03T10:36:58Z128441002632928796372008-05-05T12:47:17ZAFECFC834683A49FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/02%20Your%20Love%20Is%20The%20Place%20Where%20I%20Come%20From.m4a411285GloryboundThe BibleNick Hornby's SongbookPopAAC audio file439289427190431120022007-02-05T11:32:21Z2005-09-03T10:37:18Z128441001532928799092008-05-05T12:51:49ZBibleAFECFC834683A4A0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/03%20Glorybound.m4a-1-11286I've Had ItAimee MannNick Hornby's SongbookPopAAC audio file439260127095241120022007-02-05T11:32:22Z2005-09-03T10:37:41Z128441002632928801802008-05-05T12:56:20ZAFECFC834683A4A1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/04%20I've%20Had%20It.m4a-1-11287One Man GuyRufus WainwrightNick Hornby's SongbookPopAAC audio file345426921336651120022007-02-05T11:32:23Z2005-09-03T10:38:02Z128441003832928803932008-05-05T12:59:53ZAFECFC834683A4A2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/05%20One%20Man%20Guy.m4a-1-11288Mama You Been On My MindRod StewartNick Hornby's SongbookPopAAC audio file436995527111461120022007-02-05T11:32:25Z2005-09-03T10:38:17Z128441004032928806642008-05-05T13:04:24ZAFECFC834683A4A3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/06%20Mama%20You%20Been%20On%20My%20Mind.m4a-1-11289A Minor IncidentBadly Drawn BoyNick Hornby's SongbookPopAAC audio file365313222488371120022007-02-05T11:32:27Z2005-09-03T10:38:36Z128441002132928808892008-05-05T13:08:09ZMinor IncidentAFECFC834683A4A4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/07%20A%20Minor%20Incident.m4a-1-11290Ain't That EnoughTeenage FanclubNick Hornby's SongbookPopAAC audio file361881722455881120022007-02-05T11:32:28Z2005-09-03T10:38:51Z128441003332928811142008-05-05T13:11:54ZAFECFC834683A4A5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/08%20Ain't%20That%20Enough.m4a-1-11291SmokeBen Folds FiveNick Hornby's SongbookPopAAC audio file466883628980691120022007-02-05T11:32:29Z2005-09-03T10:39:05Z128441002132928814042008-05-05T13:16:44ZAFECFC834683A4A6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/09%20Smoke.m4a-1-11292Hey Self DefeaterMark MulcahyNick Hornby's SongbookPopAAC audio file4204085261339101120022007-02-05T11:32:31Z2005-09-03T10:39:22Z128441002532928816652008-05-05T13:21:05ZAFECFC834683A4A7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/10%20Hey%20Self%20Defeater.m4a-1-11293You Had TimeAni DiFrancoNick Hornby's SongbookPopAAC audio file5599326347926111120022007-02-05T11:32:33Z2005-09-03T10:39:37Z128441002732928820132008-05-05T13:26:53ZAFECFC834683A4A8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Nick%20Hornby's%20Songbook/11%20You%20Had%20Time.m4a-1-11294I Will Be ThereVan Morrison With Georgie FameVan MorrisonHow Long Has This Been Going OnPopAAC audio file24535801506491111419952007-02-05T11:58:12Z2005-09-03T10:40:28Z128441001832916857632008-04-21T17:09:23ZAFECFC834683A4B9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/01%20I%20Will%20Be%20There.m4a411295The New Symphony SidVan Morrison With Georgie FameKing Pleasure & Lester YoungHow Long Has This Been Going OnPopAAC audio file37488972336601121419952007-02-05T11:58:13Z2005-09-03T10:40:44Z128441001832916859972008-04-21T17:13:17ZNew Symphony SidAFECFC834683A4BAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/02%20The%20New%20Symphony%20Sid.m4a411296Early In The MorningVan Morrison With Georgie FameLeo Hickman, Louis Jordan & Dallas BartleyHow Long Has This Been Going OnPopAAC audio file26469421648831131419952007-02-05T11:58:14Z2005-09-03T10:41:07Z128441001732916861622008-04-21T17:16:02ZAFECFC834683A4BBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/03%20Early%20In%20The%20Morning.m4a411297Who Can I Turn To?Van Morrison With Georgie FameLeslie Bricusse & Anthony NewleyHow Long Has This Been Going OnPopAAC audio file38906712426701141419952007-02-05T11:58:16Z2005-09-03T10:41:22Z128441001732916864052008-04-21T17:20:05ZAFECFC834683A4BCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/04%20Who%20Can%20I%20Turn%20To_.m4a411298Sack O' WoeVan Morrison With Georgie FameJulian Adderley & Jon HendricksHow Long Has This Been Going OnPopAAC audio file39498602466641151419952007-02-05T11:58:17Z2005-09-03T10:41:42Z128441001732916866512008-04-21T17:24:11ZAFECFC834683A4BDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/05%20Sack%20O'%20Woe.m4a411299Moondance (Jazz Version)Van Morrison With Georgie FameVan MorrisonHow Long Has This Been Going OnPopAAC audio file70756034386461161419952007-02-05T11:58:20Z2005-09-03T10:42:00Z128441001732916870902008-04-21T17:31:30ZAFECFC834683A4BEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/06%20Moondance%20(Jazz%20Version).m4a-1-11300CenterpieceVan Morrison With Georgie FameHarry Edison & Jon HendricksHow Long Has This Been Going OnPopAAC audio file39843762486611171419952007-02-05T11:58:21Z2005-09-03T10:42:40Z128441001732916873382008-04-21T17:35:38ZAFECFC834683A4BFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/07%20Centerpiece.m4a411301How Long Has This Been Going On?Van Morrison With Georgie FameIra Gershwin & George GershwinHow Long Has This Been Going OnPopAAC audio file36811402291561181419952007-02-05T11:58:22Z2005-09-03T10:42:57Z128441001832916875682008-04-21T17:39:28ZAFECFC834683A4C0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/08%20How%20Long%20Has%20This%20Been%20Going%20On_.m4a411302Your Mind Is On VacationVan Morrison With Georgie FameMose AllisonHow Long Has This Been Going OnPopAAC audio file29966101867791191419952007-02-05T11:58:23Z2005-09-03T10:43:11Z128441001732916877542008-04-21T17:42:34ZAFECFC834683A4C1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/09%20Your%20Mind%20Is%20On%20Vacation.m4a411303All Saint's Day (Jazz Version)Van Morrison With Georgie FameVan MorrisonHow Long Has This Been Going OnPopAAC audio file224229613962011101419952007-02-05T11:58:24Z2005-09-03T10:43:23Z128441001732916878942008-04-21T17:44:54ZAFECFC834683A4C2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/10%20All%20Saint's%20Day%20(Jazz%20Version).m4a411304Blues In The NightVan Morrison With Georgie FameHarold Arlen and Johnny MercerHow Long Has This Been Going OnPopAAC audio file323400020198811111419952007-02-05T11:58:25Z2005-09-03T10:43:31Z128441001732916880962008-04-21T17:48:16ZAFECFC834683A4C3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/11%20Blues%20In%20The%20Night.m4a411305Don't Worry About A ThingVan Morrison With Georgie FameMose AllisonHow Long Has This Been Going OnPopAAC audio file229179114284711121419952007-02-05T11:58:26Z2005-09-03T10:43:43Z128441001732916882392008-04-21T17:50:39ZAFECFC834683A4C4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/12%20Don't%20Worry%20About%20A%20Thing.m4a411306That's LifeVan Morrison With Georgie FameDean Kay & Kelly GordonHow Long Has This Been Going OnPopAAC audio file372922223205811131419952007-02-05T11:58:27Z2005-09-03T10:43:54Z128441001632916884712008-04-21T17:54:31ZAFECFC834683A4C5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/13%20That's%20Life.m4a411307Heathrow ShuffleVan Morrison With Georgie FameVan MorrisonHow Long Has This Been Going OnPopAAC audio file321074919818011141419952007-02-05T11:58:29Z2005-09-03T10:44:07Z128441001532916886692008-04-21T17:57:49ZAFECFC834683A4C6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison%20With%20Georgie%20Fame/How%20Long%20Has%20This%20Been%20Going%20On/14%20Heathrow%20Shuffle.m4a411308I Did ItDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file35113812162921111220012007-02-05T11:37:29Z2005-09-03T10:44:59Z128441001132934141962008-05-11T17:16:36ZAFECFC834683A4D5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/01%20I%20Did%20It.m4a411309When The World EndsDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file34314602122281121220012007-02-05T11:37:30Z2005-09-03T10:45:22Z128441001132934144082008-05-11T17:20:08ZAFECFC834683A4D6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/02%20When%20The%20World%20Ends.m4a411310The Space BetweenDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file39261272437381131220012007-02-05T11:37:31Z2005-09-03T10:45:43Z128441001132934146522008-05-11T17:24:12ZSpace BetweenAFECFC834683A4D7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/03%20The%20Space%20Between.m4a411311Dreams of our FathersDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file45677022817721141220012007-02-05T11:37:33Z2005-09-03T10:46:03Z128441001132934149342008-05-11T17:28:54ZAFECFC834683A4D8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/04%20Dreams%20of%20our%20Fathers.m4a-1-11312So RightDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file45404492813541151220012007-02-05T11:37:35Z2005-09-03T10:46:26Z128441001132934152152008-05-11T17:33:35ZAFECFC834683A4D9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/05%20So%20Right.m4a-1-11313If I Had It AllDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file39332322430651161220012007-02-05T11:37:36Z2005-09-03T10:46:47Z128441001132934154582008-05-11T17:37:38ZAFECFC834683A4DAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/06%20If%20I%20Had%20It%20All.m4a411314What You AreDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file44266402730651171220012007-02-05T11:37:38Z2005-09-03T10:47:04Z128441001032934157312008-05-11T17:42:11ZAFECFC834683A4DBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/07%20What%20You%20Are.m4a-1-11315AngelDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file38446252368651181220012007-02-05T11:37:39Z2005-09-03T10:47:22Z128441001032934159682008-05-11T17:46:08ZAFECFC834683A4DCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/08%20Angel.m4a411316Fool To ThinkDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file40977982540941191220012007-02-05T11:37:40Z2005-09-03T10:47:36Z128441001032934162222008-05-11T17:50:22ZAFECFC834683A4DDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/09%20Fool%20To%20Think.m4a-1-11317Sleep To Dream HerDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file428836626554111101220012007-02-05T11:37:42Z2005-09-03T10:47:52Z12844100932934164882008-05-11T17:54:48ZAFECFC834683A4DEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/10%20Sleep%20To%20Dream%20Her.m4a-1-11318Mother FatherDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file427071326484511111220012007-02-05T11:37:44Z2005-09-03T10:48:07Z12844100932934167532008-05-11T17:59:13ZAFECFC834683A4DFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/11%20Mother%20Father.m4a411319EverydayDave Matthews BandD.J.Matthews and G. BallardEverydayRockAAC audio file460147028393211121220012007-02-05T11:37:45Z2005-09-03T10:48:22Z12844100932934170372008-05-11T18:03:57ZAFECFC834683A4E0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dave%20Matthews%20Band/Everyday/12%20Everyday.m4a411320Swan Lake - AdantePeter Ilyich TchaikovskyTchaikovskyNight Music 2ClassicalAAC audio file65103204049772311319892007-02-05T11:32:35Z2005-09-03T10:49:18Z128441003432928824182008-05-05T13:33:38ZAFECFC834683A4F0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-01%20Swan%20Lake%20-%20Adante.m4a411321Piano Sonata K. 332 - AdagioWolfgang Amadeus MozartMozartNight Music 2ClassicalAAC audio file51712403229882321319892007-02-05T11:32:37Z2005-09-03T10:49:55Z128441002832928827412008-05-05T13:39:01ZAFECFC834683A4F1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-02%20Piano%20Sonata%20K.%20332%20-%20Adagio.m4a411322Four Seasons - Spring/LargoAntonio VivaldiVivaldiNight Music 2ClassicalAAC audio file25744021619802331319892007-02-05T11:32:38Z2005-09-03T10:50:20Z128441002132928829032008-05-05T13:41:43ZAFECFC834683A4F2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-03%20Four%20Seasons%20-%20Spring_Largo.m4a411323Symphony No. 96 - AdanteFranz Joseph HaydnHaydnNight Music 2ClassicalAAC audio file49382563079882341319892007-02-05T11:32:40Z2005-09-03T10:50:31Z128441002332928832112008-05-05T13:46:51ZAFECFC834683A4F3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-04%20Symphony%20No.%2096%20-%20Adante.m4a411324Piano Concerto No. 4 - AdanteLudwig van BeethovenBeethovenNight Music 2ClassicalAAC audio file54620963399852351319892007-02-05T11:32:42Z2005-09-03T10:50:53Z128441002332928835512008-05-05T13:52:31ZAFECFC834683A4F4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-05%20Piano%20Concerto%20No.%204%20-%20Adante.m4a411325VocaliseSergei RachmaninovRachmaninovNight Music 2ClassicalAAC audio file69678574329812361319892007-02-05T11:32:44Z2005-09-03T10:51:14Z128441004532928839842008-05-05T13:59:44ZAFECFC834683A4F5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-06%20Vocalise.m4a411326Peer Gynt Suite - Solveig's SongEdvard GriegGriegNight Music 2ClassicalAAC audio file44366672769892371319892007-02-05T11:32:46Z2005-09-03T10:51:40Z128441002532928842612008-05-05T14:04:21ZAFECFC834683A4F6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-07%20Peer%20Gynt%20Suite%20-%20Solveig's%20Song.m4a411327Water Music - AdagioGeorge Frideric HandelHandellNight Music 2ClassicalAAC audio file29741081859902381319892007-02-05T11:32:47Z2005-09-03T10:51:56Z128441002332928844472008-05-05T14:07:27ZAFECFC834683A4F7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-08%20Water%20Music%20-%20Adagio.m4a411328String Quartet Op. 10 - AdantinoClaude DebussyDebussyNight Music 2ClassicalAAC audio file77028654789792391319892007-02-05T11:32:50Z2005-09-03T10:52:06Z128441002032928849262008-05-05T14:15:26ZAFECFC834683A4F8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-09%20String%20Quartet%20Op.%2010%20-%20Adantino.m4a411329Flute and Harp Concerto - AdantinoWolfgang Amadeus MozartMozartNight Music 2ClassicalAAC audio file731016245499323101319892007-02-05T11:32:52Z2005-09-03T10:52:30Z128441002832928853812008-05-05T14:23:01ZAFECFC834683A4F9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-10%20Flute%20and%20Harp%20Concerto%20-%20Adantino.m4a411330Concerto Grosso Op. 6, No. 4 - LargoGeorge Frideric HandelHandellNight Music 2ClassicalAAC audio file251154515599023111319892007-02-05T11:32:53Z2005-09-03T10:52:53Z128441002532928855372008-05-05T14:25:37ZAFECFC834683A4FAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-11%20Concerto%20Grosso%20Op.%206,%20No.%204%20-%20Largo.m4a-1-11331Moment MusicalFranz SchubertShubertNight Music 2ClassicalAAC audio file556526534699723121319892007-02-05T11:32:55Z2005-09-03T10:53:00Z128441002332928858842008-05-05T14:31:24ZAFECFC834683A4FBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-12%20Moment%20Musical.m4a411332A Midsummer Night's Dream - NotturnoFelix MendelssohnMendelssohnNight Music 2ClassicalAAC audio file624442438598323131319892007-02-05T11:32:57Z2005-09-03T10:53:17Z128441002432928862702008-05-05T14:37:50ZMidsummer Night's Dream - NotturnoAFECFC834683A4FCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Night%20Music%202/2-13%20A%20Midsummer%20Night's%20Dream%20-%20Notturno.m4a411333Frederic ChopinKlavierkonzert Nr. 1 e-moll Op. 11 - 1 - Allegro maestosoChopin & FranckClassicalAAC audio file193608771199820142007-02-05T11:42:13Z2005-09-03T10:58:37Z128441001432938051602008-05-16T05:52:40ZAFECFC834683A503Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Klavierkonzert%20Nr.%201%20e-moll%20Op.%2011%20-%201%20-%20Allegro%20maestoso/Chopin%20&%20Franck/01%20Frederic%20Chopin.m4a411334Frederic ChopinKlavierkonzert Nr. 1 e-moll Op. 11 - 2 - Romanze LarghettoChopin & FranckClassicalAAC audio file10084862624499242007-02-05T11:42:17Z2005-09-03T11:00:17Z128441001632938057842008-05-16T06:03:04ZAFECFC834683A504Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Klavierkonzert%20Nr.%201%20e-moll%20Op.%2011%20-%202%20-%20Romanze%20Larghetto/Chopin%20&%20Franck/02%20Frederic%20Chopin.m4a411335Frederic ChopinKlavierkonzert Nr. 1 e-moll Op. 11 - 3 - Rondo VivaceChopin & FranckClassicalAAC audio file9294278580822342007-02-05T11:42:20Z2005-09-03T11:00:57Z128441001432938063652008-05-16T06:12:45ZAFECFC834683A505Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Klavierkonzert%20Nr.%201%20e-moll%20Op.%2011%20-%203%20-%20Rondo%20Vivace/Chopin%20&%20Franck/03%20Frederic%20Chopin.m4a411336Cesar FranckSymphonische Variationen fuer Klavier und OrchesterChopin & FranckClassicalAAC audio file14637675904392442007-02-05T11:52:07Z2005-09-03T11:01:30Z128441004032947733422008-05-27T10:49:02ZAFECFC834683A506Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Symphonische%20Variationen%20fuer%20Klavier%20und%20Orchester/Chopin%20&%20Franck/04%20Cesar%20Franck.m4a411337Almost BlueGwen StefaniElvis CostelloStormy WeatherJazzAAC audio file29676711821121111019982007-02-05T11:33:29Z2005-09-03T11:05:46Z128441002132928890892008-05-05T15:24:49ZAFECFC834683A513Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/01%20Almost%20Blue.m4a411338You've ChangedPaula ColeBill Carey/Carl FisherStormy WeatherJazzAAC audio file53039463272141121019982007-02-05T11:33:31Z2005-09-03T11:06:04Z128441003032928894162008-05-05T15:30:16ZAFECFC834683A514Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/02%20You've%20Changed.m4a411339But BeautifulShawn ColvinJames Van Heusen/Johnny BurkeStormy WeatherJazzAAC audio file43870102706501131019982007-02-05T11:33:33Z2005-09-03T11:06:32Z128441004332928896872008-05-05T15:34:47ZAFECFC834683A515Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/03%20But%20Beautiful.m4a411340Good GuyTrisha YearwoodJude JohnstoneStormy WeatherJazzAAC audio file41982692589701141019982007-02-05T11:33:34Z2005-09-03T11:06:53Z128441003332928899462008-05-05T15:39:06ZAFECFC834683A516Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/04%20Good%20Guy.m4a411341Is That All There Is?Sandra BernhardJerry Leiber/Mike StollerStormy WeatherJazzAAC audio file43759542699531151019982007-02-05T11:33:36Z2005-09-03T11:07:12Z128441003932928902162008-05-05T15:43:36ZAFECFC834683A517Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/05%20Is%20That%20All%20There%20Is_.m4a411342Good Morning HeartacheSheryl CrowDan Fisher/Ervin M. Drake/Irene HigginbothamStormy WeatherJazzAAC audio file51581673182971161019982007-02-05T11:33:37Z2005-09-03T11:07:30Z128441004432928905342008-05-05T15:48:54ZAFECFC834683A518Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/06%20Good%20Morning%20Heartache.m4a411343They Can't Take That Away From MeNatalie ColeGeorge and Ira GershwinStormy WeatherJazzAAC audio file32140851974841171019982007-02-05T11:33:39Z2005-09-03T11:07:50Z128441002232928907312008-05-05T15:52:11ZAFECFC834683A519Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/07%20They%20Can't%20Take%20That%20Away%20From%20Me.m4a411344At LastStevie NicksHarry Warren/Mack GordonStormy WeatherJazzAAC audio file40179062477321181019982007-02-05T11:33:40Z2005-09-03T11:08:02Z128441004132928909792008-05-05T15:56:19ZAFECFC834683A51AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/08%20At%20Last.m4a411345Gloomy SundayBjörkLazslo Javor/Reszo Seres/Samuel M. LewisStormy WeatherJazzAAC audio file53979393330881191019982007-02-05T11:33:42Z2005-09-03T11:08:16Z128441001732928913122008-05-05T16:01:52ZAFECFC834683A51BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/09%20Gloomy%20Sunday.m4a411346Stormy WeatherJoni MitchellHarold Arlen/Ted KoehlerStormy WeatherJazzAAC audio file362364522307211101019982007-02-05T11:33:43Z2005-09-03T11:08:35Z128441002032928915352008-05-05T16:05:35ZAFECFC834683A51CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Stormy%20Weather/10%20Stormy%20Weather.m4a411347Brown Eyed GirlVan MorrisonBrown Eyed GirlRockAAC audio file29917611853861102007-02-05T11:56:14Z2005-09-03T11:09:20Z128441002432947937702008-05-27T16:29:30ZAFECFC834683A529Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/01%20Brown%20Eyed%20Girl.m4a411348Send Your MindVan MorrisonBrown Eyed GirlRockAAC audio file27774711724992102007-02-05T11:56:15Z2005-09-03T11:09:38Z128441002432947939432008-05-27T16:32:23ZAFECFC834683A52AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/02%20Send%20Your%20Mind.m4a411349The Back RoomVan MorrisonBrown Eyed GirlRockAAC audio file53486793310453102007-02-05T11:56:17Z2005-09-03T11:09:52Z128441002432947942742008-05-27T16:37:54ZBack RoomAFECFC834683A52BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/03%20The%20Back%20Room.m4a-1-11350Joe Harper Saturday MorningVan MorrisonBrown Eyed GirlRockAAC audio file41405362577164102007-02-05T11:56:18Z2005-09-03T11:10:18Z128441002432947945312008-05-27T16:42:11ZAFECFC834683A52CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/04%20Joe%20Harper%20Saturday%20Morning.m4a411351Madame GeorgeVan MorrisonBrown Eyed GirlRockAAC audio file51438573180195102007-02-05T11:56:20Z2005-09-03T11:10:37Z128441002432947948492008-05-27T16:47:29ZAFECFC834683A52DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/05%20Madame%20George.m4a411352Ro Ro RoseyVan MorrisonBrown Eyed GirlRockAAC audio file29843781852246102007-02-05T11:56:21Z2005-09-03T11:10:58Z128441002532947950352008-05-27T16:50:35ZAFECFC834683A52EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/06%20Ro%20Ro%20Rosey.m4a411353Goodbye Baby (Baby Goodbye)Van MorrisonBrown Eyed GirlRockAAC audio file28930991798137102007-02-05T11:56:22Z2005-09-03T11:11:09Z128441002432947952142008-05-27T16:53:34ZAFECFC834683A52FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/07%20Goodbye%20Baby%20(Baby%20Goodbye).m4a411354He Ain't Give You NoneVan MorrisonBrown Eyed GirlRockAAC audio file48956153034838102007-02-05T11:56:24Z2005-09-03T11:11:21Z128441002332947955182008-05-27T16:58:38ZAFECFC834683A530Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/08%20He%20Ain't%20Give%20You%20None.m4a411355Spanish RoseVan MorrisonBrown Eyed GirlRockAAC audio file37594422335449102007-02-05T11:56:25Z2005-09-03T11:11:38Z128441002332947957522008-05-27T17:02:32ZAFECFC834683A531Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/09%20Spanish%20Rose.m4a411356Who Drove The Red Sports CarVan MorrisonBrown Eyed GirlRockAAC audio file516855831894710102007-02-05T11:56:27Z2005-09-03T11:11:51Z128441002532947960702008-05-27T17:07:50ZAFECFC834683A532Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison/Brown%20Eyed%20Girl/10%20Who%20Drove%20The%20Red%20Sports%20Car.m4a411357Wuthering HeightsKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file48330402981421111219862007-02-05T11:41:51Z2005-09-03T11:12:43Z128441001732938013232008-05-16T04:48:43ZWhole StoryAFECFC834683A541Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/01%20Wuthering%20Heights.m4a411358CloudbustingKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file50108843091251121219852007-02-05T11:41:53Z2005-09-03T11:13:21Z128441001732938016332008-05-16T04:53:53ZWhole StoryAFECFC834683A542Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/02%20Cloudbusting.m4a-1-11359The Man With The Child In His EyesKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file26119401598911131219782007-02-05T11:41:54Z2005-09-03T11:13:48Z128441001932938017922008-05-16T04:56:32ZWhole StoryMan With The Child In His EyesAFECFC834683A543Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/03%20The%20Man%20With%20The%20Child%20In%20His%20Eyes.m4a411360BreathingKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file53264813286071141219802007-02-05T11:41:56Z2005-09-03T11:14:02Z128441001832938021212008-05-16T05:02:01ZWhole StoryAFECFC834683A544Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/04%20Breathing.m4a411361WowKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file36813492266481151219782007-02-05T11:41:57Z2005-09-03T11:14:27Z128441001832938023482008-05-16T05:05:48ZWhole StoryAFECFC834683A545Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/05%20Wow.m4a411362Hounds Of LoveKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file29802561829021161219852007-02-05T11:41:58Z2005-09-03T11:14:44Z128441001832938025302008-05-16T05:08:50ZWhole StoryAFECFC834683A546Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/06%20Hounds%20Of%20Love.m4a411363Running Up That HillKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file48567742996051171219852007-02-05T11:42:00Z2005-09-03T11:14:56Z128441001732938028302008-05-16T05:13:50ZWhole StoryAFECFC834683A547Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/07%20Running%20Up%20That%20Hill.m4a411364Army DreamersKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file31538351937221181219802007-02-05T11:42:01Z2005-09-03T11:15:16Z128441001732938030242008-05-16T05:17:04ZWhole StoryAFECFC834683A548Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/08%20Army%20Dreamers.m4a411365Sat In Your LapKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file34006432091171191219812007-02-05T11:42:02Z2005-09-03T11:15:38Z128441001832938032332008-05-16T05:20:33ZWhole StoryAFECFC834683A549Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/09%20Sat%20In%20Your%20Lap.m4a-1-11366Experiment IVKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file425366226238411101219862007-02-05T11:42:04Z2005-09-03T11:15:51Z128441001832938034952008-05-16T05:24:55ZWhole StoryAFECFC834683A54AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/10%20Experiment%20IV.m4a411367The DreamingKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file413173725476711111219822007-02-05T11:42:05Z2005-09-03T11:16:06Z128441001832938037502008-05-16T05:29:10ZWhole StoryDreamingAFECFC834683A54BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/11%20The%20Dreaming.m4a411368BabooshkaKate BushKate BushThe Whole StoryAlternative & PunkAAC audio file341056620979011121219802007-02-05T11:42:06Z2005-09-03T11:16:21Z128441001932938039602008-05-16T05:32:40ZWhole StoryAFECFC834683A54CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Kate%20Bush/The%20Whole%20Story/12%20Babooshka.m4a-1-11369It Takes A Worried Man (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie DoneganThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file35713292199841111520002007-02-05T11:58:30Z2005-09-03T11:17:02Z128441002432916888892008-04-21T18:01:29ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A55EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/01%20It%20Takes%20A%20Worried%20Man%20(Live).m4a411370Lost John (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie Donegan/Van MorrisonThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file34657652131571121520002007-02-05T11:58:31Z2005-09-03T11:17:25Z128441002532928445122008-05-05T03:01:52ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A55FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/02%20Lost%20John%20(Live).m4a411371Goin' Home (Live)Van Morrison, Lonnie Donegan & Chris BarberAntonin Dvorak arr. Ken ColyerThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file30656271881031131520002007-02-05T11:58:32Z2005-09-03T11:17:45Z128441002732928447002008-05-05T03:05:00ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A560Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/03%20Goin'%20Home%20(Live).m4a411372Good Morning Blues (Live)Van Morrison, Lonnie Donegan & Chris BarberHuddie LedbetterThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file28097381721281141520002007-02-05T11:58:33Z2005-09-03T11:18:00Z128441002732928448722008-05-05T03:07:52ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A561Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/04%20Good%20Morning%20Blues%20(Live).m4a411373Outskirts Of Town (Live)Van Morrison, Lonnie Donegan & Chris BarberWilliam Weldon/Andy RazafThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file42296102607811151520002007-02-05T11:58:35Z2005-09-03T11:18:13Z128441002832928451322008-05-05T03:12:12ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A562Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/05%20Outskirts%20Of%20Town%20(Live).m4a411374Don't You Rock Me Daddy-O (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie Donegan/Van MorrisonThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file18450001119181161520002007-02-05T11:58:36Z2005-09-03T11:18:33Z128441002832928452442008-05-05T03:14:04ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A563Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/06%20Don't%20You%20Rock%20Me%20Daddy-O%20(Live).m4a411375Alabamy Bound (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie DoneganThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file23353001425221171520002007-02-05T11:58:37Z2005-09-03T11:18:41Z128441002932928453872008-05-05T03:16:27ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A564Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/07%20Alabamy%20Bound%20(Live).m4a-1-11376Midnight Special (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie Donegan/Van MorrisonThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file28356351737531181520002007-02-05T11:58:38Z2005-09-03T11:18:51Z128441002932928455612008-05-05T03:19:21ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A565Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/08%20Midnight%20Special%20(Live).m4a411377Dead Or Alive (Live)Van Morrison, Lonnie Donegan & Chris BarberWoodie Guthrie arr. Lonnie DoneganThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file25137241536441191520002007-02-05T11:58:38Z2005-09-03T11:19:03Z128441002932928457142008-05-05T03:21:54ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A566Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/09%20Dead%20Or%20Alive%20(Live).m4a411378Frankie And Johnny (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie DoneganThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file439542127104511101520002007-02-05T11:58:40Z2005-09-03T11:19:13Z128441002932928459852008-05-05T03:26:25ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A567Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/10%20Frankie%20And%20Johnny%20(Live).m4a411379Goodnight Irene (Live)Van Morrison, Lonnie Donegan & Chris BarberHuddie Ledbetter/John LomaxThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file271666216632311111520002007-02-05T11:58:41Z2005-09-03T11:19:29Z128441002932928461522008-05-05T03:29:12ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A568Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/11%20Goodnight%20Irene%20(Live).m4a411380Railroad Bill (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie Donegan/Chris BarberThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file193279211739811121520002007-02-05T11:58:42Z2005-09-03T11:19:40Z128441003032928462692008-05-05T03:31:09ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A569Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/12%20Railroad%20Bill%20(Live).m4a411381Muleskinner Blues (Live)Van Morrison, Lonnie Donegan & Chris BarberJimmy Rodgers/George VaughanThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file303628518629211131520002007-02-05T11:58:43Z2005-09-03T11:19:46Z128441002932928464552008-05-05T03:34:15ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A56AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/13%20Muleskinner%20Blues%20(Live).m4a411382The Ballad Of Jesse James (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Chris BarberThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file306160418787111141520002007-02-05T11:58:44Z2005-09-03T11:19:57Z128441002932928466432008-05-05T03:37:23ZSkiffle Sessions: Live In Belfast 1998Ballad Of Jesse James (Live)AFECFC834683A56BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/14%20The%20Ballad%20Of%20Jesse%20James%20(Live).m4a411383I Wanna Go Home (Live)Van Morrison, Lonnie Donegan & Chris BarberTrad. arr. Lonnie Donegan/Van MorrisonThe Skiffle Sessions: Live In Belfast 1998FolkAAC audio file365380522695011151520002007-02-05T11:58:45Z2005-09-03T11:20:07Z128441002832928468702008-05-05T03:41:10ZSkiffle Sessions: Live In Belfast 1998AFECFC834683A56CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Van%20Morrison,%20Lonnie%20Donegan%20&%20Chris%20Barber/The%20Skiffle%20Sessions_%20Live%20In%20Belfast%201998/15%20I%20Wanna%20Go%20Home%20(Live).m4a-1-11384Still BelievingMary BlackThom MooreBabes in the WoodWorldAAC audio file36336762236761111219912007-02-05T11:42:25Z2005-09-03T11:21:27Z128441001332938105312008-05-16T07:22:11ZAFECFC834683A57BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/01%20Still%20Believing.m4a411385Bright Blue RoseMary BlackJimmy MacCarthyBabes in the WoodWorldAAC audio file39553472437611121219912007-02-05T11:42:26Z2005-09-03T11:21:51Z128441001432938107752008-05-16T07:26:15ZAFECFC834683A57CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/02%20Bright%20Blue%20Rose.m4a411386Golden MileMary BlackNoel BrazilBabes in the WoodWorldAAC audio file41566412565551131219912007-02-05T11:42:28Z2005-09-03T11:22:14Z128441001332938110312008-05-16T07:30:31ZAFECFC834683A57DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/03%20Golden%20Mile.m4a411387Babes in the WoodMary BlackNoel BrazilBabes in the WoodWorldAAC audio file41278002545121141219912007-02-05T11:42:29Z2005-09-03T11:22:36Z128441001332938112862008-05-16T07:34:46ZAFECFC834683A57EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/04%20Babes%20in%20the%20Wood.m4a411388Thorn Upon The RoseMary BlackJulie MathewsBabes in the WoodWorldAAC audio file46425682863931151219912007-02-05T11:42:31Z2005-09-03T11:22:56Z128441001432947590082008-05-27T06:50:08ZAFECFC834683A57FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/05%20Thorn%20Upon%20The%20Rose.m4a411389Brand New StarMary BlackKieron GossBabes in the WoodWorldAAC audio file25201031541551161219912007-02-05T11:42:32Z2005-09-03T11:23:17Z128441001432947591622008-05-27T06:52:42ZAFECFC834683A580Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/06%20Brand%20New%20Star.m4a411390Prayer For Love (Molenie O Lyubvi)Mary BlackThom MooreBabes in the WoodWorldAAC audio file44442942741561171219912007-02-05T11:42:33Z2005-09-03T11:23:28Z128441001332947594362008-05-27T06:57:16ZAFECFC834683A581Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/07%20Prayer%20For%20Love%20(Molenie%20O%20Lyubvi).m4a411391Adam at the WindowMary BlackJimmy MacCarthyBabes in the WoodWorldAAC audio file41779182576471181219912007-02-05T11:42:35Z2005-09-03T11:23:46Z128441001432947596942008-05-27T07:01:34ZAFECFC834683A582Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/08%20Adam%20at%20the%20Window.m4a411392The Dimming of the DayMary BlackRichard ThompsonBabes in the WoodWorldAAC audio file36147222224921191219912007-02-05T11:42:36Z2005-09-03T11:24:03Z128441001632947599162008-05-27T07:05:16ZDimming of the DayAFECFC834683A583Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/09%20The%20Dimming%20of%20the%20Day.m4a411393Might As Well Be A SlaveMary BlackNoel BrazilBabes in the WoodWorldAAC audio file306582518821911101219912007-02-05T11:42:37Z2005-09-03T11:24:17Z128441001532947601042008-05-27T07:08:24ZAFECFC834683A584Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/10%20Might%20As%20Well%20Be%20A%20Slave.m4a411394Just Around The CornerMary BlackKieron GossBabes in the WoodWorldAAC audio file396623724443511111219912007-02-05T11:42:38Z2005-09-03T11:24:28Z128441001732947603492008-05-27T07:12:29ZAFECFC834683A585Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/11%20Just%20Around%20The%20Corner.m4a411395The Urge For GoingMary BlackJoni MitchellBabes in the WoodWorldAAC audio file525800832584411121219912007-02-05T11:42:40Z2005-09-03T11:24:42Z128441001532947606752008-05-27T07:17:55ZUrge For GoingAFECFC834683A586Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Babes%20in%20the%20Wood/12%20The%20Urge%20For%20Going.m4a-1-11396Boléro - Tempo di boléro moderato assaiRavelBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file13371460830715182007-02-05T11:49:42Z2005-09-03T11:25:27Z128441003932919590002008-04-24T21:03:20ZAFECFC834683A591Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ravel/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/01%20Bole%CC%81ro%20-%20Tempo%20di%20bole%CC%81ro%20moderato%20assai.m4a411397Rhapsodie Espagnole - Prélude à la nuit (Très modéré)RavelBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file4122254254326282007-02-05T11:49:44Z2005-09-03T11:26:44Z128441003832919592542008-04-24T21:07:34ZAFECFC834683A592Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ravel/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/02%20Rhapsodie%20Espagnole%20-%20Pre%CC%81lude%20a%CC%80%20la%20nuit%20(Tre%CC%80s%20mode%CC%81re%CC%81).m4a411398Rhapsodie Espagnole - Malaguêna (Assez vif)RavelBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file2224778135719382007-02-05T11:49:45Z2005-09-03T11:27:04Z128441003832919593902008-04-24T21:09:50ZAFECFC834683A593Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ravel/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/03%20Rhapsodie%20Espagnole%20-%20Malague%CC%82na%20(Assez%20vif).m4a411399Rhapsodie Espagnole - Habanera (Assez lent et d'un rythme las)RavelBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file2513104153714482007-02-05T11:49:46Z2005-09-03T11:27:25Z128441003832919595442008-04-24T21:12:24ZAFECFC834683A594Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ravel/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/04%20Rhapsodie%20Espagnole%20-%20Habanera%20(Assez%20lent%20et%20d'un%20rythme%20las).m4a411400Rhapsodie Espagnole - Feria (Assez animé)RavelBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file6026671375418582007-02-05T11:49:48Z2005-09-03T11:27:41Z128441003832919599192008-04-24T21:18:39ZAFECFC834683A595Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ravel/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/05%20Rhapsodie%20Espagnole%20-%20Feria%20(Assez%20anime%CC%81).m4a411401Iberia - Par les rues et par les cheminsDebussyBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file7411367457594682007-02-05T11:38:29Z2005-09-03T11:28:07Z128441001132919603772008-04-24T21:26:17ZAFECFC834683A596Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Debussy/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/06%20Iberia%20-%20Par%20les%20rues%20et%20par%20les%20chemins.m4a411402Iberia - Les parfums de la nuitDebussyBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file7926147489080782007-02-05T11:38:31Z2005-09-03T11:28:34Z128441001032919608662008-04-24T21:34:26ZAFECFC834683A597Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Debussy/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/07%20Iberia%20-%20Les%20parfums%20de%20la%20nuit.m4a411403Iberia - Le martin d'un jour de fêteDebussyBoléro - Rhapsodie Espagnole - IberiaClassicalAAC audio file4186768259899882007-02-05T11:38:33Z2005-09-03T11:29:02Z128441001032919611262008-04-24T21:38:46ZAFECFC834683A598Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Debussy/Bole%CC%81ro%20-%20Rhapsodie%20Espagnole%20-%20Iberia/08%20Iberia%20-%20Le%20martin%20d'un%20jour%20de%20fe%CC%82te.m4a411404NexusDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file5898592363924121819812007-02-05T11:35:52Z2005-09-03T11:32:01Z128441002132933938292008-05-11T11:37:09ZInnocent AgeAFECFC834683A5A3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-01%20Nexus.m4a411405The Innocent AgeDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file4193424258622122819812007-02-05T11:35:54Z2005-09-03T11:32:35Z128441002032933940882008-05-11T11:41:28ZInnocent AgeInnocent AgeAFECFC834683A5A4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-02%20The%20Innocent%20Age.m4a411406The Sand and the FoamDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file4234855261199123819812007-02-05T11:35:55Z2005-09-03T11:32:56Z128441002032933943492008-05-11T11:45:49ZInnocent AgeSand and the FoamAFECFC834683A5A5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-03%20The%20Sand%20and%20the%20Foam.m4a411407In The PassageDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file6291855389188124819812007-02-05T11:35:57Z2005-09-03T11:33:15Z128441002132933947382008-05-11T11:52:18ZInnocent AgeAFECFC834683A5A6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-04%20In%20The%20Passage.m4a411408Lost In The SunDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file3845773236911125819812007-02-05T11:35:59Z2005-09-03T11:33:42Z128441001932933949752008-05-11T11:56:15ZInnocent AgeAFECFC834683A5A7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-05%20Lost%20In%20The%20Sun.m4a411409Run For The RosesDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file4220717260317126819812007-02-05T11:36:01Z2005-09-03T11:33:57Z128441002032933952352008-05-11T12:00:35ZInnocent AgeAFECFC834683A5A8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-06%20Run%20For%20The%20Roses.m4a411410Leader of the BandDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file4678215288599127819812007-02-05T11:36:02Z2005-09-03T11:34:13Z128441001932933955242008-05-11T12:05:24ZInnocent AgeAFECFC834683A5A9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-07%20Leader%20of%20the%20Band.m4a411411Same Old Lang SyneDan FogelbergDan FogelbergThe Innocent AgeRockAAC audio file5183780319830128819812007-02-05T11:36:04Z2005-09-03T11:34:30Z128441001932933958442008-05-11T12:10:44ZInnocent AgeAFECFC834683A5AAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Dan%20Fogelberg/The%20Innocent%20Age/1-08%20Same%20Old%20Lang%20Syne.m4a411412GangstersSpecial AKAThe Singles CollectionRockAAC audio file27536301687371111519912007-02-05T11:51:13Z2005-09-03T11:35:19Z128441005332918332682008-04-23T10:07:48Z12008-04-25T07:51:31ZSingles CollectionAFECFC834683A5BCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Special%20AKA/The%20Singles%20Collection/01%20Gangsters.m4a411413Rudi, A Message To YouThe Specials Featuring RicoThe Singles CollectionRockAAC audio file28262001732651121519912007-02-05T11:52:50Z2005-09-03T11:35:37Z128441006132947639542008-05-27T08:12:34ZSingles CollectionSpecials Featuring RicoAFECFC834683A5BDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials%20Featuring%20Rico/The%20Singles%20Collection/02%20Rudi,%20A%20Message%20To%20You.m4a411414Nite ClubThe Specials Featuring RicoThe Singles CollectionRockAAC audio file31194121915631131519912007-02-05T11:52:52Z2005-09-03T11:35:54Z128441006032947641452008-05-27T08:15:45ZSingles CollectionSpecials Featuring RicoAFECFC834683A5BEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials%20Featuring%20Rico/The%20Singles%20Collection/03%20Nite%20Club.m4a-1-11415Too Much Too Young (Live)Special AKAThe Singles CollectionRockAAC audio file20584001252701141519912007-02-05T11:51:14Z2005-09-03T11:36:11Z128441005732947618932008-05-27T07:38:13ZSingles CollectionAFECFC834683A5BFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Special%20AKA/The%20Singles%20Collection/04%20Too%20Much%20Too%20Young%20(Live).m4a411416Guns Of Navarone (Live)Special AKAThe Singles CollectionRockAAC audio file22948451400611151519912007-02-05T11:51:14Z2005-09-03T11:36:22Z128441005732947620332008-05-27T07:40:33Z12008-04-25T07:52:21ZSingles CollectionAFECFC834683A5C0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Special%20AKA/The%20Singles%20Collection/05%20Guns%20Of%20Navarone%20(Live).m4a411417Rat RaceThe SpecialsThe Singles CollectionRockAAC audio file31196931915861161519912007-02-05T11:52:43Z2005-09-03T11:36:33Z128441006232947627282008-05-27T07:52:08ZSingles CollectionSpecialsAFECFC834683A5C1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/06%20Rat%20Race.m4a411418Rude Boys Outta JailThe SpecialsThe Singles CollectionRockAAC audio file26317261611211171519912007-02-05T11:52:44Z2005-09-03T11:36:47Z128441006232947628892008-05-27T07:54:49ZSingles CollectionSpecialsAFECFC834683A5C2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/07%20Rude%20Boys%20Outta%20Jail.m4a-1-11419Maggie's FarmThe SpecialsThe Singles CollectionRockAAC audio file34518112123211181519912007-02-05T11:52:46Z2005-09-03T11:36:59Z128441006232947631012008-05-27T07:58:21ZSingles CollectionSpecialsAFECFC834683A5C3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/08%20Maggie's%20Farm.m4a411420Do NothingThe Specials Featuring RicoThe Singles CollectionRockAAC audio file37709692325231191519912007-02-05T11:52:53Z2005-09-03T11:37:14Z128441006032947643782008-05-27T08:19:38ZSingles CollectionSpecials Featuring RicoAFECFC834683A5C4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials%20Featuring%20Rico/The%20Singles%20Collection/09%20Do%20Nothing.m4a411421StereotypeThe SpecialsThe Singles CollectionRockAAC audio file373603823006111101519912007-02-05T11:52:47Z2005-09-03T11:37:30Z128441006132947633312008-05-27T08:02:11ZSingles CollectionSpecialsAFECFC834683A5C5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/10%20Stereotype.m4a411422Ghost Town (12" Vers.)The Specials Featuring RicoThe Singles CollectionRockAAC audio file579890235779411111519912007-02-05T11:52:55Z2005-09-03T11:37:45Z128441005732947647352008-05-27T08:25:35ZSingles CollectionSpecials Featuring RicoAFECFC834683A5C6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials%20Featuring%20Rico/The%20Singles%20Collection/11%20Ghost%20Town%20(12_%20Vers.).m4a411423Why?The SpecialsThe Singles CollectionRockAAC audio file380606023445011121519912007-02-05T11:52:48Z2005-09-03T11:38:06Z128441006032947635662008-05-27T08:06:06ZSingles CollectionSpecialsAFECFC834683A5C7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/12%20Why_.m4a-1-11424Friday Night, Saturday MorningThe SpecialsThe Singles CollectionRockAAC audio file346608321452711131519912007-02-05T11:52:49Z2005-09-03T11:38:20Z128441006132947637802008-05-27T08:09:40ZSingles CollectionSpecialsAFECFC834683A5C8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20Specials/The%20Singles%20Collection/13%20Friday%20Night,%20Saturday%20Morning.m4a411425Racist FriendSpecial AKAThe Singles CollectionRockAAC audio file371535422878411141519912007-02-05T11:51:16Z2005-09-03T11:38:32Z128441005832947622622008-05-27T07:44:22Z12008-04-25T07:52:23ZSingles CollectionAFECFC834683A5C9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Special%20AKA/The%20Singles%20Collection/14%20Racist%20Friend.m4a411426Free Nelson MandelaSpecial AKAThe Singles CollectionRockAAC audio file444191727436511151519912007-02-05T11:51:17Z2005-09-03T11:38:45Z128441006232947625362008-05-27T07:48:56ZSingles CollectionAFECFC834683A5CAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Special%20AKA/The%20Singles%20Collection/15%20Free%20Nelson%20Mandela.m4a-1-11427Typical Situation (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file68467324223462211119992007-02-05T11:31:56Z2005-09-03T11:39:29Z128441001132934029822008-05-11T14:09:42ZAFECFC834683A5D8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-01%20Typical%20Situation%20(Live).m4a-1-11428Stream (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file56680693495982221119992007-02-05T11:31:58Z2005-09-03T11:40:08Z128441001132934033312008-05-11T14:15:31ZAFECFC834683A5D9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-02%20Stream%20(Live).m4a411429Warehouse (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file90281185570222231119992007-02-05T11:32:01Z2005-09-03T11:40:35Z128441001132934038882008-05-11T14:24:48ZAFECFC834683A5DAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-03%20Warehouse%20(Live).m4a411430Christmas Song (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file52628393245902241119992007-02-05T11:32:03Z2005-09-03T11:41:13Z128441001232934042132008-05-11T14:30:13ZAFECFC834683A5DBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-04%20Christmas%20Song%20(Live).m4a411431Seek Up (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file75097634632832251119992007-02-05T11:32:06Z2005-09-03T11:41:33Z128441001232934046762008-05-11T14:37:56ZAFECFC834683A5DCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-05%20Seek%20Up%20(Live).m4a411432Say Goodbye (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file51862563198532261119992007-02-05T11:32:08Z2005-09-03T11:42:00Z128441001232934049962008-05-11T14:43:16ZAFECFC834683A5DDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-06%20Say%20Goodbye%20(Live).m4a-1-11433Ants Marching (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file52940043265172271119992007-02-05T11:32:10Z2005-09-03T11:42:18Z128441001132934053222008-05-11T14:48:42ZAFECFC834683A5DEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-07%20Ants%20Marching%20(Live).m4a411434Little Thing (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file61360603784832281119992007-02-05T11:32:12Z2005-09-03T11:42:35Z128441001132934057012008-05-11T14:55:01ZAFECFC834683A5DFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-08%20Little%20Thing%20(Live).m4a411435Halloween (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file29406871803242291119992007-02-05T11:32:13Z2005-09-03T11:42:54Z128441001132934058812008-05-11T14:58:01ZAFECFC834683A5E0Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-09%20Halloween%20(Live).m4a411436Granny (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file329205420224422101119992007-02-05T11:32:14Z2005-09-03T11:43:03Z128441001132934060832008-05-11T15:01:23ZAFECFC834683A5E1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-10%20Granny%20(Live).m4a411437Two Step (Live)Dave Matthews & Tim ReynoldsDave MatthewsLive At Luther College (Disc 2)RockAAC audio file639736839480722111119992007-02-05T11:32:16Z2005-09-03T11:43:13Z128441001232934064782008-05-11T15:07:58ZAFECFC834683A5E2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Live%20At%20Luther%20College%20(Disc%202)/2-11%20Two%20Step%20(Live).m4a-1-11438The CircusMary BlackCircusWorldAAC audio file40430862516791111219962007-02-05T11:42:42Z2005-09-03T11:44:02Z128441001432938168612008-05-16T09:07:41ZCircusAFECFC834683A5F1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/01%20The%20Circus.m4a411439In A DreamMary BlackCircusWorldAAC audio file35516392204251121219962007-02-05T11:42:43Z2005-09-03T11:44:29Z128441001332938170812008-05-16T09:11:21ZAFECFC834683A5F2Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/02%20In%20A%20Dream.m4a411440The Moon and St ChristopherMary BlackCircusWorldAAC audio file38152622375151131219962007-02-05T11:42:44Z2005-09-03T11:44:50Z128441001732947579612008-05-27T06:32:41ZMoon and St ChristopherAFECFC834683A5F3Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/03%20The%20Moon%20and%20St%20Christopher.m4a411441Wonder ChildMary BlackCircusWorldAAC audio file40097212494501141219962007-02-05T11:42:46Z2005-09-03T11:45:10Z128441001532947582112008-05-27T06:36:51ZAFECFC834683A5F4Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/04%20Wonder%20Child.m4a411442All That HammeringMary BlackCircusWorldAAC audio file30030171862221151219962007-02-05T11:42:47Z2005-09-03T11:45:29Z128441001432947583972008-05-27T06:39:57ZAFECFC834683A5F5Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/05%20All%20That%20Hammering.m4a-1-11443Donegal BreezeMary BlackCircusWorldAAC audio file45503162824921161219962007-02-05T11:42:49Z2005-09-03T11:45:43Z128441001432947586792008-05-27T06:44:39ZAFECFC834683A5F6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/06%20Donegal%20Breeze.m4a411444A Stone's Throw From The SoulMary BlackCircusWorldAAC audio file31672081960211171219962007-02-05T11:42:50Z2005-09-03T11:46:03Z128441001432938182332008-05-16T09:30:33ZStone's Throw From The SoulAFECFC834683A5F7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/07%20A%20Stone's%20Throw%20From%20The%20Soul.m4a411445Free As StoneMary BlackCircusWorldAAC audio file37143242308511181219962007-02-05T11:42:51Z2005-09-03T11:46:16Z128441001232938184642008-05-16T09:34:24ZAFECFC834683A5F8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/08%20Free%20As%20Stone.m4a-1-11446RoisinMary BlackCircusWorldAAC audio file40189712501931191219962007-02-05T11:42:53Z2005-09-03T11:46:30Z128441001232938187142008-05-16T09:38:34ZAFECFC834683A5F9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/09%20Roisin.m4a411447Into the BlueMary BlackCircusWorldAAC audio file350137321752311101219962007-02-05T11:42:54Z2005-09-03T11:46:46Z128441001232938189322008-05-16T09:42:12ZAFECFC834683A5FAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/10%20Into%20the%20Blue.m4a411448GabrielMary BlackCircusWorldAAC audio file452724228156311111219962007-02-05T11:42:56Z2005-09-03T11:46:59Z128441001232938192132008-05-16T09:46:53ZAFECFC834683A5FBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/11%20Gabriel.m4a411449Raven In The StormMary BlackCircusWorldAAC audio file368782122808811121219962007-02-05T11:42:57Z2005-09-03T11:47:15Z128441001232938194412008-05-16T09:50:41ZAFECFC834683A5FCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Mary%20Black/Circus/12%20Raven%20In%20The%20Storm.m4a411450Flying Home (Take B)Ella FitzgeraldThe War YearsJazzAAC audio file2384967148118221222007-02-05T11:38:54Z2005-09-06T23:52:57Z128441001532939723142008-05-18T04:18:34ZWar YearsE080BA4AE1EAEAF6Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-01%20Flying%20Home%20(Take%20B).m4a-1-11451Stone Cold Dead In The MarketElla FitzgeraldThe War YearsJazzAAC audio file2587962160959222222007-02-05T11:38:55Z2005-09-06T23:53:12Z128441001532939724752008-05-18T04:21:15ZWar YearsE080BA4AE1EAEAF7Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-02%20Stone%20Cold%20Dead%20In%20The%20Market.m4a411452Petootie PieElla FitzgeraldThe War YearsJazzAAC audio file2544704158056223222007-02-05T11:38:56Z2005-09-06T23:53:29Z128441001532939726332008-05-18T04:23:53ZWar YearsE080BA4AE1EAEAF8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-03%20Petootie%20Pie.m4a411453You Won't Be Satisfied (Until You Break My Heart)Ella FitzgeraldThe War YearsJazzAAC audio file2817485175239224222007-02-05T11:38:57Z2005-09-06T23:53:42Z128441001532939728082008-05-18T04:26:48ZWar YearsE080BA4AE1EAEAF9Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-04%20You%20Won't%20Be%20Satisfied%20(Until%20You%20Break%20My%20Heart).m4a411454The Frim Fram SauceElla FitzgeraldThe War YearsJazzAAC audio file3123182194140225222007-02-05T11:38:58Z2005-09-06T23:53:57Z128441001532939730022008-05-18T04:30:02ZWar YearsFrim Fram SauceE080BA4AE1EAEAFAFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-05%20The%20Frim%20Fram%20Sauce.m4a411455I'm Just A Lucky So And SoElla FitzgeraldThe War YearsJazzAAC audio file2834130176191226222007-02-05T11:38:59Z2005-09-06T23:54:12Z128441001432912673162008-04-16T20:55:16ZWar YearsE080BA4AE1EAEAFBFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-06%20I'm%20Just%20A%20Lucky%20So%20And%20So.m4a411456I Didn't Mean A Word I SaidElla FitzgeraldThe War YearsJazzAAC audio file3208935199620227222007-02-05T11:39:00Z2005-09-06T23:54:26Z128441001432912675152008-04-16T20:58:35ZWar YearsE080BA4AE1EAEAFCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-07%20I%20Didn't%20Mean%20A%20Word%20I%20Said.m4a411457For Sentimental ReasonsElla FitzgeraldThe War YearsJazzAAC audio file3068850190820228222007-02-05T11:39:01Z2005-09-06T23:54:40Z128441001432912677062008-04-16T21:01:46ZWar YearsE080BA4AE1EAEAFDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-08%20For%20Sentimental%20Reasons.m4a411458It's A Pity To Say GoodnightElla FitzgeraldThe War YearsJazzAAC audio file2585948160262229222007-02-05T11:39:02Z2005-09-06T23:54:53Z128441001432912678662008-04-16T21:04:26ZWar YearsE080BA4AE1EAEAFEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-09%20It's%20A%20Pity%20To%20Say%20Goodnight.m4a411459GuiltyElla FitzgeraldThe War YearsJazzAAC audio file31098871936522210222007-02-05T11:39:03Z2005-09-06T23:55:04Z128441001432912680602008-04-16T21:07:40ZWar YearsE080BA4AE1EAEAFFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-10%20Guilty.m4a-1-11460Sentimental JourneyElla FitzgeraldThe War YearsJazzAAC audio file31909111984592211222007-02-05T11:39:05Z2005-09-06T23:55:17Z128441001432912682582008-04-16T21:10:58ZWar YearsE080BA4AE1EAEB00Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-11%20Sentimental%20Journey.m4a411461A Sunday Kind Of LoveElla FitzgeraldThe War YearsJazzAAC audio file31418881954872212222007-02-05T11:39:06Z2005-09-06T23:55:29Z128441001432912684542008-04-16T21:14:14ZWar YearsSunday Kind Of LoveE080BA4AE1EAEB01Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-12%20A%20Sunday%20Kind%20Of%20Love.m4a411462That's My DesireElla FitzgeraldThe War YearsJazzAAC audio file29320021823912213222007-02-05T11:39:07Z2005-09-06T23:55:42Z128441001432912686362008-04-16T21:17:16ZWar YearsE080BA4AE1EAEB02Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-13%20That's%20My%20Desire.m4a-1-11463Oh, Lady Be GoodElla FitzgeraldThe War YearsJazzAAC audio file31535751961142214222007-02-05T11:39:08Z2005-09-06T23:55:53Z128441001432912688322008-04-16T21:20:32ZWar YearsE080BA4AE1EAEB03Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-14%20Oh,%20Lady%20Be%20Good.m4a411464Don't You Think I Ought To KnowElla FitzgeraldThe War YearsJazzAAC audio file30391911889162215222007-02-05T11:39:09Z2005-09-06T23:56:05Z128441001432912690212008-04-16T21:23:41ZWar YearsE080BA4AE1EAEB04Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-15%20Don't%20You%20Think%20I%20Ought%20To%20Know.m4a411465You're Breakin' In A New HeartElla FitzgeraldThe War YearsJazzAAC audio file23943601486752216222007-02-05T11:39:10Z2005-09-06T23:56:15Z128441001432912691702008-04-16T21:26:10ZWar YearsE080BA4AE1EAEB05Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-16%20You're%20Breakin'%20In%20A%20New%20Heart.m4a411466I Want To Learn About LoveElla FitzgeraldThe War YearsJazzAAC audio file23295511446582217222007-02-05T11:39:11Z2005-09-06T23:56:23Z128441001432912693152008-04-16T21:28:35ZWar YearsE080BA4AE1EAEB06Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-17%20I%20Want%20To%20Learn%20About%20Love.m4a411467That Old FeelingElla FitzgeraldThe War YearsJazzAAC audio file23799681478162218222007-02-05T11:39:11Z2005-09-06T23:56:31Z128441001432912694622008-04-16T21:31:02ZWar YearsE080BA4AE1EAEB07Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-18%20That%20Old%20Feeling.m4a-1-11468My Baby Likes To Bebop (And I Like To Bebop Too)Ella FitzgeraldThe War YearsJazzAAC audio file26083071621202219222007-02-05T11:39:12Z2005-09-06T23:56:38Z128441001532912696252008-04-16T21:33:45ZWar YearsE080BA4AE1EAEB08Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-19%20My%20Baby%20Likes%20To%20Bebop%20(And%20I%20Like%20To%20Bebop%20Too).m4a411469No SenseElla FitzgeraldThe War YearsJazzAAC audio file28874761794192220222007-02-05T11:39:14Z2005-09-06T23:56:47Z128441001332829235252008-01-11T07:12:05ZWar YearsE080BA4AE1EAEB09Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-20%20No%20Sense.m4a411470How High The Moon (1st Take)Ella FitzgeraldThe War YearsJazzAAC audio file32451042018492221222007-02-05T11:39:15Z2005-09-06T23:56:56Z128441001332829237262008-01-11T07:15:26ZWar YearsE080BA4AE1EAEB0AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-21%20How%20High%20The%20Moon%20(1st%20Take).m4a-1-11471How High The Moon (3rd Take)Ella FitzgeraldThe War YearsJazzAAC audio file31586621941632222222007-02-05T11:39:16Z2005-09-06T23:57:06Z128441001332829239212008-01-11T07:18:41ZWar YearsE080BA4AE1EAEB0BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Ella%20Fitzgerald/The%20War%20Years/2-22%20How%20High%20The%20Moon%20(3rd%20Take).m4a411472JimElla FitzgeraldPetrillo/Samuels/ShawnThe War YearsJazzAAC audio file29097031810211212119942007-02-05T11:35:21Z2005-09-06T23:57:56Z128441001832939684662008-05-18T03:14:26ZWar YearsE080BA4AE1EAEB23Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-01%20Jim.m4a411473This Love Of MineElla FitzgeraldParker/Sanicola/SinatraThe War YearsJazzAAC audio file28261511758661222119942007-02-05T11:35:22Z2005-09-06T23:58:16Z128441001932939686422008-05-18T03:17:22ZWar YearsE080BA4AE1EAEB24Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-02%20This%20Love%20Of%20Mine.m4a411474Somebody Nobody LovesElla FitzgeraldMillerThe War YearsJazzAAC audio file30926251922591232119942007-02-05T11:35:23Z2005-09-06T23:58:33Z128441001932939688342008-05-18T03:20:34ZWar YearsE080BA4AE1EAEB25Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-03%20Somebody%20Nobody%20Loves.m4a411475You Don't Know What Love IsElla FitzgeraldDe Paul/RayeThe War YearsJazzAAC audio file32965082049841242119942007-02-05T11:35:24Z2005-09-06T23:58:50Z128441001932939690392008-05-18T03:23:59ZWar YearsE080BA4AE1EAEB26Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-04%20You%20Don't%20Know%20What%20Love%20Is.m4a411476Make Love To MeElla FitzgeraldGannon/Mann/WeissThe War YearsJazzAAC audio file27072761684361252119942007-02-05T11:35:26Z2005-09-06T23:59:07Z128441001932939692082008-05-18T03:26:48ZWar YearsE080BA4AE1EAEB27Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-05%20Make%20Love%20To%20Me.m4a411477Mama, Come HomeElla FitzgeraldBattle/Gannon/MyrowThe War YearsJazzAAC audio file26286741636521262119942007-02-05T11:35:27Z2005-09-06T23:59:20Z128441001932939693712008-05-18T03:29:31ZWar YearsE080BA4AE1EAEB28Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-06%20Mama,%20Come%20Home.m4a-1-11478My Heart And I DecidedElla FitzgeraldDonaldsonThe War YearsJazzAAC audio file29110471810211272119942007-02-05T11:35:28Z2005-09-06T23:59:32Z128441001732939695522008-05-18T03:32:32ZWar YearsE080BA4AE1EAEB29Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-07%20My%20Heart%20And%20I%20Decided.m4a411479He's My GuyElla FitzgeraldDe Paul/RayeThe War YearsJazzAAC audio file32103232000841282119942007-02-05T11:35:29Z2005-09-06T23:59:45Z128441001632939697522008-05-18T03:35:52ZWar YearsE080BA4AE1EAEB2AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-08%20He's%20My%20Guy.m4a411480Cow Cow BoogieElla FitzgeraldCarter/De Paul/RayeThe War YearsJazzAAC audio file28181071752851292119942007-02-05T11:35:30Z2005-09-06T23:59:58Z128441001632939699282008-05-18T03:38:48ZWar YearsE080BA4AE1EAEB2BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-09%20Cow%20Cow%20Boogie.m4a411481Time Alone Will TellElla FitzgeraldGordon/MonacoThe War YearsJazzAAC audio file302718418845112102119942007-02-05T11:35:31Z2005-09-07T00:00:10Z128441001632939701162008-05-18T03:41:56ZWar YearsE080BA4AE1EAEB2CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-10%20Time%20Alone%20Will%20Tell.m4a411482Once Too OftenElla FitzgeraldGordon/MonacoThe War YearsJazzAAC audio file286760917849012112119942007-02-05T11:35:32Z2005-09-07T00:00:23Z128441001632939702952008-05-18T03:44:55ZWar YearsE080BA4AE1EAEB2DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-11%20Once%20Too%20Often.m4a411483Into Each Life Some Rain Must FallElla FitzgeraldFisher/RobertsThe War YearsJazzAAC audio file304194818982112122119942007-02-05T11:35:33Z2005-09-07T00:00:33Z128441001632939704842008-05-18T03:48:04ZWar YearsE080BA4AE1EAEB2EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-12%20Into%20Each%20Life%20Some%20Rain%20Must%20Fall.m4a-1-11484I'm Making BelieveElla FitzgeraldGordon/MonacoThe War YearsJazzAAC audio file309689219244512132119942007-02-05T11:35:34Z2005-09-07T00:00:45Z128441001632939706772008-05-18T03:51:17ZWar YearsE080BA4AE1EAEB2FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-13%20I'm%20Making%20Believe.m4a411485And Her Tears Flowed Like WineElla FitzgeraldGreene/Kenton/LawrenceThe War YearsJazzAAC audio file318826119639212142119942007-02-05T11:35:35Z2005-09-07T00:00:56Z128441001632939708732008-05-18T03:54:33ZWar YearsE080BA4AE1EAEB30Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-14%20And%20Her%20Tears%20Flowed%20Like%20Wine.m4a411486I'm Confessin'Ella FitzgeraldDaugherty/Neiberg/ReynoldsThe War YearsJazzAAC audio file334082020572712152119942007-02-05T11:35:36Z2005-09-07T00:01:07Z128441001632939710792008-05-18T03:57:59ZWar YearsE080BA4AE1EAEB31Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-15%20I'm%20Confessin'.m4a411487I'm Beginning To See The LightElla FitzgeraldEllington/George/Hodges/JamesThe War YearsJazzAAC audio file265560316509212162119942007-02-05T11:35:38Z2005-09-07T00:01:18Z128441001632939712442008-05-18T04:00:44ZWar YearsE080BA4AE1EAEB32Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-16%20I'm%20Beginning%20To%20See%20The%20Light.m4a411488That's The Way It IsElla FitzgeraldKramer/WhitneyThe War YearsJazzAAC audio file319558419887712172119942007-02-05T11:35:39Z2005-09-07T00:01:27Z128441001632939714432008-05-18T04:04:03ZWar YearsE080BA4AE1EAEB33Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-17%20That's%20The%20Way%20It%20Is.m4a411489It's Only A Paper MoonElla FitzgeraldArlen/Harburg/RoseThe War YearsJazzAAC audio file261620516302512182119942007-02-05T11:35:40Z2005-09-07T00:01:38Z128441001732939716062008-05-18T04:06:46ZWar YearsE080BA4AE1EAEB34Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-18%20It's%20Only%20A%20Paper%20Moon.m4a-1-11490Cry You Out Of My HeartElla FitzgeraldHeath/Lange/LoringThe War YearsJazzAAC audio file269761316780912192119942007-02-05T11:35:41Z2005-09-07T00:01:46Z128441001632939717742008-05-18T04:09:34ZWar YearsE080BA4AE1EAEB35Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-19%20Cry%20You%20Out%20Of%20My%20Heart.m4a411491A Kiss GoodnightElla FitzgeraldHerman/Slack/VictorThe War YearsJazzAAC audio file302371618831212202119942007-02-05T11:35:42Z2005-09-07T00:01:54Z128441001632939719622008-05-18T04:12:42ZWar YearsKiss GoodnightE080BA4AE1EAEB36Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-20%20A%20Kiss%20Goodnight.m4a411492Benny's Coming Home On SaturdayElla FitzgeraldFisher/RobertsThe War YearsJazzAAC audio file331195720356712212119942007-02-05T11:35:43Z2005-09-07T00:02:03Z128441001532939721662008-05-18T04:16:06ZWar YearsE080BA4AE1EAEB37Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/The%20War%20Years/1-21%20Benny's%20Coming%20Home%20On%20Saturday.m4a-1-11493AlisonElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file32769962039601112219792007-02-05T11:39:17Z2005-09-24T02:57:56Z128441003432829241252008-01-11T07:22:05ZEEE7BC640529E3FCFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/01%20Alison.m4a411494Watching The DetectivesElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file36375522264661122219792007-02-05T11:39:18Z2005-09-24T02:58:17Z128441001032829243512008-01-11T07:25:51ZEEE7BC640529E3FDFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/02%20Watching%20The%20Detectives.m4a411495(I Don't Want To Go To) ChelseaElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file30629521905331132219782007-02-05T11:39:20Z2005-09-24T02:58:36Z128441001032829245422008-01-11T07:29:02ZEEE7BC640529E3FEFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/03%20(I%20Don't%20Want%20To%20Go%20To)%20Chelsea.m4a411496Pump It UpElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file31594531965731142219782007-02-05T11:39:21Z2005-09-24T02:58:50Z128441001032829247382008-01-11T07:32:18ZEEE7BC640529E3FFFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/04%20Pump%20It%20Up.m4a411497Radio RadioElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file30217691880261152219782007-02-05T11:39:22Z2005-09-24T02:59:05Z12844100932829249262008-01-11T07:35:26ZEEE7BC640529E400Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/05%20Radio%20Radio.m4a411498(What's So Funny 'Bout) Peace, Love And UnderstandingElvis Costello & The AttractionsNick LoweBest OfAlternative & PunkAAC audio file34461772145061162219792007-02-05T11:39:23Z2005-09-24T02:59:19Z12844100932829251412008-01-11T07:39:01ZEEE7BC640529E401Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/06%20(What's%20So%20Funny%20'Bout)%20Peace,%20Love%20And%20Understanding.m4a411499Oliver's ArmyElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file29069901808261172219792007-02-05T11:39:24Z2005-09-24T02:59:33Z128441001032829253222008-01-11T07:42:02ZEEE7BC640529E402Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/07%20Oliver's%20Army.m4a411500Accidents Will HappenElvis Costello & The AttractionsDeclan MacManus/Elvis CostelloBest OfAlternative & PunkAAC audio file29452121831731182219792007-02-05T11:39:25Z2005-09-24T02:59:45Z128441001032829255052008-01-11T07:45:05ZEEE7BC640529E403Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/08%20Accidents%20Will%20Happen.m4a411501I Can't Stand Up For Falling DownElvis Costello & The AttractionsHomer Banks & Alan JonesBest OfAlternative & PunkAAC audio file20709131286261192219802007-02-05T11:39:26Z2005-09-24T02:59:56Z128441001032829256332008-01-11T07:47:13ZEEE7BC640529E404Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/09%20I%20Can't%20Stand%20Up%20For%20Falling%20Down.m4a411502New AmsterdamElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file216438113450611102219802007-02-05T11:39:27Z2005-09-24T03:00:04Z128441001032829257682008-01-11T07:49:28ZEEE7BC640529E405Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/10%20New%20Amsterdam.m4a411503High FidelityElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file239945914916011112219802007-02-05T11:39:27Z2005-09-24T03:00:12Z128441001032829259172008-01-11T07:51:57ZEEE7BC640529E406Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/11%20High%20Fidelity.m4a411504ClublandElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file361537922509311122219812007-02-05T11:39:29Z2005-09-24T03:00:21Z128441001032829261422008-01-11T07:55:42ZEEE7BC640529E407Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/12%20Clubland.m4a411505Watch Your StepElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file290500618070611132219812007-02-05T11:39:30Z2005-09-24T03:00:34Z128441001032829263232008-01-11T07:58:43ZEEE7BC640529E408Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/13%20Watch%20Your%20Step.m4a411506Good Year For The RosesElvis Costello & The AttractionsJerry ChestnutBest OfAlternative & PunkAAC audio file305845819026611142219812007-02-05T11:39:31Z2005-09-24T03:00:44Z128441004532849085642008-02-03T06:36:04ZEEE7BC640529E409Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/14%20Good%20Year%20For%20The%20Roses.m4a-1-11507Beyond BeliefElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file250212515557311152219822007-02-05T11:39:32Z2005-09-24T03:00:54Z128441001132829266692008-01-11T08:04:29ZEEE7BC640529E40AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/15%20Beyond%20Belief.m4a411508Man Out Of TimeElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file529856432936011162219822007-02-05T11:39:33Z2005-09-24T03:01:02Z128441001032829269982008-01-11T08:09:58ZEEE7BC640529E40BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/16%20Man%20Out%20Of%20Time.m4a411509Everyday I Write The BookElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file378111323544011172219832007-02-05T11:39:35Z2005-09-24T03:01:19Z128441003932829272332008-01-11T08:13:53ZEEE7BC640529E40CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/17%20Everyday%20I%20Write%20The%20Book.m4a-1-11510ShipbuildingElvis Costello & The AttractionsElvis Costello & Clive LangerBest OfAlternative & PunkAAC audio file471837629342611182219832007-02-05T11:39:36Z2005-09-24T03:01:31Z128441001132829275272008-01-11T08:18:47ZEEE7BC640529E40DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/18%20Shipbuilding.m4a-1-11511Love FieldElvis Costello & The AttractionsElvis CostelloBest OfAlternative & PunkAAC audio file335952620910611192219842007-02-05T11:39:38Z2005-09-24T03:01:45Z128441003632829277362008-01-11T08:22:16ZEEE7BC640529E40EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/19%20Love%20Field.m4a411512Brilliant MistakeElvis Costello & The AttractionsDeclan MacManusBest OfAlternative & PunkAAC audio file360822222456011202219862007-02-05T11:39:39Z2005-09-24T03:01:55Z12844100832829279612008-01-11T08:26:01ZEEE7BC640529E40FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/20%20Brilliant%20Mistake.m4a411513Indoor FireworksElvis Costello & The AttractionsDeclan MacManusBest OfAlternative & PunkAAC audio file402122025037311212219862007-02-05T11:39:40Z2005-09-24T03:02:05Z12844100832829282112008-01-11T08:30:11ZEEE7BC640529E410Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/21%20Indoor%20Fireworks.m4a411514I Want YouElvis Costello & The AttractionsDeclan MacManusBest OfAlternative & PunkAAC audio file648788140280011222219862007-02-05T11:39:43Z2005-09-24T03:02:29Z12844100832829286142008-01-11T08:36:54ZEEE7BC640529E411Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Elvis%20Costello%20&%20The%20Attractions/Best%20Of/22%20I%20Want%20You.m4a411515Space OddityDavid BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file50846013140001211920022007-02-05T11:30:21Z2005-09-24T03:04:47Z128441001832934211282008-05-11T19:12:08ZEEE7BC640529E427Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-01%20Space%20Oddity.m4a411516The Man Who Sold The WorldDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file38547452392261221920022007-02-05T11:30:23Z2005-09-24T03:05:16Z128441001032934213672008-05-11T19:16:07ZMan Who Sold The WorldEEE7BC640529E428Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-02%20The%20Man%20Who%20Sold%20The%20World.m4a-1-11517ChangesDavid BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file34753772154401231920022007-02-05T11:30:24Z2005-09-24T03:05:35Z128441001032934215822008-05-11T19:19:42ZEEE7BC640529E429Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-03%20Changes.m4a411518Life On Mars?David BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file37249812332931241920022007-02-05T11:30:25Z2005-09-24T03:05:52Z128441003432934218162008-05-11T19:23:36ZEEE7BC640529E42AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-04%20Life%20On%20Mars_.m4a411519Moonage DaydreamDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file45099102804401251920022007-02-05T11:30:27Z2005-09-24T03:06:08Z128441001032934220962008-05-11T19:28:16ZEEE7BC640529E42BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-05%20Moonage%20Daydream.m4a411520Suffragette CityDavid BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file33459622073601261920022007-02-05T11:30:28Z2005-09-24T03:06:27Z128441002932934223042008-05-11T19:31:44ZEEE7BC640529E42CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-06%20Suffragette%20City.m4a411521Ziggy StardustDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file31539081955331271920022007-02-05T11:30:29Z2005-09-24T03:06:40Z128441002532934224992008-05-11T19:34:59ZEEE7BC640529E42DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-07%20Ziggy%20Stardust.m4a411522All The Young DudesDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file40780522532001281920022007-02-05T11:30:31Z2005-09-24T03:06:52Z12844100832934227522008-05-11T19:39:12ZEEE7BC640529E42EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-08%20All%20The%20Young%20Dudes.m4a411523The Jean GenieDavid BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file39973842481731291920022007-02-05T11:30:32Z2005-09-24T03:07:07Z12844100932934230002008-05-11T19:43:20ZJean GenieEEE7BC640529E42FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-09%20The%20Jean%20Genie.m4a411524Panic In DetroitDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file431857126833312101920022007-02-05T11:30:34Z2005-09-24T03:07:21Z12844100932934232692008-05-11T19:47:49ZEEE7BC640529E430Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-10%20Panic%20In%20Detroit.m4a411525Rebel RebelDavid BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file437256727149312111920022007-02-05T11:30:36Z2005-09-24T03:07:36Z128441002632934235402008-05-11T19:52:20ZEEE7BC640529E431Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-11%20Rebel%20Rebel.m4a411526Diamond DogsDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file591977436697312121920022007-02-05T11:30:38Z2005-09-24T03:07:50Z128441002532934239072008-05-11T19:58:27ZEEE7BC640529E432Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-12%20Diamond%20Dogs.m4a411527Young Americans [Single Version]David BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file313882219496012131920022007-02-05T11:30:39Z2005-09-24T03:08:08Z128441003232934241022008-05-11T20:01:42ZEEE7BC640529E433Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-13%20Young%20Americans%20%5BSingle%20Version%5D.m4a411528FameDavid BowieBrian Eno/Carlos Alomar/John LennonBest Of Bowie (Disc 1)RockAAC audio file414485725737312141920022007-02-05T11:30:40Z2005-09-24T03:08:17Z128441003232934243602008-05-11T20:06:00ZEEE7BC640529E434Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-14%20Fame.m4a411529Golden Years [Single Version]David BowieBrian Eno/David BowieBest Of Bowie (Disc 1)RockAAC audio file336751920900012151920022007-02-05T11:30:41Z2005-09-24T03:08:29Z128441003232934245692008-05-11T20:09:29ZEEE7BC640529E435Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-15%20Golden%20Years%20%5BSingle%20Version%5D.m4a411530TVC 15 [Single Version]David BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file346662221513312161920022007-02-05T11:30:43Z2005-09-24T03:08:39Z12844100932934247842008-05-11T20:13:04ZEEE7BC640529E436Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-16%20TVC%2015%20%5BSingle%20Version%5D.m4a411531Sound And VisionDavid BowieDavid BowieBest Of Bowie (Disc 1)RockAAC audio file299512618522612171920022007-02-05T11:30:44Z2005-09-24T03:08:49Z128441003232934249692008-05-11T20:16:09ZEEE7BC640529E437Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-17%20Sound%20And%20Vision.m4a411532"Heroes" [Single Version]David BowieBrian EnoBest Of Bowie (Disc 1)RockAAC audio file350739921780012181920022007-02-05T11:30:45Z2005-09-24T03:08:57Z128441003132849211312008-02-03T10:05:31ZEEE7BC640529E438Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-18%20_Heroes_%20%5BSingle%20Version%5D.m4a411533D.J.David BowieBrian Eno/Carlos AlomarBest Of Bowie (Disc 1)RockAAC audio file390116024080012191920022007-02-05T11:30:46Z2005-09-24T03:09:07Z12844100932849209132008-02-03T10:01:53ZEEE7BC640529E439Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%201)/1-19%20D.J..m4a411534Ashes To AshesDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file35203342180002211920022007-02-05T11:30:48Z2005-09-24T03:09:48Z128441003332849206722008-02-03T09:57:52ZEEE7BC640529E44FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-01%20Ashes%20To%20Ashes.m4a411535FashionDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file33487992072002221920022007-02-05T11:30:49Z2005-09-24T03:10:09Z12844100932849204542008-02-03T09:54:14ZEEE7BC640529E450Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-02%20Fashion.m4a411536Scary Monsters (& Super Creeps)David BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file34630562148662231920022007-02-05T11:30:50Z2005-09-24T03:10:26Z128441003132849202472008-02-03T09:50:47ZEEE7BC640529E451Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-03%20Scary%20Monsters%20(&%20Super%20Creeps).m4a411537Under Pressure (w/Queen)David BowieBrian May/David Bowie/Freddie Mercury/John Deacon/Roger TaylorBest Of Bowie (Disc 2)RockAAC audio file38124302379332241920022007-02-05T11:30:51Z2005-09-24T03:10:43Z128441003332919931432008-04-25T06:32:23ZEEE7BC640529E452Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-04%20Under%20Pressure%20(w_Queen).m4a411538Cat People (Putting Out Fire)David BowieDavid Bowie/Giorgio MoroderBest Of Bowie (Disc 2)RockAAC audio file40780422534002251920022007-02-05T11:30:53Z2005-09-24T03:11:01Z12844100932849197942008-02-03T09:43:14ZEEE7BC640529E453Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-05%20Cat%20People%20(Putting%20Out%20Fire).m4a411539Let's DanceDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file40309932502262261920022007-02-05T11:30:55Z2005-09-24T03:11:18Z128441003232849195412008-02-03T09:39:01ZEEE7BC640529E454Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-06%20Let's%20Dance.m4a411540China GirlDavid BowieDavid Bowie/Iggy PopBest Of Bowie (Disc 2)RockAAC audio file41566542581062271920022007-02-05T11:30:56Z2005-09-24T03:11:34Z128441003132849192912008-02-03T09:34:51ZEEE7BC640529E455Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-07%20China%20Girl.m4a411541Modern LoveDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file46394252876662281920022007-02-05T11:30:58Z2005-09-24T03:11:51Z128441003232849190332008-02-03T09:30:33ZEEE7BC640529E456Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-08%20Modern%20Love.m4a-1-11542Blue JeanDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file31032761923332291920022007-02-05T11:30:59Z2005-09-24T03:12:08Z12844100932849187452008-02-03T09:25:45ZEEE7BC640529E457Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-09%20Blue%20Jean.m4a411543This Is Not America (w/The Pat Metheny Group)David BowieDavid Bowie/Mays/Pat MethenyBest Of Bowie (Disc 2)RockAAC audio file375662323302622101920022007-02-05T11:31:00Z2005-09-24T03:12:19Z12844100832849185532008-02-03T09:22:33ZEEE7BC640529E458Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-10%20This%20Is%20Not%20America%20(w_The%20Pat%20Metheny%20Group).m4a411544Dancing In The Street (w/Mick Jagger)David BowieIvy Jo Hunter/Marvin Gaye/William StevensonBest Of Bowie (Disc 2)RockAAC audio file327254620260022111920022007-02-05T11:31:01Z2005-09-24T03:12:32Z128441003032849183192008-02-03T09:18:39ZEEE7BC640529E459Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-11%20Dancing%20In%20The%20Street%20(w_Mick%20Jagger).m4a411545Absolute BeginnersDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file547007233933322121920022007-02-05T11:31:03Z2005-09-24T03:12:43Z12844100832849181172008-02-03T09:15:17ZEEE7BC640529E45AFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-12%20Absolute%20Beginners.m4a411546Time Will CrawlDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file418625326046622131920022007-02-05T11:31:05Z2005-09-24T03:13:00Z12844100832849177782008-02-03T09:09:38ZEEE7BC640529E45BFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-13%20Time%20Will%20Crawl.m4a411547Under The God (Tin Machine)David BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file399628724797322141920022007-02-05T11:31:06Z2005-09-24T03:13:13Z128441003032849175172008-02-03T09:05:17ZEEE7BC640529E45CFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-14%20Under%20The%20God%20(Tin%20Machine).m4a411548Jump They SayDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file377967223466622151920022007-02-05T11:31:08Z2005-09-24T03:13:25Z12844100832849172692008-02-03T09:01:09ZEEE7BC640529E45DFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-15%20Jump%20They%20Say.m4a411549The Heart's Filthy LessonDavid BowieBrian Eno/David Bowie/Erdal Kizilcay/Mike Garson/Reeves Gabrels/Sterling CampbellBest Of Bowie (Disc 2)RockAAC audio file346050721473322161920022007-02-05T11:31:09Z2005-09-24T03:13:36Z12844100832849170342008-02-03T08:57:14ZHeart's Filthy LessonEEE7BC640529E45EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-16%20The%20Heart's%20Filthy%20Lesson.m4a411550I'm Afraid Of Americans (V1)David BowieBrian Eno/David BowieBest Of Bowie (Disc 2)RockAAC audio file429241426662622171920022007-02-05T11:31:10Z2005-09-24T03:13:46Z12844100832849168202008-02-03T08:53:40ZEEE7BC640529E45FFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-17%20I'm%20Afraid%20Of%20Americans%20(V1).m4a411551Thursday's ChildDavid BowieDavid Bowie/Reeves GabrelsBest Of Bowie (Disc 2)RockAAC audio file430198726710622181920022007-02-05T11:31:12Z2005-09-24T03:13:58Z12844100832849165532008-02-03T08:49:13ZEEE7BC640529E460Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-18%20Thursday's%20Child.m4a411552Slow BurnDavid BowieDavid BowieBest Of Bowie (Disc 2)RockAAC audio file384521523726622191920022007-02-05T11:31:13Z2005-09-24T03:14:10Z12844100832849162862008-02-03T08:44:46ZEEE7BC640529E461Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Best%20Of%20Bowie%20(Disc%202)/2-19%20Slow%20Burn.m4a411553KQED Public RadioPublicMPEG audio stream2005-10-14T20:37:46Z3222050The Nation's most-listened-to NPR station, from Northern California (KQED.org)832678607772007-07-20T23:06:17Z661544D4679A5B8AURLhttp://pri.kts-af.net/redir/index.pls?esid=38688577d30de04f24cfcd3711079057&url_no=1&client_id=7&uid=68efed4d03ec7e45fd3978262c107180&clicksrc=xml1554Beatles-A-Rama The Beatles' Story In Words n' MusicOldiesPlaylist URL2005-10-14T20:38:05Z9644100Spread the word and you'll be free!132411946062006-09-15T07:50:06Z661544D4679A5B97URLhttp://pri.kts-af.net/redir/index.pls?esid=12a9591767574f530fbe023493208975&url_no=1&client_id=7&uid=68efed4d03ec7e45fd3978262c107180&clicksrc=xml1555Seven Drunken NightsThe Malarkey BrothersThe Malarkey BrothersWhiskey On a SundayWorldProtected AAC audio file573846632463611131520052007-02-05T11:52:28Z2006-05-18T23:24:04Z128441001332938937542008-05-17T06:29:14Z2005-06-28T07:00:00Z1 Malarkey Brothers Malarkey BrothersE8AA7675D5CD0740Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/The%20%20Malarkey%20Brothers/Whiskey%20On%20a%20Sunday/13%20Seven%20Drunken%20Nights.m4p411556Jingle BellsJames TaylorJames TaylorJames Taylor At ChristmasHolidayProtected AAC audio file37435972328481141220062007-02-05T11:40:45Z2006-12-05T03:07:38Z12844100332829444762008-01-11T13:01:16Z2006-11-07T08:00:00Z18717EF54306579E8Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/James%20Taylor/James%20Taylor%20At%20Christmas/04%20Jingle%20Bells.m4p411557Tubular Bells, Part 1Part 1Mike OldfieldTubular BellsNew AgeAAC audio file247804051529506111219732007-02-05T11:47:20Z2007-01-21T02:37:59Z128441001632938617452008-05-16T21:35:45ZB6178438DAB40A9EFilefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Part%201/Tubular%20Bells/01%20Tubular%20Bells,%20Part%201.m4a411558Tubular Bells, Part 2Part 2Mike OldfieldTubular BellsNew AgeAAC audio file226735221399600112219732007-02-05T11:47:28Z2007-01-21T02:40:00Z128441001332938631442008-05-16T21:59:04ZB6178438DAB40AA1Filefile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Part%202/Tubular%20Bells/02%20Tubular%20Bells,%20Part%202.m4a411559Choo Choo Ch'BoogieClifton ChenierNew Orleans PlaygroundR&BAAC audio file31778081959601111119792007-09-14T20:30:22Z2007-09-14T20:29:43Z12844100432928775752008-05-05T12:12:55ZE6023C725F732E5DFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/01%20Choo%20Choo%20Ch'Boogie.m4a411560They All Ask'd For YouThe MetersNew Orleans PlaygroundR&BAAC audio file40270662484001121119752007-09-14T20:32:43Z2007-09-14T20:30:28Z12844100332928778232008-05-05T12:17:03ZMetersE6023C725F732E64File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/02%20They%20All%20Ask'd%20For%20You.m4a411561Breakfast, Lunch And DinnerKermit RuffinsNew Orleans PlaygroundR&BAAC audio file31376101938001131120022007-09-14T20:35:01Z2007-09-14T20:32:50Z12844100232928780172008-05-05T12:20:17ZE6023C725F732E68File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/03%20Breakfast,%20Lunch%20And%20Dinner.m4a411562Second LineCharmaine NevilleNew Orleans PlaygroundR&BAAC audio file28729991777061141120042007-09-14T20:37:10Z2007-09-14T20:35:10Z12844100332928781952008-05-05T12:23:15ZE6023C725F732E6CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/04%20Second%20Line.m4a411563Skip To My BluesBuckwheat ZydecoNew Orleans PlaygroundR&BAAC audio file27386871694261151119942007-09-14T20:39:16Z2007-09-14T20:37:19Z12844100332928783642008-05-05T12:26:04ZE6023C725F732E70File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/05%20Skip%20To%20My%20Blues.m4a411564Ya YaLee DorseyNew Orleans PlaygroundR&BAAC audio file23605471457061161119612007-09-14T20:41:04Z2007-09-14T20:39:25Z12844100332928785102008-05-05T12:28:30ZE6023C725F732E74File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/06%20Ya%20Ya.m4a411565I Like It Like ThatChris KennerNew Orleans PlaygroundR&BAAC audio file18565161148661171119652007-09-14T20:42:27Z2007-09-14T20:41:13Z12844100432928786252008-05-05T12:30:25ZE6023C725F732E78File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/07%20I%20Like%20It%20Like%20That.m4a411566Whole Lotta Lovin'Fats DominoNew Orleans PlaygroundR&BAAC audio file1590081996931181119582007-09-14T20:43:37Z2007-09-14T20:42:35Z12844100332928787242008-05-05T12:32:04ZE6023C725F732E7CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/08%20Whole%20Lotta%20Lovin'.m4a411567Ain't Get No HomeClarence "Frogman" HenryNew Orleans PlaygroundR&BAAC audio file22292541380401191119562007-09-14T20:45:12Z2007-09-14T20:43:45Z12844100432928788622008-05-05T12:34:22ZE6023C725F732E80File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/09%20Ain't%20Get%20No%20Home.m4a411568Row Row Your BoatDr. JohnNew Orleans PlaygroundR&BAAC audio file221916113689311101119672007-09-14T20:46:48Z2007-09-14T20:45:20Z12844100532928789992008-05-05T12:36:39ZE6023C725F732E84File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/10%20Row%20Row%20Your%20Boat.m4a411569When The Saints Go Marchin' InHack BarholomewNew Orleans PlaygroundR&BAAC audio file299931118506611111119942007-09-14T20:49:01Z2007-09-14T20:46:56Z12844100432928791842008-05-05T12:39:44ZE6023C725F732E88File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/New%20Orleans%20Playground/11%20When%20The%20Saints%20Go%20Marchin'%20In.m4a411570Track 01AAC audio file1243804806801252008-02-18T04:22:22Z2008-02-18T04:21:57Z12844100232928637302008-05-05T08:22:10Z09F5398244461330File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/01%20Track%2001.m4a411571Track 02AAC audio file17080851087732252008-02-18T04:23:02Z2008-02-18T04:22:27Z12844100232928638392008-05-05T08:23:59Z09F5398244461334File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/02%20Track%2002.m4a411572Track 03AAC audio file42926652746933252008-02-18T04:24:32Z2008-02-18T04:23:05Z12844100232928641142008-05-05T08:28:34Z09F5398244461338File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/03%20Track%2003.m4a411573Track 04AAC audio file21266451373334252008-02-18T04:25:14Z2008-02-18T04:24:36Z12844100232928642512008-05-05T08:30:51Z09F539824446133CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/04%20Track%2004.m4a411574Track 05AAC audio file21279141381335252008-02-18T04:25:54Z2008-02-18T04:25:18Z12844100232928643892008-05-05T08:33:09Z09F5398244461340File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/05%20Track%2005.m4a411575Track 06AAC audio file1389013901606252008-02-18T04:26:20Z2008-02-18T04:25:58Z12844100232928644792008-05-05T08:34:39Z09F5398244461344File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/06%20Track%2006.m4a411576Track 07AAC audio file32006022002267252008-02-18T04:27:14Z2008-02-18T04:26:23Z12844100232928646792008-05-05T08:37:59Z09F5398244461348File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/07%20Track%2007.m4a411577Track 08AAC audio file30827241940938252008-02-18T04:28:03Z2008-02-18T04:27:17Z12844100232928648742008-05-05T08:41:14Z09F539824446134CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/08%20Track%2008.m4a411578Track 09AAC audio file45813412929469252008-02-18T04:29:14Z2008-02-18T04:28:06Z12844100232928651662008-05-05T08:46:06Z09F5398244461350File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/09%20Track%2009.m4a411579Track 10AAC audio file327184121013310252008-02-18T04:30:02Z2008-02-18T04:29:17Z12844100232928653772008-05-05T08:49:37Z09F5398244461354File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/10%20Track%2010.m4a411580Track 11AAC audio file13437538646611252008-02-18T04:30:22Z2008-02-18T04:30:05Z12844100232928654632008-05-05T08:51:03Z09F5398244461358File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/11%20Track%2011.m4a411581Track 12AAC audio file12138317861312252008-02-18T04:30:39Z2008-02-18T04:30:25Z12844100232928655422008-05-05T08:52:22Z09F539824446135CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/12%20Track%2012.m4a411582Track 13AAC audio file236315414932013252008-02-18T04:31:11Z2008-02-18T04:30:41Z12844100332928656912008-05-05T08:54:51Z09F5398244461360File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/13%20Track%2013.m4a411583Track 14AAC audio file348122921817314252008-02-18T04:31:56Z2008-02-18T04:31:14Z12844100232928659092008-05-05T08:58:29Z09F5398244461364File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/14%20Track%2014.m4a411584Track 15AAC audio file411412126382615252008-02-18T04:32:49Z2008-02-18T04:31:59Z12844100232928661732008-05-05T09:02:53Z09F5398244461368File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/15%20Track%2015.m4a411585Track 16AAC audio file164848010714616252008-02-18T04:33:10Z2008-02-18T04:32:52Z12844100232928662802008-05-05T09:04:40Z09F539824446136CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/16%20Track%2016.m4a411586Track 17AAC audio file302736819249317252008-02-18T04:33:47Z2008-02-18T04:33:12Z12844100232928664732008-05-05T09:07:53Z09F5398244461370File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/17%20Track%2017.m4a411587Track 18AAC audio file208333413201318252008-02-18T04:34:12Z2008-02-18T04:33:49Z12844100232928666052008-05-05T09:10:05Z09F5398244461374File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/18%20Track%2018.m4a411588Track 19AAC audio file389486724480019252008-02-18T04:34:56Z2008-02-18T04:34:14Z12844100232928668492008-05-05T09:14:09Z09F5398244461378File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/19%20Track%2019.m4a411589Track 20AAC audio file275053317333320252008-02-18T04:35:27Z2008-02-18T04:34:58Z12844100232928670232008-05-05T09:17:03Z09F539824446137CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/20%20Track%2020.m4a411590Track 21AAC audio file15267299680021252008-02-18T04:35:44Z2008-02-18T04:35:29Z12844100232928671192008-05-05T09:18:39Z09F5398244461380File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/21%20Track%2021.m4a411591Track 22AAC audio file10756756988022252008-02-18T04:35:56Z2008-02-18T04:35:46Z12844100232928671892008-05-05T09:19:49Z09F5398244461384File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/22%20Track%2022.m4a411592Track 23AAC audio file212491113805323252008-02-18T04:36:20Z2008-02-18T04:35:58Z12844100232928673272008-05-05T09:22:07Z09F5398244461388File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/23%20Track%2023.m4a411593Track 24AAC audio file14532869446624252008-02-18T04:36:36Z2008-02-18T04:36:22Z12844100232928674222008-05-05T09:23:42Z09F539824446138CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/24%20Track%2024.m4a411594Track 25AAC audio file11435207345325252008-02-18T04:36:48Z2008-02-18T04:36:38Z12844100232928674952008-05-05T09:24:55Z09F5398244461390File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Unknown%20Artist/Unknown%20Album/25%20Track%2025.m4a411595Drops Of BrandyVarious ArtistsSlainteFolkAAC audio file16168061020531111820032008-02-18T06:14:32Z2008-02-18T06:14:21Z12844100432928469722008-05-05T03:42:52Z09F53982444613F2File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/01%20Drops%20Of%20Brandy.m4a411596Trooper And MaidVarious ArtistsSlainteFolkAAC audio file38082262386401121820032008-02-18T06:14:58Z2008-02-18T06:14:33Z12844100332928472112008-05-05T03:46:51Z09F53982444613FAFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/02%20Trooper%20And%20Maid.m4a411597My Love She's But A Lassy Yet/ The Athol HighlandersVarious ArtistsSlainteFolkAAC audio file32000132042261131820032008-02-18T06:15:18Z2008-02-18T06:14:59Z12844100332928474152008-05-05T03:50:15Z09F53982444613FFFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/03%20My%20Love%20She's%20But%20A%20Lassy%20Yet_%20The%20Athol%20Highlanders.m4a411598Miss MacLeod's ReelVarious ArtistsSlainteFolkAAC audio file23678101514131141820032008-02-18T06:15:32Z2008-02-18T06:15:19Z12844100332928475662008-05-05T03:52:46Z09F5398244461404File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/04%20Miss%20MacLeod's%20Reel.m4a411599My Love/ Jimmy AllenVarious ArtistsSlainteFolkAAC audio file29602691892801151820032008-02-18T06:15:49Z2008-02-18T06:15:33Z12844100332928477552008-05-05T03:55:55Z09F5398244461409File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/05%20My%20Love_%20Jimmy%20Allen.m4a411600Tam LinVarious ArtistsSlainteFolkAAC audio file73655494657201161820032008-02-18T06:16:27Z2008-02-18T06:15:51Z12844100332928482212008-05-05T04:03:41Z09F539824446140EFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/06%20Tam%20Lin.m4a411601Bernard's Well/ Braes Of Auchertyre/ Madam McKeany's Scottish MeasureVarious ArtistsSlainteFolkAAC audio file44723062765461171820032008-02-18T06:16:47Z2008-02-18T06:16:29Z12844100332928484982008-05-05T04:08:18Z09F5398244461413File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/07%20Bernard's%20Well_%20Braes%20Of%20Auchertyre_%20Madam%20McKeany's%20Scottish%20Measure.m4a411602East Neuk O' FifeVarious ArtistsSlainteFolkAAC audio file1203130779601181820032008-02-18T06:16:53Z2008-02-18T06:16:49Z12844100332928485762008-05-05T04:09:36Z09F5398244461418File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/08%20East%20Neuk%20O'%20Fife.m4a411603Captain KeelerVarious ArtistsSlainteFolkAAC audio file1175718755331191820032008-02-18T06:16:58Z2008-02-18T06:16:54Z12844100332928486512008-05-05T04:10:51Z09F539824446141DFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/09%20Captain%20Keeler.m4a411604The Lights Are Out - Da Slocket LichtVarious ArtistsSlainteFolkAAC audio file468719429861311101820032008-02-18T06:17:19Z2008-02-18T06:17:00Z12844100332928489502008-05-05T04:15:50ZLights Are Out - Da Slocket Licht09F5398244461422File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/10%20The%20Lights%20Are%20Out%20-%20Da%20Slocket%20Licht.m4a411605The Bonnie Banks Of FordieVarious ArtistsSlainteFolkAAC audio file558753634889311111820032008-02-18T06:17:41Z2008-02-18T06:17:20Z12844100332928492992008-05-05T04:21:39ZBonnie Banks Of Fordie09F5398244461427File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/11%20The%20Bonnie%20Banks%20Of%20Fordie.m4a411606The White CockadeVarious ArtistsSlainteFolkAAC audio file11373487210611121820032008-02-18T06:17:46Z2008-02-18T06:17:42Z12844100332928493712008-05-05T04:22:51ZWhite Cockade09F539824446142CFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/12%20The%20White%20Cockade.m4a411607I Wish I Were Where Helen LiesVarious ArtistsSlainteFolkAAC audio file328523620532011131820032008-02-18T06:17:59Z2008-02-18T06:17:47Z12844100432928556932008-05-05T06:08:13Z09F5398244461431File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/13%20I%20Wish%20I%20Were%20Where%20Helen%20Lies.m4a411608Heather Down The MoorVarious ArtistsSlainteFolkAAC audio file307016919662611141820032008-02-18T06:18:10Z2008-02-18T06:18:00Z12844100432928558902008-05-05T06:11:30Z09F5398244461436File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/14%20Heather%20Down%20The%20Moor.m4a411609Westlin' WindsVarious ArtistsSlainteFolkAAC audio file371637923681311151820032008-02-18T06:18:24Z2008-02-18T06:18:11Z12844100432928561272008-05-05T06:15:27Z09F539824446143BFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/15%20Westlin'%20Winds.m4a411610Tibby FowlerVarious ArtistsSlainteFolkAAC audio file228023714141311161820032008-02-18T06:18:32Z2008-02-18T06:18:25Z12844100432928562682008-05-05T06:17:48Z09F5398244461440File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/16%20Tibby%20Fowler.m4a411611Jock O' HazeldeanVarious ArtistsSlainteFolkAAC audio file230602314913311171820032008-02-18T06:18:40Z2008-02-18T06:18:33Z12844100432928564172008-05-05T06:20:17Z09F5398244461445File12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/17%20Jock%20O'%20Hazeldean.m4a411612Mingulay Boat SongVarious ArtistsSlainteFolkAAC audio file445997428366611181820032008-02-18T06:18:56Z2008-02-18T06:18:41Z12844100432928567012008-05-05T06:25:01Z09F539824446144AFile12952701761752133483file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Compilations/Slainte/18%20Mingulay%20Boat%20Song.m4a41 XML/inst/examples/itunes.R0000644000176000001440000000443111741563530015176 0ustar ripleyusers# convert i # xsltproc itunes.xsl ~/Music/iTunes/iTunes\ Music\ Library.xml > itunes.xml # or with Sxslt # # user system elapsed # 7.514 0.090 7.981 system.time({ library(Sxslt) doc = xsltApplyStyleSheet("~/itunes.xml", "~/Projects/org/omegahat/XML/RS/examples/itunes.xsl") top = xmlRoot(doc$doc) songs.xsl = xmlApply(top, function(x) xmlSApply(x, xmlValue)) }) ##################### # As tempting as it is to take the xmlRoot() in this next command, # that will allow the XML document to be freed and then a crash will ensue. doc = xmlInternalTreeParse("~/Projects/org/omegahat/XML/RS/examples/itunes.xml") # fields = unique(unlist(xmlApply(top, names))) songs = xmlApply(xmlRoot(doc), function(x) xmlSApply(x, xmlValue)) ######################## # Working form the original format of /plist/dict/dict/dict/ doc = xmlInternalTreeParse("~/itunes.xml") dicts = doc["/plist/dict/dict/dict"] transform = function(dict) { vals = xmlSApply(dict, xmlValue) i = seq(1, by = 2, length = length(vals)/2) structure(vals[i + 1], names = gsub(" ", "_", vals[i])) } songs = lapply(dicts, transform) # For reading, xpath and lapply() # user system elapsed # 6.784 0.073 7.153 ########################################## # distribution of bit rates for sampling of the sound. table(as.numeric(sapply(songs, "[[", "Bit_Rate"))) # How often each song was played. hist(as.numeric(sapply(songs, "[[", "Play_Count"))) # Number of songs on each album hist(table(sapply(songs, "[", "Album"))) # Year song was recorded (?) hist(as.numeric(sapply(songs, "[", "Year"))) # Song size hist(as.numeric(sapply(songs, "[", "Total_Time"))) # Album time album.time = tapply(songs, sapply(songs, "[", "Album"), function(x) sum(as.numeric(sapply(x, "[", "Total_Time"))/1000)) dateAdded = as.POSIXct(strptime(sapply(songs, "[", "Date_Added"), "%Y-%m-%dT%H:%M:%S")) #XXX hist(as.numeric(dateAdded)) # Artists with most songs sort(table(sapply(songs, "[", "Artist")), decreasing = TRUE)[1:40] # How many songs on single and double "albums" table(sapply(songs, "[", "Disc_Number")) table(sapply(songs, "[", "Kind")) table(sapply(songs, "[", "Genre")) # Check the sampling rate for points off the line. plot(as.numeric(sapply(songs, "[", "Total_Time")), as.numeric(sapply(songs, "[", "Size"))) XML/inst/examples/internalXInclude.xml0000644000176000001440000000106112062616230017523 0ustar ripleyusers
    This is the title
    This section should have the same title as the article. y = 10*x + 3 + rnorm(length(x))
    x = 1:10
    XML/inst/examples/internalNodes.S0000644000176000001440000000031011741563530016465 0ustar ripleyuserslibrary(XML) tr <- xmlTree("Duncan") tr$addTag("name", attrs=c(a=1,b="xyz"), close=FALSE) tr$addTag("first", "Larry") tr$addTag("last", "User") tr$closeTag() o = xmlRoot(tr$value()) as(o, "XMLNode") XML/inst/examples/index.html0000644000176000001440000000452411741563530015544 0ustar ripleyusers XML Package for R and S-Plus

    An XML package for the S language

    Source: XML_0.97-0.tar.gz

    Windows binary: XML_0.97-0.zip

    Last Release: Thu Aug 12 07:56:21 PDT 2004

    This package provides facilities for the S language to

    • parse XML files, URLs and strings, using either the DOM (Document Object Model)/tree-based approach, or the event-driven SAX (Simple API for XML) mechanism;
    • generate XML content to buffers, files, URLs, and internal XML trees;
    • read DTDs as S objects.
    The package supports both R and S-Plus 5 and higher.

    NOTE

    The most significant visible changes to the package include:
    • uses libxml2, by default and only libxml(version 1) if libxml2 is not present
    • uses a namespace for R.

    Download

    The source for the S package can be downloaded as XML_0.97-0.tar.gz.

    Latest windows binary: XML_0.97-0.zip

    Note that this latest version has not been tested with S-Plus Specifically, it should work as before, however the state mechanism for the SAX parser may not. This just requires testing.

    Documentation

  • A reasonably detailed overview of the package and what we might use XML for.
  • A manual in and a quick guide to the package (PDF).
    b
  • A short overview of the package.
  • Brief and incomplete Notes on generating XML within S
  • FAQ for the package.
  • Changes to the packages (by release).

  • Duncan Temple Lang <duncan@wald.ucdavis.edu>
    Last modified: Fri Apr 1 04:32:29 PST 2005 XML/inst/examples/iTunes.plist0000644000176000001440000001452411741563530016074 0ustar ripleyusers Major Version1 Minor Version1 Application Version7.5 Features1 Show Content Ratings Music Folderfile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/ Library Persistent IDBD55EC2E7FDB1DAE Tracks 181 Track ID181 NameDon't Know Why ArtistNorah Jones ComposerJesse Harris AlbumCome Away With Me GenreJazz KindAAC audio file Size3031411 Total Time186152 Disc Number1 Disc Count1 Track Number1 Track Count14 Year2002 Date Modified2007-02-05T10:46:04Z Date Added2005-08-22T21:14:30Z Bit Rate128 Sample Rate44100 Play Count24 Play Date3274252284 Play Date UTC2007-10-02T21:31:24Z Persistent IDD7F9F158A4A48E53 Track TypeFile Locationfile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/01%20Don't%20Know%20Why.m4a File Folder Count-1 Library Folder Count-1 182 Track ID182 NameSeven Years ArtistNorah Jones ComposerLee Alexander AlbumCome Away With Me GenreJazz KindAAC audio file Size2376546 Total Time145262 Disc Number1 Disc Count1 Track Number2 Track Count14 Year2002 Date Modified2007-02-05T10:46:05Z Date Added2005-08-22T21:14:49Z Bit Rate128 Sample Rate44100 Play Count23 Play Date3274252429 Play Date UTC2007-10-02T21:33:49Z Persistent IDD7F9F158A4A48E54 Track TypeFile Locationfile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/02%20Seven%20Years.m4a File Folder Count-1 Library Folder Count-1 183 Track ID183 NameCold Cold Heart ArtistNorah Jones ComposerHank Williams AlbumCome Away With Me GenreJazz KindAAC audio file Size3551301 Total Time218591 Disc Number1 Disc Count1 Track Number3 Track Count14 Year2002 Date Modified2007-02-05T10:46:06Z Date Added2005-08-22T21:15:14Z Bit Rate128 Sample Rate44100 Play Count23 Play Date3274252647 Play Date UTC2007-10-02T21:37:27Z Persistent IDD7F9F158A4A48E58 Track TypeFile Locationfile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/03%20Cold%20Cold%20Heart.m4a File Folder Count4 Library Folder Count1 184 Track ID184 NameFeelin' The Same Way ArtistNorah Jones ComposerLee Alexander AlbumCome Away With Me GenreJazz KindAAC audio file Size2891062 Total Time177352 Disc Number1 Disc Count1 Track Number4 Track Count14 Year2002 Date Modified2007-02-05T10:46:07Z Date Added2005-08-22T21:15:32Z Bit Rate128 Sample Rate44100 Play Count24 Play Date3274252825 Play Date UTC2007-10-02T21:40:25Z Persistent IDD7F9F158A4A48E59 Track TypeFile Locationfile://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/04%20Feelin'%20The%20Same%20Way.m4a File Folder Count-1 Library Folder Count-1 XML/inst/examples/hashTree.R0000644000176000001440000000045611741563530015435 0ustar ripleyusers tt = xmlHashTree() top = addNode("top", , tt) addNode(xmlNode("a"), top, tt) b = addNode(xmlNode("b"), top, tt) c = addNode(xmlNode("c"), b, tt) addNode(xmlNode("c"), top, tt) addNode(xmlNode("c"), b, tt) addNode(xmlTextNode("Some text"), c, tt) xmlElementsByTagName(tt$top, "c") XML/inst/examples/gnumericHandler.R0000644000176000001440000000166311741563530017002 0ustar ripleyusers# # Should turn this into a data frame rather than a matrix. # This would allow us to preserve different data types across # columns/variables. Of course, there isn't an exact one-to-one # correspondence between spreadsheets and data frames. gnumericHandler <- function(fileName) { # read the XML tree from the file. d <- xmlTreeParse(fileName) # Get the Sheet sh <- d$doc$children[["Workbook"]]$children[["Sheets"]]$children[["Sheet"]]$children mat <- matrix(0, as.integer(sh$MaxRow$children[[1]]$value)+1, as.integer(sh$MaxCol$children[[1]]$value)+1) vals <- sh$Cells$children gnumericCellEntry <- function(x) { atts <- sapply(x$attributes, as.integer) val <- x$children$Content$children$text$value tmp <- switch(atts[["Style"]], "1"= as.numeric(val), "2"=as.numeric(val), "3"=val) mat[atts[["Row"]]+1, atts[["Col"]]+1] <<- tmp tmp } sapply(vals, gnumericCellEntry) return(mat) } XML/inst/examples/gettingStarted.xml0000644000176000001440000001771311741563530017265 0ustar ripleyusers
    The idea here is to provide simple examples of how to get started with processing XML in R using some reasonably straightforward "flat" XML files and not worrying about efficiency.
    An Example: Grades Here is an example of a simple file in XML containing grades for students for three different tests. We might want to turn this into a data frame in R with a row for each student and four variables, the name and the scores on the three tests. Since this is a small file, let's not worry about efficiency in any way. We can read the entire document tree into memory and make multiple passes over it to get the information. Our first approach will be to read the XML into an R tree, i.e. R-level XML node objects. We do this with a simple call to xmlTreeParse. doc = xmlRoot(xmlTreeParse("generic_file.xml")) We use xmlRoot to get the top-level node of the tree rather than holding onto the general document information since we won't need it. Since the structure of this file is just a list of elements under the root node, we need only process each of those nodes and turn them into something we want. The "easiest" way to apply the same function to each child of an XML node is with the xmlApply function. What do we want to do for each of the <GRADES> node? We want to get the value, i.e. the simple text within the node, of each of its children. Since this is the same for each of the child nodes in <GRADES>, this is again another call to xmlApply. And since this is all text, we can simplify the result and get back a character vector rather than a list by using xmlSApply which will perform this extra simplication step. So a function to do the initial processing of an individual <GRADES> node might be function(node) xmlSApply(node, xmlValue) since xmlValue returns the text content within an XML node. Let's check that this does what we want by calling it on the first child of the root node. xmlSApply(doc[[1]], xmlValue) And indeed it does. So we can process all the <GRADES> nodes with the command tmp = xmlSApply(doc, function(x) xmlSApply(x, xmlValue)) The result is a character matrix in which the rows are the variables and the columns are the records. So let's transpose this. tmp = t(tmp) Now, we have finished working with the XML; the rest is regular R programming. grades = as.data.frame(matrix(as.numeric(tmp[,-1]), 2)) names(grades) = names(doc[[1]])[-1] grades$Student = tmp[,1] There seems to be more messing about after we have got the values out of the XML file. There are several things that might seem more complex but that actually just move the work to different places, i.e. when we are traversing the XML tree. Here's another alternative using XPath. doc = xmlTreeParse("generic_file.xml", useInternal = TRUE) ans = lapply(c("STUDENT", "TEST1", "TEST2", "FINAL"), function(var) unlist(xpathApply(doc, paste("//", var, sep = ""), xmlValue))) And this gives us a list containing the variables with the values as character vectors. as.data.frame(lapply(names(ans), function(x) if(x != "STUDENT") as.integer(x) else x ))
    Another Example: Customer Information List The second example is another list, this time of description of customers. The first two nodes in the document are shown below: ALFKI Alfreds Futterkiste Maria Anders Sales Representative
    Obere Str. 57
    Berlin 12209 Germany 030-0074321 030-0076545
    ANATR Ana Trujillo Emparedados y helados Ana Trujillo Owner
    Avda. de la Constitución 2222
    México D.F. 05021 Mexico (5) 555-4729 (5) 555-3745
    ]]>
    We can quickly verify that all the nodes under the root are customers with the command doc = xmlRoot(xmlTreeParse("Cust-List.xml")) table(names(doc)) We see that these are all "Customers". We could further explore to see if each of these nodes has the same fields. fields = xmlApply(doc, names) table(sapply(fields, identical, fields[[1]])) And the result indicates that about half of them are the same. Let's see how many unique field names there are: unique(unlist(fields)) This gives 10. And we can see how may fields are in each of the Customers nodes with xmlSApply(doc, xmlSize) So most of the nodes have most of the fields. So let's think about a data frame. What we can do is treat each of the fields as having a simple string value. Then we can create a data frame with the 10 character columns and with NA values for each of the records. Thne we will fill this in record at a time. ans = as.data.frame(replicate(10, character(xmlSize(doc))), stringsAsFactors = FALSE) names(ans) = unique(unlist(fields)) Now that we have the skeleton of the answer, we can process each of the Customers nodes. Note that we used a global assignemnt in the function to change the ans in the global environment rather than the local version within the function call. Also, we loop over the indices of the nodes in the tree, i.e. use sapply(1:xmlSize(doc), ) rather than xmlSApply(doc, ) simply because we need to know which row to put the results for each node.
    There are various other ways to process these two XML files. One is to use handler functions to process the internal nodes as they are being converted from C-level data structures to R objects in a call to xmlTreeParse. This avoids multiple traversal of the tree but can seem a little indirect until you get the hang of it. And some transformations can be cumbersome using this approach as it is a bottom up transformation. The event-driven parsing provided by xmlEventParse is a SAX style approach. This is quite low level and used when reading the entire XML document into memory and then processing it is prohibitive, i.e. when the XML file is very, very large. The use of XPath to perform queries and get subsets of nodes involves a) learning XPath and b) potentially multiple passes over the tree. If one has to do many queries, this can be slow overall eventhough each is very fast. However, if you know XPath or are happy to learn the basics, this can be quite convenient, avoiding having to write recursive functions to search for the nodes of interests. Using the internal nodes (as you must for XPath) also gives you the ability to go up the tree, i.e. find parent, ancestor and sibling nodes, and not just down to children. So we have more flexibility in how we traverse the tree.
    XML/inst/examples/gettingStarted.html0000644000176000001440000003463111741563530017427 0ustar ripleyusers


    Abstract

    The idea here is to provide simple examples of how to get started with processing XML in R using some reasonably straightforward "flat" XML files and not worrying about efficiency.

    An Example: Grades

    Here is an example of a simple file in XML containing grades for students for three different tests.

    <?xml version="1.0" ?>
    <TABLE>
       <GRADES>
          <STUDENT> Fred </STUDENT>
          <TEST1> 66 </TEST1>
          <TEST2> 80 </TEST2>
          <FINAL> 70 </FINAL>
       </GRADES>
       <GRADES>
          <STUDENT> Wilma </STUDENT>
          <TEST1> 97 </TEST1>
          <TEST2> 91 </TEST2>
          <FINAL> 98 </FINAL>
       </GRADES>
    </TABLE>
    
    

    We might want to turn this into a data frame in R with a row for each student and four variables, the name and the scores on the three tests.

    Since this is a small file, let's not worry about efficiency in any way. We can read the entire document tree into memory and make multiple passes over it to get the information. Our first approach will be to read the XML into an R tree, i.e. R-level XML node objects. We do this with a simple call to xmlTreeParse() .

    doc = xmlRoot(xmlTreeParse("generic_file.xml"))
    

    We use xmlRoot() to get the top-level node of the tree rather than holding onto the general document information since we won't need it.

    Since the structure of this file is just a list of elements under the root node, we need only process each of those nodes and turn them into something we want. The "easiest" way to apply the same function to each child of an XML node is with the xmlApply() function. What do we want to do for each of the <GRADES> node? We want to get the value, i.e. the simple text within the node, of each of its children. Since this is the same for each of the child nodes in <GRADES>, this is again another call to xmlApply() . And since this is all text, we can simplify the result and get back a character vector rather than a list by using xmlSApply() which will perform this extra simplication step.

    So a function to do the initial processing of an individual <GRADES> node might be

     function(node) 
         xmlSApply(node, xmlValue)
    

    since xmlValue() returns the text content within an XML node. Let's check that this does what we want by calling it on the first child of the root node.

     xmlSApply(doc[[1]], xmlValue)
    

    And indeed it does.

    So we can process all the <GRADES> nodes with the command

     tmp = xmlSApply(doc, function(x) xmlSApply(x, xmlValue))
    

    The result is a character matrix in which the rows are the variables and the columns are the records. So let's transpose this.

     tmp = t(tmp)
    

    Now, we have finished working with the XML; the rest is regular R programming.

     grades = as.data.frame(matrix(as.numeric(tmp[,-1]), 2))
     names(grades) = names(doc[[1]])[-1]
     grades$Student = tmp[,1]
    

    There seems to be more messing about after we have got the values out of the XML file. There are several things that might seem more complex but that actually just move the work to different places, i.e. when we are traversing the XML tree.

    Here's another alternative using XPath.

    doc = xmlTreeParse("generic_file.xml", useInternal = TRUE)
    
    ans = lapply(c("STUDENT", "TEST1", "TEST2", "FINAL"),
                 function(var)
                   unlist(xpathApply(doc, paste("//", var, sep = ""), xmlValue)))
    

    And this gives us a list containing the variables with the values as character vectors.

    as.data.frame(lapply(names(ans), 
                         function(x) if(x != "STUDENT") as.integer(x) else x ))
    

    Another Example: Customer Information List

    The second example is another list, this time of description of customers. The first two nodes in the document are shown below:

    
    <dataroot xmlns:od="urn:schemas-microsoft-com:officedata">
    <Customers>
    <CustomerID>ALFKI</CustomerID>
    <CompanyName>Alfreds Futterkiste</CompanyName>
    <ContactName>Maria Anders</ContactName>
    <ContactTitle>Sales Representative</ContactTitle>
    <Address>Obere Str. 57</Address>
    <City>Berlin</City>
    <PostalCode>12209</PostalCode>
    <Country>Germany</Country>
    <Phone>030-0074321</Phone>
    <Fax>030-0076545</Fax>
    </Customers>
    <Customers>
    <CustomerID>ANATR</CustomerID>
    <CompanyName>Ana Trujillo Emparedados y helados</CompanyName>
    <ContactName>Ana Trujillo</ContactName>
    <ContactTitle>Owner</ContactTitle>
    <Address>Avda. de la Constitucin 2222</Address>
    <City>Mxico D.F.</City>
    <PostalCode>05021</PostalCode>
    <Country>Mexico</Country>
    <Phone>(5) 555-4729</Phone>
    <Fax>(5) 555-3745</Fax>
    </Customers>
    </dataroot>
    
    

    We can quickly verify that all the nodes under the root are customers with the command

     doc = xmlRoot(xmlTreeParse("Cust-List.xml"))
     table(names(doc))
    

    We see that these are all "Customers". We could further explore to see if each of these nodes has the same fields.

    fields = xmlApply(doc, names)
    table(sapply(fields, identical, fields[[1]]))
    

    And the result indicates that about half of them are the same. Let's see how many unique field names there are:

     unique(unlist(fields))
    

    This gives 10. And we can see how may fields are in each of the Customers nodes with

    xmlSApply(doc, xmlSize)
    

    So most of the nodes have most of the fields.

    So let's think about a data frame. What we can do is treat each of the fields as having a simple string value. Then we can create a data frame with the 10 character columns and with NA values for each of the records. Thne we will fill this in record at a time.

    ans = as.data.frame(replicate(10, character(xmlSize(doc))), 
                          stringsAsFactors = FALSE)
    names(ans) = unique(unlist(fields))
    

    Now that we have the skeleton of the answer, we can process each of the Customers nodes.

    sapply(1:xmlSize(doc),
              function(i) {
                 customer = doc[[i]] 
                 ans[i, names(customer)] <<- xmlSApply(customer, xmlValue)
              })
    

    Note that we used a global assignemnt in the function to change the ans in the global environment rather than the local version within the function call. Also, we loop over the indices of the nodes in the tree, i.e. use sapply(1:xmlSize(doc), ) rather than xmlSApply(doc, ) simply because we need to know which row to put the results for each node.

    There are various other ways to process these two XML files. One is to use handler functions to process the internal nodes as they are being converted from C-level data structures to R objects in a call to xmlTreeParse() . This avoids multiple traversal of the tree but can seem a little indirect until you get the hang of it. And some transformations can be cumbersome using this approach as it is a bottom up transformation.

    The event-driven parsing provided by xmlEventParse() is a SAX style approach. This is quite low level and used when reading the entire XML document into memory and then processing it is prohibitive, i.e. when the XML file is very, very large.

    The use of XPath to perform queries and get subsets of nodes involves a) learning XPath and b) potentially multiple passes over the tree. If one has to do many queries, this can be slow overall eventhough each is very fast. However, if you know XPath or are happy to learn the basics, this can be quite convenient, avoiding having to write recursive functions to search for the nodes of interests. Using the internal nodes (as you must for XPath) also gives you the ability to go up the tree, i.e. find parent, ancestor and sibling nodes, and not just down to children. So we have more flexibility in how we traverse the tree.

    XML/inst/examples/getElements.S0000644000176000001440000000163011741563530016142 0ustar ripleyusersgetElements = function(elementNames) { els = list() startElement = function(node, ...) { if(xmlName(node) %in% elementNames) els[[length(els) + 1]] <<- node node } list(startElement = startElement, els = function() els) } # h = getElements("a") htmlTreeParse("http://www.omegahat.org/RSXML/index.html", handlers = h) links = sapply(h$els(), function(x) xmlGetAttr(x, "href")) # Of course, we could do these two steps in one with a handler # function like # getLinks = function() { links = character() list(a = function(x) links <<- c(links, xmlGetAttr(x, "href")), links = function() links) } # h = getLinks() # htmlTreeParse("http://www.omegahat.org/RSXML/index.html", handlers = h) # h$links() # If we want the nodes, we can use getElements. Otherwise, we # can use a specialize handler that converts the information on the # fly into the data structures we want at the end. XML/inst/examples/generic_file.xml0000644000176000001440000000050611741563530016700 0ustar ripleyusers
    Fred 66 80 70 Wilma 97 91 98
    XML/inst/examples/genericHandlers.R0000644000176000001440000000145711741563530016771 0ustar ripleyusers# This illustrates using the new naming scheme for generic handlers # that use a . prefix. h = list(.text = function(content) cat("text:", xmlValue(content), "\n"), .comment = function(node) cat("##", xmlValue(node), "\n"), .processingInstruction = function(target, content) cat("PI: [", target, "]", content, "\n"), .startElement = function(node, attrs) { cat("New node:", xmlName(node), paste(names(xmlAttrs(node)), collapse = ", "), "\n")}, .endElement = function(node) { cat("end node:", node, "\n")}, .startDocument = function(...) cat("start of document\n"), .endDocument = function(...) cat("end of document\n"), .cdata = function(node) cat("CDATA:", xmlValue(node), "\n") ) xmlTreeParse("test.xml", handlers = h, asTree = TRUE, useDotNames = TRUE) XML/inst/examples/functionIndex.Sxml0000644000176000001440000000216311741563530017226 0ustar ripleyusers ]> functionIndex This function returns the names of the functions that are to be defined in this file. This allows one to know ahead of time what functions the file defines and to source specific functions from this file using the which argument of xmlSource function(file, ...) { d &sgets; xmlRoot(xmlTreeParse(file, ...)) sapply(d[names(d) == "function"], function(x) { if(!is.na(match("sname", names(x)))) xmlValue(x[["sname"]][[1]]) else { xmlValue(x[[1]][[1]]) } }) } XML/inst/examples/formals.xsl0000644000176000001440000000150411741563530015735 0ustar ripleyusers other , = () XML/inst/examples/foo.html0000644000176000001440000000107411741563530015215 0ustar ripleyusers

    A Title

    This is some text

    CSS content

    Some additional text. And a link.


    Duncan Temple Lang <duncan@wald.ucdavis.edu>
    Last modified: Thu Dec 3 17:13:16 PST 2009 XML/inst/examples/filterDataFrameEvent.R0000644000176000001440000000534211741563530017725 0ustar ripleyusers# A closure for use with xmlEventParse # and for reading a data frame using the DatasetByRecord.dtd # DTD in $OMEGA_HOME/XML/DTDs. # To test # xmlEventParse("mtcars.xml", handler()) # dataFrameFilter <- function(desiredRowNames) { data <- NULL # Private or local variables used to store information across # method calls from the event parser numRecords <- 0 varNames <- NULL meta <- NULL currentRecord <- 0 expectingVariableName <- F rowNames <- NULL currentColumn <- 1 processRow <- T # read the attributes from the dataset dataset <- function(x, atts) { numRecords <<- length(desiredRowNames) # as.integer(atts[["numRecords"]]) # store these so that we can put these as attributes # on data when we create it. meta <<- atts } variables <- function(x, atts) { # From the DTD, we expect a count attribute telling us the number # of variables. #cat("Creating matrix",numRecords, as.integer(atts[["count"]]),"\n") data <<- matrix(0., numRecords, as.integer(atts[["count"]])) # set the XML attributes from the dataset element as R # attributes of the data. attributes(data) <<- c(attributes(data),meta) } # when we see the start of a variable tag, then we are expecting # its name next, so handle text accordingly. variable <- function(x,...) { expectingVariableName <<- T } record <- function(x,atts) { if(is.na(match(atts[["id"]], desiredRowNames))) { # discard this entry cat("Discarding", atts[["id"]],"\n") return() } processRow <<- T # advance the current record index. currentRecord <<- currentRecord + 1 rowNames <<- c(rowNames, atts[["id"]]) } text <- function(x,...) { if(x == "") return(NULL) if(expectingVariableName == FALSE && processRow == FALSE) { cat("Ignoring",x,"\n") return() } if(expectingVariableName) { varNames <<- c(varNames, x) if(length(varNames) >= ncol(data)) { expectingVariableName <<- F dimnames(data) <<- list(NULL, varNames) } } else { e <- gsub("[ \t]*",",",x) els <- strsplit(e,",")[[1]] for(i in els) { data[currentRecord, currentColumn] <<- as.numeric(i) currentColumn <<- currentColumn + 1 } } } endElement <- function(x,...) { if(x == "dataset") { dimnames(data)[[1]] <<- rowNames } else if(x == "record") { currentColumn <<- 1 } } return(list(variable = variable, variables = variables, dataset=dataset, text = text, record= record, endElement = endElement, data = function() {data }, rowNames = function() rowNames )) } XML/inst/examples/faq.R0000644000176000001440000000031011741563530014426 0ustar ripleyusers# Getting the question text from a FAQ. doc = xmlParse("FAQ.xml") q = getNodeSet(doc, "//question") sapply(q, function(x) paste(sapply(xmlChildren(x)[names(x) == "text"], xmlValue), collapse = "\n")) XML/inst/examples/eventHandlers.R0000644000176000001440000000027411741563530016472 0ustar ripleyuserscharacterOnlyHandler <- function() { txt <- NULL text <- function(val,...) { txt <<- c(txt, val) } getText <- function() { txt } return(list(text=text, getText=getText)) } XML/inst/examples/event.S0000644000176000001440000000714511741563530015016 0ustar ripleyusers# # Code for reading Chris (Volinsky)'s event data from XML into a dataframe. # # # This is the top-level function that you call to read the file and convert it # into a data frame. # You can call the eventHandlers() function manually and pass the result # as the argument to the handlers argument if you want to override the # RowConverters or verbose argument. # readXMLEventDataFrame = function(fileName = "event.xml", handlers = eventHandlers(), ...) { xmlEventParse(fileName, handlers = handlers, ...)$result() } # # The verbose argument prints out information about the different # events the parser observes. # # RowConverters is a named list of functions that convert the specified/name # variable's values. # # In the current implementation, we first build up a matrix of strings # and then at the very end, we convert the columns to variables and # form a data.frame(). If we were smarter (i.e. could assume more), # we could create the data.frame() first and then add rows to it. # Ideally, the XML dataset would tell us the number of records # (i.e. elements) it contains and we could populate the # data.frame() from its "declared" types. # # eventHandlers = function(RowConverters = list(Date=I, f2 = as.integer, f3 = as.numeric), verbose = TRUE) { # dataset = data.frame() dataset = matrix("", 1, length(RowConverters), dimnames = list(NULL, names(RowConverters))) dataName = "" date = "" recordNum = 1 var = "" record <- character() textString <- character(0) # This is called when we encounter the start of an XML element/tag. # For , we grab the id and date and store them to name the # dataset. # For , we grab the name attribute and use that as the name # of the current variable when we get its value from the (end of the) text # start = function(name, atts) { if(name == "event") { dataName <<- atts[["id"]] date <<- atts[["date"]] if(verbose) cat("Data name", dataName, ", date", date, "\n", sep="") } else if(name == "feature") { var <<- atts[["name"]] if(verbose) cat("Variable", var, "\n") } } text = function(val) { # We should have a converter here to get the right type. if(var != "") { if(verbose) cat("Text", val, "\n") textString <<- c(textString, val) } } # this is called when we get the close of a tag (i.e. ) # In the case of a dialog, we assume we have the end of a record # and we put it into the dataset by adding the record/row. # In our case, record is a character vector with names. # This is a character vector. We'll convert the columns at the end. end = function(name) { if(name == "dialog") { dataset <<- rbind(dataset, record) recordNum <<- recordNum + 1 if(verbose) cat("Next record\n") } else if(name == "feature") record[var] <<- paste(textString, collapse="") textString <<- character(0) var <<- "" } # This handler is the one we call at the end to # post-process the result result = function() { dataset = dataset[-1,] ans = as.data.frame(lapply(names(RowConverters), function(x) RowConverters[[x]](dataset[,x]))) names(ans) = names(RowConverters) ans = list(ans) names(ans) = dataName ans } list(result = result, text = text, endElement = end, startElement = start) } # # # How to call: data is in the file named event.xml # # v = readXMLEventDataFrame()[[1]] # v # Date f2 f3 #1 2003-05-23 1 3 # 2 2003-05-24 17 24 # > sapply(v, class) # Date f2 f3 # "AsIs" "integer" "numeric" # > # XML/inst/examples/event.R0000644000176000001440000000153711741563530015014 0ustar ripleyusersh = list(.text = function(content) cat("text:", content, "\n"), .comment = function(content) cat("##", content, "\n"), .processingInstruction = function(target, content) cat("PI: [", target, "]", content, "\n"), .startElement = function(node, attrs) { cat("New node:", node, paste(names(attrs), collapse = ", "), "\n")}, .endElement = function(node) { cat("end node:", node, "\n")}, .startDocument = function(...) cat("start of document\n"), .endDocument = function(...) cat("end of document\n"), .cdata = function(content) cat("CDATA:", content, "\n"), .entityDeclaration = function(...) {cat("Defining an entity\n"); print(list(...))}, .getEntity = function(name) { cat("Getting entity", name, "\n") ; "x"} #entity, isStandalone ) xmlEventParse("test.xml", h, useDotNames = TRUE) XML/inst/examples/enhancedDataFrame.R0000644000176000001440000000376311741563530017210 0ustar ripleyusers handler <- function() { data <- NULL # Private or local variables used to store information across # method calls from the event parser numRecords <- 0 varNames <- NULL meta <- NULL currentRecord <- 0 expectingVariableName <- F rowNames <- NULL # read the attributes from the dataset dataset <- function(x,atts) { numRecords <<- as.integer(atts[["numRecords"]]) # store these so that we can put these as attributes # on data when we create it. meta <<- atts } variables <- function(x, atts) { # From the DTD, we expect a count attribute telling us the number # of variables. data <<- matrix(0., numRecords, as.integer(atts[["count"]])) # set the XML attributes from the dataset element as R # attributes of the data. attributes(data) <<- c(attributes(data),meta) } # when we see the start of a variable tag, then we are expecting # its name next, so handle text accordingly. variable <- function(x,...) { expectingVariableName <<- T } record <- function(x,atts) { # advance the current record index. currentRecord <<- currentRecord + 1 rowNames <<- c(rowNames, atts[["id"]]) } text <- function(x,...) { if(x == "") return(NULL) if(expectingVariableName) { varNames <<- c(varNames, x) if(length(varNames) >= ncol(data)) { expectingVariableName <<- F dimnames(data) <<- list(NULL, varNames) } } else { e <- gsub("[ \t]*",",",x) vals <- sapply(strsplit(e,",")[[1]], as.numeric) data[currentRecord,] <<- vals } } endElement <- function(x,...) { if(x == "dataset") { dimnames(data)[[1]] <<- rowNames } } return(list(variable = variable, variables = variables, dataset=dataset, text = text, record= record, endElement = endElement, data = function() {data }, rowNames = function() rowNames )) } XML/inst/examples/ecb.R0000644000176000001440000000224111741563530014415 0ustar ripleyusers# Reading European bank exchange rates. history = "~/eurofxref-hist.xml" daily = "~/eurofxref-daily.xml" # f = "http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml" f = history d = xmlTreeParse(f, useInternalNodes = TRUE) getNodeSet(d, "/gesmes:Envelope//Cube[@currency='SIT']", c(gesmes="http://www.gesmes.org/xml/2002-08-01")) getNodeSet(d, "//gesmes:Envelope", c(gesmes="http://www.gesmes.org/xml/2002-08-01")) namespaces = c(ns = "http://www.ecb.int/vocabulary/2002-08-01/eurofxref") namespaces <- c(ns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref") # Get the data for Slovenian currency for all time periods. # Find all the nodes of the form slovenia = getNodeSet(d, "//ns:Cube[@currency='SIT']", namespaces ) # Now we have a list of such nodes, loop over them and get the rate # attribute rates = as.numeric( sapply(slovenia, xmlGetAttr, "rate") ) # Now put the date on each element # find nodes of the form # and extract the time attribute names(rates) = sapply(getNodeSet(d, "//ns:Cube[@time]", namespaces ), xmlGetAttr, "time") # Or we could turn these into dates with strptime(). XML/inst/examples/docbook.R0000644000176000001440000000167611741563530015317 0ustar ripleyusers# Find the elements used in the collection of chapters of the SVN book. # The approach works for any set of XML documents. # The SVN book can be downloaded from # http://svnbook.red-bean.com/trac/changeset/3082/tags/en-1.4-final/src/en/book?old_path=%2F&format=zip if(FALSE) { # Find the nodes and attributes used in the SVN book. files = list.files("SVN-book", "\\.xml$", full.names = TRUE) svn.book = xmlElementSummary(files) } if(FALSE) { # Process the XSL files in IDynDocs, OmegahatXSL and docbook-xsl h = xmlElementSummaryHandlers() dir = "~/Classes/StatComputing/XDynDocs/inst/XSL" invisible( lapply(c("", "OmegahatXSL", "docbook-xsl-1.73.2/html", "docbook-xsl-1.73.2/fo"), function(sub) { files = list.files(paste(dir, sub, sep = .Platform$file.sep), "\\.xsl$", full.names = TRUE) invisible(sapply(files, xmlEventParse, handlers = h, replaceEntities = FALSE)) })) h$result() } XML/inst/examples/dataFrameEvent.R0000644000176000001440000000462211741563530016557 0ustar ripleyusers# A closure for use with xmlEventParse # and for reading a data frame using the DatasetByRecord.dtd # DTD in $OMEGA_HOME/XML/DTDs. # To test # xmlEventParse("mtcars.xml", handler()) # handler <- function() { data <- NULL # Private or local variables used to store information across # method calls from the event parser numRecords <- 0 varNames <- NULL meta <- NULL currentRecord <- 0 expectingVariableName <- F rowNames <- NULL currentColumn <- 1 # read the attributes from the dataset dataset <- function(x, atts) { numRecords <<- as.integer(atts[["numRecords"]]) # store these so that we can put these as attributes # on data when we create it. meta <<- atts } variables <- function(x, atts) { # From the DTD, we expect a count attribute telling us the number # of variables. #cat("Creating matrix",numRecords, as.integer(atts[["count"]]),"\n") data <<- matrix(0., numRecords, as.integer(atts[["count"]])) # set the XML attributes from the dataset element as R # attributes of the data. attributes(data) <<- c(attributes(data),meta) } # when we see the start of a variable tag, then we are expecting # its name next, so handle text accordingly. variable <- function(x,...) { expectingVariableName <<- T } record <- function(x,atts) { # advance the current record index. currentRecord <<- currentRecord + 1 rowNames <<- c(rowNames, atts[["id"]]) } text <- function(x,...) { if(x == "") return(NULL) if(expectingVariableName) { varNames <<- c(varNames, x) if(length(varNames) >= ncol(data)) { expectingVariableName <<- F dimnames(data) <<- list(NULL, varNames) } } else { e <- gsub("[ \t]*",",",x) els <- strsplit(e,",")[[1]] for(i in els) { data[currentRecord, currentColumn] <<- as.numeric(i) currentColumn <<- currentColumn + 1 } } } endElement <- function(x,...) { if(x == "dataset") { dimnames(data)[[1]] <<- rowNames } else if(x == "record") { currentColumn <<- 1 } } return(list(variable = variable, variables = variables, dataset=dataset, text = text, record= record, endElement = endElement, data = function() {data }, rowNames = function() rowNames )) } XML/inst/examples/createTree1.R0000644000176000001440000000043711741563530016035 0ustar ripleyuserstr <- xmlTree("Duncan") tr$addTag("name", attrs=c(a=1,b="xyz"), close=F) tr$addTag("first", "Duncan") tr$addTag("last", "Temple Lang") tr$closeTag() tr$value() cat(saveXML(tr$value())) # # DuncanTemple Lang XML/inst/examples/createTree.R0000644000176000001440000000071311741563530015751 0ustar ripleyusersdoc <- xmlTree() doc$addTag("EXAMPLE", close= FALSE, attrs=c("prop1" = "gnome is great", prop2 = "& linux too")) doc$addComment("A comment") doc$addTag("head", close= FALSE) doc$addTag("title", "Welcome to Gnome") doc$addTag("chapter", close= FALSE) doc$addTag("title", "The Linux Adventure") doc$addTag("p") doc$addTag("image", attrs=c(href="linux.gif")) doc$closeTag() doc$closeTag() doc$addTag("foot") doc$closeTag() XML/inst/examples/connections1.R0000644000176000001440000000147011741563530016272 0ustar ripleyusers# Tests reading from a connection. # Trying to get the newlines. library(XML) ReadLines = function(con, n) { x = readLines(con, 1) #This works, but tagging the new line doesn't. return(x) if(length(x)) x = paste(x, "", sep="") print(x) x } handlers = function() { tags = character(0) atts = character(0) text = character(0) startElement = function(x, attrs) { tags <<- append(tags, x) atts <<- append(atts, attrs) } addText = function(txt, ...) { text <<- append(text, txt) } list(startElement = startElement, text = addText, .value = function() { list(tags, atts, text)}, cdata = function(x) addText(x)) } h = handlers() invisible(xmlEventParse(file(system.file("exampleData", "cdata.xml", package = "XML"), "r"), handlers = h)) h$.value() XML/inst/examples/connections.R0000644000176000001440000000144211741563530016210 0ustar ripleyuserslibrary(XML) fileName = system.file("exampleData", "job.xml", package = "XML") # xmlEventParse(file(fileName, "r")) xmlConnection = function(con) { if(is.character(con)) con = file(con, "r") if(isOpen(con, "r")) open(con, "r") function(len) { if(len < 0) { cat("closing connection in xmlConnection\n") close(con) return(character(0)) } cat("getting line from connection\n") x = character(0) tmp = "" while(length(tmp) > 0 && nchar(tmp) == 0) { tmp = readLines(con, 1) if(length(tmp) == 0) break if(nchar(tmp) == 0) x = append(x, "\n") else x = tmp } if(length(tmp) == 0) return(tmp) x = paste(x, collapse="") print(x) x } } v = xmlEventParse(xmlConnection(fileName)) XML/inst/examples/catalog.R0000644000176000001440000000077611741563530015311 0ustar ripleyusers# Examples of manipulating the catalog for resolving URIs. # Get this from catalog.xml catalogResolve("http://www.omegahat.org/XSL/") loadCatalogs("~/Classes/StatComputing/XDynDocs/inst/XML/catalog.xml") # Found in the first/original catalog, not IDynDocs. catalogResolve("http://docbook.sourceforge.net/release/xsl/current/foo") catalogResolve("http://www.statdocs.org/foo") catalogAdd(c("http://www.r-project.org/XSL/" = "/Users/duncan/R/XSL")) catalogResolve("http://www.r-project.org/XSL/bob.xsl") XML/inst/examples/bondsTables.R0000644000176000001440000000155211741563530016130 0ustar ripleyuserslibrary(XML) doc = htmlTreeParse("http://finance.yahoo.com/bonds/composite_bond_rates", useInternalNodes = TRUE) # Use XPath expression to find the nodes #
    .. # as these are the ones we want. o = getNodeSet(doc, "//div/table[@class='yfirttbl']") # Write a function that will extract the information out of a given table node. readHTMLTable = function(tb) { # get the header information. colNames = sapply(tb[["thead"]][["tr"]]["th"], xmlValue) vals = sapply(tb[["tbody"]]["tr"], function(x) sapply(x["td"], xmlValue)) matrix(as.numeric(vals[-1,]), nrow = ncol(vals), dimnames = list(vals[1,], colNames[-1]), byrow = TRUE ) } # Now process each of the table nodes in the o list. tables = lapply(o, readHTMLTable) names(tables) = lapply(o, function(x) xmlValue(x[["caption"]])) XML/inst/examples/bondYields.R0000644000176000001440000000075311741563530015766 0ustar ripleyusers uri = "http://www.treas.gov/offices/domestic-finance/debt-management/interest-rate/yield.xml" h = function() { tables = list() tb = function(node) { # this will drop any NULL values from empty nodes. els = unlist(xmlApply(node, xmlValue)) vals = as.numeric(els) names(vals) = gsub("BC_", "", names(els)) tables[[length(tables) + 1]] <<- vals NULL } list("G_BC_CAT" = tb, getTables = function() tables) } xmlTreeParse(uri, handlers = h())$getTables() XML/inst/examples/author.R0000644000176000001440000000037411741563530015173 0ustar ripleyusersxsd = xmlTreeParse("examples/author.xsd", isSchema =TRUE, useInternal = TRUE) doc = xmlInternalTreeParse("examples/author.xml") #h = schemaValidationErrorHandler() #.Call("RS_XML_xmlSchemaValidateDoc", xsd@ref, doc, 0L, h) xmlSchemaValidate(xsd, doc) XML/inst/examples/SSource.dtd0000644000176000001440000000260311741563530015623 0ustar ripleyusers XML/inst/examples/SAXEntity.R0000644000176000001440000000142611741563530015520 0ustar ripleyusersentities <- new.env(TRUE) assign(".text", "", entities) handlers = list( .entityDeclaration = function(name, type, content, system, public) { if((length(content) == 0 || nchar(content) == 0) && length(system) > 0) { # if(file.exists(system)) content = paste(readLines(system), collapse = "\n") } if(length(content)) assign(name, content, entities) else warning("Can't resolve entity ", name) }, .getEntity = function(name) { if(exists(name, entities)) return(get(name, entities)) return(character()) }, .text = function(txt) { entities$.text <- paste(entities$.text, txt) }) xmlEventParse("entity2.xml", handlers, useDotNames = TRUE) XML/inst/examples/RhelpInfo.xml0000644000176000001440000000041111741563530016146 0ustar ripleyusers Omegahat The libxml2 library Duncan Temple Lang duncan@wald.ucdavis.edu XML/inst/examples/RhelpArchive.xml0000644000176000001440000000160211741563530016637 0ustar ripleyusers Some general references that apply to all. Function 1 details about parameter named "a" Function 2 XML/inst/examples/Rhelp.xml0000644000176000001440000000064611741563530015344 0ustar ripleyusers An example This is a longer description of the function XML/inst/examples/README0000644000176000001440000000024611741563530014424 0ustar ripleyuserspropmptXML - an R function analogous to prompt for generating help/documentation files for R functions, but this generates this in XML format according to Rhelp.dtd. XML/inst/examples/HTMLText.R0000644000176000001440000000155011741563530015277 0ustar ripleyusers# The following illustrates how we can get the text # Michael Conklin. # Also see ./foo.html as an example with javascript content # and a pseudo/fake css node. doc = htmlParse("http://www.omegahat.org/") txt = xpathSApply(doc, "//body//text()", xmlValue) #The result is a character vector that contains all the text. #By limiting the nodes to the body, we avoid the content in #such as inlined JavaScript or CSS. #It is also possible that a document may have

    The XML package: Best Practices

    Duncan Temple Lang

    University of California at Davis

    Department of Statistics


    I have received several emails recently (early 2011) asking me about aspects of the XML package that I no longer recommend. These questions were probably based on documentation for the package that dates back many, many years. Those approaches still work and have advantages in certain cases, but I don't recommend them.

    Basically, I recommend using the "internal" C-level representation for XML documents, trees, and nodes. These involve using the xmlParse() function and the newXMLDoc() and newXMLNode() (newXMLTextNode() , newXMLCommentNode() , newXMLPINode() , newXMLCDataNode() , newXMLNamespace() .)

    The other approaches are to use "pure" R-level representations of the tree and nodes. There are two primary approaches to this

    1. list of lists of lists where each node is a list consisting of an element name, a character vector of attributes,

    2. a collection of nodes and information associating nodes with their parents or their children

    While both can be readily used to represent a fixed tree, we use the second approach within an environment to facilitate modifying the tree, e.g. adding new nodes, changing existing nodes. The XMLHashTree class is used for this.

    Another advantage of the nodes and separate data structure that represents the relationships between the nodes (children of what node) is that we can traverse the tree in either direction, i.e. finding the parent of a node or its children. The list-of-lists approach does not allow this (without additional structures).

    Why should you use the internal/libxml2/C representation? Two primary reasons: speed, and ease of manipulating and querying the resulting tree. Basically, using the internal representations avoid the time and memory involved in converting the internal XML representation to R objects. Most importantly, we can only use the XPath language to query an XML document if that document is represented as internal nodes. XPath is such a powerful and efficient means of extracting nodes in a tree that this wins the argument over representation for almost all cases.

    Why not use the internal/libxml2/C representation? One problem is that when we serialize an R object that contains an XML tree or node in this form, by default, that will not be restored as the same R object when deserialized/load-ed back into an R session. This is because the R object is a pointer to an opaque data structure in memory rather than values that are known to R. If we use "pure" R-based representations of the tree, then they will be serialized and deserialized identically across R sessions. But why is this not a real concern? Firstly, we can serialize an XML document or node trivially be converting it to a string and write it to a file. See saveXML() . This does mean we have to explicitly serialize and deserialize XML content separately from other R objects. If we do want to handle regular R objects and XML objects together, we can use R's serialize() or saveRDS() functions and their refhook parameter to specify a way to handle serializing these XML representations so that they can be faithfully restored. We can use xmlSerializeHook() and xmlDeserializeHook() in the XML package to do this.

    Creating XML Content in R

    There are two styles of creating XML (or HTML) content in R. The most common and obvious us to create the content by paste() ing and sprintf() ing strings together to represent the content. The other approach is to create node objects and piece the tree together in a more structured manner.

    The node approach is more flexible and a better programming approach. It allows us to easily build individual pieces at different stages in our code without having to worry about putting the pieces together in a specific order. The string approach is simple but a little brute-force and does constrain the software development needed to create the entire document. To add content to existing content requires the use of regular expressions or of parsing the XML content into an actual tree of nodes! A significant benefit of the string approach is that it can be vectorized, while the creation of nodes is not (and unlikely to be).

    Creating nodes rather than using strings works very well when the nodes being created are very different in structure/content and cannot easily be vectorized using string operations. In this case, there is no benefit to using the string approach. When the nodes being created are very similar, use the string approach. But best of all, we can mix the two approaches. Often, a collection of sub-nodes within the tree are very similar, e.g. <Placemark> elements in KML (the Keyhole Markup Language used for displays, e.g., Google Earth). In this case, we can create the collection of these nodes easily using

    1. string methods to construct the text for the nodes

    2. surround this text within a temporary, unused node

    3. parse the string content as XML to create actual nodes

    4. add these as children of the real XML node we constructed

    A good example of this is in the RKML package.

    This gives us the best of both worlds where we can write a function that returns actual XML nodes or adds those nodes to an existing parent node, but is capable of doing this using either approach and can chose whichever one is most appropriate. In this way, the implementation is encapsulated and the overall approach can use the node approach rather than being forced to use the string approach throughout.

    The xmlOutputBuffer() and xmlOutputDOM() functions are means to creating an XML tree with a higher-level interface than strings made up functions for adding nodes. I suggest using the C-level internal nodes provided by newXMLNode() and friends.

    JSON versus XML

    Many REST-based Web Services are now offering to return results in either XML or JavaScript Object Notation (JSON) format.Which should you use? This is true when dealing with XML or JSON in an context, and not just Web Services. Which format should you prefer? In many cases, you won't have a choice and then the good news is that there are tools in R for both - XML, RJSONIO and rjson.

    The answer on which format to use depends on what you want to do with the content/document. If the result is large, the JSON representation is likely to be somewhat smaller than the XML representation and so be transferred from the server to your client machine faster. If the results are compressed, the size difference is not likely to be very larger. Furthermore, there has been a lot of silly comparisons of the size of JSON relative to XML by people (even on json.org) where the examples have used repetitious and silly XML representations.

    JSON is very simple to read into R, e.g. using the fromJSON() function in either of the RJSONIO or rjson packages. (RJSONIO() is faster as it uses a C-based parser.) This simplicity means less control over how the results are represented in R and one might need to rearrange the results in R in a second step. This can consume more memory than if one used XML directly, but often this is not an issue.

    If the document is large (either in JSON or XML), and you do not want to extract it all but only a few fields from each record, then XML and XPath is likely to be more efficient in both speed and memory. There is no standard, widely implemented equivalent of XPath for JSON. (There are implementations of JPath but that is not a standard and is implemented only in JavaScript and so not easily brought into R (although we use SpiderMonkey to call JavaScript code from R).)

    Basically, JSON is slightly more succinct than XML and that is good, but not as much as is touted by some people and compression can effectively remove that distinction. JSON is less complex, but less general. It works very well for dealing with common, raw, basic data structures we use in much of computing. It does not deal well with structured aggregates and more complex, class-oriented structures.

    XML/Docs/ModernDoc.Rdb0000644000176000001440000002227611741563530014153 0ustar ripleyusers
    The <omg:pkg>XML</omg:pkg> package: Best Practices DuncanTemple Lang University of California at Davis Department of Statistics
    I have received several emails recently (early 2011) asking me about aspects of the XML package that I no longer recommend. These questions were probably based on documentation for the package that dates back many, many years. Those approaches still work and have advantages in certain cases, but I don't recommend them. Basically, I recommend using the "internal" C-level representation for XML documents, trees, and nodes. These involve using the xmlParse function and the newXMLDoc and newXMLNode (newXMLTextNode, newXMLCommentNode, newXMLPINode, newXMLCDataNode, newXMLNamespace.) The other approaches are to use "pure" R-level representations of the tree and nodes. There are two primary approaches to this
    1. list of lists of lists where each node is a list consisting of an element name, a character vector of attributes,
    2. a collection of nodes and information associating nodes with their parents or their children
    While both can be readily used to represent a fixed tree, we use the second approach within an environment to facilitate modifying the tree, e.g. adding new nodes, changing existing nodes. The XMLHashTree class is used for this.
    Another advantage of the nodes and separate data structure that represents the relationships between the nodes (children of what node) is that we can traverse the tree in either direction, i.e. finding the parent of a node or its children. The list-of-lists approach does not allow this (without additional structures). Why should you use the internal/libxml2/C representation? Two primary reasons: speed, and ease of manipulating and querying the resulting tree. Basically, using the internal representations avoid the time and memory involved in converting the internal XML representation to R objects. Most importantly, we can only use the XPath language to query an XML document if that document is represented as internal nodes. XPath is such a powerful and efficient means of extracting nodes in a tree that this wins the argument over representation for almost all cases. Why not use the internal/libxml2/C representation? One problem is that when we serialize an R object that contains an XML tree or node in this form, by default, that will not be restored as the same R object when deserialized/load-ed back into an R session. This is because the R object is a pointer to an opaque data structure in memory rather than values that are known to R. If we use "pure" R-based representations of the tree, then they will be serialized and deserialized identically across R sessions. But why is this not a real concern? Firstly, we can serialize an XML document or node trivially be converting it to a string and write it to a file. See saveXML. This does mean we have to explicitly serialize and deserialize XML content separately from other R objects. If we do want to handle regular R objects and XML objects together, we can use R's serialize or saveRDS functions and their refhook parameter to specify a way to handle serializing these XML representations so that they can be faithfully restored. We can use xmlSerializeHook and xmlDeserializeHook in the XML package to do this.
    Creating XML Content in R There are two styles of creating XML (or HTML) content in R. The most common and obvious us to create the content by pasteing and sprintfing strings together to represent the content. The other approach is to create node objects and piece the tree together in a more structured manner. The node approach is more flexible and a better programming approach. It allows us to easily build individual pieces at different stages in our code without having to worry about putting the pieces together in a specific order. The string approach is simple but a little brute-force and does constrain the software development needed to create the entire document. To add content to existing content requires the use of regular expressions or of parsing the XML content into an actual tree of nodes! A significant benefit of the string approach is that it can be vectorized, while the creation of nodes is not (and unlikely to be). Creating nodes rather than using strings works very well when the nodes being created are very different in structure/content and cannot easily be vectorized using string operations. In this case, there is no benefit to using the string approach. When the nodes being created are very similar, use the string approach. But best of all, we can mix the two approaches. Often, a collection of sub-nodes within the tree are very similar, e.g. Placemark elements in KML (the Keyhole Markup Language used for displays, e.g., Google Earth). In this case, we can create the collection of these nodes easily using
    1. string methods to construct the text for the nodes
    2. surround this text within a temporary, unused node
    3. parse the string content as XML to create actual nodes
    4. add these as children of the real XML node we constructed
    A good example of this is in the RKML package.
    This gives us the best of both worlds where we can write a function that returns actual XML nodes or adds those nodes to an existing parent node, but is capable of doing this using either approach and can chose whichever one is most appropriate. In this way, the implementation is encapsulated and the overall approach can use the node approach rather than being forced to use the string approach throughout. The xmlOutputBuffer and xmlOutputDOM functions are means to creating an XML tree with a higher-level interface than strings made up functions for adding nodes. I suggest using the C-level internal nodes provided by newXMLNode and friends.
    JSON versus XML Many REST-based Web Services are now offering to return results in either XML or JavaScript Object Notation (JSON) format.Which should you use? This is true when dealing with XML or JSON in an context, and not just Web Services. Which format should you prefer? In many cases, you won't have a choice and then the good news is that there are tools in R for both - XML, RJSONIO and rjson. The answer on which format to use depends on what you want to do with the content/document. If the result is large, the JSON representation is likely to be somewhat smaller than the XML representation and so be transferred from the server to your client machine faster. If the results are compressed, the size difference is not likely to be very larger. Furthermore, there has been a lot of silly comparisons of the size of JSON relative to XML by people (even on json.org) where the examples have used repetitious and silly XML representations. JSON is very simple to read into R, e.g. using the fromJSON function in either of the RJSONIO or rjson packages. (RJSONIO is faster as it uses a C-based parser.) This simplicity means less control over how the results are represented in R and one might need to rearrange the results in R in a second step. This can consume more memory than if one used XML directly, but often this is not an issue. If the document is large (either in JSON or XML), and you do not want to extract it all but only a few fields from each record, then XML and XPath is likely to be more efficient in both speed and memory. There is no standard, widely implemented equivalent of XPath for JSON. (There are implementations of JPath but that is not a standard and is implemented only in JavaScript and so not easily brought into R (although we use SpiderMonkey to call JavaScript code from R).) Basically, JSON is slightly more succinct than XML and that is good, but not as much as is touted by some people and compression can effectively remove that distinction. JSON is less complex, but less general. It works very well for dealing with common, raw, basic data structures we use in much of computing. It does not deal well with structured aggregates and more complex, class-oriented structures.
    XML/Docs/MemoryManagement.pdf0000644000176000001440000011000011741563530015567 0ustar ripleyusers%PDF-1.4 % 4 0 obj << /Title (Memory Management in the the XML Package) /Author (Duncan Temple Lang) /Keywords (addFinalizer) /Creator (DocBook XSL Stylesheets with Apache FOP) /Producer (Apache FOP Version 0.95) /CreationDate (D:20110325165610-07'00') >> endobj 5 0 obj << /N 3 /Length 14 0 R /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 6 0 obj [/ICCBased 5 0 R] endobj 7 0 obj << /Type /Metadata /Subtype /XML /Length 15 0 R >> stream Memory Management in the the XML Package Duncan Temple Lang 2011-03-25T16:56:10-07:00 2011-03-25T16:56:10-07:00 DocBook XSL Stylesheets with Apache FOP 2011-03-25T16:56:10-07:00 addFinalizer 1.4 Apache FOP Version 0.95 endstream endobj 11 0 obj << /Type /Annot /Subtype /Link /Rect [ 346.331 744.45 370.77298 754.35 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 13 0 obj << /Length 16 0 R /Filter /FlateDecode >> stream x[mo6_:J;p/h{).Pzh%Wz;$rnƈ-=$r83M?CrS.~g,dr 氙Mu) ׹fXv ;DAARAT.;m0Tvw^Y@)+ZϫK1H\ܪ>2gxbEZ㈁SlVpZȅQì?gP- Ko3#tk;0y՞D$X^s'",K.`3 m&N|^7A$Ty IJC0b _^VCC y+]) 7`]$RlJ, l )eOŘ&ű׺-%)XDT]Bd9ç̶Sxm1X! "A0fi@RdI+2y1vJ3L3,$ a0 o}RRLB ո'42 ʈcC[\p;"sӐH`z1 WF3J{8'fSD9%Sv5s4:DItGNYnd 9,9E<yƜȤU\4(Kq`  n/Ys!Fro[}󺭟_W0U@2ɂ,,`KHb脁(LťtgBdzbءPchߒL('ʏ -Ga1jNA٧Z:c sv$\e'ؾyMq Dޞc`%ֻW᷼+@l<#i[Ei={9#EUנ'7l5,U<2k>~8s+g..3G\J;XJfcbx mF=X@ DI|KԇT{hP342fұtp T_zMhZ (sIG7/% kjq9ܛ8xun*$E(/Zo>u ,)U_W'?GpOUI=CdzeFXrLO8)ЌEG)Jd_`Qedb3/E'+eP`7f _c# endstream endobj 12 0 obj [ 11 0 R ] endobj 10 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 12 0 R /Contents 13 0 R >> endobj 14 0 obj 2596 endobj 15 0 obj 999 endobj 16 0 obj 3511 endobj 18 0 obj << /Type /Annot /Subtype /Link /Rect [ 346.331 744.45 370.77298 754.35 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 20 0 obj << /Length 21 0 R /Filter /FlateDecode >> stream xZmo6_!ZԻ>8\z!l]]v=Io(HÍ7(,kg^8RK+v=ƽ4dkĂySmg~6Nj FC\T?o0Idm|DCsy{q.8nW`, "ߏ$nwZZTb-wFƇn#O/[6k;MF, <4_bFy49fU8[8[<4iY(^8֜|-Cr~-eUԇ #ڹFR8pw94D}1?M$:L'q&ѣKL9gq[+YJs9|w}X9y:9cce6GC(.NQT^v͡lܭ]MuaBTG}dS{P]GW.n;'cXplaa0 5XwhD`J)lu MRN41p0ʑ‡_zv+.1W}p7 cހsKVjrQ՚@QWkfh/zM]lųii6ѢWCmF6Rm;c%h 5jrUJ>ͻjY7W︯S;KC?͢$ lqˆg!Tb/j<*Df,:u(Oՠkz_ZѲ^Gઽ(tr" ٶys̯Vs`lݾ5y[(Œ!xl\W f.[ՠV%IlS%_!qk xT;@A!\{Zt)aku.&cw&7{jj]H-7v70:p#tQp, [pOOtj̚ }X8pN,: G򤙈dRL6)ʬՌUwS6a<<X}Dvr`x-Z,&Lgַ]2@9_ Y1yYA,-&f\-Q+:DT0y|Cs:dFH]Ȣ^WQ ObuIJAۺZNbg$@kad@)7'7]p#U'M@}݈'(g'x3Gm۽,ʕ3eP!QgKL]VoTCus^, ّP>ZD# K?BSɰYDSۤ# gA9+Dh aBKm`Xp1bWtAPhruw\:@;GWbSn.iS[>nڎAN"AL(#KAJce<(8S]Snb*9bP]A]vZdYW9hKd~>C4:]oYxxPS5i<(0J&Isqe endstream endobj 19 0 obj [ 18 0 R ] endobj 17 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 19 0 R /Contents 20 0 R >> endobj 21 0 obj 2347 endobj 23 0 obj << /Type /Annot /Subtype /Link /Rect [ 346.331 744.45 370.77298 754.35 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 25 0 obj << /Length 26 0 R /Filter /FlateDecode >> stream x[mo6_o W/C^MMqPdE\I7o(N-M<$3rH+~n}_r?b* Va2Ak$x_Um}'g7+lROW?$QM. IO}}Cfrū\I߯~(mnuʽlðVֲ4A0<;3v3Ӿj X(NIeqT4i k+y qy4hqNdgӿgyI,T_;{w{"jPyb*TsrD>\, ~.\6r1R?M%ttzU厡UϠC l7 7s0"OK(۟Z2qX /Io~!l8(񞅣Fv)9`x:t1tWdSP-ݸhZ| Ve3Tσ욢C[5rcUĕu|޴ vzQ#k`',Lw [XXJҮάs}u =V;LY j9*sg"2 &~6g# lDDy.N 6BQ)cm;GƲYW:_=l|Oh/͢[$^և:,a^w ;ed% λ,J J7oϚH!6ho7ю:kTZKfg4ցލ$ħg]rv3>\WB:ԕ"IWNj /W?!\G/y{irOd]\ /(Cd8-r`X!m,!h($=W){;=ʅhw=z+7*%;25|{) تįH$ʮW ov&XEA>xKD60hWyA79]Iv/סs})u8]U_.hJ:Arsi佅8oMIЫD]M,E m4KN Zc[7Z?:$q/dׂ湭]1tF]oNm͋CO`I,qJ _{0b[LG1z(61&BUU'WXau<ĥRKf#,r!hbi0~ H%,,z|;PʒP7A|F$IJc@$ikĄ)g |X`` /nAm@٤SIh麑rœІٮHĮ=nwprVoAJhv!Rzc5ER?~5 P cF/p(lu7_mY;G\ySPS Ldr#թBUw#bC]Dk˺޺*YߏYVFUB?a~-3b D?lLd)&ј ,wES{d?pmA1->A_ !A:8û l Pp6(9ST/ LTXNtPq{<*\EhDؠFp :9LAR洛0 '\-\MdN0e8˼EUJzRϏ~>;phnLSu cU>SjLy] 4e{l@!:Ѧ<a4F\W^"hpH,YFN`)^ ֤J2jbxXpEI{:)OY&"]laJ`H3ph{h! 3FC]Հ4*۶vUsG7U^ 8`WoPB{tҷ{*S& [4ͪ ;/".+}L33Xo)t.#{Ҳm!h{tt5n`}y/4SA(U^ Uq~hX<:t[; M`#u6rkL,/hSwlGI Q"A!l.8ddQDDm.@V9 xˉqb65br0i*42\ e!i1nsc=GA`ȵXY ?[6+V|b1oX{ #@]j ռH@ƂiXC̾K18}c"10}e"ǧD%;ӳ"]$ @'pC yrG0LyuN?fEr.F1PGFDF>CŽTruB`#9y>Q%Nn'(DMIa5tcI֎ O!ȔAC}m1i*nQ~ޤf\coǃ< 0FQ>c+_W}ѫn8>c-X&AL XWmhrfcDerj/Y[6tǸuEOՔTzL1ZG [Ϡ5k,] %~v/j(U0.i.e!-œIA9 V= ,J]bo]`+)c] GP1.u y¾usHT㛣n7zjxt(w_yo;E!Eje l_d`ݽPdb6ՐԛRK6z(ԓz" ~ rp G, oV$\ß\kz3{?2?i!Fj%XVzYc`dj}[|Vo!K C"Veq  Yȭzc?AMe&-8/p morіS=Xb#p<^Y;h .Q59՛8:v d8>(`6 ۮ9\F}'0o h.(#bMp=$om-eYcd'C@Rpdp dZmW밁F\"4&6kO M@EM@x]9 @ +;x|Q\.<#FnfPбc'z9 Vv[ > E[jc3m ôY fT Fm\/2! =[ 1BKУqFPeܔPAJ{Fs0>T.Sz_>~z(Iذ|7f"O _;B"sؠu}(^跃Tlڲ9~ 븳 ˽5׾sjqt,-~0]n{ʖD"1xNh폢s_"V^WEo,kX E`L"h9.Tշ^8l[NNBFeoYB8 ڗH4 endstream endobj 24 0 obj [ 23 0 R ] endobj 22 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 24 0 R /Contents 25 0 R >> endobj 26 0 obj 4048 endobj 28 0 obj << /Type /Annot /Subtype /Link /Rect [ 346.331 744.45 370.77298 754.35 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 30 0 obj << /Type /Annot /Subtype /Link /Rect [ 428.527 73.64602 452.969 83.54602 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 31 0 obj << /Length 32 0 R /Filter /FlateDecode >> stream x[o_!،H($ȵ)r"-<׫V>ޡ$#ۻxqg PAk 9 ſ/ eA| !xPo~/ ůV!tڒ\ L$3mˌN簲gf^|e$cq '4C[yheފF<ȃlao.,$<1ɌiRWq(>T1?"Ն~&e)٨Rpj:!Рi0Z Fǡ{)Y[l "fƼٖ%>гg̣ qm<Ө<= m3>oӾ2vZ{:v-8xYice:z8n]AГl@VKyBvVRwI,ges),uD$Ki%˛Eq2u:A[*w hOL&Aƚ"{s93@^ʩ +A$BX?a7y-{A/^:30([mdVcP8irvlhNt1vK0_ f$Xɾb*xg9(K>bmt__'8"@^gj/KWS-eJz%*jeԞ4>y|R=VHzkoU|o:-#U{a*z62:ho-,lʣڛ=!. Cnmvrid1Quf= 57q1wl"Ϛr 6TT]CPjW [jF2` g3Z:{\0|`Xe^m XrxڌEk_.[luBryϼ֮~!,|Gg+:DKyA| }]ՎKY& egf(=SbLrFDغy65[fSz*zs)re d'׽۟n^XR0TwہX➳ ,ϖInFd1!3Q6vH5Kcp@Ytќ9fn@}10g:[0>إt8kGҌ`;rv3U+uW RYC(omck_}1M Bp>m m9["}u8όR7d֏&%^Xz%vovSԡ KFplȲmt9"nS<4 :mY$'o֞ еէ{&*Ɋc]`B(j>K! [ȓ[tS)GA^#Af*tAsq` M/nAt;/=4M݊'f1D5Ն"$l{-Ib#D*`YU09E+HM# :?]{(NXGj2oj`2aTQ|+}}I`2B=g]Rȋ)o98,h[,ΓnHDg/fIbo1 8Xn,ƥٷ.D(OCJnNwmSfgPa9wLu:%8$ Yɲ8OS -)k;:Dzm1B.gAֆM`ٖʙ@|h[qzp&}N ۝5)SB$ "o,C)uLh# ׵%b9y8"yKrV2ڌVi5K^M}YjW/{rCRg>承x3N(L/Vںh,L2(q:{%G endstream endobj 29 0 obj [ 28 0 R 30 0 R ] endobj 27 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 29 0 R /Contents 31 0 R >> endobj 32 0 obj 3214 endobj 34 0 obj << /Type /Annot /Subtype /Link /Rect [ 346.331 744.45 370.77298 754.35 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Rect [ 114.226 438.641 243.321 448.541 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 36 0 R /H /I >> endobj 38 0 obj << /Type /Annot /Subtype /Link /Rect [ 243.321 438.641 281.513 448.541 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 36 0 R /H /I >> endobj 39 0 obj << /Length 40 0 R /Filter /FlateDecode >> stream xZo _aHtЇ~mnb \gFqlO&imId-DEy%egAq6A( !Og|>ka_~MBӒ8Ldi_h,i?ܜ}. 8n0L,nϫb/`U[݋ha؉/&]vv(OXei3w. qq_5jc|NI~4.2<” *XjBM'c.j#bwBH ib\^EAVp2!4NU +S6+["(8~߮|&Dən l'o܈#H?\n*\pTȔp<. 稔Mc^wU[{YcIY0OM Pwgfu1+"keJ[ACQ$(WZ=s'e[Q"^^y__²bY<Έ]R^;0z jX+} 焙7|,,iOnw=OE)9 -nnI- KA)֔׊ 8bQS۱, ^hbqoa7ȴfcbE%WΗN-wUq$CN+H˖YÐ2)҆p1X.L|84OcPa˪wA>Ų li΄Ou?[I9>nw bjY5-kޖ OD5*ΘƎO$ u9SØ 9Մ*gR[#3O^'|1#V(e>cDǙY"] 9 V;?ܽ,XOm_Lj,̕JJCȹ. endstream endobj 35 0 obj [ 34 0 R 37 0 R 38 0 R ] endobj 33 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 35 0 R /Contents 39 0 R >> endobj 40 0 obj 2840 endobj 41 0 obj << /Type /Annot /Subtype /Link /Rect [ 284.552 663.704 337.078 686.719 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Rect [ 489.01 565.49 511.021 575.39 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/Sxslt) /S /URI >> /H /I >> endobj 45 0 obj << /Type /Annot /Subtype /Link /Rect [ 526.20996 502.569 531.70996 512.469 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 44 0 R /H /I >> endobj 47 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 489.369 119.313995 499.26898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 48 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.41797 489.369 539.91797 499.26898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 50 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 476.169 232.899 486.069 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 49 0 R /H /I >> endobj 51 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.198 476.169 539.698 486.069 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 49 0 R /H /I >> endobj 52 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 462.969 113.558 472.86902 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 36 0 R /H /I >> endobj 53 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.498 462.969 539.998 472.86902 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 36 0 R /H /I >> endobj 55 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 449.769 240.867 459.669 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R /H /I >> endobj 56 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.272 449.769 539.772 459.669 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R /H /I >> endobj 58 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 436.569 188.976 446.469 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 57 0 R /H /I >> endobj 59 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.416 436.569 539.916 446.469 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 57 0 R /H /I >> endobj 60 0 obj << /Type /Annot /Subtype /Link /Rect [ 189.20401 193.24503 213.646 203.14502 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.omegahat.org/RSXML) /S /URI >> /H /I >> endobj 61 0 obj << /Length 62 0 R /Filter /FlateDecode >> stream xk6( 2Evd;d{A]Iu.~yT%e{&@H\u"C<K+^?jx+ʫvgSj*eW]mgTia.﫿=nW"?̳s:qa8vEȩƬ#7'NW3 }DHyHٞ?Kved%~;+mJݥ5zK )*qW{IT tzL1N#0Bȕ >uyl|zJP/2 aVVVҸs?ueߏ)j_~H]:B艚Nc9wڹڥ$6'VJsoOuݗy|ݿ|n617vswb74zޠ.dTL98$.ZcrW?emzhyG2jqs41oY+ ;^ݧ3u([{:n7ziOyJӡJSF86cӿOoc+9=zaas?9wX7Om6MrRQz{h*jU% >%77ɟ9uΪw}h'BnJ&.e^4}٫H_ 5Y5~f)k% 2%,V/ILgA]ti .1uԁ<#<#<"#I._>}t㲇'M٧y!ƧdUd $צZ6ZzXRWk5CsSFO_ǵ87%qnJܔ¹)4fp n07f,cps n1y7[`p n-2EsM 87-qnZܴ¹is fp n07f,ep n197<[`p n-0Eqn)dhqnF܌Ĺs3f$(Q874fp n07f, s2H ڒWfɊz/D74ib ݔnͮn e"Yv4E#6nwܲmwe]ov8Ml/]/Q|-,f׿Ԟ~I}w[30 lm&Ѻ C_̸`:ly6qTu}( 3z!Zߵ|/ॎ.2_skSh} z{*{&鹆]ppE+[8h3@ 5bWfuw$JX]] z"~;d9Y}I2ڄ dL,P`1}Le[lWkn MyIpTk(;ǻR2vz4tNE$J ըM[oFi6(R.F=Kv2U!B膜.RNkіӭ6:~eLvtO;|Ybz(ѵ=IEfڵl) '^U6Xnuؔܠz]ad*P c}ӞJk6ȌMazߗƺL:yM vs8,Mu_԰o΢FJVkU<7=M1h-D8P׮WZ#g<MiɌL*Krgi!/z4] xXJZݾ},TFd=LvTʨc}gf=7]efZ顔5˯0~ /b-{Yq 8'L= mN#5yiU6'6]53{sb1l H/>lxмRفlMf{]!YX0xǠԔ`;VgGC;7Pɺ(qL9ԅ0NsyX!$u{R&ƥF+>K˓/{S*Lg1IU/$1iBN$1,&/<mR>*0ۉNǮMc{,7 9Tsk NK9y&,= MFLU8gn6dn'JhI|tO=-S~Jp?}56ɥ~*8@l)ҵK[D%o"' v^ddbJhayI`+O =Rq!Eד/TRv*U^u?kg4;}ۮ?]Oم)ڽ^%yُS,XK ]@/}~үS$/-kX߽⫻W7woۡg=6_&W}yu:4_0x`1$Bq̜lu0q=64oﲅ~>=r]\DOmؕq7iGoâL-Mqz歇瓶e+eEd銋U'\e*2ڪ^B+VCJ7m-5/>^xj?ST=^+LUg-9諸HtS4JƊ^uPǟte9*pInͺDbiEfʇI͏~\szeU=Չs6cVK~*2㍧X.hoZvAuȳ6]Ol\(km;̴2kW%uF{!&$bŧEʈ{_uaR:YvݼܞΉN1L x4e|s*W+'`mVxnoMmW!x endstream endobj 42 0 obj [ 41 0 R 43 0 R 45 0 R 47 0 R 48 0 R 50 0 R 51 0 R 52 0 R 53 0 R 55 0 R 56 0 R 58 0 R 59 0 R 60 0 R ] endobj 8 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 42 0 R /Contents 61 0 R >> endobj 62 0 obj 5749 endobj 65 0 obj << /Title (Memory Management in the the XML Package) /Parent 64 0 R /Next 67 0 R /A 63 0 R >> endobj 67 0 obj << /Title (Table of Contents) /Parent 64 0 R /Prev 65 0 R /Next 68 0 R /A 66 0 R >> endobj 68 0 obj << /Title () /Parent 64 0 R /Prev 67 0 R /Next 69 0 R /A 44 0 R >> endobj 69 0 obj << /Title (A solution) /Parent 64 0 R /Prev 68 0 R /Next 70 0 R /A 46 0 R >> endobj 70 0 obj << /Title (Manging Nodes with No Document) /Parent 64 0 R /Prev 69 0 R /Next 71 0 R /A 49 0 R >> endobj 71 0 obj << /Title (Problems) /Parent 64 0 R /Prev 70 0 R /Next 72 0 R /A 36 0 R >> endobj 72 0 obj << /Title (By-passing the Memory Management) /Parent 64 0 R /Prev 71 0 R /First 73 0 R /Last 73 0 R /Count -1 /A 54 0 R >> endobj 73 0 obj << /Title (Removing Finalizers) /Parent 72 0 R /A 57 0 R >> endobj 74 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding >> endobj 75 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 76 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding >> endobj 77 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 78 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 79 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 80 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >> endobj 81 0 obj << /Limits [(Problems) (Problems)] /Names [(Problems) 36 0 R] >> endobj 82 0 obj << /Limits [(id36060040) (id36060040)] /Names [(id36060040) 44 0 R] >> endobj 83 0 obj << /Limits [(id36061602) (id36061602)] /Names [(id36061602) 63 0 R] >> endobj 84 0 obj << /Limits [(id36365998) (id36365998)] /Names [(id36365998) 46 0 R] >> endobj 85 0 obj << /Limits [(id36366103) (id36366103)] /Names [(id36366103) 49 0 R] >> endobj 86 0 obj << /Limits [(id36366224) (id36366224)] /Names [(id36366224) 54 0 R] >> endobj 87 0 obj << /Limits [(id36366388) (id36366388)] /Names [(id36366388) 57 0 R] >> endobj 88 0 obj << /Limits [(Problems) (id36366388)] /Kids [81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R] >> endobj 89 0 obj << /Dests 88 0 R >> endobj 1 0 obj << /Type /Pages /Count 6 /Kids [8 0 R 10 0 R 17 0 R 22 0 R 27 0 R 33 0 R ] >> endobj 2 0 obj << /Type /Catalog /Pages 1 0 R /Metadata 7 0 R /Lang (en) /PageLabels 9 0 R /Outlines 64 0 R /PageMode /UseOutlines /Names 89 0 R >> endobj 3 0 obj << /Font << /F1 75 0 R /F11 74 0 R /F10 76 0 R /F5 77 0 R /F3 78 0 R /F9 79 0 R /F6 80 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] /ColorSpace << /DefaultRGB 6 0 R >> >> endobj 9 0 obj << /Nums [0 << /P (1) >> 1 << /P (2) >> 2 << /P (3) >> 3 << /P (4) >> 4 << /P (5) >> 5 << /P (6) >> ] >> endobj 36 0 obj << /Type /Action /S /GoTo /D [22 0 R /XYZ 72.0 591.015 null] >> endobj 46 0 obj << /Type /Action /S /GoTo /D [10 0 R /XYZ 72.0 285.808 null] >> endobj 49 0 obj << /Type /Action /S /GoTo /D [17 0 R /XYZ 72.0 144.09698 null] >> endobj 54 0 obj << /Type /Action /S /GoTo /D [22 0 R /XYZ 72.0 198.935 null] >> endobj 57 0 obj << /Type /Action /S /GoTo /D [33 0 R /XYZ 72.0 547.8 null] >> endobj 44 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 72.0 434.919 null] >> endobj 63 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 72.0 720.0 null] >> endobj 64 0 obj << /First 65 0 R /Last 72 0 R >> endobj 66 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 72.0 563.83997 null] >> endobj xref 0 90 0000000000 65535 f 0000033634 00000 n 0000033727 00000 n 0000033892 00000 n 0000000015 00000 n 0000000267 00000 n 0000002949 00000 n 0000002982 00000 n 0000031066 00000 n 0000034096 00000 n 0000007869 00000 n 0000004071 00000 n 0000007842 00000 n 0000004255 00000 n 0000008054 00000 n 0000008075 00000 n 0000008095 00000 n 0000010750 00000 n 0000008116 00000 n 0000010723 00000 n 0000008300 00000 n 0000010935 00000 n 0000015291 00000 n 0000010956 00000 n 0000015264 00000 n 0000011140 00000 n 0000015476 00000 n 0000019191 00000 n 0000015497 00000 n 0000019157 00000 n 0000015681 00000 n 0000015867 00000 n 0000019376 00000 n 0000022818 00000 n 0000019397 00000 n 0000022777 00000 n 0000034222 00000 n 0000019581 00000 n 0000019721 00000 n 0000019861 00000 n 0000023003 00000 n 0000023024 00000 n 0000030948 00000 n 0000023208 00000 n 0000034622 00000 n 0000023389 00000 n 0000034302 00000 n 0000023533 00000 n 0000023675 00000 n 0000034382 00000 n 0000023821 00000 n 0000023958 00000 n 0000024098 00000 n 0000024237 00000 n 0000034464 00000 n 0000024379 00000 n 0000024516 00000 n 0000034544 00000 n 0000024656 00000 n 0000024793 00000 n 0000024933 00000 n 0000025123 00000 n 0000031250 00000 n 0000034701 00000 n 0000034778 00000 n 0000031271 00000 n 0000034828 00000 n 0000031384 00000 n 0000031488 00000 n 0000031575 00000 n 0000031672 00000 n 0000031789 00000 n 0000031884 00000 n 0000032029 00000 n 0000032107 00000 n 0000032217 00000 n 0000032324 00000 n 0000032437 00000 n 0000032546 00000 n 0000032658 00000 n 0000032763 00000 n 0000032873 00000 n 0000032955 00000 n 0000033043 00000 n 0000033131 00000 n 0000033219 00000 n 0000033307 00000 n 0000033395 00000 n 0000033483 00000 n 0000033597 00000 n trailer << /Size 90 /Root 2 0 R /Info 4 0 R /ID [ ] >> startxref 34909 %%EOF XML/Docs/MemoryManagement.html0000644000176000001440000010203011741563530015766 0ustar ripleyusers Memory Management in the the XML Package

    Memory Management in the the XML Package

    Duncan Temple Lang

    University of California at Davis

    Department of Statistics

    Abstract

    We describe some of the complexities of memory management in the XML package. We outline various strategies that the R programmer can use with this package to make computations more efficient. We also explain how to reason about managing nodes and documents in this and related packages (e.g. Sxslt).


    In R, garbage collection just works as the user expects - when an object is no longer referenced, it is available to be cleaned up and the memory reused. This is simple to understand in the case of variables. For example, when we assign a value to a variable x, the value is referenced and so cannot be garbage collected. If we assign another value to x or remove x, the original value is now no longer referenced and becomes available for collection. What about when we have an object in a list, e.g. x$y = 1:10. The vector from 1 through 10 is referenced. If we assign a new value to the element y in x, then it will be avalable for garbage collection.

    Another more complex situation is when we have two or more R objects that reference a shared value, e.g.

    a = 1:10
    x = a
    y = a
    

    R's computational model is that when this happens, the assignment to x and y causes the right hand side (the value of a) to be copied. But R does not do this in an effort to be efficient with memory. R only copies the value when it is changed in a variable that references it. So if we change an element of y, then we force a copy of the entire vector and change just that. a and x will still point to the same R vector.

    How does this relate to the XML package ? The only thing of concern to us here is when we are dealing with internal/C-representations. The critical issue is simply this. Suppose we have an XML document created by either xmlParse() or newXMLDoc() , e.g.

    doc = xmlParse("<foo><bar>Some text</bar></foo>", asText = TRUE)
    

    Then we use some mechanism (e.g. XPath or direct manipulation of the nodes) to get access to one or more nodes, e.g.

    nodes = getNodeSet(doc, "//bar")
    

    Now, if we remove doc or simply return nodes from a function that has doc as a local variable, we have a problem. We are referencing individual nodes in a XML tree, but are no longer referencing the document or overall tree. What's the issue? Well, since the document consumes memory, we must arrange to release it when we no longer need it. However, we do need part of the document, specifically the individual nodes for which we have a reference in an R variable. If we released the tree, we would release the nodes along with it. We cannot take a copy of the individual nodes as we need to be able to find, e.g., their ancestors, i.e. other parts of the tree. So we cannot free the memory associated with the document/entire tree while we still have references to the .

    Now, while we have references to the individual nodes, all is well. But when we release all of these, we need to release the memory associated with the document. When we release of these nodes, we must not release the document unless there are no other nodes in the document being referenced in R variables.

    The situation is further complicated when we create nodes outside of a document, e.g. with newXMLNode() . We might have

    makeRow = 
    function(tbl = newXMLNode("table"))
    {
      newXMLNode("tr", parent = tbl)
    }
    

    and the call

    r = makeRow()
    

    causes the <table> node to be unreachable from R, but needed as we can reach its child <tr>. Until r is released, we must ensure that tbl is not released. But when tr is released, tbl should be considered for release.

    So we need a mechanism which can track these references to sub-nodes, determine when none exist and a document can be released. We must also be able to handle nodes which are not part of a document, but just a collection of related nodes that form a "virtual" document but have no C-level xmlDoc object associated with them.

    There is a yet more complicated issue. While we may hold a reference to a node or a document in R, C code can chose to free the document (or a node). We should be in control of this and in most cases we are. However, when we are using another package that uses these libxml2 nodes, those libraries can chose to free documents or nodes.

    A solution

    An approach that we have implemented to address this issue is as follows. Let's take the case where we have an actual XML document (i.e. a C-level xmlDoc object with associated nodes). This and all its nodes are C-level objects, initially unrelated to R. When we parse this document, we add a C-level finalizer for the external pointer representing the C-level data structure in R. The finalizer is charged with freeing the document (via a call to xmlFreeDoc) if that is "appropriate". This finalizer routine is invoked when R has no more references to the pointer to this xmlDoc object. So when we explicitly remove the variable representing the parse document or it goes out of scope, this will be called during the next garbage collection R runs.

    So when this finalizer is invoked, how can it determine whether it is "appropriate" to release the xmlDoc's memory and hence all its nodes. The answer is that it looks at a field in this structure that gives the count of the number of nodes in the tree that are currently referenced by R variables. Each time we return a node from this document from C-level code back to R, we create a new external pointer containing the address of the node. Then we register a finalizer for that external pointer. The critical step is to increment the counter for this node and also for the document in which it is housed. These counters are stored in the _private field of the xmlNode and xmlDoc structures. This is a pointer to a generic type and we allocate memory to store both the count and also a marker to allow us to identify that it is our private field and not one being used by another software layer on the nodes and documents. So three steps to return a node are

    1. create an externalptr object

    2. update the count (allocating space if necessary) in the node

    3. update the count (allocating space if necessary) in the document

    4. register the finalizer

    The finalizer for a node decrements the counter for the node (if it exists), and decrements the counter for the document (if it exists). If the document has a zero count after this, the document can be freed. If the document still has a positive count, then there must be other nodes that are referenced by R variables and so we cannot release the document. When the finalizers for those other nodes are invoked (when the references are removed in R), the document will be decremented. Eventually, when the final node is released, the document count will be 0 and the document will be freed.

    When the count for a given node gets to 0, the _private field is freed and set to NULL so we recognize that R is no longer managing that node.

    Note that if we never have any references to specific nodes in a document, then the finalizer for the document will guarantee that it is released when the final R reference to the document is removed.

    The following illustrates some of the aspects of this system.

    library(XML)
    doc = xmlParse("data/mtcars.xml")  # finalizer registered.
    nodes1 = getNodeSet(doc, "//record[@id='Mazda RX4']") # get one node - finalizer registered
    .Call("R_getXMLRefCount", nodes1[[1]])  # ask for its reference count
    nodes2 = getNodeSet(doc, "//record[@id='Mazda RX4']") # get the same node again, finalizer registered on new object
    .Call("R_getXMLRefCount", nodes2[[1]])
    .Call("R_getXMLRefCount", nodes1[[1]])
    
    rm(doc)
    gc()
    rm(nodes1)
    gc()
    .Call("R_getXMLRefCount", nodes2[[1]])
    rm(nodes2)
    gc()
    
    rm(nodes2)
    gc()
    

    Manging Nodes with No Document

    We can create nodes without a document and add them as children, siblings and even the parent of other nodes. In this case, we don't have a convenient central location to which all nodes have a reference, i.e. the doc field which is part of each xmlNode. Instead, when we return a reference to a node, we repeat the steps of creating the external pointer, incrementing the counter for that node, registering the finalizer, but do not of course increment the counter for the non existent document.

    When we remove an R reference to a node, the finalizer is run for that unique externalptr object in R. That decrements the count. If that results in the count being 0, then we remove the counter information (i.e. free the value of the _private field and set it to NULL). Next we see if it is appropriate to free the node. We determine this by seeing if a) it has no parent, and b) if none of its descendants (children, their children, and their children, etc.) have a count that it is non-zero. (For large trees, this can involve traversing many nodes.) If there is no parent and no referenced node, then we can free that node.

    Problems

    Reference counting can be problematic for garbage collection. Most problematic is the potential for cycles where a variable a references b and b refers to a and neither is garbage collected eventhough neither is needed. Fortunately, XML documents are trees and not graphs and cycles don't occur.

    We can get into trouble with this management scheme in quite specific circumstances. Because the reference counting mechanism is known only to the XML package (and R indirectly), other code may not honor the conditional freeing of the nodes and document. For example, if we create an XML document (an xmlDoc) and return it to R as an externalptr with a finalizer. We can ignore the case that any nodes are referenced from R. Suppose this document is explicitly freed (via xmlFreeDoc) by some code. Later, when the R variable referencing the document goes out of scope, the externalptr will be garbage collected and the finalizer run. This will check the count on the xmlDoc in its private field to determine if it should free the document. Unfortunately, at this point, the memory pointed to by the externalptr will be made up of random content since it was freed. So we will be interpreting nonsense. There may be a (very small) memory leak as if we had allocated memory to hold the count in the _private field, that won't have been released in the call to xmlFreeDoc.

    The same issue arises for references in R to xmlNode objects. If we have such references and the document or node is explicitly freed by a 3rd party, the finalizer will be looking at random bits in memory and is likely to interpret them incorrectly and crash or seriously corrupt memory.

    These disastrous situations only occur when we mix releasing memory across two regimes - the R garbage collector and another system. As long as this does not happen, the reference counting mechanism makes certain to avoid freeing memory still in use by R and does release memory that is not in use by R.

    There is the possibility of using R's memory manager and garbage collector to allocated and manage memory in libxml2. This would put the two systems under one regime, including libxslt. This would avoid these problems. We need to investigate the precise details of this.

    By-passing the Memory Management

    The reference counting memory management approach works well and removes the need for the R programmer to concern herself with any of the details of working with C-level/native/internal data structures. One issue that can arise however is efficiency. Consider the worst case situation where we have nodes without a document. We might construct a top-level node first and assign it to an R variable. Then we would use newXMLNode() and related functions to create other nodes. It is common to specify the parent argument in such calls to immediately add the newly created node as a child of the parent. Regardless, by default, each of these functions will return an externalptr and add a finalizer for the node. Then, as these are garbage collected, they will gradually reduce the counts to 0 for each node and finally the top-level node can be released. There is a great deal of traversing of this sub-tree to determine if the top-most node can be released. Yet this is often done in a context in which the R programmer knows that the top-most object is to be retained and the descendant nodes are of no direct interest outside the scope of the computation. We may want the externalptr, but not the extra computations of the finalizers and garbage collection. Instead, we may just know that the top node will be added to a document and that there is no need for all this checking of reference counts.

    This same concern arises when extracting nodes from a document with getNodeSet() when we know that the document reference in R will continue to exist after we have finished with the nodes. Similarly, when we retrieve a list of child nodes via xmlChildren() , we may not want to put these references under our reference counting scheme as we may know that the parent will not be released before we discard these references. So a function such as

    function(node)
    {
       sapply(xmlChildren(node), xmlAttrs))
    }
    


    does not need to use reference counting for the child nodes returned by xmlChildren() . However,

    function(node, labels = c("book", "article"))
    {
       xmlChildren(node)[ names(node) %in% labels ]
    }
    


    potentially does as we are returning child nodes which may persist pass the lifetime of their parent node.

    In order to deal with this, many of the R functions that can return an externalptr referencing an xmlNode have a addFinalizer parameter. This can take various different values:

    1. TRUE to use reference counting on the node for this reference

    2. FALSE to not use reference counting for this reference

    3. NA to use the current default

    4. a character string naming a C routine to use as the finalizer, or a NativeSymbolInfo object that contains the resolved C routine to use

    When we know that we don't need to put the returned references under reference counting control, we can explicitly specify FALSE for this argument. So we could write our first function above as

    function(node)
    {
       sapply(xmlChildren(node, addFinalizer = FALSE), xmlAttrs))
    }
    


    Basically, if you know when you are getting a reference to an XML node (an externalptr) that it is guaranteed not to be freed for the duration of its lifespan in R, then you can use addFinalizer = FALSE. This saves a lot of (admittedly fast) computations.

    When writing functions that manipulate XML nodes and documents, it is good practice to add an addFinalizer parameter to the function and use this in the calls to the functions in the XML package that accept such a parameter. This allows callers of your functions to control how the references are managed and to make use of knowledge of their context about the lifespan of the references.

    When in doubt, use the default memory management and do not override it.

    Removing Finalizers

    There are occasions when we have established reference counting and finalizers for externalptr objects referencing xmlNode or xmlDoc objects and need to remove these. This occurs when we are calling functions that use the reference counting approach and do not allow us to override it. After we use these functions, we might pass the document or node to software that simply frees it. Then we have the situation discussed above in the section called “Problems”. In some situations, one can clone the document or the nodes and pass those to the other software. However this is not always possible as we might have references to nodes within a document that is created earlier by that other software and to which we have references via callbacks, e.g. Sxslt and processing an XML document with an XSL transformation involving callbacks to R functions that implement XSL extension functions.

    So now that we know we can get into such a situation, we have a problem. When the other software frees the document and its sub-nodes, our finalizers will be invoked subsequently and be interpreting random memory contents. The key to this situation is to remove the finalizers on these R externalptr objects. Prior to version 2.14.0 (or more to the point the development version of R post-dating 2.13.2), there was only a mechanism to add finalizers. We have added[1] routines in R to do this. One can remove a finalizer by providing an externalptr object or by providing an external pointer value (which has to be in a new externalptr object). We provide a routine (R_xmlNode_removeFinalizers) in the XML package to use the latter approach to remove finalizers, if they exist, for each of the nodes in an XML document or top-level node. This works recursively, removing finalizers on itself and each of the sub-nodes.




    [1] Code has not been committed yet, Mar 24 2011

    XML/Docs/MathML.xml0000644000176000001440000000070611741563530013506 0ustar ripleyusers
    One needs the functions from \file{mathmlPlot} in \dir{examples}. inFile = system.file("data/mathmlQuadratic.xml","XML") d = xmlTreeParse(inFile) plot(1:10, type="n") text(5,5, mathmlPlot(d)) u = xmlTreeParse("data/mathmlSet.xml") text(5,9,mathmlPlot(u))
    XML/Docs/MathML.nw0000644000176000001440000000055311741563530013332 0ustar ripleyusers@ One needs the functions from \file{mathmlPlot} in \dir{examples}. <<*>>= inFile <- system.file("data/mathmlQuadratic.xml","XML") d <- xmlTreeParse(inFile) plot(1:10, type="n") text(5,5, mathmlPlot(d)) @ <<>>= u <- xmlTreeParse("data/mathmlRoot.xml") text(5,7,mathmlPlot(u)) @ <<>>= u <- xmlTreeParse("data/mathmlSet.xml") text(5,9,mathmlPlot(u)) XML/Docs/InternalDOM.nw0000644000176000001440000000263211741563530014324 0ustar ripleyusersIn some circumstances, it is convenient to be able to generate XML but to be able to add to previously created nodes. When writing on-the-fly to a file or buffer, this is not possible. The \SFunction{xmlOutputBuffer} mechanism writes tags on demand when it is instructed and therefore we cannot (easily) return and add an attribute to a node, insert a new child node, etc. without parsing the contents of the file or buffer (which may be incomplete and contain unclosed tags) In other words, ``random'' access to the structure of the DOM is problematic. We can overcome this problem by choosing to use the same interface as that provided by \SFunction{xmlOutputBuffer} but employ an implementation that maintains the DOM itself. With additional functions which allow us to identify existing nodes, insert new elements into the tree and to reset the currently active element, we can then obtain the flexible, multi-directional access we need and overcome the problem of linear generation of the XML content. We can generate the DOM in S. However, S's functional nature does not make it ideal for creating tree-based structures. We do use this approach when parsing XML. We also provide the \SFunction{xmlOutputDOM} which can be used for this very purpose. The function \SFunction{xmlTree} can be used to create a DOM at the C-level using the \textit{libxml} data structures and API and representing them in S. This has the same XML/Docs/GeneratingXML.nw0000644000176000001440000000022111741563530014644 0ustar ripleyusers@ In addition to being able to newXMLDoc newXMLNode saveXML xmlOutputDOM xmlCDataNode xmlPINode xmlTextNode xmlCommentNode xmlOutputBufferXML/Docs/GeneralHandlers.xml0000644000176000001440000001262011741563530015420 0ustar ripleyusers
    When I first implemented the XML package, I introduced the facility of having a collection of handler functions whose names identified the nodes on which they would operate. For example, if we were parsing an HTML file, one might define a function to process links - a href='...' - and so have a handler function named 'a' in the collection. These are node-name-specific handlers, i.e. they are applied to nodes with that name. There is an issue of dealing with nodes that have the same textual name, but are in different namespaces. But these can be dealt with in the R code by creating a proxy handler function for node names that have multiple function handlers. For example, suppose the caller gives us handlers of the form list( html:a = function(...) ..., gml:a = function(...) ...) Before passing the handlers to the C-level parser, we would identify this overlapping name by looking at the node name without the prefix. Then, we would create a new local function that handled all nodes named 'a' but that looked at the namespace definition for that particular node and dispatched to the appropriate user-supplied function. a = function(node, ...) { ns = xmlNamespace(node) f = originalHandlers[[paste(ns, "a", sep = "")]] f(node, ...) } The user need not handle this, and the C code need not be more elaborate to handle the namespaces. There is an issue about how we map the namespace prefix in the handler name to the URI declaration in the document. We could add this as an additional argument or insert it into the handler functions list, or even have the URI in the name of the element in the list, e.g. "http://www.r-project.org:array" (Yuck!) And we can test the namespace URI on a node in our general proxy handler as we can access the declaration using xmlNamespaceDefinitions. For example, if we have a handler for nodes name 'array' with the name space URI http://www.r-project.org, we would check the URIs matched with the following code. nsDefs = xmlNamespaceDefinitions(node) i = names(nsDefs) == xmlNamespace(node) if(!any(i)) stop("No namespace prefix matches the declarations") nsDefs[i][[1]]$uri == "http://www.r-project.org" The other aspect that I also introduced is that one could define general handlers for different types of nodes, e.g. text nodes, comments, processing instructions, and any node that was not already handled by a more specific handler. So, if the caller specified a handler for all 'a' nodes, but not for any others and also provided a generic node handler named 'startElement' in the list of functions, then that generic handler will be called for all but the 'a' nodes. This is quite convenient as it allows us to provide a single function for handling all nodes and we can handle the node processing ourselves. And it allows us to deal with all nodes easily. Unfortunately, the choice of names in my setup allowed will cause problems. startElement is used for the generic handler. But what if there is an element named startElement that we want to handle with a node-specific handler. This is especially pertinent in the case of "text". This is the name I used for the general handler function that deals with the text segments in the XML stream. In SVG - scalar vector graphics, one of the nodes is named text which places text on the plot. So now there is a real ambiguity. We have a general node handler named text, but we also have nodes with exactly the that name. And a problem is that the node handler and the general text handler functions are called with a different collection of arguments: a node handler s called with the name and the attributes whereas the text handler is called with just the text content. What we want is a way to deal with this ambiguity. We need two separate the functions into two different sets: node-specific handlers and general handlers. We can use a different form of the names for identifying general handlers. We can require the names for such handlers to have a '.' prefix, e.g. .text, .startElement, etc. This is a change in the interface and so will break existing code. However, it does resolve the issue as XML node names cannot start with a . Another approach is to put classes on the individual handler functions to identify whether they are for nodes or different element types. A simple version of this would be to use the as-is function I, e.g. nodes }) ]]> Functions identified in this manner would not be interpreted as applying to general elements. They would only be used to match a node name. We can use two separate arguments to identify the sets of handlers. How do we support existing code of this form? If the document has a DTD or schema, we could check that and identify whether there are any nodes with these names. We can also examine the parameters/formal arguments for the handler functions that have these names and see if we can infer whether they are for a node or for a specific type of XML element, e.g. text or processing instructions. We can also introduce a new function.
    XML/Docs/GNUmakefile0000644000176000001440000000214611741563530013714 0ustar ripleyusers OMEGA_HOME=../../.. include $(OMEGA_HOME)/Config/GNUmakefile.config job.xml: Outline.nw $(WEB) -R'$@' $^ > $@ # %.tex: %.nw # echo "\\input{WebHeader}" > $@ # echo "\\noindent\\parindent=0pt" >> $@ # $(NOWEB_MARKUP) $< | $(OMEGA_HOME)/bin/verbatimNoweave >> $@ # echo "\\input{WebFooter}" >> $@ roundTripSub.xml: roundTrip.xml ($(XSLT_PROCESSOR) -in roundTrip.xml -xsl roundTrip.xsl -out $@) #include $(OMEGA_HOME)/Config/GNUmakefile.rules OMEGAHAT_DEPENDS=Omegahat.sty WebMacros.tex ELispMacros.tex html.sty SMacros.tex FILES=RNewsLetter.tex $(OMEGAHAT_DEPENDS:%=$(OMEGA_HOME)/Docs/%) PKG_NAME=XML TARGET_DIR=/tmp/$(PKG_NAME) install: if test -d $(TARGET_DIR) ; then rm -fr $(TARGET_DIR) ; fi mkdir -p $(TARGET_DIR) cp $(FILES) $(TARGET_DIR) mv $(TARGET_DIR)/RNewsLetter.tex $(TARGET_DIR)/$(PKG_NAME).tex PWD=$(shell pwd) tar $(PKG_NAME).tar.gz: (cd $(TARGET_DIR)/.. ; tar zcvf $(PWD)/$(PKG_NAME).tar.gz $(PKG_NAME)) #include $(OMEGA_HOME)/Config/GNUmakefile.xml ifndef DYN_DOCS DYN_DOCS=$(HOME)/Classes/StatComputing/XDynDocs/inst endif USE_DOCBOOK_SHORTHAND=1 include $(DYN_DOCS)/Make/Makefile XML/Docs/CreatingXML.xml0000644000176000001440000000457511741563530014511 0ustar ripleyusers
    DuncanTemple Lang Dept. of Statistics, UC Davis Modifying XML
    Overview This short article shows how we can read an XML document in R and modify it in place and then serialize it, e.g. to another file. We'll take a somewhat realistic example. We want to take an XML documentation file describing an R function and change the URL for the author and add an additional item to the see also list. Also, we will insert a new example. The document we consider is the file treeParseHelp.xml. It is not a standard format, but comes from work we did a long time ago in considering an XML format for the R documentation files. The contents of the document are given at the end of this document. As with most things dealing with XML, there are various alternative approaches, e.g. using XSL and so on. This is just one. We start by reading the document into R. We keep the tree at the C-level rather than creating R representations of the nodes. fileName = "~/Projects/org/omegahat/XML/RSHelp/examples/treeParseHelp.xml" doc = xmlTreeParse(fileName, useInternalNodes = TRUE) The next thing we want to do is to find the author. We can do this by matching names or using an XPath query: author = getNodeSet(doc, "//shelp:authors/shelp:author", namespace = c(shelp = 'http://www.omegahat.org/XML/RShelp'))[[1]] If we want to see what this looks like, we can coerce it to a string as(author, "character") or alternatively we can query its name, attributes, children, etc. But we know that this has child named 'a' with an href attribute which we want to change. We could have fetched this directly in the XPath query. But to change it we can do xmlAttrs(author[[1]]) = c(href='http://www.stat.ucdavis.edu/~duncan') Now to add an entry to the 'See also' section, we find the 'shelp:seealso' node. xmlRoot(doc)
    The Document
    XML/DESCRIPTION.in0000644000176000001440000000424412160207163013057 0ustar ripleyusersPackage: XML Version: 3.98-1 Author: Duncan Temple Lang (duncan@r-project.org) Maintainer: Duncan Temple Lang Title: Tools for parsing and generating XML within R and S-Plus. Depends: R (>= 1.2.0), methods, utils Imports: methods Suggests: bitops, RCurl SystemRequirements: libxml2 (>= 2.6.3) xxxLazyLoad: yes Description: This package provides many approaches for both reading and creating XML (and HTML) documents (including DTDs), both local and accessible via HTTP or FTP. It also offers access to an XPath "interpreter". Note: In version 2.4.0 of this package, a new approach to garbage collection has been implemented and it is experimental. You can disable it via the configuration option --enable-nodegc=no. However, you are encouraged to use this and report problems as the results are beneficial and being able to produce any errors should they occur will be very helpful. The versions numbers 1.0 and 2.0 do not have any special significance, but are merely the result of incrementing the minor count by 1 for each release. Specifically, there is no change in the interface. URL: http://www.omegahat.org/RSXML License: BSD Collate: AAA.R DTD.R DTDClasses.R DTDRef.R SAXMethods.S XMLClasses.R applyDOM.R assignChild.R catalog.R createNode.R dynSupports.R error.R flatTree.R nodeAccessors.R parseDTD.R schema.S summary.R tangle.R toString.S tree.R version.R xmlErrorEnums.R xmlEventHandler.R xmlEventParse.R xmlHandler.R xmlInternalSource.R xmlOutputDOM.R xmlNodes.R xmlOutputBuffer.R xmlTree.R xmlTreeParse.R htmlParse.R hashTree.R zzz.R supports.R parser.R libxmlFeatures.R xmlString.R saveXML.R namespaces.R readHTMLTable.R reflection.R xmlToDataFrame.R bitList.R compare.R encoding.R fixNS.R xmlRoot.R serialize.R xmlMemoryMgmt.R keyValueDB.R solrDocs.R XMLRErrorInfo.R xincludes.R namespaceHandlers.R tangle1.R htmlLinks.R getDependencies.R htmlLists.R getRelativeURL.R xmlIncludes.R XML/DESCRIPTION0000644000176000001440000000427112160604251012451 0ustar ripleyusersPackage: XML Version: 3.98-1.1 Author: Duncan Temple Lang (duncan@r-project.org) Maintainer: Duncan Temple Lang Title: Tools for parsing and generating XML within R and S-Plus. Depends: R (>= 1.2.0), methods, utils Imports: methods Suggests: bitops, RCurl SystemRequirements: libxml2 (>= 2.6.3) Description: This package provides many approaches for both reading and creating XML (and HTML) documents (including DTDs), both local and accessible via HTTP or FTP. It also offers access to an XPath "interpreter". Note: In version 2.4.0 of this package, a new approach to garbage collection has been implemented and it is experimental. You can disable it via the configuration option --enable-nodegc=no. However, you are encouraged to use this and report problems as the results are beneficial and being able to produce any errors should they occur will be very helpful. The versions numbers 1.0 and 2.0 do not have any special significance, but are merely the result of incrementing the minor count by 1 for each release. Specifically, there is no change in the interface. URL: http://www.omegahat.org/RSXML License: BSD Collate: AAA.R DTD.R DTDClasses.R DTDRef.R SAXMethods.S XMLClasses.R applyDOM.R assignChild.R catalog.R createNode.R dynSupports.R error.R flatTree.R nodeAccessors.R parseDTD.R schema.S summary.R tangle.R toString.S tree.R version.R xmlErrorEnums.R xmlEventHandler.R xmlEventParse.R xmlHandler.R xmlInternalSource.R xmlOutputDOM.R xmlNodes.R xmlOutputBuffer.R xmlTree.R xmlTreeParse.R htmlParse.R hashTree.R zzz.R supports.R parser.R libxmlFeatures.R xmlString.R saveXML.R namespaces.R readHTMLTable.R reflection.R xmlToDataFrame.R bitList.R compare.R encoding.R fixNS.R xmlRoot.R serialize.R xmlMemoryMgmt.R keyValueDB.R solrDocs.R XMLRErrorInfo.R xincludes.R namespaceHandlers.R tangle1.R htmlLinks.R htmlLists.R getDependencies.R getRelativeURL.R xmlIncludes.R simplifyPath.R Packaged: 2013-06-20 13:45:20 UTC; ripley NeedsCompilation: yes Repository: CRAN Date/Publication: 2013-06-20 15:50:33 XML/Copyright0000644000176000001440000000034711741563530012646 0ustar ripleyusersCopyright (c) 1998, 1999, 2000 The Omega Project for Statistical Computing. All rights reserved. All the files in this directory and its sub-directories are released under the GNU General Public License. See COPYRIGHT. XML/CodeDetails0000644000176000001440000000062311741563530013053 0ustar ripleyusersEach routine (except isBlank()) is declared, defined and invoked by enclosing its name in a call to the pre-processor macro RS_XML(). This is used to provide a namespace for the routines so that they don't conflict. (This happened when combining the libxml with code which had a routine startElement() defined!) I chose not to use noweb for this package in order to simplify installation for others. XML/Check0000644000176000001440000000015311741563530011706 0ustar ripleyusersaddFinalizer in RS_XML_ParseTree and xmlParse(). Applies to how we pass the node back to the R functions.XML/Changes0000644000176000001440000015527112160210552012242 0ustar ripleyusersVersion 3.98-1 * Compilation error with clang. Simple declaration of a routine. Version 3.98-0 * Update for libxml2-2.9.1 and reading from a connection for xmlEventParse(). * xmlIncludes() is a hierarchical version of getXIncludes() * Modifications to xmlSource(), e.g. verbose = TRUE as default. Version 3.97-0 * Fix for xmlValue(node) = text. Identified by Lawrence Edwards. Uses xmlNodeSetContent() now and leaves freeing the original content to that routine. * Updates for xmlSource() Version 3.96-1 * readHTMLTable() ignores headers that are over 999 characters. * Fix a problem in readHTMLTable() with some table headers not having the correct number of elements to match the columns. Version 3.96-0 * Introduced readHTMLList(), getHTMLLinks(), getHTMLExternalFiles(), getXIncludes(). * When serializing XMLNode objects, i.e. R representations of nodes, ensure " and <, etc. in attributes are serialized correctly. Version 3.95-1 * Allow htmlParse(), xmlParse(), etc. ? Version 3.95-0 * Moved development version of the source code for the package to github - https://github.com/omegahat/XML.git * Changes to the structure of the package to allow installation directly rather than via a one-step staging into the R package structure. * Sample XML documents moved from data/ to exampleData, and examples updated. * getDefaultNamespace() and matchNamespaces() use simplify = TRUE to call xmlNamespaceDefinitions() to get the namespaces as a character vector rather than list. * Documentation updates Version 3.94-0 * getNodeLocation() now reports the actual line number for text nodes rather than 0, using the sibling nodes' or parent node's line number. * xpathApply() and related functions work with builtin type "functions", e.g. class. * xpathApply() and related functions (getNodeSet, xpathSApply) allow the caller to specify multiple queries as a character vector and these are pasted together as compound location paths by separating them with a '|'. This makes it easier for the caller to manage the different queries. * assigning to a child of a node works, e.g. node[["abc"]] = text/node and node[[index]] = text/node. We replace a matching name. If the replacement value is text, we use the name to * getChildrenStrings() is a function that implements the equivalent of xmlApply(node, xmlValue) but faster because we avoid the function call for each element. * options parameter for xmlParse() and htmlParse() for controlling the parser. (Currently only used when encoding is explicitly specified.) * encoding parameter for xmlParse() and xmlTreeParse() now works for XML documents, not just HTML documents. * Update for readHTMLTable() method so that we look at just the final
    node in a . Version 3.93-1 * Fixed bug in findXInclude() that sometimes got the wrong XMLXIncludeStartNode. Hence getNodeLocation() might report the wrong file, but correct line number! * findXInclude() now has a recursive parameter that resolves the chain of XIncludes. This returns the full path to the file, relative to the base/top-level document, not just the parent document. * Change to the default value of the error parameter in htmlParse() and htmlTreeParse() which will generate a structured R error if there is an IO error. The set of issues that will raise an error will be broadened in the future. Version 3.93-0 * Enabled the fixing of namespaces by finding the definition o for that prefix in the ancestor nodes. Version 3.92-2 * Synchronized compilation flags for Windows with those on OSX & Linux. Version 3.92-1 * Restore original error handler function for htmlParse() and htmlTreeParse() * Fixed a reference counting problem caused by not adding a finalizer in the as() method for coercing an XMLInternalNode to an XMLInternalDocument. Example from Janko Thyson. * Fixed up some partial argument names found by R CMD check! Version 3.92-0 * Added --enable-xml-debug option for the configure script and this activates the debugging diagnostic reporting, mainly for the garbage collection and node reference counts. * Work-around for HTML documents not being freed (but XML documents are!) * Added an isHTML parameter for xmlTreeParse. * Merge htmlTreeParse/htmlParse with xmlTreeParse. * Implemented some diagnostic facilities to determine if an external pointer is in R's weak references list. This needs support within R. (Ask for code if you want.) Version 3.91-0 * Start of implementation to allow nested calls to newXMLNode() to use namespace prefixes defined in ancestor nodes. Disabled at present. Version 3.9-4 * readHTMLTable() passes the encoding to the cell function. * xmlValue() and saveXML() use the encoding from the document, improving conversion of strings. * More methods for getEncoding() Version 3.9-3 * getEncoding() returns NA when the encoding is not known. Previously, this might seg-fault! * readHTMLTable() passes an encoding argument to the call to xmlValue (and the value of elFun). Version 3.9-2 * Static NAMESPACE (rather than generated via configure) * Default for directory in Makevars.win to search for header files and libraries needed for compilation. Version 3.9-1 * Added method for removeNodes for XMLNodeList. Version 3.9-0 * Enabled additional encoding for element, attribute and namespace names, and in xmlValue(). * Corrected default value in documentation for parse in xmlSource(). Version 3.8-1 * Corrected documentation for readHTMLTable() about stringsAsFactors behaviour. * Added parse = FALSE as parameter for xmlSource() to allow just returning the text from each node. Version 3.8-0 * added readSolrDoc() and readKeyValueDB() functions to read Solr and Property list documents. Version 3.7-4 * saveXML() for XMLNode returns a character vector of length 1, i.e. a single string. Version 3.7-3 * Allow xmlTreeParse() and xmlParse() to process content starting with a BOM. This works when the name of a file/URL is provided, but didn't when the content was provided directly as a string. Identified by Milan Bouchet-Valat. * error message when XML content is not XML or a file name now puts the content at the end for improved readability. Version 3.7-2 * Import methods package explicitly. Version 3.7-1 * Added an alias for the coerce method for Currency. * Added a C routine to query if reference counting is enabled. See tests/checkRefCounts.R. Version 3.7-0 * Added Currency as an option for colClass in readHTMLTable to convert strings of the form $xxx,yyy,zzz, i.e. comma-separated and preceeded by a $. (No other currency supported yet.) * Fix for newXMLNode() that caused a seg fault if a node was specified as the document. Thanks to Jeff Allen. Version 3.6-2 * Changed URL in readHTMLTable() example to new page for population of countries * Changes to Rprintf() rather than stderr. Still some code that uses stderr intentionally. Version 3.6-1 * Fix bug which caused XMLInternalUnknownNode in xmlParent() for HTML documents. * General improvements to support nodes of type XML_HTML_DOCUMENT_NODE. * removeNodes() method for XMLNodeSet. Version 3.6-0 * xmlParent() is an S4 generic with methods. * xmlAncestors() has a count argument to limit the number of ancestors returned. * removeNodes() is generic. * addChildren() now removes "internal" nodes from their current parent, if any. Avoids memory corruption in XML tree. * ADD_XMLOUTPUT_BUFFER R variable for Windows. * Defined XMLTreeNode as an old-style class. Version 3.5-1 * Additional workaround for libxml2 2.6.16 for printing HTML document. * noMatchOk parameter for xpathApply.XMLInternalNode to suppress warnings about finding no nodes when there is a namespace in the query. * xmlNamespace<-() function and methods to allow one to set the namespace on a node, e.g., by the namespace prefix. * readHTMLTable() allows "factor" as an entry in colClasses. Version 3.5-0 * Addeds nsDef parameter for parseXMLAndAdd(). * Minor addition to readHTMLTable() methods to handle malformed HTML with all the tr nodes in the thead. Version 3.4-3 * Set default of append parameter in xmlChildren<-() method for non-internal nodes to FALSE so that we replace the existing nodes. Version 3.4-2 Version 3.4-1 * Type in C code for method for xmlClone(). * Minor fixes for formatting of 2 help/Rd files. * Removed definition of XPathNodeSet which is never used here but redefined in Sxslt. * Fix when adding a default namespace to a node in an HTML document. * Fix when adding a default namespace to a node in an HTML document. Version 3.4-0 * Added xmlSearchNs() to aid looking for XML definitions by URL or prefix. * Support in readHTMLTable() for identifying values formatted as percents or numbers with commas. Use the classes FormattedInteger, FormattedNumber and Percent in colClasses. Version 3.3-2 * Better handling of namespace definitions and uses in newXMLNode and separation of internal code into a separate function. Version 3.3-1 * Configuration to conditionally compile code and export functions for removing finalizers. This relies on C routines tha will be added to the base R distribution, so not present in any released version of R as yet. Version 3.3-0 * addFinalizer added as parameter to many functions and methods that can return a reference to an internal/C-level node. This controls whether a finalizer is added to the node and reference counting is performed. See MemoryManagement.pdf/.html for more details. * One can set the suppressXMLNamespaceWarning as either an XML option (via setOption()) or as a regular R option (via options(suppressXMLNamespaceWarning = ...) ) * Added methods for docName() for XMLHashTreeNode and XMLNode. * added docName when converting from an internal tree to an XMLHashTree. * xmlHashTree() uses an environment with no parent environment, by default. * Added an append parameter to addChildren(). * Fixed coercion from XMLInternalNode to XMLNode. * Made the methods (e.g. xmlAttrs<-(), xmlParent(), ...) for XMLNode and XMLInternalNode consistent. * Made classes agree for xmlParse() and newXMLDoc() * fixed corner/end cases for getSibling for XMLHashTreeNode * Added xmlRoot<- methods for XMLInternalDocument and XMLHashTree. * Minor enhancement to xmlToDataFrame() so that one can pass the value from getNodeSet() directly as the first argument to xmlToDataFrame() without passing it via the nodes parameter. * Registered all of the native routines being invoked via .Call(). Version 3.2-1 * Turn reference counting on by default again. Version 3.2-0 * Change to reference to normalizePath() which was moved from utils to base in R-devel/R-2.13 Version 3.1-1 * Minor change in readHTMLTable method to identify table header better. Version 3.1-0 * Method for [[ for internal element nodes that is much faster (by avoiding creating the list of children and then indexing that R list). Thanks to Stavros Mackracis for raising the issue. Version 3.0-0 * This is not a major release, but an incremental numbering from 2.9-0 to 3.0-0, but with one potentially significant change related to creating nodes. newXMLNode() now uses the namespace of the parent node if the namespace argument is not specified. * Refinments to improve the garbage counting and referencing counting on internal nodes. Version 2.9-0 * xmlAttrs(, TRUE) for internal nodes returns the URL of each namespace definition in the names of the attr(, "namespaces") vector. * Added parseXMLAndAdd() to parse XML from a string text and add the nodes to a parent node. This facilitates creating a large number of quite regular nodes using string processing techniques (e.g. sprintf(), paste()) * xmlEventParse() with branches now has garbage collecting activated. Version 2.8-1 * Filled in missing documentation * Added missing init = TRUE for the parameters in one of the methods for xmlSource(). Version 2.8-0 * xmlClone() puts the original S3 classes on the new object. * Trivial fix to readHTMLTable() to get the header when the table header is inside a tbody. * Garbage collection/Memory management re-enabled. Version 2.7-0 * compareXMLDocs() function * Added xmlSourceFunctions() and xmlSourceSection() * Support in saveXML() for XMLInternalDocument for the prefix parameter. * saveXML() and related methods can deal with NULL pointers in XMLInternalDocument objects. * fixed bug in catalogAdd(). * docName() made an S4 generic with S4 methods (rather than S3 methods). * added catalogDump() * readHTMLTable() puts sensible names on the data frames if there is no header for the table. Version 2.6-0 * When copying a node from one document to another, the node is explicitly copied and not removed from the original document. This also fixes a problem with the name space not being on the resulting node. * New functions for converting simple, shallow XML structure to an R data frame. xmlToDataFrame() & xmlToList() * addChildren() can handle _copying_ a node from a different document. * as()/coerce() method for URI to character. * New functions to convert an XML tree to an S4 object and also to infer S4 class definitions from XML. (makeClassTemplate(), xmlToS4()) * Minor change to C code for compilation on Solaris and Sun Studio Version 2.5-3 * Trivial change to an Rd file to add an omitted Version 2.5-2 * Configuration enhanced to handle very old (but standard on OS X) versions of libxml which do not have the xmlHasFeature() routine. People with such an old version of libxml (i.e. 2.6.16) should consider upgrading. That is 5 years old. Version 2.5-1 * Added a configuration check and compile time condition for the presence of XML_WITH_ZLIB. This allows installation with older versions of libxml2 such as 2.6.26. * Moved some old S3 classes to S4 class definitions to deal with recent changes to the methods package. Version 2.5-0 * Added xmlParseDoc() and parser option constants. These allow one to parse a document from a file, URL or string and specify any combination of 20 different options controlling the parser, e.g. whether to replace entities, perform XInclude, add start and end XInclude nodes, expand entities, load external DTDs, recover when there are errors. * Added libxmlFeatures() to dynamically determine which features were compiled into the version of libxml2. * newXMLNode() has a new argument sibling which is used to add the new node as the sibling of this node. The parametr 'at' is used as the value for the 'after' parameter in addSibling(). * saveXML() is now an S4 generic. (Changes in other packages, e.g. Sxslt, RXMLHelp.) * Added readHTMLTable() which is a reasonably robust and flexible way to read HTML tables. * Added runTime parameter for libxmlVersion() so we can get compile and run time version information. Version 2.4-0 * Significant change to garbage collection facilities for internal/C-level nodes. This works hard to ensure that XMLInternalDocument objects and XMLInternalNode objects in R remain valid even when their "parent" container is released in R. See memory.pdf. This can be disabled with configuration argument --enable-nodegc=no. * Configuration option to compile with xmlsec1 (or xmlsec1-openssl). More to come on support for this. Version 2.3-0 * Added getLineNumber() to be able to determine the line number of an XML node within its original document. * xmlApply() and xmlSApply() have a parameter to ignore the XInclude start and end nodes. * xmlChildren() also have an omitNodeTypes parameter and by default exclude XInclude nodes. * Added ensureNamespace() to add a namespace definition(s) if necessary. Version 2.2-1 * source() method equivalent to xmlSource() and appropriate installation changes for older versions of R ( < 2.8.0). Version 2.2-0 * Added xmlClone() and findXInclude() functions. * [Important] Bug fix regarding the error handling function for XML and HTML parsing. Uncovered by Roger Koenker. This manifested itself in R errors of the form "attempt to apply non-function". Version 1.99-1 * addChildren() unconditionally unlinks nodes that already have a parent. * Typo bug in removeChildren.XMLNode code found and fixed by Kate Mullen. Version 1.99-0 * Added recursive parameter to xmlValue() function to control whether to work on just the immediate nodes or also children. * Correction for xpathSApply() when returning an array/matrix which referred to a non-existent variable. * Faster creation of internal nodes via newXMLNode(). * xmlRoot() for XMLHashTree works for empty trees. * Added xmlValue<-() function. * Fix for removeAttributes() with namespaces. * Addition to configure script of the argument --with-xml-output-buffer to force whether to compile and use our own "local" version of xmlOutputBufferCreateBuffer() which is needed on unusual systems. Supplied by Jim Bullard (UC Berkeley). Version 1.98-1 * Deal with older S3-style classes with inheritance for 2.7.2 differently from the 2.8.0 mechanism. * Changes to catch more cases of xmlChar * being treated as char * which causes the Sun compiler to fail to compile DocParse.c * Export class XMLNamespaceDefinitions which caused problems in the code in the caMassClass package. Version 1.98-0 * The function XML:::xpathSubNodeApply() is the implementation of xpathApply() for an XMLInternalNode from earlier versions of the package and which explicitly moves the node to a new document and performs the XPath query and then re-parents the node. Instead of using this, users can use xpathApply()/getNodeSet() and simply change the XPath expression to be prefixed with ., e.g. instead of //tr, use .//tr to root the XPath query at the current node. * Minor patch to configure.in to allow for libxml2-2.7.*. * saveXML() for XMLInternalDocument now uses xmlDocFormatDump() ratehr than xmlSaveFile() and so formatting is "better". * The [ and [[ operators for XMLInternalDocument support a 'namespaces' parameter for ease of extracting nodes. This is syntactic sugar for getNodeSet()/xpathApply(). * xmlParse() and htmlParse() return internal documents and nodes by default and are easier to type. The results are amenable to XPath queries and so these are the most flexible representations. * xmlRoot() has a skip argument that controls whether to ignore comment and DTD nodes. The default is TRUE. * Additional functionality for XMLHashTree and XMLHashTreeNode, including facilities for creating nodes while adding them to the tree, copying sub-trees/nodes to separate trees. * Functionality to convert from an XMLInternalNode to an XMLHashTree - as(node, "XMLHashTree"). This is also an option in xmlTreeParse(, useHashTree = TRUE/FALSE) [or xmlTreeParse(, treeType = "hashTree")] * Branch nodes from xmlEventParse(, branches = list(...)) are now garbage collected appropriately. * xmlAttrs.XMLInternalNode now does not add the namespace prefix to the name of the attribute, by default. Use xmlAttrs(node, addNamespace = TRUE) to get old behaviour. * xmlGetAttr() has a corresponding new parameter addNamespace that is passed through to the call to xmlGetAttr(). * getRelativeURL() function available for getting URI of a document from a given attribute relative to a base URL, e.g. an HTML or a . * xmlAttrs<- methods support an append (TRUE by default) to add values to the existing attributes, or to replace the existing ones with the right-hand side of the assignment. * xmlAttrs<- checks for namespaces in all the ancestors for XMLInternalNode and XMLHashTreeNode. * Introduced the class XMLAbstractNode which is the parent for the XMLNode, XMLInternalNode and XMLHashTreeNode, which allows high-level methods that use the API to access the elements of the nodes to be defined for a single type. * Changed name of XMLNameSpace class to XMLNamespace (lower-case 's'). Version 1.97-1 * Fix for configuration in detecting existence of encoding enumerations in R. So now encoding of strings is working again. Version 1.97-0 * Added xmlNativeTreeParse() as an alias for xmlInternalTreeParse() and xmlTreeParse(, useInternalNodes = TRUE). * Assignment to attributes of an R-level XML node works again, e.g. xmlAttrs(doc[[3]][[2]])['foo'] = "bar" * Subsetting ([[) for XMLHashNode behaves correctly. * Added .children parameter to addTag() function in xmlOutputDOM() objects. * Thanks to Michael Lawrence, a significantly simpler and more general mechanism is used for getNodeSet()/xpathApply() when applied to a node and not a document. This allows xpath queries that go back up the ancestor path for the node. Version 1.96-0 * Functionality for working with XML Schema now incorporated. * xmlSchemaValidate() function for validating a document against a schema. * xmlSchemaValidate() using structured error handlers to give information about line numbers, columns, domain, etc. as well as the message. * xmlChildren() method for XMLInternalDocument * Recognize additional internal node types, e.g. XMLXIncludeStartNode, ... * foo.dtd example now uses internal and external entities for illustration. Version 1.95-3 * configuration change to support older versions of R that do not have the C enumeration type cetype_t defined in Rinternals.h. Version 1.95-2 * Fix for xpathApply()/getNodeSet() on the top-level node of a document which left the original document with no children! Found by Martin Morgan. Version 1.95-1 * Minor bug fixes regarding Encoding issues introduce in 1.95-0. * xmlEventParse() calls R_CheckUserInterrupt() when making callbacks to R functions and so should make the GUI more responsive. * Test for older versions of libxml2 which did not have a context field in the xmlNs data structure. Version 1.95-0 * Use the encoding of the document in creating R character strings to identify the Encoding() in R. There are probably omissions and potential problems, so I would be very grateful for examples which fail, along with the file, the locale and the R code used to manipulate these. Version 1.94-0 * Fixed a bug in xpathApply()/getNodeSet() applied to an XMLInternalNode which now ensures that the nodes emerge with the original internal document as their top-level document. * Added processXInclude() for processing individual XInclude nodes and determining what nodes they add. * If asText is TRUE in xmlTreeParse(), xmlInternalTreeParse(), ..., no call to file.exists() is made. This is both sensible and overcomes a potential file name length limitation (at least on Windows). * The trim parameter for xmlInternalTreeParse() and xmlTreeParse(, useInternal = TRUE) causes simple text nodes containing blank space to be discarded. saveXML() will, by default, put them back but not if text nodes are explicitly added. * xmlTreeParse(), xmlInternalTreeParse(), htmlTreeParser(), parseDTD(), etc. take an error handler function which defaults to collecting all the errors and reporting them at the end of the attempt to parse. * getXMLErrors() returns a list of errors from the XML/HTML parser for help in correcting documents. * Added xmlStopParser() which can be used to terminate a parser from R. This is useful in handler functions for SAX-style parsing via xmlEventParse(). * A handler function passed to xmlEventParse() can indicate that it wants to be passed a reference to the internal xmlParserContext by having the class XMLParserContextFunction. Such functions will be called with the context object as the first argument and the usual arguments displaced by 1, e.g. the name and attributes for a startElement handler would then be in positions 2 and 3. * When parsing with useInternalNodes= TRUE and trim = TRUE in xmlTreeParse() or xmlInternalTreeParse(), blank nodes are discarded so line breaks between nodes are not returned as part of the tree. This makes pretty-printing/indenting work on the resulting document but does not return the exact content of the original XML. Use trim = FALSE to preserve the breaks. * Added xmlInternalTreeParse() which is a simple copy of xmlTreeParse() with useInternalNodes defaulting to TRUE, so we get an internal C-level tree. * Added an xpathSApply() function that simplifies the result to a vector/matrix, if possible. * Added replaceNode() function which allows one to insert an internal node with another one. * addChildren() has a new at parameter to specify where in the list of children to add the new nodes. * newXMLNode(), etc. can compute the document (doc argument) from the parent. * The subset operator applied to an XMLInternalDocument and getNodeSubset() and xpathApply() compute the namespaces from the top-level of the document by default, so, e.g., doc[["//r:init"]] work. * section parameter added to xmlSource() to allow easy subsetting to a particular
    within a document. * added catalogLoad(), catalogAdd(), catalogClearTable() functions. * Added docName() function for querying the file name or URL of a parsed XML document. * RS_XML_createDocFromNode() C routine adds root node correctly via xmlAddChild(). * Slightly improved identification of HTML content rather than a file or URL name. * Added a simplify parameter to the xmlNamespaceDefinition() function which, if TRUE, returns a character vector giving the prefix = URI pairs which can be used directly in xpathApply() and getNodeSet(). Version 1.93-1 * Method for xmlNamespace with a character is now exported! Needed for cases that arise in SSOAP. Version 1.93-0 * The closeTag() function within an XMLInternalDOM object returned by xmlTree() provides support for closing nodes by name or position in the stack of open nodes. * xmlRoot() method for an XMLInternalDOM tree. * Added a parent argument to the constructor functions for internal nodes, e.g. newXMLNode, newXMLPINode, newXMLCDataNode, etc. * doc argument for the constructor functions for internal nodes is now moved from second to third. Calling * Potentially changed the details about creating XML documents and nodes with namespaces. If these negatively effect your code, please send me email (duncan@wald.ucdavis.edu). * Enhancements and fixes for creating XML nodes and trees, especially with name spaces. * Many minor changes to catch special cases in working with internal nodes. Version 1.92-1 * Make addNode()/addTag() in XMLInternalDOM work with previously created XML nodes via newXMLNode(). Thanks to Seth Falcon for pointing out this omission. More improvements in the pipeline for generating XML. * addChildren for an XMLInternalNode can be given a list of XMLInternalNodes and/or character strings. * xmlSource() handles r:codeIds better. Version 1.92-0 * Added removeNodes function for unlinking XMLInternalNode objects directly by reference. * xmlRoot() handles empty documents. * Documentation cleanups. Version 1.91-1 * Remove output about "cleaning"/releasing an internal document pointer. * The warning from getNodeSet/xpathApply about using a prefix for the default namespace now has a class/type of condition, specificall "XPathDefaultNamespace". Version 1.91-0 * argument to add a finalizer for an XMLInternalDocument in xmlTreeParse()/htmlTreeParse() when useInternalNodes = TRUE. If this is set, automatic garbage collection is done which will free any sub-nodes. If you want to work with any of these nodes after the top-level tree variable has been released, specify addFinalizer = FALSE and explicitly free the document yourself with the free() function. * Sme improvements on namespace prefixes in internal nodes. See newXMLNode(). * classes for additional XMLInternalNodes (e.g. XMLInternalCDataNode) now exported * removeAttributes() has a .all argument to easily remove all the attributes within a node. Supported for both R and internal style nodes. * xmlAttrs<-() function for simply appending attributes to a node. * If xmlTreeParse() is called with asText = FALSE and the file is not found, an error of class "FileNotFound" is raised. * [[ opertor for XMLInternalDocument to get the first/only entry in the node set from an XPath query. This is a convenience mechansim for accessing the element when there is only one. Version 1.9-0 * Added xmlAncestors() functions for finding chain of parent nodes, and optionally applying a function to each. * xmlDoc() allows one to create a new XML document by copying an existing internal node, allowing for work with sub-trees as regular documents, e.g. XPath queries restricted to a subset of the tree. * Ability to do XPath searches on sub-nodes within a document. getNodeSet() and xpathApply() can now operate on an XMLInternalNode by creating a copy of the node and its sub-nodes into a new document. However, these is memory leak associated with this and you should us xmlDoc() to create a new document from the node and then perform the XPath query on that and free the document. Version 1.8-0 * Added xinclude argument to xmlTreeParse() and htmlTreeParse() to control whether should be resolved and the appropriate nodes inserted and the actual node discarded. * The namespaces argument of getNodeSet() (and implicitly of the [ method for an XMLInternalDocument object) can be a simple prefix name when referring to the default namespace of the document, e.g. getNodeSet(doc, "/r:help/r:keyword", "r") when the document has a default namespace. * Added a 'recursive = FALSE' parameter to xmlNamespaceDefinitions() to be able to process all descendant nodes and so fetch the namespace definitions in an entire sub-tree. This can be used as input to getNodeSet(), for example. * as() method for converting an XMLInternalDocument to a node. * xmlNamespaceDefinitions() handles the case where the top-level element is not the first node, e.g. when there is a DOCTYPE node and/or a comment. Version 1.7-3 * addChildren() coerces a string to an internal text node before adding the child. Version 1.7-2 * Trivial error in free() for XMLInternalDocument objects fixed so the memory is released. Version 1.7-1 * addition to configuration to detect whether the checked field of the xmlEntity structure is present. Version 1.7-0 This a quite comprehensive enhancement to the facilities in the XML package. A lot of work on the tools for creating or authoring XML from within R were added and improved. Using internal nodes directly with newXMLNode() and friends, or using xmlTree() is probably the simplest. But xmlHashTree() creates them in R. * IMPORTANT: one can and should use the names .comment, .startElement, .processingInstruction, .text, etc. when identifying general element handlers that apply to all elements of a particular type in an XML document rather than to nodes that have a particular name. This differentiates between a handler for a node named, say, text and a handler for all text elements found in the document. To use this new approach, call xmlTreeParse() or xmlEventParse() with useDotNames = TRUE This will become the default in future releases. * namespaceHandlers() function provided to deal with node handler functions with XML name spaces where there may be multiple handlers for the same node name but which are in different XML name spaces. * signature for entityDeclaration function in SAX interface is changed so that the second argument identifies the type of entity. Also, to query the value of an entity, the C code calls the getEntity() method of the handlers. * addChildren() & removeChildren() and addAttributes() & removeAttributes() for an existing node allows for post-creation modification of an XML node. * Improved support for name spaces on node attributes. * xmlName<-() methods for internal and R-level XML nodes to change the name of a node. * saveXML() and as(, "character") method for XMLInternalNode objects now to create a text representation of the internal nodes. * xmlTree() allows for creating a top-level node in the call to xmlTree() directly and does not ignore these arguments. * DTD and associated DOCTYPE can be created separately or directly in xmlTree(). * xmlTree() now allows the caller to specify the doc object as an argument, including NULL for when the nodes do not need to have a document object. * Better support in xmlTree() for namespaces and maintaining a default/active namespace prefix that is to be inserted on each subsequent node. * new functions for creating different internal node types - newXMLCDataNode, newXMLPINode, newXMLCommentNode, newXMLDTDNode. * newXMLNode() handles text, using the new newXMLTextNode() and coerce methods. * xmlTree() supports an active/default name space prefix which is used for new nodes. * Resetting the state of the xmlSubstituteEntities variable is handled correctly in the case of an error. Version 1.6-4 * xmlSize() method for an XMLInternalNode. Version 1.6-3 * Handle change from Sys.putenv() to Sys.setenv(). Version 1.6-2 * Added a URI (old) class label to the result of parseURI, and exported that class for use in other packages (specifically SSOAP, at present). * For subsetting child nodes by name, there is a new all = FALSE parameter which allows the caller to get the first element(s) that matches the name(s), or all of them with, e.g. node["bob", all = TRUE]. This allows us to avoid the equivalent idiom node[ names(node) == "bob" ] which is complicated when node is the result of an inline computation. * added method for setting names on an XMLNode (names<-.XMLNode), not just for retrieving them. Version 1.6-1 * Added catalogResolve() function for looking up local files and aliases for URIs, and PUBLIC and SYSTEM identifiers, e.g. in DOCTYPE nodes. * saveXML method added for XMLFlatTree. (Identified by Alberto Monteiro.) * Fixed saveXML methods for various classes. * Doctype class: added validity method, improved coercion to character, and slightly more flexible constructor function. Validates PUBLIC identifier. Version 1.6-0 * In saveXML() method for XMLInternalDocument, we "support" the encoding argument by passing it to xmlDocDumpFormatMemoryEnc() or xmlSaveFileEnc() in the libxml2 C code. We could also use the xmlSave() API of libxml2. * htmlTreeParse() supports an encoding argument, e.g. htmlTreeParse("9003.html", encoding = "UTF-8"). This allows one to correctly process HTML documents that do not contain their encoding information in the tag. The argument is also present in xmlTreeParse() but currently ignored. Version 1.5-1 * updated documentation for the alias for free method for XMLInternalDocument. Version 1.5-0 * added free() generic function and method for XMLInternalDocument Version 1.4-2 * xmlTreeParse and htmlTreeParse will accept a character vector of length > 1 and treat it as the contents of the XML stream and so call paste(file, collapse = "\n") before parsing. The asText = TRUE is implied. Thanks to Ingo Feinerer for prompting this addition. Version 1.4-1 * Fix to ensure a connection is closed in saveXML. Identified by Herve Pages * Update definition and documentation for xmlAttrs to take ... arguments. Version 1.4-0 * Added fullNamespaceInfo parameter for xmlTreeParse() which, if TRUE, provides the namespace for each node as a named character vector giving the URI of the namespace and the prefix as the element name, i.e. c(prefix = uri) The default is FALSE to preserve the earlier behavior. The namespace object has a class XMLNamespacePrefix for the old-style, and XMLNamespace for the new style with c(name = uri) form. This information makes comparing namespaces a lot simpler, e.g. in SOAP. Version 1.3-2 Mainly fixes for internal nodes. * Export XMLNode, XMLInternalNode, XMLInternalElementNode classes * as() method for XMLInternalNode wasn't recognized properly because the classes weren't exported. Also, the internal function asRXMLNode() accepts trim and ignoreBlanks arguments for cleaning up the XML node text elements that are created. * export coerce methods. Version 1.3-1 * parseURI() sets the port to NA if the value is 0. Version 1.3-0 * The SAX parser now has a branches argument that identifies XML elements which are to be built into (internal) nodes and then the sub-tree/node is passed to the handler function specified in the element of the branches argument. This mixes the efficient SAX event-driven parsing with the easier programming tree-based model, i.e. DOM. * XMLInternalNode objects in R now have extra class information identifying them as as regular element, text, CDATA, PI, ... Version 1.2-0 * names() method for XMLInternalNode * [ method for XMLInternalDocument and string using XPath notation. * getNodeSet() has support for default namespaces in the XML document. It is available, by default, to the XPath expression with the prefix 'd'. * Exported xmlNamespace() method for XMLInternalNode. * xmlNamespaceDefinitions() made generic (S3) and new method for XMLInternalNode class. Version 1.1-1 * Change to handling entities in printing of regular R-level XML text nodes created during xmlTreeParse() call. Identified by Ingo Feinerer. * saveXML for an XMLNode object will take a file name and write to the corresponding file, overwriting it if it already exists. Version 1.1-0 * xpathApply and getNodeSet take functions to be applied to nodes in a node set resulting from an XPath query. Version 1.0-0 * Version skipped as it is not a milestone release, just ran out of numbers! Version 0.99-94 Changes from Russell Almond and suggestions from Franck Giolat for creating XML in R * xmlNode() puts the names on children if omitted. Caller can use names other than the XML element name (but this is not necessarily advisable). * Added xmlChildren() method to set the children. * Printing of an XML node to the console handles empty nodes and text nodes better. * xmlTextNode() will replace reserved characters with their entity equivalent, e.g. & with & and < with <. One can specify the entity vector including providing an empty one should one want to avoid replacement. Version 0.99-93 Changes from Martin Morgan * import normalizePath from utils. * Changes to configure.win to find 3rd party DLLs in bin/ directory, not lib/ Version 0.99-92 * Fix for setting DTD entity field uncovered by the strict type checking in R internals. Version 0.99-91 * Added an encoding argument to saveXML(), initially for use in the Sxslt package. Version 0.99-9 * Example of using namespaces in getNodeSet() * Examples for xmlHashTree(). Version 0.99-8 * Introduced initial version of flat trees for storing the DOM in a non-hierarchical data structure in R. This allows us to work with a mutable tree and to perform certain operations across all the nodes more efficiently, i.e. non-recursively. Importantly, one can find the parent node of a given node in the tree which is not possible with the list of list approach. It does mean more computation for some common operations, specifically parsing. Indeed, it can be 25 times slower for a non-trivial file, i.e. one with. However, for a file with 7700 nodes, it still only takes 2 1/2 seconds. So there is a trade-off. While there are a few versions in the code, xmlHashTree() is the one to use for speed reasons. xmlFlatListTree() is another and xmlFlatTree() is excruciatingly slow. See tests/timings.R for some comparisons. xmlGetElementsByTagName and other facilities work on these types of trees. More functions and methods can and should be provided to work with these trees if they turn out to be used in any significant way. * add the R attribute 'namespaces' to an XML node's attributes vector so that one can differentiate between conflicting attribute names with different namespaces. * added parseURI() to return the elements of a URI from a string. Version 0.99-7 * Example of reading HTML tables using XPath and internal nodes in bondsTables.R * Some additional methods for XMLInternalNode. Version 0.99-6 * configure does not require the GNU sed, but can use any version of sed now that the use of + in the regular expression has been removed. Version 0.99-5 * Added append.XMLNode and append.xmlNode to the exported symbols from the NAMESPACE file. Version 0.99-4 * Fix for addComment() in xmlOutputDOM(). * Removed all the compilation warnings about interchanging xmlChar* and char*. Version 0.99-3 * Added support in print methods for XML objects for indent = FALSE, and tagSeparator, which defaults to "\n". These can be used to print a faithful representation of an original XML document, but only when used in combination with xmlTreeParse( skipBlanks = FALSE, trim = FALSE) Version 0.99-2 * Problems compiling with libxml2-2.5.11 and libxml2-2.6.{1,2}, so we now test for a recent version of libxml. The test uses sed -r which may cause problems. If one really wants to avoid the tests set the environment variable FORCE_XML2 to any value before running R CMD INSTALL XML. * Documentation for getNodeSet() didn't refer to the new namespaces argument. Version 0.99-1 * getNodeSet() takes a namespaces argument which is named character vector of prefix = URI pairs of namespaces used in the XPath expression. * Handlers for xmlEventParse() can include startDocument and endDocument elements to catch those particular events. Useful for closing connections and general cleanup, especially in the "pull" data source, i.e. connections or functions. * xmlEventParse() when called with a function as the data source now doesn't have a new line appended to each string returned to the parser by the function. * Passing a connection to xmlEventParse() now uses a regular R function to call readLines(con, 1) and no longer does this via C code to call readLines(). * Fix to the example in xmlEventParse() using the state variable. Version 0.99-0 * Implementation for the endElement in the xmlEventParse() for saxVersion == 2. * In xmlEventParse( , saxVersion = 2), the namespaces come as a named vector in the fourth argument. Version 0.98-1 * Messages from errors are now more informative. Using saxVersion = 2 in xmlEventParse(), you get get the line and column information about the error. Version 0.98 * Added saxVersion parameter to xmlEventParse() to control which interface is used at the C level. This changes the arguments to the startElement handler, adding the namespace for the element. * Added xmlValidity() function to set the value of the default validity action. This allows us to do the setting in the R code. This is currently not exported. * Added recursive parameter to xmlElementsByTagName() function. This provides functionality similar to getElementsByTagName() in XML parsing APIs for other languages. * xmlTreeParse() called with no handlers and useInternalNodes returns a reference to the C-level xmlDocPtr instance. This is an object of class "XMLInternalDocument". This can be used in much the same way as the regular "XMLDocument" tree returned by xmlTreeParse, e.g. xmlRoot, etc. * Added getNodeSet() to evaluate XPath expressions on an XMLInternalDocument object. * Added a validate parameter to the xmlEventParse() function. Version 0.97-8 * Fix error where CDATA nodes and potentially other types of nodes (without element names) were being omitted from the R tree in a simple call to xmlTreeParse("filename") (i.e. with no handlers). Version 0.97-7 * Documentation updates. Version 0.97-6 * useInternalNodes added to xmlTreeParse() and htmlTreeParse(). This allows one to avoid the overhead of converting the contents of nodes to R objects for each handler function call. Also, can access parents, siblings, etc. from within a handler function. * Included parameterizations for Windows from Uwe Ligges to aid automated-building and finding the libxml DLL at run time. Version 0.97-5 * Methods for accessing component of XMLInternalDocument and XMLInternalNode objects, e.g. xmlName, xmlNamespace, xmlAttrs, xmlChildren * saveXML.XMLInternalDOM now supports specification of a Doctype (see Doctype). * saveXML uses NextMethod and arguments are transferred. Identified by Vincent Carey. * Suppress warnings from R CMD check. * Change of the output file in saveXML() example to avoid conflict with Microsoft Windows use of name con.xml. Version 0.97-4 * Quote URI values in namespace definitions in print.XMLNode. Version 0.97-3 * Added a method for xmlRoot for HTMLDocument * Changed the maintainer email address. Version 0.97-2 * Added cdata to the collection of functions that are used in the handlers for xmlEventParse(). Omission identified by Jeff Gentry. * Fixed the maintainer email address to duncan@wald.ucdavis.edu Version 0.97-1 * Put the correct S3method declarations in the NAMESPACE. Version 0.97-0 * Using a NAMESPACE for the package Version 0.96-0 * Using libxml2 by default rather than libxml. * Fixed typo. in PACKAGE when initializing the library. Version 0.95-7 * When creating a namespace identifier, if the namespace doesn't have an href, then we put in an string. Version 0.95-6 * Documentation updates for synchronization with the code. Version 0.95-5 * Trivial bug of including extra arguments in call to UseMethod for dtdElementValidEntry that generated warnings. Version 0.95-4 * Configuration now tries to find libxml 1, then libxml 2 unless explicitly instructed to find libxml 2 via --with-libxml2. So the change is to pick up libxml 2 if libxml 1 is not found rather than signal an error. Version 0.95-3 * Remove the need to define xmlParserError. Instead, set the value of the error routine/function pointer to our error handler in the different default handlers in libxml. We now initialize these default objects when we load the library. * When setting the environment variables LIBXML_INCDIR and LIBXML_LIBDIR, one needs to specify the -I and -L prefixes for the compiler and linker respectively in front of directory names. * Detect whether the routine for xmlHashScan (in libxml2) provides a return value or not. This changed in version 2.4.21 of libxml2. Version 0.95-2 * Configuration detects Darwin and handles multiplicity of xmlParserError symbol. Version 0.95-1 * Configuration now supports the specification of the xml-config script to use via the environment variable XML_CONFIG or the --with-xml-config as in --with-xml-config=xml2-config * Recognize file:/// prefix as URL and not switch to treating file name as XML text. Version 0.95-0 * Event-driven parsing (SAX) can take a connection object or a function that is called when the parser needs more input. See the documentation for xmlEventParse(). * Classes and methods explicitly created during the installation. This will cause problems with namespaces until the saving of the image model works with namespaces. Version 0.94-1 * Minor change to configuration script to avoid -L-L in specification of directory for XML library (libxml). Version 0.94-0 * Use registration of C routines * Added methods for saveXML for XMLNode and XMLOutputStream objects. Version 0.93-4 * replaceEntities argument for xmlEventParse. * S4 SAX methods assigned to the correct database. Version 0.93-3 * Correct support for DTDs and namespaces in the internal nodes used in xmlTree(). Errors identified by Vincent Carey. Version 0.93-2 * Bug in trimming white space discovered by Ott Toomet. Version 0.93-1 * Documentation updates. Included xmlGetAttr.Rd. Version 0.93-0 * Added toString.XMLNode * Fixed the printing of degenerate namespaces in an XML node, i.e. the spurious `:'. Version 0.92-2 * Fixed C bug caused by using namespace without a suffix, e.g. xmlns="http:...." assumed prefix was present. Thanks to David Meyer. Version 0.92-1 * Display the namespace definitions when printing an XMLNode object. * New addAttributeNamespaces argument for xmlTreeParse() that controls whether namespaces are included in attribute names. Version 0.92-0 * XMLNode class now contains a field for namespace definitions The `namespace' field is a character string identifying the prefix's namespace. The `namespaceDefinition' field contains the full definitions of each of the namespaces defined within a node. * Printing of XLM nodes displays the namespace. * xmlName() takes a `full' argument that controls whether the namespace prefix is prepended to the tag name. Version 0.91-0 * Added a mechanism to the SAX parser to allow a state object be passed between the callbacks and returned as the result of the parsing. This avoids the need for closures. Also, works with S4 classes and the genericSAXHandlers() methods by allowing one to write methods for these generic callbacks that dispatch based on the type of the state object. * Fix to make work properly with S4 class system. Version 0.9-1 * Formatting of the help files to avoid long lines identified by Ott Toomet * Addition of `ignoreComments' argument for xmlValue() * Date in the DESCRIPTION file corrected (thanks to Doug Bates). Version 0.9-0 * Added addCData() and addPI() to the handlers of the different XMLOutputStream classes. Code for XMLInternalDOM (i.e. xmlTree()) from Byron Ellis. * print() method for XMLProcessingInstruction node has the terminating `?' as in . Version 0.8-2 * Changes to support libxml2-2.4.21 (specifically the issues with the headers and parse error regarding xmlValidCtxt). Thanks to Wolfgang Huber for identifying this. * Ignoring R_VERSION now, so dependency is R >= 1.2.0 Version 0.8-1 * Added an `attrs' argument to the xmlOutputBuffer and xmlTree functions for specifying the top-level node. Version 0.8-0 * xmlValue() extended to work recursively if a node has only one child. * T and F replaced by TRUE and FALSE Version 0.7-4 * Support for Windows Version 0.7-3 * Documents without are handled correctly. * Configuration tweak to set LD_LIBRARY_PATH to handle the case that the user specifies LIBXML_LIBDIR and it is needed to run the version test. * Keyword XML changed to IO. Version 0.7-2 * Fix for printing XMLNode objects to handle comments and elements with name "text". Identified by Andrew Schuh. Version 0.7-1 * Minor fixes for passing R CMD check. Version 0.7-0 * Generating XML trees using internal libxml structures: xmlTree(), newXMLDoc(), newXMLNode(), saveXML(). * Support parsing HTML (htmlTreeParse()) using DOM. Suggestion from Luis Torgo. * Additional updates for libxml2, relating to DTDs. Version 0.6-3 * Installation using --with-xml2 now attempts to link against libxml2.so and the appropriate header files. * Use libxml's xml-config or xml2-config scripts if these are available. Version 0.6 * xmlDOMApply for recursively applying a function to each node in a tree. Version 0.5-1 * simplification of xmlOutputBuffer so that it doesn't put the namespace definition in each and every tag. * configuration changes to support libxml2-2.3.6 (look for libxml2, check if xmlHashSize is available) * now dropping nodes if the handler function returns NULL. Updated documentation. * spelling correction in the documentation Version 0.5 * xmlOutputBuffer now accepts a connection. * Fixes for using libxml2, specifically 2.2.12. Also works for libxml2.2.8 * Enhanced configuration script to determine what features are available. Version 0.4 * `namespace' handler in xmlTreeParse is called when a namespace declaration is encountered. This is called before the child nodes are processed. * More documentation, in Tour. * xmlValue, xmlApply, xmlSApply, xmlRoot, xmlNamespace, length, names * Constructors for different types of nodes: XMLNode, XMLTextNode, XMLProcessingInstruction. * Methods for print(), subsetting ([ and [[), accessing the fields in an XMLNode object. * New classes for the different node types (e.g. XMLTextNode) * Event driven parsing available via libxml. Expat is not needed but can be used. * Document sources can be URLs (ftp and http) when using the libxml parser. * Examples for processing MathML and SVG files. See examples/ directory. * Examples for event driven parsing. * Class of result from xmlTreeParse is XMLDocument. * Comments, Entities, Text, etc. inherit from XMLNode in addition to defining their own XML class. XML/Bugs.html0000644000176000001440000000154711741563530012544 0ustar ripleyusers

  • Namespaces need to be handled.
  • Error message when a file doesn't exist needs to be clearer
    SOAPFault("fault3.xml")
    Error in xmlTreeParse(xmlSource) : error in creating parser for fault3.xml
    In addition: Warning message: 
    XML Parsing Error: Entity: line 1: Start tag expect, '<' not found 
    
    Check the return type for routines passed to xmlHashScan whether they return void or void * and adjust accordingly.

  • Duncan Temple Lang <duncan@wald.ucdavis.edu>
    Last modified: Tue Oct 1 08:54:19 EDT 2002 XML/Bugs/0000755000176000001440000000000012160604251011637 5ustar ripleyusersXML/Bugs/wormmart.R0000644000176000001440000000103011741563530013634 0ustar ripleyusers x = postForm('http://www.wormbase.org/db/searches/advanced/dumper', species="briggsae", list="", flank3="0", flank5="0", feature="Gene Models", dump = "Plain TEXT", orientation = "Relative to feature", relative = "Chromsome", DNA ="flanking sequences only", .cgifields = paste(c("feature", "orientation", "DNA", "dump","relative"), collapse=", ")) int = htmlTreeParse(x) XML/Bugs/memory.R0000644000176000001440000000263011741563530013303 0ustar ripleyuserslibrary(XML) f = system.file("exampleData", "mtcars.xml", package="XML") curxmltext <- paste(readLines(f),collapse="\n") memoryLeakDoc <- function() { require(XML) for(i in 1:10000) { gg <- xmlParse(curxmltext, asText=TRUE) rm(gg) } } memoryLeak <- function(file = f, useText = FALSE, n = 100) { require(XML) if(useText) f = readLines(file) for(i in 1:n) { gg <- xmlParse(f, asText = useText) ret <- xpathApply(doc = gg, path = "/blah", fun = xmlValue) rm(ret) # free(gg) rm(gg) } gc(); gc() } memoryLeak3 <- function(file = f, useText = FALSE, n = 100) { require(XML) if(useText) f = readLines(file) ans = vector("list", n) for(i in 1:n) { gg <- xmlParse(f, asText = useText) ret <- xpathApply(doc = gg, path = "//record[1]") ans[[i]] = ret rm(ret) rm(gg) gc() } gc(); gc() ans } require(XML) memoryLeak2 <- function() { for(i in 1:10000) { gg <- xmlParse(curxmltext, asText=TRUE) xmlRoot(gg) rm(gg) } gc(); gc() } if(FALSE) { library(XML) f = system.file("exampleData", "mtcars.xml", package="XML") doc = xmlParse(f) invisible(getNodeSet(doc, "/blah")) rm(doc) gc() } if(FALSE) { library(XML) f = system.file("exampleData", "mtcars.xml", package="XML") doc = xmlParse(f) invisible(xmlRoot(doc)) gc(); gc() rm(doc) gc() } XML/Bugs/createXMLNode.R0000644000176000001440000000032711741563530014426 0ustar ripleyuserslibrary(XML) gctorture(TRUE) a = newXMLNode("a") ; b = newXMLNode("b", "boo", parent = a); c = newXMLNode("c", "hoo", parent = a) print(a) #xmlValue(a[["b"]]) <- "mo" #print(a) xmlValue(a[["c"]]) <- "jo" print(a) XML/Bugs/XMLStuff0000644000176000001440000001624411741563530013251 0ustar ripleyusersIssue 0: I don't think I understand just what the useTagName argument to xmlTreeParse is supposed to do. I assume this is xmlEventParse and not xmlTreeParse (as there is no such parameter in my version of xmlTreeParse) ? The idea is similar to the handlers in xmlTreeParse() in that when we look for a function to call to handle startElement, we can either call the generic event handler, i.e. startElement, or we can use the name of the node as the name of the function in our list of handlers. This allows the author of the handler functions to write separate functions for the start of nodes with different names rather than having them in a switch/if statement within a single startElement function. It only applies to startElement. If no function with that name is found in the set of handlers, we use the startElement function, if it is available.. Here is what I have in the Rd file now. \item{useTagName}{ a logical value. If this is \code{TRUE}, when the SAX parser signals an event for the start of an XML element, it will first look for an element in the list of handler functions whose name matches (exactly) the name of the XML element. If such an element is found, that function is invoked. Otherwise, the generic \code{startElement} handler function is invoked. The benefit of this is that the author of the handler functions can write node-specific handlers for the different element names in a document and not have to establish a mechanism to invoke these functions within the \code{startElement} function. This is done by the XML package directly. If the value is \code{FALSE}, then the \code{startElement} handler function will be called without any effort to find a node-specific handler. If there are no node-specific handlers, specifying \code{FALSE} for this parameter will make the computations very slightly faster. } Issue 1: The Value part of the xmlTreeParse documentation is not correct (?xmlTreeParse) > yeastIntAct <- xmlTreeParse(Yeastfn) > class(yeastIntAct) [1] "XMLDocument" > slotNames(yeastIntAct) character(0) > names(yeastIntAct) [1] "doc" "dtd" > names(yeastIntAct$doc) [1] "file" "version" "children" It says that the class is "XML Doc", which is not right, and then seems to talk about the doc part, and ignore the dtd part. This is becoming increasingly messy as we have combinatorial explosion of the type of the return value because of the DOM, internal DOM, the handlers, as a tree, ... I will soon create a separate function that will do xmlTreeParse(doc, useInternalNodes = TRUE) I haven't yet finalized the name, so suggestions welcome. Something like xmlInternalTreeParse(doc) or ixmlTreeParse() I am not sure that anyone has used the DTD part. There is an issue that I seem to return XMLDocument whether we have a DTD or not in the answer so two types of objects are given the same class. I'll fix this. In the mean time, here is the current contents of \value{} By default ( when \code{useInternalNodes} is \code{FALSE}, \code{getDTD} is \code{TRUE}, and no handler functions are provided), the return value is , an object of (S3) class \code{XMLDocument}. This has two fields named \code{doc} and \code{dtd}. If \code{getDTD} is \code{FALSE}, only the \code{doc} object is returned. The \code{doc} object has three fields of its own: \code{file}, \code{version} and \code{children}. \item{\code{file}}{The (expanded) name of the file containing the XML.} \item{\code{version}}{A string identifying the version of XML used by the document.} \item{\code{children}}{ A list of the XML nodes at the top of the document. Each of these is of class \code{XMLNode}. These are made up of 4 fields. \item{\code{name}}{The name of the element.} \item{\code{attributes}}{For regular elements, a named list of XML attributes converted from the } \item{\code{children}}{List of sub-nodes.} \item{\code{value}}{Used only for text entries.} Some nodes specializations of \code{XMLNode}, such as \code{XMLComment}, \code{XMLProcessingInstruction}, \code{XMLEntityRef} are used. If the value of the argument getDTD is TRUE and the document refers to a DTD via a top-level DOCTYPE element, the DTD and its information will be available in the \code{dtd} field. The second element is a list containing the external and internal DTDs. Each of these contains 2 lists - one for element definitions and another for entities. See \code{\link{parseDTD}}. If a list of functions is given via \code{handlers}, this list is returned. Typically, these handler functions share state via a closure and the resulting updated data structures which contain the extracted and processed values from the XML document can be retrieved via a function in this handler list. If \code{asTree} is \code{TRUE}, then the converted tree is returned. What form this takes depends on what the handler functions have done to process the XML tree. If \code{useInternalNodes} is \code{TRUE} and no handlers are specified, an object of S3 class \code{XMLInternalDocument} is returned. This can be used in much the same ways as an \code{XMLDocument}, e.g. with \code{\link{xmlRoot}}, \code{\link{docName}} and so on to traverse the tree. It can also be used with XPath queries via \code{\link{getNodeSet}}, \code{\link{xpathApply}} and \code{doc["xpath-expression"]}. If internal nodes are used and the internal tree returned directly, all the nodes are returned as-is and no attempt to trim white space, remove ``empty'' nodes (i.e. containing only white space), etc. is done. This is potentially quite expensive and so is not done generally, but should be done during the processing of the nodes. When using XPath queries, such nodes are easily identified and/or ignored and so do not cause any difficulties. They do become an issue when dealing with a node's chidren directly and so one can use simple filtering techniques such as \code{ xmlChildren(node)[ ! xmlSApply(node, inherits, "XMLInternalTextNode")]} and even check the \code{\link{xmlValue}} to determine if it contains only white space. \code{ xmlChildren(node)[ ! xmlSApply(node, function(x) inherit(x, "XMLInternalTextNode")] && trim(xmlValue(x)) == "")} Glad you asked :-) Issue 2: This code still segfaults (I reported it a year or two ago) ezURL <- "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/" t1 = url(ezURL, open="r") if( isOpen(t1) ) { z <- xmlTreeParse(paste(ezURL, "einfo.fcgi", sep=""), isURL=TRUE, handlers=NULL, asTree=TRUE) dbL <- xmlChildren(z[[1]]$children$eInfoResult)$DbList dbNames<- xmlSApply(dbL, xmlValue) length(dbNames) dbNames[1:5] } Seems to work with entrez and not entrez1 in the URL. Issue 3: the example: from event.R fails with: Error in .Call("RS_XML_Parse", file, handlers, as.logical(addContext), : Error in the XML event driven parser for test.xml: Entity 'testEnt' not defined > unless I uncomment this line: .getEntity = function(name) { cat("Getting entity", name, "\n") ; "x"} Thanks. And I've added an entityDeclaration handler also. Getting by without handling entities is a little tricky, but I'll look into it more. XML/Bug.R0000644000176000001440000000011611741563530011605 0ustar ripleyuserslibrary(XML) z = newXMLNode("foo") save(z, "/tmp/z.rda") load("/tmp/z.rda") z