[Rt-commit] rt branch, master, updated. rt-4.0.1-231-g10fe1b8

Alex Vandiver alexmv at bestpractical.com
Wed Jun 22 21:36:44 EDT 2011


The branch, master has been updated
       via  10fe1b8da2f1a4853fa5e2150952c42aa8d4cabb (commit)
       via  1c1cc5116185c4b5055402467dd7a1ceb03d6eac (commit)
       via  eaf4dd5e7a8332b296b2781d45f27bae36c34de3 (commit)
       via  db57f0774978fb51027ffcdbaf48332ae77f0ee0 (commit)
       via  005b72ae3cc2256a10fd580f54b8988355feb53a (commit)
       via  f7a97e5557786a7476b5c6dd0f822000363728e6 (commit)
       via  cd57c38de11a14f222f6496bf466eb6c8096deea (commit)
       via  be0d436baa764005ba83ae18e37e90209dd5e6c6 (commit)
       via  67f2bf3b0dabee710aaa23bdd36c2deee9011599 (commit)
       via  b55e7405ce5abe243f0115278f05788e5b036344 (commit)
       via  933ae96019c0a44d9e97a85dbef072742028df5c (commit)
       via  396bd2fcbdf9958436ce7dfddfbd356145dc0710 (commit)
       via  a8f4312afe83027456d17778ddfd91db860d2a9a (commit)
       via  0a0abb8e6c3f91633c21aa31d44704c2c71a25cf (commit)
       via  2615b295b3d7f479b03b1735f7e4824a0f33c954 (commit)
       via  b17908c4df102ce8d34d15f3b2b196b4737b72a7 (commit)
       via  0c7607b6b773b4c7e15a59e2a727615f0a297f9b (commit)
       via  7655037a4505d6670e94d40c605034239e4e1db9 (commit)
       via  4c38c3db7a783fa96549598208265f1bda35680c (commit)
       via  59f6a8b7279397c343cc108d5129bf774828588a (commit)
       via  f5298538836dd2b61699b58f0f1e220a2490e77a (commit)
       via  7cb33fe00ba13313ff4204f5a6477947e5b53e67 (commit)
       via  9d7215bae8ce22cddd5c603e8b05dad7ef441921 (commit)
       via  b818370b262d60eb5a32c55e69110477f5d09068 (commit)
       via  6edaaae72705e29a0812132d1b398f033f7c6cc0 (commit)
       via  c8b9ce830a260e8e71301b29eeacdf43d4d9f725 (commit)
       via  7fe8465b13dfa6a0d5ca907dac64c50ed7d33481 (commit)
       via  aa3144e5062237c2414fac9d7c412a15c5663c85 (commit)
       via  7cae5219374294dc30356a4f265884b2c97c143a (commit)
       via  1af3c867110e2bd824a0f20ef0085bd0da5a8286 (commit)
       via  0c8df3d3e6c9e80eb31b5ac405651cf209effda4 (commit)
       via  80c88255dac4c8753b8f90889884b6e83250d6e6 (commit)
       via  658472da2cc6611c9f5d389d6caaea73c9766a7d (commit)
       via  680d9ee660a083e0a0216e75cec4c2e972bb7d4a (commit)
       via  ceaf7d710761bed721b94c0958938d948fb25e2b (commit)
       via  8e891d496e174b571fac4896ea5d485c25edc32f (commit)
       via  323822d30559debd0c6d0abb0d97c382ee41f46b (commit)
       via  09dfe4c8b1ea2c5cc245a73d191445a53bbe72ad (commit)
       via  5894965c66847025656e677e0ead7177eb754455 (commit)
       via  ab1e5c4ba7788cec907d8e8f55abb21d6df06338 (commit)
       via  fe9cfa2d7bf0d50cdfb3760776c14031b10dae2b (commit)
       via  15d7acfad1accc2af84718e7d16272b28c51da11 (commit)
       via  04ee3f8821017e4254942fe1ef429b6232a8072b (commit)
       via  0f3ecfaf0e3cfe5aac030aed5efb56bbee61c72c (commit)
       via  6c6ef5e596ee87e5a31d2256ee682d55dad93ca5 (commit)
       via  2370ad8c83696fb51a54adff665c4cf947b44e49 (commit)
       via  dd1baa61b0016839180507f0326b8e63e8a85893 (commit)
       via  8b2a1742b0325329a516dc7c8126f77b7d59551f (commit)
       via  da3122a58e0549b0cef8308ed8fddeaf8781bc72 (commit)
       via  b03485457d43aba04751a7c7d92076a33021dde5 (commit)
       via  d80b1e408629b1fb509d4147f3904003a67c1440 (commit)
       via  a3cf8022f3e1c3956fcb14e0c46c9b7482b939cd (commit)
       via  d83855a292de88da85bec017b91f9572eff897c3 (commit)
       via  f40cc8d5741876c211a071d6b57b1560281a2e03 (commit)
       via  d797833f2ef7078fd04dbb1bcbcb5e1c70d5cdee (commit)
       via  0f880df49f3960f9e2823769eb59dd7379383fbf (commit)
       via  43853e43b33fe4741a74745ab8c888e0b8743f8e (commit)
       via  a7f579a2640b1bcc9ca2f28730713a8e29a8cda1 (commit)
       via  7e7f12f64bdb7c88ac2e887d098c21b454394d6f (commit)
       via  e1f5a3ef0f7aeefd213c7c475fa7916ae38081a6 (commit)
       via  a14d27f8edc0e7115d34120e8f144952c51986dc (commit)
       via  a566c3120dd6263dd936525999dbac3d257f2b65 (commit)
       via  0c2cfb18726daa4e811ba68127c91e2ada28757c (commit)
       via  eac4e81b85ccd5dcbb42a50b968f976145485462 (commit)
       via  31d89fcdc3941584ed70678621762378c3ff2396 (commit)
       via  320edaaefb48a78bb1dba264f260157a1a53991e (commit)
       via  4d2a816cfa1543b17b9661daaf6b7f3b2fd4f13e (commit)
       via  e841acaac0448c9df710f889381645dc4bdcd3b4 (commit)
       via  a0a9618d3e828c7c77ce5202d82752df822b99e6 (commit)
       via  58dd08c301900c27d0add164abb79e0026886f1f (commit)
       via  daec23790756d61474a0d15f5945fea366072576 (commit)
       via  9cce23cb5b9bcc9464fbc94daa701bc39a1301c4 (commit)
       via  d7309bc0c46ba43883dc06b897946341dea826f8 (commit)
       via  a2b11dbef2b465e91f77438a299b342283ddf5c9 (commit)
       via  2cf2cb5120f7efae08d33bdb3c7287ff373ff4a8 (commit)
       via  09dbf90f4fdffab6247b3b6780184833d20190da (commit)
       via  accb31978c6a1e3826b14630b80323d8bfd35a31 (commit)
       via  2fcea5d4f711b616068f0359b6f6471fb913d8c2 (commit)
       via  22b733a4345e53edb1740e08d31191ede21b58a8 (commit)
       via  487b038eb0868843d1684d600ea24e77f5ae5ded (commit)
       via  89a7ff80cdcde11371c382b3cde06495b6900457 (commit)
       via  03c9ce48ba312547d8fb59dd3ad535052291185a (commit)
       via  cc823e384f1b5de16a9365ee0c9a1833ade06789 (commit)
       via  93d407bb04745f406237dfe1210b21a61335346c (commit)
       via  d65ecf4662500cd3d7e3c39df387c7bc4b1e3882 (commit)
       via  7cdd30fa7d9fc8781b08ba92d3865a5bd3340c73 (commit)
       via  adabc194f81ad5f8efaabb133767e5aaf8208faa (commit)
       via  0d9f41ebfe16b2a09a06c366ea8c4aeac78d0515 (commit)
       via  212e740e2f1df9845660f454befba1b06df84eb0 (commit)
       via  59d03777978213185654e41514744840f3b5ff88 (commit)
       via  c8d44dd371d33441d00ffc4794edb137eb034640 (commit)
       via  9830dc1bb067ff176f239a2c620a6bc5f7e7100c (commit)
       via  08ca479713a562e57f9a829682c5abeee57ee519 (commit)
       via  aedb1e88839b1f7eca0a28b48d8ab47c260d2467 (commit)
       via  7c01c8ed2dd9c082f0a95c56082fa563251e5e85 (commit)
       via  5b44736635d2d1e5b5f335136e8c60b756f5164f (commit)
       via  fa4126f118291735dfdc7e778f85220d697d768c (commit)
       via  77b122bc1ef5522f915a1cd3a723252a15912dea (commit)
       via  2ccd8bcfad46718b9f2d4bd1c3d888b00a27c5c9 (commit)
       via  d9225b55a1f80edda3f19baf45b5a1597590ac4a (commit)
       via  6e66dcc5f9f3a16360f31aef5162972761310187 (commit)
       via  3d7f7b03dfabf94bc3268afbf40a031052e2054a (commit)
       via  329e9f4e2ebf0149d93e3e6c3aa988445ca59b75 (commit)
       via  e7b2653906ed4f3d67bb124e3ad332a281649974 (commit)
       via  343631a6af6c2680a186815834b72705631cf2f9 (commit)
       via  53672e11810ab4a3cafa397ae9904e729645a35b (commit)
       via  65e5d38e113a1d72f031afe48039c60024ce216d (commit)
       via  caeb9ccafb388dde6ecb51fd6bbe3e920f5870b0 (commit)
       via  207ec55c250e46bd68bc26304db765333a5c7d26 (commit)
       via  666e9c5a5cf82b91d7b0b06d1e607cab12d5be9b (commit)
       via  e33351ebe6ce39a4781841a0d1999f3dfa8738b1 (commit)
       via  b2e99d16e478db349358d10ab3b44a5d47a3f9b4 (commit)
       via  3fd9daff84e53efeef6a4b4f8a1af9080ab59a5b (commit)
       via  68c5df33ea845f7c3c8f0386b82bfa8036193315 (commit)
       via  95a89ccdb655e284bddb9269c730c6b842d43bc6 (commit)
       via  2f6154dbf44ebff78d28c2aa3ca0dee690c1a980 (commit)
       via  dd979521fbf8f0c92228821721c89fbd3729cdaf (commit)
       via  5f08d687b37f976b72a9ad25f543df13d6db0880 (commit)
       via  1cc7f5ed384909e2b43a19c75ae4222a65a07abf (commit)
       via  a3f2a3960a0c8bf4c1b1a423be79fef5042e2a9b (commit)
       via  88797ea1ce4470e29ffb989bfa5af2f0f0fbb374 (commit)
       via  f3c42bef0b529ea52a15e7e9a072c5a8feba5d1f (commit)
       via  ea404eb39cd45b6b4213616fc423b1e91e37e0f7 (commit)
       via  94c82bf22abc377a2853f81a3498ff875d8aebfc (commit)
       via  3c7a1ada1848ef148f21127795b8b1c8d28486ca (commit)
       via  2a4329de93c95ed09c361fc3b5c5ec7c5800a2ee (commit)
       via  5669f76dd873d7d64f9e6d34772dbc91ea056250 (commit)
       via  d789bd3986a4ad63a71bd2450c9aad0c7763a7de (commit)
       via  d03b4bac8c208a78f47eefd37df311713f52b0c7 (commit)
       via  5d9f281d7dc65eedf678c43bd2fd363ef4a45f35 (commit)
       via  7f12ef5270b349862dddc1c3effcfb872cc93dee (commit)
       via  a3a753be49d6410ada935ac2707ac09f5c8a9ce4 (commit)
       via  ba93d3561ba22833dba5428bb30dced4b876b12c (commit)
       via  6f6aaf879f20ae91a9b27f57c658994b9b73ae6a (commit)
       via  8fdc29834964a0ecc6506cd47845b8060084a310 (commit)
       via  d99fb385b2b46191d749b48be83f21c7cbf2fd7f (commit)
       via  9e4693afea569c1edacc4890cbd84f27be6b17cb (commit)
       via  b37a527e7e4d780f18c0a7a227c2719154b4b635 (commit)
       via  5120e1e4bf2763c3c99cc6f14300961c86eb1443 (commit)
       via  d895a3398207635ea8d98f933f260cc1cc1ad44e (commit)
       via  579828a05cd60ddf86dee6c84d420dd13e68c654 (commit)
       via  b055fafce46c74cf4cd0cfd0e13b44b8cbc236fd (commit)
       via  a516cd5ce77be7bc444fb9b51b71db953963c9da (commit)
       via  2125a101b469f9669bd5dd76ecc142ce4fd7d736 (commit)
       via  18d4f13838282617f84c61273f1c37145860c080 (commit)
       via  120d1f330039df0385da21c7422d748bc2afa7ca (commit)
       via  285b1a082b36db8b963ae960739c0132e661d4a0 (commit)
       via  d2762b27d8723bd51791cfed7be8a0e3e8163130 (commit)
       via  d6ecd9bc58a5f031f9644418d468836becf742ad (commit)
       via  f12d514b1542e22b8a9a71d117730a1af6658315 (commit)
       via  8caa6def5466cd8534988346847dfdc431559316 (commit)
       via  3a5918a5240832903210cf7e07c1274d884b346e (commit)
       via  b4aafe53dd1952109088facb92bf824a3a81b128 (commit)
       via  c71c90c692c500435d1af8756ab2d6d8c0efcb18 (commit)
       via  9d9992654e305c0c819b1d133be5c4901ed47cd0 (commit)
       via  e4e09baca11e8ecf28a4993ef8d5d442d818fb39 (commit)
       via  67596ede21f4fd8929dcfdeb0dcb54f79bc397a7 (commit)
       via  5c8188e71af7f0c292efab59ffea075ccb974cf5 (commit)
       via  5add26c8d76d8a25626ba02ebafe0734fb34619f (commit)
       via  7ea7785d3a71e64e278109bf40baad91772fd582 (commit)
       via  4cdce8c2b0dca40e3ef0abfe433dc9e0627d099e (commit)
       via  96998f72a6d47a5dab42dae3c926c362c7773cf3 (commit)
       via  2d22685da35758bf64cf7bcda957cfc200002625 (commit)
       via  e896ce1fca19a1d0afbb59615a16e4c599997430 (commit)
       via  2395d98ac8ee46efa944abc5aa0a2358393a0e2a (commit)
       via  7f4c26b8bcf0813ffa270e972aa4c5e87ec8e036 (commit)
       via  807485804f985cfe5b46d271b0930f39e58d07b6 (commit)
       via  1df61812c6ca35c1c52ceb8e033edf7cc2e94c97 (commit)
       via  9d09522d2c256a5e6ce627670495d5165ae8a87b (commit)
       via  ccce4140663dc3a2aa539efe5931baea9613956d (commit)
       via  b31107e97519cfcb19b08e213ba42f2df0407fe1 (commit)
       via  ea95a97e9489827d8b4d74dd365db626bb39a7a0 (commit)
       via  7ec4ff8c8433f24b4ef514b522059e8b259cc1ea (commit)
       via  064823b7daf8618f1b7d87d5fd81c8c05d4e8ef3 (commit)
       via  e573b4f029a69ea4a19fb69ef9cca67c0ddfc5a5 (commit)
       via  d651af28aa82f97c928beda2d6b3b7fee7b57b92 (commit)
       via  ce3f25314db03579eda3ebaf6ef0096b70340762 (commit)
       via  69da6caaac112c10b891f3b8a82050a20e146980 (commit)
       via  da4b6eabe69d042499e8460b239c31efb3f404f2 (commit)
       via  c11cb2e815dcd1f3bd20078e6c82ede25fd90eab (commit)
       via  0f05db5a250203567ce2224322b869442c25d245 (commit)
       via  4f9e106f2325af804acde64af7f296adf16dc1dc (commit)
       via  a57da599e74e1e1811ae19d613d1248b4b28028a (commit)
       via  c789e14bb8adc6d0dd5102fab1cfbe57503996a6 (commit)
       via  25de4fb20e2d9b300cffcfb5d674a916fc22da02 (commit)
       via  992248fb6fedfaff6ba118a735dc8e46223c991a (commit)
       via  91c097270933647c27daefdbf188d1726df982f8 (commit)
       via  a15f200fba60ba37b9d914c8c4b67dadc9c5e336 (commit)
       via  9ba0f69ca021b7e5f12fae379cc99d771d0df950 (commit)
       via  2e438b94ba6ee82fb2365feac1e6f53e5413f1ad (commit)
       via  fb3da9fe4760193e0e227a01da43c9cfafd19e50 (commit)
       via  a7e43baf17b76e121d3098590f7471129f16c26a (commit)
       via  6cf0d5e8d19b1511d89be92662f7361707e04d3b (commit)
       via  a262092e8648c18008e1a71a37ad4757ffee9168 (commit)
       via  6dfca7aa92d66be9cc4109e432307bfc354fac71 (commit)
       via  30a258971141dfa8ae0fc372f952878b1ff25435 (commit)
       via  3f5c3b21406eec4ac9f468edff351521801ca1b3 (commit)
       via  1fb602b9e95bf1894a551a5b3c05134314210fea (commit)
       via  41bdfba7242dab914c202430ca602a59b96440d9 (commit)
       via  419cbac14f01b559ffdf2be50be4c6cd8b1b3c1d (commit)
       via  0062ecbdd15a67cb6b33e39d8c82982cff8f8aa5 (commit)
       via  6cdac51d302e8f125ebc541df17479018a9d9f54 (commit)
       via  c2fa433f0453417206916a9379f373dc0b27e90d (commit)
       via  6ca2e7bd6596266e757e92cad132e8e1449a68fc (commit)
       via  3bc42827b3468ba5b7d49efed7905273418de8c4 (commit)
       via  45a0ffdd00ecdd1f20d49cbac8948666a1625a1e (commit)
       via  a0dc09a38e3ae8ecc588ac749c481633d3594f86 (commit)
       via  8eb98fa62db4acdb7d13ea5adf7515a1d7f26a31 (commit)
       via  1d579d546519e1ad05f7f767a2e8ea3e056699b3 (commit)
       via  f87b7bf4136d5d91e4f7be29cf82267c31d98271 (commit)
       via  8523ae329dcbbdb256302576eb9eaf03f6d0d376 (commit)
       via  b7f93b6c522dae1c37bddf89520e81347cd01abc (commit)
       via  06adf733081dae1e2a851ff1d666aea4225aab58 (commit)
       via  b0796223b7a74f87bf67960d6ba11d838b0b36c1 (commit)
       via  fb209b424b369c464443db33f30e590ef4c4be3f (commit)
       via  9b40256046ee474a6a8d4d33d707d9d4e009d675 (commit)
       via  4e00e521ef1a2552a397ba5f69f566b586ae4dfc (commit)
       via  01f01dc5d4b60cf066d331795109bf5e3c321891 (commit)
       via  5024fd730f98860998558264cf81fae13c9d392e (commit)
       via  6f4a74cf049e8442bbd3697995b7fd9b68fb75e9 (commit)
       via  8184d0dd6ca2dba83388e5bbc7eff49bac049eb4 (commit)
       via  8d3788994d7ab67a2131992063e1d4c0739a22af (commit)
       via  a117e9d99855427cbe95d3c97e43c39f6370639d (commit)
       via  b378af0e13c7d327ff27553b47c1fc7c68e2fa53 (commit)
       via  0c29841b426b0134c925004f2e4a55f77d5b9571 (commit)
       via  b3e3f1d268e014184b37faa884dcf764e10acaef (commit)
       via  43597899182112e3e0bb813ba287a10d1b7a2bcb (commit)
       via  efba9e8952cca87b55eaac7f629c5dd68d6b26e1 (commit)
       via  266625b84f54d477e53cdcf0396b4105658e9818 (commit)
       via  15d59983add70df50b8a5e0c225084d2521f4b65 (commit)
       via  3f71b4ac7fa0ded0b16ba459de5dd621207d8a60 (commit)
       via  95254c056cec58450c5de36fb86d9ca704fb47a1 (commit)
       via  947f1c8ed08b86b7106fac2454184249947f2093 (commit)
       via  538c8fe0bdcd96c64f92ce107d89a01bb089a650 (commit)
       via  ad2ba5cdead18d56ec83f7c1d30f65f1f6688945 (commit)
       via  201eee7a0d4feb39e926a7591c679abb08d1e474 (commit)
       via  9e4002a4863811f3cb28ed791be3349e04889389 (commit)
       via  ab9fa81840f9cee3967911611fd0d3ef8e28eccc (commit)
       via  5cf2cad9a95ffb2d49a3cdeb823d689ece7df20d (commit)
       via  fa5dffcb4e2ce943e7506cd4bc56c608725554a9 (commit)
       via  1b66c9baa565369eb1bfb5c13d0e2d3a26407949 (commit)
       via  d16cafcd37bce065739c57fe641c5030fed106cf (commit)
       via  1d665c448c8eb8625c27f8da8bb1a71103d712f2 (commit)
       via  6657efc19964327dfa3a586732de60da55dbfc90 (commit)
       via  92ab8277fb3a2db97d4f18970cf0df9612224db7 (commit)
       via  7fc640f39279d68157d03c23952390f999a0f9ae (commit)
       via  90539763ed32f7f2a808cef28cef8c072bbbdd2f (commit)
       via  91cd0c341ef24a9d6ee8b71d402395be9242290c (commit)
       via  d83758c312cb5cdf182b15ce8955025f07bf4e08 (commit)
       via  8446db88002a3d1b7d7bd72382b6e3b4330a416c (commit)
       via  a3fc4ec3c8992098473ec5ad4a6cd3ad6f35a4ad (commit)
       via  3507d83cc474220b69066e876ceae0827fca9ebb (commit)
       via  21c99c80ea60623e2497fd94eadc3889cdd355db (commit)
       via  0c3013f00fe2af4ae8f517c964a6299f276bf618 (commit)
       via  45224b8941994098c349a14b0e1fc1c7de3eee9e (commit)
       via  8869a17145154928226362e2cae608ad427dfe51 (commit)
       via  b7d981f521647e14faf9d496068c0c6d6523770b (commit)
       via  d15c50306b4bdd99ee3d20da515c4162b6d4d2a9 (commit)
       via  dbfe8313247f15735503118cea65b9d2e3685d8f (commit)
       via  7ec3ef1677d732ad5c8f62462a001b226aaf8611 (commit)
       via  af9c935ff986de58ff6e80bf119d4d81498789dd (commit)
       via  49eef0687344df57168b3458dc9bf6a57560d1f4 (commit)
       via  a8bdbc76bf180f13995e87b39bb828e5af35209d (commit)
       via  8fb33244f65b912b56889c437f05fd672a74a136 (commit)
       via  559e6912034286b9c171dd281e9e094644c49c81 (commit)
       via  ad0c132a903321b9e79a686afd1b2804b520420e (commit)
       via  8aad388284e8c0c8eb57cfbcd6713e09ece69ea1 (commit)
       via  7b651f2b26b67634a7a7c45c6bafd62cfebbe54d (commit)
       via  4a6338c7eefeed5b60137ae2a0ab1330fd7c7313 (commit)
       via  3ea82f572a7c011ea328ccadf104f55569138ce1 (commit)
       via  6c55764aa4d16ac33292f8fe16fc1e471c14d721 (commit)
       via  5fa208035b9179769b449d8b81a28d829e4f5f16 (commit)
       via  38eee08a1da52a18a254bb1d96e15f581bac6bbe (commit)
       via  3fb71df1c2535ab786dba61893051b6d9ce8cbc9 (commit)
       via  4da931cd14b23cca4398f3585c9299f86f45f324 (commit)
       via  c9f4d7ae876c7b52986244e9149f553f6657989b (commit)
       via  304fac9762985dd548ee55b122f7ff09ee16325a (commit)
       via  709cc4e465948d1690e5cf0cea2a4874d8521f7a (commit)
       via  824597b330031248e6661e5e1cc3c5030a4214a5 (commit)
       via  17d801a77e2e7e493e27f99bfa08690f9b637fef (commit)
       via  db025dddbfa37df845e14c2ec279657cb472171b (commit)
       via  db20a47e0c2e6ebe158222e6bb8da493649da0d5 (commit)
       via  5aaed452cf9bbba813d2b9467f0d2d5364d0eb74 (commit)
       via  7d8b153e6f84b2f4e776bd1941df6fe290cc46f1 (commit)
       via  a30bb0dbd89e451665d3b7d15ba6105c9c0d8f78 (commit)
       via  606e5e609e98642cc9aa91364e0d94e3d7797f1b (commit)
       via  937048032ab17743fafec3a6fe1b2eeb3dcade5c (commit)
       via  af90bde1a96cc0f40630d2a5a608b321a4ed6b2c (commit)
       via  d93045d138fa908ae13ee1293a7e9458e0cc8542 (commit)
       via  39f03a2a20194f3bb70e6e67a72ca48dbca882e1 (commit)
       via  fa7b773f536047852540c7d608adcda04c6d895a (commit)
       via  efa80116dac949cd02b273de56b48d4bc83b7e9c (commit)
       via  330fa768e8aa7cb3928d656466fd7c5a27015f72 (commit)
       via  494010c1452b89f61fa036002bcd13246b40e581 (commit)
       via  6eaf2fefe02b29777776b5e02452903024e4eb66 (commit)
       via  c5edd5da98a78e958d1f54d040ee13f536178e40 (commit)
       via  b4dbaa458fc7855c7d8af37b84aeabf03af010b4 (commit)
       via  34654adb166ca93dee35954698281bd45b384aa7 (commit)
       via  b2ca5f26b83639f7b780fb3bd8b61e4c5980f4a0 (commit)
       via  be279e5f4594a64996300070a84ad8c6d556aca4 (commit)
       via  c9569e64752cce0da3f1fd640301608876b06acc (commit)
       via  ff0bda731aed079cd0c3db54310a59316ac97c91 (commit)
       via  6130a77dc21e9d7518496d3c962249a1ab2b1693 (commit)
       via  734e257d7d03f9a275f028eb661b0fe5c6e4faca (commit)
       via  6887b36842de94636370396173af31892a479172 (commit)
       via  332cce22ca495c4ad7f412ff96ef24690d14c271 (commit)
       via  35592a86354e37a7b3a81159d58909d10dd13929 (commit)
       via  8b3cb03b6cc45a7ee40a962cd49c7cdaa48c30a3 (commit)
       via  6314535dbd32b5fcae3f4c90ee6a995589605e0a (commit)
       via  bd370ea8da59e0ca906cebb8394b0ae6af60d41a (commit)
       via  ddf7e377cbe3d90d62747b732666dde179526dc0 (commit)
       via  11640242079b6250d5045be6b13275d2a4dcfd7b (commit)
       via  87c3856e67512fa3f8d9d1d4055a6e472098092a (commit)
       via  6432e8b7e0a0a086fe2bc5eb5433269296069661 (commit)
       via  45dde33f84cd48df00aab3d7ac596da11175f0e6 (commit)
       via  5216c940773d0452e25db2528be14ea024cf0632 (commit)
       via  ca91cf50be71497f04fd4bcb2f10ce304678cf4a (commit)
       via  bce3688d864a83f9bf51642770fa6f09b488ed7d (commit)
       via  6040de1c294fe72c34aacce55832d337f0cb4abc (commit)
       via  0a028a14c1e06959da61fce716549b1851787c72 (commit)
       via  cf6ca2967e5d325cb4064fa868d5b2effcb3824b (commit)
       via  c967e2dca96c50c354b9047c23944e3d63870fda (commit)
       via  5bff1d032162d72b95ff765930c830ef1df243cf (commit)
       via  fab3d7af082bae8b20e5cb62351029310f13b9e2 (commit)
       via  0e6012143b4856359d79987b9537c5ae4d266b19 (commit)
       via  2a7bc4f0b3d16ebc4867e772f8833dded0e11f9c (commit)
       via  f619b0462883d3c5d2e331881e9c91be3fd2fe61 (commit)
       via  1c258cbacc756f405240a31a3f53973727fe570c (commit)
       via  8703f1c3246fab5315c78760f131808739a5bc3f (commit)
       via  11a447a11bdd7ae697e0f0d77e2f35c649db7e91 (commit)
       via  feb6d53a6c08b2c3a6f8d08267dab61f216dd3c6 (commit)
       via  d351275efc28e26b7b6bfd9e5166bef3fddd935a (commit)
       via  50a856c6d7e13881af48b98a4bec157bfd6fe739 (commit)
       via  5a85181b49ff95f6f241bbf14524d66f0d920d86 (commit)
       via  8a4a5d5bf6c498f5803d86e23344a1713ffeb8ed (commit)
       via  14492925702ddeee76d165e27d57693a98137248 (commit)
       via  e7f378895ec06e64bd056e1c966277aeee2ef6bd (commit)
       via  3aaa892cbe08aa02abc2daa74bee13c3e64f117e (commit)
       via  88b4a24e77edd29a8fdbdb0145a42437dd3041b6 (commit)
       via  d826a52d5662731cb9a67a9bc7bd560bbdbd7f86 (commit)
       via  d17ec966aaa133563acc6742c80559ff42095953 (commit)
       via  d9f6bba062815e698298f6bd04fe312647123011 (commit)
       via  ab8b5ecf4f2c2977f38a8b81ce6288b3b3bf6d8f (commit)
       via  1d07e6fa5217a5abd90e51fc85ce421a4afd9c54 (commit)
       via  931914c318fb7c614bf66d438e780bfa7954facc (commit)
       via  897c400a09c72a9b9d6b9d0eb44fcbb34b70fe8c (commit)
       via  c6fa666e7cd4a51372df5fa767b9f1523bba520a (commit)
       via  191f4597965724b276a63e1606b80d94898d24b5 (commit)
       via  ab270fc414a61efcfbf543fcd435138c5489b1a3 (commit)
       via  0fb43b66da0d5784bc4271c6d47f9f40a45b0f25 (commit)
       via  2c2d03341f0b8ab667edf26108bd33aea3d904fc (commit)
       via  137967c4ca4ec77d70e85221073253d68364c616 (commit)
       via  554f96a3638b3136552ecd73a9d152b08fbfcb0e (commit)
       via  0b6fcb50eb1a31ac79753034a183f9197e024048 (commit)
       via  a15c0bef272f7f8416d054f577e794f4783dbdc8 (commit)
       via  35457690becf4d73d09a027dabba9038948ffca0 (commit)
       via  0f6598b82a3cc2e3a54a34dfc494aa27f9c036cd (commit)
       via  3f04608322791066bcfabfd7915991b56e545df5 (commit)
       via  e77f11b09699ecc530f747d2fdc027ad331206dc (commit)
       via  c32b1967f8498a6abc5d683e7837c7b5ef7dbde2 (commit)
       via  9b72895e7da56c497622e1d4b3d112bb95c1612c (commit)
       via  88689bec08c3e93aa03aec4d9c3caf6246819a68 (commit)
       via  df67f7ae35f342faf55aecac7754cf942b32e83c (commit)
       via  f076f1babcd6fe7bb5e48fd04d05b428e24f1fc4 (commit)
       via  895a4ccfe07bf20205985d194447cb892987919c (commit)
       via  55270e6a59860edf0abfd9ad1cb8f0ea8cbbcfbe (commit)
       via  ce5c889e50780107e8815bff217f4146b01abcad (commit)
       via  daa0516c1b8950e20a697c927fe975b1763bd4d3 (commit)
       via  dacf74182d03d26d439351ce1a2fcfdfe2d714fc (commit)
       via  d2055ebe2f27a38ea34dcd269978851e1a5d4ddd (commit)
       via  572c5725e4c760a69a9848bacd598ca351a2f205 (commit)
       via  992045b7fb51635c734a739d1f7cabe7c4f4c614 (commit)
       via  a251bce4a9760789c15db290b70c5d5de87912c1 (commit)
       via  c59d8f3dcb1c3c436de8981fddbb53f102f2e55e (commit)
       via  34d6eaac2eb3df17296c0a9a6c303d82d61f6e7f (commit)
       via  20b23eaa127744e5d99897724d6ae9bdac835c31 (commit)
       via  ef5c2c3c1eb8ef77e232f99cb5d9022af778a67c (commit)
       via  01cea1c7bb1f6fdc4e11d3a8d851ef3bd23229f6 (commit)
       via  3e0d834c14647b7cc4161fecc66112e6c1be5322 (commit)
       via  dc839582da7f3f2789bc375f02f01e618275c1c8 (commit)
       via  18f490f5206f3189131c1f1aa8e1c5c1bf613660 (commit)
       via  f6acc6cf043408116a622acd315b59563c7631d6 (commit)
       via  f43d0452fb16dd444f36de1f56b619a78124f662 (commit)
       via  4692fcbdcbb219ab72cd146bef140f445ad17367 (commit)
       via  9c30ac738ea5cce86176d8036ee40a0aa74a4209 (commit)
       via  c2291f59683484d54e0a342ca920ca305040bce5 (commit)
       via  8a16709443df76fa4b85c128e80654e059e9ed7c (commit)
       via  bdd86d0c01d0eb038ec684a939c25209ef26bed7 (commit)
       via  cd56539cc47e93a513a172fbb929a58c23ee4059 (commit)
       via  218af85973970fc08fd5601244126dc3bb5c54c7 (commit)
       via  adeef86f25f0d6f6dac4d14954a3859ae1103940 (commit)
       via  3647c30aadb0476449f4928f4d25aefa7d465b6b (commit)
       via  d84c91b7c59b0b6caecb42c75dfc647877aa0941 (commit)
       via  fc220228834e60f42b53875b1db619e41d7346b0 (commit)
       via  8d44583a52442271697c08961e8700fa20c00255 (commit)
       via  5c2b8bb05947a6645b01acc18d671c7118bb25c9 (commit)
       via  06e708c6954e5a808310f2d9adeeddcf94133060 (commit)
       via  86812b5c0b27984cc0ed4bd086fe8a17f1b7644e (commit)
       via  2bdd600da8111bb587300ee8e68acd306eb28955 (commit)
       via  7824737c6e3a43f79f374f3f310c77ba36421f0a (commit)
       via  528ad20ced2a457c2989590b1e223bfe5e60e38a (commit)
       via  55679544e461d916af8a2b3c458375fc5782a607 (commit)
       via  a9ea4c1be2206e95605e784d12f3ebed3abe0cbf (commit)
       via  dc5c15d849c1ef06cd7fd9341147e0b2abae222f (commit)
       via  0d5d5d887dc90b50e18d9cf1ca515aa41ff6fd68 (commit)
       via  2dcacd03350c5664855cda54c46bc8f8e8eaa296 (commit)
       via  4c1be2c8ffee6fe69357efc16a4ab055955abb4c (commit)
       via  2bf2ff20926304713031224ddc47ee501cdbada6 (commit)
       via  34d86395c8d1351484390815e55f28b8d6974aa7 (commit)
       via  e31944c036e3bdb445eea20bc99fa545c879c1e7 (commit)
       via  093d627de579d8175f22f9d2f1412b822af4e257 (commit)
       via  54d03a7f6e0622c50b53117eb005638a874d461c (commit)
       via  cf01c196b3d9a89a92988044ea1009be770da128 (commit)
       via  6d19b89c55021834a7491158976df7f43f1ba726 (commit)
       via  44724a010f30303f9e0592aff28587ba7b1c7f8a (commit)
       via  862c1471aba2a8d55f739ae92f191973b272f91e (commit)
       via  d825e6a2d55200508d02fb427a12affd428c9c39 (commit)
       via  103d7e0a1d9369dd8f20588da30f6dc0a93c9d15 (commit)
       via  a410481b08a7897f7d3c567ffb45cf985c2ec8ed (commit)
       via  a19c0edd65fdb8d7181c18a14fded91fd2baeef7 (commit)
       via  e43c99db83b0300a665f59b7fc8cc9fbf4fc8959 (commit)
       via  78830a59954371e5c8d7d229d0171915b2b39f75 (commit)
       via  236c3de77467f4498ac2fa57cb7df392e6960e7f (commit)
       via  97127fb9551fb3b71243a203b904e31322f64e61 (commit)
       via  d7dcbef684eac6240b110fd34be2d60907d56232 (commit)
       via  f177355bc3858256c7ad0a47ccec6e14cd861c3d (commit)
       via  e5e4675d9578637b259cd0aef66d75e93ca44243 (commit)
       via  3ec0091143b32234ffa0faac4379eb043e8bbfac (commit)
       via  c65f17cb6edbbf740568fac731e0fc1e28619f8e (commit)
       via  c9546687690fca3dfcc5c25f352d455c4db6c783 (commit)
       via  f1f39bb646a68b88412fe22a15dc0ed605d9faf4 (commit)
       via  61ecfd19350ec99dc0d0702f783cf300a87d1010 (commit)
       via  a50dd7649985d656557c94cfb46570d16ffcdb4d (commit)
       via  bd0ebe51688df364ac11b63728b771b67eb09f09 (commit)
       via  bd0ee2574eba5983275033092d278f949673c7c7 (commit)
       via  08ae31080d1ddf95b30a73e6ec8af909a68f4030 (commit)
       via  9b14c7d3e559d7078f7ba4ee99fcfbc9e0c6cf87 (commit)
       via  007046d1c5bc9392cccdfa1ebb8e968e1d674b80 (commit)
       via  df84d7e92eafd4317be76ae30c3a6d699a1b4502 (commit)
       via  104271918a70389a2f1f824451083555666fb79f (commit)
       via  d9a4f208930e7ca1f54d4f3dd7b578977715ae99 (commit)
       via  fd3cbb5caa64b5f206811ff01bb5aacd736412c8 (commit)
       via  0e5e4222cedd91ad7423c03baf36cf447f85d356 (commit)
       via  4be435eb9b1160f517e69d28a50859892024de55 (commit)
       via  70fdf5ce99bd16d6838035afb514a538a5ca5d79 (commit)
       via  0d40bae17fd2d6d12b2d896f038527880c4a0963 (commit)
       via  b8609fbafd8797100e47b3bf0d6cd556eba3c161 (commit)
       via  75d1edd176cfa33db49421de2375c4abfac80559 (commit)
       via  63979ac6895aacacbaf88ca0d7f276802517b391 (commit)
       via  e3646bc826680bb1b81ca00e581e4028368bae15 (commit)
       via  b6d14dc41fccb5ed1874771e6ce5b7150bec2891 (commit)
       via  90041d856eb8709ff92f4a0222fde961263b08ac (commit)
       via  33d44c6df2bcbda81952a8327759c3dbf2bec3ec (commit)
       via  cc01217166f2d554a35aeb2e60a005eba088f1a2 (commit)
       via  52df246eea72348f62da5e9d6b935e249ba58be1 (commit)
       via  0c0a8acbeab8a214b237aa3e61d785ec75a87031 (commit)
       via  33a2809762a7edf18c8f2646eda988d140fb32da (commit)
       via  8fc002641d0e2f25599db03d96a3a8171587a170 (commit)
       via  86dff4a2fa8be4463c73d396f327ee672fe43117 (commit)
       via  0c329f440ec58babfb40909e8c4fee6f2b3ad32f (commit)
       via  3dd139645f7cc811e30e9cb8549d63d26e3536bc (commit)
       via  9137ba7a9783422a0f28931fcd79c24c09c621a6 (commit)
       via  b30b9c03d30d44ae55d77b835c28873c266fe2a3 (commit)
       via  e0c9ae52bbe10b956748fed7d9dfe751de73552e (commit)
       via  e4d227b08996432e0dfda3e5a788befe21cc1d9d (commit)
       via  732f498d917891f53834941c796272528a6a909c (commit)
       via  dd5674412d2a35de4fd8e3468660a871852ede60 (commit)
       via  0ada4b41e6c71394c9287e65f67f777310c703a8 (commit)
       via  76478c3bb11aaa264b870b14a4db5cb8234f312d (commit)
       via  fe48ef7ffa7125589b2e307f924a61953229e992 (commit)
       via  d7b42d74f3c4f8a749912b0e4091d304d780b5eb (commit)
       via  2c6f7a50faa668a58be75a58820ddb3a966f8fd7 (commit)
       via  e91a7e0c42b0bad7a16704e6d6dabc38816946b1 (commit)
       via  7bbf1e18046495cc65545b4a8eb323ca118ab90c (commit)
       via  b1310722101583ef8edaedf16557dcffc247822b (commit)
       via  791b3aad4f13a3ae959223320e9f8b4a8237857e (commit)
       via  b3667c8af4fdc4b8adc0700fb9b0db34c67b9e46 (commit)
       via  4502b16e1c009199edbf0829ad07911e3a756424 (commit)
       via  15973add6d6773a4b31dc0b913d929be259dc957 (commit)
       via  f614c328536ca4e5ad4ff2c75670ef82d8fb57eb (commit)
       via  dd4341544982889ac534d0809d6825e3a5eb6692 (commit)
       via  3feedc7ad72cbfbe2a24477ad904e650d2094ed8 (commit)
       via  2d947149496aaccd8fe8f53b80670bba162a5095 (commit)
       via  0388712ef995557d119ae159faa089269ee875b7 (commit)
       via  81cb90b2c987a6d5b04a83bbcd51a9180eeed071 (commit)
       via  efe68af7073d8c3c4e2684a8700e02d86dd7a957 (commit)
       via  26c3208ea0136e6af967ea6ee4af153382ffdf86 (commit)
       via  8422935fef3a45deb8d92462befc96784bf2f5e1 (commit)
       via  490b434d7b028fc814f8f22bec9bbafe37e234ac (commit)
       via  02ca1b08615567b8bd64984d98bbf7f31e6a0785 (commit)
       via  6821db6277b474a5ab9946319e54b3df6f501725 (commit)
       via  5a95b5c0f697b71fc55c81f0cbb220f1a118341f (commit)
       via  f9b0b74110a303439c08b9a0fc1348ad3544dd8c (commit)
       via  9ee3b85ad577097409af01ca9f0b7155a8e2c1ac (commit)
       via  2203986c5e87839a77d437058db8bc4c10a852c0 (commit)
       via  3a684a2a2c639716c01bc6b02413c5338a9b48b5 (commit)
       via  7c1c29cebca77abadf7d1b2774a30314e0c2d231 (commit)
       via  522e2bb0ecf40a32c44e92e7bdae5ea7b5dab06f (commit)
       via  3f4a3eba11619e8422334cfa139c21734ae4adae (commit)
       via  9b38941a77a581636568eef7c0c767ac9d0e5d09 (commit)
       via  45d0d078e4b192c4d9df637286bc4ecdb563b2c3 (commit)
       via  f63ae396516a5709824fe9d3d569f69511217a91 (commit)
       via  69a1a88429ada627c0b2314fc44640a87b0aa604 (commit)
       via  d40bcaae54f2f409c48f62e31e14ff7121064ce4 (commit)
       via  0721bc1c2ad895ea828621750f11de711435502b (commit)
       via  2aaac82a5d197f0d1f17dd194a7c6c9ce832363c (commit)
       via  4eb2694a8900af51977e8400e12d31c94ccb3cac (commit)
       via  695d1acb59e44938ac9e18bf14a11886cfa03993 (commit)
       via  f7352fdfb256e048289c2a33662de5cd09cbfb42 (commit)
       via  057b906e64b09ad2202fe571677ab0faa722bfcb (commit)
       via  bea8b97f8b860f140fd4cbfb945c8e5a4e4dce4b (commit)
       via  597e7f6eeb964f1c7b9548693abfc65da013f836 (commit)
       via  4d753091ab8e3d4db0d72677388aeb2e70f6ccbd (commit)
       via  aec41e18300346910735fc3386b08ffe7814fba5 (commit)
       via  b06085df1a742a266c11305d870129cab11f8d2e (commit)
       via  ce2c1d712ed4c52f2c8e10a91bf67e6ed9d91b60 (commit)
       via  a62c33a12a664c582f94ce8218fdde878eab9bfa (commit)
       via  5ebd2a8214bf02278512b4d2880f512a22750c10 (commit)
       via  8092f47d5d54c24fcd6e078115e878cd65c8a213 (commit)
       via  6ed274a34dee08387cda475c428aaf73a3742a00 (commit)
       via  dbf587c884a1846056043d350b1038b659e57721 (commit)
       via  571bf147902bfe32a757c975accc4611c9ad968b (commit)
       via  c24eee2de927dd0590b4789fb99403369ff1e2ee (commit)
       via  fe5f63468dd1b48c658712290594b99ada971eae (commit)
       via  96b2de3540ab5fe482834e9dbd2081a27d3cc452 (commit)
       via  a199c2163e696f00538f72a9c6242826dc5fe30a (commit)
       via  9d066f9ef77ac7f8dde57b7751e5e288cdebe261 (commit)
       via  0b4d3766af09e2977da1a8b9d4ecbaecffad0427 (commit)
       via  64e3f75bde4449ee2fa1113aec6580ff11ef14cb (commit)
       via  caac0b1c63fa090d9e8b5e10c1f009dbc09aaffc (commit)
       via  909fce0291385b2c9e226293149b991700e6970e (commit)
       via  e9356bcce58351072d131089216287c0097b431d (commit)
       via  c3f6b26632fbe09659a3c9105cf214587193ecf3 (commit)
       via  b65f76905af692cdfafacb509f869785ac3e2ddd (commit)
       via  9144205a877c8a1cac0b4a6d522a1e68a76a7ae3 (commit)
       via  3ee92cac2d0bb2243504002b6dbb489687d41caa (commit)
       via  5129823417121c3bd10a35b246fef8096264ee83 (commit)
       via  2ef4a4224db2a89fbfcd5f6e55f95dc4740913fb (commit)
       via  d44f9b476f0471f97f04c64ce603008c9ed2d3a8 (commit)
      from  4f8cd77f97e6efe9d51348cc94487251b17e6e6a (commit)

