From: Subject: =?iso-2022-jp?B?GyRCJTclaSVQJTk7Mj5IGyhC?= Date: Wed, 18 Apr 2007 14:11:18 +0900 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_000B_01C781C3.6EFCDE20" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 This is a multi-part message in MIME format. ------=_NextPart_000_000B_01C781C3.6EFCDE20 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/syllabus2/referenceDirect.do?nologin=on&subjectID=200700006038&formatCD=1 77u/PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9u YWwvL0VOIj4NCjxIVE1MIGxhbmc9amE+PEhFQUQ+PFRJVExFPuOCt+ODqeODkOOCueWPgueFpzwv VElUTEU+DQo8TUVUQSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiPjxMSU5LIA0KaHJlZj0iaHR0cHM6Ly90Z3VsYy51LWdha3VnZWkuYWMu anAvVUkvY3NzL2NvbW1vbi90ZXh0LmNzcyIgdHlwZT10ZXh0L2NzcyANCnJlbD1zdHlsZXNoZWV0 PjxMSU5LIA0KaHJlZj0iaHR0cHM6Ly90Z3VsYy51LWdha3VnZWkuYWMuanAvVUkvY3NzL2NvbW1v bi9zeWxsYWJ1cy5jc3MiIHR5cGU9dGV4dC9jc3MgDQpyZWw9c3R5bGVzaGVldD4NCjxNRVRBIGh0 dHAtZXF1aXY9UHJhZ21hIGNvbnRlbnQ9bm8tY2FjaGU+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwg Ni4wMC4yOTAwLjMwNTkiIG5hbWU9R0VORVJBVE9SPjwvSEVBRD4NCjxCT0RZIHRleHQ9IzAwMDAw MCBiZ0NvbG9yPSNmZmZmZmYgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0wIA0Kb251bmxvYWQ9c3Vi V2luQ2xvc2UoKSBtYXJnaW5oZWlnaHQ9IjAiIG1hcmdpbndpZHRoPSIwIj4NCjxTQ1JJUFQgbGFu Z3VhZ2U9amF2YXNjcmlwdD4KPCEtLQogIGZ1bmN0aW9uIHN5bGxhYnVzQ2hpbGRPcGVuKHNlc3Np b25JRCwgdGVhY2hlckNEKSB7CiAgICB2YXIgdXJsID0gIi9zeWxsYWJ1czIvc3lsbGFidXNUZWFj aGVyRGV0YWlsLmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAiP3RlYWNoZXJDRD0iICsg dGVhY2hlckNEOwogICAgc3ViV2luZG93ID0gd2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93Jywg IndpZHRoPTY4MCwgaGVpZ2h0PTQwMCwgc2Nyb2xsYmFycz15ZXMsIHJlc2l6YWJsZT15ZXMsIHN0 YXR1cz15ZXMiKTsKICAgIHN1YldpbmRvdy5mb2N1cygpOwogIH0KLy8tLT4KPC9TQ1JJUFQ+DQoN CjxTQ1JJUFQgbGFuZ3VhZ2U9amF2YXNjcmlwdD4KPCEtLQovKioKICog44K/44Kk44OI44Or566h 55CG77yN44OX44Os44OT44Ol44O844Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN 44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBwcmV2aWV3T3BlbihzZXNzaW9uSUQsIGZvcm1h dENEKXsKCXZhciB1cmwgPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c0Zvcm1hdFByZXZpZXdJbml0LmRv O0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAiP3ByZUZvcm1hdENEPSIgKyBmb3JtYXRDRDsK CWRiQ2hpbGRPcGVuKHVybCwgJzgwMCcsICc2MDAnKTsKfQoKLyoqCiAqIOOCv+OCpOODiOODq+eu oeeQhu+8jeWJiumZpOODnOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOB sOOCjOOCiwogKi8KZnVuY3Rpb24gZGVsZXRlVGl0bGVDb25maXJtKCkgewoJaWYgKCFpc0NoZWNr ZWQoKSkgewoJCS8vIO+8keOBpOOCguODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOBquOBi+OBo+OB n+OCiWZhbHNl44KS6L+U44GZCgkJYWxlcnQoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdl XzAwMS52YWx1ZSk7CgkJcmV0dXJuIGZhbHNlOwoJfSBlbHNlIHsKCQkvLyDnorroqo3jg4DjgqTj gqLjg63jgrDjgpLooajnpLrjgZnjgosKCQlpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMy Rm9ybS5tZXNzYWdlXzAwMi52YWx1ZQoJCSAgICAgICAgICAgICAgKyAiXG4iICsgZG9jdW1lbnQu U3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMy52YWx1ZSkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0g ZWxzZSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYWN0aW9uLnZhbHVlPSJkZWxldGUiOwoJ CQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9Cn0KCi8qKgogKiDjgr/jgqTjg4jjg6vnrqHnkIbvvI3ov73l iqDjg5zjgr/jg7PjgpLjgq/jg6rjg4Pjgq/jgZfjgZ/jgajjgY3jgavlkbzjgbDjgozjgosKICov CmZ1bmN0aW9uIGNyZWF0ZVRpdGxlQ29uZmlybSgpIHsKCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0u YWN0aW9uLnZhbHVlPSJjcmVhdGUiOwp9CgovKioKICog6aCF55uu566h55CG77yN5YmK6Zmk44Oc 44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5j dGlvbiBkZWxldGVJdGVtQ29uZmlybSgpIHsKCWlmICghaXNDaGVja2VkKCkpIHsKCQkvLyDvvJHj gaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozjgabjgYTjgarjgYvjgaPjgZ/jgolmYWxzZeOCkui/lOOB mQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8wMDEudmFsdWUpOwoJCXJl dHVybiBmYWxzZTsKCX0gZWxzZSB7CgkJLy8g56K66KqN44OA44Kk44Ki44Ot44Kw44KS6KGo56S6 44GZ44KLCgkJaWYgKCFjb25maXJtKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8wMDIu dmFsdWUpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9IGVsc2UgewoJCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmFjdGlvbi52YWx1ZT0iZGVsZXRlIjsKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQp9Cgov KioKICog6aCF55uu566h55CG77yN6L+95Yqg44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf 44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBjcmVhdGVJdGVtQ29uZmlybSgpIHsK CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYWN0aW9uLnZhbHVlPSJjcmVhdGUiOwp9CgovKioKICog 56eR55uu566h55CG77yN44Ko44Kv44K744Or5Ye65Yqb44Oc44K/44Oz44KS44Kv44Oq44OD44Kv 44GX44Gf44Go44GN44Gr5ZG844Gw44KM44KLCiAqLwpmdW5jdGlvbiBkb3dubG9hZENvbmZpcm0o KSB7Cglkb2N1bWVudC5TeWxsYWJ1czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPSJkb3dubG9hZCI7 CglyZXR1cm4gZGJDc3ZDbGljaygpOwp9CgovKioKICog56eR55uu566h55CG77yN44Ko44Kv44K7 44Or5Y+W6L6844G/44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw 44KM44KLCiAqLwpmdW5jdGlvbiB1cGxvYWRDb25maXJtKHNlc3Npb25JRCkgewoJZG9jdW1lbnQu U3lsbGFidXMyRm9ybS5idXR0b25fa2luZC52YWx1ZT0idXBsb2FkIjsKCXZhciB1cmwgPSAiL1VJ L2pzcC9zdGFmZi9zeWxsYWJ1czIvU3lsbGFidXNTdWJqZWN0VXBsb2FkLmpzcDtMY1Nlc3Npb25J RD0iICsgc2Vzc2lvbklEOwoJZGJDaGlsZE9wZW4odXJsLCAnNzAwJywgJzUwMCcpOwp9CgovKioK ICog56eR55uu566h55CG77yN44Od44OD44OX44Ki44OD44OX55S76Z2i44Gu44Ko44Kv44K744Or 5Y+W6L6844G/44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM 44KLCiAqLwpmdW5jdGlvbiBwb3B1cFVwbG9hZENvbmZpcm0oc2Vzc2lvbklEKSB7CglvcGVuZXIu bG9jYXRpb24gPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c1N1YmplY3RMaXN0LmRvO0xjU2Vzc2lvbklE PSIgKyBzZXNzaW9uSUQ7CglyZXR1cm4gZGJDbGljaygpOwp9CgovKioKICog56eR55uu566h55CG 77yN5YmK6Zmk44Oc44K/44Oz44KS44Kv44Oq44OD44Kv44GX44Gf44Go44GN44Gr5ZG844Gw44KM 44KLCiAqLwpmdW5jdGlvbiBkZWxldGVTdWJqZWN0Q29uZmlybSgpIHsKCWlmICghaXNDaGVja2Vk KCkpIHsKCQkvLyDvvJHjgaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozjgabjgYTjgarjgYvjgaPjgZ/j golmYWxzZeOCkui/lOOBmQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxhYnVzMkZvcm0ubWVzc2FnZV8w MDEudmFsdWUpOwoJCXJldHVybiBmYWxzZTsKCX0gZWxzZSB7CgkJLy8g56K66KqN44OA44Kk44Ki 44Ot44Kw44KS6KGo56S644GZ44KLCgkJaWYgKCFjb25maXJtKGRvY3VtZW50LlN5bGxhYnVzMkZv cm0ubWVzc2FnZV8wMDIudmFsdWUpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9IGVsc2UgewoJCQlk b2N1bWVudC5TeWxsYWJ1czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPSJkZWxldGUiOwoJCQlyZXR1 cm4gdHJ1ZTsKCQl9Cgl9Cn0KCi8qKgogKiDjgrPjg5Tjg7zvvI/np7vli5Xjg5zjgr/jg7PjgpLj gq/jg6rjg4Pjgq/jgZfjgZ/jgajjgY3jgavlkbzjgbDjgozjgosKICogQHBhcmFtIHNlc3Npb25J RCDjgrvjg4Pjgrfjg6fjg7NJRAogKiBAcGFyYW0gYWN0aW9uIOOCs+ODlOODvO+8j+enu+WLlQog KiBAcGFyYW0gd2luZG93SGVpZ2h0IOOCteODluOCpuOCpOODs+ODieOCpuOBrumrmOOBlQogKi8K ZnVuY3Rpb24gbW92ZWNvcHlDb25maXJtKHNlc3Npb25JRCwgYWN0aW9uLCB3aW5kb3dIZWlnaHQp IHsKCWlmICghaXNDaGVja2VkKCkpIHsKCQkvLyDvvJHjgaTjgoLjg4Hjgqfjg4Pjgq/jgZXjgozj gabjgYTjgarjgYvjgaPjgZ/jgolmYWxzZeOCkui/lOOBmQoJCWFsZXJ0KGRvY3VtZW50LlN5bGxh YnVzMkZvcm0ubWVzc2FnZV8wMDEudmFsdWUpOwoJfSBlbHNlIHsKCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPWFjdGlvbjsKCQl2YXIgdXJsID0gIi9zeWxsYWJ1czIv c3lsbGFidXNUcmVlQ29weU1vdmVJbml0LmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSUQgKyAi P2FjdGlvbj0iICsgYWN0aW9uOwoJCWRiQ2hpbGRPcGVuKHVybCwgJzcwMCcsIHdpbmRvd0hlaWdo dCk7CgkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zdWJtaXQoKTsKCX0KfQoKLyoqCiAqIOeiuuWu mueKtuazgeabtOaWsOODnOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOB sOOCjOOCiwogKi8KZnVuY3Rpb24gZmluYWxpemVDb25maXJtKCkgewoJLy8g56K66KqN44OA44Kk 44Ki44Ot44Kw44KS6KGo56S644GZ44KLCglpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMy Rm9ybS5tZXNzYWdlXzAwMy52YWx1ZSkpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9IGVsc2UgewoJCWRv Y3VtZW50LlN5bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9ImZpbmFsaXplIjsKCQlyZXR1 cm4gdHJ1ZTsKCX0KfQoKLyoqCiAqIOODleOCqeODq+ODgOS4gOimp++8jeWJiumZpOODnOOCv+OD s+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24g ZGVsZXRlSW5kZXhDb25maXJtKCkgewoJaWYgKCFpc0NoZWNrZWQoKSkgewoJCS8vIO+8keOBpOOC guODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOBquOBi+OBo+OBn+OCiWZhbHNl44KS6L+U44GZCgkJ YWxlcnQoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMS52YWx1ZSk7CgkJcmV0dXJu IGZhbHNlOwoJfSBlbHNlIHsKCQkvLyDnorroqo3jg4DjgqTjgqLjg63jgrDjgpLooajnpLrjgZnj gosKCQlpZiAoIWNvbmZpcm0oZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdlXzAwMi52YWx1 ZQoJCSAgICAgICAgICAgICAgKyAiXG4iICsgZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5tZXNzYWdl XzAwMy52YWx1ZSkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0gZWxzZSB7CgkJCWRvY3VtZW50LlN5 bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9ImRlbGV0ZSI7CgkJCXJldHVybiB0cnVlOwoJ CX0KCX0KfQoKLyoqCiAqIOODleOCqeODq+ODgOS4gOimp++8jei/veWKoOODnOOCv+ODs+OCkuOC r+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24gY3JlYXRl SW5kZXhDb25maXJtKCkgewoJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5idXR0b25fa2luZC52YWx1 ZT0iY3JlYXRlIjsKCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3VibWl0KCk7Cn0KCi8qKgogKiDj g5Xjgqnjg6vjg4DkuIDopqfvvI3jg5Xjgqnjg6vjg4Dnt6jpm4bmmYLjgavlkbzjgbDjgozjgosK ICovCmZ1bmN0aW9uIGVkaXRJbmRleENvbmZpcm0oYXJnLCBpbmRleElELCBpbmRleE5hbWUpIHsK CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uYnV0dG9uX2tpbmQudmFsdWU9InVwZGF0ZSI7CglyZXR1 cm4gdHJ1ZTsKfQoKLyoqCiAqIOenkeebruOCs+ODlOODvOenu+WLleeUu+mdouOBruaxuuWumuOD nOOCv+ODs+OCkuOCr+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVu Y3Rpb24gcG9wdXBTdWJqZWN0Q29weU1vdmVDb25maXJtKGFyZywgbWVzc2FnZSkgewoJLy8g56K6 6KqN44OA44Kk44Ki44Ot44Kw44KS6KGo56S644GZ44KLCglpZiAoY29uZmlybShtZXNzYWdlKSkg ewoJCW9wZW5lci5sb2NhdGlvbiA9IGFyZzsKCQl3aW5kb3cuY2xvc2UoKTsKCX0KfQoKLyoqCiAq IOODleOCqeODq+ODgOS9nOaIkO+8j+e3qOmbhueUu+mdouOBruaxuuWumuODnOOCv+ODs+OCkuOC r+ODquODg+OCr+OBl+OBn+OBqOOBjeOBq+WRvOOBsOOCjOOCiwogKi8KZnVuY3Rpb24gaW5kZXhF ZGl0Q29uZmlybShhY3Rpb24sIG1lc3NhZ2UpIHsKCS8vIOeiuuiqjeODgOOCpOOCouODreOCsOOC kuihqOekuuOBmeOCiwoJaWYgKGNvbmZpcm0obWVzc2FnZSkpIHsKCQlkb2N1bWVudC5TeWxsYWJ1 czJGb3JtLmJ1dHRvbl9raW5kLnZhbHVlPWFjdGlvbjsKCQlkb2N1bWVudC5TeWxsYWJ1czJGb3Jt LnN1Ym1pdCgpOwoJfQp9CgovKioKICog44OB44Kn44OD44Kv44Oc44OD44Kv44K544GMMeOBpOS7 peS4iuODgeOCp+ODg+OCr+OBleOCjOOBpuOBhOOCi+OBi+iqv+OBueOCiwogKi8KZnVuY3Rpb24g aXNDaGVja2VkKCkgewoKCXZhciBpc0NoZWNrZWQgPSBmYWxzZTsKCglpZihkb2N1bWVudC5TeWxs YWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2sudHlwZSA9PSBudWxsKSB7CgkJLy8g56eR55uu44GM6KSH 5pWw44Gu5aC05ZCICgkJZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5TeWxsYWJ1czJGb3Jt LnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKyspIHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZv cm0uc3lsbGFidXNDaGVja1tpXS5jaGVja2VkKSB7CgkJCQlpc0NoZWNrZWQgPSB0cnVlOwoJCQkJ YnJlYWs7CgkJCX0KCQl9Cgl9IGVsc2UgewoJCS8vIOenkeebruOBjO+8keOBpOOBruWgtOWQiAoJ CWlmIChkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2suY2hlY2tlZCkgewoJCQlp c0NoZWNrZWQgPSB0cnVlOwoJCX0KCX0KCXJldHVybiBpc0NoZWNrZWQ7Cn0KCmZ1bmN0aW9uIGNo ZWNrQWxsKCkgewoJLy8g44GZ44G544Gm44Gu44OB44Kn44OD44Kv44Oc44OD44Kv44K544KST0ZG 44Gr44GZ44KLCglpZiAoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrQWxsLmNo ZWNrZWQgPT0gZmFsc2UpIHsKCQkvLyDpgIHkv6Hlr77osaHogIXjgYzopIfmlbDjga7loLTlkIgK CQlpZiAoZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrLnR5cGUgPT0gbnVsbCkg ewoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay5sZW5ndGg7IGkrKykgewoJCQkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0No ZWNrW2ldLmNoZWNrZWQgPSBmYWxzZTsKCQkJfQoJCS8vIOmAgeS/oeWvvuixoeiAheOBjOS4gOS6 uuOBruWgtOWQiAoJCX0gZWxzZSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay5jaGVja2VkID0gZmFsc2U7CgkJfQoJIAoJLy8g44GZ44G544Gm44Gu44OB44Kn44OD44Kv 44Oc44OD44Kv44K544KST07jgavjgZnjgosKCX0gZWxzZSB7CgkJLy8g6YCB5L+h5a++6LGh6ICF 44GM6KSH5pWw44Gu5aC05ZCICgkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVjay50eXBlID09IG51bGwpIHsKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5TeWxs YWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKyspIHsKCQkJCWlmIChkb2N1bWVudC5T eWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2tbaV0uZGlzYWJsZWQgPT0gZmFsc2UpIHsKCQkJCQlk b2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2tbaV0uY2hlY2tlZCA9IHRydWU7CgkJ CQl9CgkJCX0KCQkJLy8g6YCB5L+h5a++6LGh6ICF44GM5LiA5Lq644Gu5aC05ZCICgkJfSBlbHNl IHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVjay5kaXNhYmxlZCA9 PSBmYWxzZSkgewoJCQkJZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrLmNoZWNr ZWQgPSB0cnVlOwoJCQl9CgkJfQoJfQp9CgpmdW5jdGlvbiBjaGVja0FsbDIoKSB7CgkvLyDpgIHk v6Hlr77osaHjgYzopIfmlbDjga7loLTlkIgKCWlmIChkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5 bGxhYnVzQ2hlY2sudHlwZSA9PSBudWxsKSB7CgkJZmxhZyA9IHRydWU7CgkJZm9yICh2YXIgaSA9 IDA7IGkgPCBkb2N1bWVudC5TeWxsYWJ1czJGb3JtLnN5bGxhYnVzQ2hlY2subGVuZ3RoOyBpKysp IHsKCQkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja1tpXS5kaXNhYmxl ZCA9PSBmYWxzZQoJCQkJJiYgZG9jdW1lbnQuU3lsbGFidXMyRm9ybS5zeWxsYWJ1c0NoZWNrW2ld LmNoZWNrZWQgPT0gZmFsc2UpIHsKCQkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXND aGVja0FsbC5jaGVja2VkID0gZmFsc2U7CgkJCQlmbGFnID0gZmFsc2U7CgkJCQlicmVhazsKCQkJ fQoJCX0KCQlpZiAoZmxhZyA9PSB0cnVlKSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3ls bGFidXNDaGVja0FsbC5jaGVja2VkID0gdHJ1ZTsKCQl9CgkvLyDpgIHkv6Hlr77osaHjgYzkuIDk urrjga7loLTlkIgKCX0gZWxzZSB7CgkJLy8gT0ZG44Gr44GV44KM44Gf44KJT0ZG44Gr44GZ44KL CgkJaWYgKGRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVjay5jaGVja2VkID09IGZh bHNlKSB7CgkJCWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja0FsbC5jaGVja2Vk ID0gZmFsc2U7CgkJLy8gT07jgavjgZXjgozjgZ/jgolPTuOBq+OBmeOCiwoJCX0gZWxzZSB7CgkJ CWRvY3VtZW50LlN5bGxhYnVzMkZvcm0uc3lsbGFidXNDaGVja0FsbC5jaGVja2VkID0gdHJ1ZTsK CQl9Cgl9Cn0KCnZhciBjaGlsZFdpbmRvdzsKLyoqCiAqIOWtkOeUu+mdouOCkumWieOBmOOCiwog Ki8KZnVuY3Rpb24gc3ViV2luQ2xvc2UoKSB7CiAgICBpZiAoY2hpbGRXaW5kb3cgIT0gbnVsbCkg ewogICAgICAgIGNoaWxkV2luZG93LmNsb3NlKCk7CiAgICB9Cn0KLyoqCiAqIOWIpeeUu+mdouOB p+WPgueFp1VSTOeUu+mdouOCkuihqOekuuOBmeOCiwogKi8KZnVuY3Rpb24gb3BlblVybFJlZmVy ZW5jZVdpbmRvdyhzZXNzaW9uSUQsIHN1YmplY3RJRCwgZm9ybWF0Q29kZSkgewoKICAgIHZhciB1 cmwgPSAiL3N5bGxhYnVzMi9zeWxsYWJ1c1JlZmVyZW5jZURpc3BhdGNoLmRvO0xjU2Vzc2lvbklE PSIgKyBzZXNzaW9uSUQgKyAiP2J1dHRvbl9raW5kPXVybCZzdWJqZWN0SUQ9IiArIHN1YmplY3RJ RCArICImZm9ybWF0Q29kZT0iICsgZm9ybWF0Q29kZTsKICAgIGNoaWxkID0gZGJDaGlsZE9wZW4o dXJsLCAnNjUwJywgJzI1MCcpOwoJcmV0dXJuIGZhbHNlOwp9CgovLy0tPgo8L1NDUklQVD4NCg0K PFRBQkxFIGNlbGxTcGFjaW5nPTEwIGNlbGxQYWRkaW5nPTAgd2lkdGg9IjEwMCUiIGJvcmRlcj0w Pg0KICA8VEJPRFk+DQogIDxUUj4NCiAgICA8VEQgY2xhc3M9dHh0MTIgY29sU3Bhbj0yPjxJTUcg DQogICAgICBzcmM9Imh0dHBzOi8vdGd1bGMudS1nYWt1Z2VpLmFjLmpwL1VJL2ltYWdlL3N0dWRl bnQvc3lsbGFidXMyL3RfZWRpdF9zeWxsYWJ1c3JlZmVyZW5jZTIuZ2lmO0xjU2Vzc2lvbklEPTk2 OVFHbHlkU3hmQnB6aGhMcnQ4MTFwTjl3ZHJYMyExNTM3MDQyMjgwIj4gDQogICAgPC9URD48L1RS Pg0KICA8VFI+DQogICAgPFREIGNsYXNzPXR4dDEyIHZBbGlnbj10b3A+DQogICAgICA8VEFCTEUg Y2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBiZ0NvbG9yPSM5OTk5OTkg DQogICAgICAgIGJvcmRlcj0xPjxUQk9EWT4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4N CiAgICAgICAgICA8VEQ+DQogICAgICAgICAgICA8VEFCTEUgY2VsbFNwYWNpbmc9MTAgY2VsbFBh ZGRpbmc9MCBib3JkZXI9MD4NCiAgICAgICAgICAgICAgPFRCT0RZPg0KICAgICAgICAgICAgICA8 VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcD7jgr/jgqTjg4jjg6vj gIw8Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNvbG9yPSNmZjAwMDA+PEI+77yS77yQ77yQ77yX 5bm05bqm44K344Op44OQ44K5PC9CPjwvRk9OVD7jgI3jgIHjg5Xjgqnjg6vjg4DjgIw8Rk9OVCAN CiAgICAgICAgICAgICAgICAgIGNvbG9yPSNmZjAwMDA+PEI+77yS77yQ77yQ77yX5bm05bqm44K3 44Op44OQ44K5Jm5ic3A777yNJm5ic3A75oOF5aCx5pWZ6IKyPC9CPjwvRk9OVD7jgI08QlI+44K3 44Op44OQ44K544Gu6Kmz57Sw44Gv5Lul5LiL44Go44Gq44KK44G+44GZ44CCIA0KICAgICAgICAg ICAgICAgIDwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJM RT48L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjxTUEFOIA0KaWQ9dGltZXJEaXNwbGF5IHN0eWxl PSJGT05ULVNJWkU6IDBweDsgZm9udC1jb2xvcjogd2hpdGUiPjwvU1BBTj4NCjxTQ1JJUFQgbGFu Z3VhZ2U9amF2YXNjcmlwdD4KPCEtLQovKgogKiDjg5XjgqHjgqTjg6vlkI0gICBsaW5rQ29udHJv bC5qcwogKiDplovnmbrjgrfjgrnjg4bjg6AgTGl2ZUNhbXB1cyBXZWIKICog6JGX5L2c5qipICAg ICAgIENvcHlyaWdodChjKTIwMDMgTlRUREFUQSBLWVVTSFUKICog5Lya56S+5ZCNICAgICAgICjm oKopTlRU44OH44O844K/5Lmd5beeCiAqICRJZDoganNfbGlua0NvbnRyb2wuanNwLHYgMS4yIDIw MDQvMDkvMjQgMTA6NTQ6NDIgdGVyYWRva24gRXhwICQKICog5bGl5q20CiAqIDIwMDMvMDQvMDUg dGFuYWtha3og5Yid54mICiAqLwoKLyoqCiAqIOeUu+mdoumBt+enuwogKgogKiBAcGFyYW0gcyDp gbfnp7vlhYhVUkwKICovCiAgZnVuY3Rpb24gbG9jYXRlUGFnZVRvKHMpIHsKICAgIHBhcmVudC5s b2NhdGlvbi5ocmVmID0gczsKICB9CgovKioKICog44Od44OD44OX44Ki44OD44OX55S76Z2i44Gu 6KGo56S6CiAqCiAqIEBwYXJhbSBzIOmBt+enu+WFiFVSTAogKiBAcGFyYW0gbiDjg53jg4Pjg5fj gqLjg4Pjg5fnlLvpnaLorZjliKXlkI3np7AKICogQHBhcmFtIHcg44Od44OD44OX44Ki44OD44OX 55S76Z2i5qiq5bmFCiAqIEBwYXJhbSBoIOODneODg+ODl+OCouODg+ODl+eUu+mdoumrmOOBlQog Ki8KICBmdW5jdGlvbiBwb3B1cFBhZ2VUbyhzLCBuLCB3LCBoKSB7CiAgICBwb3B1cFdpbmRvdyA9 IHdpbmRvdy5vcGVuKHMsIG4sICd3aWR0aD0nICsgdyArICcsaGVpZ2h0PScgKyBoICsgJyxzY3Jv bGxiYXJzPXllcycpOwogICAgcG9wdXBXaW5kb3cuZm9jdXMoKTsKICB9CgovKioKICog6IOM5pmv 6Imy44Gu5aSJ5pu0CiAqCiAqIEBwYXJhbSB0IOWkieabtOWvvuixoeOCqOODrOODoeODs+ODiAog KiBAcGFyYW0gYyDlpInmm7Tlvozjga7og4zmma/oibIKICovCiAgZnVuY3Rpb24gc2V0QmdDb2xv cih0LCBjKSB7CiAgICB0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGM7CiAgfQovLy0tPgo8L1ND UklQVD4NCg0KPFNDUklQVCBsYW5ndWFnZT1qYXZhc2NyaXB0Pgo8IS0tCi8qKgogKiDjgq3jg7zj g5zjg7zjg4njgIHjg57jgqbjgrnjgavjgojjgovlhaXlipvjgafjga7nlLvpnaLpgbfnp7vjgpLl iLblvqHjgZnjgovjgZ/jgoHjga5qYXZhc2NyaXB0CiAqLwogCi8qKiDjgq3jg7zjgrPjg7zjg4nj gpLliKTmlq3jgZnjgovjgZ/jgoHjga7jg5Xjg6njgrAgKi8KZG9jdW1lbnQub25rZXlkb3duID0g a2V5aGFuZGxlcjsKLyoqIOODnuOCpuOCueOCr+ODquODg+OCr+OCkuaknOWHuuOBl+WPs+OCr+OD quODg+OCr+OCkuemgeatouOBmeOCiyAqLwpkb2N1bWVudC5vbmNvbnRleHRtZW51ID0gb25Db250 ZXh0OwovKiog44Oe44Km44K544Ob44Kk44O844Or44GM5L2/55So44GV44KM44Gf44GL44Gp44GG 44GL44KS5Yik5a6a44GZ44KLICovCmRvY3VtZW50Lm9ubW91c2V3aGVlbCA9IHdoZWVsOwoKdmFy IHN1Ym1pdEZsYWcgPSBmYWxzZTsKCi8qKgogKiDjg57jgqbjgrnjg5vjgqTjg7zjg6vjgavjgojj govlhaXlipvmmYLjga7jgqTjg5njg7Pjg4jlh6bnkIbjgpLooYzjgYYKICovCmZ1bmN0aW9uIHdo ZWVsKCkgewoKCS8vIOODluODqeOCpuOCtuOBrueoruWIpeOCkuWPluW+lwoJdmFyIGJyb3dzZXIg PSBuYXZpZ2F0b3IuYXBwTmFtZTsKCgkvLyDjg5bjg6njgqbjgrbjgYxJbnRlcm5ldCBFeHBsb3Jl ciDjga7loLTlkIgKCWlmIChicm93c2VyLmluZGV4T2YoIk1pY3Jvc29mdCIpID49IDApIHsKCQkv LyDjgrfjg5Xjg4jjgq3jg7zjgajlkIzmmYLmirzjgZfjga7mmYLjga/liLblvqHjgpLooYzjgYYK CQlpZiAod2luZG93LmV2ZW50LnNoaWZ0S2V5KSB7CgkJCXdpbmRvdy5ldmVudC5jYW5jZWxCdWJi bGUgPSB0cnVlOwoJICAgIHdpbmRvdy5ldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJCX0KCX0K CgkvLyDjg43jg4Pjg4jjgrnjgrHjg7zjg5fjga7loLTlkIjjga8gc2hpZnQr44Ob44Kk44O844Or 44Oe44Km44K5IOOBp+mBt+enu+OBl+OBquOBhOOBn+OCgeWvvuW/nOOBquOBlwoKfQoKLyoqCiAq IOOCreODvOODnOODvOODieOCiOOCi+WFpeWKm+aZguOBruOCpOODmeODs+ODiOWHpueQhuOCkuih jOOBhgogKi8KZnVuY3Rpb24ga2V5aGFuZGxlcihlKSB7CgkJCgkJLy8g44OW44Op44Km44K244Gu 56iu5Yil44KS5Y+W5b6XCgkJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCQkKCQkv LyDjg5bjg6njgqbjgrbjgYxJbnRlcm5ldCBFeHBsb3JlciDjga7loLTlkIgKCQkvLyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyBJbnRlcm5ldEV4cGxvcmVyICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCgkJaWYgKGJyb3dzZXIuaW5kZXhPZigiTWljcm9zb2Z0IikgPj0gMCkgewoJCQkv LyDmirzjgZXjgozjgZ/jgq3jg7zjgYxlbnRlcigxMynjga7mmYIKCQkJaWYgKHdpbmRvdy5ldmVu dC5rZXlDb2RlID09IDEzKXsKCQkJCQkvLyDnmbrnlJ/jgZfjgZ/jgqTjg5njg7Pjg4jjgpLnhKHl irnjgajjgZnjgovvvIjjgrXjg5bjg5/jg4Pjg4jjga7liLblvqHvvIkKCQkJCQlpZihldmVudC5z cmNFbGVtZW50LnR5cGUgPT0gInRleHQiIHx8IGV2ZW50LnNyY0VsZW1lbnQudHlwZSA9PSAiZmls ZSIgfHwgZXZlbnQuc3JjRWxlbWVudC50eXBlID09IG51bGwgfHwgZXZlbnQuc3JjRWxlbWVudC50 eXBlID09ICJjaGVja2JveCIpewoJICAgICAgICAJd2luZG93LmV2ZW50LnJldHVyblZhbHVlID0g ZmFsc2U7CgkJCQkJfQoJICAgIH0KCgkgICAgLy8g5oq844GV44KM44Gf44Kt44O844GMRjUoMTE2 KeOBruaZggoJCQlpZiAod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTE2KXsKCQkJCQkvLyDjgq3j g7zjgrPjg7zjg4njgpI444Gr5pu444GN5o+b44GI5YWl5Yqb44KS54Sh5Yq544Go44GZ44KLCgkJ CQkJd2luZG93LmV2ZW50LmtleUNvZGUgPSA4OwoJCQkJCXdpbmRvdy5ldmVudC5jYW5jZWxCdWJi bGUgPSB0cnVlOwoJICAgICAgICB3aW5kb3cuZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTsKCSAg ICAgICAgcmV0dXJuIGZhbHNlOwoJICAgIH0KCQkJCgkJCS8vIOaKvOOBleOCjOOBn+OCreODvOOB jOW3pigzNynjgIHlj7MoMzkp44Gu5pmCCgkJCWlmICh3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAz NyB8fCB3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAzOSl7CgkgICAgICAgIC8vIEFsdOOCreODvOOB jOaKvOOBleOCjOOBpuOBhOOCi+OBi+ODgeOCp+ODg+OCr+OCkuihjOOBhgoJICAgICAgICBpZiAo d2luZG93LmV2ZW50LmFsdEtleSl7CgkJCQkJCWlmICh3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAz NykgewoJCQkJCQkJYWxlcnQoJ+OCreODvOODnOODvOODieOBq+OCiOOCi+aIu+OCi+WHpueQhuOB r+WHuuadpeOBvuOBm+OCk+OAgicpOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJYWxlcnQoJ+OCreOD vOODnOODvOODieOBq+OCiOOCi+mAsuOCgOWHpueQhuOBr+WHuuadpeOBvuOBm+OCk+OAgicpOwoJ CQkJCQl9CgkJCQkJCS8vIOaKvOOBleOCjOOBpuOBhOOCjOOBsOWFpeWKm+OCkueEoeWKueOBq+OB meOCiwoJCQkJCQl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsKCSAgICAgICAgCXdp bmRvdy5ldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJICAgICAgICAJcmV0dXJuIGZhbHNlOwoJ ICAgICAgICB9CgkgICAgfQoKCQkJLy8g5oq844GV44KM44Gf44Kt44O844GMQmFja3NwYWNlKDgp 44Gu5pmCCgkgICAgaWYgKHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDgpIHsKCSAgICAgICAgaWYo ZXZlbnQuc3JjRWxlbWVudC50eXBlICE9ICJ0ZXh0IiAmJiBldmVudC5zcmNFbGVtZW50LnR5cGUg IT0gInRleHRhcmVhIiAmJiBldmVudC5zcmNFbGVtZW50LnR5cGUgIT0gInBhc3N3b3JkIiAmJiBl dmVudC5zcmNFbGVtZW50LnR5cGUgIT0gImZpbGUiKXsKCSAgICAgICAgCS8vIOOCpOODmeODs+OD iOOBrueZuueUn+WFg+OBjOODhuOCreOCueODiOODleOCo+ODvOODq+ODieOBp+OBquOBhOOBqOOB jeOBr+ODkOODg+OCr+OCueODmuODvOOCuQoJICAgICAgICAJLy8g5LiN5Y+v44Gr44GZ44KLCgkg ICAgICAgIAl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsKCSAgICAgICAgCXdpbmRv dy5ldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJICAgICAgICAJcmV0dXJuIGZhbHNlOwoJICAg IAkJfQoJCQl9CgkJLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTmV0U2NhcGUgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCQl9IGVsc2UgewoJCQkvLyDmirzjgZXjgozjgZ/jgq3j g7zjgYxlbnRlcigxMynjga7mmYIKCQkJaWYgKGUud2hpY2ggPT0gMTMpIHsKCQkJCS8vIOeZuueU n+OBl+OBn+OCpOODmeODs+ODiOOCkueEoeWKueOBqOOBmeOCi++8iOOCteODluODn+ODg+ODiOOB ruWItuW+oe+8iQoJCQkJaWYgKGUudGFyZ2V0LnR5cGUgPT0gInRleHQiIHx8IGUudGFyZ2V0LnR5 cGUgPT0gImZpbGUiIHx8IGUudGFyZ2V0LnR5cGUgPT0gbnVsbCB8fCBlLnRhcmdldC50eXBlID09 ICJjaGVja2JveCIpIHsKCQkJCQkvLyDjgZPjgZPjgafjgqTjg5njg7Pjg4jjgpLjgq3jg6Pjg7Pj grvjg6vjgZnjgozjgbDjgojjgYTjgYzjg43jg4Pjg4jjgrnjgrHjg7zjg5fjgafjga/mnKrlrp/o o4UKCQkJCQlzdWJtaXRGbGFnID0gZmFsc2U7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQogICAg CX0KCgkJCS8vIOaKvOOBleOCjOOBn+OCreODvOOBjEY1KDExNinjga7mmYIKCQkJaWYgKGUud2hp Y2ggPT0gMTE2KXsKCQkJCQkvLyDjgq3jg7zjgrPjg7zjg4njgpI444Gr5pu444GN5o+b44GI5YWl 5Yqb44KS54Sh5Yq544Go44GZ44KLCgkJCQkJZS53aGljaCA9IDg7CgkgICAgICAgIC8vIOOBk+OB k+OBp+OCpOODmeODs+ODiOOCkuOCreODo+ODs+OCu+ODq+OBmeOCjOOBsOOCiOOBhOOBjOODjeOD g+ODiOOCueOCseODvOODl+OBp+OBr+acquWun+ijhQoJCQkJCXJldHVybiBmYWxzZTsKCSAgICB9 CgkJCQoJCQkvLyDmirzjgZXjgozjgZ/jgq3jg7zjgYzlt6YoMzcp44CB5Y+zKDM5KeOBruaZggoJ CQlpZiAoZS53aGljaCA9PSAzNyB8fCBlLndoaWNoID09IDM5KXsKCSAgICAgICAgLy8g44GT44GT 44Gn44Kk44OZ44Oz44OI44KS44Kt44Oj44Oz44K744Or44GZ44KM44Gw44KI44GE44GM44ON44OD 44OI44K544Kx44O844OX44Gn44Gv5pyq5a6f6KOFCgkJCQkJcmV0dXJuIGZhbHNlOwoJICAgICAg ICAKCSAgICB9CgoJCQkvLyDmirzjgZXjgozjgZ/jgq3jg7zjgYxCYWNrc3BhY2UoOCnjga7mmYIK CSAgICBpZiAoZS53aGljaCA9PSA4KSB7CgkgICAgICAgIGlmKGUudGFyZ2V0LnR5cGUgIT0gInRl eHQiICYmIGUudGFyZ2V0LnR5cGUgIT0gInRleHRhcmVhIiAmJiBlLnRhcmdldC50eXBlICE9ICJw YXNzd29yZCIgJiYgZS50YXJnZXQudHlwZSAhPSAiZmlsZSIpewoJICAgICAgICAJLy8g44Kk44OZ 44Oz44OI44Gu55m655Sf5YWD44GM44OG44Kt44K544OI44OV44Kj44O844Or44OJ44Gn44Gq44GE 44Go44GN44Gv44OQ44OD44Kv44K544Oa44O844K5CgkgICAgICAgIAkvLyDkuI3lj6/jgavjgZnj gosKCSAgICAgICAgCS8vIOOBk+OBk+OBp+OCpOODmeODs+ODiOOCkuOCreODo+ODs+OCu+ODq+OB meOCjOOBsOOCiOOBhOOBjOODjeODg+ODiOOCueOCseODvOODl+OBp+OBr+acquWun+ijhQoJCQkJ CQlyZXR1cm4gZmFsc2U7CgkgICAgCQl9CgkJCX0KCgkJfQp9CgovKioKICog5Y+z44Kv44Oq44OD 44Kv5pmC44Gu44Oh44OL44Ol44O844KS6KGo56S644GX44Gq44GE44KI44GG44Gr44GZ44KLCiAq LwpmdW5jdGlvbiBvbkNvbnRleHQoZSl7CgkJLy8g44OW44Op44Km44K244Gu56iu5Yil44KS5Y+W 5b6XCgkJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCQkvLyDjg5bjg6njgqbjgrbj gYxJbnRlcm5ldCBFeHBsb3JlciDjga7loLTlkIgKCQkvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyBJbnRlcm5ldEV4cGxvcmVyICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkJaWYg KGJyb3dzZXIuaW5kZXhPZigiTWljcm9zb2Z0IikgPj0gMCkgewoJCQkvLyBzNDAyMDHjgahnNDAy MDHjga7jg4Djgqbjg7Pjg63jg7zjg4njg6rjg7Pjgq/jga7mmYLjga7jgb/lj7Pjgq/jg6rjg4Pj gq/jgpLlj6/og73jgajjgZnjgosKCQkJLy8g5ZG844Gw44KM44Gm44GE44KLamF2YXNjcmlwdOWQ jeOBp+WIpOaWrQoJCQl2YXIgZWxlbWVudCA9IGV2ZW50LnNyY0VsZW1lbnQubmFtZTsKCQkJaWYg KGVsZW1lbnQgIT0gbnVsbCkgewoJCQkJaWYgKGVsZW1lbnQuaW5kZXhPZigiZG93bkxvYWRGaWxl IikpIHsKCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCX0KCQkJfQoKCQkJLy8g5Y+z44Kv44Oq44OD44Kv 44GM5oq85LiL44GV44KM44Gf44Go44GN44Gu44Kq44OW44K444Kn44Kv44OI44Gu56iu5Yil44Gr 44KI44KK5Yik5pat44KS6KGM44GGCgkgICAgLy8gdGV4dCx0ZXh0YXJlYSxwYXNzd29yZCxmaWxl IOWGheOBruOBqOOBjeOBr+WPs+OCr+ODquODg+OCr+OCkuioseWPr+OBmeOCiwoJICAgIGlmKGV2 ZW50LnNyY0VsZW1lbnQudHlwZSAhPSAidGV4dCIgJiYgZXZlbnQuc3JjRWxlbWVudC50eXBlICE9 ICJ0ZXh0YXJlYSIgJiYgZXZlbnQuc3JjRWxlbWVudC50eXBlICE9ICJwYXNzd29yZCIgJiYgZXZl bnQuc3JjRWxlbWVudC50eXBlICE9ICJmaWxlIil7CgkgICAgICAgIHJldHVybiBmYWxzZTsKCSAg ICB9IGVsc2V7CgkgICAgICAgIHJldHVybiB0cnVlOwoJICAgIH0KCQkvLyDjg5bjg6njgqbjgrbj gYxOZXRTY2FwZeOBp+OBguOCi+OBqOOBjQoJCS8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIE5l dFNjYXBlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkJfSBlbHNlIHsKCQkJLy8g 5Y+z44Kv44Oq44OD44Kv44GM5oq85LiL44GV44KM44Gf44Go44GN44Gu44Kq44OW44K444Kn44Kv 44OI44Gu56iu5Yil44Gr44KI44KK5Yik5pat44KS6KGM44GGCgkgICAgLy8gdGV4dCx0ZXh0YXJl YSxwYXNzd29yZCxmaWxlIOWGheOBruOBqOOBjeOBr+WPs+OCr+ODquODg+OCr+OCkuioseWPr+OB meOCiwoJCQlpZiAoZS50YXJnZXQudHlwZSAhPSAidGV4dCIgJiYgZS50YXJnZXQudHlwZSAhPSAi dGV4dGFyZWEiICYmIGUudGFyZ2V0LnR5cGUgIT0gInBhc3N3b3JkIiAmJiBlLnRhcmdldC50eXBl ICE9ICJmaWxlIikgewoJICAgICAgICByZXR1cm4gZmFsc2U7CgkgICAgfSBlbHNlewoJICAgICAg ICByZXR1cm4gdHJ1ZTsKCSAgICB9IAoJCX0KfQovLy0tPgo8L1NDUklQVD4NCg0KPFNDUklQVCBs YW5ndWFnZT1qYXZhc2NyaXB0Pgo8IS0tCi8qCiAqIOWNsOWIt+OBruODgOOCpOOCouODreOCsOOC kuihqOekuuOBmeOCi+WJjeOBq+eiuuiqjeODgOOCpOOCouODreOCsOOCkuihqOekuuOBmeOCiwog Ki8KZnVuY3Rpb24gcHJpbnRNZXNzYWdlKCkgewoJaWYgKGNvbmZpcm0oIuW9k+WNsOWIt+apn+iD veOBr+ODluODqeOCpuOCtuOBruWNsOWIt+apn+iDveOBp+OBmeOAguOCiOOCjeOBl+OBkeOCjOOB sOOAjO+8r++8q+OAjeOCkuOCr+ODquODg+OCr+OBl+OBpuOBj+OBoOOBleOBhOOAglxu4oC7TWFj 56uv5pyr44Gn44Gv44OA44Kk44Ki44Ot44Kw44GM6KGo56S644GV44KM44Gq44GE5aC05ZCI44GM 44GC44KL44Gu44Gn44CB44OE44O844Or44OQ44O844KI44KK5Y2w5Yi344KS6KGM44Gj44Gm44GP 44Gg44GV44GE44CCIikpIHsKCQlqYXZhc2NyaXB0OndpbmRvdy5wcmludCgpOwoJfQp9Ci8vLS0+ CjwvU0NSSVBUPg0KDQo8U0NSSVBUIGxhbmd1YWdlPWphdmFzY3JpcHQ+CjwhLS0KLyoqCiAqIOWk mumHjemAgeS/oeWItuW+oeOCkuihjOOBhuOAggogKi8KaXNTdWJtaXQgPSBmYWxzZTsKaXNDaGls ZE9wZW4gPSBmYWxzZTsKaXNQZGZTdWJtaXQgPSBmYWxzZTsKaXNDc3ZTdWJtaXQgPSBmYWxzZTsK aXNMb2FkID0gZmFsc2U7CnZhciBwZGZOYW1lID0gJyc7CgpmdW5jdGlvbiBjaGVja1N1Ym1pdCgp IHsKCWlmIChzdWJtaXRGbGFnID09IGZhbHNlKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQp9CgpmdW5j dGlvbiBkYkNsaWNrKCkgewoJcmV0dXJuIGRiUHJpbnRDbGljaygnc3VibWl0Jyk7Cn0KCmZ1bmN0 aW9uIGRiQ2hpbGRPcGVuKHVybCwgd2lkdGgsIGhlaWdodCkgewoJc3VibWl0RmxhZyA9IHRydWU7 CglpZiAoIWlzQ2hpbGRPcGVuKSB7CgkJaXNDaGlsZE9wZW4gPSB0cnVlOwoJCWNoaWxkV2luZG93 ID0gd2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93JywgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVp Z2h0PScgKyBoZWlnaHQgKyAnLCBzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgc3RhdHVz PXllcycpOwoJCWNoaWxkV2luZG93LmZvY3VzKCk7Cgl9IGVsc2UgewoJCS8vIFNhZmFyaTEuMOWv vuW/nAoJCWlmKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignU2FmYXJpLzg1JykgIT0gLTEp ewoJCQkvLyBTYWZhcmkxLjDjgafjga93aW5kb3cuY2xvc2Vk44KS6KqN6K2Y44GZ44KL44Gu44Gr 5pmC6ZaT44GM44GL44GL44KL44Gf44KB44CB5a2Q44Km44Kj44Oz44OJ44Km44GM6ZaL44GE44Gm 44GE44Gm44KC5LiK5pu444GN44GZ44KLCgkJCWNoaWxkV2luZG93ID0gd2luZG93Lm9wZW4odXJs LCAnc3ViV2luZG93JywgJ3dpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAn LCBzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcycpOwoJCQljaGlsZFdpbmRvdy5mb2N1cygp OwoJCS8vIFNhZmFyaTEuMOS7peWklgoJCX0gZWxzZSB7CgkJCWlmIChjaGlsZFdpbmRvdy5jbG9z ZWQpIHsKCQkJCWNoaWxkV2luZG93ID0gd2luZG93Lm9wZW4odXJsLCAnc3ViV2luZG93JywgJ3dp ZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLCBzY3JvbGxiYXJzPXllcywg cmVzaXphYmxlPXllcycpOwoJCQkJY2hpbGRXaW5kb3cuZm9jdXMoKTsKCQkJfSBlbHNlIHsKCQkJ CWFsZXJ0KCLlrZDjgqbjgqPjg7Pjg4njgqbjgYzml6LjgavplovjgYTjgabjgYTjgb7jgZnjgIIi KTsKCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gZGJMaW5rQ2xpY2soYXJnKSB7CgoJc3VibWl0Rmxh ZyA9IHRydWU7CgkvLyDnlLvpnaLjgYzlrozlhajjgavjg63jg7zjg4njgZfliIfjgozjgabjgYTj garjgYTloLTlkIjjgIFzdWJtaXTlh6bnkIbjgpLooYzjgo/jgZvjgarjgYQKCWlmKGlzTG9hZCkg ewoJCS8vIOaXouOBq+ODnOOCv+ODs+aTjeS9nOOBjOihjOOCj+OCjOOBpuOBhOOCi+WgtOWQiOOA gXN1Ym1pdOWHpueQhuOCkuihjOOCj+OBm+OBquOBhAoJCWlmICghaXNTdWJtaXQpIHsKCQkJaXNT dWJtaXQgPSB0cnVlOwogICAgCQlkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gYXJnOwoJCX0KCX0K fQoKZnVuY3Rpb24gZGJDc3ZDbGljaygpIHsKCXN1Ym1pdEZsYWcgPSB0cnVlOwoJLy8g44OV44Kh 44Kk44Or5Ye65Yqb44Oc44K/44Oz44GM5oq844GV44KM44Gf5aC05ZCICglpZiAoaXNDc3ZTdWJt aXQpIHsKCQlpZiAoY29uZmlybSgi5YaN5bqm44CB44OV44Kh44Kk44Or5Ye65Yqb5Yem55CG44KS 6KGM44GE44G+44GZ44GL77yfIikpIHsKCQkJcmV0dXJuIHRydWU7CgkJfSBlbHNlIHsKCQkJcmV0 dXJuIGZhbHNlOwoJCX0KCX0gZWxzZSB7CgkJaXNDc3ZTdWJtaXQgPSB0cnVlOwoJCXJldHVybiB0 cnVlOwoJfQp9CgoKZnVuY3Rpb24gZGJQcmludENsaWNrX1NlcnZlckRMKGFyZykgewoKCXN1Ym1p dEZsYWcgPSB0cnVlOwoJLy8g5Y2w5Yi344Oc44K/44Oz44Gu77yS5bqm5oq844GX44Gr44Gv44Ki 44Op44O844OI44Oh44OD44K744O844K444KS6KGo56S644GZ44KLCglpZiAoaXNQZGZTdWJtaXQp IHsKCQlhbGVydCgi54++5Zyo5Y2w5Yi35Yem55CG5Lit44Gn44GZ44CC44GX44Gw44KJ44GP44GK 5b6F44Gh44GP44Gg44GV44GE44CCIik7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCS8vIOWNsOWIt+OD nOOCv+ODs+OBjOaKvOOBleOCjOOBn+WgtOWQiOOAgeWNsOWIt+Wun+ihjOS4reODleODqeOCsOOC kuOAjHRydWXjgI3jgavoqK3lrprjgZnjgosKCWlmIChhcmcgPT0gJ3ByaW50JykgewoJCWlzUGRm U3VibWl0ID0gdHJ1ZTsKCX0KCgkvLyDnlLvpnaLjgYzlrozlhajjgavjg63jg7zjg4njgZfliIfj gozjgabjgYTjgarjgYTloLTlkIjjgIFzdWJtaXTlh6bnkIbjgpLooYzjgo/jgZvjgarjgYQKCWlm KCFpc0xvYWQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJLy8g5pei44Gr44Oc44K/44Oz5pON5L2c 44GM6KGM44KP44KM44Gm44GE44KL5aC05ZCI44CBc3VibWl05Yem55CG44KS6KGM44KP44Gb44Gq 44GECglpZiAoaXNTdWJtaXQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9Cglpc1N1Ym1pdCA9IHRydWU7 CglyZXR1cm4gdHJ1ZTsKfQoKCmZ1bmN0aW9uIGRiUHJpbnRDbGljayhhcmcsIGVsbSwgYnV0dG9u TmFtZSwgYnV0dG9uVmFsdWUpIHsKCXN1Ym1pdEZsYWcgPSB0cnVlOwoJLy8g5Y2w5Yi344Oc44K/ 44Oz44Gu77yS5bqm5oq844GX44Gr44Gv44Ki44Op44O844OI44Oh44OD44K744O844K444KS6KGo 56S644GZ44KLCglpZiAoaXNQZGZTdWJtaXQpIHsKCQlhbGVydCgi54++5Zyo5Y2w5Yi35Yem55CG 5Lit44Gn44GZ44CC44GX44Gw44KJ44GP44GK5b6F44Gh44GP44Gg44GV44GE44CCIik7CgkJcmV0 dXJuIGZhbHNlOwoJfQoKCS8vIOWNsOWIt+ODnOOCv+ODs+OBjOaKvOOBleOCjOOBn+WgtOWQiOOA geWNsOWIt+Wun+ihjOS4reODleODqeOCsOOCkuOAjHRydWXjgI3jgavoqK3lrprjgZnjgosKCWlm IChhcmcgPT0gJ3ByaW50JykgewoJCQoJCWlmIChhcmd1bWVudHMubGVuZ3RoID09ICcxJykgewoJ CQlyZXR1cm4gZGJQcmludENsaWNrX1NlcnZlckRMKGFyZyk7CgkJfSBlbHNlIHsKCQkKCQkJCgkJ CS8vIOW4s+elqOOCpOODoeODvOOCuOOBjGpzcOWun+ihjOe1kOaenOOBruS7o+OCj+OCiuOBq+i/ lOWNtOOBleOCjOOCi+OCiOOBhuOBq+OBquOCi+OBn+OCge+8jAoJCQkvLyBQREbooajnpLrnlKjj gqbjgqTjg7Pjg4njgqbjgpLplovjgY3vvIzjgZPjga7jgqbjgqTjg7Pjg4njgqbjgpLjgr/jg7zj grLjg4Pjg4jjgavjgZfjgabjg5Xjgqnjg7zjg6DjgpLpgIHkv6HjgZnjgosKCQkJaWYgKGVsbSAh PSBudWxsKSB7CgkJCQlpZiAoIWlzTG9hZCB8fCBpc1N1Ym1pdCkgewoJCQkJCXJldHVybiBmYWxz ZTsKCQkJCX0KCgkJCQl2YXIgZm9ybSA9IGVsbS5mb3JtOwoJCQkJcmV0dXJuIG9wZW5TdWJXaW5k b3dBbmRTdWJtaXRGb3JtKGZvcm0sIGJ1dHRvbk5hbWUsIGJ1dHRvblZhbHVlKTsKCQkJfQoJCQkK CQkKCQl9CgkJCgoJCWlzUGRmU3VibWl0ID0gdHJ1ZTsKCX0KCgkvLyDnlLvpnaLjgYzlrozlhajj gavjg63jg7zjg4njgZfliIfjgozjgabjgYTjgarjgYTloLTlkIjjgIFzdWJtaXTlh6bnkIbjgpLo oYzjgo/jgZvjgarjgYQKCWlmKCFpc0xvYWQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJLy8g5pei 44Gr44Oc44K/44Oz5pON5L2c44GM6KGM44KP44KM44Gm44GE44KL5aC05ZCI44CBc3VibWl05Yem 55CG44KS6KGM44KP44Gb44Gq44GECglpZiAoaXNTdWJtaXQpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9 Cglpc1N1Ym1pdCA9IHRydWU7CgoJcmV0dXJuIHRydWU7Cn0KCi8qKgogKiDljbDliLflh6bnkIbj gpLlrp/ooYzjgZnjgosKICovCmZ1bmN0aW9uIGRiTGlua1ByaW50Q2xpY2soZm9ybSwgYnV0dG9u TmFtZSwgYnV0dG9uVmFsdWUpIHsKCWlmICghaXNMb2FkIHx8IGlzU3VibWl0KSB7CgkJcmV0dXJu IGZhbHNlOwoJfQoJcmV0dXJuIG9wZW5TdWJXaW5kb3dBbmRTdWJtaXRGb3JtKGZvcm0sIGJ1dHRv bk5hbWUsIGJ1dHRvblZhbHVlKTsKfQoKLyoqCiAqIOWtkOOCpuOCpOODs+ODieOCpuOCkumWi+OB hOOBn+W+jOOAgeOBneOBruOCpuOCpOODs+ODieOCpuOCkuOCv+ODvOOCsuODg+ODiOOBqOOBl+OB puODleOCqeODvOODoOOCkumAgeS/oeOBmeOCiwogKi8KZnVuY3Rpb24gb3BlblN1YldpbmRvd0Fu ZFN1Ym1pdEZvcm0oZm9ybSwgYnV0dG9uTmFtZSwgYnV0dG9uVmFsdWUpIHsKCXZhciBhY3Rpb25C YWNrdXAgPSBudWxsOwoJdmFyIG5ld0VsID0gbnVsbDsKCglpZiAoaXNTdWJtaXQpIHsKCQlyZXR1 cm4gZmFsc2U7Cgl9Cglpc1N1Ym1pdCA9IHRydWU7CgoJLy8g6LW35YuV5a++6LGh44Gu44Ki44Kv 44K344On44Oz44GMTGNEaXNwYXRjaEFjdGlvbuOBruWgtOWQiO+8jOaMh+WumuOBleOCjOOBn+WQ jeensOOBrgoJLy8g44Oc44K/44Oz44GM5oq844GV44KM44Gf44GT44Go44Gr44GZ44KLCglpZiAo YnV0dG9uTmFtZSAhPSBudWxsKSB7CgkJaWYgKGJ1dHRvblZhbHVlID09IG51bGwpIGJ1dHRvblZh bHVlID0gInRydWUiOwoKCQlpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDUi KSAhPSAtMSAmJgoJCQluYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpICE9IC0xKSB7 CgkJCW5ld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiPGlucHV0IHR5cGU9aGlkZGVuPiIp OwoJCQluZXdFbC5uYW1lID0gYnV0dG9uTmFtZTsKCQkJbmV3RWwudmFsdWUgPSBidXR0b25WYWx1 ZTsKCQkJZm9ybS5hZGQobmV3RWwpOwoJCX0gZWxzZSB7CgkJCWFjdGlvbkJhY2t1cCA9IGZvcm0u YWN0aW9uOwoJCQlmb3JtLmFjdGlvbiA9IGZvcm0uYWN0aW9uICsgIj8iICsgYnV0dG9uTmFtZSAr ICI9IiArIGJ1dHRvblZhbHVlOwoJCX0KCX0KCgkvLyDmlrDopo/jgqbjgqTjg7Pjg4njgqbjgpLp lovjgY8KCXZhciBwZGZXaW4gPSB3aW5kb3c7CglpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRl eE9mKCJTYWZhcmkvODUiKSA9PSAtMSkgewoJCXBkZldpbiA9IHdpbmRvdy5vcGVuKCJhYm91dDpi bGFuayIsICJQREYiLCAicmVzaXphYmxlPXllcyxzY3JvbGxiYXJzPXllcyIpOwoJCWZvcm0udGFy Z2V0ID0gIlBERiI7CgkJZm9ybS5zdWJtaXQoKTsKCQlmb3JtLnRhcmdldCA9ICIiOwoJfSBlbHNl IHsKCQlmb3JtLnN1Ym1pdCgpOwoJfQoKCS8vIOODleOCqeODvOODoOOBrmFjdGlvbuOCkuWkieab tOOBl+OBpuOBhOOCi+WgtOWQiOOBr+WFg+OBq+aIu+OBmQoJaWYgKGFjdGlvbkJhY2t1cCAhPSBu dWxsKSB7CgkJZm9ybS5hY3Rpb24gPSBhY3Rpb25CYWNrdXA7CgkJYWN0aW9uQmFja3VwID0gbnVs bDsKCX0KCglpZiAobmV3RWwgIT0gbnVsbCkgewoJCWZvcm0ucmVtb3ZlKG5ld0VsKTsKCX0KCgkv LyBQREbooajnpLrjgqbjgqTjg7Pjg4njgqbjgpLmnIDliY3pnaLjgavooajnpLoKCXBkZldpbi5m b2N1cygpOwoKCWlzU3VibWl0ID0gZmFsc2U7CgoJcmV0dXJuIGZhbHNlOwp9CgovKgogKiDjg4fj g7zjgr/jga7mm7TmlrDjgYzooYzjgo/jgozjgovnlLvpnaLjgavjgYrjgYTjgabjgIHjg6Hjg4vj g6Xjg7zjgavmiLvjgovliY3jgavnorroqo3jg6Hjg4Pjgrvjg7zjgrjjgpLooajnpLrjgZnjgosK ICovCmZ1bmN0aW9uIGNvbmZpcm1NZXNzYWdlKHNlc3Npb25JZCwgbWVzc2FnZSkgewoJaWYgKGNv bmZpcm0obWVzc2FnZSkpIHsKCQlpZiAoIWlzU3VibWl0KSB7CgkJCXdpbmRvdy5sb2NhdGlvbj0i L21haW5NZW51LmRvO0xjU2Vzc2lvbklEPSIgKyBzZXNzaW9uSWQ7CgkJfQoJfQp9CgovKgogKiDj g4fjg7zjgr/jga7mm7TmlrDjgYzooYzjgo/jgozjgovnlLvpnaLjgavjgYrjgYTjgabjgIHmiLvj govjg5zjgr/jg7PjgYzmirzjgZXjgozjgZ/loLTlkIjjgavnorroqo3jg6Hjg4Pjgrvjg7zjgrjj gpLooajnpLrjgZnjgosKICovCmZ1bmN0aW9uIGJhY2tDb25maXJtTWVzc2FnZShzZXNzaW9uSWQs IGFjdGlvbiwgbWVzc2FnZSkgewoJaWYgKGNvbmZpcm0obWVzc2FnZSkpIHsKCQlpZiAoIWlzU3Vi bWl0KSB7CgkJCXdpbmRvdy5sb2NhdGlvbj1hY3Rpb24gKyAiO0xjU2Vzc2lvbklEPSIgKyBzZXNz aW9uSWQgKyAiP3JlPSI7CgkJfQoJfQp9CgovKioKICogUERG44OV44Kh44Kk44Or5ZCN56ew44GM 6Kit5a6a44GV44KM44Gm44GE44Gf5aC05ZCI44CB5Yil44Km44Kj44Oz44OJ44Km44GnUERG44OV 44Kh44Kk44Or44KS6KGo56S644GZ44KL44CCCiAqLwpmdW5jdGlvbiBmaW5pc2hMb2FkKCkgewoK CWxvZ2luRXJyb3JDb3VudCA9IDM7CgllcnJvckNvdW50ID0gMDsKCS8vIOODreOCsOOCpOODs+OC qOODqeODvOWbnuaVsOOBjOimj+WumuOBruWbnuaVsOOCkuS4iuWbnuOCi+OBqOOCpuOCo+ODs+OD ieOCpuOCkumWieOBmOOCiwoJaWYgKGxvZ2luRXJyb3JDb3VudCA8IGVycm9yQ291bnQpIHsKCQl3 aW5kb3cuY2xvc2UoKTsKCX0KCglpc0xvYWQgPSB0cnVlOwoKCQoJaWYgKHBkZk5hbWUgIT0gIiIp IHsKCQl2YXIgcGRmV2luID0gd2luZG93Lm9wZW4ocGRmTmFtZSwgJ1BERicsICJyZXNpemFibGU9 eWVzLCBzY3JvbGxiYXJzPXllcyIpOwoJCWlzUGRmU3VibWl0ID0gZmFsc2U7CgkJaXNTdWJtaXQg PSBmYWxzZTsKCQlwZGZXaW4uZm9jdXMoKTsKCQlwZGZOYW1lID0gIiI7Cgl9CgkKCglsYXN0U2Vj ID0gMTgwMDsKCgl0SUQgPSBzZXRJbnRlcnZhbCgnZ3JhcGhpY2FsVGltZXIoKScsMTAwMCk7CgoJ Ly8gTmV0U2NhcGXjgIFNQUPjga5TYWZhcmkKCWlmIChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTmV0 c2NhcGUiKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRpbWVyRGlzcGxheSIpLmlubmVy SFRNTCA9IGxhc3RTZWM7CgkvLyBXaW5kb3dz44GoTUFD44GuSUUKCX0gZWxzZSBpZiAobmF2aWdh dG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpIHsKCQl0aW1lckRp c3BsYXkuaW5uZXJUZXh0ID0gbGFzdFNlYzsKCS8vIOOBneOBruS7lgoJfSBlbHNlIHsKCQkvLyDl r77osaHlpJYKCX0KfQoKLyoqCiAqIOOCv+OCpOODoOOCouOCpuODiOOBvuOBp+OBruaZgumWk+OC kuihqOekuuOBmeOCi+OAggogKi8KLy8g54++5Zyo44Gu44OR44K544KS5Y+W5b6X44GZ44KLCm5v d0xvY2F0aW9uID0gbmV3IFN0cmluZyhwYXJlbnQubG9jYXRpb24pOwoKZnVuY3Rpb24gZ3JhcGhp Y2FsVGltZXIoKXsKCWxhc3RTZWMtLTsKCgkvLyBOZXRTY2FwZeOAgU1BQ+OBrlNhZmFyaQoJaWYg KG5hdmlnYXRvci5hcHBOYW1lID09ICJOZXRzY2FwZSIpIHsKCQlkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgidGltZXJEaXNwbGF5IikuaW5uZXJIVE1MID0gbGFzdFNlYzsKCS8vIFdpbmRvd3PjgahN QUPjga5JRQoJfSBlbHNlIGlmIChuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVy bmV0IEV4cGxvcmVyIikgewoJCXRpbWVyRGlzcGxheS5pbm5lclRleHQgPSBsYXN0U2VjOwoJfSBl bHNlIHsKCQkvLyDlr77osaHlpJYKCX0KCWlmIChub3dMb2NhdGlvbi5pbmRleE9mKCIvVUkvanNw L2xvZ2luIikgPCAwKSB7CgkJaWYobGFzdFNlYyA+IDE4MDApewoJCQljbGVhckludGVydmFsKHRJ RCk7CgoJCQkvLyDnorroqo3jg6Hjg4Pjgrvjg7zjgrjjgafjgIxPS+OAjeOCkumBuOaKnuOBl+OB n+WgtOWQiOOAgeWQhOODpuODvOOCtuOBruODreOCsOOCpOODs+eUu+mdouOBuOmBt+enu+OBmeOC iwoJCQlpZiAoY29uZmlybSgn44K/44Kk44Og44Ki44Km44OI44GM55m655Sf44GX44G+44GX44Gf 44Gu44Gn44CB44Ot44Kw44Kk44Oz55S76Z2i44Gr5oi744KK44G+44GZ44CCJykpIHsKCQkJCS8v IOaVmeWLmeiBt+WToeOBruWgtOWQiAoJCQkJaWYgKCIiID09ICIxIikgewoJCQkJCXdpbmRvdy5s b2NhdGlvbj0iL1VJL2pzcC9sb2dpbi9sb2dpblN0YWZmLmpzcCI7CgkJCQkvLyDlrabnlJ/jga7l oLTlkIgKCQkJCX0gZWxzZSBpZiAoIiIgPT0gIjIiKSB7CgkJCQkJd2luZG93LmxvY2F0aW9uPSIv VUkvanNwL2xvZ2luL2xvZ2luU3R1ZGVudC5qc3AiOwoJCQkJLy8g5pWZ5ZOh44Gu5aC05ZCICgkJ CQl9IGVsc2UgaWYgKCIiID09ICIzIikgewoJCQkJCXdpbmRvdy5sb2NhdGlvbj0iL1VJL2pzcC9s b2dpbi9sb2dpblRlYWNoZXIuanNwIjsKCQkJCX0KCQkJfQoJCX0KCX0KfQp3aW5kb3cub25sb2Fk ID0gZmluaXNoTG9hZDsKCgovKioKICog44OY44Or44OX44Km44Kj44Oz44OJ44Km44KS6ZaL44GP CiAqIDIwMDUuMTEuMSBtYXRzdWthbmUgeERUUy0zNDDlr77lv5zjg5jjg6vjg5fjgpLplovjgY/p mpvjga5TYWZhcmnjg5bjg6njgqbjgrbliKTlrpogCiAqLwpmdW5jdGlvbiBzaG93SGVscFdpbmRv dyh0YXJnZXQsIG1hcElkKSB7CgogIHZhciB1cmwgPSAiIjsKCiAgaWYgKHRhcmdldCA9PSAic3R1 ZGVudCIpIHsKCXVybCA9ICcvVUkvaHRtbC9oZWxwL3N0dWRlbnQvTGl2ZUNhbXB1c1dlYkhlbHBT dHVkZW50Lmh0bScKICB9IGVsc2UgaWYgKHRhcmdldCA9PSAidGVhY2hlciIpIHsKCXVybCA9ICcv VUkvaHRtbC9oZWxwL3RlYWNoZXIvTGl2ZUNhbXB1c1dlYkhlbHBUZWFjaGVyLmh0bScKICB9IGVs c2UgaWYgKHRhcmdldCA9PSAic3RhZmYiKSB7Cgl1cmwgPSAnL1VJL2h0bWwvaGVscC9zdGFmZi9M aXZlQ2FtcHVzV2ViSGVscFN0YWZmLmh0bScKICB9CgogIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lv bi5pbmRleE9mKCJTYWZhcmkiKSAhPSAtMSApIHsKCXdpbmRvdy5vcGVuKHVybCwgJ0xpdmVDYW1w dXNXZWJIZWxwJywgJ3Rvb2xiYXI9bm8sbG9jYXRpb249bm8sZGlyZWN0b3J5PW5vLHN0YXR1cz15 ZXMsc2Nyb2xsYmFycz15ZXMscmVzaXphYmxlPXllcyx3aWR0aD05MDAsaGVpZ2h0PTcwMCcpCiAg fSBlbHNlIHsKCVJIX1Nob3dIZWxwKDAsIHVybCArICc+TGNIZWxwV2luZG93JywgSEhfSEVMUF9D T05URVhULCBtYXBJZCk7CiAgfQoJCn0KCi8vLS0+CjwvU0NSSVBUPg0KDQo8VEFCTEUgY2VsbFNw YWNpbmc9MTAgY2VsbFBhZGRpbmc9MCBib3JkZXI9MD4NCiAgPFRCT0RZPg0KICA8VFI+DQogICAg PFREPg0KICAgICAgPFRBQkxFIGNsYXNzPXR4dDEyIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9 MyBhbGlnbj1sZWZ0IGJnQ29sb3I9Izk5OTk5OSANCiAgICAgIGJvcmRlcj0xPg0KICAgICAgICA8 VEJPRFk+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQogICAgICAgICAgPFREIGNsYXNz PXR4dDEyIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAg ICAgY29sb3I9I2ZmZmZmZj7np5Hnm67lkI0gJm5ic3A7IDwvRk9OVD48L1REPg0KICAgICAgICAg IDxURCBjbGFzcz10eHQxMiB3aWR0aD03NzAgY29sU3Bhbj0zPuaDheWgseOBqOaVsOeQhiAmbmJz cDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAgICAgIDxU RCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9OVCANCiAg ICAgICAgICAgIGNvbG9yPSNmZmZmZmY+5ouF5b2T5pWZ5ZOhICZuYnNwOyA8L0ZPTlQ+PC9URD4N CiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9NzcwIGNvbFNwYW49Mz7pq5jmnKjjgIDm gp8gJm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAg ICAgICA8VEQgY2xhc3M9dHh0MTIgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM2Njk5ZmY+PEZP TlQgDQogICAgICAgICAgICBjb2xvcj0jZmZmZmZmPuWvvuixoeWtpuW5tCAmbmJzcDsgPC9GT05U PjwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRoPTMwMD4x5bm0ICZuYnNwOyA8 L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9 IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+44Kv44Op44K5ICZuYnNw OyA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9MzAwPu+8kO+8 kiAmbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAg ICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9O VCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+6Kyb576p5a6kICZuYnNwOyA8L0ZPTlQ+PC9U RD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgd2lkdGg9MzAwPu+8ru+8k++8kO+8k+OAgCAm bmJzcDsgPC9URD4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgbm9XcmFwIHdpZHRoPTE3MCBi Z0NvbG9yPSM2Njk5ZmY+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jZmZmZmZmPumWi+ism+Wt puacnyAmbmJzcDsgPC9GT05UPjwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRo PTMwMD7lvozmnJ8gJm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZm Zj4NCiAgICAgICAgICA8VEQgY2xhc3M9dHh0MTIgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM2 Njk5ZmY+PEZPTlQgDQogICAgICAgICAgICBjb2xvcj0jZmZmZmZmPuabnOaXpeODu+aZgumZkCAm bmJzcDsgPC9GT05UPjwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRoPTMwMD7m nKjvvJEgJm5ic3A7IDwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcCB3aWR0 aD0xNzAgYmdDb2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9I2ZmZmZmZj7l jZjkvY3ljLrliIYgJm5ic3A7IDwvRk9OVD48L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQx MiB3aWR0aD0zMDA+6YG45b+FICZuYnNwOyA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9y PSNmZmZmZmY+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcCB3aWR0aD0xNzAgYmdD b2xvcj0jNjY5OWZmPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9I2ZmZmZmZj7mjojmpa3lvaLm hYsgJm5ic3A7IDwvRk9OVD48L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiB3aWR0aD0z MDA+5LiA6Iis6Kyb576pICZuYnNwOyA8L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBu b1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9y PSNmZmZmZmY+5Y2Y5L2N5pWwICZuYnNwOyA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICA8VEQgY2xh c3M9dHh0MTIgd2lkdGg9MzAwPjImbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xv cj0jZmZmZmZmPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiBub1dyYXAgd2lkdGg9MTcwIGJn Q29sb3I9IzY2OTlmZj48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSNmZmZmZmY+5Y+X6Kyb5a++ 6LGhJm5ic3A7PC9GT05UPiA8L1REPg0KICAgICAgICAgIDxURCBjbGFzcz10eHQxMiB3aWR0aD03 NzAgY29sU3Bhbj0zPiZuYnNwOyA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZm ZmY+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0j NjY5OWZmPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9I2ZmZmZmZj7lgpnogIMmbmJzcDs8L0ZP TlQ+IDwvVEQ+DQogICAgICAgICAgPFREIGNsYXNzPXR4dDEyIHdpZHRoPTc3MCBjb2xTcGFuPTM+ Jm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAg ICA8VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAg ICBjb2xvcj0jMDAwMGZmPuOBreOCieOBhOOBqOebruaomTwvRk9OVD4gPC9URD4NCiAgICAgICAg ICA8VEQgd2lkdGg9NzcwIA0KICAgICAgICAgICAgY29sU3Bhbj0zPue0oOaVsOOCkuWun+ekvuS8 muOBq+W/nOeUqOOBl+OBn1JTQeaal+WPt+eQhuirluOBrueQhuino++8jOOBleOCieOBq+WumueQ huOBruiovOaYjuOBquOBqeOBq+OCiOOCi+aVsOWtpueahOOBquaAneiAg+WKm++8iOirlueQhuWx lemWi+iDveWKm++8ieOBrue/kuW+l+OCkuebruaomeOBqOOBmeOCi++8jiZuYnNwOyANCiAgICAg ICAgICA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+DQogICAgICAgICAg PFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlmZmNjPjxGT05UIGNvbG9yPSMwMDAwZmY+ 5YaF5a65PC9GT05UPiANCiAgICAgICAgICA8L1REPg0KICAgICAgICAgIDxURCB3aWR0aD03NzAg DQogICAgICAgICAgICBjb2xTcGFuPTM+6ZuG5ZCI6KuW44Go5pW05pWw6KuW77yI5pWw44Gu55CG 6KuW77yJ44Gu5Yid5q2p44KS6Kyb576p44GX77yM44Gd44KM44KJ44KS6aeG5L2/44GX44GfUlNB 5pqX5Y+355CG6KuW44Gu5LuV57WE44G/44KS6Kej6Kqs44GZ44KL77yOJm5ic3A7IA0KPC9URD48 L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAgICAgIDxURCBub1dyYXAg d2lkdGg9MTcwIGJnQ29sb3I9Izk5ZmZjYz48Rk9OVCBjb2xvcj0jMDAwMGZmPuODhuOCreOCueOD iDwvRk9OVD4gDQogICAgICAgICAgPC9URD4NCiAgICAgICAgICA8VEQgd2lkdGg9NzcwIGNvbFNw YW49Mz7kvb/nlKjjgZfjgarjgYTvvI4mbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdD b2xvcj0jZmZmZmZmPg0KICAgICAgICAgIDxURCBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9Izk5 ZmZjYz48Rk9OVCBjb2xvcj0jMDAwMGZmPuWPguiAg+aWh+eMrjwvRk9OVD4gDQogICAgICAgICAg PC9URD4NCiAgICAgICAgICA8VEQgd2lkdGg9NzcwIGNvbFNwYW49Mz7jgI7jga/jgZjjgoHjgabj ga7mlbDoq5bjgI/jgIDjgrjjg6fjgrvjg5Xjg7tI44O744K344Or44O044Kh44O844Oe44OzIA0K ICAgICAgICAgICAg6JGX44CA44OU44Ki44K944Oz44O744Ko44OH44Ol44Kx44O844K344On44Oz Jm5ic3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAg ICA8VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAg ICBjb2xvcj0jMDAwMGZmPuaIkOe4vuipleS+oeaWueazlTwvRk9OVD4gPC9URD4NCiAgICAgICAg ICA8VEQgd2lkdGg9NzcwIGNvbFNwYW49Mz7mjojmpa3kuK3jga7oqrLpoYzjg7vlrr/poYzjg7vl h7rluK3vvIzjgZXjgonjgavoqabpqJPjgavjgojjgornt4/lkIjnmoTjgavoqZXkvqHjgZnjgovv vI4mbmJzcDsgPC9URD48L1RSPg0KICAgICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAg ICAgIDxURCBub1dyYXAgd2lkdGg9MTcwIGJnQ29sb3I9Izk5ZmZjYz48Rk9OVCANCiAgICAgICAg ICAgIGNvbG9yPSMwMDAwZmY+5o6I5qWt44K544Kx44K444Ol44O844Or77yI5bGV6ZaL6KiI55S7 77yJPC9GT05UPiA8L1REPg0KICAgICAgICAgIDxURCB3aWR0aD03NzAgY29sU3Bhbj0zPg0KICAg ICAgICAgICAgPFRBQkxFIGNsYXNzPXR4dDEyIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MyB3 aWR0aD0iMTAwJSIgDQpib3JkZXI9MT4NCiAgICAgICAgICAgICAgPFRCT0RZPg0KICAgICAgICAg ICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1p ZGRsZSB3aWR0aD0iNSUiPjxGT05UIA0KICAgICAgICAgICAgICAgICAgY29sb3I9IzAwMDBmZj7l m548L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQgY2xhc3M9ZW5hYmxlY29sb3IgYWxp Z249bWlkZGxlIHdpZHRoPSI5NSUiPjxGT05UIA0KICAgICAgICAgICAgICAgICAgY29sb3I9IzAw MDBmZj7lhoXlrrk8L0ZPTlQ+PC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAg ICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAg ICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjE8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8 VEQ+44Ks44Kk44OA44Oz44K5PC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAg ICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAg ICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjI8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8 VEQ+6ZuG5ZCI44Go5ZG96aGMPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAg ICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAg ICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjM8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8 VEQ+57SE5pWw44Go5pyA5aSn5YWs57SE5pWwPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+ DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9O VCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjQ8L0ZPTlQ+PC9URD4NCiAgICAgICAg ICAgICAgICA8VEQ+57Sg5pWw44Go57Sg5Zug5pWw5YiG6KejPC9URD48L1RSPg0KICAgICAgICAg ICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1p ZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjU8L0ZPTlQ+PC9URD4N CiAgICAgICAgICAgICAgICA8VEQ+5ZCI5ZCM5byPPC9URD48L1RSPg0KICAgICAgICAgICAgICA8 VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48 Rk9OVCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjY8L0ZPTlQ+PC9URD4NCiAgICAg ICAgICAgICAgICA8VEQ+5ZCI5ZCM5pa556iL5byPPC9URD48L1RSPg0KICAgICAgICAgICAgICA8 VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48 Rk9OVCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjc8L0ZPTlQ+PC9URD4NCiAgICAg ICAgICAgICAgICA8VEQ+44Kq44Kk44Op44O86Zai5pWwPC9URD48L1RSPg0KICAgICAgICAgICAg ICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRs ZT48Rk9OVCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjg8L0ZPTlQ+PC9URD4NCiAg ICAgICAgICAgICAgICA8VEQ+44OV44Kn44Or44Oe44O844Gu5bCP5a6a55CGPC9URD48L1RSPg0K ICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9y IGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAgICBjb2xvcj0jMDAwMGZmPjk8L0ZP TlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+77yy77yz77yh5pqX5Y+377yRPC9URD48L1RS Pg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVuYWJsZWNv bG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+ MTA8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+77yy77yz77yh5pqX5Y+377ySPC9U RD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNsYXNzPWVu YWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNvbG9yPSMw MDAwZmY+MTE8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+77yy77yz77yh5pqX5Y+3 77yTPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAgPFREIGNs YXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAgICAgIGNv bG9yPSMwMDAwZmY+MTI8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+77yy77yz77yh 5pqX5Y+377yUPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAg PFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAg ICAgIGNvbG9yPSMwMDAwZmY+MTM8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+77yy 77yz77yh5pqX5Y+377yVPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAg ICAgICAgPFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAg ICAgICAgICAgIGNvbG9yPSMwMDAwZmY+MTQ8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8 VEQ+6Kmm6aiTPC9URD48L1RSPg0KICAgICAgICAgICAgICA8VFI+DQogICAgICAgICAgICAgICAg PFREIGNsYXNzPWVuYWJsZWNvbG9yIGFsaWduPW1pZGRsZT48Rk9OVCANCiAgICAgICAgICAgICAg ICAgIGNvbG9yPSMwMDAwZmY+MTU8L0ZPTlQ+PC9URD4NCiAgICAgICAgICAgICAgICA8VEQ+Jm5i c3A7PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0Nv bG9yPSNmZmZmZmY+DQogICAgICAgICAgPFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlm ZmNjPjxGT05UIA0KICAgICAgICAgICAgY29sb3I9IzAwMDBmZj7mjojmpa3jga7jgq3jg7zjg6/j g7zjg4k8L0ZPTlQ+IDwvVEQ+DQogICAgICAgICAgPFREIHdpZHRoPTc3MCBjb2xTcGFuPTM+Jm5i c3A7IDwvVEQ+PC9UUj4NCiAgICAgICAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4NCiAgICAgICAgICA8 VEQgbm9XcmFwIHdpZHRoPTE3MCBiZ0NvbG9yPSM5OWZmY2M+PEZPTlQgDQogICAgICAgICAgICBj b2xvcj0jMDAwMGZmPuWtpuiKuOOBruWtpuOBs+OCreODvOODr+ODvOODiTwvRk9OVD4gPC9URD4N CiAgICAgICAgICA8VEQgd2lkdGg9NzcwIGNvbFNwYW49Mz4mbmJzcDsgPC9URD48L1RSPg0KICAg ICAgICA8VFIgYmdDb2xvcj0jZmZmZmZmPg0KICAgICAgICAgIDxURCBub1dyYXAgd2lkdGg9MTcw IGJnQ29sb3I9Izk5ZmZjYz48Rk9OVCANCiAgICAgICAgICAgIGNvbG9yPSMwMDAwZmY+5Y+X6Kyb 6KOc6Laz77yI5bGl5L+u5Yi26ZmQ562J77yJPC9GT05UPiA8L1REPg0KICAgICAgICAgIDxURCB3 aWR0aD03NzAgY29sU3Bhbj0zPiZuYnNwOyA8L1REPjwvVFI+DQogICAgICAgIDxUUiBiZ0NvbG9y PSNmZmZmZmY+DQogICAgICAgICAgPFREIG5vV3JhcCB3aWR0aD0xNzAgYmdDb2xvcj0jOTlmZmNj PjxGT05UIGNvbG9yPSMwMDAwZmY+44Gd44Gu5LuWPC9GT05UPiANCiAgICAgICAgICA8L1REPg0K ICAgICAgICAgIDxURCB3aWR0aD03NzAgDQogICAgICAgICAgICBjb2xTcGFuPTM+44O75pyA5Yid 44Gu5o6I5qWt5pmC44Gr77yM5oiQ57i+6KmV5L6h5pa55rOV562J44Gr44Gk44GE44Gm6Kmz44GX 44GP6L+w44G544KL44Gu44Gn5b+F44Ga5Ye65bit44GZ44KL44GT44Go77yOPEJSPuODu+S4i+io mOODm+ODvOODoOODmuODvOOCuOOBruOAjExlY3R1cmVz44CN44Oa44O844K444Gr77yM6Kyb576p 44Gr6Zai44GZ44KL5oOF5aCx44KS5o+Q5L6b44GZ44KL5LqI5a6a44Gn44GC44KL77yOPEJSPuOA gGh0dHA6Ly93d3cuZWR1Lndhc2VkYS5hYy5qcC9+c2F0b3J1L+OAgOOAgOOAgOOBvuOBn+OBr+OA gOOAgOOAgGh0dHA6Ly93d3cubnMua29nYWt1aW4uYWMuanAvfmt0NDA0MzMvPEJSPiZuYnNwOyAN CiAgICAgICAgICA8L1REPjwvVFI+PC9UQk9EWT48L1RBQkxFPjwvVEQ+PC9UUj48L1RCT0RZPjwv VEFCTEU+DQo8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPTYzMCBhbGln bj1jZW50ZXIgYm9yZGVyPTA+DQogIDxUQk9EWT4NCiAgPFRSPg0KICAgIDxURCBhbGlnbj1taWRk bGUgaGVpZ2h0PTIwPjxJTUcgDQogICAgICBzcmM9Imh0dHBzOi8vdGd1bGMudS1nYWt1Z2VpLmFj LmpwL1VJL2ltYWdlL2NvbW1vbi9iYXIuZ2lmO0xjU2Vzc2lvbklEPTk2OVFHbHlkU3hmQnB6aGhM cnQ4MTFwTjl3ZHJYMyExNTM3MDQyMjgwIj48L1REPjwvVFI+DQogIDxUUj4NCiAgICA8VEQgY2xh c3M9dHh0MTAgbm9XcmFwIGFsaWduPW1pZGRsZT48Rk9OVCBjb2xvcj0jNjY2NjY2PkNvcHlyaWdo dChDKSANCiAgICAgIDIwMDQtMjAwNSBOVFQgREFUQSBLWVVTSFUgQ28uLEx0ZCBBbGwgcmlnaHRz IA0KcmVzZXJ2ZWQuPC9GT05UPjwvVEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+PEJSPjwvQk9EWT48 L0hUTUw+DQo= ------=_NextPart_000_000B_01C781C3.6EFCDE20 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/UI/image/student/syllabus2/t_edit_syllabusreference2.gif;LcSessionID=969QGlydSxfBpzhhLrt811pN9wdrX3!1537042280 R0lGODlh6QAyAPcAAAAAAP///8+/36B9unBAn2Yzmebm5nt7e1BEWb2ovTkzP4xms+7l7qGIuLCW ys+3z3NigywnMI55o93a4INZrPTx919RbSAgINvI26eKxMK1wpmZmc3D1t/V6K+vr4ltnkdGSXtq jYuLi7OZzL29vRYUGNbM32ZmZt/Q38zMzFdMY6WLvnZJou/v75F0p6WkpTg0O516tqyUxkJCQrym 09/e335UpxEREXNzc/f396F+ukk9UWtCnFpZWmNUciclKmZmZlNTU+bY5rW1tdnL2YJvloWEhtG/ 0e/m96CAv0A8RDMzM5mZmcGs1b6ky5Jvtcaz2ayNwk5LUgwLDOfh7sTExGVYc9PB09jF2lJKVpuC spR+qrWUzl9dYUpKSuLZ7FVUV8Or0NbE1nlNpk1EVuPZ7CgoKDw2QodsnCQhJl5Sa2hadjEsNsOw 1kI8R5J8p4h1nLehzfLv9dnN5oZfrJRxt6SDvRkZGdXV1Ts7O0xDVG9ucIRxl2xde1NEX2hVdgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAADpADIA Bwj/AAMEmENjhMGDCBMqXEhjTg6BECNKnEixosWLGDNq3Mixo8ePIC82WUgSjh6SC5s8DMmypcuX MGPKrDgHpUI+EWBAsJlwzsyfQIMKHbqxIM8RMqxESFEjzU6bPoqMoEG0qtWrWD0eHVFEQZcaAg3A kEoyBAwYKmRkXcu2bdWjIdLAMBCxCgwJDvLqdWABRooKJyLgyUGYsFuNFQ4rVry3sYMoKpakEOFl pUASF9DYyWvHzpoZdAV6yGOkBQoUhIUspliBQhKZFRZkSLy69sQoK3Lrzv1mxwm6OXB0WekBgIcz LvLGQAAGbMQaJ3poQJ0DBQOKC0bQzpohSZICr2Fm/yhQp8KXMVQnZljAnv2IAvDjxxdgO+bBxiF+ nJDY44CBPT1MEMALaTTgwA5gWAZRBQd8VZhhEgkAHwH0YfSefBiO0NF33hXgk0RfzCGiiNpdNEcB FAiExALkbScQixQsQEABULA3Y4wyelgfTPflpgUCMFQBhgcRGRDEEge0ANEGCpyxh4sQAcjAgxBK RMOMBWh40YUYxqclR3UU0FBEXco3xnVWGjQGiu3lOMYXEbHoE4sQzYiEQBQUcOeOLiHkwBa+KZnC DClA9MIUEYgQUQszHKCgQC1EJ0d11J1WERJ1ELBnVV9QUEEFJZIZHwHtzTjGphCxiOEYC9Qxwnjh vf+oI50BfEcBA3NAAR+fLyH0xw8vkFBoAB4sUQN0J9TQQhAvCDTBEopOZEAXCIhB2GnXoiARFGgG gKpMUKC34IwLVFTGRBXMWCFEuEIhwIgsNjSivGjGO0eeFXxHQBknwlcury0dBMcSeBDrRWgvzCCF CEoGgEceL+ChMEU55KGCA1Q+GNGJBHyJ7gJwBrBemyTLOJtE+m6qa5YbhVnHRFyW2aWWqk645hjn ImEQDVACrJVBWswl0AsRCLTBFGBIZAC0F3ixR2jOSuGDDBhnXGUAAmBJQcgoFzCGrDLLt65AM87W wtktPFEAAVRkpCsBPdd00HgFZDACi2Mg9KG9eQr/sGaZPrOEkBp7QNRCDV30gEcPRkj0wg0wtLBH sgLVAMIfnFWquUQV0H3utvClx++IpJO4NugFdEAlFTPW8ahE/X5oERQzurtAGXkuILuscxYQwHvZ HbRr4CAhpEUJw5LghX8B5GAGCYaacULhA06RQgoR3HGxA3Zoni1FuU60cqwYjfey4TYUQIcBaJ9t wArwtdHwRF9g6fGCAiQxI4UXzhYmiiPY26x89x6PDY94PzOIAyAghRyI4A4HmMEMBJSCLqRgWl85 QbMuYwYzeOAESvhBEapmtY1cyFMbqV1EJFSANlBEDuSqCO285i8o/a1jNFgThWoUov/9C0Y5+l0B /4JnkAMikCMIyY0SlPAbI0xvA4kZwgVmYISH3EAEFfBAF/JQghOcAAcGGEIQyFADq71uIgxQ1QJ6 VpH3jIE2BjAAC1BkETvAR1tWgs9rTugiKCQhf1iqg85C17kKQAEKsorRjIQIuCN2xE8OeIMSBCSQ GXTBCwMqgReUtAEAAKAEM1hCFYZghg0GoAVGkMILKPU9i4AKS+TDyMoQCRG67U4iSIBPBiKSLz1C ZGUE4BpE9JeECuTQa2XAHXjipCMoaKhGtBSIQRz5yIPoxgdSEMgQbvAbL9YAB4UDQwmSRCwzeKEK E0nBHWqALUpV5Av6m9DYMEIDX57SAG2wp0XyxP8CiHQqdBIpw/6EGYAs1Uw7V1omyjKAK9kE4At1 eBkDXEPNaiowLzLYAfXwkAIpkLMFXdhAkXqQhwtQ0nA4+E3GJpKEv60tVBmZg6piaQIKvFGWC0hP Pdd2S4EIdG3dkhV6kBAugMIOPkjoVwAqAJ85/DSWFbVIEnUzAjY06wUePGWhDHCHIQhEnSJ9wVcg kgMwnKAFJZTIhfLGRjQeEz5fimMcc/CtipzNp6RqawAEGs1fCuBu8VlAXQOQu73CB07feRkL5zmR MwYOknrZghu8eco7gCYAKfBCCjYAAugZbQkPmUAe/OA9d3KuDh3IyINao0dUaQwkg21eYaCUS/n/ ECAJQY1IPgvwuaYGIJ+uy0GY7qfaq13ltW20JlUjOYWCDegEZrgA9F5wgSCcVCAiOAEegtCHGIjh bGL4bgvEgMcAyPW87JtIC9AbRw7wTCLrjeP8WpKD+KJ3vgGoQ3biYILzPiQH6OVAGKAGYANMYAJy nUBq4cve5tn3vPi9J3qVxl7HSrjCFIHsXhgooBwQKAgeeNYMNmneAzQuACQoQQjyYsZHIbe4xpVt jGPy4oisVMY3xnGOydpiM1KMSo0FMkcKk1yD7GYEelkDCL4qhT28wAur3AMOMEvOFygBLyyuL9qI XCT5UkSujzqvjf3rErnOt8BxZM2DwWw49hpg/zsVgLBECLNmtLaZzNKSa0XwzOD0dhlqETEKkh3T GT+AITEVwEEehhUAL4gUuwr4wGYeU1pL2XjGGOEyjzE9ZE1f2sI4rkiNN22RUQtEyHP2dKodq2qM yG0ER+aMHTIKxhkUbgOencAMiGQENjSgM3kJA3XCezZLn9rLeQb0n+f34DIje1Fspoh92YhmZUNE zF/WM8X4fGdrQyraFDbA6+ZKkZEM2jF5icIOlvDoLtxgJSmAwR70YCC98KzFNPa0qWXS6k+XmtMy FjXA993vU2N63xTBAAacsIIYODwGOhiAxCf+gQhs8ABe6EEPEiOFHbjA4QNYgROwoHCFh/fkJf9X +BGOIIaUl3zlLMeCzGcuc5gfoeRisDnJXc7znvvc5VeA+c55nvOVD93lNvd50Ffu86T7vOhMBzrM ny70ntv8CEf3OQN+rvAHPKDrCYiAVzfQA03WwJJel7nXu/51DKQdC2vnutznTve62/3ueM+73vfO 96BiOwDtPE0VgjCEJ3ugQSLIARHEG/hKiVcMqglLmtXrZvm278zcdkmc3exY+zr27332tnm1vW3S d9uu4A43ekFNaoNnbAJ32MDZzLCBHvd4IwX/N8A9gtzcB1zgoC64738fZAsPP60Y+bsZoeOFINSe zltucfu+LXrPd2TCLXkws1MPbXJne/KUB7//6ktt5vBXn/tzXrOfdR8RBgghW9ciwhBI0Hj4s/L+ u299RxCO+xn7Pvf/d3C7J3ycNnyftnugJ20RZl8X4XkFZhH2FWHJV34a8YDXZnrUJ26o533Jdn7i 92eid2HShoHdxnpkhX3AxxLHh2rAZ4LF54Ip+GPBV4ADJ4AwGIMyyHu+l4B9Zn4TmHmqF4J7RoEX UWCWEYHm13noJ3kfeHrfJ3potoEeqIEUdkY8eIAhYYAs2IIfwX+ut2pnFIDGV4OsRoMzWIb514VA yITjRoIdKIFBSIXUx0YPZmEJKGfdtn6hJ4HVNoRNyIRvlmxwuFTcVmfhF2FEKIP+129e+IUVqmh7 mQaAi2h7rYZwBEeAL6aFvYdv/sYRlfeJpgeKjrV5QhiHazhm9+U+q9eBcsZetKF+pPeJr/iJpriK GAGLaaZ+21FtbtaClKhqt/cTO9Z/PlaEwBhjnKhjmYh8mzaMj2iALwiNbJGGQWZnWdg++ceIiyFm 0thY1mhjj/iNUTWOtdGN5HiO6OgRV5iO7NiOnXaD7hiP7liH8liP9niAjXiP+ohAvNhgCBQQADs= ------=_NextPart_000_000B_01C781C3.6EFCDE20 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: https://tgulc.u-gakugei.ac.jp/UI/image/common/bar.gif;LcSessionID=969QGlydSxfBpzhhLrt811pN9wdrX3!1537042280 R0lGODlhQQIBAJEAAMzMzP////4BAgAAACH5BAQUAP8ALAAAAABBAgEAAAI6hBFxqJf7XDORTgZv xTL7DlqZRn5iyJ1qym5uib7w+prtfNt1jCf9rwPygsShkSZEFpXHXHPHjDpXBQA7 ------=_NextPart_000_000B_01C781C3.6EFCDE20 Content-Type: text/css; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Content-Location: https://tgulc.u-gakugei.ac.jp/UI/css/common/text.css .txt16 { FONT-WEIGHT: bold; FONT-SIZE: 16px } .txt12 { FONT-SIZE: 12px; LINE-HEIGHT: 16px } .txt10 { FONT-SIZE: 10px } .table1 { BORDER-RIGHT: #339966 1px; BORDER-TOP: #339966 1px; FONT-SIZE: 12px; = BORDER-LEFT: #339966 1px; WIDTH: 1px; BORDER-BOTTOM: #339966 1px; = HEIGHT: 1px } .textfield12 { FONT-SIZE: 12px; LINE-HEIGHT: 16px } .selectbox12 { FONT-SIZE: 12px; LINE-HEIGHT: 12px } .nendo_gakki { FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #dc143c } .textfield12right { FONT-SIZE: 12px; LINE-HEIGHT: 16px; TEXT-ALIGN: right } .hissuItem { FONT-SIZE: 12px; COLOR: #ff0000; LINE-HEIGHT: 16px } .text12info { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #0000ff; LINE-HEIGHT: 16px } .button12 { CURSOR: pointer } .style1 { COLOR: #0000ff } .style2 { COLOR: #ffffff } ------=_NextPart_000_000B_01C781C3.6EFCDE20 Content-Type: text/css; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit Content-Location: https://tgulc.u-gakugei.ac.jp/UI/css/common/syllabus.css .important { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ff0000 } .disablecolor { COLOR: #ffffff; BACKGROUND-COLOR: #6699ff } .enablecolor { COLOR: #0000ff; BACKGROUND-COLOR: #99ffcc } ------=_NextPart_000_000B_01C781C3.6EFCDE20--