Compare commits
34
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db72c27980 | ||
|
|
912ab12165 | ||
|
|
f1257088f2 | ||
|
|
1c611a0a4a | ||
|
|
f2ba6870d5 | ||
|
|
253d14cfce | ||
|
|
b3c77a0e00 | ||
|
|
cba0c6d420 | ||
|
|
1d8ee80c39 | ||
|
|
04a9a8773d | ||
|
|
a466628126 | ||
|
|
60b59ae1bc | ||
|
|
8ff2c962ab | ||
|
|
ffe4f9406b | ||
|
|
592f35bbec | ||
|
|
1d3b502bc7 | ||
|
|
80a76895dd | ||
|
|
78ea981e7f | ||
|
|
a4de35748b | ||
|
|
41aecca692 | ||
|
|
190c2c86ed | ||
|
|
56598d1e37 | ||
|
|
4ee6d5af9d | ||
|
|
594b0249c3 | ||
|
|
64f17880c7 | ||
|
|
59d48cb382 | ||
|
|
2da4aa8cb8 | ||
|
|
1c20c1ead3 | ||
|
|
a7023bce16 | ||
|
|
84fe91c29c | ||
|
|
68f4fc1343 | ||
|
|
196e10f44c | ||
|
|
160a464d63 | ||
|
|
17d85f84f7 |
No files matched your search
@@ -2,6 +2,51 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
### [5.11.2](https://github.com/Alinto/sogo/compare/SOGo-5.11.1...SOGo-5.11.2) (2024-10-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **mail:** modify the message-id to not start by XX- that trigger a native spamassassin rule ([1d8ee80](https://github.com/Alinto/sogo/commit/1d8ee80c394382d26e50457cda9f9292b0f4f63b))
|
||||
* **security:** fix a security issue introduced in 5.11.1 with parameter SOGoForbidUnknownDomainsAuth ([04a9a87](https://github.com/Alinto/sogo/commit/04a9a8773dfb30dcc86c6146eed175a9a115f6b2))
|
||||
|
||||
## [5.11.1](https://github.com/Alinto/sogo/compare/SOGo-5.11.0...SOGo-5.11.1) (2024-10-08)
|
||||
|
||||
|
||||
### Enhancements
|
||||
|
||||
* **login:** add parameters to prevent uneccesary connection request when the domain is unknown ([56598d1](https://github.com/Alinto/sogo/commit/56598d1e3777265ebb09fa19e7a719f673aaee40))
|
||||
* **sieve:** add from on notificatons ([1c20c1e](https://github.com/Alinto/sogo/commit/1c20c1ead3094ca109a5334fdf33726a0e638365))
|
||||
* **build:** Use pkgconfig to compute cflags for wbxml2 instead of hardcoding them. Thanks to [jmallach](https://github.com/jmallach)
|
||||
|
||||
### Regression Fixes
|
||||
* **calendar:** Fix regression on repeat task ([2a17449](https://github.com/Alinto/sogo/commit/2a1744998c0023f3cbaddd6ee90275ee1baf6cc3))
|
||||
* **mail:** Add an option in Preferences to display full email instead of name alone in mailboxes. Fix issue caused by advanced search. ([fa2caf9](https://github.com/Alinto/sogo/commit/fa2caf902666367e247850ce9da82737b5ec6bbb))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **calendar:** Fix all day recurring event displayed on 2 days when a DST change occurs at the endDate ([2f75a7f](https://github.com/Alinto/sogo/commit/2f75a7fb1b57cbb4d98ec1596fe5b3d98cdd0934))
|
||||
* **ckeditor5:** prevent ckeditor5 to preview media ([2dd1097](https://github.com/Alinto/sogo/commit/2dd10970a4e0cbe8f2e8a9c0241d139d4ce006fa))
|
||||
* **mail:** Fix assertion when there is an empty image in the mail. Fixes [#6035](https://bugs.sogo.nu/view.php?id=6035). ([59d48cb](https://github.com/Alinto/sogo/commit/59d48cb38285ab019013972baa3e5269b6188a5e))
|
||||
* **mail:** Fix highlighsearch html rendering on subject ([0cbd082](https://github.com/Alinto/sogo/commit/0cbd082c1d48c70d87e58a8bb8ae05183676e2a1))
|
||||
* **mail:** Fix HTML mail rendering issue ([41a0f8d](https://github.com/Alinto/sogo/commit/41a0f8d9afc3a9d29f26c4109620252a82002ae4))
|
||||
* **mail:** Fix issue where mailto: links are badly formatted when html composing ([86446a0](https://github.com/Alinto/sogo/commit/86446a059ce70adf103c27768040e52087000812))
|
||||
* **mail:** Fix issue where unread counter is invalid when whanging folder. Fixes [#6001](https://bugs.sogo.nu/view.php?id=6001). ([1f6bbc1](https://github.com/Alinto/sogo/commit/1f6bbc1044e8c4f715b96b1b95bfb0eef888e7a3) [91a2490](https://github.com/Alinto/sogo/commit/91a249009b4a700b0a2b335450b32a73985b8dd1))
|
||||
* **mail:** improve algo to fetch imap folders for mail view ([68f4fc1](https://github.com/Alinto/sogo/commit/68f4fc134312bc28031e2be0167c117f67c6f0b8))
|
||||
* **security:** Prevent user to add html script in its preferences ([a7023bc](https://github.com/Alinto/sogo/commit/a7023bce1642ec1fd25fe68f0541407d78f321a0))
|
||||
* **sogo-tool:** prevent a bug when restoring two events with same id ([84fe91c](https://github.com/Alinto/sogo/commit/84fe91c29c24440980df4311d0ae0835337f1ec4))
|
||||
* **tests:** Add timeout on all async tests ([64f1788](https://github.com/Alinto/sogo/commit/64f17880c739e9feef8ce69ed221d83586b773a1))
|
||||
|
||||
|
||||
### Localization
|
||||
|
||||
* **de:** Update German translations ([592f35b](https://github.com/Alinto/sogo/commit/592f35bbec2823e72f1790c8b629c485f3e5500d))
|
||||
* **pt_BR:** Update BrazilianPortuguese translations ([1d3b502](https://github.com/Alinto/sogo/commit/1d3b502bc78f50c9038027036036c6d37d7fe340))
|
||||
* **pt:** Update Portuguese translations ([a4de357](https://github.com/Alinto/sogo/commit/a4de35748babced2f385046d97055fec8d80e667))
|
||||
* **ru:** Update Russian translations ([78ea981](https://github.com/Alinto/sogo/commit/78ea981e7f4254a8353e276c309fe54443bdd090))
|
||||
* **tr_TR:** Update TurkishTurkey translations ([41aecca](https://github.com/Alinto/sogo/commit/41aecca692f93134c6dd0d535ed7479182f7fd23))
|
||||
* **uk:** Update Ukrainian translations ([80a7689](https://github.com/Alinto/sogo/commit/80a76895dd59402e884d0226f59bd8edd7e8a9c1))
|
||||
|
||||
## [5.11.0](https://github.com/Alinto/sogo/compare/SOGo-5.10.0...SOGo-5.11.0) (2024-08-07)
|
||||
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ Assumptions
|
||||
SOGo reuses many components in an infrastructure. Thus, it requires the
|
||||
following:
|
||||
|
||||
* Database server (MySQL, PostgreSQL or Oracle)
|
||||
* Database server (MariaDB, MySQL, PostgreSQL or Oracle)
|
||||
* LDAP server (OpenLDAP, Novell eDirectory, Microsoft Active Directory
|
||||
and others)
|
||||
* SMTP server (Postfix, Sendmail and others)
|
||||
@@ -265,8 +265,8 @@ This will install SOGo and its dependencies such as GNUstep, the SOPE
|
||||
packages and memcached. Once the base packages are installed, you need
|
||||
to install the proper database connector suitable for your environment.
|
||||
You need to install `sope49-gdl1-postgresql` for the PostgreSQL database
|
||||
system, `sope49-gdl1-mysql` for MySQL or `sope49-gdl1-oracle` for Oracle.
|
||||
The installation command will thus look like this:
|
||||
system, `sope49-gdl1-mysql` for MariaDB/MySQL or `sope49-gdl1-oracle`
|
||||
for Oracle. The installation command will thus look like this:
|
||||
|
||||
yum install sope49-gdl1-postgresql
|
||||
|
||||
@@ -437,8 +437,8 @@ Defaults to `300`.
|
||||
|
||||
|S |SOGoAuthenticationType
|
||||
|Parameter used to define the way by which users will be authenticated.
|
||||
For C.A.S., specify `cas`. For SAML2, specify `saml2`. For anything
|
||||
else, leave that value empty.
|
||||
For C.A.S., specify `cas`. For SAML2, specify `saml2`. For opendID Connect, specify `openid`.
|
||||
For anything else, leave that value empty.
|
||||
|
||||
|S |SOGoTrustProxyAuthentication
|
||||
|Parameter used to set whether HTTP username should be trusted.
|
||||
@@ -806,6 +806,18 @@ Default value is `YES`, or enabled.
|
||||
authentication and global address books. Multiple sources can be
|
||||
specified as an array of dictionaries.
|
||||
|
||||
|S |SOGoForbidUnknownDomainsAuth
|
||||
|Boolean. If set to `YES`, prevent user that try to connect with an unknown domain.
|
||||
The known domains are set in parameter `SOGoDomainAllowed` and/or the domains listed in a <<multi-domains-configuration, Multi-domains Configuration>>. Default value is `NO`.
|
||||
|
||||
Obiously, if your users can connect without specifying a domain, let this parameter to `NO`.
|
||||
|
||||
|S |SOGoDomainAllowed
|
||||
|Parameter used to define which domains SOGo should allowed during a connection request. This parameter is an array of strings.
|
||||
|
||||
|S |SOGoURLCreateAccount
|
||||
|Add a link below the login form and set the link using the value of this setting.
|
||||
|
||||
|S |SOGoPasswordRecoveryEnabled
|
||||
|Boolean enable password recovery with secret question or secondary e-mail. Default value is `NO`.
|
||||
|
||||
@@ -1576,7 +1588,7 @@ appointments, tasks and contacts information. It also uses the database
|
||||
system to store personal preferences of SOGo users. In this guide, we
|
||||
assume you use PostgreSQL so commands provided the create the database
|
||||
are related to this application. However, other database servers are
|
||||
supported, such as MySQL and Oracle.
|
||||
supported, such as MariaDB, MySQL and Oracle.
|
||||
|
||||
First, make sure that your PostgreSQL server has TCP/IP connections
|
||||
support enabled.
|
||||
@@ -1641,7 +1653,7 @@ The following table describes the parameters that were set:
|
||||
|Parameter used to set the database URL so that SOGo can retrieve user
|
||||
profiles.
|
||||
|
||||
For MySQL, set the database URL to something like:
|
||||
For MariaDB/MySQL, set the database URL to something like:
|
||||
`mysql://sogo:sogo@127.0.0.1:3306/sogo/sogo_user_profile`.
|
||||
|
||||
|S |OCSFolderInfoURL
|
||||
@@ -1715,7 +1727,8 @@ In addition to the seven tables described above, two other tables get
|
||||
created in the database: `sogo_quick_appointment` and `sogo_quick_contact`
|
||||
which store calendar and contact information.
|
||||
|
||||
If you're using MySQL, make sure in your `my.cnf` file you have:
|
||||
If you're using MariaDB/MySQL, make sure in your `my.cnf` file you
|
||||
have:
|
||||
|
||||
----
|
||||
[mysqld]
|
||||
@@ -1730,10 +1743,11 @@ default-character-set=utf8
|
||||
default-character-set=utf8
|
||||
----
|
||||
|
||||
MySQL SSL Connection
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
MariaDB/MySQL SSL Connection
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Add the following settings in the `sogo.conf` file to enable SSL connection between SOGo and MySQL / MariaDB :
|
||||
Add the following settings in the `sogo.conf` file to enable SSL connection
|
||||
between SOGo and MariaDB/MySQL :
|
||||
|
||||
----
|
||||
MySQL4SSLEnabled = YES;
|
||||
@@ -1743,12 +1757,13 @@ MySQL4SSLCaPath = "/mysql_keys/ca-cert.pem";
|
||||
----
|
||||
|
||||
|
||||
MySQL complete Unicode compliance
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
MariaDB/MySQL complete Unicode compliance
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
By default MySQL only supports a subset of UTF-8, meaning that characters such
|
||||
as emoji are not handled properly. Some extra steps at installation can be
|
||||
undertaken to leverage full Unicode support under MySQL.
|
||||
By default MariaDB/MySQL only supports a subset of UTF-8, meaning that
|
||||
characters such as emoji are not handled properly. Some extra steps at
|
||||
installation can be undertaken to leverage full Unicode support under
|
||||
MariaDB/MySQL.
|
||||
|
||||
IMPORTANT: Switching to complete Unicode compliance on an already-deployed SOGo
|
||||
is out of scope of this document, as it would typically involve delicate manual
|
||||
@@ -1756,10 +1771,11 @@ operations on the database system.
|
||||
|
||||
Requirements:
|
||||
|
||||
* MariaDB >= 5.5
|
||||
* MySQL >= 5.5
|
||||
* SOGo >= 3.1.0
|
||||
|
||||
Strongly suggested MySQL configuration settings (innodb* parameters are
|
||||
Strongly suggested MariaDB/MySQL configuration settings (innodb* parameters are
|
||||
mandatory *only* for versions lower than 8.0):
|
||||
|
||||
----
|
||||
@@ -1779,8 +1795,8 @@ innodb_large_prefix = TRUE # MySQL < 8.0 only
|
||||
----
|
||||
|
||||
CAUTION: Changing InnoDB parameters on an already deployed database server can
|
||||
cause severe data loss. Do not blindly edit MySQL parameters without reading
|
||||
and understanding the implication of such changes.
|
||||
cause severe data loss. Do not blindly edit MariaDB/MySQL parameters without
|
||||
reading and understanding the implication of such changes.
|
||||
|
||||
A parameter must be added to `sogo.conf` to turn on complete Unicode
|
||||
compliance:
|
||||
@@ -1800,8 +1816,8 @@ a command such as:
|
||||
mysql -hHOST -uUSER -p -D SOGO < Scripts/mysql-utf8mb4.sql
|
||||
----
|
||||
|
||||
Where `HOST`, `USER` and `SOGO` are your MySQL host, username and database name
|
||||
respectively.
|
||||
Where `HOST`, `USER` and `SOGO` are your MariaDB/MySQL host, username and
|
||||
database name respectively.
|
||||
|
||||
Once SOGo is running, you can test correctness by creating an event such as
|
||||
“Lunch with 🍕 and fries” and seeing it properly displayed in the SOGo
|
||||
@@ -1849,11 +1865,12 @@ they have the same name as popular LDAP attributes (such as `givenName`,
|
||||
|
||||
|userPasswordPolicy
|
||||
|
||||
|An array of dictionaries that define regular expressions used to determine whether a new password
|
||||
is valid.
|
||||
|An array of dictionaries that define regular expressions used to determine
|
||||
whether a new password is valid.
|
||||
|
||||
Each dictionary must contain the key "regex" associated to a string representing a regular
|
||||
expression. It can also contain the key "label" to briefly describe the constraint to the user. Example:
|
||||
Each dictionary must contain the key "regex" associated to a string
|
||||
representing a regular expression. It can also contain the key "label" to
|
||||
briefly describe the constraint to the user. Example:
|
||||
|
||||
----
|
||||
userPasswordPolicy = (
|
||||
@@ -2824,6 +2841,8 @@ like this:
|
||||
}
|
||||
----
|
||||
|
||||
[[multi-domains-configuration]]
|
||||
|
||||
Multi-domains Configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -3217,9 +3236,9 @@ instructions. On the SOGo side, _SOGoEnablePublicAccess_ must be set to
|
||||
need to adjust the word size of your IMAP server. In Dovecot, the parameter
|
||||
to increase is "imap_max_line_length" while under Cyrus IMAP Server, the
|
||||
parameter is "maxword". We suggest a buffer of 2MB.
|
||||
* If you are using MySQL, make sure you set "max_allowed_packet" to a large value
|
||||
since the EAS cache size can be large for mailboxes with thousands of messages.
|
||||
A 64M or even 128M value is recommended.
|
||||
* If you are using MariaDB/MySQL, make sure you set "max_allowed_packet" to a
|
||||
large value since the EAS cache size can be large for mailboxes with thousands
|
||||
of messages. A 64M or even 128M value is recommended.
|
||||
|
||||
In order to use the SOGo ActiveSync support code in production
|
||||
environments, you need to get a proper usage license from Microsoft.
|
||||
|
||||
+17
-11
@@ -288,16 +288,16 @@ static BOOL debugLeaks;
|
||||
|
||||
e = [urlStrings objectEnumerator];
|
||||
while (ok && (tmp = [e nextObject]))
|
||||
{
|
||||
value = [defaults stringForKey: tmp];
|
||||
if (value)
|
||||
[self _checkTableWithCM: cm tableURL: value andType: tmp];
|
||||
else
|
||||
{
|
||||
value = [defaults stringForKey: tmp];
|
||||
if (value)
|
||||
[self _checkTableWithCM: cm tableURL: value andType: tmp];
|
||||
else
|
||||
{
|
||||
[self errorWithFormat: @"No value specified for '%@'", tmp];
|
||||
ok = NO;
|
||||
}
|
||||
[self errorWithFormat: @"No value specified for '%@'", tmp];
|
||||
ok = NO;
|
||||
}
|
||||
}
|
||||
|
||||
if (combined)
|
||||
{
|
||||
@@ -322,9 +322,15 @@ static BOOL debugLeaks;
|
||||
|
||||
// Create the email alarms table, if required
|
||||
if ([defaults enableEMailAlarms])
|
||||
{
|
||||
[[fm alarmsFolder] createFolderIfNotExists];
|
||||
}
|
||||
{
|
||||
[[fm alarmsFolder] createFolderIfNotExists];
|
||||
}
|
||||
|
||||
//Create mandatory openId table, if used
|
||||
if([defaults hasOpenIdType])
|
||||
{
|
||||
[[fm openIdFolder] createFolderIfNotExists];
|
||||
}
|
||||
}
|
||||
|
||||
return ok;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
@class NSString, NSArray, NSURL, NSDictionary, NSException;
|
||||
@class GCSChannelManager, GCSAlarmsFolder, GCSAdminFolder, GCSFolder, GCSFolderType, GCSSessionsFolder;
|
||||
@class GCSChannelManager, GCSAlarmsFolder, GCSAdminFolder, GCSFolder, GCSFolderType, GCSSessionsFolder, GCSOpenIdFolder;
|
||||
|
||||
@interface GCSFolderManager : NSObject
|
||||
{
|
||||
@@ -92,6 +92,9 @@
|
||||
/* admin */
|
||||
- (GCSAdminFolder *)adminFolder;
|
||||
|
||||
/* openid */
|
||||
- (GCSOpenIdFolder *) openIdFolder;
|
||||
|
||||
/* folder types */
|
||||
|
||||
- (GCSFolderType *)folderTypeWithName:(NSString *)_name;
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#import "EOAdaptorChannel+GCS.h"
|
||||
#import "GCSAlarmsFolder.h"
|
||||
#import "GCSAdminFolder.h"
|
||||
#import "GCSOpenIdFolder.h"
|
||||
#import "GCSFolder.h"
|
||||
#import "GCSFolderType.h"
|
||||
#import "GCSSessionsFolder.h"
|
||||
@@ -504,6 +505,12 @@ static BOOL _singleStoreMode = NO;
|
||||
return [GCSAdminFolder adminFolderWithFolderManager: self];
|
||||
}
|
||||
|
||||
/* openId */
|
||||
- (GCSOpenIdFolder *) openIdFolder
|
||||
{
|
||||
return [GCSOpenIdFolder openIdFolderWithFolderManager: self];
|
||||
}
|
||||
|
||||
- (NSString *)generateSQLWhereForInternalNames:(NSArray *)_names
|
||||
exactMatch:(BOOL)_beExact orDirectSubfolderMatch:(BOOL)_directSubs
|
||||
{
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/* GCSAdminFolder.h - this file is part of $PROJECT_NAME_HERE$
|
||||
*
|
||||
* Copyright (C) 2023 Alinto
|
||||
*
|
||||
* This file is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef GCSOPENIDFOLDER_H
|
||||
#define GCSOPENIDOLDER_H
|
||||
|
||||
|
||||
@class NSCalendarDate;
|
||||
@class NSException;
|
||||
@class NSNumber;
|
||||
@class NSString;
|
||||
|
||||
@class GCSFolderManager;
|
||||
|
||||
@interface GCSOpenIdFolder : NSObject
|
||||
{
|
||||
GCSFolderManager *folderManager;
|
||||
}
|
||||
|
||||
+ (id)openIdFolderWithFolderManager:(GCSFolderManager *)newFolderManager;
|
||||
|
||||
- (void) setFolderManager: (GCSFolderManager *) newFolderManager;
|
||||
|
||||
/* operations */
|
||||
|
||||
- (void) createFolderIfNotExists;
|
||||
- (BOOL) canConnectStore;
|
||||
|
||||
- (NSString *) getRefreshToken: (NSString *) _user_session useOldSession: (BOOL) use_old_session;
|
||||
- (NSString *) getNewToken: (NSString *) _old_session;
|
||||
- (NSException *) writeOpenIdSession: (NSString *) _user_session
|
||||
withOldSession: (NSString *) _old_session
|
||||
withRefreshToken: (NSString *) _refresh_token
|
||||
withExpire: (NSNumber *) _expire
|
||||
withRefreshExpire: (NSNumber *) _refresh_expire;
|
||||
- (NSException *) deleteOpenIdSessionFor: (NSString *) _user_session;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* GCSALARMSFOLDER_H */
|
||||
@@ -0,0 +1,363 @@
|
||||
/* GCSAdminFolder.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2023 Alinto
|
||||
*
|
||||
* This file is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
#import <NGExtensions/NSNull+misc.h>
|
||||
|
||||
#import <GDLAccess/EOAdaptorContext.h>
|
||||
#import <GDLAccess/EOAttribute.h>
|
||||
#import <GDLAccess/EOEntity.h>
|
||||
#import <GDLAccess/EOSQLQualifier.h>
|
||||
|
||||
#import "EOQualifier+GCS.h"
|
||||
#import "GCSChannelManager.h"
|
||||
#import "GCSFolderManager.h"
|
||||
#import "GCSSpecialQueries.h"
|
||||
#import "NSURL+GCS.h"
|
||||
|
||||
#import "GCSOpenIdFolder.h"
|
||||
|
||||
static NSString *openIdFolderURLString = nil;
|
||||
|
||||
#warning GCSOpenIdFolder should share a common ancestor with GCSFolder
|
||||
|
||||
@implementation GCSOpenIdFolder
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
NSUserDefaults *ud;
|
||||
|
||||
if (!openIdFolderURLString)
|
||||
{
|
||||
ud = [NSUserDefaults standardUserDefaults];
|
||||
ASSIGN (openIdFolderURLString, [ud stringForKey: @"OCSOpenIdURL"]);
|
||||
}
|
||||
}
|
||||
|
||||
+ (id) openIdFolderWithFolderManager: (GCSFolderManager *) newFolderManager
|
||||
{
|
||||
GCSOpenIdFolder *newFolder;
|
||||
|
||||
if (openIdFolderURLString)
|
||||
{
|
||||
newFolder = [self new];
|
||||
[newFolder autorelease];
|
||||
[newFolder setFolderManager: newFolderManager];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self errorWithFormat: @"'OCSOpenIdURL' is not set"];
|
||||
newFolder = nil;
|
||||
}
|
||||
|
||||
return newFolder;
|
||||
}
|
||||
|
||||
- (void) setFolderManager: (GCSFolderManager *) newFolderManager
|
||||
{
|
||||
ASSIGN (folderManager, newFolderManager);
|
||||
}
|
||||
|
||||
/* accessors */
|
||||
|
||||
- (NSURL *) _location
|
||||
{
|
||||
NSURL *location;
|
||||
|
||||
if (openIdFolderURLString)
|
||||
location = [NSURL URLWithString: openIdFolderURLString];
|
||||
else
|
||||
{
|
||||
[self warnWithFormat: @"'OCSOpenIdURL' is not set"];
|
||||
location = nil;
|
||||
}
|
||||
|
||||
return location;
|
||||
}
|
||||
|
||||
- (GCSChannelManager *) _channelManager
|
||||
{
|
||||
return [folderManager channelManager];
|
||||
}
|
||||
|
||||
- (NSString *) _storeTableName
|
||||
{
|
||||
return [[self _location] gcsTableName];
|
||||
}
|
||||
|
||||
- (EOEntity *) _storeTableEntityForChannel: (EOAdaptorChannel *) tc
|
||||
{
|
||||
static EOEntity *entity = nil;
|
||||
EOAttribute *attribute;
|
||||
NSString *tableName;
|
||||
NSString *columns[] = {@"c_user_session", @"c_old_session", @"c_session_started", @"c_refresh_token", @"c_access_token_expires_in", @"c_refresh_token_expires_in", nil };
|
||||
NSString **column;
|
||||
NSMutableArray *keys;
|
||||
NSDictionary *types;
|
||||
|
||||
if (!entity)
|
||||
{
|
||||
entity = [EOEntity new];
|
||||
tableName = [self _storeTableName];
|
||||
[entity setName: tableName];
|
||||
[entity setExternalName: tableName];
|
||||
|
||||
types = [[tc specialQueries] openIdAttributeTypes];
|
||||
|
||||
column = columns;
|
||||
while (*column)
|
||||
{
|
||||
attribute = [EOAttribute new];
|
||||
[attribute setName: *column];
|
||||
[attribute setColumnName: *column];
|
||||
[attribute setExternalType: [types objectForKey: *column]];
|
||||
[entity addAttribute: attribute];
|
||||
[attribute release];
|
||||
column++;
|
||||
}
|
||||
|
||||
keys = [NSMutableArray arrayWithCapacity: 1];
|
||||
[keys addObject: [entity attributeNamed: @"c_user_session"]];
|
||||
[entity setPrimaryKeyAttributes: keys];
|
||||
|
||||
keys = [NSMutableArray arrayWithCapacity: 5];
|
||||
[keys addObject: [entity attributeNamed: @"c_old_session"]];
|
||||
[keys addObject: [entity attributeNamed: @"c_session_started"]];
|
||||
[keys addObject: [entity attributeNamed: @"c_refresh_token"]];
|
||||
[keys addObject: [entity attributeNamed: @"c_access_token_expires_in"]];
|
||||
[keys addObject: [entity attributeNamed: @"c_refresh_token_expires_in"]];
|
||||
[entity setClassProperties: keys];
|
||||
[entity setAttributesUsedForLocking: [NSArray array]];
|
||||
}
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
/* connection */
|
||||
|
||||
- (EOAdaptorChannel *) _acquireStoreChannel
|
||||
{
|
||||
return [[self _channelManager] acquireOpenChannelForURL: [self _location]];
|
||||
}
|
||||
|
||||
- (void) _releaseChannel: (EOAdaptorChannel *) _channel
|
||||
{
|
||||
[[self _channelManager] releaseChannel:_channel immediately: YES];
|
||||
}
|
||||
|
||||
- (BOOL) canConnectStore
|
||||
{
|
||||
return [[self _channelManager] canConnect:[self _location]];
|
||||
}
|
||||
|
||||
- (void) createFolderIfNotExists
|
||||
{
|
||||
EOAdaptorChannel *tc;
|
||||
NSString *sql, *tableName;
|
||||
GCSSpecialQueries *queries;
|
||||
|
||||
tc = [self _acquireStoreChannel];
|
||||
tableName = [self _storeTableName];
|
||||
|
||||
queries = [tc specialQueries];
|
||||
|
||||
sql = [NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2", tableName];
|
||||
if ([tc evaluateExpressionX: sql])
|
||||
{
|
||||
sql = [queries createOpenIdFolderWithName: tableName];
|
||||
if (![tc evaluateExpressionX: sql])
|
||||
[self logWithFormat: @"openid folder table '%@' successfully created!", tableName];
|
||||
}
|
||||
else
|
||||
[tc cancelFetch];
|
||||
|
||||
[self _releaseChannel: tc];
|
||||
}
|
||||
|
||||
/* operations */
|
||||
|
||||
/* table has the following fields:
|
||||
c_user_session varchar(255) NOT NULL,
|
||||
c_session_started int(11) NOT NULL,
|
||||
c_refresh_token varchar(4096) DEFAULT '',
|
||||
c_access_token_expires_in int(11) NOT NULL,
|
||||
c_refresh_token_expires_in int(11) DEFAULT NULL,
|
||||
*/
|
||||
|
||||
- (NSDictionary *) recordForSession: (NSString *) _user_session useOldSession: (BOOL) use_old_session
|
||||
{
|
||||
EOAdaptorChannel *tc;
|
||||
EOAdaptorContext *context;
|
||||
NSException *error;
|
||||
NSArray *attrs;
|
||||
NSDictionary *record;
|
||||
EOEntity *entity;
|
||||
EOSQLQualifier *qualifier;
|
||||
|
||||
record = nil;
|
||||
|
||||
tc = [self _acquireStoreChannel];
|
||||
if (tc)
|
||||
{
|
||||
context = [tc adaptorContext];
|
||||
entity = [self _storeTableEntityForChannel: tc];
|
||||
if(!use_old_session)
|
||||
qualifier = [[EOSQLQualifier alloc] initWithEntity: entity
|
||||
qualifierFormat: @"c_user_session='%@'", _user_session];
|
||||
else
|
||||
qualifier = [[EOSQLQualifier alloc] initWithEntity: entity
|
||||
qualifierFormat: @"c_old_session='%@'", _user_session];
|
||||
[qualifier autorelease];
|
||||
|
||||
[context beginTransaction];
|
||||
error = [tc selectAttributesX: [entity attributesUsedForFetch]
|
||||
describedByQualifier: qualifier
|
||||
fetchOrder: nil
|
||||
lock: NO];
|
||||
if (error)
|
||||
[self errorWithFormat:@"%s: cannot execute fetch: %@", __PRETTY_FUNCTION__, error];
|
||||
else
|
||||
{
|
||||
attrs = [tc describeResults: NO];
|
||||
record = [tc fetchAttributes: attrs withZone: NULL];
|
||||
[tc cancelFetch];
|
||||
}
|
||||
[context rollbackTransaction];
|
||||
[self _releaseChannel: tc];
|
||||
}
|
||||
|
||||
return record;
|
||||
}
|
||||
|
||||
- (NSString *) getRefreshToken: (NSString *) _user_session
|
||||
{
|
||||
NSDictionary *r;
|
||||
|
||||
r = [self recordForSession: _user_session useOldSession: NO];
|
||||
if (r && [r objectForKey:@"c_refresh_token"])
|
||||
return [r objectForKey:@"c_refresh_token"];
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *) getNewToken: (NSString *) _old_session
|
||||
{
|
||||
NSDictionary *r;
|
||||
r = [self recordForSession: _old_session useOldSession: YES];
|
||||
if (r && [r objectForKey:@"c_user_session"])
|
||||
return [r objectForKey:@"c_user_session"];
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
- (NSException *) writeOpenIdSession: (NSString *) _user_session
|
||||
withOldSession: (NSString *) _old_session
|
||||
withRefreshToken: (NSString *) _refresh_token
|
||||
withExpire: (NSNumber *) _expire
|
||||
withRefreshExpire: (NSNumber *) _refresh_expire
|
||||
{
|
||||
NSDictionary *record, *newRecord;
|
||||
NSException *error;
|
||||
NSCalendarDate *nowDate;
|
||||
int now, nowExpire, nowRefreshExpire;
|
||||
EOAdaptorChannel *tc;
|
||||
EOAdaptorContext *context;
|
||||
EOEntity *entity;
|
||||
EOSQLQualifier *qualifier;
|
||||
|
||||
error = nil;
|
||||
tc = [self _acquireStoreChannel];
|
||||
if (tc)
|
||||
{
|
||||
context = [tc adaptorContext];
|
||||
|
||||
nowDate = [NSCalendarDate date];
|
||||
now = (nowDate ? (int)[nowDate timeIntervalSince1970] : 0);
|
||||
nowExpire = now + [_expire intValue];
|
||||
if(_refresh_expire)
|
||||
nowRefreshExpire = now + [_refresh_expire intValue];
|
||||
else
|
||||
nowRefreshExpire = -1;
|
||||
if(!_old_session)
|
||||
_old_session = @"";
|
||||
|
||||
newRecord = [NSDictionary dictionaryWithObjectsAndKeys: _user_session, @"c_user_session",
|
||||
_old_session, @"c_old_session",
|
||||
[NSNumber numberWithInt:now], @"c_session_started",
|
||||
_refresh_token, @"c_refresh_token",
|
||||
[NSNumber numberWithInt:nowExpire] , @"c_access_token_expires_in",
|
||||
[NSNumber numberWithInt:nowRefreshExpire] , @"c_refresh_token_expires_in",
|
||||
nil];
|
||||
record = [self recordForSession: _user_session useOldSession: NO];
|
||||
entity = [self _storeTableEntityForChannel: tc];
|
||||
[context beginTransaction];
|
||||
if (!record)
|
||||
{
|
||||
//If the session already exist no need to update it as it is unique
|
||||
error = [tc insertRowX: newRecord forEntity: entity];
|
||||
}
|
||||
|
||||
if (error)
|
||||
{
|
||||
[context rollbackTransaction];
|
||||
[self errorWithFormat:@"%s: cannot write record: %@", __PRETTY_FUNCTION__, error];
|
||||
}
|
||||
else
|
||||
[context commitTransaction];
|
||||
[self _releaseChannel: tc];
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
- (NSException *) deleteOpenIdSessionFor: (NSString *) _user_session
|
||||
{
|
||||
EOAdaptorChannel *tc;
|
||||
EOAdaptorContext *context;
|
||||
EOEntity *entity;
|
||||
EOSQLQualifier *qualifier;
|
||||
NSException *error;
|
||||
|
||||
error = nil;
|
||||
tc = [self _acquireStoreChannel];
|
||||
if (tc)
|
||||
{
|
||||
context = [tc adaptorContext];
|
||||
entity = [self _storeTableEntityForChannel: tc];
|
||||
qualifier = [[EOSQLQualifier alloc] initWithEntity: entity
|
||||
qualifierFormat: @"c_user_session='%@'",_user_session];
|
||||
[qualifier autorelease];
|
||||
[context beginTransaction];
|
||||
error = [tc deleteRowsDescribedByQualifierX: qualifier];
|
||||
if (error)
|
||||
{
|
||||
[context rollbackTransaction];
|
||||
[self errorWithFormat:@"%s: cannot delete record: %@", __PRETTY_FUNCTION__, error];
|
||||
}
|
||||
else
|
||||
[context commitTransaction];
|
||||
[self _releaseChannel: tc];
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -42,6 +42,9 @@
|
||||
- (NSString *)createAdminFolderWithName:(NSString *)tableName;
|
||||
- (NSDictionary *)adminAttributeTypes;
|
||||
|
||||
- (NSString *)createOpenIdFolderWithName:(NSString *)tableName;
|
||||
- (NSDictionary *)openIdAttributeTypes;
|
||||
|
||||
- (NSString *) updateCPathInFolderInfo:(NSString *)tableName
|
||||
withCPath2:(NSString *)c_path2;
|
||||
|
||||
|
||||
@@ -95,6 +95,21 @@
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *) createOpenIdFolderWithName: (NSString *) tableName
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSDictionary *) openIdAttributeTypes
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *) createFolderTableWithName: (NSString *) tableName
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
@@ -195,6 +210,38 @@
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createOpenIdFolderWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
= (@"CREATE TABLE %@ ("
|
||||
@" c_user_session VARCHAR(4096) NOT NULL,"
|
||||
@" c_old_session VARCHAR(4096) NULL,"
|
||||
@" c_session_started INT4 NOT NULL,"
|
||||
@" c_refresh_token VARCHAR(4096) NULL,"
|
||||
@" c_access_token_expires_in INT4 NOT NULL,"
|
||||
@" c_refresh_token_expires_in INT4 NULL)");
|
||||
|
||||
return [NSString stringWithFormat: sqlFolderFormat, tableName];
|
||||
}
|
||||
|
||||
- (NSDictionary *) openIdAttributeTypes
|
||||
{
|
||||
static NSMutableDictionary *types = nil;
|
||||
|
||||
if (!types)
|
||||
{
|
||||
types = [NSMutableDictionary new];
|
||||
[types setObject: @"varchar" forKey: @"c_user_session"];
|
||||
[types setObject: @"varchar" forKey: @"c_old_session"];
|
||||
[types setObject: @"int" forKey: @"c_session_started"];
|
||||
[types setObject: @"varchar" forKey: @"c_refresh_token"];
|
||||
[types setObject: @"int" forKey: @"c_access_token_expires_in"];
|
||||
[types setObject: @"int" forKey: @"c_refresh_token_expires_in"];
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createFolderTableWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
@@ -324,6 +371,38 @@
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createOpenIdFolderWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
= (@"CREATE TABLE %@ ("
|
||||
@" c_user_session VARCHAR(4096) NOT NULL,"
|
||||
@" c_old_session VARCHAR(4096) NULL,"
|
||||
@" c_session_started INT4 NOT NULL,"
|
||||
@" c_refresh_token VARCHAR(4096) NULL,"
|
||||
@" c_access_token_expires_in INT4 NOT NULL,"
|
||||
@" c_refresh_token_expires_in INT4 NULL)");
|
||||
|
||||
return [NSString stringWithFormat: sqlFolderFormat, tableName];
|
||||
}
|
||||
|
||||
- (NSDictionary *) openIdAttributeTypes
|
||||
{
|
||||
static NSMutableDictionary *types = nil;
|
||||
|
||||
if (!types)
|
||||
{
|
||||
types = [NSMutableDictionary new];
|
||||
[types setObject: @"varchar" forKey: @"c_user_session"];
|
||||
[types setObject: @"varchar" forKey: @"c_old_session"];
|
||||
[types setObject: @"int" forKey: @"c_session_started"];
|
||||
[types setObject: @"varchar" forKey: @"c_refresh_token"];
|
||||
[types setObject: @"int" forKey: @"c_access_token_expires_in"];
|
||||
[types setObject: @"int" forKey: @"c_refresh_token_expires_in"];
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createFolderTableWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
@@ -453,6 +532,38 @@
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createOpenIdFolderWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
= (@"CREATE TABLE %@ ("
|
||||
@" c_user_session VARCHAR2(4096) NOT NULL,"
|
||||
@" c_old_session VARCHAR2(4096) NULL,"
|
||||
@" c_session_started INTEGER NOT NULL,"
|
||||
@" c_refresh_token VARCHAR2(4096) NULL,"
|
||||
@" c_access_token_expires_in INTEGER NOT NULL,"
|
||||
@" c_refresh_token_expires_in INTEGER NULL)");
|
||||
|
||||
return [NSString stringWithFormat: sqlFolderFormat, tableName];
|
||||
}
|
||||
|
||||
- (NSDictionary *) openIdAttributeTypes
|
||||
{
|
||||
static NSMutableDictionary *types = nil;
|
||||
|
||||
if (!types)
|
||||
{
|
||||
types = [NSMutableDictionary new];
|
||||
[types setObject: @"varchar2" forKey: @"c_user_session"];
|
||||
[types setObject: @"varchar2" forKey: @"c_old_session"];
|
||||
[types setObject: @"integer" forKey: @"c_session_started"];
|
||||
[types setObject: @"varchar2" forKey: @"c_refresh_token"];
|
||||
[types setObject: @"integer" forKey: @"c_access_token_expires_in"];
|
||||
[types setObject: @"integer" forKey: @"c_refresh_token_expires_in"];
|
||||
}
|
||||
|
||||
return types;
|
||||
}
|
||||
|
||||
- (NSString *) createFolderTableWithName: (NSString *) tableName
|
||||
{
|
||||
static NSString *sqlFolderFormat
|
||||
|
||||
@@ -28,13 +28,14 @@ libGDLContentStore_HEADER_FILES += \
|
||||
GCSAdminFolder.h \
|
||||
GCSContext.h \
|
||||
GCSFieldInfo.h \
|
||||
GCSFolder.h \
|
||||
GCSFolder.h \
|
||||
GCSFolderManager.h \
|
||||
GCSFolderType.h \
|
||||
GCSChannelManager.h \
|
||||
GCSOpenIdFolder.h \
|
||||
GCSSessionsFolder.h \
|
||||
GCSSpecialQueries.h \
|
||||
GCSStringFormatter.h \
|
||||
GCSStringFormatter.h \
|
||||
|
||||
libGDLContentStore_OBJC_FILES += \
|
||||
NSURL+GCS.m \
|
||||
@@ -45,13 +46,14 @@ libGDLContentStore_OBJC_FILES += \
|
||||
GCSAdminFolder.m \
|
||||
GCSContext.m \
|
||||
GCSFieldInfo.m \
|
||||
GCSFolder.m \
|
||||
GCSFolder.m \
|
||||
GCSFolderManager.m \
|
||||
GCSFolderType.m \
|
||||
GCSChannelManager.m \
|
||||
GCSOpenIdFolder.m \
|
||||
GCSSessionsFolder.m \
|
||||
GCSSpecialQueries.m \
|
||||
GCSStringFormatter.m \
|
||||
GCSStringFormatter.m \
|
||||
|
||||
# framework support
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Abidjan
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Abidjan
|
||||
BEGIN:STANDARD
|
||||
TZNAME:GMT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Algiers
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Algiers
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CET
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Bissau
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Bissau
|
||||
BEGIN:STANDARD
|
||||
TZNAME:GMT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Cairo
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Cairo
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EEST
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Casablanca
|
||||
TZUNTIL:20870511T020001Z
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Casablanca
|
||||
BEGIN:STANDARD
|
||||
TZNAME:+01
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Ceuta
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Ceuta
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:CEST
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/El_Aaiun
|
||||
TZUNTIL:20870511T020001Z
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/El_Aaiun
|
||||
BEGIN:STANDARD
|
||||
TZNAME:+01
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Johannesburg
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Johannesburg
|
||||
BEGIN:STANDARD
|
||||
TZNAME:SAST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Juba
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Juba
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Khartoum
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Khartoum
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Lagos
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Lagos
|
||||
BEGIN:STANDARD
|
||||
TZNAME:WAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Maputo
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Maputo
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Monrovia
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Monrovia
|
||||
BEGIN:STANDARD
|
||||
TZNAME:GMT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Nairobi
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Nairobi
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Ndjamena
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Ndjamena
|
||||
BEGIN:STANDARD
|
||||
TZNAME:WAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Sao_Tome
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Sao_Tome
|
||||
BEGIN:STANDARD
|
||||
TZNAME:GMT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Tripoli
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Tripoli
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EET
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Tunis
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Tunis
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CET
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Africa/Windhoek
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:Africa/Windhoek
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CAT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Adak
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Adak
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:HDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Anchorage
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Anchorage
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:AKDT
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Araguaina
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Araguaina
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Buenos_Aires
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Buenos_Aires
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Catamarca
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Catamarca
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Cordoba
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Cordoba
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Jujuy
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Jujuy
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/La_Rioja
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/La_Rioja
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Mendoza
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Mendoza
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Rio_Gallegos
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Rio_Gallegos
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Salta
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Salta
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/San_Juan
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/San_Juan
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/San_Luis
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/San_Luis
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Tucuman
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Tucuman
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Argentina/Ushuaia
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Argentina/Ushuaia
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Asuncion
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Asuncion
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19701004T000000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700322T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Bahia
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Bahia
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Bahia_Banderas
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Bahia_Banderas
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Barbados
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Barbados
|
||||
BEGIN:STANDARD
|
||||
TZNAME:AST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Belem
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Belem
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Belize
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Belize
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Boa_Vista
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Boa_Vista
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Bogota
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Bogota
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-05
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Boise
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Boise
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Cambridge_Bay
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Cambridge_Bay
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Campo_Grande
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Campo_Grande
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Cancun
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Cancun
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Caracas
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Caracas
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Cayenne
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Cayenne
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Chicago
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Chicago
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:CDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Chihuahua
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Chihuahua
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Ciudad_Juarez
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Ciudad_Juarez
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Costa_Rica
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Costa_Rica
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Cuiaba
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Cuiaba
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Danmarkshavn
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Danmarkshavn
|
||||
BEGIN:STANDARD
|
||||
TZNAME:GMT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Dawson
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Dawson
|
||||
BEGIN:STANDARD
|
||||
TZNAME:MST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Dawson_Creek
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Dawson_Creek
|
||||
BEGIN:STANDARD
|
||||
TZNAME:MST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Denver
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Denver
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Detroit
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Detroit
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Edmonton
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Edmonton
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Eirunepe
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Eirunepe
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-05
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/El_Salvador
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/El_Salvador
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Fort_Nelson
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Fort_Nelson
|
||||
BEGIN:STANDARD
|
||||
TZNAME:MST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Fortaleza
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Fortaleza
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Glace_Bay
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Glace_Bay
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:ADT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Goose_Bay
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Goose_Bay
|
||||
BEGIN:STANDARD
|
||||
TZNAME:AST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Grand_Turk
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Grand_Turk
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Guatemala
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Guatemala
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Guayaquil
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Guayaquil
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-05
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Guyana
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Guyana
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Halifax
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Halifax
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:ADT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Havana
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Havana
|
||||
BEGIN:STANDARD
|
||||
TZNAME:CST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Hermosillo
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Hermosillo
|
||||
BEGIN:STANDARD
|
||||
TZNAME:MST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Indianapolis
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Indianapolis
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Knox
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Knox
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:CDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Marengo
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Marengo
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Petersburg
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Petersburg
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Tell_City
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Tell_City
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:CDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Vevay
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Vevay
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Vincennes
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Vincennes
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Indiana/Winamac
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Indiana/Winamac
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Inuvik
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Inuvik
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:MDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Iqaluit
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Iqaluit
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Jamaica
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Jamaica
|
||||
BEGIN:STANDARD
|
||||
TZNAME:EST
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Juneau
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Juneau
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:AKDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Kentucky/Louisville
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Kentucky/Louisville
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Kentucky/Monticello
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Kentucky/Monticello
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:EDT
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/La_Paz
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/La_Paz
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-04
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0400
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Lima
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Lima
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-05
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0500
|
||||
DTSTART:19700101T000000
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Los_Angeles
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
TZNAME:PDT
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Alinto//NONSGML IANA 2024c//EN
|
||||
PRODID:-//Alinto//NONSGML IANA 2024b//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Maceio
|
||||
LAST-MODIFIED:20240220T101645Z
|
||||
LAST-MODIFIED:20241008T100856Z
|
||||
X-LIC-LOCATION:America/Maceio
|
||||
BEGIN:STANDARD
|
||||
TZNAME:-03
|
||||
TZNAME:%z
|
||||
TZOFFSETFROM:-0300
|
||||
TZOFFSETTO:-0300
|
||||
DTSTART:19700101T000000
|
||||
|
||||
Loaded 100 of 459 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user