Summary of changes:
 .gitattributes                                     |    1 +
 Makefile.in                                        |   35 +-
 README                                             |   14 +-
 devel/third-party/PIE_uncompressed.htc             | 3064 +++++++
 devel/third-party/README                           |   23 +
 devel/third-party/ckeditor/adapters/jquery.js      |  297 +
 .../third-party/ckeditor/ckeditor_basic_source.js  |   20 +
 devel/third-party/ckeditor/ckeditor_source.js      |   25 +
 devel/third-party/ckeditor/core/_bootstrap.js      |   91 +
 devel/third-party/ckeditor/core/ajax.js            |  143 +
 devel/third-party/ckeditor/core/ckeditor.js        |  113 +
 devel/third-party/ckeditor/core/ckeditor_base.js   |  193 +
 devel/third-party/ckeditor/core/ckeditor_basic.js  |  242 +
 devel/third-party/ckeditor/core/command.js         |   73 +
 .../third-party/ckeditor/core/commanddefinition.js |  102 +
 devel/third-party/ckeditor/core/config.js          |  405 +
 devel/third-party/ckeditor/core/dataprocessor.js   |   66 +
 devel/third-party/ckeditor/core/dom.js             |   21 +
 devel/third-party/ckeditor/core/dom/comment.js     |   32 +
 devel/third-party/ckeditor/core/dom/document.js    |  224 +
 .../ckeditor/core/dom/documentfragment.js          |   49 +
 devel/third-party/ckeditor/core/dom/domobject.js   |  251 +
 devel/third-party/ckeditor/core/dom/element.js     | 1556 ++++
 devel/third-party/ckeditor/core/dom/elementpath.js |  116 +
 devel/third-party/ckeditor/core/dom/event.js       |  142 +
 devel/third-party/ckeditor/core/dom/node.js        |  683 ++
 devel/third-party/ckeditor/core/dom/nodelist.js    |   23 +
 devel/third-party/ckeditor/core/dom/range.js       | 1880 +++++
 devel/third-party/ckeditor/core/dom/rangelist.js   |  163 +
 devel/third-party/ckeditor/core/dom/text.js        |  123 +
 devel/third-party/ckeditor/core/dom/walker.js      |  445 +
 devel/third-party/ckeditor/core/dom/window.js      |   96 +
 devel/third-party/ckeditor/core/dtd.js             |  233 +
 devel/third-party/ckeditor/core/editor.js          |  759 ++
 devel/third-party/ckeditor/core/editor_basic.js    |  182 +
 devel/third-party/ckeditor/core/env.js             |  229 +
 devel/third-party/ckeditor/core/event.js           |  336 +
 devel/third-party/ckeditor/core/eventInfo.js       |  120 +
 devel/third-party/ckeditor/core/focusmanager.js    |  137 +
 devel/third-party/ckeditor/core/htmlparser.js      |  218 +
 .../ckeditor/core/htmlparser/basicwriter.js        |  145 +
 .../third-party/ckeditor/core/htmlparser/cdata.js  |   43 +
 .../ckeditor/core/htmlparser/comment.js            |   60 +
 .../ckeditor/core/htmlparser/element.js            |  240 +
 .../third-party/ckeditor/core/htmlparser/filter.js |  288 +
 .../ckeditor/core/htmlparser/fragment.js           |  497 ++
 devel/third-party/ckeditor/core/htmlparser/text.js |   55 +
 devel/third-party/ckeditor/core/imagecacher.js     |   59 +
 devel/third-party/ckeditor/core/lang.js            |  152 +
 devel/third-party/ckeditor/core/loader.js          |  243 +
 .../third-party/ckeditor/core/plugindefinition.js  |   66 +
 devel/third-party/ckeditor/core/plugins.js         |   85 +
 devel/third-party/ckeditor/core/resourcemanager.js |  238 +
 devel/third-party/ckeditor/core/scriptloader.js    |  198 +
 devel/third-party/ckeditor/core/skins.js           |  204 +
 devel/third-party/ckeditor/core/themes.js          |   19 +
 devel/third-party/ckeditor/core/tools.js           |  747 ++
 devel/third-party/ckeditor/core/ui.js              |  116 +
 devel/third-party/ckeditor/core/xml.js             |  165 +
 devel/third-party/ckeditor/lang/_languages.js      |   83 +
 .../ckeditor/lang/_translationstatus.txt           |   60 +
 devel/third-party/ckeditor/lang/af.js              |  758 ++
 devel/third-party/ckeditor/lang/ar.js              |  758 ++
 devel/third-party/ckeditor/lang/bg.js              |  758 ++
 devel/third-party/ckeditor/lang/bn.js              |  758 ++
 devel/third-party/ckeditor/lang/bs.js              |  758 ++
 devel/third-party/ckeditor/lang/ca.js              |  758 ++
 devel/third-party/ckeditor/lang/cs.js              |  758 ++
 devel/third-party/ckeditor/lang/cy.js              |  758 ++
 devel/third-party/ckeditor/lang/da.js              |  758 ++
 devel/third-party/ckeditor/lang/de.js              |  758 ++
 devel/third-party/ckeditor/lang/el.js              |  758 ++
 devel/third-party/ckeditor/lang/en-au.js           |  758 ++
 devel/third-party/ckeditor/lang/en-ca.js           |  758 ++
 devel/third-party/ckeditor/lang/en-gb.js           |  758 ++
 devel/third-party/ckeditor/lang/en.js              |  758 ++
 devel/third-party/ckeditor/lang/eo.js              |  758 ++
 devel/third-party/ckeditor/lang/es.js              |  758 ++
 devel/third-party/ckeditor/lang/et.js              |  758 ++
 devel/third-party/ckeditor/lang/eu.js              |  758 ++
 devel/third-party/ckeditor/lang/fa.js              |  758 ++
 devel/third-party/ckeditor/lang/fi.js              |  758 ++
 devel/third-party/ckeditor/lang/fo.js              |  758 ++
 devel/third-party/ckeditor/lang/fr-ca.js           |  758 ++
 devel/third-party/ckeditor/lang/fr.js              |  758 ++
 devel/third-party/ckeditor/lang/gl.js              |  758 ++
 devel/third-party/ckeditor/lang/gu.js              |  758 ++
 devel/third-party/ckeditor/lang/he.js              |  758 ++
 devel/third-party/ckeditor/lang/hi.js              |  758 ++
 devel/third-party/ckeditor/lang/hr.js              |  758 ++
 devel/third-party/ckeditor/lang/hu.js              |  758 ++
 devel/third-party/ckeditor/lang/is.js              |  758 ++
 devel/third-party/ckeditor/lang/it.js              |  758 ++
 devel/third-party/ckeditor/lang/ja.js              |  758 ++
 devel/third-party/ckeditor/lang/km.js              |  758 ++
 devel/third-party/ckeditor/lang/ko.js              |  758 ++
 devel/third-party/ckeditor/lang/lt.js              |  758 ++
 devel/third-party/ckeditor/lang/lv.js              |  758 ++
 devel/third-party/ckeditor/lang/mn.js              |  758 ++
 devel/third-party/ckeditor/lang/ms.js              |  758 ++
 devel/third-party/ckeditor/lang/nb.js              |  758 ++
 devel/third-party/ckeditor/lang/nl.js              |  758 ++
 devel/third-party/ckeditor/lang/no.js              |  758 ++
 devel/third-party/ckeditor/lang/pl.js              |  758 ++
 devel/third-party/ckeditor/lang/pt-br.js           |  757 ++
 devel/third-party/ckeditor/lang/pt.js              |  758 ++
 devel/third-party/ckeditor/lang/ro.js              |  758 ++
 devel/third-party/ckeditor/lang/ru.js              |  758 ++
 devel/third-party/ckeditor/lang/sk.js              |  758 ++
 devel/third-party/ckeditor/lang/sl.js              |  758 ++
 devel/third-party/ckeditor/lang/sr-latn.js         |  758 ++
 devel/third-party/ckeditor/lang/sr.js              |  758 ++
 devel/third-party/ckeditor/lang/sv.js              |  758 ++
 devel/third-party/ckeditor/lang/th.js              |  758 ++
 devel/third-party/ckeditor/lang/tr.js              |  757 ++
 devel/third-party/ckeditor/lang/uk.js              |  758 ++
 devel/third-party/ckeditor/lang/vi.js              |  758 ++
 devel/third-party/ckeditor/lang/zh-cn.js           |  758 ++
 devel/third-party/ckeditor/lang/zh.js              |  758 ++
 .../ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js  |  211 +
 .../ckeditor/plugins/a11yhelp/lang/en.js           |  108 +
 .../ckeditor/plugins/a11yhelp/lang/he.js           |  216 +
 .../ckeditor/plugins/a11yhelp/plugin.js            |   46 +
 .../ckeditor/plugins/about/dialogs/about.js        |   73 +
 devel/third-party/ckeditor/plugins/about/plugin.js |   23 +
 .../ckeditor/plugins/autogrow/plugin.js            |   79 +
 .../ckeditor/plugins/basicstyles/plugin.js         |  101 +
 devel/third-party/ckeditor/plugins/bidi/plugin.js  |  247 +
 .../ckeditor/plugins/blockquote/plugin.js          |  301 +
 .../third-party/ckeditor/plugins/button/plugin.js  |  277 +
 .../ckeditor/plugins/clipboard/dialogs/paste.js    |  205 +
 .../ckeditor/plugins/clipboard/plugin.js           |  412 +
 .../ckeditor/plugins/colorbutton/plugin.js         |  251 +
 .../plugins/colordialog/dialogs/colordialog.js     |  340 +
 .../ckeditor/plugins/colordialog/plugin.js         |   13 +
 .../ckeditor/plugins/contextmenu/plugin.js         |  276 +
 .../ckeditor/plugins/dialog/dialogDefinition.js    |  315 +
 .../third-party/ckeditor/plugins/dialog/plugin.js  | 3016 +++++++
 .../ckeditor/plugins/dialogadvtab/plugin.js        |  207 +
 .../ckeditor/plugins/dialogui/plugin.js            | 1522 ++++
 .../ckeditor/plugins/div/dialogs/div.js            |  535 ++
 devel/third-party/ckeditor/plugins/div/plugin.js   |  121 +
 .../ckeditor/plugins/domiterator/plugin.js         |  350 +
 .../ckeditor/plugins/editingblock/plugin.js        |  230 +
 .../ckeditor/plugins/elementspath/plugin.js        |  206 +
 .../ckeditor/plugins/enterkey/plugin.js            |  363 +
 .../ckeditor/plugins/entities/plugin.js            |  227 +
 .../ckeditor/plugins/fakeobjects/plugin.js         |  122 +
 .../ckeditor/plugins/filebrowser/plugin.js         |  491 ++
 .../ckeditor/plugins/find/dialogs/find.js          |  885 ++
 devel/third-party/ckeditor/plugins/find/plugin.js  |   46 +
 .../ckeditor/plugins/flash/dialogs/flash.js        |  698 ++
 devel/third-party/ckeditor/plugins/flash/plugin.js |  174 +
 .../ckeditor/plugins/floatpanel/plugin.js          |  398 +
 devel/third-party/ckeditor/plugins/font/plugin.js  |  234 +
 .../third-party/ckeditor/plugins/format/plugin.js  |  194 +
 .../ckeditor/plugins/forms/dialogs/button.js       |  135 +
 .../ckeditor/plugins/forms/dialogs/checkbox.js     |  155 +
 .../ckeditor/plugins/forms/dialogs/form.js         |  177 +
 .../ckeditor/plugins/forms/dialogs/hiddenfield.js  |   98 +
 .../ckeditor/plugins/forms/dialogs/radio.js        |  135 +
 .../ckeditor/plugins/forms/dialogs/select.js       |  556 ++
 .../ckeditor/plugins/forms/dialogs/textarea.js     |  114 +
 .../ckeditor/plugins/forms/dialogs/textfield.js    |  199 +
 devel/third-party/ckeditor/plugins/forms/plugin.js |  281 +
 .../ckeditor/plugins/horizontalrule/plugin.js      |   36 +
 .../ckeditor/plugins/htmldataprocessor/plugin.js   |  494 ++
 .../ckeditor/plugins/htmlwriter/plugin.js          |  314 +
 .../ckeditor/plugins/iframedialog/plugin.js        |  136 +
 .../ckeditor/plugins/image/dialogs/image.js        | 1396 ++++
 devel/third-party/ckeditor/plugins/image/plugin.js |   81 +
 .../third-party/ckeditor/plugins/indent/plugin.js  |  447 +
 .../third-party/ckeditor/plugins/justify/plugin.js |  190 +
 .../ckeditor/plugins/keystrokes/plugin.js          |  229 +
 .../ckeditor/plugins/link/dialogs/anchor.js        |   99 +
 .../ckeditor/plugins/link/dialogs/link.js          | 1420 ++++
 devel/third-party/ckeditor/plugins/link/plugin.js  |  238 +
 devel/third-party/ckeditor/plugins/list/plugin.js  |  683 ++
 .../ckeditor/plugins/listblock/plugin.js           |  257 +
 .../plugins/liststyle/dialogs/liststyle.js         |  203 +
 .../ckeditor/plugins/liststyle/plugin.js           |   66 +
 .../ckeditor/plugins/maximize/plugin.js            |  343 +
 devel/third-party/ckeditor/plugins/menu/plugin.js  |  409 +
 .../ckeditor/plugins/menubutton/plugin.js          |   94 +
 .../third-party/ckeditor/plugins/newpage/plugin.js |   54 +
 .../ckeditor/plugins/pagebreak/plugin.js           |  121 +
 devel/third-party/ckeditor/plugins/panel/plugin.js |  398 +
 .../ckeditor/plugins/panelbutton/plugin.js         |  147 +
 .../plugins/pastefromword/filter/default.js        | 1170 +++
 .../ckeditor/plugins/pastefromword/plugin.js       |  122 +
 .../plugins/pastetext/dialogs/pastetext.js         |   70 +
 .../ckeditor/plugins/pastetext/plugin.js           |  145 +
 devel/third-party/ckeditor/plugins/popup/plugin.js |   64 +
 .../third-party/ckeditor/plugins/preview/plugin.js |  108 +
 devel/third-party/ckeditor/plugins/print/plugin.js |   41 +
 .../ckeditor/plugins/removeformat/plugin.js        |  184 +
 .../third-party/ckeditor/plugins/resize/plugin.js  |  157 +
 .../ckeditor/plugins/richcombo/plugin.js           |  370 +
 devel/third-party/ckeditor/plugins/save/plugin.js  |   55 +
 .../ckeditor/plugins/scayt/dialogs/options.js      |  533 ++
 .../ckeditor/plugins/scayt/dialogs/toolbar.css     |   71 +
 devel/third-party/ckeditor/plugins/scayt/plugin.js |  943 +++
 .../ckeditor/plugins/selection/plugin.js           | 1367 +++
 .../ckeditor/plugins/showblocks/plugin.js          |  156 +
 .../ckeditor/plugins/showborders/plugin.js         |  201 +
 .../ckeditor/plugins/smiley/dialogs/smiley.js      |  216 +
 .../third-party/ckeditor/plugins/smiley/plugin.js  |   94 +
 .../ckeditor/plugins/sourcearea/plugin.js          |  207 +
 .../plugins/specialchar/dialogs/specialchar.js     |  409 +
 .../ckeditor/plugins/specialchar/plugin.js         |   29 +
 .../third-party/ckeditor/plugins/styles/plugin.js  | 1445 ++++
 .../ckeditor/plugins/styles/styles/default.js      |   88 +
 .../ckeditor/plugins/stylescombo/plugin.js         |  207 +
 devel/third-party/ckeditor/plugins/tab/plugin.js   |  367 +
 .../ckeditor/plugins/table/dialogs/table.js        |  673 ++
 devel/third-party/ckeditor/plugins/table/plugin.js |   78 +
 .../ckeditor/plugins/tableresize/plugin.js         |  450 +
 .../plugins/tabletools/dialogs/tableCell.js        |  533 ++
 .../ckeditor/plugins/tabletools/plugin.js          | 1120 +++
 .../plugins/templates/dialogs/templates.js         |  231 +
 .../ckeditor/plugins/templates/plugin.js           |  100 +
 .../plugins/templates/templates/default.js         |   94 +
 .../third-party/ckeditor/plugins/toolbar/plugin.js |  481 ++
 .../ckeditor/plugins/uicolor/dialogs/uicolor.js    |  205 +
 .../ckeditor/plugins/uicolor/lang/en.js            |   15 +
 .../third-party/ckeditor/plugins/uicolor/plugin.js |   37 +
 .../ckeditor/plugins/uicolor/yui/assets/yui.css    |   15 +
 .../ckeditor/plugins/uicolor/yui/yui.js            |   71 +
 devel/third-party/ckeditor/plugins/undo/plugin.js  |  555 ++
 .../ckeditor/plugins/wsc/dialogs/ciframe.html      |   49 +
 .../ckeditor/plugins/wsc/dialogs/tmpFrameset.html  |   52 +
 .../ckeditor/plugins/wsc/dialogs/wsc.css           |   82 +
 .../ckeditor/plugins/wsc/dialogs/wsc.js            |  176 +
 devel/third-party/ckeditor/plugins/wsc/plugin.js   |   33 +
 .../ckeditor/plugins/wysiwygarea/plugin.js         | 1126 +++
 devel/third-party/ckeditor/skins/kama/dialog.css   |  856 ++
 devel/third-party/ckeditor/skins/kama/editor.css   |   25 +
 .../ckeditor/skins/kama/elementspath.css           |   73 +
 devel/third-party/ckeditor/skins/kama/icons.css    |  357 +
 devel/third-party/ckeditor/skins/kama/mainui.css   |  195 +
 devel/third-party/ckeditor/skins/kama/menu.css     |  202 +
 devel/third-party/ckeditor/skins/kama/panel.css    |  217 +
 devel/third-party/ckeditor/skins/kama/presets.css  |   49 +
 devel/third-party/ckeditor/skins/kama/reset.css    |   84 +
 .../third-party/ckeditor/skins/kama/richcombo.css  |  277 +
 devel/third-party/ckeditor/skins/kama/skin.js      |  268 +
 .../third-party/ckeditor/skins/kama/templates.css  |   88 +
 devel/third-party/ckeditor/skins/kama/toolbar.css  |  409 +
 .../ckeditor/skins/office2003/dialog.css           |  765 ++
 .../ckeditor/skins/office2003/editor.css           |   25 +
 .../ckeditor/skins/office2003/elementspath.css     |   74 +
 .../ckeditor/skins/office2003/icons.css            |  354 +
 .../ckeditor/skins/office2003/mainui.css           |  145 +
 .../third-party/ckeditor/skins/office2003/menu.css |  199 +
 .../ckeditor/skins/office2003/panel.css            |  212 +
 .../ckeditor/skins/office2003/presets.css          |   49 +
 .../ckeditor/skins/office2003/reset.css            |   84 +
 .../ckeditor/skins/office2003/richcombo.css        |  297 +
 .../third-party/ckeditor/skins/office2003/skin.js  |   81 +
 .../ckeditor/skins/office2003/templates.css        |   87 +
 .../ckeditor/skins/office2003/toolbar.css          |  470 ++
 devel/third-party/ckeditor/skins/v2/dialog.css     |  780 ++
 devel/third-party/ckeditor/skins/v2/editor.css     |   25 +
 .../third-party/ckeditor/skins/v2/elementspath.css |   74 +
 devel/third-party/ckeditor/skins/v2/icons.css      |  354 +
 devel/third-party/ckeditor/skins/v2/mainui.css     |  154 +
 devel/third-party/ckeditor/skins/v2/menu.css       |  201 +
 devel/third-party/ckeditor/skins/v2/panel.css      |  212 +
 devel/third-party/ckeditor/skins/v2/presets.css    |   50 +
 devel/third-party/ckeditor/skins/v2/reset.css      |   84 +
 devel/third-party/ckeditor/skins/v2/richcombo.css  |  297 +
 devel/third-party/ckeditor/skins/v2/skin.js        |   77 +
 devel/third-party/ckeditor/skins/v2/templates.css  |   87 +
 devel/third-party/ckeditor/skins/v2/toolbar.css    |  423 +
 devel/third-party/ckeditor/themes/default/theme.js |  356 +
 devel/third-party/jquery-1.4.2.js                  | 6240 ++++++++++++++
 devel/third-party/jquery.tablesorter.js            | 1031 +++
 devel/third-party/jquery.ui.accordion-1.8.5.js     |  598 ++
 devel/third-party/jquery.ui.autocomplete-1.8.4.js  |  544 ++
 devel/third-party/jquery.ui.core-1.8.4.js          |  281 +
 devel/third-party/jquery.ui.datepicker-1.8.4.js    | 1732 ++++
 devel/third-party/jquery.ui.position-1.8.4.js      |  233 +
 devel/third-party/jquery.ui.tabs-1.8.4.js          |  757 ++
 devel/third-party/jquery.ui.widget-1.8.4.js        |  237 +
 devel/{ => tools}/extract-message-catalog          |    4 +-
 devel/{ => tools}/factory                          |    2 +-
 devel/{ => tools}/license_tag                      |    4 +-
 devel/{ => tools}/merge-rosetta.pl                 |    2 +-
 devel/{ => tools}/tweak-template-locstring         |    2 +-
 docs/UPGRADING-4.0                                 |   27 +-
 docs/full_text_indexing.pod                        |  179 +
 docs/hacking.pod                                   |  301 +
 docs/web_deployment.pod                            |    9 +-
 etc/RT_Config.pm.in                                |  220 +-
 etc/upgrade/3.9.2/content                          |    3 +-
 etc/upgrade/3.9.5/schema.SQLite                    |    2 +-
 etc/upgrade/3.9.7/content                          |   36 +-
 etc/upgrade/3.9.8/content                          |    6 +-
 etc/upgrade/4.0.1/acl.Pg                           |   39 +
 etc/upgrade/4.0.1/content                          |   83 +
 etc/upgrade/shrink_cgm_table.pl                    |    2 +-
 etc/upgrade/shrink_transactions_table.pl           |    2 +-
 etc/upgrade/upgrade-articles.in                    |    6 +
 etc/upgrade/upgrade-mysql-schema.pl                |    2 +-
 lib/RT/Action/AutoOpen.pm                          |   16 +-
 lib/RT/Action/ResolveMembers.pm                    |  102 -
 lib/RT/Articles.pm                                 |    4 +-
 lib/RT/Base.pm                                     |    4 +-
 lib/RT/Config.pm                                   |   90 +-
 lib/RT/Crypt/GnuPG.pm                              |    2 -
 lib/RT/CustomField.pm                              |    2 +-
 lib/RT/CustomFieldValues/External.pm               |   84 +-
 lib/RT/EmailParser.pm                              |    2 -
 lib/RT/Handle.pm                                   |   33 +-
 lib/RT/Interface/CLI.pm                            |   20 +-
 lib/RT/Interface/Email.pm                          |    2 +-
 lib/RT/Interface/REST.pm                           |   38 +-
 lib/RT/Interface/Web.pm                            |   74 +-
 lib/RT/Interface/Web/Handler.pm                    |   11 +-
 lib/RT/Interface/Web/QueryBuilder/Tree.pm          |    3 +-
 lib/RT/Lifecycle.pm                                |    2 +-
 lib/RT/ObjectCustomFieldValue.pm                   |    2 +
 lib/RT/Queue.pm                                    |    4 -
 lib/RT/Record.pm                                   |   19 +-
 lib/RT/SearchBuilder.pm                            |   54 +-
 lib/RT/Shredder.pm                                 |   21 +-
 lib/RT/Shredder/Plugin.pm                          |    5 +-
 lib/RT/Squish/JS.pm                                |   10 +
 lib/RT/Test.pm                                     |   46 +-
 lib/RT/Test/Apache.pm                              |  101 +-
 lib/RT/Test/Web.pm                                 |   10 +-
 lib/RT/Ticket.pm                                   |   47 +-
 lib/RT/Tickets.pm                                  |   82 +-
 lib/RT/URI/t.pm                                    |   25 -
 lib/RT/User.pm                                     |    3 +-
 sbin/rt-fulltext-indexer.in                        |  160 +-
 sbin/rt-message-catalog                            |    4 +-
 sbin/rt-setup-database.in                          |   19 +-
 sbin/rt-setup-fulltext-index.in                    |  311 +-
 sbin/rt-validator.in                               |    9 +
 share/html/Admin/CustomFields/Modify.html          |    6 +-
 share/html/Admin/Elements/EditCustomFields         |   12 +-
 share/html/Admin/Elements/EditRights               |    2 +
 share/html/Admin/Elements/SelectNewGroupMembers    |    4 +
 share/html/Admin/Groups/index.html                 |   35 +-
 share/html/Admin/Tools/Queries.html                |    1 +
 share/html/Admin/Tools/Theme.html                  |   14 +-
 share/html/Admin/Users/index.html                  |    3 +
 share/html/Articles/Article/Delete.html            |    2 +-
 share/html/Articles/Topics.html                    |    2 +-
 share/html/Dashboards/Subscription.html            |   73 +-
 share/html/Elements/EditCustomFieldSelect          |    4 +-
 share/html/Elements/Framekiller                    |    2 +-
 share/html/Elements/Header                         |    3 +-
 share/html/Elements/Logo                           |    7 +
 share/html/Elements/MessageBox                     |    2 +-
 share/html/Elements/ShowCustomFieldBinary          |    2 +-
 share/html/Elements/ShowCustomFieldImage           |    2 +-
 share/html/Elements/ShowLink                       |    3 +-
 share/html/Elements/Submit                         |    5 +-
 share/html/Elements/Tabs                           |   12 +-
 share/html/Helpers/Autocomplete/CustomFieldValues  |   23 +-
 share/html/NoAuth/Logout.html                      |    3 +-
 .../Header => NoAuth/RichText/autohandler}         |   10 +-
 share/html/NoAuth/css/aileron/nav.css              |   24 -
 share/html/NoAuth/css/aileron/ticket-search.css    |    5 +-
 share/html/NoAuth/css/ballard/nav.css              |   22 -
 share/html/NoAuth/css/ballard/ticket-search.css    |    5 +-
 share/html/NoAuth/css/base/nav.css                 |    7 +
 share/html/NoAuth/css/web2/nav.css                 |   21 -
 share/html/NoAuth/css/web2/ticket-search.css       |    5 +-
 share/html/NoAuth/js/IE7/IE7.js                    |    2 -
 share/html/NoAuth/js/IE7/IE8.js                    |    2 -
 share/html/NoAuth/js/IE7/blank.gif                 |  Bin 48 -> 0 bytes
 share/html/NoAuth/js/IE7/ie7-recalc.js             |    2 -
 share/html/NoAuth/js/IE7/ie7-squish.js             |   36 -
 share/html/NoAuth/js/farbtastic.js                 |   49 +-
 share/html/NoAuth/js/jquery.tablesorter.min.js     |    6 +-
 share/html/NoAuth/js/util.js                       |   10 +-
 share/html/Prefs/Quicksearch.html                  |    2 +-
 share/html/REST/1.0/search/ticket                  |    7 +-
 share/html/Search/Build.html                       |    4 -
 share/html/Search/Bulk.html                        |    2 +-
 share/html/Search/Chart                            |    4 +-
 share/html/Search/Chart.html                       |    4 +-
 share/html/Search/Elements/Chart                   |    3 +-
 share/html/Search/Elements/SelectPersonType        |    2 +-
 share/html/Search/Simple.html                      |   10 +-
 share/html/SelfService/Create.html                 |    4 +-
 share/html/SelfService/Elements/Header             |    2 +-
 share/html/SelfService/Update.html                 |    4 +-
 share/html/Ticket/Attachment/dhandler              |    4 -
 share/html/Ticket/Elements/EditWatchers            |   15 +-
 share/html/Ticket/Elements/PreviewScrips           |    4 +-
 share/html/Ticket/Elements/ShowDates               |    2 +-
 share/html/Ticket/Elements/ShowHistory             |    7 -
 .../html/Ticket/Elements/ShowSimplifiedRecipients  |    6 +-
 .../Ticket/Elements/ShowTransactionAttachments     |   16 +-
 share/html/Ticket/Update.html                      |    1 +
 share/html/autohandler                             |    2 -
 share/html/m/_elements/footer                      |    2 +-
 share/html/m/_elements/header                      |    2 +-
 share/html/m/_elements/menu                        |    2 +-
 share/html/m/_elements/raw_style                   |   43 +-
 share/html/m/ticket/history                        |    2 +-
 share/html/m/ticket/show                           |    2 +-
 share/po/ar.po                                     | 8696 --------------------
 share/po/bg.po                                     | 1013 ++--
 share/po/cs.po                                     | 1021 ++--
 share/po/da.po                                     | 1021 ++--
 share/po/de.po                                     | 1225 ++--
 share/po/el.po                                     | 1025 ++--
 share/po/en.po                                     |   12 +-
 share/po/en_GB.po                                  |  850 +-
 share/po/es.po                                     | 1057 ++--
 share/po/et.po                                     | 1017 ++--
 share/po/fi.po                                     | 1159 ++--
 share/po/fr.po                                     | 1849 +++--
 share/po/he.po                                     | 1041 ++--
 share/po/hr.po                                     | 1019 ++--
 share/po/hu.po                                     | 1025 ++--
 share/po/id.po                                     | 1023 ++--
 share/po/is.po                                     | 1019 ++--
 share/po/it.po                                     | 1019 ++--
 share/po/ja.po                                     | 1151 ++--
 share/po/lt.po                                     | 1037 ++--
 share/po/lv.po                                     | 1025 ++--
 share/po/mk.po                                     | 1027 ++--
 share/po/nb.po                                     | 1013 ++--
 share/po/nl.po                                     | 1025 ++--
 share/po/nn.po                                     | 1013 ++--
 share/po/pl.po                                     | 1031 ++--
 share/po/pt.po                                     | 1023 ++--
 share/po/pt_BR.po                                  | 1267 ++--
 share/po/pt_PT.po                                  | 1047 ++--
 share/po/rt.pot                                    | 1007 ++--
 share/po/ru.po                                     | 1021 ++--
 share/po/sl.po                                     | 1017 ++--
 share/po/sv.po                                     | 1081 ++--
 share/po/tr.po                                     | 1025 ++--
 share/po/zh_CN.po                                  | 1029 ++--
 share/po/zh_TW.po                                  | 1025 ++--
 t/api/cf_render_type.t                             |   49 +
 t/api/groups.t                                     |    2 +-
 t/api/has_rights.t                                 |    2 +-
 t/api/link.t                                       |   31 +-
 t/api/reminder-permissions.t                       |    2 +-
 t/api/template-simple.t                            |   62 +-
 t/api/tickets_overlay_sql.t                        |   37 +-
 t/api/user.t                                       |   10 +-
 t/api/users.t                                      |    2 +-
 t/articles/class.t                                 |    8 +-
 t/customfields/iprangev6.t                         |    7 +-
 t/customfields/ipv6.t                              |    5 +-
 t/data/configs/apache2.2+mod_perl.conf.in          |    2 +-
 t/fts/indexed_mysql.t                              |  132 +
 t/fts/indexed_oracle.t                             |    4 +-
 t/fts/indexed_pg.t                                 |   26 +-
 t/fts/not_indexed.t                                |    8 +-
 t/i18n/footer.t                                    |   29 +
 t/mail/crypt-gnupg.t                               |   91 +-
 t/mail/dashboards.t                                |   15 +-
 t/mail/gnupg-reverification.t                      |    2 +
 t/ticket/add-watchers.t                            |    3 +-
 t/ticket/cfsort-freeform-multiple.t                |    2 +-
 t/ticket/cfsort-freeform-single.t                  |    2 +-
 t/ticket/linking.t                                 |   28 +-
 t/ticket/search_by_cf_freeform_multiple.t          |    2 +-
 t/ticket/search_by_cf_freeform_single.t            |    2 +-
 t/ticket/search_by_links.t                         |    2 +-
 t/ticket/search_by_watcher.t                       |    2 +-
 t/ticket/sort-by-queue.t                           |    2 +-
 t/ticket/sort-by-user.t                            |    2 +-
 t/web/articles-links.t                             |   52 +
 t/web/cf_datetime.t                                |   88 +-
 t/web/cf_render_type.t                             |   50 +
 t/web/charting.t                                   |   69 +
 t/web/clickjacking-preventions.t                   |    9 +-
 t/web/command_line.t                               |   11 +-
 t/web/compilation_errors.t                         |    2 +-
 t/web/crypt-gnupg.t                                |   15 +-
 .../Callbacks/logout.t/NoAuth/Logout.html/Default  |    6 +
 t/web/html/NoAuth/js/not-by-default.js             |    3 +
 t/web/html/delete-article-name-method.html         |   15 +
 t/web/logout.t                                     |   39 +
 t/web/mobile.t                                     |    2 +-
 t/web/passthrough-jsmin                            |    5 +
 t/web/path-traversal.t                             |   46 +
 t/web/private-components.t                         |   44 +
 t/web/query_builder.t                              |   43 +-
 t/web/redirect-after-login.t                       |   22 +-
 t/web/reminder-permissions.t                       |    2 +-
 t/web/richtext-autohandler.t                       |   13 +
 t/web/rights1.t                                    |    3 +-
 t/web/self_service.t                               |   19 +
 t/web/squish.t                                     |  113 +-
 t/web/ticket_display.t                             |   63 +
 t/web/ticket_forward.t                             |   10 +-
 t/web/ticket_modify_all.t                          |    4 +-
 t/web/ticket_modify_people.t                       |  113 +
 t/web/ticket_txn_content.t                         |   40 +-
 t/web/user_update.t                                |   32 +
 t/web/walk.t                                       |  229 +-
 503 files changed, 141613 insertions(+), 27647 deletions(-)
 create mode 100644 devel/third-party/PIE_uncompressed.htc
 create mode 100644 devel/third-party/README
 create mode 100644 devel/third-party/ckeditor/adapters/jquery.js
 create mode 100644 devel/third-party/ckeditor/ckeditor_basic_source.js
 create mode 100644 devel/third-party/ckeditor/ckeditor_source.js
 create mode 100644 devel/third-party/ckeditor/core/_bootstrap.js
 create mode 100644 devel/third-party/ckeditor/core/ajax.js
 create mode 100644 devel/third-party/ckeditor/core/ckeditor.js
 create mode 100644 devel/third-party/ckeditor/core/ckeditor_base.js
 create mode 100644 devel/third-party/ckeditor/core/ckeditor_basic.js
 create mode 100644 devel/third-party/ckeditor/core/command.js
 create mode 100644 devel/third-party/ckeditor/core/commanddefinition.js
 create mode 100644 devel/third-party/ckeditor/core/config.js
 create mode 100644 devel/third-party/ckeditor/core/dataprocessor.js
 create mode 100644 devel/third-party/ckeditor/core/dom.js
 create mode 100644 devel/third-party/ckeditor/core/dom/comment.js
 create mode 100644 devel/third-party/ckeditor/core/dom/document.js
 create mode 100644 devel/third-party/ckeditor/core/dom/documentfragment.js
 create mode 100644 devel/third-party/ckeditor/core/dom/domobject.js
 create mode 100644 devel/third-party/ckeditor/core/dom/element.js
 create mode 100644 devel/third-party/ckeditor/core/dom/elementpath.js
 create mode 100644 devel/third-party/ckeditor/core/dom/event.js
 create mode 100644 devel/third-party/ckeditor/core/dom/node.js
 create mode 100644 devel/third-party/ckeditor/core/dom/nodelist.js
 create mode 100644 devel/third-party/ckeditor/core/dom/range.js
 create mode 100644 devel/third-party/ckeditor/core/dom/rangelist.js
 create mode 100644 devel/third-party/ckeditor/core/dom/text.js
 create mode 100644 devel/third-party/ckeditor/core/dom/walker.js
 create mode 100644 devel/third-party/ckeditor/core/dom/window.js
 create mode 100644 devel/third-party/ckeditor/core/dtd.js
 create mode 100644 devel/third-party/ckeditor/core/editor.js
 create mode 100644 devel/third-party/ckeditor/core/editor_basic.js
 create mode 100644 devel/third-party/ckeditor/core/env.js
 create mode 100644 devel/third-party/ckeditor/core/event.js
 create mode 100644 devel/third-party/ckeditor/core/eventInfo.js
 create mode 100644 devel/third-party/ckeditor/core/focusmanager.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/basicwriter.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/cdata.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/comment.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/element.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/filter.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/fragment.js
 create mode 100644 devel/third-party/ckeditor/core/htmlparser/text.js
 create mode 100644 devel/third-party/ckeditor/core/imagecacher.js
 create mode 100644 devel/third-party/ckeditor/core/lang.js
 create mode 100644 devel/third-party/ckeditor/core/loader.js
 create mode 100644 devel/third-party/ckeditor/core/plugindefinition.js
 create mode 100644 devel/third-party/ckeditor/core/plugins.js
 create mode 100644 devel/third-party/ckeditor/core/resourcemanager.js
 create mode 100644 devel/third-party/ckeditor/core/scriptloader.js
 create mode 100644 devel/third-party/ckeditor/core/skins.js
 create mode 100644 devel/third-party/ckeditor/core/themes.js
 create mode 100644 devel/third-party/ckeditor/core/tools.js
 create mode 100644 devel/third-party/ckeditor/core/ui.js
 create mode 100644 devel/third-party/ckeditor/core/xml.js
 create mode 100644 devel/third-party/ckeditor/lang/_languages.js
 create mode 100644 devel/third-party/ckeditor/lang/_translationstatus.txt
 create mode 100644 devel/third-party/ckeditor/lang/af.js
 create mode 100644 devel/third-party/ckeditor/lang/ar.js
 create mode 100644 devel/third-party/ckeditor/lang/bg.js
 create mode 100644 devel/third-party/ckeditor/lang/bn.js
 create mode 100644 devel/third-party/ckeditor/lang/bs.js
 create mode 100644 devel/third-party/ckeditor/lang/ca.js
 create mode 100644 devel/third-party/ckeditor/lang/cs.js
 create mode 100644 devel/third-party/ckeditor/lang/cy.js
 create mode 100644 devel/third-party/ckeditor/lang/da.js
 create mode 100644 devel/third-party/ckeditor/lang/de.js
 create mode 100644 devel/third-party/ckeditor/lang/el.js
 create mode 100644 devel/third-party/ckeditor/lang/en-au.js
 create mode 100644 devel/third-party/ckeditor/lang/en-ca.js
 create mode 100644 devel/third-party/ckeditor/lang/en-gb.js
 create mode 100644 devel/third-party/ckeditor/lang/en.js
 create mode 100644 devel/third-party/ckeditor/lang/eo.js
 create mode 100644 devel/third-party/ckeditor/lang/es.js
 create mode 100644 devel/third-party/ckeditor/lang/et.js
 create mode 100644 devel/third-party/ckeditor/lang/eu.js
 create mode 100644 devel/third-party/ckeditor/lang/fa.js
 create mode 100644 devel/third-party/ckeditor/lang/fi.js
 create mode 100644 devel/third-party/ckeditor/lang/fo.js
 create mode 100644 devel/third-party/ckeditor/lang/fr-ca.js
 create mode 100644 devel/third-party/ckeditor/lang/fr.js
 create mode 100644 devel/third-party/ckeditor/lang/gl.js
 create mode 100644 devel/third-party/ckeditor/lang/gu.js
 create mode 100644 devel/third-party/ckeditor/lang/he.js
 create mode 100644 devel/third-party/ckeditor/lang/hi.js
 create mode 100644 devel/third-party/ckeditor/lang/hr.js
 create mode 100644 devel/third-party/ckeditor/lang/hu.js
 create mode 100644 devel/third-party/ckeditor/lang/is.js
 create mode 100644 devel/third-party/ckeditor/lang/it.js
 create mode 100644 devel/third-party/ckeditor/lang/ja.js
 create mode 100644 devel/third-party/ckeditor/lang/km.js
 create mode 100644 devel/third-party/ckeditor/lang/ko.js
 create mode 100644 devel/third-party/ckeditor/lang/lt.js
 create mode 100644 devel/third-party/ckeditor/lang/lv.js
 create mode 100644 devel/third-party/ckeditor/lang/mn.js
 create mode 100644 devel/third-party/ckeditor/lang/ms.js
 create mode 100644 devel/third-party/ckeditor/lang/nb.js
 create mode 100644 devel/third-party/ckeditor/lang/nl.js
 create mode 100644 devel/third-party/ckeditor/lang/no.js
 create mode 100644 devel/third-party/ckeditor/lang/pl.js
 create mode 100644 devel/third-party/ckeditor/lang/pt-br.js
 create mode 100644 devel/third-party/ckeditor/lang/pt.js
 create mode 100644 devel/third-party/ckeditor/lang/ro.js
 create mode 100644 devel/third-party/ckeditor/lang/ru.js
 create mode 100644 devel/third-party/ckeditor/lang/sk.js
 create mode 100644 devel/third-party/ckeditor/lang/sl.js
 create mode 100644 devel/third-party/ckeditor/lang/sr-latn.js
 create mode 100644 devel/third-party/ckeditor/lang/sr.js
 create mode 100644 devel/third-party/ckeditor/lang/sv.js
 create mode 100644 devel/third-party/ckeditor/lang/th.js
 create mode 100644 devel/third-party/ckeditor/lang/tr.js
 create mode 100644 devel/third-party/ckeditor/lang/uk.js
 create mode 100644 devel/third-party/ckeditor/lang/vi.js
 create mode 100644 devel/third-party/ckeditor/lang/zh-cn.js
 create mode 100644 devel/third-party/ckeditor/lang/zh.js
 create mode 100644 devel/third-party/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
 create mode 100644 devel/third-party/ckeditor/plugins/a11yhelp/lang/en.js
 create mode 100644 devel/third-party/ckeditor/plugins/a11yhelp/lang/he.js
 create mode 100644 devel/third-party/ckeditor/plugins/a11yhelp/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/about/dialogs/about.js
 create mode 100644 devel/third-party/ckeditor/plugins/about/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/autogrow/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/basicstyles/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/bidi/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/blockquote/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/button/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/clipboard/dialogs/paste.js
 create mode 100644 devel/third-party/ckeditor/plugins/clipboard/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/colorbutton/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/colordialog/dialogs/colordialog.js
 create mode 100644 devel/third-party/ckeditor/plugins/colordialog/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/contextmenu/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/dialog/dialogDefinition.js
 create mode 100644 devel/third-party/ckeditor/plugins/dialog/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/dialogadvtab/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/dialogui/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/div/dialogs/div.js
 create mode 100644 devel/third-party/ckeditor/plugins/div/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/domiterator/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/editingblock/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/elementspath/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/enterkey/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/entities/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/fakeobjects/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/filebrowser/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/find/dialogs/find.js
 create mode 100644 devel/third-party/ckeditor/plugins/find/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/flash/dialogs/flash.js
 create mode 100644 devel/third-party/ckeditor/plugins/flash/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/floatpanel/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/font/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/format/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/button.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/checkbox.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/form.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/hiddenfield.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/radio.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/select.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/textarea.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/dialogs/textfield.js
 create mode 100644 devel/third-party/ckeditor/plugins/forms/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/horizontalrule/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/htmldataprocessor/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/htmlwriter/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/iframedialog/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/image/dialogs/image.js
 create mode 100644 devel/third-party/ckeditor/plugins/image/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/indent/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/justify/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/keystrokes/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/link/dialogs/anchor.js
 create mode 100644 devel/third-party/ckeditor/plugins/link/dialogs/link.js
 create mode 100644 devel/third-party/ckeditor/plugins/link/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/list/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/listblock/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/liststyle/dialogs/liststyle.js
 create mode 100644 devel/third-party/ckeditor/plugins/liststyle/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/maximize/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/menu/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/menubutton/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/newpage/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/pagebreak/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/panel/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/panelbutton/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/pastefromword/filter/default.js
 create mode 100644 devel/third-party/ckeditor/plugins/pastefromword/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/pastetext/dialogs/pastetext.js
 create mode 100644 devel/third-party/ckeditor/plugins/pastetext/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/popup/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/preview/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/print/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/removeformat/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/resize/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/richcombo/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/save/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/scayt/dialogs/options.js
 create mode 100644 devel/third-party/ckeditor/plugins/scayt/dialogs/toolbar.css
 create mode 100644 devel/third-party/ckeditor/plugins/scayt/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/selection/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/showblocks/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/showborders/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/smiley/dialogs/smiley.js
 create mode 100644 devel/third-party/ckeditor/plugins/smiley/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/sourcearea/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/specialchar/dialogs/specialchar.js
 create mode 100644 devel/third-party/ckeditor/plugins/specialchar/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/styles/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/styles/styles/default.js
 create mode 100644 devel/third-party/ckeditor/plugins/stylescombo/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/tab/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/table/dialogs/table.js
 create mode 100644 devel/third-party/ckeditor/plugins/table/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/tableresize/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/tabletools/dialogs/tableCell.js
 create mode 100644 devel/third-party/ckeditor/plugins/tabletools/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/templates/dialogs/templates.js
 create mode 100644 devel/third-party/ckeditor/plugins/templates/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/templates/templates/default.js
 create mode 100644 devel/third-party/ckeditor/plugins/toolbar/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/uicolor/dialogs/uicolor.js
 create mode 100644 devel/third-party/ckeditor/plugins/uicolor/lang/en.js
 create mode 100644 devel/third-party/ckeditor/plugins/uicolor/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/uicolor/yui/assets/yui.css
 create mode 100644 devel/third-party/ckeditor/plugins/uicolor/yui/yui.js
 create mode 100644 devel/third-party/ckeditor/plugins/undo/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/wsc/dialogs/ciframe.html
 create mode 100644 devel/third-party/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
 create mode 100644 devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.css
 create mode 100644 devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.js
 create mode 100644 devel/third-party/ckeditor/plugins/wsc/plugin.js
 create mode 100644 devel/third-party/ckeditor/plugins/wysiwygarea/plugin.js
 create mode 100644 devel/third-party/ckeditor/skins/kama/dialog.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/editor.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/elementspath.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/icons.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/mainui.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/menu.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/panel.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/presets.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/reset.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/richcombo.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/skin.js
 create mode 100644 devel/third-party/ckeditor/skins/kama/templates.css
 create mode 100644 devel/third-party/ckeditor/skins/kama/toolbar.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/dialog.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/editor.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/elementspath.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/icons.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/mainui.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/menu.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/panel.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/presets.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/reset.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/richcombo.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/skin.js
 create mode 100644 devel/third-party/ckeditor/skins/office2003/templates.css
 create mode 100644 devel/third-party/ckeditor/skins/office2003/toolbar.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/dialog.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/editor.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/elementspath.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/icons.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/mainui.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/menu.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/panel.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/presets.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/reset.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/richcombo.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/skin.js
 create mode 100644 devel/third-party/ckeditor/skins/v2/templates.css
 create mode 100644 devel/third-party/ckeditor/skins/v2/toolbar.css
 create mode 100644 devel/third-party/ckeditor/themes/default/theme.js
 create mode 100644 devel/third-party/jquery-1.4.2.js
 create mode 100644 devel/third-party/jquery.tablesorter.js
 create mode 100644 devel/third-party/jquery.ui.accordion-1.8.5.js
 create mode 100644 devel/third-party/jquery.ui.autocomplete-1.8.4.js
 create mode 100644 devel/third-party/jquery.ui.core-1.8.4.js
 create mode 100644 devel/third-party/jquery.ui.datepicker-1.8.4.js
 create mode 100644 devel/third-party/jquery.ui.position-1.8.4.js
 create mode 100644 devel/third-party/jquery.ui.tabs-1.8.4.js
 create mode 100644 devel/third-party/jquery.ui.widget-1.8.4.js
 rename devel/{ => tools}/extract-message-catalog (99%)
 rename devel/{ => tools}/factory (99%)
 rename devel/{ => tools}/license_tag (99%)
 rename devel/{ => tools}/merge-rosetta.pl (99%)
 rename devel/{ => tools}/tweak-template-locstring (99%)
 create mode 100644 docs/full_text_indexing.pod
 create mode 100644 docs/hacking.pod
 create mode 100755 etc/upgrade/4.0.1/acl.Pg
 create mode 100644 etc/upgrade/4.0.1/content
 delete mode 100644 lib/RT/Action/ResolveMembers.pm
 rename share/html/{Articles/Elements/Header => NoAuth/RichText/autohandler} (89%)
 delete mode 100644 share/html/NoAuth/js/IE7/IE7.js
 delete mode 100644 share/html/NoAuth/js/IE7/IE8.js
 delete mode 100644 share/html/NoAuth/js/IE7/blank.gif
 delete mode 100644 share/html/NoAuth/js/IE7/ie7-recalc.js
 delete mode 100644 share/html/NoAuth/js/IE7/ie7-squish.js
 delete mode 100644 share/po/ar.po
 create mode 100644 t/api/cf_render_type.t
 create mode 100644 t/fts/indexed_mysql.t
 create mode 100644 t/i18n/footer.t
 create mode 100644 t/web/articles-links.t
 create mode 100644 t/web/cf_render_type.t
 create mode 100644 t/web/charting.t
 create mode 100644 t/web/html/Callbacks/logout.t/NoAuth/Logout.html/Default
 create mode 100644 t/web/html/NoAuth/js/not-by-default.js
 create mode 100644 t/web/html/delete-article-name-method.html
 create mode 100644 t/web/logout.t
 create mode 100755 t/web/passthrough-jsmin
 create mode 100644 t/web/path-traversal.t
 create mode 100644 t/web/private-components.t
 create mode 100644 t/web/richtext-autohandler.t
 create mode 100644 t/web/self_service.t
 create mode 100644 t/web/ticket_display.t
 create mode 100644 t/web/ticket_modify_people.t
 create mode 100644 t/web/user_update.t

- Log -----------------------------------------------------------------
commit 10fe1b8da2f1a4853fa5e2150952c42aa8d4cabb
Merge: 4f8cd77 1c1cc51
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Wed Jun 22 17:05:11 2011 -0400

    Merge branch '4.0-trunk'
    
    This also includes changes to test counts due to b65f769 on 4.0-trunk.
    
    Conflicts:
    	lib/RT/Config.pm
    	lib/RT/Test.pm
    	share/html/Dashboards/Subscription.html
    	share/html/Elements/Tabs

diff --cc lib/RT/Config.pm
index 2fa44af,d1102fb..423e8fa
--- a/lib/RT/Config.pm
+++ b/lib/RT/Config.pm
@@@ -687,22 -730,33 +735,48 @@@ our %META = 
              }
          },
      },
 -
 +    LogToScreen => {
 +        PostSet => sub {
 +            my $self  = shift;
 +            my $value = shift;
 +            $self->SetFromConfig(
 +                Option => \'LogToSTDERR',
 +                Value  => [$value],
 +                %{$self->Meta('LogToScreen')->{'Source'}}
 +            );
 +        },
 +        PostLoadCheck => sub {
 +            my $self = shift;
 +            $RT::Logger->info("You set \$LogToScreen in your config, but it's been renamed to \$LogToSTDERR.  Please update your config.")
 +                if $self->Meta('LogToScreen')->{'Source'}{'Package'};
 +        },
 +    },
+     ActiveStatus => {
+         Type => 'ARRAY',
+         PostLoadCheck => sub {
+             my $self  = shift;
+             return unless shift;
+             # XXX Remove in RT 4.2
+             warn <<EOT;
+ The ActiveStatus configuration has been replaced by the new Lifecycles
+ functionality. You should set the 'active' property of the 'default'
+ lifecycle and add transition rules; see RT_Config.pm for documentation.
+ EOT
+         },
+     },
+     InactiveStatus => {
+         Type => 'ARRAY',
+         PostLoadCheck => sub {
+             my $self  = shift;
+             return unless shift;
+             # XXX Remove in RT 4.2
+             warn <<EOT;
+ The InactiveStatus configuration has been replaced by the new Lifecycles
+ functionality. You should set the 'inactive' property of the 'default'
+ lifecycle and add transition rules; see RT_Config.pm for documentation.
+ EOT
+         },
+     },
  );
  my %OPTIONS = ();
  
diff --cc lib/RT/Test.pm
index 017f363,e4933c2..ca21122
--- a/lib/RT/Test.pm
+++ b/lib/RT/Test.pm
@@@ -236,7 -235,7 +236,7 @@@ sub bootstrap_config 
  Set( \$WebDomain, "localhost");
  Set( \$WebPort,   $port);
  Set( \$WebPath,   "");
- Set( \@LexiconLanguages, qw(en zh_TW zh_CN fr));
 -Set( \@LexiconLanguages, qw(en zh_TW fr ja));
++Set( \@LexiconLanguages, qw(en zh_TW zh_CN fr ja));
  Set( \$RTAddressRegexp , qr/^bad_re_that_doesnt_match\$/i);
  };
      if ( $ENV{'RT_TEST_DB_SID'} ) { # oracle case
diff --cc share/html/Dashboards/Subscription.html
index f3e4381,3d2d5e5..3c466f5
--- a/share/html/Dashboards/Subscription.html
+++ b/share/html/Dashboards/Subscription.html
@@@ -226,41 -226,56 +226,56 @@@ for my $field (keys %fields) 
      $fields{$field} = $ARGS{$field}
          if defined($ARGS{$field});
  }
+ 
+ 
  # this'll be defined on submit
  if (defined $ARGS{Save}) {
-     # update
-     if ($SubscriptionObj) {
-         $id = delete $fields{'DashboardId'}; # immutable
-         ($ok, $msg) = $SubscriptionObj->SetSubValues(%fields);
-         $fields{'DashboardId'} = $id;
- 
-         # not so good to spew base64-encoded data at the user :)
-         if ($msg =~ /^Content changed from/) {
-             $msg = "Subscription updated.";
+     my $ok = 1;
+ 
+     # validation
+     if ($fields{Recipient}) {
+         my @addresses = Email::Address->parse($fields{Recipient});
+         if (@addresses == 0) {
+             push @results, loc('Recipient must be an email address');
+             $ok = 0;
          }
- 
-         push @results, $msg;
      }
-     # create
-     else {
-         Abort(loc("Unable to subscribe to dashboard [_1]: Permission Denied", $id))
-             unless $Dashboard->CurrentUserCanSubscribe;
- 
-         $SubscriptionObj = RT::Attribute->new($session{CurrentUser});
-         ($ok, $msg) = $SubscriptionObj->Create(
-             Name        => 'Subscription',
-             Description => 'Subscription to dashboard ' . $id,
-             ContentType => 'storable',
-             Object      => $session{'CurrentUser'}->UserObj,
-             Content     => \%fields,
-         );
-         if ($ok) {
-             push @results, loc("Subscribed to dashboard [_1]", $Dashboard->Name);
-             push @results, loc("Warning: you have no email address set, so you will not receive this dashboard until you have it set")
-                 unless $session{'CurrentUser'}->EmailAddress || $fields{Recipient};
+ 
+     if ($ok) {
+         # update
+         if ($SubscriptionObj) {
+             $id = delete $fields{'DashboardId'}; # immutable
+             ($ok, $msg) = $SubscriptionObj->SetSubValues(%fields);
+             $fields{'DashboardId'} = $id;
+ 
+             # not so good to spew base64-encoded data at the user :)
+             if ($msg =~ /^Content changed from/) {
+                 $msg = "Subscription updated.";
+             }
+ 
+             push @results, $msg;
          }
+         # create
          else {
-             push @results, loc('Subscription could not be created: [_1]', $msg);
 -            Abort(loc("Unable to subscribe to dashboard [_1]: Permission denied", $id))
++            Abort(loc("Unable to subscribe to dashboard [_1]: Permission Denied", $id))
+                 unless $Dashboard->CurrentUserCanSubscribe;
+ 
+             $SubscriptionObj = RT::Attribute->new($session{CurrentUser});
+             ($ok, $msg) = $SubscriptionObj->Create(
+                 Name        => 'Subscription',
+                 Description => 'Subscription to dashboard ' . $id,
+                 ContentType => 'storable',
+                 Object      => $session{'CurrentUser'}->UserObj,
+                 Content     => \%fields,
+             );
+             if ($ok) {
+                 push @results, loc("Subscribed to dashboard [_1]", $Dashboard->Name);
+                 push @results, loc("Warning: you have no email address set, so you will not receive this dashboard until you have it set")
+                     unless $session{'CurrentUser'}->EmailAddress || $fields{Recipient};
+             }
+             else {
+                 push @results, loc('Subscription could not be created: [_1]', $msg);
+             }
          }
      }
  }
diff --cc share/html/Elements/Tabs
index 7a3299f,865aace..7410d62
--- a/share/html/Elements/Tabs
+++ b/share/html/Elements/Tabs
@@@ -221,10 -194,8 +221,10 @@@ my $build_admin_menu = sub 
                                description => loc('Modify global user rights') );
          $admin_global->child( 'my-rt' => title => loc('RT at a glance'), path => '/Admin/Global/MyRT.html',
                                description => loc('Modify the default "RT at a glance" view') );
 +        $admin_global->child( 'dashboards-in-menu' => title => loc('Dashboards in menu'), path => '/Admin/Global/DashboardsInMenu.html',
 +                              description => loc('Customize dashboards in menu') );
-         $admin_global->child( theme => title => loc('Theme'), path => '/Admin/Global/Theme.html',
-                               description => loc('Customize the look of your RT') );
+         $admin_global->child( 'topics' => title => loc('Topics'), path => '/Admin/Global/Topics.html',
+                               description => loc('Modify global article topics') );
  
          my $admin_tools = $admin->child( tools => title => loc('Tools'), path => '/Admin/Tools/', description => loc('Use other RT administrative tools') );
          $admin_tools->child( configuration => title => loc('System Configuration'), path => '/Admin/Tools/Configuration.html',
@@@ -427,11 -395,9 +427,11 @@@
          $settings->child( about_me => title => loc('About me'), path     => '/User/Prefs.html', );
          $settings->child( search_options => title => loc('Search options'), path => '/Prefs/SearchOptions.html', );
          $settings->child( myrt => title => loc('RT at a glance'), path => '/Prefs/MyRT.html', );
 +        $settings->child( dashboards_in_menu => title => loc('Dashboards in menu'),
 +                    path => '/Prefs/DashboardsInMenu.html' );
-         $settings->child( quicksearch => title => 'Quick search' => title => loc('Quick search'), path => '/Prefs/Quicksearch.html');
+         $settings->child( quicksearch => title => loc('Quick search'), path => '/Prefs/Quicksearch.html');
  
-         my $search_menu = $settings->child( 'saved-searches' => title => 'Saved Searches' );
+         my $search_menu = $settings->child( 'saved-searches' => title => loc('Saved Searches') );
          my $searches = [ $m->comp( "/Search/Elements/SearchesForObject",
                            Object => RT::System->new( $session{'CurrentUser'} )) ];
          my $i = 0;
diff --cc share/html/Prefs/Quicksearch.html
index 7da6aa2,3343afd..c55b659
--- a/share/html/Prefs/Quicksearch.html
+++ b/share/html/Prefs/Quicksearch.html
@@@ -57,10 -57,10 +57,10 @@@
  % unless ($unwanted->{$queue->Name}) {
  checked="checked"
  % }
- /><%$queue->Name%>: <%$queue->Description%></li>
+ /><%$queue->Name%><% $queue->Description ? ': '.$queue->Description : '' %></li>
  % }
  </ul>
 -<& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&>
 +<& /Elements/Submit, CheckAll => 1, ClearAll => 1, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&>
  
  </form>
  
diff --cc t/api/reminder-permissions.t
index 8c068fb,0000000..9e625d6
mode 100644,000000..100644
--- a/t/api/reminder-permissions.t
+++ b/t/api/reminder-permissions.t
@@@ -1,50 -1,0 +1,50 @@@
 +#!/usr/bin/env perl
 +use strict;
 +use warnings;
- use RT::Test tests => 8;
++use RT::Test tests => 9;
 +
 +my $user_a = RT::Test->load_or_create_user(
 +    Name     => 'user_a',
 +    Password => 'password',
 +);
 +
 +ok( $user_a && $user_a->id, 'created user_a' );
 +ok(
 +    RT::Test->add_rights(
 +        {
 +            Principal => $user_a,
 +            Right     => [qw/SeeQueue CreateTicket ShowTicket OwnTicket/]
 +        },
 +    ),
 +    'add basic rights for user_a'
 +);
 +
 +my $ticket = RT::Test->create_ticket(
 +    Subject => 'test reminder permission',
 +    Queue   => 'General',
 +);
 +ok( $ticket->id, 'created a ticket' );
 +$ticket->CurrentUser($user_a);
 +
 +my ( $status, $msg ) = $ticket->Reminders->Add(
 +    Subject => 'user a reminder',
 +    Owner   => $user_a->id,
 +);
 +ok( !$status, "couldn't create reminders without ModifyTicket: $msg" );
 +
 +ok(
 +    RT::Test->add_rights(
 +        {
 +            Principal => $user_a,
 +            Right     => [qw/ModifyTicket/]
 +        },
 +    ),
 +    'add ModifyTicket right for user_a'
 +);
 +
 +( $status, $msg ) = $ticket->Reminders->Add(
 +    Subject => 'user a reminder',
 +    Owner   => $user_a->id,
 +);
 +ok( $status, "created a reminder with ModifyTicket: $msg" );
 +
diff --cc t/ticket/cfsort-freeform-multiple.t
index 6d8b212,e285d0e..ba6150b
--- a/t/ticket/cfsort-freeform-multiple.t
+++ b/t/ticket/cfsort-freeform-multiple.t
@@@ -1,5 -1,6 +1,5 @@@
 -#!/usr/bin/perl
  
- use RT::Test nodata => 1, tests => 29;
+ use RT::Test nodata => 1, tests => 41;
  
  use strict;
  use warnings;
diff --cc t/ticket/cfsort-freeform-single.t
index 66e4663,35a53fb..ae109e9
--- a/t/ticket/cfsort-freeform-single.t
+++ b/t/ticket/cfsort-freeform-single.t
@@@ -1,5 -1,6 +1,5 @@@
 -#!/usr/bin/perl
  
- use RT::Test nodata => 1, tests => 61;
+ use RT::Test nodata => 1, tests => 89;
  
  use strict;
  use warnings;
diff --cc t/ticket/sort-by-queue.t
index f0f6fe7,bf2934b..f54ccf7
--- a/t/ticket/sort-by-queue.t
+++ b/t/ticket/sort-by-queue.t
@@@ -1,5 -1,6 +1,5 @@@
 -#!/usr/bin/perl
  
- use RT::Test nodata => 1, tests => 8;
+ use RT::Test nodata => 1, tests => 12;
  
  use strict;
  use warnings;
diff --cc t/ticket/sort-by-user.t
index 2ec4b1c,10d43de..42f95fc
--- a/t/ticket/sort-by-user.t
+++ b/t/ticket/sort-by-user.t
@@@ -1,5 -1,6 +1,5 @@@
 -#!/usr/bin/perl
  
- use RT::Test nodata => 1, tests => 34;
+ use RT::Test nodata => 1, tests => 52;
  
  use strict;
  use warnings;
diff --cc t/web/mobile.t
index 637abd9,0000000..a2fdf39
mode 100644,000000..100644
--- a/t/web/mobile.t
+++ b/t/web/mobile.t
@@@ -1,208 -1,0 +1,208 @@@
 +use strict;
 +use warnings;
- use RT::Test tests => 156;
++use RT::Test tests => 166;
 +
 +my ( $url, $m ) = RT::Test->started_ok;
 +my $root = RT::Test->load_or_create_user( Name => 'root' );
 +
 +diag "create another queue";
 +my $test_queue = RT::Queue->new( $RT::SystemUser );
 +ok( $test_queue->Create( Name => 'foo' ) );
 +
 +diag "create cf cfbar";
 +my $cfbar = RT::CustomField->new( $RT::SystemUser );
 +ok(
 +    $cfbar->Create(
 +        Name       => 'cfbar',
 +        Type       => 'Freeform',
 +        LookupType => 'RT::Queue-RT::Ticket'
 +    )
 +);
 +
 +$cfbar->AddToObject( $test_queue );
 +
 +diag "create some tickets to link";
 +# yep, create 3 tickets for DependsOn
 +my @tickets = map { { Subject => "link of $_" } }
 +  qw/DependsOn DependsOn DependsOn DependedOnBy HasMember HasMember
 +  MemberOf RefersTo RefersTo ReferredToBy/;
 +RT::Test->create_tickets( { Status => 'resolved' },  @tickets );
 +
 +diag "test different mobile agents";
 +my @agents = (
 +    'hiptop',       'Blazer',     'Novarra',  'Vagabond',
 +    'SonyEricsson', 'Symbian',    'NetFront', 'UP.Browser',
 +    'UP.Link',      'Windows CE', 'MIDP',     'J2ME',
 +    'DoCoMo',       'J-PHONE',    'PalmOS',   'PalmSource',
 +    'iPhone',       'iPod',       'AvantGo',  'Nokia',
 +    'Android',      'WebOS',      'S60'
 +);
 +
 +for my $agent (@agents) {
 +    $m->agent($agent);
 +    $m->get_ok($url);
 +    $m->content_contains( 'Not using a mobile browser',
 +        "mobile login page for agent $agent" );
 +}
 +
 +$m->submit_form( fields => { user => 'root', pass => 'password' } );
 +is( $m->uri, $url . '/m/', 'logged in via mobile ui' );
 +ok( $m->find_link( text => 'Homepage' ), 'has homepage link, so really logged in' );
 +
 +diag "create some tickets";
 +$m->follow_link_ok( { text => 'New ticket' } );
 +like( $m->uri, qr'/m/ticket/select_create_queue', 'queue select page' );
 +$m->follow_link_ok( { text => 'General' } );
 +like( $m->uri, qr'/m/ticket/create', 'ticket create page' );
 +$m->submit_form(
 +    fields => {
 +        Subject                   => 'ticket1',
 +        Content                   => 'content 1',
 +        Status                    => 'open',
 +        Cc                        => 'cc at example.com',
 +        AdminCc                   => 'admincc at example.com',
 +        InitialPriority           => 13,
 +        FinalPriority             => 93,
 +        TimeEstimated             => 2,
 +        'TimeEstimated-TimeUnits' => 'hours',
 +        TimeWorked                => 30,
 +        TimeLeft                  => 60,
 +        Starts                    => '2011-01-11 11:11:11',
 +        Due                       => '2011-02-12 12:12:12',
 +        'new-DependsOn'           => '1 2 3',
 +        'DependsOn-new'           => '4',
 +        'new-MemberOf'            => '5 6',
 +        'MemberOf-new'            => '7',
 +        'new-RefersTo'            => '8 9',
 +        'RefersTo-new'            => '10',
 +    }
 +);
 +like( $m->uri, qr'/m/ticket/show', 'ticket show page' );
 +$m->content_contains( 'ticket1', 'subject' );
 +$m->content_contains( 'open', 'status' );
 +$m->content_contains( 'cc at example.com', 'cc' );
 +$m->content_contains( 'admincc at example.com', 'admincc' );
 +$m->content_contains( '13/93', 'priority' );
 +$m->content_contains( '2 hour', 'time estimates' );
 +$m->content_contains( '30 min', 'time worked' );
 +$m->content_contains( '60 min', 'time left' );
 +$m->content_contains( 'Tue Jan 11 11:11:11', 'starts' );
 +$m->content_contains( 'Sat Feb 12 12:12:12', 'due' );
 +$m->content_like( qr/(link of DependsOn).*\1.*\1/s, 'depends on' );
 +$m->content_contains( 'link of DependedOnBy', 'depended on by' );
 +$m->content_like( qr/(link of HasMember).*\1/s, 'has member' );
 +$m->content_contains( 'link of MemberOf', 'member of' );
 +$m->content_like( qr/(link of RefersTo).*\1/s, 'refers to' );
 +$m->content_contains( 'link of ReferredToBy', 'referred to by' );
 +
 +diag "test ticket reply";
 +$m->follow_link_ok( { text => 'Reply' } );
 +like( $m->uri, qr'/m/ticket/reply', 'ticket reply page' );
 +$m->submit_form(
 +    fields => {
 +        UpdateContent    => 'reply 1',
 +        UpdateTimeWorked => '30',
 +        UpdateStatus     => 'resolved',
 +        UpdateType       => 'response',
 +    },
 +    button => 'SubmitTicket',
 +);
 +like( $m->uri, qr'/m/ticket/show', 'back to ticket show page' );
 +$m->content_contains( '1 hour', 'time worked' );
 +$m->content_contains( 'resolved', 'status' );
 +$m->follow_link_ok( { text => 'Reply' } );
 +like( $m->uri, qr'/m/ticket/reply', 'ticket reply page' );
 +$m->submit_form(
 +    fields => {
 +        UpdateContent    => 'reply 2',
 +        UpdateSubject    => 'ticket1',
 +        UpdateStatus     => 'open',
 +        UpdateType       => 'private',
 +    },
 +    button => 'SubmitTicket',
 +);
 +$m->content_contains( 'ticket1', 'subject' );
 +$m->content_contains( 'open', 'status' );
 +
 +like( $m->uri, qr'/m/ticket/show', 'back to ticket show page' );
 +
 +diag "test ticket history";
 +$m->follow_link_ok( { text => 'History' } );
 +like( $m->uri, qr'/m/ticket/history', 'ticket history page' );
 +$m->content_contains( 'content 1', 'has main content' );
 +$m->content_contains( 'reply 1', 'has replied content' );
 +$m->content_contains( 'reply 2', 'has replied content' );
 +
 +diag "create another ticket in queue foo";
 +$m->follow_link_ok( { text => 'Homepage' } );
 +is( $m->uri, "$url/m/", 'main mobile page' );
 +$m->follow_link_ok( { text => 'New ticket' } );
 +like( $m->uri, qr'/m/ticket/select_create_queue', 'queue select page' );
 +$m->follow_link_ok( { text => 'foo' } );
 +like( $m->uri, qr'/m/ticket/create', 'ticket create page' );
 +$m->content_contains( 'cfbar', 'has cf name' );
 +$m->content_contains( 'Object-RT::Ticket--CustomField-' . $cfbar->id .  '-Value', 'has cf input name' );
 +$m->submit_form(
 +    fields => {
 +        Subject => 'ticket2',
 +        Content => 'content 2',
 +        Owner   => $root->id,
 +        'Object-RT::Ticket--CustomField-' . $cfbar->id . '-Value' => 'cfvalue',
 +    }
 +);
 +like( $m->uri, qr'/m/ticket/show', 'ticket show page' );
 +$m->content_contains( 'cfbar', 'has cf name' );
 +$m->content_contains( 'cfvalue', 'has cf value' );
 +
 +$m->follow_link_ok( { text => 'Homepage' } );
 +is( $m->uri, "$url/m/", 'main mobile page' );
 +
 +diag "test unowned tickets link";
 +$m->follow_link_ok( { text => 'Unowned tickets' } );
 +$m->content_contains( 'Found 1 ticket', 'found 1 ticket' );
 +$m->content_contains( 'ticket1', 'has ticket1' );
 +$m->content_lacks( 'ticket2', 'no ticket2' );
 +$m->back;
 +
 +diag "test tickets I own link";
 +$m->follow_link_ok( { text => 'Tickets I own' } );
 +$m->content_contains( 'Found 1 ticket', 'found 1 ticket' );
 +$m->content_lacks( 'ticket1', 'no ticket1' );
 +ok( $m->find_link( text_regex => qr/ticket2/ ), 'has ticket2 link' );
 +$m->back;
 +
 +diag "test all tickets link";
 +$m->follow_link_ok( { text => 'All tickets' } );
 +$m->content_contains( 'Found 12 tickets', 'found 12 tickets' );
 +ok( $m->find_link( text_regex => qr/ticket1/ ), 'has ticket1 link' );
 +ok( $m->find_link( text_regex => qr/ticket2/ ), 'has ticket2 link' );
 +$m->back;
 +
 +diag "test bookmarked tickets link";
 +my $ticket = RT::Ticket->new(RT::CurrentUser->new('root'));
 +$ticket->Load(11);
 +$root->ToggleBookmark($ticket);
 +
 +$m->follow_link_ok( { text => 'Bookmarked tickets' } );
 +$m->content_contains( 'Found 1 ticket', 'found 1 ticket' );
 +ok( $m->find_link( text_regex => qr/ticket1/ ), 'has ticket1 link' );
 +$m->content_lacks( 'ticket2', 'no ticket2' );
 +$m->back;
 +
 +diag "test tickets search";
 +$m->submit_form( fields => { q => 'ticket2' } );
 +$m->content_contains( 'Found 1 ticket', 'found 1 ticket' );
 +$m->content_lacks( 'ticket1', 'no ticket1' );
 +ok( $m->find_link( text_regex => qr/ticket2/ ), 'has ticket2 link' );
 +$m->back;
 +
 +diag "test logout link";
 +$m->follow_link_ok( { text => 'Logout' } );
 +is( $m->uri, "$url/m/", 'still in mobile' );
 +$m->submit_form( fields => { user => 'root', pass => 'password' } );
 +
 +diag "test notmobile link";
 +$m->follow_link_ok( { text => 'Homepage' } );
 +$m->follow_link_ok( { text => 'Not using a mobile browser?' } );
 +is( $m->uri, $url . '/', 'got full ui' );
 +
diff --cc t/web/reminder-permissions.t
index 7fdcafd,0000000..9c6112d
mode 100644,000000..100644
--- a/t/web/reminder-permissions.t
+++ b/t/web/reminder-permissions.t
@@@ -1,179 -1,0 +1,179 @@@
 +#!/usr/bin/env perl
 +use strict;
 +use warnings;
- use RT::Test tests => 39;
++use RT::Test tests => 40;
 +
 +my $user_a = RT::Test->load_or_create_user(
 +    Name     => 'user_a',
 +    Password => 'password',
 +);
 +
 +ok( $user_a && $user_a->id, 'created user_a' );
 +ok(
 +    RT::Test->add_rights(
 +        {
 +            Principal => $user_a,
 +            Right     => [qw/SeeQueue CreateTicket ShowTicket OwnTicket/]
 +        },
 +    ),
 +    'add basic rights for user_a'
 +);
 +
 +ok(
 +    RT::Test->add_rights(
 +        {
 +            Principal => 'Owner',
 +            Right     => [qw/ModifyTicket/],
 +        },
 +    ),
 +    'add basic rights for owner'
 +);
 +
 +my $ticket = RT::Test->create_ticket(
 +    Subject => 'test reminder permission',
 +    Queue   => 'General',
 +);
 +
 +ok( $ticket->id, 'created a ticket' );
 +
 +my ( $baseurl, $m ) = RT::Test->started_ok;
 +$m->login;
 +
 +my ( $root_reminder_id, $user_a_reminder_id );
 +diag "create two reminders, with owner root and user_a, respectively";
 +{
 +    $m->goto_ticket( $ticket->id );
 +    $m->text_contains( 'New reminder:', 'can create a new reminder' );
 +    $m->form_name('UpdateReminders');
 +    $m->field( 'NewReminder-Subject' => "root reminder" );
 +    $m->submit;
 +    $m->text_contains( "Reminder 'root reminder': Created",
 +        'created root reminder' );
 +
 +    $m->form_name('UpdateReminders');
 +    $m->field( 'NewReminder-Subject' => "user_a reminder", );
 +    $m->field( 'NewReminder-Owner'   => $user_a->id, );
 +    $m->submit;
 +    $m->text_contains( "Reminder 'user_a reminder': Created",
 +        'created user_a reminder' );
 +
 +    my $reminders = RT::Reminders->new($user_a);
 +    $reminders->Ticket( $ticket->id );
 +    my $col = $reminders->Collection;
 +    while ( my $c = $col->Next ) {
 +        if ( $c->Subject eq 'root reminder' ) {
 +            $root_reminder_id = $c->id;
 +        }
 +        elsif ( $c->Subject eq 'user_a reminder' ) {
 +            $user_a_reminder_id = $c->id;
 +        }
 +    }
 +}
 +
 +diag "check root_a can update user_a reminder but not root reminder";
 +my $m_a = RT::Test::Web->new;
 +{
 +    ok( $m_a->login( user_a => 'password' ), 'logged in as user_a' );
 +    $m_a->goto_ticket( $ticket->id );
 +    $m_a->content_lacks( 'New reminder:', 'can not create a new reminder' );
 +    $m_a->content_contains( 'root reminder',   'can see root reminder' );
 +    $m_a->content_contains( 'user_a reminder', 'can see user_a reminder' );
 +    $m_a->content_like(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is disabled"
 +    );
 +
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->tick( "Complete-Reminder-$user_a_reminder_id" => 1 );
 +    $m_a->submit;
 +    $m_a->text_contains(
 +        "Reminder 'user_a reminder': Status changed from 'new' to 'resolved'",
 +        'complete user_a reminder' );
 +
 +    $m_a->follow_link_ok( { id => 'page-reminders' } );
 +    $m_a->title_is( "Reminders for ticket #" . $ticket->id );
 +    $m_a->content_contains( 'root reminder',   'can see root reminder' );
 +    $m_a->content_contains( 'user_a reminder', 'can see user_a reminder' );
 +    $m_a->content_lacks( 'New reminder:', 'can not create a new reminder' );
 +    $m_a->content_like(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is disabled"
 +    );
 +
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->untick( "Complete-Reminder-$user_a_reminder_id", 1 );
 +    $m_a->submit;
 +    $m_a->text_contains(
 +        "Reminder 'user_a reminder': Status changed from 'resolved' to 'open'",
 +        'reopen user_a reminder'
 +    );
 +
 +}
 +
 +diag "set ticket owner to user_a to let user_a grant modify ticket right";
 +{
 +    $ticket->SetOwner( $user_a->id );
 +
 +    $m_a->goto_ticket( $ticket->id );
 +    $m_a->content_contains( 'New reminder:', 'can create a new reminder' );
 +    $m_a->content_like(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is still disabled"
 +    );
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->field( 'NewReminder-Subject' => "user_a from display reminder" );
 +    $m_a->submit;
 +    $m_a->text_contains( "Reminder 'user_a from display reminder': Created",
 +        'created user_a from display reminder' );
 +
 +    $m_a->follow_link_ok( { id => 'page-reminders' } );
 +    $m_a->title_is( "Reminders for ticket #" . $ticket->id );
 +    $m_a->content_contains( 'New reminder:', 'can create a new reminder' );
 +    $m_a->content_like(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is still disabled"
 +    );
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->field( 'NewReminder-Subject' => "user_a from reminders reminder" );
 +    $m_a->submit;
 +    $m_a->text_contains( "Reminder 'user_a from reminders reminder': Created",
 +        'created user_a from reminders reminder' );
 +}
 +
 +diag "grant user_a with ModifyTicket globally";
 +{
 +    ok(
 +        RT::Test->add_rights(
 +            {
 +                Principal => $user_a,
 +                Right     => [qw/ModifyTicket/],
 +            },
 +        ),
 +        'add ModifyTicket rights to user_a'
 +    );
 +
 +    $m_a->goto_ticket( $ticket->id );
 +    $m_a->content_unlike(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is enabled"
 +    );
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->tick( "Complete-Reminder-$root_reminder_id" => 1 );
 +    $m_a->submit;
 +    $m_a->text_contains(
 +        "Reminder 'root reminder': Status changed from 'new' to 'resolved'",
 +        'complete root reminder' );
 +
 +    $m_a->follow_link_ok( { id => 'page-reminders' } );
 +    $m_a->content_unlike(
 +qr!<input[^/]+name="Complete-Reminder-$root_reminder_id"[^/]+disabled="disabled"!,
 +        "root reminder checkbox is enabled"
 +    );
 +    $m_a->form_name('UpdateReminders');
 +    $m_a->untick( "Complete-Reminder-$root_reminder_id" => 1 );
 +    $m_a->submit;
 +    $m_a->text_contains(
 +        "Reminder 'root reminder': Status changed from 'resolved' to 'open'",
 +        'reopen root reminder' );
 +}
 +
diff --cc t/web/ticket_txn_content.t
index 6aa3504,06ea7e7..f7e0b6f
--- a/t/web/ticket_txn_content.t
+++ b/t/web/ticket_txn_content.t
@@@ -1,6 -1,7 +1,6 @@@
 -#!/usr/bin/perl -w
  use strict;
  
- use RT::Test tests => 39;
+ use RT::Test tests => 63;
  use File::Temp 'tempfile';
  use File::Spec;
  my ( $plain_fh, $plain_file ) =

-----------------------------------------------------------------------


More information about the Rt-commit mailing list